{"version":3,"file":"main.75f479c757e5f463.js","mappings":"gHAQA,MAAMA,EACJC,YAAmBC,GAAAC,KAAAD,WAA+B,EAG9C,MAAOE,UAAgBJ,EA2F3BC,YAAYI,EAAeH,GACzBI,MAAMJ,GAtFDC,KAAAI,GAAa,EAKbJ,KAAAK,GAAa,GACbL,KAAAM,GAAa,GAIbN,KAAAO,GAAa,EASbP,KAAAQ,GAAa,EAIbR,KAAAS,GAAa,GAIbT,KAAAU,GAAa,GAIbV,KAAAW,GAAa,EAUbX,KAAAY,GAAa,EACbZ,KAAAa,aAAe,EAQfb,KAAAc,GAAa,EAKbd,KAAAe,GAAa,GAIbf,KAAAgB,GAAa,GAKbhB,KAAAiB,GAAkB,GAKlBjB,KAAAkB,IAAc,EAKdlB,KAAAmB,IAAc,EAKdnB,KAAAoB,GAAa,EAIbpB,KAAAqB,GAAa,OAINC,IAARpB,GACFqB,OAAOC,OAAOxB,KAAME,EAExB,CAEA,YAAWuB,GAET,IAAKzB,KAAK0B,kBACR,OAGF,IAAIC,EAEJ,YAAgBL,IAAZtB,KAAKc,IAAoBd,KAAKc,GAAK,IACrCa,EAAO3B,KAAK0B,kBAAkBE,KAAKC,GAAKA,GAAKA,EAAEjB,KAAOZ,KAAKc,KAGtDa,CACT,CAEOG,qBACL,OAAQ9B,KAAKoB,IACX,KAAK,EACH,OAAOpB,KAAKD,WAAWgC,QAAQ,gBACjC,KAAK,EACH,OAAO/B,KAAKD,WAAWgC,QAAQ,YACjC,KAAK,EACH,OAAO/B,KAAKD,WAAWgC,QAAQ,WACjC,KAAK,EACH,OAAO/B,KAAKD,WAAWgC,QAAQ,uCACjC,KAAK,EACH,OAAO/B,KAAKD,WAAWgC,QAAQ,kBACjC,QACE,MAAO,GAEb,iDC5II,MAAOC,EAIT,WAAIC,GACA,OAAOjC,KAAKkC,QAChB,CAEA,WAAID,CAAQE,GACRnC,KAAKkC,SAAWC,CACpB,CAEA,QAAIC,GACA,OAAOpC,KAAKqC,KAChB,CAEA,QAAID,CAAKD,GACLnC,KAAKqC,MAAQF,CACjB,CAEA,QAAIG,GACA,OAAOtC,KAAKuC,KAChB,CAEA,QAAID,CAAKH,GACLnC,KAAKuC,MAAQJ,CACjB,CAGArC,YACYoC,EACAG,GADArC,KAAAkC,WACAlC,KAAAqC,OACZ,yDC9BG,IAAKG,EAAZ,SAAYA,GACRA,WAAAC,KAAA,UACAD,IAAAE,MAAA,WACAF,IAAAG,UAAA,eACAH,IAAAI,SAAA,cACAJ,IAAAK,SAAA,cACAL,IAAAM,YAAA,iBANQN,CAOZ,CAPA,CAAYA,GAAoB,IAU1B,MAAOO,EAAbjD,cAIIE,KAAAgD,KAA6BR,EAAqBC,IAKtD,0KCJM,MAAOQ,SAGGjD,KAAAkD,cAAgB,IAAIC,GAAU,QAC9BnD,KAAAoD,gBAAkB,IAAID,GAAU,CAE9CrD,YACUuD,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,IAPA5D,KAAAqD,kBACArD,KAAAsD,WACAtD,KAAAuD,uBACAvD,KAAAwD,mBACAxD,KAAAyD,kBACAzD,KAAA0D,uBACA1D,KAAA2D,2BACA3D,KAAA4D,yBAbF5D,KAAA6D,eAAgB,CAexB,CAEAC,UAAUC,EAAuBC,GAC/BhE,KAAK0D,oBAAoBO,eAAeC,KAAKC,UAAUJ,IAEvD,MAAMK,EAAmC,IAAIjB,IAEvCkB,GAA2D,IAA9C,CAAC,MAAO,OAAQ,UAAUC,QAD9BP,EAAIQ,QAGnB,OAAIF,GACFrE,KAAKqD,gBAAgBmB,UAAS,GAIhCT,GADAA,GADAA,EAAM/D,KAAKyE,sBAAsBV,IACvBW,MAAM,CAACC,QAASZ,EAAIY,QAAQC,IAAI,aAAc5E,KAAKyD,gBAAgBoB,mBACnEH,MAAM,CAACC,QAASZ,EAAIY,QAAQC,IAAI,gBAAiB,cAE3DZ,EAAKc,OAAOf,GAAKgB,QACfC,KAAIC,KACEA,cAAmBC,MACrBlF,KAAKmF,kBAAqCF,GAAO,IAEpDG,UAAU,CACTpB,KAAOqB,KACgBA,OACUC,UAAY,GACzCC,QAAQC,MAAMtB,KAAKC,UAAUkB,KAG3BA,IAAUA,GAAOrC,MAAQqB,GAC3BrE,KAAKqD,gBAAgBmB,UAAS,GAEhCJ,EAAQJ,KAAKqB,GAAM,EAErBG,MAAQA,KACFnB,GACFrE,KAAKqD,gBAAgBmB,UAAS,GAEhCxE,KAAKqD,gBAAgBoC,YAErBzF,KAAK0F,cAAcF,IACnBpB,EAAQoB,MAAMA,GAAK,EAErBG,SAAUA,KACJtB,GACFrE,KAAKqD,gBAAgBmB,UAAS,GAEhCJ,EAAQuB,UAAQ,IAIfvB,EAAQwB,cACjB,CAEQnB,sBAAsBoB,GAC5B,OAAIA,EAAYC,IAAIC,SAAS,wBAA0BF,EAAYC,IAAIC,SAAS,8BAG9DF,EAAYlB,QAAQqB,IAAI,cACxBhG,KAAK4D,uBAAuBqC,YAC5CJ,EAAcA,EAAYnB,MAAM,CAACC,QAASkB,EAAYlB,QAAQC,IAAI,YAAa5E,KAAK4D,sBAAsBqC,cAUrGJ,CACT,CAIQH,cAAcF,GACpB,IAAIxF,KAAK6D,gBAIP7D,KAAKuD,qBAAqB2C,0BAA4BlG,KAAKuD,qBAAqB4C,uBAExD,CACxB,GAAIX,aAAiBY,IACnBnD,EAAwBG,gBAAgBY,MAAK,QAAI,GACvB,KAAjBwB,GAAOa,QAAgC,KAAfb,GAAOpD,KACxCpC,KAAKuD,qBAAqB+C,eAAQ,MACzBd,GAAOa,QAAU,KAAOb,GAAOpD,MAAQ,KAGhD,OAFAa,EAAwBC,cAAcc,MAAK,EAE3C,CAGFhE,KAAK6D,eAAgB,CACvB,CACF,CAEQsB,kBAAkBoB,GACxB,GAAIA,GAAU5B,QAAQ6B,IAAI,SAAU,CAClC,IAAIC,EAAuBF,EAAS5B,QAAQqB,IAAI,SAChDhG,KAAK2D,wBAAwB+C,gBAAgBD,GAAS,UACxD,CACF,iDArHWxD,GAAuB0D,MAAAC,KAAAD,MAAAE,MAAAF,MAAAG,KAAAH,MAAAC,KAAAD,MAAAI,KAAAJ,MAAAK,KAAAL,MAAAM,KAAAN,MAAAO,KAAA,sCAAvBjE,EAAuBkE,QAAvBlE,EAAuBmE,WAAA,mFCP7B,IAAMC,EAAmB,MAA1B,MAAOA,EAIFC,aACH,OAAOtH,KAAKoE,QAAQwB,cACxB,CAEO2B,YAAYC,EAAcC,EAAgBC,GAU7C1H,KAAKoE,QAAQJ,KATgB,CACzByD,MAAOA,EACPD,KAAMA,EACNG,KAAM,IAAIC,KACV5E,KAAMR,IAAqBI,SAC3BiF,cAAUvG,EACVwG,eAAWxG,EACXoG,KAAMA,GAGd,CAEOK,OAAOC,GAELA,GAcLhI,KAAKoE,QAAQJ,KAVgB,CACzByD,MAAOO,EAAMC,GAAKD,EAAMC,GAAGC,MAAQ,qBACnCV,KAAMQ,EAAMC,GAAKD,EAAMC,GAAGE,QAAU,GACpCR,KAAMK,EAAMI,GACZpF,KAAMgF,EAAMhF,MAAQR,IAAqBC,KACzCiF,KAAM,CAAEW,WAAW,GACnBR,SAAUG,EAAMM,GAChBR,UAAWE,EAAMO,IAAMP,GAAOQ,MAAM5H,IAI5C,CAEO6H,YAAYjB,EAAcC,EAAgBC,GAC7C,MAAMgB,EAAM,IAAI3F,IAChB2F,EAAIlB,KAAOA,EACXkB,EAAIjB,MAAQA,EACZiB,EAAIhB,KAAOA,EACXgB,EAAI1F,KAAOR,IAAqBI,SAChC5C,KAAKoE,QAAQJ,KAAK0E,EACtB,CAGOC,UAAUnB,EAAcC,EAAgBC,GAC3C,MAAMgB,EAAM,IAAI3F,IAChB2F,EAAIlB,KAAOA,EACXkB,EAAIjB,MAAQA,EACZiB,EAAIhB,KAAOA,EACXgB,EAAI1F,KAAOR,IAAqBG,UAChC3C,KAAKoE,QAAQJ,KAAK0E,EACtB,CAEOE,YAAYpB,EAAcC,EAAgBC,GAC7C,MAAMgB,EAAM,IAAI3F,IAChB2F,EAAIlB,KAAOA,EACXkB,EAAIjB,MAAQA,EACZiB,EAAIhB,KAAOA,EACXgB,EAAI1F,KAAOR,IAAqBK,SAChC7C,KAAKoE,QAAQJ,KAAK0E,EACtB,CAGOG,gBAAgBrD,GACnB,MAAMkD,EAAM,IAAI3F,IAChB2F,EAAI1F,KAAOR,IAAqBG,UAChC+F,EAAII,KAAOtD,EACXxF,KAAKoE,QAAQJ,KAAK0E,EACtB,CAEA5I,cA1EQE,KAAAoE,QAAoC,IAAIjB,GA2EhD,iDA7ESkE,EAAmB,sCAAnBA,EAAmBF,QAAnBE,EAAmBD,WAAA,SAAnBC,CAAmB,2ECLzB,IAAM0B,EAAe,MAAtB,MAAOA,EADbjJ,cAMYE,KAAAgJ,IAA4B,IAAIC,IAAqB,MAGrDjJ,KAAAkJ,QAAU,EAKX1E,SAAS2E,EAAe7G,IAGd,IAAT6G,EACAnJ,KAAKkJ,UAELlJ,KAAKkJ,UAELlJ,KAAKkJ,QAAU,IACflJ,KAAKkJ,QAAU,GAGnBlJ,KAAK+H,QACT,CAEQA,SAEJ/H,KAAKgJ,IAAIhF,KAAK,CACVK,WAAYrE,KAAKkJ,QAAU,GAEnC,CAEOzD,YACHzF,KAAKkJ,QAAU,EACflJ,KAAK+H,QACT,CAEOqB,iBACH,OAAOpJ,KAAKgJ,IAAIpD,cACpB,iDA1CSmD,EAAe,sCAAfA,EAAe5B,QAAf4B,EAAe3B,WAAA,SAAf2B,CAAe,iMCWrB,IAAMM,EAAiB,MAAxB,MAAOA,EAETvJ,YACYwJ,EACAC,EACAhG,GACAK,IAHA5D,KAAAsJ,cACAtJ,KAAAuJ,OACAvJ,KAAAuD,wBACAvD,KAAA4D,wBAEZ,CAKQ4F,eAAeC,GAEnB,IAAIlD,EAGJ,GAFAA,EAAuCkD,EAAMC,MAExCnD,EACD,MAAO,GAcX,GAVIA,GAAYA,EAASoD,SACrBpD,EAASqD,SAAYrD,EAASoD,OAAOC,SAAWrD,EAASoD,OAAOC,SAAWrD,EAASqD,UAGpFrD,GAAYA,EAASoD,SACrBpD,EAASoD,OAAUpD,EAASoD,OAAOA,OAASpD,EAASoD,OAAOA,OAASpD,EAASoD,QAK9EpD,EAASjB,UACT,OAAQiB,EAASjB,WAEb,KAAK,EACDiB,EAASsD,iBAAmB,yCAC5B,MAEJ,KAAK,EACDtD,EAASsD,iBAAmB,4DAC5B,MAEJ,KAAK,EACDtD,EAASsD,iBAAmB,yCAC5B,MAEJ,KAAK,EACDtD,EAASsD,iBAAmB,8BAC5B,MAEJ,KAAK,EACDtD,EAASsD,iBAAmB,oCAC5B,MAEJ,KAAK,EACDtD,EAASsD,iBAAmB,gEAC5B,MAEJ,KAAK,EACDtD,EAASsD,iBAAmB,yCAC5B,MAEJ,KAAK,EACDtD,EAASsD,iBAAmB,yCAC5B,MAEJ,KAAK,EACDtD,EAASsD,iBAAmB,6CAC5B,MAEJ,KAAK,EACDtD,EAASsD,iBAAmB,8BAC5B,MAEJ,KAAK,GACDtD,EAASsD,iBAAmB,wBAC5B,MAEJ,KAAK,GACDtD,EAASsD,iBAAmB,wCAC5B,MAEJ,KAAK,GACDtD,EAASsD,iBAAmB,uBAC5B,MAEJ,KAAK,GACDtD,EAASsD,iBAAmB,iBAC5B,MAEJ,KAAK,GACDtD,EAASsD,iBAAmB,wCAC5B,MAEJ,QACItD,EAASsD,iBAAmBtD,EAASsD,kBAAoB,kBACrDJ,EAAKK,WAAuC,IAA1BL,EAAKK,UAAUzD,SACjCE,EAASsD,iBAAmB,+EAM5C,OAAoBtD,CACxB,CAGQwD,QAAQrC,GACZA,EAAOA,GAAQ,GACf,MAAMsC,EAAY,CAAEC,cAAc,GAC5BC,GAAO3I,OAAO2I,KAAKF,GACnBG,GAAQ5I,OAAO2I,KAAKxC,GAC1B,UAAW0C,MAAKF,IACa,IAArBC,GAAM7F,QAAQ8F,MACd1C,EAAK0C,IAAKJ,EAAKI,KAGvB,OAAO1C,CACX,CAMQ2C,eAAe3C,GAEnB,OAAO,IAAI4C,IAAWC,IAEd,IAAIC,GAAaxK,KAAK4D,sBAAsBqC,UAE5C,MAAMwE,GAAgB,GAClBD,KACAC,GAASC,UAAeF,IAO5B,IAAIG,GAAW,CACXhG,QAJY,IAAIiG,KAAYH,IAK5BI,iBAAiB,EACjBC,QAAS,YAGb,GAAGpD,GAAQA,EAAKqD,cAGZ,QADIC,GAAUC,SAASC,OAAOC,MAAM,KAC3BC,GAAI,EAAGA,GAAIJ,GAAQK,OAAQD,KACpC,CACI,IAAIF,GAASF,GAAQI,IACjBE,GAAQJ,GAAO5G,QAAQ,KACvBhC,GAAOgJ,IAAQ,EAAKJ,GAAOK,OAAO,EAAGD,IAASJ,GAC/C5I,GAAKgC,QAAQ,YAAc,IAE1B2G,SAASC,OAAS5I,GAAO,0CAEjC,CAGJiI,EAASvG,KAAK2G,IACdJ,EAAS5E,UAAQ,EAE7B,CAEA6F,WAAW1F,EAAa4B,GACpBA,SAAO1H,KAAK+J,QAAQrC,GACb1H,KAAKqK,eAAe3C,GAAM3C,QAAK0G,KAAUC,IACvC,IAAIpB,IAAiBqB,KACxB3L,KAAKsJ,YAAYsC,OAAO9F,EAAK4F,IAAS3G,QACpC8G,KAAWC,IAAO9L,KAAK+L,gBAAgBD,MAAI,EAE3CE,KAAIzF,IAAYvG,KAAKwJ,eAAejD,MACnCnB,UAAUmB,KAET,GAAIA,GAASjB,UACX,MAAIoC,EAAKuC,cACPjK,KAAKiM,YAAY1F,KAAQ,EAErB2F,KAAW,IAAIlK,IAAYuE,GAASsD,iBAAkBtD,GAASjB,YAEvEqG,GAAU3H,OACV2H,GAAUhG,UAAQ,EAChBmG,IAAQH,GAAUnG,MAAMsG,IAAI,IAI5C,CAEAK,QAAQrG,EAAa4B,GACjBA,SAAO1H,KAAK+J,QAAQrC,GACb1H,KAAKqK,eAAe3C,GAAM3C,QAAK0G,KAAUC,IACvC1L,KAAKsJ,YAAYtD,IAAIF,EAAK4F,IAAS3G,QACxC8G,KAAWC,IAAO9L,KAAK+L,gBAAgBD,MAAI,EAE3CE,KAAIzF,IAAYvG,KAAKwJ,eAAejD,MAAS,EAC7CvB,KAAIuB,KAEF,GAAIA,GAASjB,UACX,MAAIoC,EAAKuC,cACPjK,KAAKiM,YAAY1F,KAAQ,EAErB2F,KAAW,IAAIlK,IAAYuE,GAASsD,iBAAkBtD,GAASjB,WAAU,KAK3F,CAIA8G,WAAWtG,EAAa4B,GACpBA,SAAO1H,KAAK+J,QAAQrC,GACb1H,KAAKqK,eAAe3C,GAAM3C,QAAK0G,KAAUC,OACrCW,MAAG,KAElB,CAEAC,SAASxG,EAAa5F,EAAWwH,GAAY6E,GAAiB,KAC1D7E,UAAO1H,KAAK+J,QAAQrC,IACb1H,KAAKqK,eAAe3C,IAAM3C,QAAK0G,KAAUC,IACvC1L,KAAKsJ,YAAYkD,KAAK1G,EAAK5F,EAAKwL,IAAS3G,QAC9C0H,KAAQF,KAAc,EACtBV,KAAWC,IAAO9L,KAAK+L,gBAAgBD,MAAI,EAE3CE,KAAIzF,IAAYvG,KAAKwJ,eAAejD,MAAS,EAC7CvB,KAAIuB,KAEF,GAAIA,GAASjB,UACX,MAAIoC,GAAKuC,cACPjK,KAAKiM,YAAY1F,KAAQ,EAErB2F,KAAW,IAAIlK,IAAYuE,GAASsD,iBAAkBtD,GAASjB,WAAU,KAM3F,CAEAoH,QAAQ5G,EAAa5F,EAAUwH,IAC3BA,UAAO1H,KAAK+J,QAAQrC,IACb1H,KAAKqK,eAAe3C,IAAM3C,QAAK0G,KAAUC,IACvC1L,KAAKsJ,YAAYqD,IAAI7G,EAAK5F,EAAKwL,IAAS3G,QAC7C8G,KAAWC,IAAO9L,KAAK+L,gBAAgBD,MAAI,EAE3CE,KAAIzF,IAAYvG,KAAKwJ,eAAejD,MAAS,EAC7CvB,KAAIuB,KAEF,GAAIA,GAASjB,UACX,MAAIoC,GAAKuC,cACPjK,KAAKiM,YAAY1F,KAAQ,EAErB2F,KAAW,IAAIlK,IAAYuE,GAASsD,iBAAkBtD,GAASjB,WAAU,KAI3F,CAMQ2G,YAAY1F,GAOhBvG,KAAKuJ,KAAKV,gBALc,CACpBvD,UAAWiB,EAASjB,UACpBuE,iBAAkBtD,EAASsD,iBAC3BC,UAAWvD,IAIO,KAAnBA,EAASqG,QACV5M,KAAKuD,qBAAqB+C,UAChC,CAKQyF,gBAAgBD,GAQpB9L,KAAKuJ,KAAKV,gBALc,CACpBvD,UAAW,IACXuE,iBAAkBiC,EAAI7J,QACtB6H,UAAWgC,IAIfvG,QAAQC,MAAMsG,GAEd9L,KAAKuD,qBAAqB+C,WAE1B,MAAMuG,GAAY,IAAI7K,IACtB6K,UAAU5K,QAAU6J,EAAI7J,QACxB4K,GAAUvK,KAAOwJ,EAAIxJ,KACrBuK,GAAUzK,KAAO0J,EAAIzF,UACd6F,KAAWW,GACtB,iDA5SSxD,GAAiB1C,MAAAC,MAAAD,MAAAE,KAAAF,MAAAG,KAAAH,MAAAI,KAAA,sCAAjBsC,EAAiBlC,QAAjBkC,EAAiBjC,WAAA,SAAjBiC,CAAiB,6KCiDvB,IAAMyD,EAAgB,MAAvB,MAAOA,EAIThN,YACYiN,EACAC,GADAhN,KAAA+M,WACA/M,KAAAgN,oBAJKhN,KAAAiN,QAAUC,IAAYC,YAKpC,CAEHC,eAAeC,GAKX,OAAOrN,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,kBAGJE,GAAMtI,QAAKiH,KAAIsB,GAA8BA,GACpF,CACAC,iBAAiBC,GACbA,EAAQC,SAAW,MAEnB,MAAM3H,EAAMoH,IAAYC,aAAe,oBACjCpC,IAAgByC,EAAQE,GACxB/I,EAAU,IAAIiG,KAAY,CAC5B+C,WAAYH,EAAQE,IAAM,KAG9B,OAAO1N,KAAK+M,SAAST,SAASxG,EAAK0H,EAAS,CAAEvD,cAAc,EAAOc,cAAeA,EAAepG,YAC9FI,QAAKiH,KAAIsB,IAA+BA,IAC/C,CACAM,iBAAiB3H,GAKb,OAAOjG,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,oBAGJ,CAAEzC,UAAWzE,IAAalB,QAAKiH,KAAIsB,KAA+B,IACzG,CACAO,kBAAkBC,GAMd,OAAO9N,KAAK+M,SAASvB,WAHT0B,IAAYC,aAAe,sBAAwBW,GAG1B/I,QAAKiH,KAAIsB,KAAgC,IAClF,CACAS,eAAeD,GAKX,OAAO9N,KAAK+M,SAASZ,QAHTe,IAAYC,aAAe,mBAAqBW,GAG1B/I,QAAKiH,KAAIsB,GAA6BA,GAC5E,CACAU,oBAAoBC,GAKhB,OAAOjO,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,uBAGJc,GAAQlJ,QAAKiH,KAAIsB,GAAkCA,GAC1F,CACAY,yBAAyBD,GAKrB,OAAOjO,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,4BAGJc,GAAQlJ,QAAKiH,KAAIsB,GAAqCA,GAC7F,CACAa,gBAKI,OAAOnO,KAAK+M,SAASZ,QAHTe,IAAYC,aAAe,kBAGLpI,QAAKiH,KAAIsB,GAA4BA,GAC3E,CACAc,kBAAkBvG,GAKd,OAAO7H,KAAK+M,SAASZ,QAHTe,IAAYC,aAAe,sBAAwBtF,GAG7B9C,QAAKiH,KAAIsB,GAAgCA,GAC/E,CACAe,mBAAmBC,GAQf,OAAOtO,KAAK+M,SAAST,SANTY,IAAYC,aAAe,sBACxB,CACXoB,UAAWD,IAI4BvJ,QAAKiH,KAAIsB,GAAiCA,GACzF,CACAkB,gBAAgBC,GAKZ,OAAOzO,KAAK+M,SAASZ,QAHTe,IAAYC,aAAe,4BAA8BsB,GAGnC1J,QAAKiH,KAAIsB,GAA8BA,GAC7E,CACAoB,qBAAqBT,GAKjB,OAAOjO,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,wBAGJc,GAAQlJ,QAAKiH,KAAIsB,IAC5C,MAAMqB,EAAkCrB,EACxCqB,SAAEJ,UAAYN,EAAOM,UACdI,IAEnB,CACAC,uBAKI,OAAO5O,KAAK+M,SAASZ,QAHTe,IAAYC,aAAe,yBAGLpI,QAAKiH,KAAIsB,GAAmCA,GAClF,CACAuB,0BACI,OAAO,IAAIvE,IAA4CC,IAanDA,EAASvG,KAFM,CACfqB,OAAgB,KAEhBkF,EAAS5E,UAAQ,EAEzB,CACAmJ,sBAAsB/G,GAGlBA,OAGO/H,KAAK+M,SAASZ,QAJTe,IAAYC,aAAe,yBAIL,CAAElD,aAHpClC,EAASA,IAAU,IAGyChD,QAAKiH,KAAIsB,GAAoCA,GAC7G,CACAyB,mBAAmBhH,GAGfA,OAGO/H,KAAK+M,SAAST,SAJTY,IAAYC,aAAe,sBAIJ,CAAElD,aAHrClC,EAASA,IAAU,IAG0ChD,QAAKiH,KAAIsB,GAAiCA,GAC3G,CAGA0B,uBAAuBlH,EAAmBmH,EAAcC,GAOpD,OAAOlP,KAAK+M,SAASZ,QAJTe,IAAYC,aACpB,2BAA6BrF,EAAY,IAAMmH,EAAO,IAAMC,GAG9BnK,QAChCC,KAAKsI,IAAWA,GAAE3D,OAAS2D,GAAE3D,OAAOwF,aAAU,EAC9CnD,KAAIsB,IAAqCA,IAE/C,CAEA8B,qBAAqBnB,GAEjB,MAAMnI,EAAMoH,IAAYC,aAAe,wBACvCc,SAAOoB,YAAWC,KAAWrB,EAAOoB,UACpCpB,EAAOsB,UAASC,KAASvB,EAAOsB,QAGzBvP,KAAK+M,SAAST,SAASxG,EAAK,CAAE2J,UAAWxB,EAAOyB,UAAWL,SAAUpB,EAAOoB,SAAUE,OAAQtB,EAAOsB,SACzGxK,QAAKiH,KAAIsB,GAAmCA,GACnD,CACAqC,sBAAsB1B,GAElB,MAAMnI,EAAMoH,IAAYC,aAAe,yBACvCc,SAAOoB,YAAWC,KAAWrB,EAAOoB,UACpCpB,EAAOsB,UAASC,KAASvB,EAAOsB,QAGzBvP,KAAK+M,SAAST,SAASxG,EAAK,CAAE2J,UAAWxB,EAAOyB,UAAWL,SAAUpB,EAAOoB,SAAUE,OAAQtB,EAAOsB,SACzGxK,QAAKiH,KAAIsB,GAAoCA,GACpD,CACAsC,mBAAmB3B,GAKf,OAAOjO,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,sBAGJc,EAAQ,CAAEhE,cAAc,IACxDlF,QAAKiH,KAAIsB,GAAiCA,GACjD,CACAuC,oBAAoB5B,GAKhB,OAAOjO,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,uBAGJc,GAChClJ,QAAKiH,KAAIsB,GAAkCA,GAClD,CACAwC,iBAAiBC,EAA8B,CAAEC,OAAQ,KAKrD,OAAOhQ,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,oBAGJ4C,GAChChL,QAAKiH,KAAIsB,GAAKA,GACrB,CACA2C,yBAAyBhC,GAErB,MAAMnI,EAAMoH,IAAYC,aAAe,4BACjCrE,EAAO,IAAKmF,GAAU,IAG9B,OAAI1M,OAAO2I,KAAK+D,GAAQ5C,OAAS,IAC9BvC,EAAaoH,cAAgB,GAC7BpH,EAAaqH,cAAgB,GAC7BrH,EAAasH,cAAgB,IAGvBpQ,KAAK+M,SAAST,SAASxG,EAAKgD,GAChC/D,QAAKiH,KAAIsB,GAAqCA,GACrD,CACA+C,iBAKI,OAAOrQ,KAAK+M,SAASZ,QAHTe,IAAYC,aAAe,mBAIpCpI,QAAKiH,KAAIsB,GAA6BA,GAC7C,CACAgD,sBAKI,OAAOtQ,KAAK+M,SAASZ,QAHTe,IAAYC,aAAe,wBAIpCpI,QAAKiH,KAAIsB,GAAkCA,GAClD,CACAiD,yBAKI,OAAOvQ,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,2BAGJpI,QAAKiH,KAAIsB,GAAqCA,GACrF,CACAkD,cAAcC,GAKV,OAAOzQ,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,iBAGJ,CAAEuD,MAAOD,EAAOE,KAAMzD,IAAY0D,YAAc,CAAE3G,cAAc,IAChGlF,QAAKiH,KAAIsB,GAA4BA,GAC5C,CACAuD,qBAAqBC,GAKjB,OAAO9Q,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,wBAGJ2D,EAAgB,CAAE7G,cAAc,IAChElF,QAAKiH,KAAIsB,GAA4BA,GAC5C,CACAyD,QAAQvD,GAKJ,OAAOxN,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,WAGJK,GAChCzI,QAAKiH,KAAIsB,GAAsBA,GACtC,CACA0D,uBAAuBF,GAEnB,MAAMhL,EAAMoH,IAAYC,aAAe,0BAEjC8D,EAAkB/M,KAAKgN,MAAMhN,KAAKC,UAAU2M,IAClDG,SAAgBN,KAAOzD,IAAY0D,WAG5B5Q,KAAK+M,SAAST,SAASxG,EAAKmL,EAAiB,CAAEhH,cAAc,IACjElF,QAAKiH,KAAIsB,GAAqCA,GACrD,CACA6D,aAAa3D,GAGT,OAAOxN,KAAK+M,SAAST,SAFTY,IAAYC,aAAe,gBAEJK,GAChCzI,QAAKiH,KAAIsB,GAA2BA,GAC3C,CACA8D,kBAAkB/D,GAKd,OAAOrN,KAAK+M,SAASL,QAHTQ,IAAYC,aAAe,qBAGLE,GAC/BtI,QAAKiH,KAAIsB,GAA8BA,GAC9C,CAEA+D,eAAeC,GAKX,OAAOtR,KAAK+M,SAAST,SAHTY,IAAYC,aAAe,kBAGJmE,GAChCvM,QAAKiH,KAAIsB,GAA6BA,GAC7C,CACAiE,eAAeC,GAMX,OAAOxR,KAAK+M,SAASZ,QAJTe,IAAYC,aACpB,mBAAqBqE,GAItBzM,QAAKiH,KAAIsB,GAA6BA,GAC7C,CAEAmE,kBAAkBC,GAKd,OAAO1R,KAAK+M,SAASL,QAHTQ,IAAYC,aAAe,qBAGLuE,GAC/B3M,QAAKiH,KAAIsB,GAAgCA,GAChD,CAEAqE,oBAAoB7I,GAGhB,OAAO9I,KAAK+M,SAAST,SAFTY,IAAYC,aAAe,sBAEJrE,EAAM,KADjB,KAE5B,CAEA8I,oBAAoB9J,GAEhB,OAAO9H,KAAK+M,SAASZ,QADTe,IAAYC,aAAe,qCAAqCrF,KAC1C/C,QAAKiH,KAAI6F,GAAQA,EAAKlI,QAC5D,CAEAmI,uCACI,OAAI9R,KAAKgN,kBAAkB+E,kBAAoB/R,KAAKgN,kBAAkBgF,sBAE3DhS,KAAK+M,SAASZ,QADTe,IAAYC,aAAe,yCACLpI,QAC9BiH,KAAI6F,GAAQA,EAAKlI,SAAM,EACvBkC,KAAW,OAAMQ,MAAG,CAAE4F,aAAc,QAG5C,EAAO5F,MAAG,CAAE4F,aAAc,IAC9B,CAEAC,uCAAuCpK,GAEnC,OAAO9H,KAAK+M,SAASZ,QADTe,IAAYC,aAAe,2CAA2CrF,KAChD/C,QAAKiH,KAAI6F,GAAQA,EAAKlI,QAC5D,CAEOwI,uBAAuBrK,GAE1B,OAAO9H,KAAK+M,SAASZ,QADTe,IAAYC,aAAe,2BAA2BrF,KAChC/C,QAAKiH,KAAI6F,GAAQA,EAAKlI,QAC5D,CAEOyI,iBAAiBtK,GAEpB,OAAO9H,KAAK+M,SAASZ,QADTe,IAAYC,aAAe,qBAAqBrF,KAC1B/C,QAAKiH,KAAI6F,GAAQA,EAAKlI,QAC5D,CAEO0I,iBAAiBvJ,GAEpB,OAAO9I,KAAK+M,SAAST,SADTY,IAAYC,aAAe,oBACJrE,EACvC,CAEOwJ,8BAA8BxK,GAEjC,OAAO9H,KAAK+M,SAASZ,QADTe,IAAYC,aAAe,0BAA0BrF,KAC/B/C,QAAKiH,KAAI6F,GAAQA,EAAKlI,QAC5D,iDA9WSmD,GAAgBnG,MAAAC,KAAAD,MAAAE,KAAA,sCAAhBiG,EAAgB3F,QAAhB2F,EAAgB1F,WAAA,SAAhB0F,CAAgB,mDC9DvB,MAAOyF,EACF,uBAAOC,CAAiBC,GAE3B,MACMC,EAAQD,EAAQC,MAEtB,OAAIA,IAAiC,IAHrB,wCAGKC,KAAKD,GACf,CAAEE,cAAgB,GAGtB,IACX,CAEO,aAAOC,CAAOJ,GACjB,MAAMC,EAAQD,EAAQC,MACtB,GAAIA,EAAO,CACP,GAAyB,iBAArBA,EAAMI,WACN,MAAO,CAAEC,WAAa,GAE1B,IACc,IAAInL,KAAK8K,EAAMM,UAC7B,OACI,MAAO,CAAED,WAAa,EAC1B,CACJ,CACA,OAAO,IACX,iDC3BE,MAAOE,EAEXnT,cAGiBE,KAAAkT,cAAgC,EAFjD,CAIAC,iBAAiBC,GACfpT,KAAKkT,cAAcG,KAAKD,EAC1B,CAEAE,iBACEtT,KAAKkT,cAAcK,QAAQjG,GAAKA,EAAEkG,cACpC,uOCRA7M,MAAA,WAAwEA,MAAA,GAASA,8BAAtCA,MAAA,UAAA8M,EAAAC,kBAA6B/M,cAAA8M,EAAAE,iCACxEhN,MAAA,WACEA,MAAA,mBACFA,8BAF2EA,MAAA,UAAA8M,EAAAG,gBAC5DjN,QAAkBA,MAAlB,gBAAkBA,CAAD,gBCF3B,IAAMkN,EAAe,MAAtB,MAAOA,EAWX/T,cATSE,KAAA8T,WAAY,EACZ9T,KAAA2T,MAAQ,GACR3T,KAAA+T,aAAc,EACd/T,KAAA0T,iBAAmB,YACnB1T,KAAA4T,eAAiB,OACjB5T,KAAAgU,UAAW,EAEVhU,KAAAiU,MAAQ,IAAIC,KAGtB,CAEAC,WACA,CAEAC,UACOpU,KAAK8T,WACR9T,KAAKiU,MAAMI,MACf,iDApBWR,EAAe,oCAAfA,EAAeS,UAAA,iBAAAC,OAAA,CAAAT,UAAA,YAAAH,MAAA,QAAAI,YAAA,cAAAL,iBAAA,mBAAAE,eAAA,iBAAAI,SAAA,YAAAQ,QAAA,CAAAP,MAAA,SAAAQ,MAAA,EAAAC,KAAA,EAAAC,OAAA,6bAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDP5BlO,MAAA,cAMEA,MAAA,mCAAkBmO,EAAAV,SAAS,GAE3BzN,MADA,EAAAoO,EAAA,YACApO,CADwE,EAAAqO,EAAA,aAI1ErO,eAL+BA,MANO,WAAAmO,EAAAhB,UAMPnN,CAN6B,UAAAA,MAAA,EAAAsO,EAAAH,EAAAf,YAAAe,EAAAd,UAAAc,EAAAd,UAM7BrN,CAFgB,oBAGvCA,cAAA,QAAAmO,EAAAhB,WACAnN,cAAA,OAAAmO,EAAAhB,8DCDKD,CAAe,6FCArB,IAAMqB,EAAwB,MAA/B,MAAOA,EAUXpV,cARiBE,KAAAmV,eAAiB,IAEzBnV,KAAA8I,KAAO,GACP9I,KAAAoV,YAAa,EACbpV,KAAAqV,QAAU,uEAKnB,CAEAlB,WACA,CAEAmB,YAAYC,GACNvV,KAAKoV,YACPI,WAAW,IAAMxV,KAAKyV,WAAWzV,KAAK0V,YAAc,IACxD,CAEAD,WAAWE,GACTC,UAAUC,UAAUC,UAAU9V,KAAK8I,MAEnC6M,EAAQI,UAAW,EACnBJ,EAAQK,OACRR,WAAW,KACTG,EAAQI,UAAW,GAClB/V,KAAKmV,eACV,iDA7BWD,EAAwB,oCAAxBA,EAAwBZ,UAAA,2BAAA2B,UAAA,SAAApB,EAAAC,MAAA,EAAAD,SAQxBqB,KAAU,gWCfvBvP,MAAA,uDAE0DA,MAAA,mBAAAA,MAAAwP,GAAA,MAAAC,EAAAzP,MAAA,UAAAA,MAASmO,EAAAW,WAAAW,GAA2B,GAAEzP,cAD7DA,MAAA,aAAAA,MAAA,IAAAA,MAAA,uBADPA,MAAA,UAAAmO,EAAAO,wEDOfH,CAAwB,yPENnCvO,MAAA,cAGQA,MAAA,yBAAA0P,EAAA1P,MAAAwP,GAAAG,UAAAC,EAAA5P,MAAA,UAAAA,MAAS4P,EAAAC,iBAAAH,EAAAjU,MAA2B,GAC1CuE,MAAA,WACEA,MAAA,WACAA,MAAA,YAA+BA,MAAA,GAEnCA,mDAPQA,MAAA,UAAAA,MAAA,EAAAsO,GAAAsB,EAAAE,WAAAJ,EAAAjU,MAAAmU,EAAAE,WAAAJ,EAAAjU,QAIcuE,MAAA,GAAAA,MAAA,UAAA4P,EAAAG,aAAAL,EAAAjU,OACauE,MAAA,GAAAA,MAAA0P,EAAAM,yCAPrChQ,MAAA,GACEA,MAAA,EAAAiQ,EAAA,8CAAyBjQ,cAAA,UAAA4P,EAAAM,gBAAAC,6DAavBnQ,MAAA,cAEsCA,MAAA,yBAAAoQ,EAAApQ,MAAAqQ,GAAAV,UAAAC,EAAA5P,MAAA,UAAAA,MAAS4P,EAAAC,iBAAAO,EAAA3U,MAA2B,GACtEuE,MAAA,YACJA,+CAHQA,MAAA,UAAAA,MAAA,EAAAsQ,EAAAV,EAAAE,WAAAM,EAAA3U,OAAAmU,EAAAE,WAAAM,EAAA3U,QAEUuE,cAAA,UAAA4P,EAAAG,aAAAK,EAAA3U,iCAJpBuE,MAAA,WACEA,MAAA,EAAAuQ,EAAA,gBAKFvQ,8BAL2BA,cAAA,UAAA4P,EAAAM,gBAAAC,qBCNtB,IAAMK,EAAuB,MAA9B,MAAOA,EAIXrX,YACS+W,GAAA7W,KAAA6W,kBAHA7W,KAAAoX,mBAAoB,CAK7B,CAEAjD,WACA,CAEAqC,iBAAiBa,GACfrX,KAAK6W,gBAAgBS,QAAUD,CAOjC,CAEAZ,WAAWY,GACT,OAAOrX,KAAK6W,gBAAgBS,UAAYD,CAC1C,CAEAX,aAAaW,GACX,MAAO,aAAeA,CACxB,iDA5BWF,GAAuBxQ,MAAAC,KAAA,oCAAvBuQ,EAAuB7C,UAAA,yBAAAC,OAAA,CAAA6C,kBAAA,qBAAA3C,MAAA,EAAAC,KAAA,EAAAC,OAAA,8cAAAC,SAAA,SAAAC,EAAAC,MAAA,EAAAD,GDIpClO,MAZA,EAAA4Q,EAAA,qBAYA5Q,CAZ4D,EAAA6Q,EAAA,yBAAA7Q,6BAAnBA,MAA1B,QAAAmO,EAAAsC,kBAA0BzQ,CAAA,WAAA8Q,6DCQ5BN,CAAuB,mDCR7B,IAAMO,EAAyB,MAAhC,MAAOA,SAEK1X,KAAA2X,yBAA2B,iBAAkB,QAE7C3X,KAAA4X,QAAU,SAAU,QAEpB5X,KAAA6X,MAAQ,OAAQ,QAChB7X,KAAA8X,SAAW,UAAW,QAEtB9X,KAAA+X,MAAQ,OAAQ,QAChB/X,KAAAgY,eAAiB,iBAAkB,QAEnChY,KAAAiY,cAAgB,gBAAiB,QACjCjY,KAAAkY,0BAA4B,6BAA8B,QAE1DlY,KAAAwQ,cAAgB,gBAAiB,QACjCxQ,KAAAmY,0BAA4B,6BAA8B,QAE1DnY,KAAAoY,eAAiB,kBAAmB,QACpCpY,KAAAqY,2BAA6B,+BAAgC,QAE7DrY,KAAAsY,OAAS,QAAS,CAElC,kBAAOC,CAAYC,GACjB,OAAOd,EAA0BC,yBAA2Ba,CAC9D,SAzBWd,CAAyB,kHCG/B,MAAMe,EAAwB,CACjCC,SAAS,EACTC,UAAU,iBCGP,IAAMC,EAA2B,MAAlC,MAAOA,EAUX9Y,cARAE,KAAA6Y,aAAe,IAGf7Y,KAAA8Y,eAAiB,IAAI5E,MAEblU,KAAA+Y,OAAS,IAAI5V,GAGL,CAEhBgR,WACEnU,KAAKoT,aAAepT,KAAK+Y,OAAOhU,KClB7B,SAAS8T,EAAaG,EAAUC,EAAYC,IAAgBC,EAASV,GACxE,MAAMW,KAAYC,KAAML,EAAUC,GAClC,OFEG,SAASK,EAASC,EAAkBJ,EAASV,GAChD,SAAOe,KAAQ,CAACC,EAAQC,KACpB,MAAQhB,UAASC,YAAaQ,EAC9B,IAAIQ,GAAW,EACXC,EAAY,KACZC,GAAY,KACZC,IAAa,EACjB,MAAMC,GAAgBA,KACoCF,IAAUrG,cAChEqG,GAAY,KACRlB,IACAqB,KACAF,IAAcJ,EAAW/T,WAAS,EAGpCsU,GAAoBA,KACtBJ,GAAY,KACZC,IAAcJ,EAAW/T,UAAS,EAEhCuU,GAAiBxH,IAAWmH,MAAYM,MAAUZ,EAAiB7G,KAAQtN,aAAUgV,KAAyBV,EAAYK,GAAeE,KACzID,GAAOA,KACT,GAAIL,EAAU,CACVA,GAAW,EACX,MAAMjH,GAAQkH,EACdA,EAAY,KACZF,EAAW1V,KAAK0O,KACfoH,IAAcI,GAAcxH,GACjC,GAEJ+G,EAAOrU,aAAUgV,KAAyBV,EAAahH,KACnDiH,GAAW,EACXC,EAAYlH,KACVmH,IAAcA,GAAUQ,UAAY3B,EAAUsB,KAASE,GAAcxH,IAAK,EAC7E,KACCoH,IAAa,KACXnB,GAAYgB,GAAYE,KAAcA,GAAUQ,SAAWX,EAAW/T,UAAS,GACnF,EAEV,CExCW2T,CAAS,IAAMF,EAAWD,EACrC,CDgBMN,CAAa7Y,KAAK6Y,eAClBzT,UAAUkV,GAAKta,KAAKua,mBAAmBD,GAC3C,CAEAC,mBAAmBD,GACjBta,KAAK8Y,eAAezE,KAAKiG,EAC3B,CAEAE,cACExa,KAAKoT,cAAcI,aACrB,CAGAiH,WAAWzS,GACTA,EAAM0S,iBACN1S,EAAM2S,kBACN3a,KAAK+Y,OAAO/U,KAAKgE,EACnB,iDA/BW4Q,EAA2B,oCAA3BA,EAA2BtE,UAAA,kCAAAsG,aAAA,SAAA/F,EAAAC,GAAA,EAAAD,GAA3BlO,MAAA,iBAAAkU,GAAA,OAAA/F,EAAA2F,WAAAI,EAAkB,6FAAlBjC,CAA2B,2EEJlC,MAAOkC,SACJ9a,KAAA+a,SAAW,IAAI5X,GAAiB,QAChCnD,KAAAgb,gBAAiB,CAAM,CAE9BC,YAAYzV,IACV,EAAG0V,UACD3V,QAAQC,MAAM,cAAgBA,GAEhCsV,EAAgBC,SAAS/W,KAAKwB,EAChC,mFCLK,IAAM2V,EAAgB,MAAvB,MAAOA,UAAwBC,IAEnCtb,cACEK,OACF,CAEUkb,OAAOC,GACf,OAAOpO,IAAYC,aAAemO,CACpC,CAEUC,WAAWD,GACnB,OAAOpO,IAAYsO,mBAAqBF,CAC1C,CAEUG,aAAaH,GACrB,OAAOpO,IAAYwO,cAAgBJ,CACrC,iDAhBWH,EAAe,sCAAfA,EAAehU,QAAfgU,EAAe/T,UAAAuU,WAFd,QAAM,SAEPR,CAAgB,iECR7B,MAAMS,EAAO,CAEZC,UACAC,WACAC,eACAC,YACAC,UACAC,SAGAC,WAAWC,aAIXD,WAAWE,eACXF,WAAWG,aAGVrO,OAAOsO,SACPvQ,IACAlM,IAAe,CAACA,GAAYwC,KAAMxC,KAKpC0c,EAF0B,IAAIC,IAAIb,GCrBJc,MAgB9B,MAAMC,EAAmB,CACxB,CACCC,SAAU,OACVC,YAAY,GAEb,CACCD,SAAU,UACVC,YAAY,GAEb,CACCD,SAAU,QACVC,YAAY,GAEb,CACCD,SAAU,OACVC,YAAY,GAEb,CACCD,SAAU,QACVC,YAAY,IAIRC,EAAkBC,OAAO,sBAYzBC,EAAkBA,EACvBC,QACAC,QACAC,MACAC,mBACAC,YACAC,SACAC,aACAC,iBAeA,GAbKL,KAEHA,GADGM,MAAMC,QAAQT,IACZ,IACMO,IAAaG,EAAYV,IAE/B,IAlBoB3a,KAAQsb,EAAkB5X,IAAI1D,KAASoa,MAiBlDmB,CAAoBZ,GAAK3a,OAGlC,CAAC,GAIR4a,GAAK7J,KAAK4J,IAENK,IAASD,GACZ,OAAOF,GAGR,GAAII,IAAoC,mBAAhBN,GAAKa,SAAmD,IAA1Bb,GAAKH,GAC1D,MAtCaG,MACdA,GAAKH,IAAmB,EACxB,MAAMiB,GAAOd,GAAKa,SAClB,cAAOb,GAAKH,GACLiB,IAkCCD,CAAOb,IAGf,MAAMe,GAA0BtL,IAASsK,EAAgB,CACxDC,KAAMvK,GACNwK,KAAM,IAAIA,IACVE,mBACAC,YACAC,SACAC,aACAC,eAGD,UAAYS,GAAKvL,MAAUnR,OAAO2c,QAAQjB,IAEzC,GAAsB,mBAAXkB,QAAyBA,OAAOC,SAAS1L,IACnDyK,GAAGc,IAAO,uBAKX,GAAc,OAAVvL,IAAmC,iBAAVA,IAA4C,mBAAfA,GAAM3N,MAKhE,GAAqB,mBAAV2N,GAIX,KAAKA,IAA0B,iBAAVA,GAAoB,CACxCyK,GAAGc,IAAOvL,GACV,QACD,CAEA,IAAKwK,GAAKnX,SAASkX,GAAKgB,KAAO,CAC9BX,KACAH,GAAGc,IAAOD,GAAwBf,GAAKgB,KAEvC,QACD,CAEAd,GAAGc,IAAO,mBApBTd,GAAGc,IAAO,kBAuBZ,UAAYrB,YAAUC,iBAAeF,SACzBM,GAAKL,IAAc,KAAkC,OAAnBK,GAAKL,KACjDrb,OAAO8c,eAAelB,GAAIP,GAAU,CACnClK,MAAOiL,EAAYV,GAAKL,KAAaoB,GAAwBf,GAAKL,KAAaK,GAAKL,IACpFC,aAAYO,IAAyBP,GACrCyB,cAAc,EACdC,UAAU,IAKb,OAAOpB,IAoDD,SAASQ,EAAYjL,IAC3B,QAAeA,IACK,iBAAVA,IACP,SAAUA,IACV,YAAaA,IACb,UAAWA,EACf,iGC7KO,IAAM8L,GAAoB,MAA3B,MAAOA,WAA4BrD,IASvCrb,YACU2e,GACAC,GACAC,GACArb,GACAG,GACAG,IAERzD,QAPQH,KAAAye,cACAze,KAAA0e,mBACA1e,KAAA2e,yBACA3e,KAAAsD,YACAtD,KAAAyD,mBACAzD,KAAA4D,yBAbO5D,KAAA4e,QAAkBC,KAClB7e,KAAA8e,eAAiB,GACjB9e,KAAA+e,cAAgB,IAAItC,IACpBzc,KAAAgf,aAAe,kBAExBhf,KAAAif,YAAc,EAWtB,CAGAC,eAAeC,IACb,OAAOnf,KAAKof,IAAID,GAClB,CAGAE,SAAS7Z,IACP,MAAM8Z,GAAcpb,KAAKC,UD2FtB,SAASob,EAAe7M,GAAOhH,GAAU,CAAC,GAChD,MACC2R,YAAWmC,OAAOC,kBAClBlC,cAAY,GACT7R,GAEJ,MAAqB,iBAAVgH,IAAgC,OAAVA,GACzBsK,EAAgB,CACtBC,KAAMvK,GACNwK,KAAM,GACNE,iBAAiB,EACjBC,YACAC,MAAO,EACPC,aACAC,WAAW,IAKQ,mBAAV9K,GAEH,cAAcA,GAAMpQ,MAAQ,eAG7BoQ,EACR,CCpHuC6M,CAAe/Z,KAC5Cka,GAAW1f,KAAK2f,YAAYL,IAClC,OAAItf,KAAK4f,YAAYN,KAAgBtf,KAAK+e,cAAcvY,IAAIkZ,KAAQ,EAC3DrT,SAETrM,KAAK+e,cAAcna,IAAI8a,GAAUla,IAC1BxF,KAAKof,IAAIE,IAClB,CAEArb,eAAe4b,IACRA,GAAkB9Z,SAAS/F,KAAKgf,gBACnChf,KAAKif,YAAcY,GAEvB,CAEQT,IAAID,IACV,MAAMW,GAAmB9f,KAAK+f,oBAAoBZ,IAC5CrZ,GAAM9F,KAAKqb,OAAOrb,KAAKgf,cAC7B,OAAOhf,KAAKye,WAAWjS,KAAkB1G,GAAK,CAACka,YAAaF,IAC9D,CAEQF,YAAYpa,IAMlB,MALmB,CACjB,mDACA,MAEwBya,KAAKC,IAAS1a,GAAM2a,cAAcC,WAAWF,GAAMC,eAE/E,CAEQR,YAAYR,IAClB,MAAO,SAAWA,GAAYkB,MAAM,EAAGrgB,KAAK8e,eAC9C,CAEQiB,oBAAoBZ,IAC1B,MAAMmB,GAAStgB,KAAK4D,sBAAsB2c,cACpCta,GAAYjG,KAAK4D,sBAAsBqC,UACvCua,GAAOxgB,KAAK0e,gBAAgB+B,eAAe3N,WAC3C4N,GAAY1gB,KAAKyD,gBAAgBoB,eACjC8b,GAAS,GAAG3gB,KAAK2e,sBAAsBiC,WAAW5gB,KAAK2e,sBAAsBkC,kBAC7E/a,GAAM9F,KAAKsD,SAASwd,MAAK,GAI/B,MAFE,MAAM9gB,KAAK4e,uBAAuB3Y,kBAAyBya,QAAeJ,QAAYE,QAAUG,QAAY7a,QAASqZ,QAAiBnf,KAAKif,aAG/I,mDAxEWT,IAAmB7X,MAAAC,MAAAD,MAAAE,KAAAF,MAAAG,OAAAH,MAAAI,OAAAJ,MAAAK,MAAAL,MAAAM,MAAA,sCAAnBuX,GAAmBrX,QAAnBqX,GAAmBpX,UAAAuU,WAFlB,QAAM,SAEP6C,EAAoB,qICN1B,IAAMuC,EAAuB,MAA9B,MAAOA,UAA+B5F,IAG1Crb,YACU2e,EACAuC,GAER7gB,QAHQH,KAAAye,aACAze,KAAAghB,mBAJHhhB,KAAAihB,qBAAkD,IAAIxE,IAmK5Czc,KAAAkhB,OAAS,CACxB,CAACC,KAAM,EAAGC,KAAM,OAAQC,KAAM,SAAUC,MAAO,KAAMC,MAAO,GAC1D,CAACJ,KAAM,EAAGC,KAAM,QAASC,KAAM,0BAAYC,MAAO,KAAMC,MAAO,IAC/D,CAACJ,KAAM,EAAGC,KAAM,cAAeC,KAAM,iBAAkBC,MAAO,KAAMC,MAAO,GAC3E,CAACJ,KAAM,EAAGC,KAAM,cAAeC,KAAM,cAAeC,MAAO,KAAMC,MAAO,GACxE,CAACJ,KAAM,EAAGC,KAAM,UAAWC,KAAM,gBAAYC,MAAO,KAAMC,MAAO,GACjE,CAACJ,KAAM,EAAGC,KAAM,WAAYC,KAAM,cAAeC,MAAO,GAAIC,MAAO,GACnE,CAACJ,KAAM,EAAGC,KAAM,SAAUC,KAAM,aAAcC,MAAO,IAAKC,MAAO,GACjE,CAACJ,KAAM,GAAIC,KAAM,SAAUC,KAAM,YAAaC,MAAO,KAAMC,MAAO,GAClE,CAACJ,KAAM,GAAIC,KAAM,UAAWC,KAAM,UAAWC,MAAO,IAAKC,MAAO,GAChE,CAACJ,KAAM,GAAIC,KAAM,QAASC,KAAM,YAAaC,MAAO,IAAKC,MAAO,GAChE,CAACJ,KAAM,GAAIC,KAAM,WAAYC,KAAM,iBAAaC,MAAO,KAAMC,MAAO,GACpE,CAACJ,KAAM,GAAIC,KAAM,WAAYC,KAAM,uBAAcC,MAAO,KAAMC,MAAO,GACrE,CAACJ,KAAM,GAAIC,KAAM,kBAAmBC,KAAM,iCAAmBC,MAAO,KAAMC,MAAO,GACjF,CAACJ,KAAM,GAAIC,KAAM,WAAYC,KAAM,2BAAuBC,MAAO,IAAKC,MAAO,GAC7E,CAACJ,KAAM,GAAIC,KAAM,WAAYC,KAAM,mCAAqBC,MAAO,KAAMC,MAAO,GAC5E,CAACJ,KAAM,GAAIC,KAAM,OAAQC,KAAM,8CAAqCC,MAAO,KAAMC,MAAO,GACxF,CAACJ,KAAM,GAAIC,KAAM,aAAcC,KAAM,kCAAmCC,MAAO,IAAKC,MAAO,GAC3F,CAACJ,KAAM,GAAIC,KAAM,YAAaC,KAAM,WAAYC,MAAO,KAAMC,MAAO,GACpE,CAACJ,KAAM,GAAIC,KAAM,oBAAqBC,KAAM,0CAA8BC,MAAO,IAAKC,MAAO,IAC7F,CAACJ,KAAM,GAAIC,KAAM,WAAYC,KAAM,0BAAsBC,MAAO,IAAKC,MAAO,IAC5E,CAACJ,KAAM,GAAIC,KAAM,OAAQC,KAAM,+BAAgCC,MAAO,IAAKC,MAAO,GAClF,CAACJ,KAAM,GAAIC,KAAM,eAAgBC,KAAM,iBAAkBC,MAAO,KAAMC,MAAO,IAC7E,CAACJ,KAAM,GAAIC,KAAM,QAASC,KAAM,mBAAoBC,MAAO,IAAKC,MAAO,GACvE,CAACJ,KAAM,GAAIC,KAAM,YAAaC,KAAM,uCAA8BC,MAAO,KAAMC,MAAO,IACtF,CAACJ,KAAM,GAAIC,KAAM,WAAYC,KAAM,qBAAsBC,MAAO,KAAMC,MAAO,GAC7E,CAACJ,KAAM,IAAKC,KAAM,UAAWC,KAAM,GAAIC,MAAO,GAAIC,MAAO,IACzD,CACAJ,KAAM,IACNC,KAAM,aACNC,KAAM,iEACNC,MAAO,GACPC,MAAO,GAEP,CACAJ,KAAM,IACNC,KAAM,gBACNC,KAAM,kDACNC,MAAO,IACPC,MAAO,GACPC,OAAQ,EACJ,CAACrf,EAAG,EAAGG,KAAM,UAAWmf,KAAM,UAC9B,CAACtf,EAAG,EAAGG,KAAM,UAAWmf,KAAM,eAC9B,CAACtf,EAAG,EAAGG,KAAM,QAASmf,KAAM,YAC5B,CAACtf,EAAG,EAAGG,KAAM,QAASmf,KAAM,YAC5B,CAACtf,EAAG,EAAGG,KAAM,eAAgBmf,KAAM,yBAGvC,CACAN,KAAM,KACNC,KAAM,mBACNC,KAAM,0DACNC,MAAO,IACPC,MAAO,GAEP,CACAJ,KAAM,KACNC,KAAM,6BACNC,KAAM,0EACNC,MAAO,IACPC,MAAO,IAET,CACEJ,KAAM,KAAMC,KAAM,qBAAsBC,KAAM,QAASC,MAAO,IAAKC,MAAO,IA3N9E,CAEQG,yBAAyBC,GAC/B,MAAM3V,EAAM,IAAIyQ,IACdkF,SAAMpO,QAAQ1B,IACV7F,EAAIpH,IAAI,GAAGiN,EAAKnC,YAAYmC,EAAK+P,UAAW/P,EAAI,GAE7C7F,CACX,CAEA6V,oBAAoBC,GAClB,OAAO9hB,KAAKye,WAAWjS,KAAoCxM,KAAKqb,OAAO,wBAAyB,CAACyG,SAAUA,IACxG/c,QAAKiH,KAAIsB,GAAMA,EAAU3D,OAAOoY,QACrC,CAEAC,QAAQla,GACN,OAAO9H,KAAKye,WAAWzY,IAAShG,KAAKqb,OAAO,eAAiBvT,IAC1D/C,QAAKiH,KAAK7J,GAAMnC,KAAKiiB,8BAA8B9f,IACxD,CAEA+f,0BAA0BC,GACxB,OAAO,IAAI7X,IAAsBC,IAC/BvK,KAAKye,WAAWzY,IAAShG,KAAKqb,OAAO,oBAClCtW,QACCqd,KAAUC,GACRriB,KAAKghB,iBAAiBlP,uCAAuC/M,QAC3DC,KAAK8D,IACH9I,KAAKihB,qBAAuBjhB,KAAK0hB,yBAAyB5Y,EAAKmJ,aAAY,IAC5E,EACDjG,KAAI,IAAMqW,MACX,EAEHrW,KAAI3G,IACErF,KAAKihB,qBAAqBqB,MAC5Bjd,EAAOsE,OAAOA,OAAO4J,QAAS1B,IAC5BA,EAAK0Q,kBAAoBviB,KAAKihB,qBAAqBjb,IAAI,GAAG6L,EAAKjR,WAAW4hB,YAC1E3Q,EAAK4Q,sBAAwBziB,KAAKihB,qBAAqBjb,IAAI,GAAG6L,EAAKjR,WAAW4hB,cAG3End,EAAOsE,OAAOA,UAGxBvE,UAAUsd,IACTA,EAASnP,QAAQpR,GAAKnC,KAAK2iB,mBAAmBxgB,IAC1CggB,GACF5X,EAASvG,KAAK0e,GACdnY,EAAS5E,YAET3F,KAAK4iB,oBAAoBF,GAAUtd,UAAU,KAC3CmF,EAASvG,KAAK0e,GACdnY,EAAS5E,UAAQ,EAClB,EAEJ,EAEP,CAEQid,oBAAoBF,GAC1B,OAAO1iB,KAAKye,WAAWzY,IAAShG,KAAKqb,OAAO,yBACzCtW,QACCC,KAAIK,GAAUrF,KAAK6iB,sBAAsBH,EAAUrd,EAAOsE,OAAOA,UAAoC,EACrGqC,KAAI3G,GAAUA,EAAOsE,QAE3B,CAEQsY,8BAA8B1b,GACpC,MAAMuc,EAAUvc,EAASoD,OAAO1J,QAChCD,KAAK2iB,mBAAmBG,GAExB,MAAMC,EAAaxc,EAASoD,OAAOqZ,WACnC,IAAKD,GAAmC,GAArBA,EAAW1X,OAC5B9F,eAAQ0d,KAAK,uCAAyCH,EAAQliB,IACvDkiB,EAGTA,EAAQphB,kBAAoBohB,EAAQphB,mBAAqB,GACzD,QAAS0J,EAAI,EAAGA,EAAI2X,EAAW1X,OAAQD,IAAK,CAC1C,MAAM8X,EAAYH,EAAW3X,GAC7B8X,EAAU3B,MAAQvhB,KAAKmjB,mBAAmBD,EAAUE,IACpDN,EAAQphB,kBAAkB2R,KAAK6P,EACjC,CAEA,OAAOJ,CACT,CAEQH,mBAAmBG,GACzB,GAAIA,EAAQO,GAAI,CACd,MAAMC,EAAMC,YAAYT,EAAQO,GAAGG,GAAK,IAAIC,QAAQ,IAAK,MACrDH,GAAe,MAARA,IACTR,EAAQO,GAAGG,GAAKF,GAGlB,MAAMI,EAAMH,YAAYT,EAAQO,GAAGM,GAAK,IAAIF,QAAQ,IAAK,MACrDC,GAAe,MAARA,IACTZ,EAAQO,GAAGM,GAAKD,EAEpB,CACF,CAEQb,sBAAsBH,EAAqBK,GACjD,QAAS3X,EAAI2X,EAAW1X,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC/C,MAAM8X,EAAYH,EAAW3X,GAC7B,GAAiB,MAAb8X,EACF,SAGFA,EAAU3B,MAAQvhB,KAAKmjB,mBAAmBD,EAAUE,IAGpD,MAAMN,EAAUJ,EAAS9gB,KAAK0L,GAAKA,EAAE1M,IAAMsiB,EAAU3a,IACrD,GAAIua,IACFA,EAAQphB,kBAAoBohB,EAAQphB,mBAAqB,GACrDwhB,GACFJ,EAAQphB,kBAAkB2R,KAAK6P,GAIZ,MAAjBA,EAAUE,IAAeF,EAAUU,KACrCd,EAAQniB,GAAKuiB,EAAUU,GAAGC,EACtBX,EAAUU,GAAGE,IACfhB,EAAQiB,YAAcb,EAAUU,GAAGI,GACnClB,EAAQmB,gBAAkB,oBAKT,IAAjBf,EAAUE,IAAYF,EAAUU,IAAI,CACtC,MAAMN,EAAMC,YAAYL,EAAUU,GAAGC,EAAEK,IAAM,IAAIT,QAAQ,IAAK,MAC1DH,GAAe,MAARA,IACRR,EAAgBO,GAAGG,GAAKF,GAE3B,MAAMI,EAAMH,YAAYL,EAAUU,GAAGC,EAAEM,IAAM,IAAIV,QAAQ,IAAK,MAC1DC,GAAe,MAARA,IACRZ,EAAgBO,GAAGM,GAAKD,GAGvBR,EAAUU,GAAGE,IACfhB,EAAQiB,YAAcb,EAAUU,GAAGE,EACnChB,EAAQmB,gBAAkB,sBAE9B,CAGJ,CACF,CAEQd,mBAAmBiB,GACzB,QAAShZ,EAAI,EAAGA,GAAKpL,KAAKkhB,OAAO7V,OAAS,EAAGD,IAAK,CAChD,MAAMiZ,EAAQrkB,KAAKkhB,OAAO9V,GAC1B,GAAIgZ,IAAcC,EAAMlD,KACtB,OAAOkD,EAAM9C,KAEjB,CAEF,iDAlKWR,GAAsBpa,MAAAC,MAAAD,MAAAE,KAAA,sCAAtBka,EAAsB5Z,QAAtB4Z,EAAsB3Z,UAAAuU,WAFrB,QAAM,SAEPoF,CAAuB,8FCd9B,MAAOuD,EAEX,YAAIC,GACF,OAAOvkB,KAAKwgB,KACV,GAAGxgB,KAAKwgB,MAAMgE,UAAYxkB,KAAKwgB,KAAKgE,UAAU,GAAK,KAAKxkB,KAAKwgB,MAAMiE,SAAWzkB,KAAKwgB,MAAMiE,SAAS,GAAK,KAAKC,cAC1G,EACN,CAEA5kB,YAAmB0gB,GAAAxgB,KAAAwgB,MACnB,CAEA1N,WACE,MAAO,GAAG9S,KAAKwgB,MAAMgE,aAAaxkB,KAAKwgB,MAAMiE,YAAYzkB,KAAKwgB,MAAM9P,SAAS1Q,KAAKwgB,MAAMmE,OAC1F,CAEApM,cACE,MAAO,GAAGvY,KAAKwgB,MAAMgE,aAAaxkB,KAAKwgB,MAAMiE,UAC/C,yBCHK,IAAMG,EAAgB,MAAvB,MAAOA,UAAwBzJ,IAInC,iBAAIsF,GACF,OAAOzgB,KAAK6kB,WAAa,IAAIP,EAActkB,KAAK8kB,SAAS9kB,KAAK6kB,kBAAevjB,CAC/E,CAIAxB,YACU2e,GAERte,QAFQH,KAAAye,aAHHze,KAAA+kB,UAA4C,IAAI9b,IAAgB,KAMvE,CAEA+b,gBAAgBxX,GACd,OAAOxN,KAAKye,WAAWjS,KAAkBxM,KAAKqb,OAAO,2BAA4B7N,EACnF,CAEAyX,qBACE,OAAIjlB,KAAK6kB,YACP7kB,KAAKklB,cACLhhB,KAAKC,UAAUnE,KAAK6kB,YACb7kB,KAAK8kB,SAAS9kB,KAAK6kB,aAGrB7kB,KAAKye,WAAWjS,KAAiCxM,KAAKqb,OAAO,uBADpD,CAACpR,cAAc,IAE5BlF,QACCiH,KAAIzF,GAAYA,EAASoD,SAAM,EAC/B3E,KAAKwb,IACHxgB,KAAK6kB,WAAa7kB,KAAK8kB,SAAUtE,EAAa7W,QAC9C3J,KAAKklB,aAAW,GAExB,CAEQA,cACNllB,KAAK+kB,UAAU/gB,KAAKhE,KAAKygB,cAC3B,iDAtCWmE,GAAeje,MAAAC,MAAA,sCAAfge,EAAezd,QAAfyd,EAAexd,UAAAuU,WAFd,QAAM,SAEPiJ,CAAgB,uIChBvB,MAAOO,EAEXrlB,YACS4S,GACA4N,IADAtgB,KAAA0S,SACA1S,KAAAsgB,SACT,gBCHI,MAAO8E,EAKX,SAAIC,GACF,IAAKrlB,KAAKslB,OAAQ,CAChB,MAAMzT,GAAO0T,aAAaC,QAAQxlB,KAAKylB,YACvCzlB,KAAKslB,OAASzT,GAAO3N,KAAKgN,MAAMW,SAA2BvQ,CAC7D,CACA,OAAOtB,KAAKslB,QAAQ5S,OAAS1S,KAAKslB,OAAOhF,OAASpc,KAAKgN,MAAMhN,KAAKC,UAAUnE,KAAKslB,cAAWhkB,CAC9F,CAEAxB,cAXiBE,KAAAylB,WAAa,mBAY9B,CAEAC,KAAKC,IACH3lB,KAAKslB,OAASphB,KAAKgN,MAAMhN,KAAKC,UAAUwhB,KACxCJ,aAAaK,QAAQ5lB,KAAKylB,WAAYvhB,KAAKC,UAAUnE,KAAKslB,QAC5D,CAEAO,QACEN,aAAaO,WAAW9lB,KAAKylB,WAC/B,2GCNK,IAAMM,GAA0B,MAAjC,MAAOA,WAAkC5K,IAI7Crb,YACU2e,GACA1R,IAER5M,QAHQH,KAAAye,cACAze,KAAA+M,YAJD/M,KAAA4e,QAAkBC,IAO3B,CACAmH,iBAAiBxY,IACfA,GAAQC,SAAW,MACnBD,GAAQyY,sBAAwB,kBAAoBjmB,KAAK4e,QAEzD,MAAMja,GAAU,IAAIiG,KAAY,CAC9B+C,WAAYH,GAAQE,IAAM,KAG5B,OAAO1N,KAAKye,WAAWjS,KAA+BxM,KAAKub,WAAW,qBAAsB/N,GAAS,CAAE7I,aAAWI,QAChHqd,KAAU8D,IACJ1Y,GAAQE,GACH1N,KAAKmmB,aAAaphB,QACvBiH,KAAI,IAAMka,MAAa,EAGpB7Z,MAAG6Z,KAGhB,CAEOC,aAEL,OAAOnmB,KAAK+M,SAAST,SADTY,KAAYC,aAAe,cACJ,GACrC,CAEAiZ,oBAAoBf,IAClB,MAAM7X,GAAU,GAChBA,UAAQ6X,MAAQA,GAChB7X,GAAQ6Y,SAAW,MACnB7Y,GAAQyY,sBAAwB,kBAAoBjmB,KAAK4e,QAClD5e,KAAKye,WAAWjS,KAAUxM,KAAKub,WAAW,wBAAyB/N,GAC5E,CAEA8Y,iBAAiBrgB,IACf,MAAMtB,GAAU,CAACA,QAAS,IAAIiG,KAAY,CAAC3E,UAAWA,MACtD,OAAOjG,KAAKye,WAAWjS,KAAkBxM,KAAKub,WAAW,kBAAmB,GAAI5W,GAClF,CAEA4hB,cACE,OAAOvmB,KAAKye,WAAWjS,KAAkBxM,KAAKqb,OAAO,gBAAiB,GACxE,mDAlDW0K,IAAyBpf,MAAAC,MAAAD,MAAAE,MAAA,sCAAzBkf,GAAyB5e,QAAzB4e,GAAyB3e,UAAAuU,WAFxB,QAAM,SAEPoK,EAA0B,KCC1BS,GAAqB,MAA5B,MAAOA,GAIX,oBAAIC,GACF,OAAOzmB,KAAK0mB,iBACd,CAMA,qBAAIC,GAKF,OAJgB3mB,KAAK4mB,YAAYvB,OAAOwB,SACjBxb,QAAU,GACD,CAGlC,CAEA,iBAAIkV,GACF,OAAOvgB,KAAK4mB,WAAWvB,OAAOwB,QAAU7mB,KAAK4mB,WAAWvB,OAAOwB,QAAQ,GAAK,EAC9E,CAEA,kCAAIC,GACF,IAAIzhB,IAAS,EACb,MAAMggB,GAAQrlB,KAAK4mB,YAAYvB,MAC/B,GAAIA,IAAO0B,QAAS,CAClB,MAAMC,GAAM,IAAIpf,KACVmf,MAAUE,KAAS5B,IAAO0B,SAGhC1hB,GAFqC,MAApBggB,IAAOpf,YAAa,EAAQihB,KAAQH,GAASC,KACnB,MAAlB3B,IAAOwB,SAA8C,IAA3BxB,IAAOwB,SAASxb,MAErE,CACA,OAAOhG,EACT,CAEA,mBAAI8hB,GACF,IAAI9hB,IAAS,EACb,MAAMggB,GAAQrlB,KAAK4mB,YAAYvB,MAC/B,GAAIA,IAAO0B,QAAS,CAClB,MAAMC,GAAM,IAAIpf,KACVmf,MAAUE,KAAS5B,GAAM0B,SAC/B1hB,GAA4B,MAAnBggB,GAAMpf,YAAa,EAAQihB,KAAQH,GAASC,IAChD3hB,IACHrF,KAAK4mB,WAAWQ,aAEpB,CACA,OAAO/hB,IAAqC,IAA3BggB,IAAOwB,SAASxb,MACnC,CAEA,eAAIgc,GACF,MAAM5W,GAAQzQ,KAAKyD,gBAAgB6jB,qBAEnC,QADe7W,IAAQA,GAAM1K,SAAS,YAExC,CAEA,mBAAIwhB,GACF,OAAOvnB,KAAKwnB,gBACd,CAEA,aAAIvhB,GACF,OAAOjG,KAAK4mB,YAAYvB,OAAOpf,SACjC,CAKAnG,YACUyD,GACAE,GACAgkB,IAFAznB,KAAAuD,wBACAvD,KAAAyD,mBACAzD,KAAAynB,6BArEOznB,KAAA0mB,kBAAoB,IAAIzd,KAAgB,GAMxCjJ,KAAA4mB,WAAa,IAAIc,IAEjB1nB,KAAA2nB,qBAAuB,IAAIvC,EAuDpCplB,KAAAwnB,kBAAmB,EAQzBxnB,KAAK4nB,0BACA5nB,KAAKuD,qBAAqBskB,cAAgB7nB,KAAKuD,qBAAqBukB,gBAAkB9nB,KAAK4mB,WAAWvB,OAASrlB,KAAKmnB,iBACvHnnB,KAAK0mB,kBAAkB1iB,MAAK,EAEhC,CAEA+jB,UAAUC,IACR,OAAuC,MAAnChoB,KAAK4mB,YAAYvB,OAAO4C,SAIrBjoB,KAAK4mB,WAAWvB,MAAM4C,QAAQliB,SAASiiB,GAChD,CAEAE,aAAaC,IACX,OAA0C,MAAtCnoB,KAAK4mB,YAAYvB,OAAO+C,YAGrBpoB,KAAK4mB,WAAWvB,MAAO+C,WAAWriB,SAASoiB,GACpD,CAEAE,eACE,OAAQroB,KAAK4mB,WAAWvB,OAAOwB,SAAW,IAAIyB,KAAK,CAACC,GAAGC,KAAMD,GAAEE,cAAcD,IAC/E,CAEAE,mBAAmBC,IACjB,MAAMnb,GAAmC,GACzCA,UAAQob,MAAQ5oB,KAAK6oB,iBAAkBD,MACvCpb,GAAQsb,SAAW9oB,KAAK6oB,iBAAkBC,SAC1Ctb,GAAQub,kBAAoB/oB,KAAK6oB,iBAAkBE,kBACnDvb,GAAQ9C,UAAY1K,KAAK4mB,WAAWvB,OAAOpf,UAC3CuH,GAAQE,GAAKib,GAEN3oB,KAAKgpB,aAAaxb,GAC3B,CAEAyb,4BAEEC,OAAS,KAAM9jB,UAAU,KACrB,GAAIpF,KAAKmnB,gBAAiB,CACxB,MAAMJ,MAAUE,KAASjnB,KAAK4mB,WAAWvB,MAAO0B,UAGhD,EAFiBoC,KAAoBpC,GAAS,IAAInf,OAElC,GACd5H,KAAKynB,0BAA0BlB,cAAcnhB,UAAUmB,KAC7B,MAApBA,GAASqG,OACX5M,KAAK4mB,WAAWwC,qBAEhBppB,KAAK0mB,kBAAkB1iB,MAAK,EAAK,EAEzC,MACEhE,KAAKuD,qBAAqB+C,UAAQ,EAG1C,CAEA0iB,aAAaxb,IACX,OAAOxN,KAAKynB,0BAA0BzB,iBAAiBxY,IAASzI,QAC9DC,KAAIuB,KACAvG,KAAKyD,gBAAgB4lB,2BACrBrpB,KAAK4mB,WAAW0C,UAAU/iB,IAAU,GACpC,MAAMgjB,GAAkBhjB,IAAUgjB,gBAAkB,IAAIpE,EAAgB5e,IAAUgjB,gBAAiB/b,GAAQE,SAAMpM,EAC7GioB,IACFvpB,KAAK2nB,qBAAqBjC,KAAK6D,IAEjC,MAAMC,GAAgD,IAA7BjjB,GAASsgB,SAASxb,OACvCme,IAAoBxpB,KAAK6oB,kBAC3B7oB,KAAK0mB,kBAAkB1iB,KAAKwlB,IAE9BxpB,KAAK6oB,iBAAmBrb,KAGhC,CAEA4Y,oBAAoBf,IAClB,OAAOrlB,KAAKynB,0BAA0BrB,oBAAoBf,IAAOtgB,QAC/DC,KAAIuB,KACFvG,KAAKwnB,kBAAmB,EACxBxnB,KAAK4mB,WAAW0C,UAAU/iB,IAAU,GACpCvG,KAAK0mB,kBAAkB1iB,MAAK,EAAI,GAEtC,CAEAylB,eACE,MAAMxjB,GAAYjG,KAAK4mB,WAAWvB,OAAOpf,WAAa,GACtD,OAAKjG,KAAKwnB,mBACRxnB,KAAK4mB,WAAWQ,cAChBpnB,KAAK2nB,qBAAqB9B,SAGrB7lB,KAAKynB,0BAA0BnB,iBAAiBrgB,IACpDlB,QAAKiH,KAAIzF,IAAmC,IAAvBA,GAASjB,WACnC,CAEOokB,kCACL,IAAK1pB,KAAK2nB,qBAAqBtC,MAC7B,OAAO,IAAI/a,IAAqCC,KAC9CA,GAAS/E,QACT+E,GAAS5E,UAAQ,GAIrB,MAAM6H,GAAU,GAChBA,UAAQE,GAAK1N,KAAK2nB,qBAAqBtC,MAAM/E,OAC7C9S,GAAQ2X,gBAAkBnlB,KAAK2nB,qBAAqBtC,OAAO3S,MAEpD1S,KAAKgpB,aAAaxb,GAC3B,CAEQoa,yBACN5nB,KAAK0mB,kBAAkBthB,UAAU4O,KAC/BhU,KAAK2pB,uBAAuB3V,GAAQ,EAExC,CAEQ2V,uBAAuBC,IAC7B,MAAMC,GAAmB7pB,KAAK8pB,mCAC9B,GAAID,GACF7pB,KAAKuD,qBAAqBwmB,QAAQF,SAKpC,GADuB7pB,KAAKgqB,oBAAoBjkB,SAAS,iBACzD,CACE,MAAM,EAAIkkB,IAAiBjqB,KAAKgqB,oBAAoB7e,MAAM,KAC1DnL,KAAKuD,qBAAqB2mB,mBAAmBD,GAE/C,MAEIL,GACF5pB,KAAKuD,qBAAqB4mB,cAEnBnqB,KAAK2nB,sBAAsBtC,MAClCrlB,KAAK0pB,kCAAkCtkB,aAGtCpF,KAAKuD,qBAAqB2C,2BAC1BlG,KAAKuD,qBAAqBskB,cAC1B7nB,KAAKuD,qBAAqBukB,iBAC1B9nB,KAAKuD,qBAAqB6mB,4BAE3BpqB,KAAKuD,qBAAqB8mB,SAE9B,CAEQP,mCAGN,OAFkB,IAAIQ,gBAAgBC,OAAOjnB,SAASknB,QACnBxkB,IAAI,cAEzC,CAEQgkB,oBACN,OAAOO,OAAOjnB,SAASmnB,QACzB,mDAlOWjE,IAAqB7f,MAAAC,KAAAD,MAAAE,KAAAF,MAAAG,IAAA,sCAArB0f,GAAqBrf,QAArBqf,GAAqBpf,UAAAuU,WAFpB,QAAM,SAEP6K,EAAqB,yGCd5B,MAAOkB,EAOX,SAAIrC,GACF,GAAIrlB,KAAK0qB,WAAa1qB,KAAKslB,OAAQ,CACjC,MAAMzT,EAAO0T,aAAaC,QAAQxlB,KAAKylB,YACvCzlB,KAAKslB,OAASzT,EAAO3N,KAAKgN,MAAMW,QAAiBvQ,CACnD,CACA,OAAOtB,KAAKslB,OAAStlB,KAAK8kB,SAAS9kB,KAAKslB,aAAUhkB,CACpD,CAGAxB,cAdQE,KAAA0qB,UAAW,EACF1qB,KAAAylB,WAAa,OAc9B,CAEQX,SAAS6F,GACf,OAAOzmB,KAAKgN,MAAMhN,KAAKC,UAAUwmB,GACnC,CAEQC,cAAcjF,GACpB,MAAMkF,EAAgB7qB,KAAK8kB,SAASa,GAE9BmF,EAAa,GACnBA,SAAW1C,WAAayC,EAAczC,WACtC0C,EAAWjE,QAAUgE,EAAchE,QACnCiE,EAAW7kB,UAAY4kB,EAAc5kB,UACrC6kB,EAAWC,YAAcF,EAAcE,YACvCD,EAAW7C,QAAU4C,EAAc5C,QACnC6C,EAAW/D,QCIA,SAASiE,EAAUC,EAAMvf,GACtC,IAAIwf,EAAiBC,GAErBC,OAAa,EAAGC,WAChB,IAAIC,KAAeC,KAAON,GAE1B,GAAIO,MAAMF,EAAaG,WACrB,MAAM,IAAI3P,WAAW,sBAGvB,IAAI4P,EAASC,OAAgG,QAAxFT,EAAoExf,GAAQggB,cAAwC,IAApBR,EAA6BA,EAAkB,YAChKU,EAAiBD,OAA8G,QAAtGR,EAA0Ezf,GAAQkgB,sBAAsD,IAA1BT,EAAmCA,EAAwB,YAEtM,GAAe,aAAXO,GAAoC,UAAXA,EAC3B,MAAM,IAAI5P,WAAW,wCAGvB,GAAuB,SAAnB8P,GAAgD,SAAnBA,GAAgD,aAAnBA,EAC5D,MAAM,IAAI9P,WAAW,wDAGvB,IAAIzW,EAAS,GACTwmB,EAAW,GACXC,EAA2B,aAAXJ,EAAwB,IAAM,GAC9CK,GAA2B,aAAXL,EAAwB,IAAM,GAElD,GAAuB,SAAnBE,EAA2B,CAC7B,IAAII,MAAMC,KAAgBX,EAAaY,UAAW,GAC9Chd,MAAQ+c,KAAgBX,EAAaa,WAAa,EAAG,GACrDld,MAAOgd,KAAgBX,EAAac,cAAe,GAEvD/mB,EAAS,GAAGgnB,OAAOpd,IAAMod,OAAOP,GAAeO,OAAOnd,IAAOmd,OAAOP,GAAeO,OAAOL,GAC5F,CAGA,GAAuB,SAAnBJ,EAA2B,CAE7B,IAAIU,GAAShB,EAAaiB,oBAE1B,GAAe,IAAXD,GAAc,CAChB,IAAIE,GAAiBC,KAAKC,IAAIJ,IAC1BK,MAAaV,KAAgBQ,KAAKG,MAAMJ,GAAiB,IAAK,GAC9DK,MAAeZ,KAAgBO,GAAiB,GAAI,GAGxDX,EAAW,GAAGQ,OADHC,GAAS,EAAI,IAAM,KACHD,OAAOM,GAAY,KAAKN,OAAOQ,GAC5D,MACEhB,EAAW,IAGb,IAIIiB,GAAuB,KAAXznB,EAAgB,GAAK,IAEjCsC,GAAO,EANPolB,EAAOd,KAAgBX,EAAa0B,WAAY,IAChDC,EAAShB,KAAgBX,EAAa4B,aAAc,IACpDC,EAASlB,KAAgBX,EAAa8B,aAAc,IAItBC,KAAKtB,IAEvC1mB,EAAS,GAAGgnB,OAAOhnB,GAAQgnB,OAAOS,IAAWT,OAAO1kB,IAAM0kB,OAAOR,EACnE,CAEA,OAAOxmB,CACT,CDlEyB2lB,CEfV,SAASsC,EAAWC,EAAWC,IAC5CpC,OAAa,EAAGC,WAChB,IAAIoC,KAASC,KAAUF,GACvB,SAAOG,KAAgBJ,EAvBI,IAuBOE,EACpC,CFWmCH,CAAW,IAAI1lB,KAAQ,KAC/CkjB,CACT,CAEAxB,UAAU3D,EAAiBiI,GACzB5tB,KAAK0qB,SAAWkD,EAChB5tB,KAAKslB,OAAStlB,KAAK4qB,cAAcjF,GAC7B3lB,KAAK0qB,UACPnF,aAAaK,QAAQ5lB,KAAKylB,WAAYvhB,KAAKC,UAAUnE,KAAKslB,QAC9D,CAEA8D,qBACEppB,KAAKspB,UAAUtpB,KAAKqlB,MAAQrlB,KAAK0qB,SACnC,CAEAtD,cACMpnB,KAAK0qB,UACPnF,aAAaO,WAAW9lB,KAAKylB,WACjC,+DGnDK,IAAMrK,EAAW,MAAlB,MAAOA,EAEXtb,cAAgB,CAENglB,SAAS6F,GACjB,OAAOzmB,KAAKgN,MAAMhN,KAAKC,UAAUwmB,GACnC,iDANWvP,EAAW,sCAAXA,EAAWjU,QAAXiU,EAAWhU,UAAAuU,WAFV,QAAM,SAEPP,CAAW,2ECEjB,IAAMyS,EAAa,MAApB,MAAOA,EAEX/tB,YAAoBguB,GAAA9tB,KAAA8tB,WAAuB,CAE3CC,KAAKC,EAAgBC,GAYnB,OAXkBjuB,KAAK8tB,UAAUC,KAAKC,EAAW,CAC/CllB,KAAMmlB,EACNC,cAAc,EACdC,WAAY,SACZC,SAAU,QACVC,UAAW,QACXC,OAAQ,OACRC,MAAO,OACPC,WAAW,GAIf,iDAjBWX,GAAalnB,MAAAC,MAAA,sCAAbinB,EAAa1mB,QAAb0mB,EAAazmB,UAAAuU,WAFZ,QAAM,SAEPkS,CAAa,iECC1B,MAAMY,OAAIntB,EASVotB,EAAe,CAAC,KAAM,CAAC,CAAC,KAAM,MAAOD,EAAGA,GAAIA,EAAG,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,WAAS,CAAC,UAAW,gBAAiB,iBAAe,eAAgB,eAAgB,cAAe,aAAW,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,YAAUA,EAAG,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,CAAC,UAAW,YAAa,WAAS,QAAS,OAAQ,QAAS,QAAS,SAAU,WAAY,UAAW,WAAY,aAAcA,EAAG,CAAC,CAAC,OAAQ,QAASA,EAAG,CAAC,kBAAmB,qBAAsB,EAAG,CAAC,EAAG,GAAI,CAAC,UAAW,oBAAqB,qBAAsB,4BAA6B,CAAC,QAAS,WAAY,aAAc,iBAAkB,CAAC,UAAWA,EAAGA,EAAGA,GAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAK,SAAK,SAAK,MAAO,KAAM,CAAC,YAAa,SAAU,mBAAc,OAAQ,MAAO,KAAM,kBAAmB,CAAEE,IAAO,CAAC,MAAO,KAAMC,IAAO,CAACH,EAAG,WAAOI,IAAO,CAAC,SAAO,QAAMC,IAAO,CAACL,EAAG,UAAMM,IAAO,CAAC,QAASC,IAAO,CAACP,EAAG,KAAMQ,IAAO,CAACR,EAAG,SAAOS,IAAO,CAAC,UAAMC,IAAO,CAAC,OAAQC,IAAO,CAAC,MAAO,MAAQ,MARxoC,SAASC,EAAOC,IACZ,MAAelkB,GAAIqhB,KAAKG,MAAMH,KAAKC,IAAI4C,KAAOntB,GAAImtB,GAAIxc,WAAW2Q,QAAQ,YAAa,IAAIpY,OAAQiP,GAAIiV,SAASD,GAAIxc,WAAW2Q,QAAQ,uBAAwB,QAAU,EACxK,OAAIrY,KAAMqhB,KAAKG,MAAMxhB,KAAOA,IAAK,GAAKA,IAAK,EAChC,EACD,IAANkP,IAAoB,IAANlP,IAAaA,GAAI,KAAY,GAAW,IAANjJ,MAAemY,IAAK,GAAKA,IAAK,GACvE,EACJ,CACX,kECGIkV,EAAa,CACfvE,QAAMwE,KAAkB,CACtBC,QApBc,CAChBC,KAAM,oBACNC,KAAM,cACNC,OAAQ,aACRC,MAAO,cAiBLC,aAAc,SAEhBpoB,QAAM8nB,KAAkB,CACtBC,QAlBc,CAChBC,KAAM,gBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,SAeLC,aAAc,SAEhBC,YAAUP,KAAkB,CAC1BC,QAhBkB,CACpBC,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAaLC,aAAc,UCFlB,MAAAE,EAda,CACX7tB,KAAM,QACN8tB,eAAgBA,IAChBV,WDgBaA,ECfbW,eAAgBA,IAChBC,SAAUA,IACVC,MAAOA,IACP3kB,QAAS,CACP4kB,aAAc,EAGdC,sBAAuB,ICzB3B,IAAIC,EAAuB,CACzBC,iBAAkB,CAChBC,IAAK,sBACLC,MAAO,+BAETC,SAAU,CACRF,IAAK,YACLC,MAAO,sBAETE,YAAa,cACbC,iBAAkB,CAChBJ,IAAK,qBACLC,MAAO,8BAETI,SAAU,CACRL,IAAK,WACLC,MAAO,qBAETK,YAAa,CACXN,IAAK,yBACLC,MAAO,mCAETM,OAAQ,CACNP,IAAK,SACLC,MAAO,mBAETO,MAAO,CACLR,IAAK,QACLC,MAAO,kBAETQ,YAAa,CACXT,IAAK,2BACLC,MAAO,qCAETS,OAAQ,CACNV,IAAK,WACLC,MAAO,qBAETU,aAAc,CACZX,IAAK,2BACLC,MAAO,mCAETW,QAAS,CACPZ,IAAK,WACLC,MAAO,mBAETY,YAAa,CACXb,IAAK,wBACLC,MAAO,kCAETa,OAAQ,CACNd,IAAK,QACLC,MAAO,kBAETc,WAAY,CACVf,IAAK,gBACLC,MAAO,0BAETe,aAAc,CACZhB,IAAK,cACLC,MAAO,yBA2BX,MCtDAgB,GAdiB,CACf1G,QAAMwE,KAAkB,CACtBC,QApBc,CAChBC,KAAM,2BACNC,KAAM,qBACNC,OAAQ,oBACRC,MAAO,WAiBLC,aAAc,SAEhBpoB,QAAM8nB,KAAkB,CACtBC,QAlBc,CAChBC,KAAM,gBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,SAeLC,aAAc,SAEhBC,YAAUP,KAAkB,CAC1BC,QAhBkB,CACpBC,KAAM,4BACNC,KAAM,4BACNC,OAAQ,qBACRC,MAAO,sBAaLC,aAAc,UC9BlB,IAAI6B,GAAuB,CACzBC,SAAU,SAAkB5G,IAC1B,IAAI6G,GAAU7G,GAAK8G,YAEnB,MAAO,KADgB,IAAZD,IAA6B,IAAZA,GAAgB,YAAW,aACnC,kBACtB,EACAE,UAAW,kBACXC,MAAO,iBACPC,SAAU,sBACVC,SAAU,iBACVxB,MAAO,oBC8GT,MAAAyB,GA5Be,CACbC,cANkB,SAAuBC,GAAaC,IAEtD,OADa/S,OAAO8S,IACJ,MAClB,EAIEE,OAAKC,MAAgB,CACnBC,OA9FY,CACdC,OAAQ,CAAC,KAAM,MACfC,YAAa,CAAC,OAAQ,QACtBC,KAAM,CAAC,kBAAmB,qBA4FxB9C,aAAc,SAEhB+C,WAASL,MAAgB,CACvBC,OA7FgB,CAClBC,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,kBAAgB,kBAAgB,kBAAgB,oBA2FrD9C,aAAc,OACdgD,iBAAkB,SAA0BD,IAC1C,OAAOA,GAAU,CACnB,IAEF5jB,SAAOujB,MAAgB,CACrBC,OA/Fc,CAChBC,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,KAAM,CAAC,UAAW,YAAa,WAAS,QAAS,OAAQ,QAAS,QAAS,SAAU,WAAY,UAAW,WAAY,aA6FtH9C,aAAc,SAEhB/D,OAAKyG,MAAgB,CACnBC,OA9FY,CACdC,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvC7C,MAAO,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,UAClD8C,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,UACxDC,KAAM,CAAC,UAAW,gBAAiB,iBAAe,eAAgB,eAAgB,cAAe,cA2F/F9C,aAAc,SAEhBiD,aAAWP,MAAgB,CACzBC,OA5FkB,CACpBC,OAAQ,CACNM,GAAI,KACJC,GAAI,KACJC,SAAU,aACVC,KAAM,WACNC,QAAS,WACTC,UAAW,QACXC,QAAS,QACTC,MAAO,aAETZ,YAAa,CACXK,GAAI,KACJC,GAAI,KACJC,SAAU,aACVC,KAAM,WACNC,QAAS,WACTC,UAAW,QACXC,QAAS,QACTC,MAAO,aAETX,KAAM,CACJI,GAAI,KACJC,GAAI,KACJC,SAAU,aACVC,KAAM,WACNC,QAAS,WACTC,UAAW,QACXC,QAAS,QACTC,MAAO,cAgEPzD,aAAc,OACd0D,iBA9D4B,CAC9Bd,OAAQ,CACNM,GAAI,KACJC,GAAI,KACJC,SAAU,aACVC,KAAM,WACNC,QAAS,cACTC,UAAW,WACXC,QAAS,WACTC,MAAO,gBAETZ,YAAa,CACXK,GAAI,KACJC,GAAI,KACJC,SAAU,aACVC,KAAM,WACNC,QAAS,cACTC,UAAW,WACXC,QAAS,WACTC,MAAO,gBAETX,KAAM,CACJI,GAAI,KACJC,GAAI,KACJC,SAAU,aACVC,KAAM,WACNC,QAAS,cACTC,UAAW,WACXC,QAAS,WACTC,MAAO,iBAkCPE,uBAAwB,yBCxF5B,MAAAC,GAda,CACXvxB,KAAM,KACN8tB,eJ+CmB,SAAwB7K,GAAOuO,GAAOloB,IACzD,IAAIrG,GACAwuB,GAAarD,EAAqBnL,IAUtC,OAPEhgB,GADwB,iBAAfwuB,GACAA,GACU,IAAVD,GACAC,GAAWnD,IAEXmD,GAAWlD,MAAMlN,QAAQ,YAAakI,OAAOiI,KAGxC,MAAZloB,IAA0CA,GAAQooB,UAChDpoB,GAAQqoB,YAAcroB,GAAQqoB,WAAa,EACtC,WAAa1uB,GAEb,SAAQA,GAIZA,EACT,EInEEmqB,WAAYA,GACZW,eFNmB,SAAwB9K,GAAO4F,GAAM+I,GAAWzB,IACnE,IAAI7G,GAASkG,GAAqBvM,IAElC,MAAsB,mBAAXqG,GACFA,GAAOT,IAGTS,EACT,EEDE0E,SAAUA,GACVC,MCmCU,CACVgC,yBAAe4B,GAAoB,CACjCC,aAxD4B,sBAyD5BC,aAxD4B,OAyD5BC,cAAe,SAAuB1hB,IACpC,OAAO6c,SAAS7c,GAAO,GACzB,IAEF8f,OAAK6B,MAAa,CAChBC,cA7DmB,CACrB3B,OAAQ,gBACRC,YAAa,6DACbC,KAAM,qEA2DJ0B,kBAAmB,OACnBC,cA1DmB,CACrBC,IAAK,CAAC,OAAQ,QACd5B,KAAM,CAAC,yCAA0C,mCAyD/C6B,kBAAmB,QAErB5B,WAASuB,MAAa,CACpBC,cA1DuB,CACzB3B,OAAQ,WACRC,YAAa,YACbC,KAAM,kCAwDJ0B,kBAAmB,OACnBC,cAvDuB,CACzBC,IAAK,CAAC,KAAM,KAAM,KAAM,OAuDtBC,kBAAmB,MACnBN,cAAe,SAAuBO,IACpC,OAAOA,GAAQ,CACjB,IAEFzlB,SAAOmlB,MAAa,CAClBC,cA3DqB,CACvB3B,OAAQ,eACRC,YAAa,sDACbC,KAAM,mGAyDJ0B,kBAAmB,OACnBC,cAxDqB,CACvB7B,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtF8B,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,MAAO,MAAO,MAAO,QAuD5FC,kBAAmB,QAErB1I,OAAKqI,MAAa,CAChBC,cAxDmB,CACrB3B,OAAQ,WACR7C,MAAO,wCACP8C,YAAa,wCACbC,KAAM,mHAqDJ0B,kBAAmB,OACnBC,cApDmB,CACrB7B,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnD8B,IAAK,CAAC,MAAO,QAAS,MAAO,QAAS,QAAS,QAAS,eAmDtDC,kBAAmB,QAErB1B,aAAWqB,MAAa,CACtBC,cApDyB,CAC3B3B,OAAQ,+EACR8B,IAAK,2FAmDHF,kBAAmB,MACnBC,cAlDyB,CAC3BC,IAAK,CACHxB,GAAI,MACJC,GAAI,MACJC,SAAU,SACVC,KAAM,SACNC,QAAS,eACTC,UAAW,SACXC,QAAS,SACTC,MAAO,eA0CPkB,kBAAmB,SDzErBhpB,QAAS,CACP4kB,aAAc,EAGdC,sBAAuB,wCEbpB,IAAMqE,GAAe,MAAtB,MAAOA,GAUX,WAAItd,GACF,OAAOtX,KAAK60B,QACd,CACA,WAAIvd,CAAQlV,IACVpC,KAAK60B,SAAWzyB,GAChBmjB,aAAaK,QAAQ,WAAYxjB,IACjCpC,KAAK80B,cACP,CAEA,4BAAIC,GACF,OAAO/0B,KAAK8W,mBAAmBlV,KAAKozB,IAAKA,GAAE5yB,OAASpC,KAAKsX,QAC3D,CAEA,sBAAIR,GACF,OAAO9W,KAAKi1B,mBACd,CAEA,yBAAWC,GACT,MAAqB,OAAjBl1B,KAAKsX,QACA6d,IAEY,OAAjBn1B,KAAKsX,QACA8d,EAEY,OAAjBp1B,KAAKsX,QACAoX,GAGF0G,CACT,CAEAt1B,YACUu1B,GACAC,IADAt1B,KAAAq1B,oBACAr1B,KAAAs1B,iBAzCOt1B,KAAAi1B,oBAA2C,CAC1D,CAAE7yB,KAAM,KAAMmzB,OAAQ,QAASC,SAAU,OACzC,CAAEpzB,KAAM,KAAMmzB,OAAQ,QAASC,SAAU,OACzC,CAAEpzB,KAAM,KAAMmzB,OAAQ,KAAMC,SAAU,QAGhCx1B,KAAA60B,SAAW,QAqCjBY,MAAmBC,EAAU,MAC7B11B,KAAK60B,SAAWtP,aAAaC,QAAQ,aAAe,KACpDxlB,KAAK80B,cACP,CAEQA,eACN90B,KAAKq1B,iBAAiBM,IAAI31B,KAAK60B,UAAUzvB,UAAU,KACjDpF,KAAK41B,2BACL51B,KAAK61B,sBAAoB,EAE7B,CAEQD,2BACN,QAASve,MAAQrX,KAAKi1B,oBACpBj1B,KAAKq1B,iBAAiBrvB,IAAI,YAAcqR,GAAKjV,MAAMgD,UAAU0wB,IAAKze,GAAKV,cAAgBmf,GAC3F,CAEQD,uBACN71B,KAAKq1B,iBAAiBrvB,IAAI,WAAWZ,UAAUid,IAAOriB,KAAKs1B,cAAcS,eAAe1T,IAC1F,mDAhEWuS,IAAejuB,OAAAC,OAAAD,OAAAE,OAAA,uCAAf+tB,GAAeztB,QAAfytB,GAAextB,UAAAuU,WAFd,QAAM,SAEPiZ,EAAe,+FCDrB,IAAMoB,EAAoB,MAA3B,MAAOA,UAA4B5a,IAOvC,iBAAI6a,GACF,OAAOj2B,KAAKk2B,eACd,CAGA,kBAAIC,GACF,OAAOn2B,KAAKo2B,gBACd,CAEAt2B,cACEK,QAfMH,KAAAq2B,aAAe,IAAI5Z,IACnBzc,KAAAs2B,YAAc,IAAI7Z,IAClBzc,KAAAu2B,kCAAoC,IAAI9Z,IAE/Bzc,KAAAk2B,gBAAkB,IAAIjtB,IAA0B,IAKhDjJ,KAAAo2B,iBAAmB,IAAIntB,IAA2B,GAOnE,CAEAutB,aAAa9T,GACX1iB,KAAKq2B,aAAaxQ,QAClB,MAAMnhB,EAAQ1E,KAAK8kB,SAASpC,GAC5Bhe,EAAM6O,QAAQpR,GAAKnC,KAAKq2B,aAAazxB,IAAIzC,EAAEvB,GAAIuB,IAE/CnC,KAAKo2B,iBAAiBpyB,KAAKU,EAC7B,CAEA+xB,mBAAmB3T,GACjB,MAAMpe,EAAQ1E,KAAK8kB,SAAShC,GAC5B9iB,KAAKq2B,aAAazxB,IAAIke,EAAQliB,GAAI8D,EACpC,CAEAgyB,cACE,OAAOjZ,MAAMR,KAAKjd,KAAKq2B,aAAa3D,SACtC,CAEAiE,eAAe7uB,GACb,OAAO9H,KAAKq2B,aAAarwB,IAAI8B,IAAc,IAAI7H,GACjD,CAEA22B,YAAYC,GACV72B,KAAKs2B,YAAYzQ,QACH7lB,KAAK8kB,SAAS+R,GACtBtjB,QAAQujB,IACZ92B,KAAKu2B,kCAAkC3xB,IAAIkyB,EAAEC,GAAID,EAAEl2B,IACnDZ,KAAKs2B,YAAY1xB,IAAIkyB,EAAEl2B,GAAIk2B,EAAC,GAG9B92B,KAAKk2B,gBAAgBlyB,KAAK6yB,EAC5B,CAEAG,aACE,OAAOvZ,MAAMR,KAAKjd,KAAKs2B,YAAY5D,SACrC,CAEAuE,cAAcpvB,GACZ,OAAO7H,KAAKs2B,YAAYtwB,IAAI6B,IAAa,EAC3C,CAEAqvB,wBAAwBC,GACtB,MAAMtvB,EAAW7H,KAAKu2B,kCAAkCvwB,IAAImxB,GAC5D,OAAOtvB,EAAW7H,KAAKs2B,YAAYtwB,IAAI6B,GAAa,EACtD,iDA/DWmuB,EAAmB,sCAAnBA,EAAmB7uB,QAAnB6uB,EAAmB5uB,UAAAuU,WAFlB,QAAM,SAEPqa,CAAoB,uGCA1B,IAAMoB,EAAoB,MAA3B,MAAOA,EAEX,4BAAIlxB,GACF,OAAOlG,KAAKq3B,OAAOvxB,IAAIC,SAAS2R,IAA0BC,yBAC5D,CAEA,yBAAIxR,GACF,OAAOnG,KAAKq3B,OAAOvxB,IAAIC,SAAS,eAClC,CAEA,eAAI8hB,GACF,OAAO7nB,KAAKsD,SAASwd,OAAO/a,SAAS,UACvC,CAEA,kBAAI+hB,GACF,OAAO9nB,KAAKsD,SAASwd,OAAO/a,SAAS,aACvC,CAEA,8BAAIqkB,GACF,OAAOpqB,KAAKsD,SAASwd,OAAO/a,SAAS,0BACvC,CAEAjG,YACUu3B,EACA/zB,EACAg0B,GAFAt3B,KAAAq3B,SACAr3B,KAAAsD,WACAtD,KAAAs3B,mBAEV,CAEQC,iBAAiB9wB,GACvBzG,KAAKq3B,OAAOG,SAAS,CAAC9f,IAA0BC,yBAA2BlR,GAC7E,CAEAgxB,YACEz3B,KAAKu3B,iBAAiB7f,IAA0BE,QAClD,CAEA8f,mBACE13B,KAAKu3B,iBAAiB7f,IAA0BM,eAClD,CAEAqS,UACErqB,KAAKu3B,iBAAiB7f,IAA0BK,MAClD,CAEA4f,kBACE33B,KAAKu3B,iBAAiB7f,IAA0BO,cAClD,CAEA2f,8BACE53B,KAAKu3B,iBAAiB7f,IAA0BQ,0BAClD,CAEA2f,kBACE73B,KAAKu3B,iBAAiB7f,IAA0BlH,cAClD,CAEAsnB,4BAA4BrnB,GAC1BzQ,KAAKu3B,iBAAiB,GAAG7f,IAA0BS,6BAA6B1H,IAClF,CAEAsnB,+BACE/3B,KAAKu3B,iBAAiB7f,IAA0BW,2BAClD,CAEA8R,cACEnqB,KAAKq3B,OAAOG,SAAS,CAAC,SAAU,QAElC,CAEAQ,eAAe3S,GACbrlB,KAAKq3B,OAAOG,SAAS,CAAC,iBAAkBnS,GAC1C,CAEA4S,yBAAyBC,GACvBl4B,KAAKq3B,OAAOG,SAAS,CAAC,SAAU,QAAS,CAAEW,YAAa,CAAED,gBAC5D,CAEAnO,QAAQqO,GACNp4B,KAAKq3B,OAAOG,SAAS,CAAC9f,IAA0BG,MAAOugB,GACzD,CAEAlO,mBAAmBkO,GACjBp4B,KAAKq3B,OAAOG,SAAS,CAAC9f,IAA0BI,SAAUsgB,GAC5D,CAUAC,iBACEr4B,KAAKq3B,OAAOG,SAAS,CAAC,SAAU,WAAY,CAACW,YAAa,CAACG,KAAM,SACnE,CAEAC,eACEv4B,KAAKq3B,OAAOG,SAAS,CAAC,SAAU,SAAU,CAACW,YAAa,CAACG,KAAM,SACjE,CAEAE,gBACEx4B,KAAKq3B,OAAOG,SAAS,CAAC,SAAU,WAElC,CAEAiB,gBAAgBC,GACd14B,KAAKq3B,OAAOG,SAAS,CAAC,QAAS,UAAW,CAACW,YAAa,CAACG,KAAQ,UAAWK,GAAMD,IACpF,CAEAE,gBACE54B,KAAKq3B,OAAOG,SAAS,CAAC,SAAU,gBAClC,CAEAqB,SACE74B,KAAKq3B,OAAOG,SAAS,CAAC,SAAU,QAClC,CAEAsB,YACE94B,KAAKq3B,OAAOG,SAAS,CAAC,SAAU,WAClC,CAEAlxB,WACEtG,KAAKs3B,kBAAkByB,WACvB/4B,KAAKu3B,iBAAiB7f,IAA0BY,OAClD,CAEA0gB,aACEh5B,KAAKq3B,OAAOG,SAAS,CAAC,SAAU,YAClC,CAEOyB,oBACLj5B,KAAKq3B,OAAOG,SAAS,CAAC,SAAU,qBAClC,CAEO0B,aAAaC,GAClBn5B,KAAKq3B,OAAOG,SAAS,CAAC,SAAU,cAAe,CAAE2B,WAAYA,GAAcj1B,KAAKC,UAAUg1B,KAC5F,iDA1IW/B,GAAoBzwB,MAAAC,MAAAD,MAAAE,MAAAF,MAAAG,KAAA,sCAApBswB,EAAoBjwB,QAApBiwB,EAAoBhwB,UAAAuU,WAFnB,QAAM,SAEPyb,CAAoB,2ECL1B,IAAMgC,EAAiB,MAAxB,MAAOA,EAEXt5B,YACU8D,GAAA5D,KAAA4D,uBAEV,CAEAy1B,WACE,OAAOr5B,KAAK4D,sBAAsBmkB,UAAU,eAC9C,CAEAuR,qBACE,OAAOt5B,KAAK4D,sBAAsBmkB,UAAU,qBAC9C,CAEAwR,iBACE,OAAOv5B,KAAK4D,sBAAsBskB,aAAa,mBACjD,CAEAsR,sBACE,OAAOx5B,KAAK4D,sBAAsBskB,aAAa,mBACjD,CAEAuR,qBACE,OAAOz5B,KAAK4D,sBAAsBmkB,UAAU,yBAC9C,CAEA2R,kCACE,OAAO15B,KAAK4D,sBAAsBskB,aAAa,gCACjD,CAEAyR,mBACE,OAAO35B,KAAK4D,sBAAsBskB,aAAa,sBACjD,CAGA0R,mBACE,OAAO55B,KAAK4D,sBAAsBskB,aAAa,gBACjD,CAGA2R,4BACE,OAAO75B,KAAK4D,sBAAsBskB,aAAa,yBACjD,CAGA4R,uBACE,OAAO95B,KAAK4D,sBAAsBskB,aAAa,oBACjD,CAEA6R,0BACE,OAAO/5B,KAAK4D,sBAAsBskB,aAAa,uBACjD,CAEA8R,yBACE,OAAOh6B,KAAK4D,sBAAsBskB,aAAa,sBACjD,CAEA+R,0BACE,OAAOj6B,KAAK4D,sBAAsBskB,aAAa,uBACjD,CAEAgS,0BACE,OAAOl6B,KAAK4D,sBAAsBskB,aAAa,uBACjD,CAEAiS,cACE,OAAOn6B,KAAK4D,sBAAsBmkB,UAAU,qBAAuB/nB,KAAK4D,sBAAsBskB,aAAa,yBAC7G,CAEAnW,iBACE,OAAO/R,KAAK4D,sBAAsBskB,aAAa,uBACjD,CAEAlW,sBACE,OAAOhS,KAAK4D,sBAAsBskB,aAAa,4BACjD,iDA5EWkR,GAAiBzyB,MAAAC,KAAA,sCAAjBwyB,EAAiBjyB,QAAjBiyB,EAAiBhyB,UAAAuU,WAFhB,QAAM,SAEPyd,CAAiB,iECAvB,IAAMgB,EAAe,MAAtB,MAAOA,SAEap6B,KAAAq6B,iBAAmB,cAAe,QAClCr6B,KAAAs6B,gCAAkC,8BAA+B,QACjEt6B,KAAAu6B,eAAiB,YAAa,QAC9Bv6B,KAAAw6B,cAAgB,WAAY,QAC5Bx6B,KAAAy6B,qBAAuB,OAAQ,QAC/Bz6B,KAAA06B,gBAAkB,aAAa,CAEvD56B,cACA,CAEA66B,mBAAmBlqB,GACjB8U,aAAaK,QAAQwU,EAAgBK,qBAAsBhqB,EAC7D,CAEA6W,qBACE,OAAO/B,aAAaC,QAAQ4U,EAAgBK,qBAC9C,CAEAG,0BACE,OAAkE,OAA3DrV,aAAaC,QAAQ4U,EAAgBC,iBAC9C,CAEAhR,2BACE9D,aAAaK,QAAQwU,EAAgBC,iBAAkB,GACzD,CAEAQ,gCACE,OAAOtV,aAAaC,QAAQ4U,EAAgBE,gCAC9C,CAEAQ,8BAA8BC,GAC5BxV,aAAaK,QAAQwU,EAAgBE,gCAAiCS,EACxE,CAEAC,eACE,MAAMrC,EAAK34B,KAAKi7B,UAChB1V,oBAAaK,QAAQwU,EAAgBG,eAAgBr2B,KAAKC,UAAUw0B,IAC7DA,CACT,CAEA9zB,eAEE,OADW0gB,aAAaC,QAAQ4U,EAAgBG,iBAC/Bv6B,KAAKg7B,cACxB,CAEAE,YAAYC,GACV5V,aAAaK,QAAQwU,EAAgBI,cAAeW,EAASroB,WAC/D,CAEAsoB,cACE,MAAMvpB,EAAO0T,aAAaC,QAAQ4U,EAAgBI,eAClD,OAAO3oB,GAAQA,EAAuB,IACxC,CAEAwpB,eACE,MAAMxpB,EAAO0T,aAAaC,QAAQ4U,EAAgBM,iBAClD,OAAe,MAAR7oB,GAA+B,SAATA,CAC/B,CAEAypB,cAAcC,GACZhW,aAAaK,QAAQwU,EAAgBM,gBAAiBa,EAAQzoB,WAChE,CAEQmoB,UACN,IAAInE,OAAQlvB,MAAO6jB,UACf+P,EAAMC,aAAeA,YAAYzU,KAA4B,IAApByU,YAAYzU,OAAkB,EAE3E,MAAO,uCAAuCvD,QAAQ,QAASiY,IAC7D,IAAI/sB,EAAoB,GAAhB8d,KAAKkP,SACb,OAAI7E,EAAI,GACNnoB,GAAKmoB,EAAInoB,GAAK,GAAK,EACnBmoB,EAAIrK,KAAKG,MAAMkK,EAAI,MAEnBnoB,GAAK6sB,EAAK7sB,GAAK,GAAK,EACpB6sB,EAAK/O,KAAKG,MAAM4O,EAAK,MAEV,KAALE,EAAW/sB,EAAS,EAAJA,EAAU,GAAMmE,SAAS,GAAE,EAEvD,iDAhFWsnB,EAAe,sCAAfA,EAAejzB,QAAfizB,EAAehzB,UAAAuU,WAFd,QAAM,SAEPye,CAAe,2ICOtBzzB,MAAA,YAAmDA,MAAA,GAASA,8BAATA,cAAA8M,EAAAjO,QCLlD,IAAMo2B,EAAoB,MAA3B,MAAOA,EAIX97B,YACkCmuB,EACxB1qB,GADwBvD,KAAAiuB,QACxBjuB,KAAAuD,0BAEJ2X,WACFlb,KAAKwF,MAAQxF,KAAKiuB,MACtB,CAEA4N,WACE77B,KAAKuD,qBAAqB+C,UAC5B,iDAdWs1B,GAAoBj1B,MAKrBm1B,MAAen1B,MAAAC,KAAA,oCALdg1B,EAAoBtnB,UAAA,sBAAAG,MAAA,GAAAC,KAAA,EAAAC,OAAA,omBAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDL3BlO,MAJN,yBAIMA,CAJ6B,UAI7BA,CAHmE,UAGnEA,CAFsD,WAGpDA,MAAA,WACFA,QAEAA,MAAA,WAA+DA,MAAA,8BAAcA,QAE7EA,MAAA,WAAiDA,MAAA,yGACfA,MAA3B,QAA2BA,CAAA,aAAyBA,MAAA,sBAC3DA,YAEAA,MAAA,GAAAo1B,EAAA,aAEFp1B,QAEAA,MAAA,gBAEQA,MAAA,0BAASmO,EAAA+mB,UAAU,GACzBl1B,MAAA,aAAsCA,MAAA,uCAI5CA,qBAXYA,MAAA,IAAAA,MAAA,OAAAmO,EAAAtP,iECLCo2B,CAAoB,mBCA1B,IAAMI,EAAqB,MAA5B,MAAOA,EAEXl8B,YAAoBm8B,GAAAj8B,KAAAi8B,eACpB,CAEAC,UAAU12B,EAAa22B,GAAgB,IAChCA,GAAiBrhB,IAAgBE,iBAGtChb,KAAKi8B,cAAclO,KAAK6N,EAAsBp2B,GAC9CsV,IAAgBE,gBAAiB,EACnC,iDAXWghB,GAAqBr1B,MAAAC,KAAA,sCAArBo1B,EAAqB70B,QAArB60B,EAAqB50B,UAAAuU,WAFpB,QAAM,SAEPqgB,CAAqB,yGCD3B,IAAMI,EAA4B,MAAnC,MAAOA,EAEXt8B,YACUyD,GAAAvD,KAAAuD,sBAEV,CAEAs4B,WACE77B,KAAKuD,qBAAqB+C,UAC5B,iDATW81B,GAA4Bz1B,MAAAC,KAAA,oCAA5Bw1B,EAA4B9nB,UAAA,+BAAAG,MAAA,GAAAC,KAAA,EAAAC,OAAA,ugBAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICJnClO,MAJN,uBAIMA,CAJc,UAIdA,CAH2D,UAG3DA,CAFsD,WAGpDA,MAAA,WACFA,QAEAA,MAAA,WAAoEA,MAAA,oFAEpEA,QAEAA,MAAA,WAAiDA,MAAA,oOAGrBA,MAD+D,QAC/DA,CAAA,aAAyBA,MAAA,sBAEvDA,cAEAA,MAAA,eAEQA,MAAA,0BAASmO,EAAA+mB,UAAU,GACzBl1B,MAAA,YAAsCA,MAAA,uCAI5CA,mEDlBay1B,CAA4B,kBEAlC,IAAMC,EAAsB,MAA7B,MAAOA,EAEXv8B,YACUyD,GAAAvD,KAAAuD,sBAEV,CAEAs4B,WACE77B,KAAKuD,qBAAqB+C,UAC5B,iDATW+1B,GAAsB11B,MAAAC,KAAA,oCAAtBy1B,EAAsB/nB,UAAA,wBAAAG,MAAA,GAAAC,KAAA,EAAAC,OAAA,0dAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICJ7BlO,MAJN,uBAIMA,CAJc,UAIdA,CAH2D,UAG3DA,CAFsD,WAGpDA,MAAA,WACFA,QAEAA,MAAA,WACEA,MAAA,wBACFA,QAEAA,MAAA,WACEA,MAAA,yBAGJA,UAEAA,MAAA,eAEQA,MAAA,0BAASmO,EAAA+mB,UAAU,GACzBl1B,MAAA,YACEA,MAAA,0BAKRA,qBAlBQA,MAAA,GAAAA,MAAA,IAAAA,MAAA,sCAIAA,MAAA,GAAAA,MAAA,IAAAA,MAAA,kDASAA,MAAA,GAAAA,MAAA,IAAAA,MAAA,kFDdK01B,CAAsB,4BEK5B,IAAMC,EAAuB,MAA9B,MAAOA,EASXx8B,YACUm8B,EACAxd,GADAze,KAAAi8B,gBACAj8B,KAAAye,aAROze,KAAAu8B,OAAS,6CAElBv8B,KAAAw8B,aAAc,CAOtB,CAEON,YACDl8B,KAAKw8B,cAGTx8B,KAAKw8B,aAAc,EAEnBx8B,KAAKye,WAAWzY,IAAIhG,KAAKu8B,OAAQ,CAACzxB,QAAS,aACxC/F,QAAK0H,KAAQ,MACbrH,UAAU,CACTpB,KAAOsJ,IAELtN,KAAKi8B,cAAclO,KADY,MAAbzgB,EAAEjH,OAAiB+1B,EAA+BC,EACnC,EAEnC72B,MAAOA,KACLxF,KAAKy8B,OAASz8B,KAAKi8B,cAAclO,KAAKsO,EAAsB,IAGpE,CAEOK,YACL18B,KAAKy8B,OAAOE,OACd,iDAnCWL,GAAuB31B,MAAAC,KAAAD,MAAAE,MAAA,sCAAvBy1B,EAAuBn1B,QAAvBm1B,EAAuBl1B,UAAAuU,WAFtB,QAAM,SAEP2gB,CAAuB,uGCK7B,IAAMM,EAAiB,MAAxB,MAAOA,EAIX98B,YACU4e,GAAA1e,KAAA0e,kBAHO1e,KAAA68B,gBAAkB,0CAIhC,CAEI9D,WACLxO,OAAOuS,SAASC,WAChBxS,OAAOuS,SAASE,YAClB,CAEOC,oBACL1S,OAAOuS,SAASI,UAClB,CAEOC,iBACL5S,OAAOuS,SAASK,eAAkB92B,IACjB,WAAXA,GACFrG,KAAK+4B,UAAQ,EAGjBxO,OAAOuS,SAASM,OAAS,KACvBp9B,KAAKq9B,gBAAc,CAEvB,CAEOC,mBAAmB7c,GACxB8J,OAAOuS,SAASS,cAAc,CAC1Bj7B,KAAUme,EAAclI,cACxB9H,MAAUgQ,GAAeD,KAAK9P,MAC9B8sB,MAAU/c,GAAeD,KAAKmE,MAC9B8Y,KAAU,cACV3xB,MACN,CAEQuxB,iBACNr9B,KAAK0e,gBAAgBqG,UAAUhgB,QAAKkJ,KAAOnF,GAAiB,OAATA,IAAgB1D,UAAW0D,IAC5E9I,KAAKs9B,mBAAmBx0B,GACxB9I,KAAK+X,MAAMjP,EAAI,EAEnB,CAEQ40B,aAAaC,GACnB,IAAIF,EAAOG,eAAoBD,EAAQ39B,KAAK68B,iBAC5C,OAAOe,QAAaC,IAAI15B,UAAUs5B,EACpC,CAEO1lB,MAAM0I,GACXlb,QAAQ6Z,IAAIqB,GAEZ,MAAMkd,EAAShS,OAAOlL,GAAeD,KAAKsd,QACpCL,EAAOz9B,KAAK09B,aAAaC,GAE/BpT,OAAOuS,SAAS/kB,MAAM,CACpB0lB,OACAE,UAEF,SAAUn4B,GACJA,EACFD,QAAQ6Z,IAAI,oBAAqB5Z,GAEjCD,QAAQ6Z,IAAI,yBAEhB,EACF,iDAlEWwd,GAAiBj2B,MAAAC,KAAA,sCAAjBg2B,EAAiBz1B,QAAjBy1B,EAAiBx1B,UAAAuU,WAFhB,QAAM,SAEPihB,CAAiB,8FCHvB,IAAMmB,EAAoB,MAA3B,MAAOA,wDAAoB,mCAApBA,IAAoB,uCAL7BC,KACAC,KACAC,OAAsB,SAGbH,EAAoB,2FCoSjC,IAwLMI,GAAqB,MAA3B,MAAMA,IAENA,UAAsB/2B,UAAI,SAAAg3B,IAAA,WAAAA,IAAwFD,GAAqB,EACvIA,GAAsBE,UAlPiF13B,KAAE,CAAA3D,KAkPUm7B,KACnHA,GAAsBG,UAnPiF33B,MAAE,CAAA43B,QAAA,CAmP2CC,KAAiBC,KAAiBD,QAJhLL,EAAqB,+FCte3B,IAoDMO,GAAgB,MAAtB,MAAMA,IAENA,UAAiBt3B,UAAI,SAAAg3B,IAAA,WAAAA,IAAwFM,GAAgB,EAC7HA,GAAiBL,UA5B4E13B,KAAE,CAAA3D,KA4Be07B,KAC9GA,GAAiBJ,UA7B4E33B,MAAE,CAAA43B,QAAA,CA6B2CC,KAAiBA,QAJrJE,EAAgB,KCiwBhBC,GAAa,MAAnB,MAAMA,IAENA,UAAcv3B,UAAI,SAAAg3B,IAAA,WAAAA,IAAwFO,GAAa,EACvHA,GAAcN,UArwB+E13B,KAAE,CAAA3D,KAqwBY27B,KAmB3GA,GAAcL,UAxxB+E33B,MAAE,CAAA43B,QAAA,CAwxBqCK,KAAeH,KAAiBD,KAAiBK,KAAyBC,KAAcF,KACpNJ,KACAK,KACAH,MAzBFC,EAAa,kCC3DnB,MAAMI,GAA4C,CAC9CC,QAP6B,IAAIC,MAAe,4BAQhDC,KAAM,CAACC,OACPC,WAPJ,SAASC,GAAiCC,IACtC,MAAO,IAAMA,GAAQC,iBAAiBC,YAC1C,GAeA,IA2fMC,GAAa,MAAnB,MAAMA,IAENA,UAAcr4B,UAAI,SAAAg3B,IAAA,WAAAA,IAAwFqB,GAAa,EACvHA,GAAcpB,UAvnCwF13B,KAAE,CAAA3D,KAunCGy8B,KAM3GA,GAAcnB,UA7nCwF33B,MAAE,CAAA+4B,UA6nC6B,CAACX,IAA0CR,QAAA,CAAYO,KAAcN,KAAiBC,KAAiBkB,MAAeC,KACnPpB,QAVFiB,EAAa,2ECjqCZ,IAAMI,GAAc,MAArB,MAAOA,wDAAc,mCAAdA,IAAc,uCA9CvBC,KAGAC,KAGAC,KACA7B,GAEA8B,MAGAC,MACAC,MAIAC,MACAC,MACA1B,GACAc,GACAa,KAGAC,MAEA9B,KAIA+B,MAEAC,MACAC,MACAC,MAEAC,MAIAC,OAAe,SAMNhB,EAAc,KCtBdiB,GAAY,MAAnB,MAAOA,wDAAY,mCAAZA,IAAY,uCAxBrBhC,KACAe,GACA9B,EACAgD,IAGEhD,EACA8B,KAAc,SAiBPiB,EAAY,qFCpCnB,MAAOE,SAkCehhC,KAAAihC,iBAAmB/8B,KAAKC,UAAU,CAAC+8B,UAAU,EAAI14B,KAAM,IAAK,QAItExI,KAAAmhC,UAAW,CAAM,CAS/BrhC,YAAYshC,GAAgBC,GAAkBC,GAAkBC,GAAqB,IA5C9EvhC,KAAAwhC,OAAgB,EAEhBxhC,KAAAyhC,uBAAiC,IACjCzhC,KAAA0hC,kBAA4B,IAE5B1hC,KAAA2hC,qBAA8B,IAE9B3hC,KAAA4hC,kBAA2B,IAE3B5hC,KAAA6hC,gBAAyB,IAMxB7hC,KAAA8hC,aAAsB,EAEtB9hC,KAAA+hC,UAAmB,EAGnB/hC,KAAAuhC,UAAqB,GAkBtBvhC,KAAAgiC,OAA4B,SAAUh6B,IAAc,EACpDhI,KAAAiiC,QAAkC,SAAUj6B,IAAmB,EAC/DhI,KAAAkiC,aAA0B,WAAa,EACvCliC,KAAAmiC,UAAsC,SAAUn6B,IAAqB,EACrEhI,KAAAoiC,QAA6B,SAAUp6B,IAAc,EAGxDhI,KAAKohC,QAAUA,GACfphC,KAAKqhC,UAAYA,GACjBrhC,KAAKshC,UAAYA,GACjBthC,KAAKuhC,UAAYA,GACjBvhC,KAAKqiC,WAAaC,UAAUC,WAC5BviC,KAAKwiC,SAAQ,EACjB,CAEO97B,gBAAgB+7B,IAEhBA,IAAgBziC,KAAKshC,YACxBthC,KAAKshC,UAAYmB,GACjBziC,KAAKwiC,SAAQ,GACjB,CAEOA,QAAQE,IAMX,GALIA,SAAgCphC,IAAZtB,KAAK2iC,YAClB3iC,KAAK2iC,GACZ3iC,KAAK2iC,QAAKrhC,GAGO,MAAlBtB,KAAKshC,WAAuChgC,MAAlBtB,KAAKshC,UAE9B,OAGJ,IAAIx7B,GAAM9F,KAAKohC,QAAU,IAAMphC,KAAKshC,UAAY,IAAMthC,KAAKqhC,UAE3DrhC,KAAK2iC,GAAK,IAAIL,UAAUx8B,GAAK9F,KAAKuhC,WAClCh8B,QAAQ6Z,IAAItZ,IAEZ9F,KAAKkiC,eACLliC,KAAKof,IAAI,kBAAmB,kBAAmBtZ,IAE/C,IAAI88B,GAAU5iC,KAAK2iC,GACfl2B,GAAU+I,WAAW,KACrBxV,KAAKof,IAAI,kBAAmB,qBAAsBtZ,IAClD9F,KAAK+hC,UAAW,EAChBa,GAAQjG,QACR38B,KAAK+hC,UAAW,GACjB/hC,KAAK6hC,iBAER7hC,KAAK2iC,GAAGX,OAAUh6B,KACd66B,aAAap2B,IACbzM,KAAKqiC,WAAaC,UAAUQ,KAC5BJ,IAAmB,EACnB1iC,KAAK+iC,wBACL/iC,KAAKgiC,OAAOh6B,GAAK,EAGrBhI,KAAK2iC,GAAGV,QAAWj6B,KACf66B,aAAap2B,IACbzM,KAAK2iC,QAAKrhC,EAEV0hC,cAAchjC,KAAKijC,qBACnBD,cAAchjC,KAAKkjC,gBAEfljC,KAAK8hC,aACL9hC,KAAKqiC,WAAaC,UAAUa,OAC5BnjC,KAAKiiC,QAAQj6B,MAEbhI,KAAKqiC,WAAaC,UAAUC,WAC5BviC,KAAKkiC,gBACAQ,KAAqB1iC,KAAK+hC,WAC3B/hC,KAAKof,IAAI,kBAAmB,UAAWtZ,IACvC9F,KAAKiiC,QAAQj6B,KAEjBwN,WAAW,KACPxV,KAAKwiC,SAAQ,EAAI,EAClBxiC,KAAK4hC,mBAAiB,EAIjC5hC,KAAK2iC,GAAGR,UAAan6B,KACjBhI,KAAKojC,YAEDp7B,GAAMc,OAASk4B,EAAiBC,kBAIpCjhC,KAAKmiC,UAAUn6B,GAAK,EAGxBhI,KAAK2iC,GAAGP,QAAWp6B,KACfhI,KAAKof,IAAI,kBAAmB,UAAWtZ,GAAKkC,IAC5ChI,KAAKoiC,QAAQp6B,GAAK,CAE1B,CAEOgS,KAAKlR,IACR,GAAI9I,KAAK2iC,IAAM3iC,KAAK2iC,GAAGN,YAAcC,UAAUQ,KAC3C,OAAO9iC,KAAK2iC,GAAG3oB,KAAKlR,IAEpBvD,QAAQ6Z,IAAI,qDAEpB,CAKOud,QACH,QAAI38B,KAAK2iC,KACL3iC,KAAK8hC,aAAc,EACnB9hC,KAAK2iC,GAAGhG,SACD,EAGf,CAEQoG,wBACJ/iC,KAAKkjC,eAAiBG,YAAY,KAC9BrjC,KAAKga,KAAKgnB,EAAiBC,kBAC3BjhC,KAAKof,IAAI4hB,EAAiBC,iBAAkB,OAAM,EACnDjhC,KAAK0hC,kBACZ,CAEQ0B,YACApjC,KAAKijC,qBACLD,cAAchjC,KAAKijC,qBAGvBjjC,KAAKof,IAAI,aAETpf,KAAKijC,oBAAsBI,YAAYrjC,KAAKsjC,UAAWtjC,KAAKyhC,uBAChE,CAEQ6B,YACJ,IACI/9B,QAAQ0d,KAAK,iCACb+f,cAAchjC,KAAKkjC,gBACfljC,KAAK2iC,KACLp9B,QAAQ0d,KAAK,6CACbjjB,KAAK2iC,GAAGhG,SAEZp3B,QAAQ0d,KAAK,+CAEbjjB,KAAKwiC,SAAQ,EACjB,OACY,CAChB,CAEQpjB,OAAOmkB,KACPvjC,KAAKwhC,OAASR,EAAiBG,WAC/B57B,QAAQ6Z,IAAImkB,GAEpB,gBC7OQC,EAAZ,SAAYA,GACVA,WAAAzgB,WAAA,gBACAygB,IAAAC,IAAA,SACAD,IAAAE,MAAA,WACAF,IAAAG,WAAA,gBAJUH,CAKZ,CALA,CAAYA,GAAkB,cCExB,MAAOI,EACXC,SAASvpB,IACP,MAAM5R,GAAM,GACZA,UAAIH,GAAK+R,GAAE9R,KAAKD,GAChBG,GAAIJ,GAAKgS,GAAE9R,KAAKF,GAChBI,GAAIT,GAAK,CACPC,MAAOoS,GAAE9R,KAAK/H,GACdqjC,MAAOxpB,GAAE9R,KAAKu7B,GACdnjC,GAAI0Z,GAAE9R,KAAKw7B,GACX77B,QAASmS,GAAE9R,KAAKy7B,GAChBC,SAAU5pB,GAAE9R,KAAK27B,IAEnBz7B,GAAIN,GAAKkS,GAAE9R,KAAK47B,GAChB17B,GAAIF,KAAO8R,GAAE9R,KACbE,GAAI27B,eAAiB/pB,GAAE+pB,eACvB37B,GAAI1F,KAAOsX,GAAEtX,KACN0F,EACT,ECfI,MAAO47B,EAEJzhB,sBACL0hB,GACAzhB,GACAwT,GACAkO,IAEA,MAAM38B,GAAW08B,GAAY/7B,KAAKF,GAUlC,GARAwa,GAAQniB,GAAK4jC,GAAY/7B,KAAK7H,GAC1B4jC,GAAY/7B,KAAKi8B,KACnB3hB,GAAQ4hB,gBAAkBH,GAAY/7B,KAAKi8B,GAAGvgB,IAC9CpB,GAAQ6hB,gBAAkBJ,GAAY/7B,KAAKi8B,GAAGtgB,KAGhDnkB,KAAK4kC,mBAAmBL,GAAazhB,IAEjCjb,GAAU,CACZ,MAAMg9B,GAASvO,GAAYtwB,IAAI6B,IAC3Bg9B,KACF/hB,GAAQgiB,WAAaD,GACrB/hB,GAAQviB,GAAKsH,GACTg9B,GAAOj4B,SAAWkW,GAAQniB,KAC5BkkC,GAAOj4B,OAASkW,GAAQniB,IAG9B,CAEAmiB,GAAQphB,kBAAoBohB,GAAQphB,mBAAqB,GACzD,QAAS0J,GAAIm5B,GAAY/7B,KAAKu8B,GAAG15B,OAAS,EAAGD,IAAK,EAAGA,KAAK,CACxD,MAAM45B,GAAmBT,GAAY/7B,KAAKu8B,GAAG35B,IAC7C,GAAwB,MAApB45B,GACF,SAEF,IAAI9hB,GAAYJ,GAAQphB,kBAAkBE,KAAKwJ,IAAKA,GAAExK,IAAMokC,GAAiBhB,IAO7E,GANiB,MAAb9gB,KACFA,GAAY,GACZJ,GAAQphB,kBAAkB2R,KAAK6P,KAGjCA,GAAUU,GAAK,CAACC,EAAGmhB,GAAiBnhB,EAAGC,EAAGkhB,GAAiBlhB,GACtC,MAAjBZ,GAAUE,GAEZN,GAAQniB,GAAKuiB,GAAUU,GAAGC,EACtBX,GAAUU,GAAGE,IACfhB,GAAQiB,YAAcb,GAAUU,GAAGE,EACnChB,GAAQmB,gBAAkB,4BAGF,OAAjBf,GAAUE,GAEnBN,GAAQjiB,aAAeqiB,GAAUU,GAAGC,UACV,KAAjBX,GAAUE,GAAW,CAE9B,MAAMvb,GAAW28B,GAAiCx+B,IAAIkd,GAAUU,GAAGC,GAC/Dhc,KACFib,GAAQgiB,WAAa5gC,KAAKgN,MAAMhN,KAAKC,UAAUmyB,GAAYtwB,IAAI6B,MAEnE,MAA4B,OAAjBqb,GAAUE,KACnBN,GAAQ1hB,GAAK8hB,GAAUU,GAAGC,EAE9B,CACF,CAEQ+gB,mBAAmBL,GAAkBzhB,IAC3C,MAAMxf,GAAWwf,GAAQO,GAEzB,GAAI/f,GAAU,CACZ,MAAMggB,GAAMC,WAAYghB,GAAY/7B,KAAKi8B,GAAGvgB,KAAO,IAC7C+gB,GAAM1hB,WAAYghB,GAAY/7B,KAAKi8B,GAAGtgB,KAAO,IACnD7gB,GAASkgB,GAAKF,GACdhgB,GAASqgB,GAAKshB,GACdniB,GAAQO,GAAK/f,EACf,CACF,EC7EI,MAAO4hC,EACXC,oBAAoBZ,GAAkBzhB,IAEpCA,GAAQphB,kBAAoBohB,GAAQphB,mBAAqB,GACzD,MAAM0jC,GAAetiB,GAAQphB,kBAAkBE,KAAMwJ,IACpC,GAARA,GAAEgY,IAGLE,GAAMC,YAAYghB,GAAY/7B,KAAKgb,IAAM,IAAIC,QAAQ,IAAK,MAC1DwhB,GAAM1hB,YAAYghB,GAAY/7B,KAAKmb,IAAM,IAAIF,QAAQ,IAAK,MAG5D8gB,GAAY/7B,KAAKwb,KACnBlB,GAAQiB,YAAcwgB,GAAY/7B,KAAKwb,GACvClB,GAAQmB,gBAAkB,iBAExBmhB,KAEFA,GAAaxhB,GAAGE,EAAIygB,GAAY/7B,KAAKwb,GACrCohB,GAAaxhB,GAAGC,EAAI,CAACK,IAAKZ,GAAKa,IAAK8gB,KAGtC,MAAM3hC,GAAWwf,GAAQO,GAErB/f,KAEFA,GAAS+hC,KAAOd,GAAY/7B,KAAK68B,KAAOd,GAAY/7B,KAAK68B,KAAO/hC,GAAS+hC,KACzE/hC,GAASgiC,GAAKf,GAAY/7B,KAAK88B,GAAKf,GAAY/7B,KAAK88B,GAAKhiC,GAASgiC,GACnEhiC,GAASiiC,GAAKhB,GAAY/7B,KAAK+8B,GAAKhB,GAAY/7B,KAAK+8B,GAAKjiC,GAASiiC,GACnEjiC,GAASkiC,GAAKjB,GAAY/7B,KAAKg9B,GAAKjB,GAAY/7B,KAAKg9B,GAAKliC,GAASkiC,GACnEliC,GAASmiC,GAAKlB,GAAY/7B,KAAKi9B,GAAKlB,GAAY/7B,KAAKi9B,GAAKniC,GAASmiC,GACnEniC,GAASoiC,GAAKnB,GAAY/7B,KAAKk9B,GAAKnB,GAAY/7B,KAAKk9B,GAAKpiC,GAASoiC,GACnEpiC,GAAS3C,GAAK4jC,GAAY/7B,KAAK7H,GAAK4jC,GAAY/7B,KAAK7H,GAAK2C,GAAS3C,GACnE2C,GAASqiC,GAAKpB,GAAY/7B,KAAKm9B,GAAKpB,GAAY/7B,KAAKm9B,GAAKriC,GAASqiC,GAEnE7iB,GAAQO,GAAK/f,GAEjB,ECrCI,MAAOsiC,EACXC,iBAAiBtB,GAAkBzhB,IACjCA,GAAQgjB,MAAQvB,GAAY/7B,IAC9B,gECuBK,IAAMu9B,EAAwB,MAA/B,MAAOA,UAAgC3qB,IAqB3C,qBAAI4qB,GACF,OAAOhmC,KAAKimC,cACd,CAEA,0BAAIC,GACF,OAAOlmC,KAAKmmC,kBACd,CAEA,mBAAIC,GACF,OAAOpmC,KAAKqmC,uBACd,CAEAvmC,YACUwmC,GACA5iC,GACA6iC,GAC0BxmC,IAElCI,QALQH,KAAAsmC,sBACAtmC,KAAA0D,uBACA1D,KAAAumC,uBAC0BvmC,KAAAD,aAnCnBC,KAAAq2B,aAAe,IAAI5Z,IACnBzc,KAAAs2B,YAAc,IAAI7Z,IAClBzc,KAAAwkC,iCAAmC,IAAI/nB,IAEvCzc,KAAAimC,eAAiB,IAAI9iC,IACrBnD,KAAAmmC,mBAAqB,IAAIhjC,IACzBnD,KAAAqmC,wBAA0B,IAAIljC,IAKvCnD,KAAAwmC,oBAAiC,GACjCxmC,KAAAymC,kBAAmB,EAEnBzmC,KAAA0mC,mBAAqB,IAAI9C,EACzB5jC,KAAA2mC,2BAA6B,IAAIrC,EACjCtkC,KAAA4mC,yBAA2B,IAAI1B,EAC/BllC,KAAA6mC,sBAAwB,IAAIjB,CAqBpC,CAEAkB,MACE7gC,GACAyc,GACAmU,GACAkQ,GACAN,IAEAzmC,KAAKymC,iBAAmBA,GACxBzmC,KAAKgnC,uBAAuBtkB,GAAUmU,IACtC72B,KAAKinC,uBACLjnC,KAAKknC,8BACLlnC,KAAKmnC,eAAelhC,IAEhB8gC,IACF/mC,KAAKonC,aAAanhC,IAEpBjG,KAAKqnC,uCACP,CAEA1K,QACE38B,KAAKsnC,WAAW3K,QAChB38B,KAAKunC,UAAU5K,OACjB,CAEAj2B,gBAAgB8gC,IACdxnC,KAAKwnC,UAAYA,GAEbxnC,KAAKsnC,WACPtnC,KAAKsnC,UAAU5gC,gBAAgB8gC,IAE7BxnC,KAAKunC,UACPvnC,KAAKunC,SAAS7gC,gBAAgB8gC,GAClC,CAEQH,wCACNhE,YAAY,KACVrjC,KAAKqmC,wBAAwBriC,KAAKhE,KAAKwmC,qBACvCxmC,KAAKwmC,oBAAsB,IAC1B,IACL,CAEQQ,uBAAuBtkB,GAAqBmU,IAClDnU,GAASnP,QAAQpR,IAAKnC,KAAKq2B,aAAazxB,IAAIzC,GAAEvB,GAAIuB,KAElD00B,GAAQtjB,QAAQujB,KACd92B,KAAKs2B,YAAY1xB,IAAIkyB,GAAEl2B,GAAIk2B,IAC3B92B,KAAKwkC,iCAAiC5/B,IAAIkyB,GAAEC,GAAID,GAAEl2B,GAAE,EAExD,CAEQwmC,aAAanhC,IACnBjG,KAAKunC,SAAW,IAAIvG,EAAiB9zB,IAAYu6B,kBAAmB,aAAexhC,GAAWjG,KAAKwnC,WACnGxnC,KAAKunC,SAASnF,QAAWp6B,IAAiBhI,KAAK0D,oBAAoB2b,SAASrX,IAAO5C,YACnFpF,KAAKunC,SAASpF,UAAan6B,IAAehI,KAAK0nC,oBAAoB1/B,GACrE,CAEQm/B,eAAelhC,IACrBjG,KAAKsnC,UAAY,IAAItG,EAAiB9zB,IAAYy6B,8BAA+B,aAAe1hC,GAAWjG,KAAKwnC,WAChHxnC,KAAKsnC,UAAUlF,QAAWp6B,IAAiBhI,KAAK0D,oBAAoB2b,SAASrX,IAAO5C,YACpFpF,KAAKsnC,UAAUnF,UAAan6B,KAC1BhI,KAAK4nC,sBAAsB5/B,GAAK,CAEpC,CAEQ2uB,eAAe7uB,IACrB,OAAO,IAAIwC,IAAoBu9B,KAC7B,MAAM/kB,GAAU9iB,KAAKq2B,aAAarwB,IAAI8B,IAClCgb,IACF+kB,GAAW7jC,KAAK8e,IAChB+kB,GAAWliC,YAKP3F,KAAKymC,kBACPoB,GAAW7jC,KAAK,IAAI/D,KACpB4nC,GAAWliC,aAEXJ,QAAQ0d,KAAK,qFAA+Enb,IAC5F9H,KAAKsmC,mBAAmBtkB,QAAQla,IAAW1C,UAAU0d,KACnD9iB,KAAKq2B,aAAazxB,IAAIkD,GAAWgb,IACjC+kB,GAAW7jC,KAAK8e,IAChB+kB,GAAWliC,UAAQ,GACpB,EAIT,CAEQmiC,cAAcC,GAAcjlB,IAClC,OAAQilB,GAAQ7G,UACd,KAAKsC,EAAmBzgB,WACtB/iB,KAAK2mC,2BAA2B9jB,sBAC9BklB,GAASjlB,GAAS9iB,KAAKs2B,YAAat2B,KAAKwkC,kCAC3C,MAEF,KAAKhB,EAAmBC,IACtBzjC,KAAK4mC,yBAAyBzB,oBAAoB4C,GAASjlB,IAC3D,MAEF,KAAK0gB,EAAmBE,MACtB1jC,KAAK6mC,sBAAsBhB,iBAAiBkC,GAASjlB,IAIzD9iB,KAAKumC,oBAAoB9P,mBAAmB3T,IAC5C9iB,KAAKwmC,oBAAoBnzB,KAAKyP,GAChC,CAEQokB,8BACN,MAAMxkB,GAAW,IAAI1iB,KAAKq2B,aAAa3D,UACvC1yB,KAAKumC,oBAAoB/P,aAAa9T,IAEtC,MAAMmU,GAAU,IAAI72B,KAAKs2B,YAAY5D,UACrC1yB,KAAKumC,oBAAoB3P,YAAYC,GACvC,CAEQ+Q,sBAAsB5/B,IAC5B,MAAM+/B,GAAU7jC,KAAKgN,MAAMlJ,GAAMc,MAEjC,OAAQi/B,GAAQ7G,UACd,KAAKsC,EAAmBzgB,WACtB/iB,KAAK22B,eAAeoR,GAAQv/B,KAAKw7B,IAAI5+B,UAAU0d,IAAW9iB,KAAK8nC,cAAcC,GAASjlB,KACtF,MAEF,KAAK0gB,EAAmBC,IACtBzjC,KAAK22B,eAAeoR,GAAQv/B,KAAK5H,IAAIwE,UAAU0d,IAAW9iB,KAAK8nC,cAAcC,GAASjlB,KACtF,MAEF,KAAK0gB,EAAmBE,MACtB1jC,KAAK22B,eAAeoR,GAAQv/B,KAAKw/B,WAAW5iC,UAAU0d,IAAW9iB,KAAK8nC,cAAcC,GAASjlB,KAGnG,CAEQ4kB,oBAAoBO,IAC1B,IAAIjgC,GAAQ9D,KAAKgN,MAAM+2B,GAAan/B,MACpCvD,QAAQ6Z,IAAI,sBAAuBpX,IACZ,IAAnBA,GAAMk5B,WACRl5B,GAAQhI,KAAKkoC,0BAA0BlgC,IACvChI,KAAKimC,eAAejiC,KAAKhE,KAAK0mC,mBAAmB7C,SAAS77B,KAC1DhI,KAAKmmC,mBAAmBniC,KAAKgE,IAEjC,CAEQkgC,0BAA0BlgC,IAEhC,GADuBA,IAAOQ,MAAM2/B,EAChB,CAClB,MAAMC,GAAoBpgC,IAAOQ,MAAM7H,GACvC,MAAO,IACFqH,GACHQ,KAAM,IACDR,GAAMQ,KACT/H,GAAI,yBACJwjC,GAAImE,GAAoB,8CAAsC,oEAEhE/D,gBAAgB,EAChBrhC,KAAMolC,GAAoB5lC,IAAqBM,YAAcN,IAAqBG,UAEtF,CACA,OAAOqF,EACT,CAEQi/B,uBACNjnC,KAAKq2B,aAAa9iB,QAAQuP,KACxB,GAAIA,GAAQviB,GAAI,CACd,MAAMskC,GAAS7kC,KAAKs2B,YAAYtwB,IAAI8c,GAAQviB,IACxCskC,KACF/hB,GAAQgiB,WAAa9kC,KAAK8kB,SAAS+f,IAClCA,GAAej4B,OAASkW,GAAQniB,GAErC,GAEJ,mDAvNWolC,GAAuBp/B,MAAAC,KAAAD,MAAAE,KAAAF,MAAAG,KAAAH,MAqCxB0hC,MAAgB,sCArCftC,EAAuB5+B,QAAvB4+B,EAAuB3+B,UAAAuU,WAFtB,QAAM,SAEPoqB,CAAwB,mDC5B9B,MAAM74B,EAAc,CACzB0D,YAAY,EAGZzD,aAAcod,OAAO+d,KAASn7B,cAAmB,iCAEjDqO,mBAAoB+O,OAAO+d,KAAS9sB,oBAAyB,qCAE7DE,cAAe6O,OAAO+d,KAAS5sB,eAAoB,sCAEnD6sB,YAAahe,OAAO+d,KAASC,aAAkB,sCAG/CZ,8BAA+Bpd,OAAO+d,KAASX,+BAAoC,qCAEnFF,kBAAmBld,OAAO+d,KAASb,mBAAwB,qCAG3De,iBAAkBje,OAAO+d,KAASE,mBAAuB,EAEzDC,SAAU,gFCTZ,SAASC,EAAmBC,GACxB,OAAO,IAAIC,MAAc,KAAkDC,EAC/E,CAqVA,SAASC,GAAoBC,GACzB,OAAQA,EAAQ19B,QACZ,KAAK,EACD,OAAO,IAAI29B,KACf,KAAK,EACD,OAAOD,EAAQ,GACnB,QACI,OAAO,IAAIE,KAAsBF,GAE7C,CACA,SAASG,GAAqBC,EAAYC,EAAWC,EAAY,IAAI5sB,IAAO6sB,EAAa,IAAI7sB,KACzF,MAAM8sB,EAAS,GACTC,EAAsB,GAC5B,IAAIC,GAAiB,EACjBC,EAAmB,KA8BvB,GA7BAN,EAAU71B,QAASo2B,IACf,MAAMrd,EAASqd,EAAG3jC,IAAI,UAChB4jC,EAAetd,GAAUmd,EACzBI,EAAsBD,GAAgBF,GAAqB,IAAIjtB,IACrEktB,EAAGp2B,QAAQ,CAAC+b,EAAKwa,MACb,IAAIC,GAAiBD,GACjBE,GAAkB1a,EACtB,GAAa,WAATwa,GAEA,OADAC,GAAiBZ,EAAWc,sBAAsBF,GAAgBR,GAC1DS,IACJ,KAAKE,KACDF,GAAkBX,EAAUrjC,IAAI8jC,IAChC,MACJ,KAAKK,KACDH,GAAkBV,EAAWtjC,IAAI8jC,IACjC,MACJ,QACIE,GAAkBb,EAAWiB,oBAAoBN,GAAMC,GAAgBC,GAAiBT,GAIpGM,EAAmBjlC,IAAImlC,GAAgBC,GAAe,GAErDJ,GACDJ,EAAoBn2B,KAAKw2B,GAE7BH,EAAmBG,EACnBJ,EAAiBnd,IAEjBid,EAAOl+B,OACP,MAnTR,SAASg/B,KACL,OAAO,IAAIzB,MAAc,MAA8CC,EAI3E,CA8ScwB,GAEV,OAAOb,CACX,CACA,SAASc,GAAeC,EAAQC,EAAWxiC,EAAOyiC,GAC9C,OAAQD,GACJ,IAAK,QACDD,EAAOG,QAAQ,IAAMD,EAASziC,GAAS2iC,GAAmB3iC,EAAO,QAASuiC,KAC1E,MACJ,IAAK,OACDA,EAAOK,OAAO,IAAMH,EAASziC,GAAS2iC,GAAmB3iC,EAAO,OAAQuiC,KACxE,MACJ,IAAK,UACDA,EAAOM,UAAU,IAAMJ,EAASziC,GAAS2iC,GAAmB3iC,EAAO,UAAWuiC,KAG1F,CACA,SAASI,GAAmBrwB,EAAGwwB,EAAWP,GACtC,MAEMviC,EAAQ+iC,GAAmBzwB,EAAE0wB,QAAS1wB,EAAE2wB,YAAa3wB,EAAE4wB,UAAW5wB,EAAE6wB,QAASL,GAAaxwB,EAAEwwB,UAFhFP,EAAOa,WAE6G9wB,EAAE8wB,YADvHb,EAAOx0B,UAElBjN,EAAOwR,EAAE+wB,MACf,OAAY,MAARviC,IACAd,EAAMqjC,MAAWviC,GAEdd,CACX,CACA,SAAS+iC,GAAmBC,EAASC,EAAaC,EAAWC,EAASL,EAAY,GAAIM,EAAY,EAAGr1B,GACjG,MAAO,CAAEi1B,UAASC,cAAaC,YAAWC,UAASL,YAAWM,YAAWr1B,WAAYA,EACzF,CACA,SAASu1B,GAAqBt/B,EAAKiS,EAAKstB,GACpC,IAAI74B,EAAQ1G,EAAIhG,IAAIiY,GACpB,OAAKvL,GACD1G,EAAIpH,IAAIqZ,EAAMvL,EAAQ64B,GAEnB74B,CACX,CACA,SAAS84B,GAAqBC,GAC1B,MAAMC,EAAeD,EAAQnnC,QAAQ,KAGrC,MAAO,CAFImnC,EAAQE,UAAU,EAAGD,GACjBD,EAAQprB,MAAMqrB,EAAe,GAEhD,CACA,MAAME,UAAgD3gC,SAAa,IAAc,KAAOA,SAAS2gC,gBACjG,SAASC,GAAiBb,GACtB,MAAMc,EAASd,EAAQe,YAAcf,EAAQgB,MAAQ,KACrD,OAAIF,IAAWF,GACJ,KAEJE,CACX,CAMA,IAAIG,GAAe,KACfC,IAAa,EAyBjB,SAASC,GAAgBC,EAAMC,GAC3B,KAAOA,GAAM,CACT,GAAIA,IAASD,EACT,OAAO,EAEXC,EAAOR,GAAiBQ,EAC5B,CACA,OAAO,CACX,CACA,SAASC,GAAYtB,EAASuB,EAAUC,GACpC,GAAIA,EACA,OAAO/uB,MAAMR,KAAK+tB,EAAQyB,iBAAiBF,IAE/C,MAAMG,EAAO1B,EAAQ2B,cAAcJ,GACnC,OAAOG,EAAO,CAACA,GAAQ,EAC3B,CAUA,IAKME,GAAmB,MAAzB,MAAMA,EAIFC,sBAAsB/C,GAClB,OA3DR,SAAS+C,GAAsB/C,GACtBmC,KACDA,GAgBR,SAASa,KACL,cAAW7hC,SAAY,IACZA,SAASvB,KAEb,IACX,CArBuBojC,IAAiB,CAAC,EACjCZ,KAAaD,GAAac,OAAQ,qBAAsBd,GAAac,OAEzE,IAAI1nC,GAAS,EACb,OAAI4mC,GAAac,QAbrB,SAASC,GAAqBlD,GAG1B,MAA+B,SAAxBA,EAAK6B,UAAU,EAAG,EAC7B,CAS+BqB,CAAqBlD,KAC5CzkC,EAASykC,KAAQmC,GAAac,OACzB1nC,GAAU6mC,KAEX7mC,EADkB,SAAWykC,EAAKmD,OAAO,GAAGvoB,cAAgBolB,EAAKzpB,MAAM,KACjD4rB,GAAac,QAGpC1nC,CACX,CA6CewnC,CAAsB/C,EACjC,CAKAqC,gBAAgBC,EAAMC,GAClB,OAAOF,GAAgBC,EAAMC,EACjC,CAIAR,iBAAiBb,GACb,OAAOa,GAAiBb,EAC5B,CAKAkC,MAAMlC,EAASuB,EAAUC,GACrB,OAAOF,GAAYtB,EAASuB,EAAUC,EAC1C,CAIAW,aAAanC,EAASlB,EAAMyB,GACxB,OAAOA,GAAgB,EAC3B,CAIA6B,QAAQpC,EAAS5B,EAAWpwB,EAAUq0B,EAAOC,EAAQC,EAAkB,GAAIC,GACvE,OAAO,IAAIxE,KAAoBhwB,EAAUq0B,EAC7C,QACSrtC,KAAKoH,UAAI,SAAAg3B,GAAA,WAAAA,GAAyFwO,EAAmB,CAAsD,QAC3K5sC,KAAKytC,WADmF9mC,MAAE,CAAA0e,MACYunB,EAAmBzlC,QAAnBylC,EAAmBxlC,WAAK,EAC1I,OAzCKwlC,CAAmB,KAgDzB,MAAMc,UAIO1tC,KAAK2tC,KAAO,IAAIf,EAAuB,EAGpD,MAAMgB,IAWN,MAAMC,GAAa,IAGbC,GAAkB,WAClBC,GAAkB,WAClBC,GAAuB,aACvBC,GAAsB,cACtBC,GAAyB,eACzBC,GAAwB,gBAC9B,SAASC,GAAmB17B,GACxB,GAAoB,iBAATA,EACP,OAAOA,EACX,MAAM27B,EAAU37B,EAAM2d,MAAM,qBAC5B,OAAKge,GAAWA,EAAQhjC,OAAS,EACtB,EACJijC,GAAsB/qB,WAAW8qB,EAAQ,IAAKA,EAAQ,GACjE,CACA,SAASC,GAAsB57B,EAAO67B,GAClC,MACS,MADDA,EAEO77B,EAAQm7B,GAERn7B,CAEnB,CACA,SAAS87B,GAAcC,EAASlF,EAAQmF,GACpC,OAAOD,EAAQE,eAAe,YACxBF,EAGV,SAASG,GAAoBjG,EAAKY,EAAQmF,GAEtC,IAAI11B,EACAq0B,EAAQ,EACRC,EAAS,GACb,GAAmB,iBAAR3E,EAAkB,CACzB,MAAM0F,EAAU1F,EAAItY,MALV,4EAMV,GAAgB,OAAZge,EACA9E,SAAOl2B,KAAKq1B,KACL,CAAE1vB,SAAU,EAAGq0B,MAAO,EAAGC,OAAQ,IAE5Ct0B,EAAWs1B,GAAsB/qB,WAAW8qB,EAAQ,IAAKA,EAAQ,IACjE,MAAMQ,EAAaR,EAAQ,GACT,MAAdQ,IACAxB,EAAQiB,GAAsB/qB,WAAWsrB,GAAaR,EAAQ,KAElE,MAAMS,EAAYT,EAAQ,GACtBS,IACAxB,EAASwB,EAEjB,MAEI91B,EAAW2vB,EAEf,IAAK+F,EAAqB,CACtB,IAAIK,GAAiB,EACjBC,EAAazF,EAAOl+B,OACpB2N,EAAW,IACXuwB,EAAOl2B,KA7mBnB,SAAS47B,IACL,OAAO,IAAIrG,MAAc,MAAiDC,EAC9E,CA2mBwBoG,IACZF,GAAiB,GAEjB1B,EAAQ,IACR9D,EAAOl2B,KA9mBnB,SAAS67B,IACL,OAAO,IAAItG,MAAc,MAAkDC,EAC/E,CA4mBwBqG,IACZH,GAAiB,GAEjBA,GACAxF,EAAO4F,OAAOH,EAAY,EAAGtG,IAErC,CACA,MAAO,CAAE1vB,WAAUq0B,QAAOC,SAC9B,CA1CUsB,CAAoBH,EAASlF,EAAQmF,EAC/C,CAsDA,SAASU,GAAUpE,EAASqE,EAAQC,GAChCD,EAAO97B,QAAQ,CAAC+b,EAAKwa,KACjB,MAAMyF,EAAYC,GAAoB1F,GAClCwF,IAAiBA,EAAa9oC,IAAIsjC,IAClCwF,EAAa1qC,IAAIklC,EAAMkB,EAAQ+B,MAAMwC,IAEzCvE,EAAQ+B,MAAMwC,GAAajgB,GAEnC,CACA,SAASmgB,GAAYzE,EAASqE,GAC1BA,EAAO97B,QAAQ,CAACm8B,EAAG5F,KACf,MAAMyF,EAAYC,GAAoB1F,GACtCkB,EAAQ+B,MAAMwC,GAAa,IAEnC,CACA,SAASI,GAAwBC,GAC7B,OAAInyB,MAAMC,QAAQkyB,GACM,GAAhBA,EAAMvkC,OACCukC,EAAM,IAAC,EACXC,MAASD,GAEbA,CACX,CAYA,MAAME,GAAc,IAAIC,OAAO,oBAAmE,KAClG,SAASC,GAAmBt9B,GACxB,IAAIu9B,EAAS,GACb,GAAqB,iBAAVv9B,EAAoB,CAC3B,IAAI2d,EACJ,KAAQA,EAAQyf,GAAYI,KAAKx9B,IAC7Bu9B,EAAO58B,KAAKgd,EAAM,IAEtByf,GAAYK,UAAY,CAC5B,CACA,OAAOF,CACX,CACA,SAASG,GAAkB19B,EAAOu9B,EAAQ1G,GACtC,MAAM8G,EAAW,GAAG39B,IACd49B,EAAMD,EAAS5sB,QAAQqsB,GAAa,CAACJ,EAAGa,KAC1C,IAAIC,EAAWP,EAAOM,GAEtB,OAAgB,MAAZC,IACAjH,EAAOl2B,KAhrBnB,SAASo9B,IACL,OAAO,IAAI7H,MAAc,MAAiDC,EAC9E,CA8qBwB4H,IACZD,EAAW,IAERA,EAAS19B,UAAS,GAG7B,OAAOw9B,GAAOD,EAAW39B,EAAQ49B,CACrC,CACA,MAAMI,GAAmB,gBACzB,SAASlB,GAAoBmB,GACzB,OAAOA,EAAMltB,QAAQitB,GAAkB,IAAIE,IAAMA,EAAE,GAAGlsB,cAC1D,CA0BA,SAASmsB,GAAaC,EAASC,EAAMC,GACjC,OAAQD,EAAK/tC,MACT,KAAKiuC,KAAsBC,QACvB,OAAOJ,EAAQK,aAAaJ,EAAMC,GACtC,KAAKC,KAAsBG,MACvB,OAAON,EAAQO,WAAWN,EAAMC,GACpC,KAAKC,KAAsBK,WACvB,OAAOR,EAAQS,gBAAgBR,EAAMC,GACzC,KAAKC,KAAsBO,SACvB,OAAOV,EAAQW,cAAcV,EAAMC,GACvC,KAAKC,KAAsB1vB,MACvB,OAAOuvB,EAAQY,WAAWX,EAAMC,GACpC,KAAKC,KAAsBU,QACvB,OAAOb,EAAQc,aAAab,EAAMC,GACtC,KAAKC,KAAsBY,UACvB,OAAOf,EAAQgB,eAAef,EAAMC,GACxC,KAAKC,KAAsBc,MACvB,OAAOjB,EAAQkB,WAAWjB,EAAMC,GACpC,KAAKC,KAAsBgB,UACvB,OAAOnB,EAAQoB,eAAenB,EAAMC,GACxC,KAAKC,KAAsBkB,aACvB,OAAOrB,EAAQsB,kBAAkBrB,EAAMC,GAC3C,KAAKC,KAAsBoB,WACvB,OAAOvB,EAAQwB,gBAAgBvB,EAAMC,GACzC,KAAKC,KAAsBsB,MACvB,OAAOzB,EAAQ0B,WAAWzB,EAAMC,GACpC,KAAKC,KAAsBwB,QACvB,OAAO3B,EAAQ4B,aAAa3B,EAAMC,GACtC,QACI,MA/uBZ,SAAS2B,IACL,OAAO,IAAI/J,MAAc,MAA+CC,EAC5E,CA6uBkB8J,GAElB,CACA,SAASxF,GAAanC,EAASlB,GAC3B,OAAOvf,OAAOqoB,iBAAiB5H,GAASlB,EAC5C,CAEA,MAAM+I,GAAuB,IAAIC,IAAI,CACjC,QACA,SACA,WACA,YACA,WACA,YACA,OACA,MACA,SACA,QACA,WACA,eACA,gBACA,aACA,cACA,gBACA,eACA,YACA,aACA,eACA,cACA,eACA,cACA,iBACA,kBACA,mBACA,oBACA,aACA,gBAEJ,MAAMC,WAAqCnF,GACvC3D,sBAAsB+I,EAAczJ,GAChC,OAAOiG,GAAoBwD,EAC/B,CACA5I,oBAAoB6I,EAAsBC,EAAoBxgC,EAAO62B,GACjE,IAAIgF,EAAO,GACX,MAAM4E,EAASzgC,EAAMI,WAAWsgC,OAChC,GAAIP,GAAqBrsC,IAAI0sC,IAAiC,IAAVxgC,GAAyB,MAAVA,EAC/D,GAAqB,iBAAVA,EACP67B,EAAO,SAEN,CACD,MAAM8E,EAAoB3gC,EAAM2d,MAAM,0BAClCgjB,GAAoD,GAA/BA,EAAkB,GAAGhoC,QAC1Ck+B,EAAOl2B,KAhyB3B,SAASigC,IACL,OAAO,IAAI1K,MAAc,MAAoDC,EACjF,CA8xBgCyK,GAEpB,CAEJ,OAAOH,EAAS5E,CACpB,EAgCJ,MAAMgF,GAAY,IAwDlB,MAAMC,GAAsB,IAAIV,IAAI,CAAC,OAAQ,MACvCW,GAAuB,IAAIX,IAAI,CAAC,QAAS,MAC/C,SAASY,GAAqBC,EAAKC,GAC/B,MAAMC,EAAoBL,GAAoBhtC,IAAImtC,IAAQF,GAAqBjtC,IAAImtC,GAC7EG,EAAoBN,GAAoBhtC,IAAIotC,IAAQH,GAAqBjtC,IAAIotC,GACnF,MAAO,CAAC1I,EAAWC,KACf,IAAI4I,EAAWJ,GAAOJ,IAAaI,GAAOzI,EACtC8I,EAAWJ,GAAOL,IAAaK,GAAOzI,EAC1C,OAAK4I,GAAYF,GAA0C,kBAAd3I,IACzC6I,EAAW7I,EAAYsI,GAAoBhtC,IAAImtC,GAAOF,GAAqBjtC,IAAImtC,KAE9EK,GAAYF,GAAwC,kBAAZ3I,IACzC6I,EAAW7I,EAAUqI,GAAoBhtC,IAAIotC,GAAOH,GAAqBjtC,IAAIotC,IAE1EG,GAAYC,EAE3B,CAEA,MACMC,GAAmB,IAAIlE,OAAO,cAAuB,KAqC3D,SAASmE,GAAkBrP,EAAQsP,EAAU5K,EAAQ6K,GACjD,OAAO,IAAIC,GAA2BxP,GAAQyP,MAAMH,EAAU5K,EAAQ6K,EAC1E,CAEA,MAAMC,GACFv0C,YAAYy0C,GACRv0C,KAAKu0C,QAAUA,CACnB,CACAD,MAAMH,EAAU5K,EAAQ6K,GACpB,MAAMpD,EAAU,IAAIwD,GAA2BjL,GAC/C,OAAAvpC,KAAKy0C,8BAA8BzD,GACtBH,GAAa7wC,KAAM2vC,GAAwBwE,GAAWnD,EASvE,CACAyD,8BAA8BzD,GAC1BA,EAAQ0D,qBAnBM,GAoBd1D,EAAQ2D,gBAAkB,IAAIl4B,IAC9Bu0B,EAAQ2D,gBAAgB/vC,IArBV,GAqB6B,IAAI6X,KAC/Cu0B,EAAQ4D,YAAc,CAC1B,CACAzD,aAAagD,EAAUnD,GACnB,IAAI6D,EAAc7D,EAAQ6D,WAAa,EACnCC,EAAY9D,EAAQ8D,SAAW,EACnC,MAAMC,EAAS,GACTC,EAAc,GACpB,MAA+B,KAA3Bb,EAAS7xC,KAAK2qC,OAAO,IACrB+D,EAAQzH,OAAOl2B,KAn9B3B,SAAS4hC,IACL,OAAO,IAAIrM,MAAc,MAA6CC,EAE1E,CAg9BgCoM,IAExBd,EAASe,YAAY3hC,QAAS4hC,IAE1B,GADAn1C,KAAKy0C,8BAA8BzD,GAC/BmE,EAAInyC,MAAQiuC,KAAsBG,MAAO,CACzC,MAAMgE,EAAWD,EACX7yC,EAAO8yC,EAAS9yC,KACtBA,EACKwQ,WACA3H,MAAM,WACNoI,QAAS8hC,IACVD,EAAS9yC,KAAO+yC,EAChBN,EAAO1hC,KAAKrT,KAAKqxC,WAAW+D,EAAUpE,GAAQ,GAElDoE,EAAS9yC,KAAOA,CACpB,SACS6yC,EAAInyC,MAAQiuC,KAAsBK,WAAY,CACnD,MAAMgE,EAAat1C,KAAKuxC,gBAAgB4D,EAAKnE,GAC7C6D,GAAcS,EAAWT,WACzBC,GAAYQ,EAAWR,SACvBE,EAAY3hC,KAAKiiC,EACrB,MAEItE,EAAQzH,OAAOl2B,KAt+B/B,SAASkiC,IACL,OAAO,IAAI3M,MAAc,MAAgDC,EAC7E,CAo+BoC0M,GAAmB,GAGxC,CACHvyC,KAAMiuC,KAAsBC,QAC5B5uC,KAAM6xC,EAAS7xC,KACfyyC,SACAC,cACAH,aACAC,WACAppC,QAAS,KAEjB,CACA2lC,WAAW8C,EAAUnD,GACjB,MAAMwE,EAAWx1C,KAAKgyC,WAAWmC,EAAS9E,OAAQ2B,GAC5CyE,EAAatB,EAASzoC,SAAWyoC,EAASzoC,QAAQukC,QAAW,KACnE,GAAIuF,EAASE,sBAAuB,CAChC,MAAMC,EAAc,IAAI7C,IAClB7C,EAASwF,GAAa,CAAC,EAC7BD,EAASnG,OAAO97B,QAASw5B,IACjBA,aAAiBtwB,KACjBswB,EAAMx5B,QAASb,IACXs9B,GAAmBt9B,GAAOa,QAASvK,IAC1BinC,EAAOtB,eAAe3lC,IACvB2sC,EAAYC,IAAI5sC,EAAG,EAE1B,EACJ,GAGL2sC,EAAYrzB,MACZ0uB,EAAQzH,OAAOl2B,KAlgC/B,SAASwiC,IACL,OAAO,IAAIjN,MAAc,MAA2CC,EAExE,CA+/BoCgN,CAAa1B,EAAmBwB,EAAYjjB,UAExE,CACA,MAAO,CACH1vB,KAAMiuC,KAAsBG,MAC5B9uC,KAAM6xC,EAAS7xC,KACfyqC,MAAOyI,EACP9pC,QAAS+pC,EAAY,CAAExF,OAAQwF,GAAc,KAErD,CACAlE,gBAAgB4C,EAAUnD,GACtBA,EAAQ6D,WAAa,EACrB7D,EAAQ8D,SAAW,EACnB,MAAMgB,EAAYjF,GAAa7wC,KAAM2vC,GAAwBwE,EAAS2B,WAAY9E,GAC5E+E,EApNd,SAASC,GAAoBC,EAAiB1M,GAC1C,MAAM2M,EAAc,GACpB,MAA8B,iBAAnBD,EACPA,EACK9qC,MAAM,WACNoI,QAAS+8B,GAOtB,SAAS6F,GAAwBC,EAAUF,EAAa3M,GACpD,GAAmB,KAAf6M,EAAS,GAAW,CACpB,MAAM/wC,EAsBd,SAASgxC,GAAoBC,EAAO/M,GAChC,OAAQ+M,GACJ,IAAK,SACD,MAAO,YACX,IAAK,SACD,MAAO,YACX,IAAK,aACD,MAAO,CAACpL,EAAWC,IAAY5nB,WAAW4nB,GAAW5nB,WAAW2nB,GACpE,IAAK,aACD,MAAO,CAACA,EAAWC,IAAY5nB,WAAW4nB,GAAW5nB,WAAW2nB,GACpE,QACI3B,SAAOl2B,KAt0BnB,SAASkjC,KACL,OAAO,IAAI3N,MAAc,MAAsDC,EACnF,CAo0BwB0N,IACL,SAEnB,CApCuBF,CAAoBD,EAAU7M,GAC7C,GAAqB,mBAAVlkC,EAEP,YADA6wC,EAAY7iC,KAAKhO,GAGrB+wC,EAAW/wC,CACf,CACA,MAAMgrB,EAAQ+lB,EAAS/lB,MAAM,2CAC7B,GAAa,MAATA,GAAiBA,EAAMhlB,OAAS,EAChCk+B,SAAOl2B,KAjzBf,SAASmjC,KACL,OAAO,IAAI5N,MAAc,MAAgDC,EAC7E,CA+yBoB2N,IACLN,EAEX,MAAMhL,EAAY7a,EAAM,GAClBvD,EAAYuD,EAAM,GAClB8a,EAAU9a,EAAM,GACtB6lB,EAAY7iC,KAAKqgC,GAAqBxI,EAAWC,IAE7B,KAAhBre,EAAU,KADaoe,GAAaqI,IAAapI,GAAWoI,KAE5D2C,EAAY7iC,KAAKqgC,GAAqBvI,EAASD,GAGvD,CA9B8BiL,CAAwB7F,EAAK4F,EAAa3M,IAGhE2M,EAAY7iC,KAAK4iC,GAEdC,CACX,CAyMyBF,CAAoB7B,EAASsC,KAAMzF,EAAQzH,QAC5D,MAAO,CACHvmC,KAAMiuC,KAAsBK,WAC5ByE,WACAD,YACAjB,WAAY7D,EAAQ6D,WACpBC,SAAU9D,EAAQ8D,SAClBppC,QAASgrC,GAA0BvC,EAASzoC,SAEpD,CACA+lC,cAAc0C,EAAUnD,GACpB,MAAO,CACHhuC,KAAMiuC,KAAsBO,SAC5B5B,MAAOuE,EAASvE,MAAM5jC,IAAK2qC,GAAM9F,GAAa7wC,KAAM22C,EAAG3F,IACvDtlC,QAASgrC,GAA0BvC,EAASzoC,SAEpD,CACAgmC,WAAWyC,EAAUnD,GACjB,MAAM4D,EAAc5D,EAAQ4D,YAC5B,IAAIgC,EAAe,EACnB,MAAMhH,EAAQuE,EAASvE,MAAM5jC,IAAK6qC,IAC9B7F,EAAQ4D,YAAcA,EACtB,MAAMkC,EAAWjG,GAAa7wC,KAAM62C,EAAM7F,GAC1C4F,SAAenqB,KAAKsqB,IAAIH,EAAc5F,EAAQ4D,aACvCkC,IAEX9F,SAAQ4D,YAAcgC,EACf,CACH5zC,KAAMiuC,KAAsB1vB,MAC5BquB,QACAlkC,QAASgrC,GAA0BvC,EAASzoC,SAEpD,CACAkmC,aAAauC,EAAUnD,GACnB,MAAMgG,EAqSd,SAASC,GAAmBvkC,EAAO62B,GAC/B,GAAI72B,EAAMi8B,eAAe,YACrB,OAAOj8B,EAEX,GAAoB,iBAATA,EAEP,OAAOwkC,GADU1I,GAAc97B,EAAO62B,GAAQvwB,SACf,EAAG,IAEtC,MAAMm+B,EAAWzkC,EAEjB,GADkBykC,EAAShsC,MAAM,OAAO8U,KAAM9d,GAAqB,KAAfA,EAAE8qC,OAAO,IAA4B,KAAf9qC,EAAE8qC,OAAO,IACpE,CACX,MAAMmK,EAAMF,GAAc,EAAG,EAAG,IAChCE,SAAIC,SAAU,EACdD,EAAID,SAAWA,EACRC,CACX,CACA,MAAM3I,EAAUD,GAAc2I,EAAU5N,GACxC,OAAO2N,GAAczI,EAAQz1B,SAAUy1B,EAAQpB,MAAOoB,EAAQnB,OAClE,CAvT0B2J,CAAmB9C,EAAS1F,QAASuC,EAAQzH,QAC/DyH,EAAQsG,sBAAwBN,EAChC,IAAIxB,EACA+B,EAAgBpD,EAAS9E,OACvB8E,EAAS9E,UACTtC,MAAM,CAAC,GACb,GAAIwK,EAAcv0C,MAAQiuC,KAAsBY,UAC5C2D,EAAWx1C,KAAK8xC,eAAeyF,EAAevG,OAE7C,CACD,IAAIuG,EAAgBpD,EAAS9E,OACzBmI,GAAU,EACd,IAAKD,EAAe,CAChBC,GAAU,EACV,MAAMC,EAAe,CAAC,EAClBT,EAAU1J,SACVmK,EAAanK,OAAY0J,EAAU1J,QAEvCiK,KAAgBxK,MAAM0K,EAC1B,CACAzG,EAAQ4D,aAAeoC,EAAUh+B,SAAWg+B,EAAU3J,MACtD,MAAMqK,EAAY13C,KAAKgyC,WAAWuF,EAAevG,GACjD0G,EAAUC,YAAcH,EACxBhC,EAAWkC,CACf,CACA1G,SAAQsG,sBAAwB,KACzB,CACHt0C,KAAMiuC,KAAsBU,QAC5BlD,QAASuI,EACTjK,MAAOyI,EACP9pC,QAAS,KAEjB,CACAsmC,WAAWmC,EAAUnD,GACjB,MAAMoG,EAAMp3C,KAAK43C,cAAczD,EAAUnD,GACzC,OAAAhxC,KAAK63C,kBAAkBT,EAAKpG,GACrBoG,CACX,CACAQ,cAAczD,EAAUnD,GACpB,MAAM3B,EAAS,GACTyI,EAAiBr6B,MAAMC,QAAQy2B,EAAS9E,QAAU8E,EAAS9E,OAAS,CAAC8E,EAAS9E,QACpF,QAAS0I,KAAcD,EACO,iBAAfC,EACHA,IAAe5N,KACfkF,EAAOh8B,KAAK0kC,GAGZ/G,EAAQzH,OAAOl2B,KA5lCxB,IAAIu1B,MAAc,MAAiDC,IAgmC9DwG,EAAOh8B,KAAK,IAAIoJ,IAAIlb,OAAO2c,QAAQ65B,KAG3C,IAAIrC,GAAwB,EACxBsC,EAAkB,KACtB3I,SAAO97B,QAAS0kC,IACZ,GAAIA,aAAqBx7B,MACjBw7B,EAAUzxC,IAAI,YACdwxC,EAAkBC,EAAUjyC,IAAI,UAChCiyC,EAAUrsC,OAAO,YAEhB8pC,GACD,QAAShjC,KAASulC,EAAUvlB,SACxB,GAAIhgB,EAAMI,WAAWxO,QAxlBb,OAwlBiD,EAAG,CACxDoxC,GAAwB,EACxB,KACJ,IAKT,CACH1yC,KAAMiuC,KAAsBc,MAC5B1C,SACA/B,OAAQ0K,EACR1rB,OAAQ6nB,EAAS7nB,OACjBopB,wBACAhqC,QAAS,KAEjB,CACAmsC,kBAAkBT,EAAKpG,GACnB,MAAMvC,EAAUuC,EAAQsG,sBACxB,IAAIY,EAAUlH,EAAQ4D,YAClBuD,EAAYnH,EAAQ4D,YACpBnG,GAAW0J,EAAY,IACvBA,GAAa1J,EAAQz1B,SAAWy1B,EAAQpB,OAE5C+J,EAAI/H,OAAO97B,QAAS6kC,IACK,iBAAVA,GAEXA,EAAM7kC,QAAQ,CAACb,EAAOo3B,KAUlB,MAAM6K,EAAkB3D,EAAQ2D,gBAAgB3uC,IAAIgrC,EAAQ0D,sBACtD2D,EAAiB1D,EAAgB3uC,IAAI8jC,GAC3C,IAAIwO,GAAuB,EACvBD,IACIF,GAAaD,GACbC,GAAaE,EAAeF,WAC5BD,GAAWG,EAAeH,UAC1BlH,EAAQzH,OAAOl2B,KAnpCvC,SAASklC,IACL,OAAO,IAAI3P,MAAc,MAAwDC,EAErF,CAgpC4C0P,IACpBD,GAAuB,GAK3BH,EAAYE,EAAeF,WAE3BG,GACA3D,EAAgB/vC,IAAIklC,EAAM,CAAEqO,YAAWD,YAEvClH,EAAQtlC,SAtiB5B,SAAS8sC,GAAoB9lC,EAAOhH,EAAS69B,GACzC,MAAM0G,EAASvkC,EAAQukC,QAAU,CAAC,EAC5B5B,EAAU2B,GAAmBt9B,GAC/B27B,EAAQhjC,QACRgjC,EAAQ96B,QAASg9B,IACRN,EAAOtB,eAAe4B,IACvBhH,EAAOl2B,KA7pBvB,SAASolC,IACL,OAAO,IAAI7P,MAAc,MAAkDC,EAE/E,CA0pB4B4P,GAA2B,EAIvD,CA6hBoBD,CAAoB9lC,EAAOs+B,EAAQtlC,QAASslC,EAAQzH,OAAM,EAEjE,EAET,CACAuI,eAAeqC,EAAUnD,GACrB,MAAMoG,EAAM,CAAEp0C,KAAMiuC,KAAsBY,UAAWxC,OAAQ,GAAI3jC,QAAS,MAC1E,IAAKslC,EAAQsG,sBACTtG,SAAQzH,OAAOl2B,KAnqC3B,SAASqlC,IACL,OAAO,IAAI9P,MAAc,MAA+CC,EAC5E,CAiqCgC6P,IACbtB,EAGX,IAAIuB,EAA4B,EAChC,MAAMC,EAAU,GAChB,IAAIC,GAAoB,EACpBC,GAAsB,EACtBrP,EAAiB,EACrB,MAAML,EAAY+K,EAASvE,MAAM5jC,IAAKqjC,KAClC,MAAMtC,GAAQ/sC,KAAK43C,cAAcvI,GAAQ2B,GACzC,IAAI+H,GAA4B,MAAhBhM,GAAMzgB,OAAiBygB,GAAMzgB,OAsIzD,SAAS0sB,GAAc3J,GACnB,GAAqB,iBAAVA,EACP,OAAO,KACX,IAAI/iB,EAAS,KACb,GAAI7O,MAAMC,QAAQ2xB,GACdA,EAAO97B,QAASwkC,IACZ,GAAIA,aAAsBt7B,KAAOs7B,EAAWvxC,IAAI,UAAW,CACvD,MAAMtG,EAAM63C,EACZzrB,EAAS/I,WAAWrjB,EAAI8F,IAAI,WAC5B9F,EAAI0L,OAAO,SACf,SACH,GAEIyjC,aAAkB5yB,KAAO4yB,EAAO7oC,IAAI,UAAW,CACpD,MAAMtG,EAAMmvC,EACZ/iB,EAAS/I,WAAWrjB,EAAI8F,IAAI,WAC5B9F,EAAI0L,OAAO,SACf,CACA,OAAO0gB,CACX,CAzJkE0sB,CAAcjM,GAAMsC,QACtE/iB,GAAS,EACb,OAAiB,MAAbysB,KACAJ,IACArsB,GAASygB,GAAMzgB,OAASysB,IAE5BD,EAAsBA,GAAuBxsB,GAAS,GAAKA,GAAS,EACpEusB,EAAoBA,GAAqBvsB,GAASmd,EAClDA,EAAiBnd,GACjBssB,EAAQvlC,KAAKiZ,IACNygB,KAEP+L,GACA9H,EAAQzH,OAAOl2B,KAxrC3B,SAAS4lC,KACL,OAAO,IAAIrQ,MAAc,MAA4CC,EACzE,CAsrCgCoQ,IAEpBJ,GACA7H,EAAQzH,OAAOl2B,KAxrC3B,SAAS6lC,KACL,OAAO,IAAItQ,MAAc,MAA2DC,EACxF,CAsrCgCqQ,IAExB,MAAM7tC,EAAS8oC,EAASvE,MAAMvkC,OAC9B,IAAI8tC,EAAkB,EAClBR,EAA4B,GAAKA,EAA4BttC,EAC7D2lC,EAAQzH,OAAOl2B,KA1rC3B,SAAS+lC,KACL,OAAO,IAAIxQ,MAAc,MAAuDC,EACpF,CAwrCgCuQ,IAEc,GAA7BT,IACLQ,EAhCwB,GAgCiB9tC,EAAS,IAEtD,MAAMguC,GAAQhuC,EAAS,EACjBupC,GAAc5D,EAAQ4D,YACtB0C,GAAwBtG,EAAQsG,sBAChCgC,GAAkBhC,GAAsBt+B,SAC9CowB,SAAU71B,QAAQ,CAACo2B,GAAIv+B,MACnB,MAAMkhB,GAAS6sB,EAAkB,EAAK/tC,IAAKiuC,GAAQ,EAAIF,EAAkB/tC,GAAKwtC,EAAQxtC,IAChFmuC,GAAwBjtB,GAASgtB,GACvCtI,EAAQ4D,YAAcA,GAAc0C,GAAsBjK,MAAQkM,GAClEjC,GAAsBt+B,SAAWugC,GACjCv5C,KAAK63C,kBAAkBlO,GAAIqH,GAC3BrH,GAAGrd,OAASA,GACZ8qB,EAAI/H,OAAOh8B,KAAKs2B,GAAE,GAEfyN,CACX,CACAlF,eAAeiC,EAAUnD,GACrB,MAAO,CACHhuC,KAAMiuC,KAAsBgB,UAC5B6D,UAAWjF,GAAa7wC,KAAM2vC,GAAwBwE,EAAS2B,WAAY9E,GAC3EtlC,QAASgrC,GAA0BvC,EAASzoC,SAEpD,CACA0mC,kBAAkB+B,EAAUnD,GACxBA,SAAQ8D,WACD,CACH9xC,KAAMiuC,KAAsBkB,aAC5BzmC,QAASgrC,GAA0BvC,EAASzoC,SAEpD,CACA4mC,gBAAgB6B,EAAUnD,GACtB,MAAO,CACHhuC,KAAMiuC,KAAsBoB,WAC5ByD,UAAW91C,KAAKkyC,eAAeiC,EAAS2B,UAAW9E,GACnDtlC,QAASgrC,GAA0BvC,EAASzoC,SAEpD,CACA8mC,WAAW2B,EAAUnD,GACjB,MAAMwI,EAAiBxI,EAAQ0D,qBACzBhpC,EAAWyoC,EAASzoC,SAAW,CAAC,EACtCslC,EAAQ6D,aACR7D,EAAQyI,aAAetF,EACvB,MAAO5H,EAAUmN,GAkCzB,SAASC,GAAkBpN,GACvB,MAAMqN,IAAerN,EAASphC,MAAM,WAAWvJ,KAAMyjB,GA9ZtC,SA8ZgDA,GAG/D,OAAIu0B,IACArN,EAAWA,EAAS9oB,QAAQwwB,GAAkB,KAIlD1H,EAAWA,EACN9oB,QAAQ,OAAQwqB,IAChBxqB,QAAQ,QAAU4M,GAAU4d,GAAsB,IAAM5d,EAAMhQ,MAAM,IACpEoD,QAAQ,cAAe0qB,IACrB,CAAC5B,EAAUqN,EACtB,CAhDwCD,CAAkBxF,EAAS5H,UAC3DyE,EAAQ0D,qBAAuB8E,EAAenuC,OACxCmuC,EAAiB,IAAMjN,EACvBA,EACNjB,GAAqB0F,EAAQ2D,gBAAiB3D,EAAQ0D,qBAAsB,IAAIj4B,KAChF,MAAMq5B,EAAYjF,GAAa7wC,KAAM2vC,GAAwBwE,EAAS2B,WAAY9E,GAClFA,SAAQyI,aAAe,KACvBzI,EAAQ0D,qBAAuB8E,EACxB,CACHx2C,KAAMiuC,KAAsBsB,MAC5BhG,WACA8M,MAAO3tC,EAAQ2tC,OAAS,EACxBQ,WAAYnuC,EAAQmuC,SACpBH,cACA5D,YACAgE,iBAAkB3F,EAAS5H,SAC3B7gC,QAASgrC,GAA0BvC,EAASzoC,SAEpD,CACAgnC,aAAayB,EAAUnD,GACdA,EAAQyI,cACTzI,EAAQzH,OAAOl2B,KA1vC3B,SAAS0mC,KACL,OAAO,IAAInR,MAAc,MAA6CC,EAC1E,CAwvCgCkR,IAExB,MAAMtL,EAA+B,SAArB0F,EAAS1F,QACnB,CAAEz1B,SAAU,EAAGq0B,MAAO,EAAGC,OAAQ,QACjCkB,GAAc2F,EAAS1F,QAASuC,EAAQzH,QAAQ,GACtD,MAAO,CACHvmC,KAAMiuC,KAAsBwB,QAC5BqD,UAAWjF,GAAa7wC,KAAM2vC,GAAwBwE,EAAS2B,WAAY9E,GAC3EvC,UACA/iC,QAAS,KAEjB,EAoBJ,MAAM8oC,GACF10C,YAAYypC,GACRvpC,KAAKupC,OAASA,EACdvpC,KAAK60C,WAAa,EAClB70C,KAAK80C,SAAW,EAChB90C,KAAKg6C,kBAAoB,KACzBh6C,KAAKy5C,aAAe,KACpBz5C,KAAK00C,qBAAuB,KAC5B10C,KAAKs3C,sBAAwB,KAC7Bt3C,KAAK40C,YAAc,EACnB50C,KAAK20C,gBAAkB,IAAIl4B,IAC3Bzc,KAAK0L,QAAU,KACf1L,KAAKi6C,8BAAgC,IAAInH,GAC7C,EAyCJ,SAAS4D,GAA0BhrC,GAC/B,OAAIA,GACAA,EAAU,IAAKA,IACHukC,SACRvkC,EAAQukC,OA7DpB,SAASiK,GAAgBh6C,GACrB,OAAOA,EAAM,IAAKA,GAAQ,IAC9B,CA2DgCg6C,CAAgBxuC,EAAQukC,SAIhDvkC,EAAU,CAAC,EAERA,CACX,CACA,SAASwrC,GAAcl+B,EAAUq0B,EAAOC,GACpC,MAAO,CAAEt0B,WAAUq0B,QAAOC,SAC9B,CAEA,SAAS6M,GAA0BnP,EAAS5B,EAAWgR,EAAeC,EAAgBrhC,EAAUq0B,EAAOC,EAAS,KAAMgN,GAAc,GAChI,MAAO,CACHt3C,KAAM,EACNgoC,UACA5B,YACAgR,gBACAC,iBACArhC,WACAq0B,QACAjC,UAAWpyB,EAAWq0B,EACtBC,SACAgN,cAER,CAEA,MAAMC,GACFz6C,cACIE,KAAKw6C,KAAO,IAAI/9B,GACpB,CACAzW,IAAIglC,GACA,OAAOhrC,KAAKw6C,KAAKx0C,IAAIglC,IAAY,EACrC,CACAyP,OAAOzP,EAAS0P,GACZ,IAAIC,EAAuB36C,KAAKw6C,KAAKx0C,IAAIglC,GACpC2P,GACD36C,KAAKw6C,KAAK51C,IAAIomC,EAAU2P,EAAuB,IAEnDA,EAAqBtnC,QAAQqnC,EACjC,CACAl0C,IAAIwkC,GACA,OAAOhrC,KAAKw6C,KAAKh0C,IAAIwkC,EACzB,CACAnlB,QACI7lB,KAAKw6C,KAAK30B,OACd,EAGJ,MAEM+0B,GAAoB,IAAI7K,OADV,SAC8B,KAE5C8K,GAAoB,IAAI9K,OADV,SAC8B,KA+ElD,SAAS+K,GAAwBjW,EAAQkW,EAAa3D,EAAK4D,EAAgBC,EAAgBC,EAAiB,IAAIz+B,IAAO0+B,EAAc,IAAI1+B,IAAO/Q,EAAS0vC,EAAiB7R,EAAS,IAC/K,OAAO,IAAI8R,IAAkCC,eAAezW,EAAQkW,EAAa3D,EAAK4D,EAAgBC,EAAgBC,EAAgBC,EAAazvC,EAAS0vC,EAAiB7R,EACjL,CACA,MAAM8R,GACFC,eAAezW,EAAQkW,EAAa3D,EAAK4D,EAAgBC,EAAgBC,EAAgBC,EAAazvC,EAAS0vC,EAAiB7R,EAAS,IACrI6R,EAAkBA,GAAmB,IAAIb,GACzC,MAAMvJ,EAAU,IAAIuK,GAAyB1W,EAAQkW,EAAaK,EAAiBJ,EAAgBC,EAAgB1R,EAAQ,IAC3HyH,EAAQtlC,QAAUA,EAClB,MAAM2hC,EAAQ3hC,EAAQ2hC,MAAQe,GAAmB1iC,EAAQ2hC,OAAS,EAClE2D,EAAQwK,gBAAgBC,cAAcpO,GACtC2D,EAAQwK,gBAAgBpM,UAAU,CAAC8L,GAAiB,KAAMlK,EAAQzH,OAAQ79B,GAC1EmlC,GAAa7wC,KAAMo3C,EAAKpG,GAExB,MAAM0K,GAAY1K,EAAQ0K,UAAUztC,OAAQ0tC,IAAaA,GAASC,qBAKlE,GAAIF,GAAUrwC,QAAU8vC,EAAY74B,KAAM,CACtC,IAAIu5B,GACJ,QAASzwC,GAAIswC,GAAUrwC,OAAS,EAAGD,IAAK,EAAGA,KAAK,CAC5C,MAAMuwC,GAAWD,GAAUtwC,IAC3B,GAAIuwC,GAAS3Q,UAAY+P,EAAa,CAClCc,GAAmBF,GACnB,KACJ,CACJ,CACIE,KAAqBA,GAAiBC,2BACtCD,GAAiBzM,UAAU,CAAC+L,GAAc,KAAMnK,EAAQzH,OAAQ79B,EAExE,CACA,OAAOgwC,GAAUrwC,OACXqwC,GAAU1vC,IAAK2vC,IAAaA,GAASL,kBACrC,CAACnB,GAA0BY,EAAa,GAAI,GAAI,GAAI,EAAG1N,EAAO,IAAI,GAC5E,CACA8D,aAAaiG,EAAKpG,GACd,CAEJK,WAAW+F,EAAKpG,GACZ,CAEJO,gBAAgB6F,EAAKpG,GACjB,CAEJoB,kBAAkBgF,EAAKpG,GACnB,MAAM+K,EAAsB/K,EAAQoK,gBAAgBp1C,IAAIgrC,EAAQhG,SAChE,GAAI+Q,EAAqB,CACrB,MAAMC,EAAehL,EAAQiL,iBAAiB7E,EAAI1rC,SAC5CysC,EAAYnH,EAAQwK,gBAAgB5G,YACpCsD,EAAUl4C,KAAKk8C,sBAAsBH,EAAqBC,EAAcA,EAAatwC,SACvFysC,GAAaD,GAGblH,EAAQmL,yBAAyBjE,EAEzC,CACAlH,EAAQoL,aAAehF,CAC3B,CACA9E,gBAAgB8E,EAAKpG,GACjB,MAAMgL,EAAehL,EAAQiL,iBAAiB7E,EAAI1rC,SAClDswC,EAAaG,2BACbn8C,KAAKq8C,yBAAyB,CAACjF,EAAI1rC,QAAS0rC,EAAItB,UAAUpqC,SAAUslC,EAASgL,GAC7Eh8C,KAAKkyC,eAAekF,EAAItB,UAAWkG,GACnChL,EAAQmL,yBAAyBH,EAAaR,gBAAgB5G,aAC9D5D,EAAQoL,aAAehF,CAC3B,CACAiF,yBAAyBC,EAAuBtL,EAASgL,GACrD,UAAWO,KAAuBD,EAAuB,CACrD,MAAME,EAAiBD,GAAqBlP,MAC5C,GAAImP,EAAgB,CAChB,MAAMC,EAAgD,iBAAnBD,EAC7BA,EACApO,GAAmBgC,GAAkBoM,EAAgBD,GAAqBtM,QAAU,CAAC,EAAGe,EAAQzH,SACtGyS,EAAaP,cAAcgB,EAC/B,CACJ,CACJ,CACAP,sBAAsBxB,EAAc1J,EAAStlC,GAEzC,IAAIkrC,EADc5F,EAAQwK,gBAAgB5G,YAI1C,MAAM57B,EAA+B,MAApBtN,EAAQsN,SAAmBo1B,GAAmB1iC,EAAQsN,UAAY,KAC7Eq0B,EAAyB,MAAjB3hC,EAAQ2hC,MAAgBe,GAAmB1iC,EAAQ2hC,OAAS,KAC1E,OAAiB,IAAbr0B,GACA0hC,EAAannC,QAASmpC,IAClB,MAAMC,EAAqB3L,EAAQ4L,4BAA4BF,EAAa1jC,EAAUq0B,GACtFuJ,EAAenqB,KAAKsqB,IAAIH,EAAc+F,EAAmB3jC,SAAW2jC,EAAmBtP,MAAK,GAG7FuJ,CACX,CACA1E,eAAekF,EAAKpG,GAChBA,EAAQ6L,cAAczF,EAAI1rC,SAAS,GACnCmlC,GAAa7wC,KAAMo3C,EAAItB,UAAW9E,GAClCA,EAAQoL,aAAehF,CAC3B,CACA3F,cAAc2F,EAAKpG,GACf,MAAM8L,EAAkB9L,EAAQ8L,gBAChC,IAAIhoC,EAAMk8B,EACV,MAAMtlC,EAAU0rC,EAAI1rC,QACpB,GAAIA,IAAYA,EAAQukC,QAAUvkC,EAAQ2hC,SACtCv4B,EAAMk8B,EAAQiL,iBAAiBvwC,GAC/BoJ,EAAIqnC,2BACiB,MAAjBzwC,EAAQ2hC,OAAe,CACnBv4B,EAAIsnC,aAAap5C,MAAQiuC,KAAsBc,QAC/Cj9B,EAAI0mC,gBAAgBuB,wBACpBjoC,EAAIsnC,aAAeY,IAEvB,MAAM3P,EAAQe,GAAmB1iC,EAAQ2hC,OACzCv4B,EAAI2mC,cAAcpO,EACtB,CAEA+J,EAAIxH,MAAMvkC,SACV+rC,EAAIxH,MAAMr8B,QAASojC,GAAM9F,GAAa7wC,KAAM22C,EAAG7hC,IAE/CA,EAAI0mC,gBAAgByB,wBAIhBnoC,EAAIgoC,gBAAkBA,GACtBhoC,EAAIqnC,4BAGZnL,EAAQoL,aAAehF,CAC3B,CACA1F,WAAW0F,EAAKpG,GACZ,MAAMkM,EAAiB,GACvB,IAAItG,EAAe5F,EAAQwK,gBAAgB5G,YAC3C,MAAMvH,EAAQ+J,EAAI1rC,SAAW0rC,EAAI1rC,QAAQ2hC,MAAQe,GAAmBgJ,EAAI1rC,QAAQ2hC,OAAS,EACzF+J,EAAIxH,MAAMr8B,QAASojC,IACf,MAAMqF,EAAehL,EAAQiL,iBAAiB7E,EAAI1rC,SAC9C2hC,GACA2O,EAAaP,cAAcpO,GAE/BwD,GAAa7wC,KAAM22C,EAAGqF,GACtBpF,EAAenqB,KAAKsqB,IAAIH,EAAcoF,EAAaR,gBAAgB5G,aACnEsI,EAAe7pC,KAAK2oC,EAAaR,gBAAe,GAKpD0B,EAAe3pC,QAASooC,GAAa3K,EAAQwK,gBAAgB2B,6BAA6BxB,IAC1F3K,EAAQmL,yBAAyBvF,GACjC5F,EAAQoL,aAAehF,CAC3B,CACAgG,aAAahG,EAAKpG,GACd,GAAIoG,EAAIC,QAAS,CACb,MAAMF,EAAWC,EAAID,SAIrB,OAAO3I,GAHawC,EAAQf,OACtBG,GAAkB+G,EAAUnG,EAAQf,OAAQe,EAAQzH,QACpD4N,EAC4BnG,EAAQzH,OAC9C,CAEI,MAAO,CAAEvwB,SAAUo+B,EAAIp+B,SAAUq0B,MAAO+J,EAAI/J,MAAOC,OAAQ8J,EAAI9J,OAEvE,CACAsE,aAAawF,EAAKpG,GACd,MAAMvC,EAAWuC,EAAQsG,sBAAwBt3C,KAAKo9C,aAAahG,EAAI3I,QAASuC,GAC1E2K,EAAW3K,EAAQwK,gBACrB/M,EAAQpB,QACR2D,EAAQqM,cAAc5O,EAAQpB,OAC9BsO,EAASoB,yBAEb,MAAMhQ,EAAQqK,EAAIrK,MACdA,EAAM/pC,MAAQiuC,KAAsBY,UACpC7xC,KAAK8xC,eAAe/E,EAAOiE,IAG3BA,EAAQqM,cAAc5O,EAAQz1B,UAC9BhZ,KAAKgyC,WAAWjF,EAAOiE,GACvB2K,EAASsB,yBAEbjM,EAAQsG,sBAAwB,KAChCtG,EAAQoL,aAAehF,CAC3B,CACApF,WAAWoF,EAAKpG,GACZ,MAAM2K,EAAW3K,EAAQwK,gBACnB/M,EAAUuC,EAAQsG,uBAGnB7I,GAAWkN,EAAS2B,6BACrB3B,EAAS4B,eAEb,MAAMjQ,EAAUmB,GAAWA,EAAQnB,QAAW8J,EAAI9J,OAC9C8J,EAAIO,YACJgE,EAAS6B,eAAelQ,GAGxBqO,EAASvM,UAAUgI,EAAI/H,OAAQ/B,EAAQ0D,EAAQzH,OAAQyH,EAAQtlC,SAEnEslC,EAAQoL,aAAehF,CAC3B,CACAtF,eAAesF,EAAKpG,GAChB,MAAMsG,EAAwBtG,EAAQsG,sBAChCa,EAAYnH,EAAQwK,gBAAgBxiC,SACpCA,EAAWs+B,EAAsBt+B,SAEjCykC,EADezM,EAAQiL,mBACMT,gBACnCiC,EAAcnQ,OAASgK,EAAsBhK,OAC7C8J,EAAI/H,OAAO97B,QAASsjC,IAEhB4G,EAAcC,aADC7G,EAAKvqB,QAAU,GACKtT,GACnCykC,EAAcrO,UAAUyH,EAAKxH,OAAQwH,EAAKvJ,OAAQ0D,EAAQzH,OAAQyH,EAAQtlC,SAC1E+xC,EAAcR,uBAAsB,GAIxCjM,EAAQwK,gBAAgB2B,6BAA6BM,GAGrDzM,EAAQmL,yBAAyBhE,EAAYn/B,GAC7Cg4B,EAAQoL,aAAehF,CAC3B,CACA5E,WAAW4E,EAAKpG,GAGZ,MAAMmH,EAAYnH,EAAQwK,gBAAgB5G,YACpClpC,EAAW0rC,EAAI1rC,SAAW,CAAC,EAC3B2hC,EAAQ3hC,EAAQ2hC,MAAQe,GAAmB1iC,EAAQ2hC,OAAS,EAC9DA,IACC2D,EAAQoL,aAAap5C,OAASiuC,KAAsBc,OACnC,GAAboG,GAAkBnH,EAAQwK,gBAAgB8B,+BAC/CtM,EAAQwK,gBAAgBuB,wBACxB/L,EAAQoL,aAAeY,IAE3B,IAAIpG,EAAeuB,EACnB,MAAMwF,EAAO3M,EAAQ1E,YAAY8K,EAAI7K,SAAU6K,EAAI0C,iBAAkB1C,EAAIiC,MAAOjC,EAAIsC,cAAahuC,EAAQmuC,SAAyB7I,EAAQzH,QAC1IyH,EAAQ4M,kBAAoBD,EAAKtyC,OACjC,IAAIwyC,EAAsB,KAC1BF,EAAKpqC,QAAQ,CAACy3B,EAAS5/B,KACnB4lC,EAAQ8M,kBAAoB1yC,EAC5B,MAAM4wC,EAAehL,EAAQiL,iBAAiB7E,EAAI1rC,QAASs/B,GACvDqC,GACA2O,EAAaP,cAAcpO,GAE3BrC,IAAYgG,EAAQhG,UACpB6S,EAAsB7B,EAAaR,iBAEvC3K,GAAa7wC,KAAMo3C,EAAItB,UAAWkG,GAIlCA,EAAaR,gBAAgByB,wBAE7BrG,EAAenqB,KAAKsqB,IAAIH,EADRoF,EAAaR,gBAAgB5G,YACA,GAEjD5D,EAAQ8M,kBAAoB,EAC5B9M,EAAQ4M,kBAAoB,EAC5B5M,EAAQmL,yBAAyBvF,GAC7BiH,IACA7M,EAAQwK,gBAAgB2B,6BAA6BU,GACrD7M,EAAQwK,gBAAgBuB,yBAE5B/L,EAAQoL,aAAehF,CAC3B,CACA1E,aAAa0E,EAAKpG,GACd,MAAM+M,EAAgB/M,EAAQ+M,cACxBC,EAAKhN,EAAQwK,gBACb/M,EAAU2I,EAAI3I,QACdz1B,EAAWyT,KAAKC,IAAI+hB,EAAQz1B,UAC5BilC,EAAUjlC,GAAYg4B,EAAQ4M,kBAAoB,GACxD,IAAIvQ,EAAQr0B,EAAWg4B,EAAQ8M,kBAE/B,OADyBrP,EAAQz1B,SAAW,EAAI,UAAYy1B,EAAQnB,QAEhE,IAAK,UACDD,EAAQ4Q,EAAU5Q,EAClB,MACJ,IAAK,OACDA,EAAQ0Q,EAAcG,mBAG9B,MAAMvC,EAAW3K,EAAQwK,gBACrBnO,GACAsO,EAASF,cAAcpO,GAE3B,MAAM8Q,EAAexC,EAAS/G,YAC9B/D,GAAa7wC,KAAMo3C,EAAItB,UAAW9E,GAClCA,EAAQoL,aAAehF,EAKvB2G,EAAcG,mBACVF,EAAGpJ,YAAcuJ,GAAgBH,EAAG7F,UAAY4F,EAAcvC,gBAAgBrD,UACtF,EAEJ,MAAM6E,GAA6B,CAAC,EACpC,MAAMzB,GACFz7C,YAAYy0C,EAASvJ,EAASoQ,EAAiBgD,EAAiBC,EAAiB9U,EAAQmS,EAAW4C,GAChGt+C,KAAKu0C,QAAUA,EACfv0C,KAAKgrC,QAAUA,EACfhrC,KAAKo7C,gBAAkBA,EACvBp7C,KAAKo+C,gBAAkBA,EACvBp+C,KAAKq+C,gBAAkBA,EACvBr+C,KAAKupC,OAASA,EACdvpC,KAAK07C,UAAYA,EACjB17C,KAAK+9C,cAAgB,KACrB/9C,KAAKs3C,sBAAwB,KAC7Bt3C,KAAKo8C,aAAeY,GACpBh9C,KAAK88C,gBAAkB,EACvB98C,KAAK0L,QAAU,CAAC,EAChB1L,KAAK89C,kBAAoB,EACzB99C,KAAK49C,kBAAoB,EACzB59C,KAAKk+C,mBAAqB,EAC1Bl+C,KAAKw7C,gBAAkB8C,GAAmB,IAAIC,GAAgBv+C,KAAKu0C,QAASvJ,EAAS,GACrF0Q,EAAUroC,KAAKrT,KAAKw7C,gBACxB,CACA,UAAIvL,GACA,OAAOjwC,KAAK0L,QAAQukC,MACxB,CACA4M,cAAcnxC,EAAS8yC,GACnB,IAAK9yC,EACD,OACJ,MAAM+yC,EAAa/yC,EACnB,IAAIgzC,EAAkB1+C,KAAK0L,QAEA,MAAvB+yC,EAAWzlC,WACX0lC,EAAgB1lC,SAAWo1B,GAAmBqQ,EAAWzlC,WAErC,MAApBylC,EAAWpR,QACXqR,EAAgBrR,MAAQe,GAAmBqQ,EAAWpR,QAE1D,MAAMsR,EAAYF,EAAWxO,OAC7B,GAAI0O,EAAW,CACX,IAAIC,EAAiBF,EAAgBzO,OAChC2O,IACDA,EAAiB5+C,KAAK0L,QAAQukC,OAAS,CAAC,GAE5C1uC,OAAO2I,KAAKy0C,GAAWprC,QAASjR,MACvBk8C,IAAiBI,EAAejQ,eAAersC,MAChDs8C,EAAet8C,GAAQ8tC,GAAkBuO,EAAUr8C,GAAOs8C,EAAgB5+C,KAAKupC,QAAM,EAGjG,CACJ,CACAsV,eACI,MAAMnzC,EAAU,CAAC,EACjB,GAAI1L,KAAK0L,QAAS,CACd,MAAMozC,EAAY9+C,KAAK0L,QAAQukC,OAC/B,GAAI6O,EAAW,CACX,MAAM7O,EAAUvkC,EAAQukC,OAAY,CAAC,EACrC1uC,OAAO2I,KAAK40C,GAAWvrC,QAASjR,IAC5B2tC,EAAO3tC,GAAQw8C,EAAUx8C,EAAI,EAErC,CACJ,CACA,OAAOoJ,CACX,CACAuwC,iBAAiBvwC,EAAU,KAAMs/B,EAAS+T,GACtC,MAAMC,EAAShU,GAAWhrC,KAAKgrC,QACzBgG,EAAU,IAAIuK,GAAyBv7C,KAAKu0C,QAASyK,EAAQh/C,KAAKo7C,gBAAiBp7C,KAAKo+C,gBAAiBp+C,KAAKq+C,gBAAiBr+C,KAAKupC,OAAQvpC,KAAK07C,UAAW17C,KAAKw7C,gBAAgByD,KAAKD,EAAQD,GAAW,IAC/M/N,SAAQoL,aAAep8C,KAAKo8C,aAC5BpL,EAAQsG,sBAAwBt3C,KAAKs3C,sBACrCtG,EAAQtlC,QAAU1L,KAAK6+C,eACvB7N,EAAQ6L,cAAcnxC,GACtBslC,EAAQ8M,kBAAoB99C,KAAK89C,kBACjC9M,EAAQ4M,kBAAoB59C,KAAK49C,kBACjC5M,EAAQ+M,cAAgB/9C,KACxBA,KAAK88C,kBACE9L,CACX,CACAmL,yBAAyB4C,GACrB,OAAA/+C,KAAKo8C,aAAeY,GACpBh9C,KAAKw7C,gBAAkBx7C,KAAKw7C,gBAAgByD,KAAKj/C,KAAKgrC,QAAS+T,GAC/D/+C,KAAK07C,UAAUroC,KAAKrT,KAAKw7C,iBAClBx7C,KAAKw7C,eAChB,CACAoB,4BAA4BF,EAAa1jC,EAAUq0B,GAC/C,MAAM6R,EAAiB,CACnBlmC,SAAUA,GAA8B0jC,EAAY1jC,SACpDq0B,MAAOrtC,KAAKw7C,gBAAgB5G,aAAevH,GAAwB,GAAKqP,EAAYrP,MACpFC,OAAQ,IAEN6R,EAAU,IAAIC,GAAmBp/C,KAAKu0C,QAASmI,EAAY1R,QAAS0R,EAAYtT,UAAWsT,EAAYtC,cAAesC,EAAYrC,eAAgB6E,EAAgBxC,EAAY2C,yBACpL,OAAAr/C,KAAK07C,UAAUroC,KAAK8rC,GACbD,CACX,CACA7B,cAAc11C,GACV3H,KAAKw7C,gBAAgBkC,YAAY19C,KAAKw7C,gBAAgBxiC,SAAWrR,EACrE,CACA8zC,cAAcpO,GAENA,EAAQ,GACRrtC,KAAKw7C,gBAAgBC,cAAcpO,EAE3C,CACAf,YAAYC,EAAUuN,EAAkBT,EAAOK,EAAaG,EAAUtQ,GAClE,IAAI+V,EAAU,GAId,GAHI5F,GACA4F,EAAQjsC,KAAKrT,KAAKgrC,SAElBuB,EAASlhC,OAAS,EAAG,CAGrBkhC,GADAA,EAAWA,EAAS9oB,QAAQm3B,GAAmB,IAAM56C,KAAKo+C,kBACtC36B,QAAQo3B,GAAmB,IAAM76C,KAAKq+C,iBAE1D,IAAIkB,EAAWv/C,KAAKu0C,QAAQrH,MAAMltC,KAAKgrC,QAASuB,EADzB,GAAT8M,GAEA,IAAVA,IACAkG,EACIlG,EAAQ,EACFkG,EAASl/B,MAAMk/B,EAASl0C,OAASguC,EAAOkG,EAASl0C,QACjDk0C,EAASl/B,MAAM,EAAGg5B,IAEhCiG,EAAQjsC,QAAQksC,EACpB,CACA,OAAK1F,GAA8B,GAAlByF,EAAQj0C,QACrBk+B,EAAOl2B,KA52DnB,SAASmsC,KACL,OAAO,IAAI5W,MAAc,MAA2CC,EAExE,CAy2DwB2W,IAETF,CACX,EAEJ,MAAMf,GACFz+C,YAAYy0C,EAASvJ,EAASmN,EAAWsH,GACrCz/C,KAAKu0C,QAAUA,EACfv0C,KAAKgrC,QAAUA,EACfhrC,KAAKm4C,UAAYA,EACjBn4C,KAAKy/C,6BAA+BA,EACpCz/C,KAAKgZ,SAAW,EAChBhZ,KAAKstC,OAAS,KACdttC,KAAK0/C,kBAAoB,IAAIjjC,IAC7Bzc,KAAK2/C,iBAAmB,IAAIljC,IAC5Bzc,KAAK4/C,WAAa,IAAInjC,IACtBzc,KAAK6/C,cAAgB,IAAIpjC,IACzBzc,KAAK8/C,qBAAuB,IAAIrjC,IAChCzc,KAAK+/C,eAAiB,IAAItjC,IAC1Bzc,KAAKggD,UAAY,IAAIvjC,IACrBzc,KAAKigD,0BAA4B,KAC5BjgD,KAAKy/C,+BACNz/C,KAAKy/C,6BAA+B,IAAIhjC,KAE5Czc,KAAKkgD,sBAAwBlgD,KAAKy/C,6BAA6Bz5C,IAAIglC,GAC9DhrC,KAAKkgD,wBACNlgD,KAAKkgD,sBAAwBlgD,KAAK8/C,qBAClC9/C,KAAKy/C,6BAA6B76C,IAAIomC,EAAShrC,KAAK8/C,uBAExD9/C,KAAKmgD,eACT,CACAvE,oBACI,OAAQ57C,KAAK4/C,WAAWt9B,MACpB,KAAK,EACD,OAAO,EACX,KAAK,EACD,OAAOtiB,KAAKs9C,4BAChB,QACI,OAAO,EAEnB,CACAA,4BACI,OAAOt9C,KAAK2/C,iBAAiBr9B,KAAO,CACxC,CACA,eAAIsyB,GACA,OAAO50C,KAAKm4C,UAAYn4C,KAAKgZ,QACjC,CACAyiC,cAAcpO,GAKV,MAAM+S,EAA2C,IAAzBpgD,KAAK4/C,WAAWt9B,MAActiB,KAAK+/C,eAAez9B,KACtEtiB,KAAKgZ,UAAYonC,GACjBpgD,KAAK09C,YAAY19C,KAAK40C,YAAcvH,GAChC+S,GACApgD,KAAK+8C,yBAIT/8C,KAAKm4C,WAAa9K,CAE1B,CACA4R,KAAKjU,EAAS4J,GACV,OAAA50C,KAAKi9C,wBACE,IAAIsB,GAAgBv+C,KAAKu0C,QAASvJ,EAAS4J,GAAe50C,KAAK40C,YAAa50C,KAAKy/C,6BAC5F,CACAU,gBACQngD,KAAK2/C,mBACL3/C,KAAK0/C,kBAAoB1/C,KAAK2/C,kBAElC3/C,KAAK2/C,iBAAmB3/C,KAAK4/C,WAAW55C,IAAIhG,KAAKgZ,UAC5ChZ,KAAK2/C,mBACN3/C,KAAK2/C,iBAAmB,IAAIljC,IAC5Bzc,KAAK4/C,WAAWh7C,IAAI5E,KAAKgZ,SAAUhZ,KAAK2/C,kBAEhD,CACApC,eACIv9C,KAAKgZ,UAzjBqB,EA0jB1BhZ,KAAKmgD,eACT,CACAzC,YAAY/1C,GACR3H,KAAKi9C,wBACLj9C,KAAKgZ,SAAWrR,EAChB3H,KAAKmgD,eACT,CACAE,aAAavW,EAAMp3B,GACf1S,KAAK8/C,qBAAqBl7C,IAAIklC,EAAMp3B,GACpC1S,KAAKkgD,sBAAsBt7C,IAAIklC,EAAMp3B,GACrC1S,KAAK6/C,cAAcj7C,IAAIklC,EAAM,CAAEniC,KAAM3H,KAAK40C,YAAaliC,SAC3D,CACAopC,0BACI,OAAO97C,KAAKigD,4BAA8BjgD,KAAK2/C,gBACnD,CACAnC,eAAelQ,GACPA,GACAttC,KAAK0/C,kBAAkB96C,IAAI,SAAU0oC,GAQzC,QAAUxD,EAAMp3B,KAAU1S,KAAKkgD,sBAC3BlgD,KAAKggD,UAAUp7C,IAAIklC,EAAMp3B,GAASy3B,MAClCnqC,KAAK2/C,iBAAiB/6C,IAAIklC,EAAMK,MAEpCnqC,KAAKigD,0BAA4BjgD,KAAK2/C,gBAC1C,CACAvQ,UAAUuB,EAAOrD,EAAQ/D,EAAQ79B,GACzB4hC,GACAttC,KAAK0/C,kBAAkB96C,IAAI,SAAU0oC,GAEzC,MAAM2C,EAAUvkC,GAAWA,EAAQukC,QAAW,CAAC,EACzCZ,EA+Id,SAASiR,GAAc3P,EAAO4P,GAC1B,MAAMlR,EAAS,IAAI5yB,IACnB,IAAI+jC,EACJ7P,SAAMp9B,QAAS8R,IACX,GAAc,MAAVA,EAAe,CACfm7B,IAAkBD,EAAUr2C,OAC5B,QAAS4/B,KAAQ0W,EACbnR,EAAOzqC,IAAIklC,EAAMK,KAEzB,MAEI,QAAUL,EAAMxa,KAAQjK,EACpBgqB,EAAOzqC,IAAIklC,EAAMxa,EAAG,GAIzB+f,CACX,CAhKuBiR,CAAc3P,EAAO3wC,KAAKkgD,uBACzC,QAAUpW,EAAMp3B,KAAU28B,EAAQ,CAC9B,MAAM/f,EAAM8gB,GAAkB19B,EAAOu9B,EAAQ1G,GAC7CvpC,KAAK+/C,eAAen7C,IAAIklC,EAAMxa,GACzBtvB,KAAK8/C,qBAAqBt5C,IAAIsjC,IAC/B9pC,KAAKggD,UAAUp7C,IAAIklC,EAAM9pC,KAAKkgD,sBAAsBl6C,IAAI8jC,IAASK,MAErEnqC,KAAKqgD,aAAavW,EAAMxa,EAC5B,CACJ,CACA2tB,wBACoC,GAA5Bj9C,KAAK+/C,eAAez9B,OAExBtiB,KAAK+/C,eAAexsC,QAAQ,CAAC+b,EAAKwa,KAC9B9pC,KAAK2/C,iBAAiB/6C,IAAIklC,EAAMxa,EAAG,GAEvCtvB,KAAK+/C,eAAel6B,QACpB7lB,KAAK8/C,qBAAqBvsC,QAAQ,CAAC+b,EAAKwa,KAC/B9pC,KAAK2/C,iBAAiBn5C,IAAIsjC,IAC3B9pC,KAAK2/C,iBAAiB/6C,IAAIklC,EAAMxa,EAAG,GAG/C,CACAytB,wBACI,QAAUjT,EAAMxa,KAAQtvB,KAAK8/C,qBACzB9/C,KAAK+/C,eAAen7C,IAAIklC,EAAMxa,GAC9BtvB,KAAKqgD,aAAavW,EAAMxa,EAEhC,CACAmxB,mBACI,OAAOzgD,KAAK4/C,WAAW55C,IAAIhG,KAAKgZ,SACpC,CACA,cAAI0nC,GACA,MAAMA,EAAa,GACnB,QAAS5W,KAAQ9pC,KAAK2/C,iBAClBe,EAAWrtC,KAAKy2B,GAEpB,OAAO4W,CACX,CACAvD,6BAA6BxB,GACzBA,EAASkE,cAActsC,QAAQ,CAACotC,EAAU7W,KACtC,MAAM8W,EAAW5gD,KAAK6/C,cAAc75C,IAAI8jC,KACnC8W,GAAYD,EAASh5C,KAAOi5C,EAASj5C,OACtC3H,KAAKqgD,aAAavW,EAAM6W,EAASjuC,MAAK,EAGlD,CACA4oC,iBACIt7C,KAAKi9C,wBACL,MAAM7C,EAAgB,IAAItH,IACpBuH,EAAiB,IAAIvH,IACrB0E,EAAmC,IAAzBx3C,KAAK4/C,WAAWt9B,MAAgC,IAAlBtiB,KAAKgZ,SACnD,IAAI6nC,EAAiB,GACrB7gD,KAAK4/C,WAAWrsC,QAAQ,CAACutC,EAAUn5C,KAC/B,MAAMo5C,EAAgB,IAAItkC,IAAI,IAAIzc,KAAKggD,aAAcc,IACrDC,EAAcxtC,QAAQ,CAACb,EAAOo3B,KACtBp3B,IAAUw3B,KACVkQ,EAAcxE,IAAI9L,GAEbp3B,IAAUy3B,MACfkQ,EAAezE,IAAI9L,EAAI,GAG1B0N,GACDuJ,EAAcn8C,IAAI,SAAU+C,EAAO3H,KAAKgZ,UAE5C6nC,EAAextC,KAAK0tC,EAAa,GAErC,MAAMC,EAAW,IAAI5G,EAAc1nB,UAC7BuuB,EAAY,IAAI5G,EAAe3nB,UAErC,GAAI8kB,EAAS,CACT,MAAM0J,EAAML,EAAe,GACrBM,EAAM,IAAI1kC,IAAIykC,GACpBA,EAAIt8C,IAAI,SAAU,GAClBu8C,EAAIv8C,IAAI,SAAU,GAClBi8C,EAAiB,CAACK,EAAKC,EAC3B,CACA,OAAOhH,GAA0Bn6C,KAAKgrC,QAAS6V,EAAgBG,EAAUC,EAAWjhD,KAAKgZ,SAAUhZ,KAAKm4C,UAAWn4C,KAAKstC,QAAQ,EACpI,EAEJ,MAAM8R,WAA2Bb,GAC7Bz+C,YAAY+kC,EAAQmG,EAAS5B,EAAWgR,EAAeC,EAAgB5L,EAAS2S,GAA2B,GACvGjhD,MAAM0kC,EAAQmG,EAASyD,EAAQpB,OAC/BrtC,KAAKopC,UAAYA,EACjBppC,KAAKo6C,cAAgBA,EACrBp6C,KAAKq6C,eAAiBA,EACtBr6C,KAAKohD,yBAA2BA,EAChCphD,KAAKyuC,QAAU,CAAEz1B,SAAUy1B,EAAQz1B,SAAUq0B,MAAOoB,EAAQpB,MAAOC,OAAQmB,EAAQnB,OACvF,CACAsO,oBACI,OAAO57C,KAAKopC,UAAU/9B,OAAS,CACnC,CACAiwC,iBACI,IAAIlS,EAAYppC,KAAKopC,WACfiE,QAAOr0B,WAAUs0B,UAAWttC,KAAKyuC,QACvC,GAAIzuC,KAAKohD,0BAA4B/T,EAAO,CACxC,MAAMgU,EAAe,GACfjW,EAAYpyB,EAAWq0B,EACvBiU,EAAcjU,EAAQjC,EAEtBmW,EAAmB,IAAI9kC,IAAI2sB,EAAU,IAC3CmY,EAAiB38C,IAAI,SAAU,GAC/By8C,EAAahuC,KAAKkuC,GAClB,MAAMC,EAAmB,IAAI/kC,IAAI2sB,EAAU,IAC3CoY,EAAiB58C,IAAI,SAAU68C,GAAYH,IAC3CD,EAAahuC,KAAKmuC,GAgBlB,MAAMnI,EAAQjQ,EAAU/9B,OAAS,EACjC,QAASD,EAAI,EAAGA,GAAKiuC,EAAOjuC,IAAK,CAC7B,IAAIu+B,EAAK,IAAIltB,IAAI2sB,EAAUh+B,IAC3B,MAAMs2C,GAAY/X,EAAG3jC,IAAI,UAEzB2jC,EAAG/kC,IAAI,SAAU68C,IADMpU,EAAQqU,GAAY1oC,GACGoyB,IAC9CiW,EAAahuC,KAAKs2B,EACtB,CAEA3wB,EAAWoyB,EACXiC,EAAQ,EACRC,EAAS,GACTlE,EAAYiY,CAChB,CACA,OAAOlH,GAA0Bn6C,KAAKgrC,QAAS5B,EAAWppC,KAAKo6C,cAAep6C,KAAKq6C,eAAgBrhC,EAAUq0B,EAAOC,GAAQ,EAChI,EAEJ,SAASmU,GAAYn1B,EAAQq1B,EAAgB,GACzC,MAAMC,EAAOn1B,KAAKo1B,IAAI,GAAIF,EAAgB,GAC1C,OAAOl1B,KAAKq1B,MAAMx1B,EAASs1B,GAAQA,CACvC,CAoBA,SAASG,GAA4B/W,EAASC,EAAaC,EAAWC,EAAS6W,EAAqBC,EAAYC,EAAUxG,EAAWyG,EAAiB/H,EAAeC,EAAgBjP,EAAW7B,GAC5L,MAAO,CACHvmC,KAAM,EACNgoC,UACAC,cACA+W,sBACA9W,YACA+W,aACA9W,UACA+W,WACAxG,YACAyG,kBACA/H,gBACAC,iBACAjP,YACA7B,SAER,CAEA,MAAM6Y,GAAe,CAAC,EACtB,MAAMC,GACFviD,YAAYwiD,EAAclL,EAAKmL,GAC3BviD,KAAKsiD,aAAeA,EACpBtiD,KAAKo3C,IAAMA,EACXp3C,KAAKuiD,aAAeA,CACxB,CACAlyB,MAAMmyB,EAAcC,EAAWzX,EAASiF,GACpC,OAuGR,SAASyS,GAA0BC,EAAUH,EAAcC,EAAWzX,EAASiF,GAC3E,OAAO0S,EAAS1iC,KAAM2iC,GAAOA,EAAGJ,EAAcC,EAAWzX,EAASiF,GACtE,CAzGeyS,CAA0B1iD,KAAKo3C,IAAIrB,SAAUyM,EAAcC,EAAWzX,EAASiF,EAC1F,CACA4S,YAAYC,EAAW7S,EAAQ1G,GAC3B,IAAIwZ,EAAS/iD,KAAKuiD,aAAav8C,IAAI,KACnC,YAAkB1E,IAAdwhD,IACAC,EAAS/iD,KAAKuiD,aAAav8C,IAAI88C,GAAWhwC,aAAeiwC,GAEtDA,EAASA,EAAOF,YAAY5S,EAAQ1G,GAAU,IAAI9sB,GAC7D,CACA63B,MAAMzP,EAAQmG,EAASwX,EAAcC,EAAWzH,EAAgBC,EAAgB+H,EAAgBC,EAAa7H,EAAiB8H,GAC1H,MAAM3Z,EAAS,GACT4Z,EAA6BnjD,KAAKo3C,IAAI1rC,SAAW1L,KAAKo3C,IAAI1rC,QAAQukC,QAAWmS,GAE7EgB,GAAqBpjD,KAAK6iD,YAAYL,EADZQ,GAAkBA,EAAe/S,QAAWmS,GACM7Y,GAC5E8Z,GAAuBJ,GAAeA,EAAYhT,QAAWmS,GAC7DkB,GAAkBtjD,KAAK6iD,YAAYJ,EAAWY,GAAqB9Z,GACnE4Y,GAAkB,IAAIrP,IACtByQ,GAAc,IAAI9mC,IAClB+mC,GAAe,IAAI/mC,IACnBgnC,GAA0B,SAAdhB,EACZiB,GAAmB,CACrBzT,OAAQ0T,GAAmBN,GAAqBF,GAChD9V,MAAOrtC,KAAKo3C,IAAI1rC,SAAS2hC,OAEvBqO,GAAYwH,EACZ,GACApI,GAAwBjW,EAAQmG,EAAShrC,KAAKo3C,IAAItB,UAAWkF,EAAgBC,EAAgBmI,GAAoBE,GAAiBI,GAAkBtI,EAAiB7R,GAC3K,IAAI6B,GAAY,EAIhB,OAHAsQ,GAAUnoC,QAASyqC,KACf5S,GAAY3e,KAAKsqB,IAAIiH,GAAGhlC,SAAWglC,GAAG3Q,MAAOjC,GAAS,GAEtD7B,EAAOl+B,OACA02C,GAA4B/W,EAAShrC,KAAKsiD,aAAcE,EAAcC,EAAWgB,GAAWL,GAAoBE,GAAiB,GAAI,GAAIC,GAAaC,GAAcpY,GAAW7B,IAE1LmS,GAAUnoC,QAASyqC,KACf,MAAM4F,GAAM5F,GAAGhT,QACTgW,GAAW1V,GAAqBiY,GAAaK,GAAK,IAAI9Q,KAC5DkL,GAAG5D,cAAc7mC,QAASu2B,IAASkX,GAASpL,IAAI9L,KAChD,MAAMmX,GAAY3V,GAAqBkY,GAAcI,GAAK,IAAI9Q,KAC9DkL,GAAG3D,eAAe9mC,QAASu2B,IAASmX,GAAUrL,IAAI9L,KAC9C8Z,KAAQ5Y,GACRmX,GAAgBvM,IAAIgO,GAAG,GAMxB7B,GAA4B/W,EAAShrC,KAAKsiD,aAAcE,EAAcC,EAAWgB,GAAWL,GAAoBE,GAAiB5H,GAAW,IAAIyG,GAAgBzvB,UAAW6wB,GAAaC,GAAcpY,IACjN,EA0DJ,SAASuY,GAAmBE,EAAYC,GACpC,MAAMz+C,EAAS,IAAKy+C,GACpBviD,cAAO2c,QAAQ2lC,GAAYtwC,QAAQ,EAAE0K,EAAKvL,MACzB,MAATA,IACArN,EAAO4Y,GAAOvL,KAGfrN,CACX,CACA,MAAM0+C,GACFjkD,YAAYuvC,EAAQ2U,EAAe7a,GAC/BnpC,KAAKqvC,OAASA,EACdrvC,KAAKgkD,cAAgBA,EACrBhkD,KAAKmpC,WAAaA,CACtB,CACA0Z,YAAY5S,EAAQ1G,GAChB,MAAM4R,EAAc,IAAI1+B,IAClBwnC,EAAiBN,GAAmB1T,EAAQjwC,KAAKgkD,eACvD,OAAAhkD,KAAKqvC,OAAOA,OAAO97B,QAASb,IACH,iBAAVA,GACPA,EAAMa,QAAQ,CAAC+b,EAAKwa,KACZxa,IACAA,EAAM8gB,GAAkB9gB,EAAK20B,EAAgB1a,IAEjD,MAAMQ,EAAiB/pC,KAAKmpC,WAAWc,sBAAsBH,EAAMP,GACnEja,EAAMtvB,KAAKmpC,WAAWiB,oBAAoBN,EAAMC,EAAgBza,EAAKia,GACrE4R,EAAYv2C,IAAIklC,EAAMxa,EAAG,EAC5B,GAGF6rB,CACX,EAMJ,MAAM+I,GACFpkD,YAAYwC,EAAM80C,EAAK+M,GACnBnkD,KAAKsC,KAAOA,EACZtC,KAAKo3C,IAAMA,EACXp3C,KAAKmkD,YAAcA,EACnBnkD,KAAKokD,oBAAsB,GAC3BpkD,KAAK+0C,OAAS,IAAIt4B,IAClB26B,EAAIrC,OAAOxhC,QAAS6jC,IAEhBp3C,KAAK+0C,OAAOnwC,IAAIwyC,EAAI90C,KAAM,IAAIyhD,GAAqB3M,EAAIrK,MADhCqK,EAAI1rC,SAAW0rC,EAAI1rC,QAAQukC,QAAW,CAAC,EACekU,GAAY,GAE7FE,GAAkBrkD,KAAK+0C,OAAQ,OAAQ,KACvCsP,GAAkBrkD,KAAK+0C,OAAQ,QAAS,KACxCqC,EAAIpC,YAAYzhC,QAAS6jC,IACrBp3C,KAAKokD,oBAAoB/wC,KAAK,IAAIgvC,GAA2B//C,EAAM80C,EAAKp3C,KAAK+0C,QAAO,GAExF/0C,KAAKskD,mBAab,SAASC,GAAyBtZ,EAAa8J,GAW3C,OAAO,IAAIsN,GAA2BpX,EARnB,CACfjoC,KAAMiuC,KAAsBK,WAC5BwE,UAHc,CAAE9yC,KAAMiuC,KAAsBO,SAAU5B,MAAO,GAAIlkC,QAAS,MAI1EqqC,SALa,CAAC,CAAC7K,EAAWC,KAAY,GAMtCz/B,QAAS,KACTmpC,WAAY,EACZC,SAAU,GAEiDC,EACnE,CAzBkCwP,CAAyBjiD,EAAMtC,KAAK+0C,OAClE,CACA,mBAAIyP,GACA,OAAOxkD,KAAKo3C,IAAIvC,WAAa,CACjC,CACA4P,gBAAgBjC,EAAcC,EAAWzX,EAASiF,GAE9C,OADcjwC,KAAKokD,oBAAoBxiD,KAAM8iD,GAAMA,EAAEr0B,MAAMmyB,EAAcC,EAAWzX,EAASiF,KAC7E,IACpB,CACA0U,YAAYnC,EAAcvS,EAAQ1G,GAC9B,OAAOvpC,KAAKskD,mBAAmBzB,YAAYL,EAAcvS,EAAQ1G,EACrE,EAeJ,SAAS8a,GAAkBO,EAAUC,EAAMC,GACnCF,EAASp+C,IAAIq+C,GACRD,EAASp+C,IAAIs+C,IACdF,EAAShgD,IAAIkgD,EAAMF,EAAS5+C,IAAI6+C,IAG/BD,EAASp+C,IAAIs+C,IAClBF,EAAShgD,IAAIigD,EAAMD,EAAS5+C,IAAI8+C,GAExC,CAEA,MAAMC,GAAwB,IAAIxK,GAClC,MAAMyK,GACFllD,YAAYmlD,EAAU1Q,EAAS4P,GAC3BnkD,KAAKilD,SAAWA,EAChBjlD,KAAKu0C,QAAUA,EACfv0C,KAAKmkD,YAAcA,EACnBnkD,KAAKklD,YAAc,IAAIzoC,IACvBzc,KAAKmlD,aAAe,IAAI1oC,IACxBzc,KAAK+oC,QAAU,EACnB,CACAqc,SAASzsB,EAAIwb,GACT,MAAM5K,EAAS,GAET6N,EAAMlD,GAAkBl0C,KAAKu0C,QAASJ,EAAU5K,EADrC,IAEjB,GAAIA,EAAOl+B,OACP,MAn1EZ,SAASg6C,KACL,OAAO,IAAIzc,MAAc,MAAiDC,EAI9E,CA80EkBwc,GAMNrlD,KAAKklD,YAAYtgD,IAAI+zB,EAAIye,EAEjC,CACAkO,aAAal6C,EAAGi+B,EAAWC,GACvB,MAAM0B,EAAU5/B,EAAE4/B,QACZ5B,EAAYF,GAAqBlpC,KAAKmkD,YAAa/4C,EAAEg+B,UAAWC,EAAWC,GACjF,OAAOtpC,KAAKu0C,QAAQnH,QAAQpC,EAAS5B,EAAWh+B,EAAE4N,SAAU5N,EAAEiiC,MAAOjiC,EAAEkiC,OAAQ,IAAI,EACvF,CACAiY,OAAO5sB,EAAIqS,EAASt/B,EAAU,CAAC,GAC3B,MAAM69B,EAAS,GACT6N,EAAMp3C,KAAKklD,YAAYl/C,IAAI2yB,GACjC,IAAI+hB,EACJ,MAAM8K,EAAgB,IAAI/oC,IAY1B,GAXI26B,GACAsD,EAAeI,GAAwB96C,KAAKu0C,QAASvJ,EAASoM,EAAKtJ,GAAiBC,GAAiB,IAAItxB,IAAO,IAAIA,IAAO/Q,EAASq5C,GAAuBxb,GAC3JmR,EAAannC,QAASkyC,IAClB,MAAMpW,EAAS/D,GAAqBka,EAAeC,EAAKza,QAAS,IAAIvuB,KACrEgpC,EAAKpL,eAAe9mC,QAASu2B,GAASuF,EAAOzqC,IAAIklC,EAAM,MAAK,KAIhEP,EAAOl2B,KAx2EnB,SAASqyC,KACL,OAAO,IAAI9c,MAAc,MAA4DC,EACzF,CAs2EwB6c,IACZhL,EAAe,IAEfnR,EAAOl+B,OACP,MAz2EZ,SAASs6C,KACL,OAAO,IAAI/c,MAAc,MAAqDC,EAIlF,CAo2EkB8c,GAEVH,EAAcjyC,QAAQ,CAAC87B,EAAQrE,KAC3BqE,EAAO97B,QAAQ,CAACm8B,EAAG5F,MACfuF,EAAOzqC,IAAIklC,GAAM9pC,KAAKu0C,QAAQpH,aAAanC,EAASlB,GAAMK,MAAW,EACxE,GAEL,MAIMI,EAASzB,GAJC4R,EAAa1uC,IAAKZ,IAC9B,MAAMikC,EAASmW,EAAcx/C,IAAIoF,EAAE4/B,SACnC,OAAOhrC,KAAKslD,aAAal6C,EAAG,IAAIqR,IAAO4yB,EAAM,IAGjD,OAAArvC,KAAKmlD,aAAavgD,IAAI+zB,EAAI4R,GAC1BA,EAAOM,UAAU,IAAM7qC,KAAK4lD,QAAQjtB,IACpC34B,KAAK+oC,QAAQ11B,KAAKk3B,GACXA,CACX,CACAqb,QAAQjtB,GACJ,MAAM4R,EAASvqC,KAAK6lD,WAAWltB,GAC/B4R,EAAOqb,UACP5lD,KAAKmlD,aAAav5C,OAAO+sB,GACzB,MAAMhE,EAAQ30B,KAAK+oC,QAAQzkC,QAAQimC,GAC/B5V,GAAS,GACT30B,KAAK+oC,QAAQoG,OAAOxa,EAAO,EAEnC,CACAkxB,WAAWltB,GACP,MAAM4R,EAASvqC,KAAKmlD,aAAan/C,IAAI2yB,GACrC,IAAK4R,EACD,MAh4EZ,SAASub,KACL,OAAO,IAAIld,MAAc,MAA4CC,EACzE,CA83EkBid,GAEV,OAAOvb,CACX,CACAwb,OAAOptB,EAAIqS,EAASR,EAAWC,GAE3B,MAAMub,EAAYjb,GAAmBC,EAAS,GAAI,GAAI,IACtDV,UAAetqC,KAAK6lD,WAAWltB,GAAK6R,EAAWwb,EAAWvb,GACnD,MACX,CACAgB,QAAQ9S,EAAIqS,EAASS,EAASlI,GAC1B,GAAe,YAAXkI,EAEA,YADAzrC,KAAKolD,SAASzsB,EAAI4K,EAAK,IAG3B,GAAe,UAAXkI,EAGA,YADAzrC,KAAKulD,OAAO5sB,EAAIqS,EADCzH,EAAK,IAAM,CAAC,GAIjC,MAAMgH,EAASvqC,KAAK6lD,WAAWltB,GAC/B,OAAQ8S,GACJ,IAAK,OACDlB,EAAO0b,OACP,MACJ,IAAK,QACD1b,EAAO2b,QACP,MACJ,IAAK,QACD3b,EAAO4b,QACP,MACJ,IAAK,UACD5b,EAAO6b,UACP,MACJ,IAAK,SACD7b,EAAO8b,SACP,MACJ,IAAK,OACD9b,EAAO+b,OACP,MACJ,IAAK,cACD/b,EAAOgc,YAAYhjC,WAAWggB,EAAK,KACnC,MACJ,IAAK,UACDvjC,KAAK4lD,QAAQjtB,GAGzB,EAGJ,MAAM6tB,GAAmB,oBAEnBC,GAAqB,sBAIrBC,GAAqB,GACrBC,GAAqB,CACvBC,YAAa,GACbC,eAAe,EACfC,YAAY,EACZC,cAAc,EACdC,sBAAsB,GAEpBC,GAA6B,CAC/BL,YAAa,GACbE,YAAY,EACZD,eAAe,EACfE,cAAc,EACdC,sBAAsB,GAEpBE,GAAe,eACrB,MAAMC,GACF,UAAIlX,GACA,OAAOjwC,KAAK0L,QAAQukC,MACxB,CACAnwC,YAAY6wC,EAAOiW,EAAc,IAC7B5mD,KAAK4mD,YAAcA,EACnB,MAAMQ,EAAQzW,GAASA,EAAMhC,eAAe,SAG5C,GADA3uC,KAAK0S,MAqzCb,SAAS20C,GAAsB30C,GAI3B,OAAOA,GAAwB,IACnC,CA1zCqB20C,CADCD,EAAQzW,EAAMj+B,MAAWi+B,GAEnCyW,EAAO,CAEP,MAAQ10C,WAAUhH,GAAYilC,EAC9B3wC,KAAK0L,QAAUA,CACnB,MAEI1L,KAAK0L,QAAU,CAAC,EAEf1L,KAAK0L,QAAQukC,SACdjwC,KAAK0L,QAAQukC,OAAS,CAAC,EAE/B,CACAqX,cAAc57C,GACV,MAAMizC,EAAYjzC,EAAQukC,OAC1B,GAAI0O,EAAW,CACX,MAAMG,EAAY9+C,KAAK0L,QAAQukC,OAC/B1uC,OAAO2I,KAAKy0C,GAAWprC,QAASu2B,IACL,MAAnBgV,EAAUhV,KACVgV,EAAUhV,GAAQ6U,EAAU7U,GAAI,EAG5C,CACJ,EAEJ,MAAMyd,GAAa,OACbC,GAAsB,IAAIL,GAAWI,IAC3C,MAAME,GACF3nD,YAAY64B,EAAI+uB,EAAaC,GACzB3nD,KAAK24B,GAAKA,EACV34B,KAAK0nD,YAAcA,EACnB1nD,KAAK2nD,QAAUA,EACf3nD,KAAK+oC,QAAU,GACf/oC,KAAK4nD,UAAY,IAAInrC,IACrBzc,KAAK6nD,OAAS,GACd7nD,KAAK8nD,kBAAoB,IAAIrrC,IAC7Bzc,KAAK+nD,eAAiB,UAAYpvB,EAClCqvB,GAASN,EAAa1nD,KAAK+nD,eAC/B,CACAhC,OAAO/a,EAAS1oC,EAAM2lD,EAAOxd,GACzB,IAAKzqC,KAAK4nD,UAAUphD,IAAIlE,GACpB,MAt/EZ,SAAS4lD,KACL,OAAO,IAAItf,MAAc,MAA6CC,EAE1E,CAm/EkBqf,GAEV,GAAa,MAATD,GAAiC,GAAhBA,EAAM58C,OACvB,MAr/EZ,SAAS88C,KACL,OAAO,IAAIvf,MAAc,MAA2CC,EAExE,CAk/EkBsf,GAEV,IAgxCR,SAASC,GAAoB5d,GACzB,MAAoB,SAAbA,GAAqC,QAAbA,CACnC,CAlxCa4d,CAAoBH,GACrB,MAp/EZ,SAASI,KACL,OAAO,IAAIzf,MAAc,MAAuDC,EAEpF,CAi/EkBwf,GAEV,MAAMC,EAAYhd,GAAqBtrC,KAAK8nD,kBAAmB9c,EAAS,IAClEliC,EAAO,CAAExG,OAAM2lD,QAAOxd,YAC5B6d,EAAUj1C,KAAKvK,GACf,MAAMy/C,EAAqBjd,GAAqBtrC,KAAK2nD,QAAQa,gBAAiBxd,EAAS,IAAIvuB,KAC3F,OAAK8rC,EAAmB/hD,IAAIlE,KACxB0lD,GAAShd,EAASgD,IAClBga,GAAShd,EAASgD,GAAuB,IAAM1rC,GAC/CimD,EAAmB3jD,IAAItC,EAAMklD,KAE1B,KAIHxnD,KAAK2nD,QAAQc,WAAW,KACpB,MAAM9zB,EAAQ2zB,EAAUhkD,QAAQwE,GAC5B6rB,GAAS,GACT2zB,EAAUnZ,OAAOxa,EAAO,GAEvB30B,KAAK4nD,UAAUphD,IAAIlE,IACpBimD,EAAmB38C,OAAOtJ,EAAI,EAErC,CAET,CACA8iD,SAAS9iD,EAAM80C,GACX,OAAIp3C,KAAK4nD,UAAUphD,IAAIlE,KAKnBtC,KAAK4nD,UAAUhjD,IAAItC,EAAM80C,IAClB,EAEf,CACAsR,YAAYpmD,GACR,MAAMqmD,EAAU3oD,KAAK4nD,UAAU5hD,IAAI1D,GACnC,IAAKqmD,EACD,MAvhFZ,SAASC,KACL,OAAO,IAAIhgB,MAAc,MAAkDC,EAC/E,CAqhFkB+f,GAEV,OAAOD,CACX,CACAA,QAAQ3d,EAASC,EAAav4B,EAAOm2C,GAAoB,GACrD,MAAMF,EAAU3oD,KAAK0oD,YAAYzd,GAC3BV,EAAS,IAAIue,GAA0B9oD,KAAK24B,GAAIsS,EAAaD,GACnE,IAAIud,EAAqBvoD,KAAK2nD,QAAQa,gBAAgBxiD,IAAIglC,GACrDud,IACDP,GAAShd,EAASgD,IAClBga,GAAShd,EAASgD,GAAuB,IAAM/C,GAC/CjrC,KAAK2nD,QAAQa,gBAAgB5jD,IAAIomC,EAAUud,EAAqB,IAAI9rC,MAExE,IAAIyuB,EAAYqd,EAAmBviD,IAAIilC,GACvC,MAAME,EAAU,IAAIgc,GAAWz0C,EAAO1S,KAAK24B,IAgB3C,KAfcjmB,GAASA,EAAMi8B,eAAe,WAC9BzD,GACVC,EAAQmc,cAAcpc,EAAUx/B,SAEpC68C,EAAmB3jD,IAAIqmC,EAAaE,GAC/BD,IACDA,EAAYsc,IAEErc,EAAQz4B,QAAU60C,IAOlBrc,EAAUx4B,QAAUy4B,EAAQz4B,MAAO,CAGjD,IAgzCZ,SAASq2C,GAAUxgC,EAAGC,GAClB,MAAMwgC,EAAKznD,OAAO2I,KAAKqe,GACjB0gC,EAAK1nD,OAAO2I,KAAKse,GACvB,GAAIwgC,EAAG39C,QAAU49C,EAAG59C,OAChB,OAAO,EACX,QAASD,EAAI,EAAGA,EAAI49C,EAAG39C,OAAQD,IAAK,CAChC,MAAM0+B,EAAOkf,EAAG59C,GAChB,IAAKod,EAAEmmB,eAAe7E,IAASvhB,EAAEuhB,KAAUthB,EAAEshB,GACzC,OAAO,CACf,CACA,OAAO,CACX,CA3zCiBif,CAAU7d,EAAU+E,OAAQ9E,EAAQ8E,QAAS,CAC9C,MAAM1G,GAAS,GACT0Y,GAAa0G,EAAQhE,YAAYzZ,EAAUx4B,MAAOw4B,EAAU+E,OAAQ1G,IACpE2Y,GAAWyG,EAAQhE,YAAYxZ,EAAQz4B,MAAOy4B,EAAQ8E,OAAQ1G,IAChEA,GAAOl+B,OACPrL,KAAK2nD,QAAQuB,YAAY3f,IAGzBvpC,KAAK2nD,QAAQc,WAAW,KACpBhZ,GAAYzE,EAASiX,IACrB7S,GAAUpE,EAASkX,GAAQ,EAGvC,CACA,MACJ,CACA,MAAMiH,EAAmB7d,GAAqBtrC,KAAK2nD,QAAQyB,iBAAkBpe,EAAS,IACtFme,EAAiB51C,QAASg3B,KAKlBA,GAAOqc,aAAe5mD,KAAK24B,IAAM4R,GAAOU,aAAeA,GAAeV,GAAO8e,QAC7E9e,GAAOqb,SAAQ,GAGvB,IAAItQ,GAAaqT,EAAQlE,gBAAgBvZ,EAAUx4B,MAAOy4B,EAAQz4B,MAAOs4B,EAASG,EAAQ8E,QACtFqZ,IAAuB,EAC3B,IAAKhU,GAAY,CACb,IAAKuT,EACD,OACJvT,GAAaqT,EAAQrE,mBACrBgF,IAAuB,CAC3B,CACA,OAAAtpD,KAAK2nD,QAAQ4B,qBACbvpD,KAAK6nD,OAAOx0C,KAAK,CACb23B,UACAC,cACAqK,cACApK,YACAC,UACAZ,SACA+e,0BAECA,KACDtB,GAAShd,EAASwb,IAClBjc,EAAOG,QAAQ,KACX8e,GAAYxe,EAASwb,GAAgB,IAG7Cjc,EAAOK,OAAO,KACV,IAAIjW,GAAQ30B,KAAK+oC,QAAQzkC,QAAQimC,GAC7B5V,IAAS,GACT30B,KAAK+oC,QAAQoG,OAAOxa,GAAO,GAE/B,MAAMoU,GAAU/oC,KAAK2nD,QAAQyB,iBAAiBpjD,IAAIglC,GAClD,GAAIjC,GAAS,CACT,IAAIpU,GAAQoU,GAAQzkC,QAAQimC,GACxB5V,IAAS,GACToU,GAAQoG,OAAOxa,GAAO,EAE9B,IAEJ30B,KAAK+oC,QAAQ11B,KAAKk3B,GAClB4e,EAAiB91C,KAAKk3B,GACfA,CACX,CACAkf,WAAWnnD,GACPtC,KAAK4nD,UAAUh8C,OAAOtJ,GACtBtC,KAAK2nD,QAAQa,gBAAgBj1C,QAASqxC,GAAaA,EAASh5C,OAAOtJ,IACnEtC,KAAK8nD,kBAAkBv0C,QAAQ,CAAC+0C,EAAWtd,KACvChrC,KAAK8nD,kBAAkBljD,IAAIomC,EAASsd,EAAUr6C,OAAQy7C,GAC3CA,EAAMpnD,MAAQA,GACvB,EAEV,CACAqnD,kBAAkB3e,GACdhrC,KAAK2nD,QAAQa,gBAAgB58C,OAAOo/B,GACpChrC,KAAK8nD,kBAAkBl8C,OAAOo/B,GAC9B,MAAM4e,EAAiB5pD,KAAK2nD,QAAQyB,iBAAiBpjD,IAAIglC,GACrD4e,IACAA,EAAer2C,QAASg3B,GAAWA,EAAOqb,WAC1C5lD,KAAK2nD,QAAQyB,iBAAiBx9C,OAAOo/B,GAE7C,CACA6e,+BAA+B9O,EAAa/J,GACxC,MAAMuO,EAAWv/C,KAAK2nD,QAAQ9iB,OAAOqI,MAAM6N,EAAa9M,IAAqB,GAI7EsR,EAAShsC,QAASqwC,IAGd,GAAIA,EAAIsD,IACJ,OACJ,MAAM4C,EAAa9pD,KAAK2nD,QAAQoC,yBAAyBnG,GACrDkG,EAAWxnC,KACXwnC,EAAWv2C,QAASy2C,GAAOA,EAAGC,sBAAsBrG,EAAK5S,GAAS,GAAO,IAGzEhxC,KAAK2pD,kBAAkB/F,EAAG,GAKlC5jD,KAAK2nD,QAAQuC,yBAAyB,IAAM3K,EAAShsC,QAASqwC,GAAQ5jD,KAAK2pD,kBAAkB/F,IACjG,CACAqG,sBAAsBjf,EAASgG,EAASmZ,EAAsBtB,GAC1D,MAAMuB,EAAgBpqD,KAAK2nD,QAAQa,gBAAgBxiD,IAAIglC,GACjDqf,EAAyB,IAAI5tC,IACnC,GAAI2tC,EAAe,CACf,MAAMrhB,EAAU,GAYhB,GAXAqhB,EAAc72C,QAAQ,CAAC+2C,EAAOrf,KAI1B,GAHAof,EAAuBzlD,IAAIqmC,EAAaqf,EAAM53C,OAG1C1S,KAAK4nD,UAAUphD,IAAIykC,GAAc,CACjC,MAAMV,EAASvqC,KAAK2oD,QAAQ3d,EAASC,EAAasc,GAAYsB,GAC1Dte,GACAxB,EAAQ11B,KAAKk3B,EAErB,IAEAxB,EAAQ19B,OACR,OAAArL,KAAK2nD,QAAQ4C,qBAAqBvqD,KAAK24B,GAAIqS,GAAS,EAAMgG,EAASqZ,GAC/DF,GACArhB,GAAoBC,GAAS6B,OAAO,IAAM5qC,KAAK2nD,QAAQ6C,iBAAiBxf,KAErE,CAEf,CACA,OAAO,CACX,CACAyf,+BAA+Bzf,GAC3B,MAAMsd,EAAYtoD,KAAK8nD,kBAAkB9hD,IAAIglC,GACvC0f,EAAgB1qD,KAAK2nD,QAAQa,gBAAgBxiD,IAAIglC,GAGvD,GAAIsd,GAAaoC,EAAe,CAC5B,MAAMC,EAAkB,IAAI7X,IAC5BwV,EAAU/0C,QAASq3C,IACf,MAAM3f,EAAc2f,EAAStoD,KAC7B,GAAIqoD,EAAgBnkD,IAAIykC,GACpB,OACJ0f,EAAgB/U,IAAI3K,GAEpB,MAAMqK,EADUt1C,KAAK4nD,UAAU5hD,IAAIilC,GACRqZ,mBACrBpZ,EAAYwf,EAAc1kD,IAAIilC,IAAgBuc,GAC9Crc,EAAU,IAAIgc,GAAWI,IACzBhd,EAAS,IAAIue,GAA0B9oD,KAAK24B,GAAIsS,EAAaD,GACnEhrC,KAAK2nD,QAAQ4B,qBACbvpD,KAAK6nD,OAAOx0C,KAAK,CACb23B,UACAC,cACAqK,aACApK,YACAC,UACAZ,SACA+e,sBAAsB,GACzB,EAET,CACJ,CACAuB,WAAW7f,EAASgG,GAChB,MAAM8Z,EAAS9qD,KAAK2nD,QAKpB,GAJI3c,EAAQ+f,mBACR/qD,KAAK6pD,+BAA+B7e,EAASgG,GAG7ChxC,KAAKiqD,sBAAsBjf,EAASgG,GAAS,GAC7C,OAGJ,IAAIga,GAAoC,EACxC,GAAIF,EAAOG,gBAAiB,CACxB,MAAMC,EAAiBJ,EAAO/hB,QAAQ19B,OAChCy/C,EAAOK,wBAAwBnlD,IAAIglC,GACnC,GAKN,GAAIkgB,GAAkBA,EAAe7/C,OACjC2/C,GAAoC,MAEnC,CACD,IAAIlf,EAASd,EACb,KAAQc,EAASA,EAAOC,YAEpB,GADiB+e,EAAOtC,gBAAgBxiD,IAAI8lC,GAC9B,CACVkf,GAAoC,EACpC,KACJ,CAER,CACJ,CAQA,GAHAhrD,KAAKyqD,+BAA+Bzf,GAGhCggB,EACAF,EAAOP,qBAAqBvqD,KAAK24B,GAAIqS,GAAS,EAAOgG,OAEpD,CACD,MAAMoa,EAAcpgB,EAAQkc,MACvBkE,GAAeA,IAAgBzE,MAGhCmE,EAAOrC,WAAW,IAAMzoD,KAAK2pD,kBAAkB3e,IAC/C8f,EAAOO,uBAAuBrgB,GAC9B8f,EAAOQ,mBAAmBtgB,EAASgG,GAE3C,CACJ,CACAua,WAAWvgB,EAASc,GAChBkc,GAAShd,EAAShrC,KAAK+nD,eAC3B,CACAyD,uBAAuBC,GACnB,MAAM/Q,EAAe,GACrB,OAAA16C,KAAK6nD,OAAOt0C,QAASm2C,IACjB,MAAMnf,EAASmf,EAAMnf,OACrB,GAAIA,EAAOmhB,UACP,OACJ,MAAM1gB,EAAU0e,EAAM1e,QAChBsd,EAAYtoD,KAAK8nD,kBAAkB9hD,IAAIglC,GACzCsd,GACAA,EAAU/0C,QAASq3C,IACf,GAAIA,EAAStoD,MAAQonD,EAAMze,YAAa,CACpC,MAAM+a,EAAYjb,GAAmBC,EAAS0e,EAAMze,YAAaye,EAAMxe,UAAUx4B,MAAOg3C,EAAMve,QAAQz4B,OACtGszC,EAAU3a,MAAWogB,EACrBnhB,GAAeof,EAAMnf,OAAQqgB,EAAS3C,MAAOjC,EAAW4E,EAASngB,SACrE,IAGJF,EAAOohB,iBACP3rD,KAAK2nD,QAAQc,WAAW,KAGpBle,EAAOqb,SAAQ,GAInBlL,EAAarnC,KAAKq2C,EAAK,GAG/B1pD,KAAK6nD,OAAS,GACPnN,EAAapyB,KAAK,CAACC,EAAGC,KAGzB,MAAMojC,EAAKrjC,EAAE+sB,WAAW8B,IAAItC,SACtB+W,EAAKrjC,EAAE8sB,WAAW8B,IAAItC,SAC5B,OAAU,GAAN8W,GAAiB,GAANC,EACJD,EAAKC,EAET7rD,KAAK2nD,QAAQ9iB,OAAOsH,gBAAgB5jB,EAAEyiB,QAASxiB,EAAEwiB,SAAW,GAAI,GAE/E,CACA4a,QAAQ5U,GACJhxC,KAAK+oC,QAAQx1B,QAAS1R,GAAMA,EAAE+jD,WAC9B5lD,KAAK6pD,+BAA+B7pD,KAAK0nD,YAAa1W,EAC1D,EAEJ,MAAM8a,GAEFR,mBAAmBtgB,EAASgG,GACxBhxC,KAAK+rD,kBAAkB/gB,EAASgG,EACpC,CACAlxC,YAAYmlD,EAAUpgB,EAAQsf,GAC1BnkD,KAAKilD,SAAWA,EAChBjlD,KAAK6kC,OAASA,EACd7kC,KAAKmkD,YAAcA,EACnBnkD,KAAK+oC,QAAU,GACf/oC,KAAKgsD,gBAAkB,IAAIvvC,IAC3Bzc,KAAKopD,iBAAmB,IAAI3sC,IAC5Bzc,KAAKmrD,wBAA0B,IAAI1uC,IACnCzc,KAAKwoD,gBAAkB,IAAI/rC,IAC3Bzc,KAAKisD,cAAgB,IAAInZ,IACzB9yC,KAAKirD,gBAAkB,EACvBjrD,KAAKupD,mBAAqB,EAC1BvpD,KAAKksD,iBAAmB,CAAC,EACzBlsD,KAAKmsD,eAAiB,GACtBnsD,KAAKosD,UAAY,GACjBpsD,KAAKqsD,cAAgB,GACrBrsD,KAAKssD,wBAA0B,IAAI7vC,IACnCzc,KAAKusD,uBAAyB,GAC9BvsD,KAAKwsD,uBAAyB,GAE9BxsD,KAAK+rD,kBAAoB,CAAC/gB,EAASgG,KAAV,CAC7B,CACA,iBAAIyb,GACA,MAAM1jB,EAAU,GAChB,OAAA/oC,KAAKmsD,eAAe54C,QAASy2C,IACzBA,EAAGjhB,QAAQx1B,QAASg3B,IACZA,EAAO8e,QACPtgB,EAAQ11B,KAAKk3B,EAAM,EAE1B,GAEExB,CACX,CACA2jB,gBAAgB9F,EAAac,GACzB,MAAMsC,EAAK,IAAIvC,GAA6Bb,EAAac,EAAa1nD,MACtE,OAAIA,KAAKilD,UAAYjlD,KAAK6kC,OAAOsH,gBAAgBnsC,KAAKilD,SAAUyC,GAC5D1nD,KAAK2sD,sBAAsB3C,EAAItC,IAM/B1nD,KAAKgsD,gBAAgBpnD,IAAI8iD,EAAasC,GAMtChqD,KAAK4sD,oBAAoBlF,IAErB1nD,KAAKksD,iBAAiBtF,GAAeoD,CACjD,CACA2C,sBAAsB3C,EAAItC,GACtB,MAAMmF,EAAgB7sD,KAAKmsD,eACrBG,EAA0BtsD,KAAKssD,wBAErC,GADcO,EAAcxhD,OAAS,GACxB,EAAG,CACZ,IAAIyhD,GAAQ,EAGRC,EAAW/sD,KAAK6kC,OAAOgH,iBAAiB6b,GAC5C,KAAOqF,GAAU,CACb,MAAMC,EAAaV,EAAwBtmD,IAAI+mD,GAC/C,GAAIC,EAAY,CAGZ,MAAMr4B,EAAQk4B,EAAcvoD,QAAQ0oD,GACpCH,EAAc1d,OAAOxa,EAAQ,EAAG,EAAGq1B,GACnC8C,GAAQ,EACR,KACJ,CACAC,EAAW/sD,KAAK6kC,OAAOgH,iBAAiBkhB,EAC5C,CACKD,GAIDD,EAAcI,QAAQjD,EAE9B,MAEI6C,EAAcx5C,KAAK22C,GAEvBsC,SAAwB1nD,IAAI8iD,EAAasC,GAClCA,CACX,CACA5E,SAASwB,EAAac,GAClB,IAAIsC,EAAKhqD,KAAKksD,iBAAiBtF,GAC/B,OAAKoD,IACDA,EAAKhqD,KAAK0sD,gBAAgB9F,EAAac,IAEpCsC,CACX,CACAkD,gBAAgBtG,EAAatkD,EAAMqmD,GAC/B,IAAIqB,EAAKhqD,KAAKksD,iBAAiBtF,GAC3BoD,GAAMA,EAAG5E,SAAS9iD,EAAMqmD,IACxB3oD,KAAKirD,iBAEb,CACArF,QAAQgB,EAAa5V,GACZ4V,IAEL5mD,KAAKyoD,WAAW,QAChBzoD,KAAKkqD,yBAAyB,KAC1B,MAAMF,EAAKhqD,KAAKmtD,gBAAgBvG,GAChC5mD,KAAKssD,wBAAwB1gD,OAAOo+C,EAAGtC,aACvC,MAAM/yB,EAAQ30B,KAAKmsD,eAAe7nD,QAAQ0lD,GACtCr1B,GAAS,GACT30B,KAAKmsD,eAAehd,OAAOxa,EAAO,GAEtCq1B,EAAGpE,QAAQ5U,UACJhxC,KAAKksD,iBAAiBtF,EAAW,GAEhD,CACAuG,gBAAgBx0B,GACZ,OAAO34B,KAAKksD,iBAAiBvzB,EACjC,CACAoxB,yBAAyB/e,GAMrB,MAAM8e,EAAa,IAAIhX,IACjB4X,EAAgB1qD,KAAKwoD,gBAAgBxiD,IAAIglC,GAC/C,GAAI0f,EACA,QAAS0C,KAAc1C,EAAch4B,SACjC,GAAI06B,EAAWxG,YAAa,CACxB,MAAMoD,EAAKhqD,KAAKmtD,gBAAgBC,EAAWxG,aACvCoD,GACAF,EAAWlU,IAAIoU,EAEvB,CAGR,OAAOF,CACX,CACAnB,QAAQ/B,EAAa5b,EAAS1oC,EAAMoQ,GAChC,GAAI26C,GAAcriB,GAAU,CACxB,MAAMgf,EAAKhqD,KAAKmtD,gBAAgBvG,GAChC,GAAIoD,EACAA,SAAGrB,QAAQ3d,EAAS1oC,EAAMoQ,IACnB,CAEf,CACA,OAAO,CACX,CACA64C,WAAW3E,EAAa5b,EAASc,EAAQwhB,GACrC,IAAKD,GAAcriB,GACf,OAGJ,MAAMuiB,EAAUviB,EAAQkc,IACxB,GAAIqG,GAAWA,EAAQ1G,cAAe,CAClC0G,EAAQ1G,eAAgB,EACxB0G,EAAQzG,YAAa,EACrB,MAAMnyB,EAAQ30B,KAAKwsD,uBAAuBloD,QAAQ0mC,GAC9CrW,GAAS,GACT30B,KAAKwsD,uBAAuBrd,OAAOxa,EAAO,EAElD,CAIA,GAAIiyB,EAAa,CACb,MAAMoD,EAAKhqD,KAAKmtD,gBAAgBvG,GAO5BoD,GACAA,EAAGuB,WAAWvgB,EAASc,EAE/B,CAEIwhB,GACAttD,KAAK4sD,oBAAoB5hB,EAEjC,CACA4hB,oBAAoB5hB,GAChBhrC,KAAKusD,uBAAuBl5C,KAAK23B,EACrC,CACAwiB,sBAAsBxiB,EAASt4B,GACvBA,EACK1S,KAAKisD,cAAczlD,IAAIwkC,KACxBhrC,KAAKisD,cAAcrW,IAAI5K,GACvBgd,GAAShd,EAASyb,KAGjBzmD,KAAKisD,cAAczlD,IAAIwkC,KAC5BhrC,KAAKisD,cAAcrgD,OAAOo/B,GAC1Bwe,GAAYxe,EAASyb,IAE7B,CACAoE,WAAWjE,EAAa5b,EAASgG,GAC7B,GAAIqc,GAAcriB,GAAU,CACxB,MAAMgf,EAAKpD,EAAc5mD,KAAKmtD,gBAAgBvG,GAAe,KACzDoD,EACAA,EAAGa,WAAW7f,EAASgG,GAGvBhxC,KAAKuqD,qBAAqB3D,EAAa5b,GAAS,EAAOgG,GAE3D,MAAMyc,EAASztD,KAAKssD,wBAAwBtmD,IAAIglC,GAC5CyiB,GAAUA,EAAO90B,KAAOiuB,GACxB6G,EAAO5C,WAAW7f,EAASgG,EAEnC,MAEIhxC,KAAKsrD,mBAAmBtgB,EAASgG,EAEzC,CACAuZ,qBAAqB3D,EAAa5b,EAAS+b,EAAc/V,EAASqZ,GAC9DrqD,KAAKwsD,uBAAuBn5C,KAAK23B,GACjCA,EAAQkc,IAAgB,CACpBN,cACAC,cAAe7V,EACf+V,eACAC,sBAAsB,EACtBqD,yBAER,CACAtE,OAAOa,EAAa5b,EAAS1oC,EAAM2lD,EAAOxd,GACtC,OAAI4iB,GAAcriB,GACPhrC,KAAKmtD,gBAAgBvG,GAAab,OAAO/a,EAAS1oC,EAAM2lD,EAAOxd,GAEnE,MACX,CACAijB,kBAAkBhE,EAAOiE,EAAc3S,EAAgBC,EAAgB2S,GACnE,OAAOlE,EAAMpU,WAAWhB,MAAMt0C,KAAK6kC,OAAQ6kB,EAAM1e,QAAS0e,EAAMxe,UAAUx4B,MAAOg3C,EAAMve,QAAQz4B,MAAOsoC,EAAgBC,EAAgByO,EAAMxe,UAAUx/B,QAASg+C,EAAMve,QAAQz/B,QAASiiD,EAAcC,EACxM,CACAvC,uBAAuBwC,GACnB,IAAItO,EAAWv/C,KAAK6kC,OAAOqI,MAAM2gB,EAAkB5f,IAAqB,GACxEsR,EAAShsC,QAASy3B,GAAYhrC,KAAK8tD,kCAAkC9iB,IAC5B,GAArChrC,KAAKmrD,wBAAwB7oC,OAEjCi9B,EAAWv/C,KAAK6kC,OAAOqI,MAAM2gB,EAAkB1f,IAAuB,GACtEoR,EAAShsC,QAASy3B,GAAYhrC,KAAK+tD,sCAAsC/iB,IAC7E,CACA8iB,kCAAkC9iB,GAC9B,MAAMjC,EAAU/oC,KAAKopD,iBAAiBpjD,IAAIglC,GACtCjC,GACAA,EAAQx1B,QAASg3B,IAITA,EAAO8e,OACP9e,EAAOohB,kBAAmB,EAG1BphB,EAAOqb,SAAQ,EAI/B,CACAmI,sCAAsC/iB,GAClC,MAAMjC,EAAU/oC,KAAKmrD,wBAAwBnlD,IAAIglC,GAC7CjC,GACAA,EAAQx1B,QAASg3B,GAAWA,EAAO8b,SAE3C,CACA2H,oBACI,OAAO,IAAIC,QAASC,IAChB,GAAIluD,KAAK+oC,QAAQ19B,OACb,OAAOy9B,GAAoB9oC,KAAK+oC,SAAS6B,OAAO,IAAMsjB,KAGtDA,GAAQ,EAGpB,CACA1D,iBAAiBxf,GACb,MAAMuiB,EAAUviB,EAAQkc,IACxB,GAAIqG,GAAWA,EAAQ1G,cAAe,CAGlC,GADA7b,EAAQkc,IAAgBP,GACpB4G,EAAQ3G,YAAa,CACrB5mD,KAAKqrD,uBAAuBrgB,GAC5B,MAAMgf,EAAKhqD,KAAKmtD,gBAAgBI,EAAQ3G,aACpCoD,GACAA,EAAGL,kBAAkB3e,EAE7B,CACAhrC,KAAKsrD,mBAAmBtgB,EAASuiB,EAAQ1G,cAC7C,CACI7b,EAAQmjB,WAAWC,SAAS3H,KAC5BzmD,KAAKwtD,sBAAsBxiB,GAAS,GAExChrC,KAAK6kC,OAAOqI,MAAMlC,EAlsBA,wBAksB4B,GAAMz3B,QAASw9B,IACzD/wC,KAAKwtD,sBAAsBzc,GAAM,EAAK,EAE9C,CACAsd,MAAM5C,GAAc,GAChB,IAAI1iB,EAAU,GAKd,GAJI/oC,KAAKgsD,gBAAgB1pC,OACrBtiB,KAAKgsD,gBAAgBz4C,QAAQ,CAACy2C,EAAIhf,IAAYhrC,KAAK2sD,sBAAsB3C,EAAIhf,IAC7EhrC,KAAKgsD,gBAAgBnmC,SAErB7lB,KAAKirD,iBAAmBjrD,KAAKusD,uBAAuBlhD,OACpD,QAASD,EAAI,EAAGA,EAAIpL,KAAKusD,uBAAuBlhD,OAAQD,IAEpD48C,GADYhoD,KAAKusD,uBAAuBnhD,GA7sBjC,oBAitBf,GAAIpL,KAAKmsD,eAAe9gD,SACnBrL,KAAKupD,oBAAsBvpD,KAAKwsD,uBAAuBnhD,QAAS,CACjE,MAAMijD,EAAa,GACnB,IACIvlB,EAAU/oC,KAAKuuD,iBAAiBD,EAAY7C,EAChD,SAEI,QAASrgD,EAAI,EAAGA,EAAIkjD,EAAWjjD,OAAQD,IACnCkjD,EAAWljD,IAEnB,CACJ,MAEI,QAASA,EAAI,EAAGA,EAAIpL,KAAKwsD,uBAAuBnhD,OAAQD,IAEpDpL,KAAKwqD,iBADWxqD,KAAKwsD,uBAAuBphD,IASpD,GALApL,KAAKupD,mBAAqB,EAC1BvpD,KAAKusD,uBAAuBlhD,OAAS,EACrCrL,KAAKwsD,uBAAuBnhD,OAAS,EACrCrL,KAAKosD,UAAU74C,QAASqvC,GAAOA,KAC/B5iD,KAAKosD,UAAY,GACbpsD,KAAKqsD,cAAchhD,OAAQ,CAI3B,MAAMmjD,EAAWxuD,KAAKqsD,cACtBrsD,KAAKqsD,cAAgB,GACjBtjB,EAAQ19B,OACRy9B,GAAoBC,GAAS6B,OAAO,KAChC4jB,EAASj7C,QAASqvC,GAAOA,IAAI,GAIjC4L,EAASj7C,QAASqvC,GAAOA,IAEjC,CACJ,CACAsG,YAAY3f,GACR,MA7pGR,SAASklB,KACL,OAAO,IAAI7lB,MAAc,MAAwDC,EAIrF,CAwpGc4lB,EACV,CACAF,iBAAiBD,EAAY7C,GACzB,MAAMkC,EAAe,IAAIpT,GACnBmU,EAAiB,GACjBC,EAAoB,IAAIlyC,IACxBmyC,EAAqB,GACrBzM,EAAkB,IAAI1lC,IACtBoyC,EAAsB,IAAIpyC,IAC1BqyC,EAAuB,IAAIryC,IAC3BsyC,EAAsB,IAAIjc,IAChC9yC,KAAKisD,cAAc14C,QAASw9B,KACxBge,EAAoBnZ,IAAI7E,IACxB,MAAMie,GAAuBhvD,KAAK6kC,OAAOqI,MAAM6D,GAzwBnC,sBAywB0D,GACtE,QAAS3lC,GAAI,EAAGA,GAAI4jD,GAAqB3jD,OAAQD,KAC7C2jD,EAAoBnZ,IAAIoZ,GAAqB5jD,IAAE,GAGvD,MAAM65C,EAAWjlD,KAAKilD,SAChBgK,EAAqBxxC,MAAMR,KAAKjd,KAAKwoD,gBAAgBt+C,QACrDglD,GAAeC,GAAaF,EAAoBjvD,KAAKusD,wBAIrD6C,GAAkB,IAAI3yC,IAC5B,IAAIrR,GAAI,EACR8jD,GAAa37C,QAAQ,CAAC87C,GAAOC,MACzB,MAAMC,GAAYzhB,GAAkB1iC,KACpCgkD,GAAgBxqD,IAAI0qD,GAAMC,IAC1BF,GAAM97C,QAASw9B,IAASiX,GAASjX,GAAMwe,IAAU,GAErD,MAAMC,GAAgB,GAChBC,GAAmB,IAAI3c,IACvB4c,GAA8B,IAAI5c,IACxC,QAAS1nC,GAAI,EAAGA,GAAIpL,KAAKwsD,uBAAuBnhD,OAAQD,KAAK,CACzD,MAAM4/B,GAAUhrC,KAAKwsD,uBAAuBphD,IACtCmiD,GAAUviB,GAAQkc,IACpBqG,IAAWA,GAAQ1G,gBACnB2I,GAAcn8C,KAAK23B,IACnBykB,GAAiB7Z,IAAI5K,IACjBuiB,GAAQxG,aACR/mD,KAAK6kC,OACAqI,MAAMlC,GAlyBT,qBAkyBiC,GAC9Bz3B,QAASqwC,IAAQ6L,GAAiB7Z,IAAIgO,KAG3C8L,GAA4B9Z,IAAI5K,IAG5C,CACA,MAAM2kB,GAAkB,IAAIlzC,IACtBmzC,GAAeT,GAAaF,EAAoBxxC,MAAMR,KAAKwyC,KACjEG,GAAar8C,QAAQ,CAAC87C,GAAOC,MACzB,MAAMC,GAAYxhB,GAAkB3iC,KACpCukD,GAAgB/qD,IAAI0qD,GAAMC,IAC1BF,GAAM97C,QAASw9B,IAASiX,GAASjX,GAAMwe,IAAU,GAErDjB,EAAWj7C,KAAK,KACZ67C,GAAa37C,QAAQ,CAAC87C,GAAOC,MACzB,MAAMC,GAAYH,GAAgBppD,IAAIspD,IACtCD,GAAM97C,QAASw9B,IAASyY,GAAYzY,GAAMwe,IAAU,GAExDK,GAAar8C,QAAQ,CAAC87C,GAAOC,MACzB,MAAMC,GAAYI,GAAgB3pD,IAAIspD,IACtCD,GAAM97C,QAASw9B,IAASyY,GAAYzY,GAAMwe,IAAU,GAExDC,GAAcj8C,QAASy3B,KACnBhrC,KAAKwqD,iBAAiBxf,GAAO,EAChC,GAEL,MAAM6kB,GAAa,GACbC,GAAuB,GAC7B,QAAS1kD,GAAIpL,KAAKmsD,eAAe9gD,OAAS,EAAGD,IAAK,EAAGA,KACtCpL,KAAKmsD,eAAe/gD,IAC5BogD,uBAAuBC,GAAal4C,QAASm2C,KAC5C,MAAMnf,GAASmf,GAAMnf,OACfS,GAAU0e,GAAM1e,QAEtB,GADA6kB,GAAWx8C,KAAKk3B,IACZvqC,KAAKusD,uBAAuBlhD,OAAQ,CACpC,MAAMkiD,GAAUviB,GAAQkc,IAGxB,GAAIqG,IAAWA,GAAQzG,WAAY,CAC/B,GAAIyG,GAAQlD,wBACRkD,GAAQlD,uBAAuB7jD,IAAIkjD,GAAMze,aAAc,CACvD,MAAM8kB,GAAgBxC,GAAQlD,uBAAuBrkD,IAAI0jD,GAAMze,aAGzDsd,GAAqBvoD,KAAKwoD,gBAAgBxiD,IAAI0jD,GAAM1e,SAC1D,GAAIud,IAAsBA,GAAmB/hD,IAAIkjD,GAAMze,aAAc,CACjE,MAAMqf,GAAQ/B,GAAmBviD,IAAI0jD,GAAMze,aAC3Cqf,GAAM53C,MAAQq9C,GACdxH,GAAmB3jD,IAAI8kD,GAAMze,YAAaqf,GAC9C,CACJ,CAEA,YADA/f,GAAOqb,SAEX,CACJ,CACA,MAAMoK,IAAkB/K,IAAajlD,KAAK6kC,OAAOsH,gBAAgB8Y,EAAUja,IACrEiQ,GAAiB0U,GAAgB3pD,IAAIglC,IACrCgQ,GAAiBoU,GAAgBppD,IAAIglC,IACrC0R,GAAc18C,KAAK0tD,kBAAkBhE,GAAOiE,EAAc3S,GAAgBC,GAAgB+U,IAChG,GAAItT,GAAYnT,QAAUmT,GAAYnT,OAAOl+B,OAEzC,YADAykD,GAAqBz8C,KAAKqpC,IAO9B,GAAIsT,GAIA,OAHAzlB,GAAOG,QAAQ,IAAM+E,GAAYzE,GAAS0R,GAAYuF,aACtD1X,GAAOM,UAAU,IAAMuE,GAAUpE,GAAS0R,GAAYwF,gBACtDwM,EAAer7C,KAAKk3B,IAMxB,GAAImf,GAAMJ,qBAIN,OAHA/e,GAAOG,QAAQ,IAAM+E,GAAYzE,GAAS0R,GAAYuF,aACtD1X,GAAOM,UAAU,IAAMuE,GAAUpE,GAAS0R,GAAYwF,gBACtDwM,EAAer7C,KAAKk3B,IAQxB,MAAMmR,GAAY,GAClBgB,GAAYhB,UAAUnoC,QAASyqC,KAC3BA,GAAGqB,yBAA0B,EACxBr/C,KAAKisD,cAAczlD,IAAIw3C,GAAGhT,UAC3B0Q,GAAUroC,KAAK2qC,GAAE,GAGzBtB,GAAYhB,UAAYA,GACxBiS,EAAalT,OAAOzP,GAAS0R,GAAYhB,WAEzCkT,EAAmBv7C,KADL,CAAEqpC,eAAanS,UAAQS,aAErC0R,GAAYyF,gBAAgB5uC,QAASy3B,IAAYM,GAAqB6W,EAAiBnX,GAAS,IAAI33B,KAAKk3B,KACzGmS,GAAYtC,cAAc7mC,QAAQ,CAAC08C,GAAWjlB,MAC1C,GAAIilB,GAAU3tC,KAAM,CAChB,IAAI4tC,GAASrB,EAAoB7oD,IAAIglC,IAChCklB,IACDrB,EAAoBjqD,IAAIomC,GAAUklB,GAAS,IAAIpd,KAEnDmd,GAAU18C,QAAQ,CAACm8B,GAAG5F,KAASomB,GAAOta,IAAI9L,IAC9C,IAEJ4S,GAAYrC,eAAe9mC,QAAQ,CAAC08C,GAAWjlB,MAC3C,IAAIklB,GAASpB,EAAqB9oD,IAAIglC,IACjCklB,IACDpB,EAAqBlqD,IAAIomC,GAAUklB,GAAS,IAAIpd,KAEpDmd,GAAU18C,QAAQ,CAACm8B,GAAG5F,KAASomB,GAAOta,IAAI9L,IAAK,EAClD,GAGT,GAAIgmB,GAAqBzkD,OAAQ,CAC7B,MAAMk+B,GAAS,GACfumB,GAAqBv8C,QAASmpC,KAC1BnT,GAAOl2B,KArzGvB,SAAS88C,KACL,OAAO,IAAIvnB,MAAc,MAA+CC,EAC5E,CAmzG4BsnB,GAA6D,GAE7EN,GAAWt8C,QAASg3B,IAAWA,GAAOqb,WACtC5lD,KAAKkpD,YAAY3f,GACrB,CACA,MAAM6mB,GAAwB,IAAI3zC,IAK5B4zC,GAAsB,IAAI5zC,IAChCmyC,EAAmBr7C,QAASm2C,KACxB,MAAM1e,GAAU0e,GAAM1e,QAClB2iB,EAAannD,IAAIwkC,MACjBqlB,GAAoBzrD,IAAIomC,GAASA,IACjChrC,KAAKswD,sBAAsB5G,GAAMnf,OAAOqc,YAAa8C,GAAMhN,YAAa0T,IAAqB,GAGrG1B,EAAen7C,QAASg3B,KACpB,MAAMS,GAAUT,GAAOS,QACChrC,KAAKuwD,oBAAoBvlB,IAAS,EAAOT,GAAOqc,YAAarc,GAAOU,YAAa,MACzF13B,QAASi9C,KACrBllB,GAAqB8kB,GAAuBplB,GAAS,IAAI33B,KAAKm9C,IAC9DA,GAAW5K,SAAQ,EACtB,GASL,MAAM6K,GAAejB,GAAcvhD,OAAQ8iC,IAChC2f,GAAuB3f,GAAM8d,EAAqBC,IAGvD6B,GAAgB,IAAIl0C,IACGm0C,GAAsBD,GAAe3wD,KAAK6kC,OAAQ6qB,GAA6BZ,EAAsB3kB,MAC7G52B,QAASw9B,KACtB2f,GAAuB3f,GAAM8d,EAAqBC,IAClD2B,GAAap9C,KAAK09B,GAAI,GAI9B,MAAM8f,GAAe,IAAIp0C,IACzByyC,GAAa37C,QAAQ,CAAC87C,GAAOC,MACzBsB,GAAsBC,GAAc7wD,KAAK6kC,OAAQ,IAAIiO,IAAIuc,IAAQR,EAAqB3kB,KAAU,GAEpGumB,GAAal9C,QAASw9B,KAClB,MAAMvkC,GAAOmkD,GAAc3qD,IAAI+qC,IACzB+f,GAAMD,GAAa7qD,IAAI+qC,IAC7B4f,GAAc/rD,IAAImsC,GAAM,IAAIt0B,IAAI,IAAKjQ,IAAM0R,WAAa,MAAS4yC,IAAK5yC,WAAa,KAAK,GAE5F,MAAM6yC,GAAc,GACdC,GAAa,GACbC,GAAuC,CAAC,EAC9CrC,EAAmBr7C,QAASm2C,KACxB,MAAQ1e,WAAST,UAAQmS,gBAAgBgN,GAGzC,GAAIiE,EAAannD,IAAIwkC,IAAU,CAC3B,GAAI+jB,EAAoBvoD,IAAIwkC,IAKxB,OAJAT,GAAOM,UAAU,IAAMuE,GAAUpE,GAAS0R,GAAYwF,WACtD3X,GAAOx0B,UAAW,EAClBw0B,GAAO2mB,kBAAkBxU,GAAYtR,gBACrCsjB,EAAer7C,KAAKk3B,IASxB,IAAI4mB,GAAsBF,GAC1B,GAAIZ,GAAoB/tC,KAAO,EAAG,CAC9B,IAAIshC,GAAM5Y,GACV,MAAMomB,GAAe,GACrB,KAAQxN,GAAMA,GAAI7X,YAAa,CAC3B,MAAMslB,GAAiBhB,GAAoBrqD,IAAI49C,IAC/C,GAAIyN,GAAgB,CAChBF,GAAsBE,GACtB,KACJ,CACAD,GAAa/9C,KAAKuwC,GACtB,CACAwN,GAAa79C,QAASu4B,IAAWukB,GAAoBzrD,IAAIknC,GAAQqlB,IACrE,CACA,MAAMG,GAActxD,KAAKuxD,gBAAgBhnB,GAAOqc,YAAalK,GAAa0T,GAAuBzB,EAAmBkC,GAAcF,IAElI,GADApmB,GAAOinB,cAAcF,IACjBH,KAAwBF,GACxBF,GAAY19C,KAAKk3B,QAEhB,CACD,MAAMknB,GAAgBzxD,KAAKopD,iBAAiBpjD,IAAImrD,IAC5CM,IAAiBA,GAAcpmD,SAC/Bk/B,GAAOmnB,aAAe5oB,GAAoB2oB,KAE9C/C,EAAer7C,KAAKk3B,GACxB,CACJ,MAEIkF,GAAYzE,GAAS0R,GAAYuF,YACjC1X,GAAOM,UAAU,IAAMuE,GAAUpE,GAAS0R,GAAYwF,WAItD8O,GAAW39C,KAAKk3B,IACZwkB,EAAoBvoD,IAAIwkC,KACxB0jB,EAAer7C,KAAKk3B,GAAM,GAKtCymB,GAAWz9C,QAASg3B,KAGhB,MAAMonB,GAAoBhD,EAAkB3oD,IAAIukC,GAAOS,SACvD,GAAI2mB,IAAqBA,GAAkBtmD,OAAQ,CAC/C,MAAMimD,GAAcxoB,GAAoB6oB,IACxCpnB,GAAOinB,cAAcF,GACzB,IAKJ5C,EAAen7C,QAASg3B,KAChBA,GAAOmnB,aACPnnB,GAAOqnB,iBAAiBrnB,GAAOmnB,cAG/BnnB,GAAOqb,SAAQ,GAMvB,QAASx6C,GAAI,EAAGA,GAAIokD,GAAcnkD,OAAQD,KAAK,CAC3C,MAAM4/B,GAAUwkB,GAAcpkD,IACxBmiD,GAAUviB,GAAQkc,IAKxB,GAJAsC,GAAYxe,GAAS+C,IAIjBwf,IAAWA,GAAQxG,aACnB,SACJ,IAAIhe,GAAU,GAId,GAAIoZ,EAAgB7/B,KAAM,CACtB,IAAIuvC,GAAuB1P,EAAgBn8C,IAAIglC,IAC3C6mB,IAAwBA,GAAqBxmD,QAC7C09B,GAAQ11B,QAAQw+C,IAEpB,IAAIC,GAAuB9xD,KAAK6kC,OAAOqI,MAAMlC,GAASmD,IAAuB,GAC7E,QAAS4jB,GAAI,EAAGA,GAAID,GAAqBzmD,OAAQ0mD,KAAK,CAClD,IAAIC,GAAiB7P,EAAgBn8C,IAAI8rD,GAAqBC,KAC1DC,IAAkBA,GAAe3mD,QACjC09B,GAAQ11B,QAAQ2+C,GAExB,CACJ,CACA,MAAMC,GAAgBlpB,GAAQ96B,OAAQpM,KAAOA,GAAE6pD,WAC3CuG,GAAc5mD,OACd6mD,GAA8BlyD,KAAMgrC,GAASinB,IAG7CjyD,KAAKwqD,iBAAiBxf,GAE9B,CAEAwkB,UAAcnkD,OAAS,EACvB0lD,GAAYx9C,QAASg3B,KACjBvqC,KAAK+oC,QAAQ11B,KAAKk3B,IAClBA,GAAOK,OAAO,KACVL,GAAOqb,UACP,MAAMjxB,GAAQ30B,KAAK+oC,QAAQzkC,QAAQimC,IACnCvqC,KAAK+oC,QAAQoG,OAAOxa,GAAO,EAAC,GAEhC4V,GAAO0b,MAAK,GAET8K,EACX,CACAtI,WAAWhe,GACPzqC,KAAKosD,UAAU/4C,KAAKo3B,EACxB,CACAyf,yBAAyBzf,GACrBzqC,KAAKqsD,cAAch5C,KAAKo3B,EAC5B,CACA8lB,oBAAoBvlB,EAASmnB,EAAkBvL,EAAa3b,EAAamnB,GACrE,IAAIrpB,EAAU,GACd,GAAIopB,EAAkB,CAClB,MAAME,EAAwBryD,KAAKmrD,wBAAwBnlD,IAAIglC,GAC3DqnB,IACAtpB,EAAUspB,EAElB,KACK,CACD,MAAMzI,EAAiB5pD,KAAKopD,iBAAiBpjD,IAAIglC,GACjD,GAAI4e,EAAgB,CAChB,MAAM0I,GAAsBF,GAAgBA,GAAgB7K,GAC5DqC,EAAer2C,QAASg3B,IAChBA,EAAO8e,SAENiJ,GAAsB/nB,EAAOU,aAAeA,GAEjDlC,EAAQ11B,KAAKk3B,EAAM,EAE3B,CACJ,CACA,OAAIqc,GAAe3b,KACflC,EAAUA,EAAQ96B,OAAQs8B,KAClBqc,GAAeA,GAAerc,EAAOqc,aAErC3b,GAAeA,GAAeV,EAAOU,eAK1ClC,CACX,CACAunB,sBAAsB1J,EAAalK,EAAa0T,GAC5C,MACMrV,EAAc2B,EAAY1R,QAG1BunB,EAAoB7V,EAAYsF,yBAChC1gD,EACAslD,EACA4L,EAAoB9V,EAAYsF,yBAChC1gD,EARco7C,EAAYzR,YAUhC,UAAWwnB,KAAuB/V,EAAYhB,UAAW,CACrD,MAAM1Q,EAAUynB,EAAoBznB,QAC9BmnB,EAAmBnnB,IAAY+P,EAC/BhS,EAAUuC,GAAqB8kB,EAAuBplB,EAAS,IAC7ChrC,KAAKuwD,oBAAoBvlB,EAASmnB,EAAkBI,EAAmBC,EAAmB9V,EAAYvR,SAC9G53B,QAASg3B,KACrB,MAAMmoB,GAAanoB,GAAOooB,gBACtBD,GAAWE,eACXF,GAAWE,gBAEfroB,GAAOqb,UACP7c,EAAQ11B,KAAKk3B,GAAM,EAE3B,CAGAkF,GAAYsL,EAAa2B,EAAYuF,WACzC,CACAsP,gBAAgB3K,EAAalK,EAAa0T,EAAuBzB,EAAmBkC,EAAcF,GAC9F,MAAM1lB,EAAcyR,EAAYzR,YAC1B8P,EAAc2B,EAAY1R,QAG1B6nB,EAAoB,GACpBC,EAAsB,IAAIhgB,IAC1BigB,EAAiB,IAAIjgB,IACrBkgB,EAAgBtW,EAAYhB,UAAU1vC,IAAKymD,KAC7C,MAAMznB,GAAUynB,GAAoBznB,QACpC8nB,EAAoBld,IAAI5K,IAExB,MAAMuiB,GAAUviB,GAAQkc,IACxB,GAAIqG,IAAWA,GAAQvG,qBACnB,OAAO,IAAIhe,KAAoBypB,GAAoBz5C,SAAUy5C,GAAoBplB,OACrF,MAAM8kB,GAAmBnnB,KAAY+P,EAC/BxN,GAwQlB,SAAS0lB,GAAoBlqB,GACzB,MAAMmqB,EAAe,GACrBC,UAA0BpqB,EAASmqB,GAC5BA,CACX,CA5QoCD,EAAqB7C,EAAsBpqD,IAAIglC,KAAY0b,IAAoB16C,IAAKnK,IAAMA,GAAE8wD,kBAAkB1kD,OAAQpM,MAK/HA,GACDmpC,SADCnpC,GACYmpC,UAAYA,IAEjC3B,GAAYwnB,EAAa7qD,IAAIglC,IAC7B1B,GAAaqnB,EAAc3qD,IAAIglC,IAC/B5B,GAAYF,GAAqBlpC,KAAKmkD,YAAasO,GAAoBrpB,UAAWC,GAAWC,IAC7FiB,GAASvqC,KAAKslD,aAAamN,GAAqBrpB,GAAWmE,IAMjE,GAHIklB,GAAoBnY,aAAeqU,GACnCoE,EAAend,IAAI5K,IAEnBmnB,GAAkB,CAClB,MAAMiB,GAAgB,IAAItK,GAA0BlC,EAAa3b,EAAaD,IAC9EooB,GAAc5B,cAAcjnB,IAC5BsoB,EAAkBx/C,KAAK+/C,GAC3B,CACA,OAAO7oB,KAEXsoB,EAAkBt/C,QAASg3B,KACvBe,GAAqBtrC,KAAKmrD,wBAAyB5gB,GAAOS,QAAS,IAAI33B,KAAKk3B,IAC5EA,GAAOK,OAAO,IA+H1B,SAASyoB,GAAmBrnD,EAAKiS,EAAKvL,GAClC,IAAI4gD,EAAgBtnD,EAAIhG,IAAIiY,GAC5B,GAAIq1C,EAAe,CACf,GAAIA,EAAcjoD,OAAQ,CACtB,MAAMspB,EAAQ2+B,EAAchvD,QAAQoO,GACpC4gD,EAAcnkB,OAAOxa,EAAO,EAChC,CAC4B,GAAxB2+B,EAAcjoD,QACdW,EAAIJ,OAAOqS,EAEnB,CACA,OAAOq1C,CACX,CA3IgCD,CAAmBrzD,KAAKmrD,wBAAyB5gB,GAAOS,QAAST,IAAO,GAEhGuoB,EAAoBv/C,QAASy3B,IAAYgd,GAAShd,GAASkD,KAC3D,MAAM3D,GAASzB,GAAoBkqB,GACnCzoB,UAAOM,UAAU,KACbioB,EAAoBv/C,QAASy3B,IAAYwe,GAAYxe,GAASkD,KAC9DkB,GAAU2L,EAAa2B,EAAYwF,SAAQ,GAI/C6Q,EAAex/C,QAASy3B,KACpBM,GAAqBqjB,EAAmB3jB,GAAS,IAAI33B,KAAKk3B,GAAM,GAE7DA,EACX,CACA+a,aAAa5I,EAAatT,EAAWmE,GACjC,OAAInE,EAAU/9B,OAAS,EACZrL,KAAK6kC,OAAOuI,QAAQsP,EAAY1R,QAAS5B,EAAWsT,EAAY1jC,SAAU0jC,EAAYrP,MAAOqP,EAAYpP,OAAQC,GAIrH,IAAIvE,KAAoB0T,EAAY1jC,SAAU0jC,EAAYrP,MACrE,EAEJ,MAAMyb,GACFhpD,YAAY8mD,EAAa3b,EAAaD,GAClChrC,KAAK4mD,YAAcA,EACnB5mD,KAAKirC,YAAcA,EACnBjrC,KAAKgrC,QAAUA,EACfhrC,KAAKuzD,QAAU,IAAIvqB,KACnBhpC,KAAKwzD,qBAAsB,EAC3BxzD,KAAKyzD,iBAAmB,IAAIh3C,IAC5Bzc,KAAK0rD,WAAY,EACjB1rD,KAAK0xD,aAAe,KACpB1xD,KAAK2rD,kBAAmB,EACxB3rD,KAAK+V,UAAW,EAChB/V,KAAKqpD,QAAS,EACdrpD,KAAKorC,UAAY,CACrB,CACAomB,cAAcjnB,GACNvqC,KAAKwzD,sBAETxzD,KAAKuzD,QAAUhpB,EACfvqC,KAAKyzD,iBAAiBlgD,QAAQ,CAACmgD,EAAWzL,KACtCyL,EAAUngD,QAASk3B,GAAaH,GAAeC,EAAQ0d,OAAO3mD,EAAWmpC,GAAS,GAEtFzqC,KAAKyzD,iBAAiB5tC,QACtB7lB,KAAKwzD,qBAAsB,EAC3BxzD,KAAKkxD,kBAAkB3mB,EAAOa,WAC9BprC,KAAKqpD,QAAS,EAClB,CACAsJ,gBACI,OAAO3yD,KAAKuzD,OAChB,CACArC,kBAAkB9lB,GACdprC,KAAKorC,UAAYA,CACrB,CACAwmB,iBAAiBrnB,GACb,MAAM1oC,EAAI7B,KAAKuzD,QACX1xD,EAAE8xD,iBACFppB,EAAOG,QAAQ,IAAM7oC,EAAE8xD,gBAAgB,UAE3CppB,EAAOK,OAAO,IAAM5qC,KAAKqmD,UACzB9b,EAAOM,UAAU,IAAM7qC,KAAK4lD,UAChC,CACAgO,YAAYtxD,EAAMmoC,GACda,GAAqBtrC,KAAKyzD,iBAAkBnxD,EAAM,IAAI+Q,KAAKo3B,EAC/D,CACAG,OAAOgY,GACC5iD,KAAKqpD,QACLrpD,KAAK4zD,YAAY,OAAQhR,GAE7B5iD,KAAKuzD,QAAQ3oB,OAAOgY,EACxB,CACAlY,QAAQkY,GACA5iD,KAAKqpD,QACLrpD,KAAK4zD,YAAY,QAAShR,GAE9B5iD,KAAKuzD,QAAQ7oB,QAAQkY,EACzB,CACA/X,UAAU+X,GACF5iD,KAAKqpD,QACLrpD,KAAK4zD,YAAY,UAAWhR,GAEhC5iD,KAAKuzD,QAAQ1oB,UAAU+X,EAC3B,CACA0D,OACItmD,KAAKuzD,QAAQjN,MACjB,CACAuN,aACI,OAAO7zD,KAAKqpD,QAAiBrpD,KAAKuzD,QAAQM,YAC9C,CACA5N,QACKjmD,KAAKqpD,QAAUrpD,KAAKuzD,QAAQtN,MACjC,CACAC,SACKlmD,KAAKqpD,QAAUrpD,KAAKuzD,QAAQrN,OACjC,CACAE,WACKpmD,KAAKqpD,QAAUrpD,KAAKuzD,QAAQnN,SACjC,CACAC,SACIrmD,KAAKuzD,QAAQlN,QACjB,CACAT,UACI5lD,KAAK0rD,WAAY,EACjB1rD,KAAKuzD,QAAQ3N,SACjB,CACAO,SACKnmD,KAAKqpD,QAAUrpD,KAAKuzD,QAAQpN,OACjC,CACAI,YAAY1kD,GACH7B,KAAKqpD,QACNrpD,KAAKuzD,QAAQhN,YAAY1kD,EAEjC,CACAiyD,cACI,OAAO9zD,KAAKqpD,OAAS,EAAIrpD,KAAKuzD,QAAQO,aAC1C,CAEAH,gBAAgB7oB,GACZ,MAAMjpC,EAAI7B,KAAKuzD,QACX1xD,EAAE8xD,iBACF9xD,EAAE8xD,gBAAgB7oB,EAE1B,EAqBJ,SAASuiB,GAActc,GACnB,OAAOA,GAA6B,IAArBA,EAAKgjB,QACxB,CAIA,SAASC,GAAahpB,EAASt4B,GAC3B,MAAMuhD,EAAWjpB,EAAQ+B,MAAMmnB,QAC/BlpB,SAAQ+B,MAAMmnB,QAAUxhD,GAAwB,OACzCuhD,CACX,CACA,SAASrD,GAAsBuD,EAAWtvB,EAAQ0a,EAAU6U,EAAiBC,GACzE,MAAMC,EAAY,GAClB/U,EAAShsC,QAASy3B,GAAYspB,EAAUjhD,KAAK2gD,GAAahpB,KAC1D,MAAMupB,EAAiB,GACvBH,EAAgB7gD,QAAQ,CAACihD,EAAOxpB,KAC5B,MAAMqE,EAAS,IAAI5yB,IACnB+3C,EAAMjhD,QAASu2B,IACX,MAAMp3B,EAAQmyB,EAAOsI,aAAanC,EAASlB,EAAMuqB,GACjDhlB,EAAOzqC,IAAIklC,EAAMp3B,KAGZA,GAAyB,GAAhBA,EAAMrH,UAChB2/B,EAAQkc,IAAgBD,GACxBsN,EAAelhD,KAAK23B,GAAO,GAGnCmpB,EAAUvvD,IAAIomC,EAASqE,EAAM,GAIjC,IAAIjkC,EAAI,EACRm0C,SAAShsC,QAASy3B,GAAYgpB,GAAahpB,EAASspB,EAAUlpD,OACvDmpD,CACX,CAWA,SAASpF,GAAasF,EAAOpF,GACzB,MAAMqF,EAAU,IAAIj4C,IAEpB,GADAg4C,EAAMlhD,QAAS+7C,GAASoF,EAAQ9vD,IAAI0qD,EAAM,KACtB,GAAhBD,EAAMhkD,OACN,OAAOqpD,EACX,MACMC,EAAU,IAAI7hB,IAAIuc,GAClBuF,EAAe,IAAIn4C,IACzB,SAASo4C,EAAQ9jB,GACb,IAAKA,EACD,OALU,EAMd,IAAIue,EAAOsF,EAAa5uD,IAAI+qC,GAC5B,GAAIue,EACA,OAAOA,EACX,MAAMxjB,EAASiF,EAAKhF,WACpB,OAEIujB,EAFAoF,EAAQluD,IAAIslC,GAELA,EAEF6oB,EAAQnuD,IAAIslC,GAdP,EAoBH+oB,EAAQ/oB,GAEnB8oB,EAAahwD,IAAImsC,EAAMue,GAChBA,CACX,CACAD,SAAM97C,QAASw9B,IACX,MAAMue,EAAOuF,EAAQ9jB,GA1BP,IA2BVue,GACAoF,EAAQ1uD,IAAIspD,GAAMj8C,KAAK09B,EAAI,GAG5B2jB,CACX,CACA,SAAS1M,GAAShd,EAASukB,GACvBvkB,EAAQmjB,WAAWvY,IAAI2Z,EAC3B,CACA,SAAS/F,GAAYxe,EAASukB,GAC1BvkB,EAAQmjB,WAAW2G,OAAOvF,EAC9B,CACA,SAAS2C,GAA8BpH,EAAQ9f,EAASjC,GACpDD,GAAoBC,GAAS6B,OAAO,IAAMkgB,EAAON,iBAAiBxf,GACtE,CAMA,SAASmoB,GAA0BpqB,EAASmqB,GACxC,QAAS9nD,EAAI,EAAGA,EAAI29B,EAAQ19B,OAAQD,IAAK,CACrC,MAAMm/B,EAASxB,EAAQ39B,GACnBm/B,aAAkBtB,KAClBkqB,GAA0B5oB,EAAOxB,QAASmqB,GAG1CA,EAAa7/C,KAAKk3B,EAE1B,CACJ,CAaA,SAASmmB,GAAuB1lB,EAAS6jB,EAAqBC,GAC1D,MAAMiG,EAAYjG,EAAqB9oD,IAAIglC,GAC3C,IAAK+pB,EACD,OAAO,EACX,IAAIC,EAAWnG,EAAoB7oD,IAAIglC,GACvC,OAAIgqB,EACAD,EAAUxhD,QAASzK,GAASksD,EAASpf,IAAI9sC,IAGzC+lD,EAAoBjqD,IAAIomC,EAAS+pB,GAErCjG,EAAqBljD,OAAOo/B,IACrB,CACX,CAEA,MAAMiqB,GACFn1D,YAAYo1D,EAAK3gB,EAAS4P,GACtBnkD,KAAKu0C,QAAUA,EACfv0C,KAAKmkD,YAAcA,EACnBnkD,KAAKm1D,cAAgB,CAAC,EAEtBn1D,KAAK+rD,kBAAoB,CAAC/gB,EAASgG,KAAV,EACzBhxC,KAAKo1D,kBAAoB,IAAItJ,GAA0BoJ,EAAIxrD,KAAM6qC,EAAS4P,GAC1EnkD,KAAKq1D,gBAAkB,IAAIrQ,GAAwBkQ,EAAIxrD,KAAM6qC,EAAS4P,GACtEnkD,KAAKo1D,kBAAkBrJ,kBAAoB,CAAC/gB,EAASgG,IAAYhxC,KAAK+rD,kBAAkB/gB,EAASgG,EACrG,CACAkc,gBAAgBoI,EAAa1O,EAAac,EAAaplD,EAAM6xC,GACzD,MAAMohB,EAAWD,EAAc,IAAMhzD,EACrC,IAAIqmD,EAAU3oD,KAAKm1D,cAAcI,GACjC,IAAK5M,EAAS,CACV,MAAMpf,EAAS,GAET6N,EAAMlD,GAAkBl0C,KAAKu0C,QAASJ,EAAU5K,EADrC,IAEjB,GAAIA,EAAOl+B,OACP,MAh8HhB,SAASmqD,KACL,OAAO,IAAI5sB,MAAc,MAAkDC,EAI/E,CA27HsB2sB,GAKV7M,EA7qDZ,SAAS8M,GAAanzD,EAAM80C,EAAKjO,GAC7B,OAAO,IAAI+a,GAAiB5hD,EAAM80C,EAAKjO,EAC3C,CA2qDsBssB,CAAanzD,EAAM80C,EAAKp3C,KAAKmkD,aACvCnkD,KAAKm1D,cAAcI,GAAY5M,CACnC,CACA3oD,KAAKo1D,kBAAkBlI,gBAAgBtG,EAAatkD,EAAMqmD,EAC9D,CACAvD,SAASwB,EAAac,GAClB1nD,KAAKo1D,kBAAkBhQ,SAASwB,EAAac,EACjD,CACA9B,QAAQgB,EAAa5V,GACjBhxC,KAAKo1D,kBAAkBxP,QAAQgB,EAAa5V,EAChD,CACA0kB,SAAS9O,EAAa5b,EAASc,EAAQwhB,GACnCttD,KAAKo1D,kBAAkB7J,WAAW3E,EAAa5b,EAASc,EAAQwhB,EACpE,CACAqI,SAAS/O,EAAa5b,EAASgG,GAC3BhxC,KAAKo1D,kBAAkBvK,WAAWjE,EAAa5b,EAASgG,EAC5D,CACA4kB,kBAAkB5qB,EAAS6qB,GACvB71D,KAAKo1D,kBAAkB5H,sBAAsBxiB,EAAS6qB,EAC1D,CACAC,QAAQlP,EAAa5b,EAASpuB,EAAUlK,GACpC,GAA0B,KAAtBkK,EAASqwB,OAAO,GAAW,CAC3B,MAAOtU,EAAIo9B,GAAUvqB,GAAqB5uB,GAE1C5c,KAAKq1D,gBAAgB5pB,QAAQ9S,EAAIqS,EAAS+qB,EAD7BrjD,EAEjB,MAEI1S,KAAKo1D,kBAAkBzM,QAAQ/B,EAAa5b,EAASpuB,EAAUlK,EAEvE,CACAqzC,OAAOa,EAAa5b,EAASR,EAAWwrB,EAAYvrB,GAEhD,GAA2B,KAAvBD,EAAUyC,OAAO,GAAW,CAC5B,MAAOtU,EAAIo9B,GAAUvqB,GAAqBhB,GAC1C,OAAOxqC,KAAKq1D,gBAAgBtP,OAAOptB,EAAIqS,EAAS+qB,EAAQtrB,EAC5D,CACA,OAAOzqC,KAAKo1D,kBAAkBrP,OAAOa,EAAa5b,EAASR,EAAWwrB,EAAYvrB,EACtF,CACA4jB,MAAM5C,GAAc,GAChBzrD,KAAKo1D,kBAAkB/G,MAAM5C,EACjC,CACA,WAAI1iB,GACA,MAAO,IAAI/oC,KAAKo1D,kBAAkBrsB,WAAY/oC,KAAKq1D,gBAAgBtsB,QACvE,CACAilB,oBACI,OAAOhuD,KAAKo1D,kBAAkBpH,mBAClC,CACA9D,yBAAyB+L,GACrBj2D,KAAKo1D,kBAAkBlL,yBAAyB+L,EACpD,EAoCJ,MAAMC,UACOl2D,KAAKm2D,uBAAyB,IAAIC,OAAW,CACtDt2D,YAAYu2D,EAAUC,EAAcC,GAChCv2D,KAAKq2D,SAAWA,EAChBr2D,KAAKs2D,aAAeA,EACpBt2D,KAAKu2D,WAAaA,EAClBv2D,KAAKw2D,OAAS,EACd,IAAIC,EAAgBP,GAAmBC,uBAAuBnwD,IAAIqwD,GAC7DI,GACDP,GAAmBC,uBAAuBvxD,IAAIyxD,EAAWI,EAAgB,IAAIh6C,KAEjFzc,KAAK02D,eAAiBD,CAC1B,CACA3vB,QACQ9mC,KAAKw2D,OAAS,IACVx2D,KAAKs2D,cACLlnB,GAAUpvC,KAAKq2D,SAAUr2D,KAAKs2D,aAAct2D,KAAK02D,gBAErD12D,KAAKw2D,OAAS,EAEtB,CACAnQ,SACIrmD,KAAK8mC,QACD9mC,KAAKw2D,OAAS,IACdpnB,GAAUpvC,KAAKq2D,SAAUr2D,KAAK02D,gBAC1B12D,KAAKu2D,aACLnnB,GAAUpvC,KAAKq2D,SAAUr2D,KAAKu2D,YAC9Bv2D,KAAKu2D,WAAa,MAEtBv2D,KAAKw2D,OAAS,EAEtB,CACA5Q,UACI5lD,KAAKqmD,SACDrmD,KAAKw2D,OAAS,IACdN,GAAmBC,uBAAuBvqD,OAAO5L,KAAKq2D,UAClDr2D,KAAKs2D,eACL7mB,GAAYzvC,KAAKq2D,SAAUr2D,KAAKs2D,cAChCt2D,KAAKu2D,WAAa,MAElBv2D,KAAKu2D,aACL9mB,GAAYzvC,KAAKq2D,SAAUr2D,KAAKu2D,YAChCv2D,KAAKu2D,WAAa,MAEtBnnB,GAAUpvC,KAAKq2D,SAAUr2D,KAAK02D,gBAC9B12D,KAAKw2D,OAAS,EAEtB,EAEJ,SAASG,GAA0BtnB,GAC/B,IAAIhqC,EAAS,KACbgqC,SAAO97B,QAAQ,CAAC+b,EAAKwa,MAQzB,SAAS8sB,GAAqB9sB,GAC1B,MAAgB,YAATA,GAA+B,aAATA,CACjC,EATY8sB,CAAqB9sB,KACrBzkC,EAASA,GAAU,IAAIoX,IACvBpX,EAAOT,IAAIklC,EAAMxa,GAAG,GAGrBjqB,CACX,CAKA,MAAMwxD,GACF/2D,YAAYkrC,EAAS5B,EAAW19B,EAASorD,GACrC92D,KAAKgrC,QAAUA,EACfhrC,KAAKopC,UAAYA,EACjBppC,KAAK0L,QAAUA,EACf1L,KAAK82D,eAAiBA,EACtB92D,KAAK+2D,WAAa,GAClB/2D,KAAKg3D,YAAc,GACnBh3D,KAAKi3D,cAAgB,GACrBj3D,KAAKk3D,cAAe,EACpBl3D,KAAKm3D,WAAY,EACjBn3D,KAAKo3D,UAAW,EAChBp3D,KAAKq3D,YAAa,EAIlBr3D,KAAKs3D,mBAAqB,GAC1Bt3D,KAAKu3D,oBAAsB,GAC3Bv3D,KAAK2H,KAAO,EACZ3H,KAAK0xD,aAAe,KACpB1xD,KAAKw3D,gBAAkB,IAAI/6C,IAC3Bzc,KAAKy3D,UAAY/rD,EAAQsN,SACzBhZ,KAAK03D,OAAShsD,EAAQ2hC,OAAY,EAClCrtC,KAAK2H,KAAO3H,KAAKy3D,UAAYz3D,KAAK03D,MACtC,CACAC,YACS33D,KAAKm3D,YACNn3D,KAAKm3D,WAAY,EACjBn3D,KAAK+2D,WAAWxjD,QAASqvC,GAAOA,KAChC5iD,KAAK+2D,WAAa,GAE1B,CACAzQ,OACItmD,KAAKslD,eACLtlD,KAAK43D,2BACT,CACAtS,eACI,GAAItlD,KAAKk3D,aACL,OACJl3D,KAAKk3D,cAAe,EACpB,MAAM9tB,EAAYppC,KAAKopC,UAEvBppC,KAAK63D,UAAY73D,KAAK83D,qBAAqB93D,KAAKgrC,QAAS5B,EAAWppC,KAAK0L,SACzE1L,KAAK+3D,eAAiB3uB,EAAU/9B,OAAS+9B,EAAUA,EAAU/9B,OAAS,GAAK,IAAIoR,IAC/E,MAAMu7C,EAAWA,IAAMh4D,KAAK23D,YAC5B33D,KAAK63D,UAAUI,iBAAiB,SAAUD,GAC1Ch4D,KAAK6qC,UAAU,KAIX7qC,KAAK63D,UAAUK,oBAAoB,SAAUF,EAAQ,EAE7D,CACAJ,4BAEQ53D,KAAK03D,OACL13D,KAAKm4D,uBAGLn4D,KAAK63D,UAAU3R,OAEvB,CACAkS,0BAA0BhvB,GACtB,MAAMivB,EAAM,GACZjvB,SAAU71B,QAAS+kD,IACfD,EAAIhlD,KAAK9R,OAAOg3D,YAAYD,GAAM,GAE/BD,CACX,CAEAP,qBAAqB9sB,EAAS5B,EAAW19B,GACrC,OAAOs/B,EAAQoC,QAAQptC,KAAKo4D,0BAA0BhvB,GAAY19B,EACtE,CACAg/B,QAAQkY,GACJ5iD,KAAKu3D,oBAAoBlkD,KAAKuvC,GAC9B5iD,KAAKg3D,YAAY3jD,KAAKuvC,EAC1B,CACAhY,OAAOgY,GACH5iD,KAAKs3D,mBAAmBjkD,KAAKuvC,GAC7B5iD,KAAK+2D,WAAW1jD,KAAKuvC,EACzB,CACA/X,UAAU+X,GACN5iD,KAAKi3D,cAAc5jD,KAAKuvC,EAC5B,CACAqD,OACIjmD,KAAKslD,eACAtlD,KAAK6zD,eACN7zD,KAAKg3D,YAAYzjD,QAASqvC,GAAOA,KACjC5iD,KAAKg3D,YAAc,GACnBh3D,KAAKo3D,UAAW,EACZp3D,KAAK82D,gBACL92D,KAAK82D,eAAehwB,SAG5B9mC,KAAK63D,UAAU5R,MACnB,CACAC,QACIlmD,KAAKsmD,OACLtmD,KAAK63D,UAAU3R,OACnB,CACAG,SACIrmD,KAAKsmD,OACDtmD,KAAK82D,gBACL92D,KAAK82D,eAAezQ,SAExBrmD,KAAK23D,YACL33D,KAAK63D,UAAUxR,QACnB,CACAF,QACInmD,KAAKm4D,uBACLn4D,KAAKq3D,YAAa,EAClBr3D,KAAKm3D,WAAY,EACjBn3D,KAAKo3D,UAAW,EAChBp3D,KAAKg3D,YAAch3D,KAAKu3D,oBACxBv3D,KAAK+2D,WAAa/2D,KAAKs3D,kBAC3B,CACAa,uBACQn4D,KAAK63D,WACL73D,KAAK63D,UAAUW,QAEvB,CACApS,UACIpmD,KAAKmmD,QACLnmD,KAAKimD,MACT,CACA4N,aACI,OAAO7zD,KAAKo3D,QAChB,CACAxR,UACS5lD,KAAKq3D,aACNr3D,KAAKq3D,YAAa,EAClBr3D,KAAKm4D,uBACLn4D,KAAK23D,YACD33D,KAAK82D,gBACL92D,KAAK82D,eAAelR,UAExB5lD,KAAKi3D,cAAc1jD,QAASqvC,GAAOA,KACnC5iD,KAAKi3D,cAAgB,GAE7B,CACA1Q,YAAY1kD,QACeP,IAAnBtB,KAAK63D,WACL73D,KAAKsmD,OAETtmD,KAAK63D,UAAUjjB,YAAc/yC,EAAI7B,KAAK2H,IAC1C,CACAmsD,cAEI,QAAS9zD,KAAK63D,UAAUjjB,aAAe,GAAK50C,KAAK2H,IACrD,CACA,aAAIyjC,GACA,OAAOprC,KAAK03D,OAAS13D,KAAKy3D,SAC9B,CACA7E,gBACI,MAAMvjB,EAAS,IAAI5yB,IACfzc,KAAK6zD,cAIiB7zD,KAAK+3D,eACbxkD,QAAQ,CAAC+b,EAAKwa,KACX,WAATA,GACAuF,EAAOzqC,IAAIklC,EAAM9pC,KAAKm3D,UAAY7nC,EAAM6d,GAAantC,KAAKgrC,QAASlB,GAAK,GAIpF9pC,KAAKw3D,gBAAkBnoB,CAC3B,CAEAskB,gBAAgB7oB,GACZ,MAAM2tB,EAAwB,UAAd3tB,EAAwB9qC,KAAKg3D,YAAch3D,KAAK+2D,WAChE0B,EAAQllD,QAASqvC,GAAOA,KACxB6V,EAAQptD,OAAS,CACrB,EAGJ,MAAMqtD,GACF7rB,sBAAsB/C,GAKlB,OAAO,CACX,CACA6uB,gCAAgC7uB,GAM5B,OAAO,CACX,CACAqC,gBAAgBC,EAAMC,GAClB,OAAOF,GAAgBC,EAAMC,EACjC,CACAR,iBAAiBb,GACb,OAAOa,GAAiBb,EAC5B,CACAkC,MAAMlC,EAASuB,EAAUC,GACrB,OAAOF,GAAYtB,EAASuB,EAAUC,EAC1C,CACAW,aAAanC,EAASlB,EAAMyB,GACxB,OAAO4B,GAAanC,EAASlB,EACjC,CACAsD,QAAQpC,EAAS5B,EAAWpwB,EAAUq0B,EAAOC,EAAQC,EAAkB,IACnE,MACMqrB,EAAgB,CAAE5/C,WAAUq0B,QAAOwrB,KADnB,GAATxrB,EAAa,OAAS,YAI/BC,IACAsrB,EAActrB,OAAYA,GAE9B,MAAMwrB,EAAiB,IAAIr8C,IACrBs8C,EAA+BxrB,EAAgBt/B,OAAQs8B,IAAWA,cAAkBssB,KA7qHlG,SAASmC,GAA+BhgD,EAAUq0B,GAC9C,OAAoB,IAAbr0B,GAA4B,IAAVq0B,CAC7B,EA4qHY2rB,CAA+BhgD,EAAUq0B,IACzC0rB,EAA4BxlD,QAASg3B,KACjCA,GAAOitB,gBAAgBjkD,QAAQ,CAAC+b,GAAKwa,KAASgvB,EAAel0D,IAAIklC,GAAMxa,IAAI,GAGnF,IAAIswB,EAlwHZ,SAASqZ,GAAmB7vB,GACxB,OAAKA,EAAU/9B,OAGX+9B,EAAU,aAAc3sB,IACjB2sB,EAEJA,EAAUp9B,IAAK29B,GAAO,IAAIltB,IAAIlb,OAAO2c,QAAQyrB,KALzC,EAMf,CA0vHyBsvB,CAAmB7vB,GAAWp9B,IAAKqjC,IAAW,IAAI5yB,IAAI4yB,KACvEuQ,EAjrHR,SAASsZ,GAAmCluB,EAAS5B,EAAW0vB,GAC5D,GAAIA,EAAex2C,MAAQ8mB,EAAU/9B,OAAQ,CACzC,IAAI8tD,EAAmB/vB,EAAU,GAC7BgwB,EAAoB,GAOxB,GANAN,EAAevlD,QAAQ,CAAC+b,EAAKwa,KACpBqvB,EAAiB3yD,IAAIsjC,IACtBsvB,EAAkB/lD,KAAKy2B,GAE3BqvB,EAAiBv0D,IAAIklC,EAAMxa,EAAG,GAE9B8pC,EAAkB/tD,OAClB,QAASD,EAAI,EAAGA,EAAIg+B,EAAU/9B,OAAQD,IAAK,CACvC,IAAIu+B,EAAKP,EAAUh+B,GACnBguD,EAAkB7lD,QAASu2B,GAASH,EAAG/kC,IAAIklC,EAAMqD,GAAanC,EAASlB,IAC3E,CAER,CACA,OAAOV,CACX,CA+pHqB8vB,CAAmCluB,EAAS4U,EAAYkZ,GACrE,MAAMO,EAlTd,SAASC,GAA2BtuB,EAASqE,GACzC,IAAIkqB,EAAc,KACdC,EAAY,KAChB,OAAI/7C,MAAMC,QAAQ2xB,IAAWA,EAAOhkC,QAChCkuD,EAAc5C,GAA0BtnB,EAAO,IAC3CA,EAAOhkC,OAAS,IAChBmuD,EAAY7C,GAA0BtnB,EAAOA,EAAOhkC,OAAS,MAG5DgkC,aAAkB5yB,MACvB88C,EAAc5C,GAA0BtnB,IAErCkqB,GAAeC,EAAY,IAAItD,GAAmBlrB,EAASuuB,EAAaC,GAAa,IAChG,CAqS8BF,CAA2BtuB,EAAS4U,GAC1D,OAAO,IAAIiX,GAAoB7rB,EAAS4U,EAAYgZ,EAAeS,EACvE,EA0CJ,MACMI,GAA0B,aAChC,MAAMC,GACF55D,YAAY8mD,EAAa+S,EAAU7O,EAAQ8O,GACvC55D,KAAK4mD,YAAcA,EACnB5mD,KAAK25D,SAAWA,EAChB35D,KAAK8qD,OAASA,EACd9qD,KAAK45D,WAAaA,EAGlB55D,KAAK65D,WAAQ,CACjB,CACA,QAAI/wD,GACA,OAAO9I,KAAK25D,SAAS7wD,IACzB,CACAgxD,YAAY/oB,GACR/wC,KAAK25D,SAASG,cAAc/oB,EAChC,CACA6U,UACI5lD,KAAK8qD,OAAOlF,QAAQ5lD,KAAK4mD,YAAa5mD,KAAK25D,UAC3C35D,KAAK8qD,OAAOZ,yBAAyB,KAGjC6P,eAAe,KACX/5D,KAAK25D,SAAS/T,SAAQ,EACzB,GAEL5lD,KAAK45D,cACT,CACAI,cAAc13D,EAAM23D,GAChB,OAAOj6D,KAAK25D,SAASK,cAAc13D,EAAM23D,EAC7C,CACAC,cAAcxnD,GACV,OAAO1S,KAAK25D,SAASO,cAAcxnD,EACvC,CACAynD,WAAWznD,GACP,OAAO1S,KAAK25D,SAASQ,WAAWznD,EACpC,CACA0nD,YAAYtuB,EAAQuuB,GAChBr6D,KAAK25D,SAASS,YAAYtuB,EAAQuuB,GAClCr6D,KAAK8qD,OAAO4K,SAAS11D,KAAK4mD,YAAayT,EAAUvuB,GAAQ,EAC7D,CACAwhB,aAAaxhB,EAAQuuB,EAAUC,EAAUC,GAAS,GAC9Cv6D,KAAK25D,SAASrM,aAAaxhB,EAAQuuB,EAAUC,GAE7Ct6D,KAAK8qD,OAAO4K,SAAS11D,KAAK4mD,YAAayT,EAAUvuB,EAAQyuB,EAC7D,CACAC,YAAY1uB,EAAQ2uB,EAAUC,GAKtB16D,KAAK+rC,WAAW0uB,IAChBz6D,KAAK8qD,OAAO6K,SAAS31D,KAAK4mD,YAAa6T,EAAUz6D,KAAK25D,SAE9D,CACAgB,kBAAkBC,EAAgBC,GAC9B,OAAO76D,KAAK25D,SAASgB,kBAAkBC,EAAgBC,EAC3D,CACA9uB,WAAWgF,GACP,OAAO/wC,KAAK25D,SAAS5tB,WAAWgF,EACpC,CACA+pB,YAAY/pB,GACR,OAAO/wC,KAAK25D,SAASmB,YAAY/pB,EACrC,CACAgqB,aAAaC,EAAI14D,EAAMoQ,EAAOunD,GAC1Bj6D,KAAK25D,SAASoB,aAAaC,EAAI14D,EAAMoQ,EAAOunD,EAChD,CACAgB,gBAAgBD,EAAI14D,EAAM23D,GACtBj6D,KAAK25D,SAASsB,gBAAgBD,EAAI14D,EAAM23D,EAC5C,CACAjS,SAASgT,EAAI14D,GACTtC,KAAK25D,SAAS3R,SAASgT,EAAI14D,EAC/B,CACAknD,YAAYwR,EAAI14D,GACZtC,KAAK25D,SAASnQ,YAAYwR,EAAI14D,EAClC,CACA44D,SAASF,EAAIjuB,EAAOr6B,EAAOyoD,GACvBn7D,KAAK25D,SAASuB,SAASF,EAAIjuB,EAAOr6B,EAAOyoD,EAC7C,CACAC,YAAYJ,EAAIjuB,EAAOouB,GACnBn7D,KAAK25D,SAASyB,YAAYJ,EAAIjuB,EAAOouB,EACzC,CACAE,YAAYL,EAAI14D,EAAMoQ,GAnFD,KAoFbpQ,EAAK2qC,OAAO,IAA0B3qC,GAAQm3D,GAC9Cz5D,KAAK41D,kBAAkBoF,IAAMtoD,GAG7B1S,KAAK25D,SAAS0B,YAAYL,EAAI14D,EAAMoQ,EAE5C,CACA4oD,SAASvqB,EAAMr+B,GACX1S,KAAK25D,SAAS2B,SAASvqB,EAAMr+B,EACjC,CACAqzC,OAAO/G,EAAQxU,EAAWC,GACtB,OAAOzqC,KAAK25D,SAAS5T,OAAO/G,EAAQxU,EAAWC,EACnD,CACAmrB,kBAAkB5qB,EAASt4B,GACvB1S,KAAK8qD,OAAO8K,kBAAkB5qB,EAASt4B,EAC3C,EAEJ,MAAM6oD,WAA0B7B,GAC5B55D,YAAYqH,EAASy/C,EAAa+S,EAAU7O,EAAQjgB,GAChD1qC,MAAMymD,EAAa+S,EAAU7O,EAAQjgB,GACrC7qC,KAAKmH,QAAUA,EACfnH,KAAK4mD,YAAcA,CACvB,CACAyU,YAAYL,EAAI14D,EAAMoQ,GA3GD,KA4GbpQ,EAAK2qC,OAAO,GACU,KAAlB3qC,EAAK2qC,OAAO,IAAa3qC,GAAQm3D,GAEjCz5D,KAAK41D,kBAAkBoF,EADvBtoD,OAAkBpR,IAAVoR,KAA+BA,GAIvC1S,KAAK8qD,OAAOgL,QAAQ91D,KAAK4mD,YAAaoU,EAAI14D,EAAK+d,MAAM,GAAI3N,GAI7D1S,KAAK25D,SAAS0B,YAAYL,EAAI14D,EAAMoQ,EAE5C,CACAqzC,OAAO/G,EAAQxU,EAAWC,GACtB,GA1HiB,KA0HbD,EAAUyC,OAAO,GAAwB,CACzC,MAAMjC,EAgBlB,SAASwwB,GAAyBxc,GAC9B,OAAQA,GACJ,IAAK,OACD,OAAO/zC,SAASvB,KACpB,IAAK,WACD,OAAOuB,SACX,IAAK,SACD,OAAOsf,OACX,QACI,OAAOy0B,EAEnB,CA3B4Bwc,CAAyBxc,GACzC,IAAI18C,EAAOkoC,EAAUnqB,MAAM,GACvB4nC,EAAQ,GAGZ,MAhIa,KAgIT3lD,EAAK2qC,OAAO,MACX3qC,EAAM2lD,GAsBvB,SAASwT,GAAyBxwB,GAC9B,MAAMywB,EAAWzwB,EAAY3mC,QAAQ,KAGrC,MAAO,CAFS2mC,EAAYU,UAAU,EAAG+vB,GAC3BzwB,EAAY5qB,MAAMq7C,EAAW,GAE/C,CA3BgCD,CAAyBn5D,IAEtCtC,KAAK8qD,OAAO/E,OAAO/lD,KAAK4mD,YAAa5b,EAAS1oC,EAAM2lD,EAAQjgD,IAE/DhI,KAAKmH,QAAQw0D,yBADG3zD,EAAMqjC,QAAY,EACaZ,EAAUziC,EAAK,EAEtE,CACA,OAAOhI,KAAK25D,SAAS5T,OAAO/G,EAAQxU,EAAWC,EACnD,EAqBJ,MAAMmxB,GACF97D,YAAY65D,EAAU7O,EAAQ+Q,GAC1B77D,KAAK25D,SAAWA,EAChB35D,KAAK8qD,OAASA,EACd9qD,KAAK67D,MAAQA,EACb77D,KAAK87D,WAAa,EAClB97D,KAAK+7D,aAAe,EACpB/7D,KAAKg8D,0BAA4B,GACjCh8D,KAAKi8D,eAAiB,IAAIx/C,IAC1Bzc,KAAKk8D,cAAgB,EACrBpR,EAAOiB,kBAAoB,CAAC/gB,EAAS2uB,KACjCA,GAAUa,YAAY,KAAMxvB,EAAO,CAE3C,CACAmxB,eAAezU,EAAa1kD,GACxB,MAGM22D,EAAW35D,KAAK25D,SAASwC,eAAezU,EAAa1kD,GAC3D,IAAK0kD,IAAgB1kD,GAAM8F,MAAOgtC,UAAc,CAC5C,MAAMsmB,EAAQp8D,KAAKi8D,eACnB,IAAII,EAAWD,EAAMp2D,IAAI2zD,GASzB,OARK0C,IAIDA,EAAW,IAAI3C,GAXI,GAWsCC,EAAU35D,KAAK8qD,OAD9CwR,IAAMF,EAAMxwD,OAAO+tD,IAG7CyC,EAAMx3D,IAAI+0D,EAAU0C,IAEjBA,CACX,CACA,MAAM/G,EAActyD,EAAK21B,GACnBiuB,EAAc5jD,EAAK21B,GAAK,IAAM34B,KAAK87D,WACzC97D,KAAK87D,aACL97D,KAAK8qD,OAAO1F,SAASwB,EAAac,GAClC,MAAMwF,EAAmBvE,IACjBlrC,MAAMC,QAAQirC,GACdA,EAAQp1C,QAAQ25C,GAGhBltD,KAAK8qD,OAAOoC,gBAAgBoI,EAAa1O,EAAac,EAAaiB,EAAQrmD,KAAMqmD,EAAO,EAIhG4T,OAD0Bv5D,EAAK8F,KAAKgtC,UAClBviC,QAAQ25C,GACnB,IAAIqO,GAAkBv7D,KAAM4mD,EAAa+S,EAAU35D,KAAK8qD,OACnE,CACA0R,QACIx8D,KAAKk8D,gBACDl8D,KAAK25D,SAAS6C,OACdx8D,KAAK25D,SAAS6C,OAEtB,CACAC,qBACI1C,eAAe,KACX/5D,KAAK+7D,gBAEb,CAEAJ,yBAAyB/nC,EAAOgvB,EAAI95C,GAChC,GAAI8qB,GAAS,GAAKA,EAAQ5zB,KAAK+7D,aAE3B,YADA/7D,KAAK67D,MAAMa,IAAI,IAAM9Z,EAAG95C,IAG5B,MAAM6zD,EAA2B38D,KAAKg8D,0BACC,GAAnCW,EAAyBtxD,QACzB0uD,eAAe,KACX/5D,KAAK67D,MAAMa,IAAI,KACXC,EAAyBppD,QAAS6kC,IAC9B,MAAOwK,EAAI95C,GAAQsvC,EACnBwK,EAAG95C,EAAI,GAEX9I,KAAKg8D,0BAA4B,IACpC,GAGTW,EAAyBtpD,KAAK,CAACuvC,EAAI95C,GACvC,CACA8zD,MACI58D,KAAKk8D,gBAGqB,GAAtBl8D,KAAKk8D,eACLl8D,KAAK67D,MAAMgB,kBAAkB,KACzB78D,KAAKy8D,qBACLz8D,KAAK8qD,OAAOuD,MAAMruD,KAAK+7D,aAAY,GAGvC/7D,KAAK25D,SAASiD,KACd58D,KAAK25D,SAASiD,KAEtB,CACA5O,oBACI,OAAOhuD,KAAK8qD,OAAOkD,mBACvB,gBC9oJJ,MAAM8O,GAA6B,CAC/B,CAAE99B,QAAS+9B,GAA2B39B,WAP1C,SAAS49B,KACL,OAAO,IAAIC,EACf,GAMI,CAAEj+B,QAASk+B,GAAkBC,SA3BF,MAA/B,MAAMC,UAAkCF,GAIpCp9D,YAAYo1D,EAAKrwB,EAAQsE,GACrBhpC,MAAM+0D,EAAKrwB,EAAQsE,EACvB,CACA3uB,cACIxa,KAAKquD,OACT,QACSruD,KAAKoH,UAAI,SAAAg3B,GAAA,WAAAA,GAAyFg/B,GAAVz2D,MAAqD02D,OAArD12D,MAA0EC,IAA1ED,MAAyGC,IAA4B,CAA+C,QAC5Q5G,KAAKytC,WADmF9mC,MAAE,CAAA0e,MACY+3C,EAAyBj2D,QAAzBi2D,EAAyBh2D,WAAK,EAChJ,OAZKg2D,CAAyB,MA4B3B,CACIp+B,QAASs+B,MACTl+B,WARR,SAASm+B,GAA2BlB,EAAUvR,EAAQ0S,GAClD,OAAO,IAAIC,GAA0BpB,EAAUvR,EAAQ0S,EAC3D,EAOQt+B,KAAM,CAACw+B,KAAsBR,GAAkBS,SAOjDC,GAA+B,CACjC,CAAE5+B,QAAS0O,GAAiBtO,WAAYA,IAAM,IAAIy+B,IAClD,CAAE7+B,QAAS8+B,MAAuBC,SAAU,wBACzCjB,IAMDkB,GAAoC,CACtC,CAAEh/B,QAAS0O,GAAiByvB,SAAUvwB,IACtC,CAAE5N,QAAS8+B,MAAuBC,SAAU,qBACzCjB,IAGP,IAKMmB,GAAuB,MAA7B,MAAMA,EAiBF,iBAAOC,CAAW/kD,GACd,MAAO,CACHglD,SAAUF,EACVv+B,UAAWvmB,EAAOy8C,kBACZoI,GACAJ,GAEd,QACS59D,KAAKoH,UAAI,SAAAg3B,GAAA,WAAAA,GAAyF6/B,EAAuB,CAAoD,QAC7Kj+D,KAAKq+B,UA1EmF13B,KAAE,CAAA3D,KA0ESi7D,GAAsD,QACzJj+D,KAAKs+B,UA3EmF33B,MAAE,CAAA+4B,UA2E6Ck+B,GAA4Br/B,QAAA,CAAY6/B,OAAmB,EAC9M,OA5BKH,CAAuB,oBCwK5B,IA+XKI,GAAa,MAAnB,MAAMA,GAENA,SAAcj3D,UAAI,SAAAg3B,GAAA,WAAAA,GAAyFigC,EAAa,EACxHA,EAAchgC,UA3CsF13B,KAAE,CAAA3D,KA2CMq7D,IAC5GA,EAAc//B,UA5CsF33B,MAAE,IAwChG03D,CAAa,oDC/mBnB,MAAMC,GACFx+D,YAAYy+D,EAAMC,EAAS,gBAAiBC,EAAS,SACjDz+D,KAAKu+D,KAAOA,EACZv+D,KAAKw+D,OAASA,EACdx+D,KAAKy+D,OAASA,CAClB,CAIAC,eAAernD,GACX,OAAOrX,KAAKu+D,KAAKv4D,IAAI,GAAGhG,KAAKw+D,SAASnnD,IAAOrX,KAAKy+D,SACtD,iBC+EAE,GAAe,CCxFjBC,UAAW,CACTC,aAAc,CACZC,KAAM,IACNC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,QAENC,QAAS,CACP,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,MAAO,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,KAAM,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,IAAK,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,OAAQ,CACN,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,MAAO,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,OAAQ,CACN,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,KAAM,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,KAAM,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,IAAK,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,KAAM,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,OAAQ,CACN,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,OAAQ,CACN,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,OAAQ,CACN,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,QAAS,CACP,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,KAAM,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,KAAM,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,MAAO,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,KAAM,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,KAAM,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,QAAS,CACP,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAEPC,MAAO,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,YAGTC,SAAU,CACRC,mBAAoB,OACpBC,UAAW,CACTryC,MAAO,MACPwe,MAAO,QACP8zB,MAAO,kBACPv0C,OAAQ,MACRw0C,OAAQ,QAEVC,gBAAiB,MACjBC,SAAU,OACVC,aAAc,MACdC,QAAS,CACP,GAAI,eACJ,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,iBAEPC,UAAW,CACTC,SAAU,UACVC,SAAU,SACVrC,GAAI,CACFsC,SAAU,WACVF,SAAU,WACVC,SAAU,YAEZnC,GAAI,CACFoC,SAAU,WACVF,SAAU,WACVC,SAAU,YAEZxC,aAAc,qBACd+B,UAAW,CACTryC,MAAO,IACPwe,MAAO,OACP8zB,MAAO,cACPv0C,OAAQ,IACRw0C,OAAQ,QAEVH,mBAAoB,yBAEtB/kD,KAAM,CACJ2lD,QAAS,kBACTC,IAAK,MACLC,OAAQ,CACNF,QAAS,4BAEXG,OAAQ,CACNH,QAAS,iBACT1C,aAAc,sBAEhB8C,YAAa,CACXJ,QAAS,iBACTK,WAAY,QAGhBC,QAAS,CACPhD,aAAc,sBAEhBiD,KAAM,CACJnB,mBAAoB,SAEtBoB,WAAY,CACVnmD,KAAM,CACJ2lD,QAAS,kBACTC,IAAK,OAEP3vD,KAAM,CACJ0vD,QAAS,iBACT1C,aAAc,qBACd2C,IAAK,UAEPQ,aAAc,CACZT,QAAS,iBACTK,WAAY,OAEdK,YAAa,CACX3/C,KAAM,aAGVgd,QAAS,CACP4iC,OAAQ,CACNrD,aAAc,qBACdiC,OAAQ,wEAEVqB,QAAS,CACPtD,aAAc,qBACd0C,QAAS,UACTT,OAAQ,wEAEVsB,MAAO,CACLvD,aAAc,qBACd0C,QAAS,UACTT,OAAQ,2EAEViB,WAAY,CACVjB,OAAQ,yEAGZuB,YAAa,CACXC,MAAO,CACLC,QAAS,CACP,EAAG,UACH,GAAI,aACJ,IAAK,cACL,IAAK,cACL,IAAK,cACL,IAAK,cACL,IAAK,cACL,IAAK,cACL,IAAK,cACL,IAAK,cACL,IAAK,cACL,IAAK,eAEPrB,QAAS,CACPL,MAAO,gBACP2B,cAAe,UACfC,WAAY,gBACZC,YAAa,iBAEfC,UAAW,CACTC,WAAY,eACZC,gBAAiB,gBACjBhC,MAAO,gBACPiC,WAAY,iBAEdhB,KAAM,CACJc,WAAY,kBACZ/B,MAAO,iBAETM,UAAW,CACTyB,WAAY,cACZG,mBAAoB,gBACpBC,iBAAkB,eAClBC,sBAAuB,eACvBC,sBAAuB,eACvBC,YAAa,gBACbC,iBAAkB,gBAClBC,iBAAkB,kBAClBC,mBAAoB,YACpBzC,MAAO,gBACP0C,cAAe,gBACfC,iBAAkB,gBAClBC,wBAAyB,YACzBC,gBAAiB,gBACjBC,qBAAsB,gBACtBC,sBAAuB,gBACvBC,uBAAwB,yCACxBC,UAAW,gBACXhD,OAAQ,4DAEVt5D,KAAM,CACJq5D,MAAO,gBACP4B,WAAY,gBACZsB,WAAY,gBACZC,gBAAiB,iBAEnBnC,QAAS,CACPe,WAAY,cACZqB,gBAAiB,gBACjBd,YAAa,gBACbtC,MAAO,eACP4B,WAAY,sBAEdnjC,QAAS,CACP4iC,OAAQ,CACNU,WAAY,cACZO,YAAa,gBACbtC,MAAO,gBAETsB,QAAS,CACPS,WAAY,cACZO,YAAa,gBACbtC,MAAO,gBAETuB,MAAO,CACLQ,WAAY,cACZO,YAAa,gBACbtC,MAAO,iBAGXjlD,KAAM,CACJ8lD,OAAQ,CACNmB,gBAAiB,gBACjBqB,mBAAoB,yBACpBC,wBAAyB,+BACzBtD,MAAO,eACPiC,WAAY,qBACZsB,cAAe,oBACfC,mBAAoB,0BACpBC,KAAM,CACJzD,MAAO,gBACPiC,WAAY,kBAGhBnB,YAAa,CACXiB,WAAY,cACZ/B,MAAO,uBAGXkB,WAAY,CACVlwD,KAAM,CACJgxD,gBAAiB,gBACjB0B,iBAAkB,gBAClB1D,MAAO,eACPiC,WAAY,qBACZJ,YAAa,qBACb4B,KAAM,CACJzD,MAAO,gBACPiC,WAAY,gBACZJ,YAAa,kBAGjBV,aAAc,CACZY,WAAY,cACZ/B,MAAO,sBAEToB,YAAa,CACXpB,MAAO,gBACPiC,WAAY,gBACZJ,YAAa,mBAInB8B,KAAM,CACJjC,QAAS,CACP,EAAG,UACH,GAAI,YACJ,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,cAEPrB,QAAS,CACPL,MAAO,gBACP2B,cAAe,gBACfC,WAAY,gBACZC,YAAa,iBAEfC,UAAW,CACTC,WAAY,qDACZC,gBAAiB,qDACjBhC,MAAO,wBACPiC,WAAY,yBAEdhB,KAAM,CACJc,WAAY,kBACZ/B,MAAO,iBAETM,UAAW,CACTyB,WAAY,gBACZG,mBAAoB,gBACpBC,iBAAkB,gBAClBC,sBAAuB,gBACvBC,sBAAuB,gBACvBC,YAAa,gBACbC,iBAAkB,gBAClBC,iBAAkB,kBAClBC,mBAAoB,YACpBzC,MAAO,cACP0C,cAAe,gBACfC,iBAAkB,gBAClBC,wBAAyB,YACzBC,gBAAiB,gBACjBC,qBAAsB,kBACtBC,sBAAuB,gBACvBC,uBAAwB,yCACxBC,UAAW,gBACXhD,OAAQ,4DAEVt5D,KAAM,CACJq5D,MAAO,cACP4B,WAAY,cACZsB,WAAY,gBACZC,gBAAiB,iBAEnBnC,QAAS,CACPe,WAAY,gBACZqB,gBAAiB,gBACjBd,YAAa,gBACbtC,MAAO,eACP4B,WAAY,sBAEdnjC,QAAS,CACP4iC,OAAQ,CACNU,WAAY,gBACZO,YAAa,gBACbtC,MAAO,gBAETsB,QAAS,CACPS,WAAY,gBACZO,YAAa,gBACbtC,MAAO,gBAETuB,MAAO,CACLQ,WAAY,gBACZO,YAAa,gBACbtC,MAAO,iBAGXjlD,KAAM,CACJ8lD,OAAQ,CACNmB,gBAAiB,gBACjBqB,mBAAoB,yBACpBC,wBAAyB,+BACzBtD,MAAO,eACPiC,WAAY,qBACZsB,cAAe,oBACfC,mBAAoB,0BACpBC,KAAM,CACJzD,MAAO,gBACPiC,WAAY,kBAGhBnB,YAAa,CACXiB,WAAY,cACZ/B,MAAO,uBAGXkB,WAAY,CACVlwD,KAAM,CACJgxD,gBAAiB,gBACjB0B,iBAAkB,gBAClB1D,MAAO,eACPiC,WAAY,qBACZJ,YAAa,qBACb4B,KAAM,CACJzD,MAAO,gBACPiC,WAAY,gBACZJ,YAAa,kBAGjBV,aAAc,CACZY,WAAY,cACZ/B,MAAO,sBAEToB,YAAa,CACXpB,MAAO,gBACPiC,WAAY,gBACZJ,YAAa,qBD/iBvB+B,WAAY,CACVC,UE5FoB,CACtBpV,KAAM,CACJqR,mBAAoB,yBAEtBgE,MAAO,CACLC,YAAa,YACbzB,YAAa,0BAEf1B,OAAQ,CACNZ,MAAO,qBACP4B,WAAY,eACZC,YAAa,eACbnB,QAAS,WACTK,WAAY,MACZ/C,aAAc,IACd+F,YAAa,IACbzB,YAAa,yBACbP,WAAY,uBACZqB,gBAAiB,uBACjBM,iBAAkB,uBAClBM,sBAAuB,uBACvBjE,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,OACRw0C,OAAQ,uBAEVgE,WAAY,CACVjE,MAAO,qBACP4B,WAAY,eACZC,YAAa,eACbqC,iBAAkB,gBAEpBC,MAAO,CACLC,gBAAiB,0BACjBL,YAAa,KAEfM,KAAM,CACJC,mBAAoB,0BACpBC,yBAA0B,MAG9BvD,QAAS,CACP+C,YAAa,IACbzB,YAAa,yBACbP,WAAY,uBACZ/B,MAAO,eACPU,QAAS,iCF6CT8D,aG7FuB,CACzB/V,KAAM,CACJsT,WAAY,0BACZG,mBAAoB,mCACpBC,iBAAkB,iCAClBC,sBAAuB,uCACvBC,sBAAuB,uCACvBC,YAAa,4BACbC,iBAAkB,kCAClBC,iBAAkB,kCAClBC,mBAAoB,oCACpBzC,MAAO,qBACP0C,cAAe,8BACfC,iBAAkB,iCAClBC,wBAAyB,yCACzB3C,OAAQ,sBACRM,SAAU,yBACVC,SAAU,yBACVxC,aAAc,6BACd+B,UAAW,CACTryC,MAAO,gCACPwe,MAAO,gCACP8zB,MAAO,gCACPv0C,OAAQ,iCACRw0C,OAAQ,kCAEVH,mBAAoB,oCAEtBrhC,QAAS,CACPsjC,WAAY,8BACZO,YAAa,gCACbtE,aAAc,iCACdgC,MAAO,yBACPC,OAAQ,2BAEVllD,KAAM,CACJ2lD,QAAS,iBACTC,IAAK,cAEPE,OAAQ,CACNmB,gBAAiB,iCACjBqB,mBAAoB,oCACpBC,wBAAyB,0CACzBtD,MAAO,sBACPiC,WAAY,4BACZsB,cAAe,+BACfC,mBAAoB,qCACpB9C,QAAS,wBACT1C,aAAc,+BAEhB8C,YAAa,CACXiB,WAAY,iCACZ/B,MAAO,4BACPe,WAAY,kCACZL,QAAS,+BAEX+D,SAAU,CACR/2C,MAAO,SACPywC,GAAI,CACFzwC,MAAO,QAET2wC,GAAI,CACF3wC,MAAO,QAET40C,YAAa,4BACbC,iBAAkB,4BAClBmC,kBAAmB,4BACnB1G,aAAc,6BACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZ0E,KAAM,CACJ3G,aAAc,sBAEhB4G,aAAc,CACZlE,QAAS,yBAEXc,YAAa,CACXC,MAAO,CACLkD,KAAM,CACJ3C,gBAAiB,gBACjBC,WAAY,iBAEdwC,SAAU,CACR1C,WAAY,gBACZqB,gBAAiB,gBACjBM,iBAAkB,gBAClB1D,MAAO,gBACP4B,WAAY,gBACZC,YAAa,kBAGjB8B,KAAM,CACJgB,KAAM,CACJ3C,gBAAiB,gBACjBC,WAAY,eAEdwC,SAAU,CACR1C,WAAY,gBACZqB,gBAAiB,gBACjBM,iBAAkB,gBAClB1D,MAAO,gBACP4B,WAAY,gBACZC,YAAa,oBHdjBgD,OI9FiB,CACnBpW,KAAM,CACJ/gC,MAAO,OACPD,OAAQ,OACRgzC,SAAU,OACVsB,WAAY,yBACZ/B,MAAO,kBACPhC,aAAc,2BAEhByF,KAAM,CACJhiD,KAAM,QAER+B,MAAO,CACL8+C,YAAa,uBACb72C,OAAQ,YAEV4yC,GAAI,CACF3wC,MAAO,OACPD,OAAQ,OACRgzC,SAAU,SACVgD,KAAM,CACJhiD,KAAM,UAER+B,MAAO,CACLiI,OAAQ,UAGZ6yC,GAAI,CACF5wC,MAAO,OACPD,OAAQ,OACRgzC,SAAU,OACVgD,KAAM,CACJhiD,KAAM,QAER+B,MAAO,CACLiI,OAAQ,aJ4DVq5C,MK/FgB,CAClBrW,KAAM,CACJuP,aAAc,qBACd0C,QAAS,WACTD,SAAU,UACVM,WAAY,MACZgE,SAAU,SACVt3C,OAAQ,UAEVu3C,IAAK,CACHvjD,KAAM,UAER08C,GAAI,CACFsC,SAAU,WACVsE,SAAU,UACVt3C,OAAQ,WAEV4wC,GAAI,CACFoC,SAAU,WACVsE,SAAU,UACVt3C,OAAQ,WAEV6wC,GAAI,CACFmC,SAAU,OACVsE,SAAU,OACVt3C,OAAQ,QAEV+zC,YAAa,CACXC,MAAO,CACLpB,QAAS,CACP0B,WAAY,kBACZ/B,MAAO,4BAETiF,UAAW,CACTlD,WAAY,gBACZ/B,MAAO,iBAETkF,QAAS,CACPnD,WAAY,cACZ/B,MAAO,eAETmF,KAAM,CACJpD,WAAY,YACZ/B,MAAO,eAET59C,KAAM,CACJ2/C,WAAY,eACZ/B,MAAO,eAEToF,OAAQ,CACNrD,WAAY,YACZ/B,MAAO,eAETqF,SAAU,CACRtD,WAAY,gBACZ/B,MAAO,gBAGX2D,KAAM,CACJtD,QAAS,CACP0B,WAAY,kBACZ/B,MAAO,4BAETiF,UAAW,CACTlD,WAAY,gBACZ/B,MAAO,iBAETkF,QAAS,CACPnD,WAAY,cACZ/B,MAAO,eAETmF,KAAM,CACJpD,WAAY,YACZ/B,MAAO,aAET59C,KAAM,CACJ2/C,WAAY,eACZ/B,MAAO,gBAEToF,OAAQ,CACNrD,WAAY,YACZ/B,MAAO,aAETqF,SAAU,CACRtD,WAAY,cACZ/B,MAAO,oBLWXsF,QMhGkB,CACpB7W,KAAM,CACJuP,aAAc,4BN+FduH,WOjGqB,CACvB9W,KAAM,CACJiS,QAAS,OACTqB,WAAY,uBACZpB,IAAK,SACLb,mBAAoB,yBAEtB9uD,KAAM,CACJgvD,MAAO,qBACP4B,WAAY,eACZ5D,aAAc,0BACd2C,IAAK,wBACL8C,KAAM,CACJzD,MAAO,+BACP4B,WAAY,sCAEd7B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZh0C,UAAW,CACT+zC,MAAO,iCPyEPwF,OQlGiB,CACnB/W,KAAM,CACJuP,aAAc,6BACdyH,oBAAqB,OACrB9E,IAAK,SACLJ,SAAU,yBACVC,SAAU,yBACVkF,cAAe,SACfvH,GAAI,CACFsC,SAAU,4BACVF,SAAU,4BACVC,SAAU,6BAEZnC,GAAI,CACFoC,SAAU,4BACVF,SAAU,4BACVC,SAAU,6BAEZ1tD,MAAO,CACLiuD,WAAY,OAEd4E,aAAc,sGACd5F,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACPzgB,OAAQ,uBAEVm6C,UAAW,OACX9F,mBAAoB,oCAEtB0B,YAAa,CACXC,MAAO,CACLhT,KAAM,CACJ4R,QAAS,CACP0B,WAAY,kBACZqB,gBAAiB,wBACjBM,iBAAkB,yBAClBpB,YAAa,kBACbC,iBAAkB,wBAClBmC,kBAAmB,yBACnB1E,MAAO,2BACP4B,WAAY,2BACZC,YAAa,2BACb9B,UAAW,CACTC,MAAO,kBACPC,OAAQ,SAGZgF,UAAW,CACTlD,WAAY,gBACZqB,gBAAiB,gBACjBM,iBAAkB,gBAClBpB,YAAa,gBACbC,iBAAkB,gBAClBmC,kBAAmB,gBACnB1E,MAAO,gBACP4B,WAAY,gBACZC,YAAa,gBACb9B,UAAW,CACTC,MAAO,gBACPC,OAAQ,SAGZkF,KAAM,CACJpD,WAAY,YACZqB,gBAAiB,YACjBM,iBAAkB,YAClBpB,YAAa,YACbC,iBAAkB,YAClBmC,kBAAmB,YACnB1E,MAAO,UACP4B,WAAY,UACZC,YAAa,UACb9B,UAAW,CACTC,MAAO,YACPC,OAAQ,SAGZiF,QAAS,CACPnD,WAAY,cACZqB,gBAAiB,cACjBM,iBAAkB,cAClBpB,YAAa,cACbC,iBAAkB,cAClBmC,kBAAmB,cACnB1E,MAAO,UACP4B,WAAY,UACZC,YAAa,UACb9B,UAAW,CACTC,MAAO,cACPC,OAAQ,SAGZ79C,KAAM,CACJ2/C,WAAY,eACZqB,gBAAiB,eACjBM,iBAAkB,eAClBpB,YAAa,eACbC,iBAAkB,eAClBmC,kBAAmB,eACnB1E,MAAO,UACP4B,WAAY,UACZC,YAAa,UACb9B,UAAW,CACTC,MAAO,eACPC,OAAQ,SAGZ4F,KAAM,CACJ9D,WAAY,eACZqB,gBAAiB,eACjBM,iBAAkB,eAClBpB,YAAa,eACbC,iBAAkB,eAClBmC,kBAAmB,eACnB1E,MAAO,UACP4B,WAAY,UACZC,YAAa,UACb9B,UAAW,CACTC,MAAO,eACPC,OAAQ,SAGZmF,OAAQ,CACNrD,WAAY,YACZqB,gBAAiB,YACjBM,iBAAkB,YAClBpB,YAAa,YACbC,iBAAkB,YAClBmC,kBAAmB,YACnB1E,MAAO,UACP4B,WAAY,UACZC,YAAa,UACb9B,UAAW,CACTC,MAAO,YACPC,OAAQ,SAGZoF,SAAU,CACRtD,WAAY,gBACZqB,gBAAiB,gBACjBM,iBAAkB,gBAClBpB,YAAa,gBACbC,iBAAkB,gBAClBmC,kBAAmB,gBACnB1E,MAAO,cACP4B,WAAY,cACZC,YAAa,cACb9B,UAAW,CACTC,MAAO,gBACPC,OAAQ,UAId6F,SAAU,CACRzF,QAAS,CACP+C,gBAAiB,eACjBM,iBAAkB,gBAClBpB,YAAa,gBACbtC,MAAO,mBAETiF,UAAW,CACT7B,gBAAiB,eACjBM,iBAAkB,gBAClBpB,YAAa,gBACbtC,MAAO,iBAETkF,QAAS,CACP9B,gBAAiB,aACjBM,iBAAkB,cAClBpB,YAAa,cACbtC,MAAO,eAETmF,KAAM,CACJ/B,gBAAiB,WACjBM,iBAAkB,YAClBpB,YAAa,YACbtC,MAAO,aAET59C,KAAM,CACJghD,gBAAiB,cACjBM,iBAAkB,eAClBpB,YAAa,eACbtC,MAAO,gBAET6F,KAAM,CACJzC,gBAAiB,cACjBM,iBAAkB,eAClBpB,YAAa,eACbtC,MAAO,gBAEToF,OAAQ,CACNhC,gBAAiB,WACjBM,iBAAkB,YAClBpB,YAAa,YACbtC,MAAO,aAETqF,SAAU,CACRjC,gBAAiB,eACjBM,iBAAkB,gBAClBpB,YAAa,gBACbtC,MAAO,iBAET+F,MAAO,CACL3C,gBAAiB,eACjBM,iBAAkB,gBAClBpB,YAAa,gBACbtC,MAAO,kBAGXr5D,KAAM,CACJ05D,QAAS,CACP+C,gBAAiB,eACjBM,iBAAkB,gBAClB1D,MAAO,mBAETiF,UAAW,CACT7B,gBAAiB,eACjBM,iBAAkB,gBAClB1D,MAAO,iBAETkF,QAAS,CACP9B,gBAAiB,aACjBM,iBAAkB,cAClB1D,MAAO,eAETmF,KAAM,CACJ/B,gBAAiB,WACjBM,iBAAkB,YAClB1D,MAAO,aAET59C,KAAM,CACJghD,gBAAiB,cACjBM,iBAAkB,eAClB1D,MAAO,gBAET6F,KAAM,CACJzC,gBAAiB,cACjBM,iBAAkB,eAClB1D,MAAO,gBAEToF,OAAQ,CACNhC,gBAAiB,WACjBM,iBAAkB,YAClB1D,MAAO,aAETqF,SAAU,CACRjC,gBAAiB,eACjBM,iBAAkB,gBAClB1D,MAAO,iBAET+F,MAAO,CACL3C,gBAAiB,eACjBM,iBAAkB,gBAClB1D,MAAO,kBAGXgG,KAAM,CACJhG,MAAO,kBACP4B,WAAY,kBACZC,YAAa,oBAGjB8B,KAAM,CACJlV,KAAM,CACJ4R,QAAS,CACP0B,WAAY,kBACZqB,gBAAiB,wBACjBM,iBAAkB,yBAClBpB,YAAa,kBACbC,iBAAkB,wBAClBmC,kBAAmB,yBACnB1E,MAAO,2BACP4B,WAAY,2BACZC,YAAa,2BACb9B,UAAW,CACTC,MAAO,kBACPC,OAAQ,SAGZgF,UAAW,CACTlD,WAAY,gBACZqB,gBAAiB,gBACjBM,iBAAkB,gBAClBpB,YAAa,gBACbC,iBAAkB,gBAClBmC,kBAAmB,gBACnB1E,MAAO,gBACP4B,WAAY,gBACZC,YAAa,gBACb9B,UAAW,CACTC,MAAO,gBACPC,OAAQ,SAGZkF,KAAM,CACJpD,WAAY,YACZqB,gBAAiB,YACjBM,iBAAkB,YAClBpB,YAAa,YACbC,iBAAkB,YAClBmC,kBAAmB,YACnB1E,MAAO,YACP4B,WAAY,YACZC,YAAa,YACb9B,UAAW,CACTC,MAAO,YACPC,OAAQ,SAGZiF,QAAS,CACPnD,WAAY,cACZqB,gBAAiB,cACjBM,iBAAkB,cAClBpB,YAAa,cACbC,iBAAkB,cAClBmC,kBAAmB,cACnB1E,MAAO,cACP4B,WAAY,cACZC,YAAa,cACb9B,UAAW,CACTC,MAAO,cACPC,OAAQ,SAGZ79C,KAAM,CACJ2/C,WAAY,eACZqB,gBAAiB,eACjBM,iBAAkB,eAClBpB,YAAa,eACbC,iBAAkB,eAClBmC,kBAAmB,eACnB1E,MAAO,eACP4B,WAAY,eACZC,YAAa,eACb9B,UAAW,CACTC,MAAO,eACPC,OAAQ,SAGZ4F,KAAM,CACJ9D,WAAY,eACZqB,gBAAiB,eACjBM,iBAAkB,eAClBpB,YAAa,eACbC,iBAAkB,eAClBmC,kBAAmB,eACnB1E,MAAO,eACP4B,WAAY,eACZC,YAAa,eACb9B,UAAW,CACTC,MAAO,eACPC,OAAQ,SAGZmF,OAAQ,CACNrD,WAAY,YACZqB,gBAAiB,YACjBM,iBAAkB,YAClBpB,YAAa,YACbC,iBAAkB,YAClBmC,kBAAmB,YACnB1E,MAAO,YACP4B,WAAY,YACZC,YAAa,YACb9B,UAAW,CACTC,MAAO,YACPC,OAAQ,SAGZoF,SAAU,CACRtD,WAAY,cACZqB,gBAAiB,gBACjBM,iBAAkB,gBAClBpB,YAAa,cACbC,iBAAkB,gBAClBmC,kBAAmB,gBACnB1E,MAAO,gBACP4B,WAAY,gBACZC,YAAa,gBACb9B,UAAW,CACTC,MAAO,cACPC,OAAQ,UAId6F,SAAU,CACRzF,QAAS,CACP+C,gBAAiB,uDACjBM,iBAAkB,uDAClBpB,YAAa,gBACbtC,MAAO,mBAETiF,UAAW,CACT7B,gBAAiB,yBACjBM,iBAAkB,yBAClBpB,YAAa,gBACbtC,MAAO,iBAETkF,QAAS,CACP9B,gBAAiB,mDACjBM,iBAAkB,mDAClBpB,YAAa,cACbtC,MAAO,eAETmF,KAAM,CACJ/B,gBAAiB,iDACjBM,iBAAkB,iDAClBpB,YAAa,YACbtC,MAAO,aAET59C,KAAM,CACJghD,gBAAiB,oDACjBM,iBAAkB,oDAClBpB,YAAa,eACbtC,MAAO,gBAET6F,KAAM,CACJzC,gBAAiB,oDACjBM,iBAAkB,oDAClBpB,YAAa,eACbtC,MAAO,gBAEToF,OAAQ,CACNhC,gBAAiB,iDACjBM,iBAAkB,iDAClBpB,YAAa,YACbtC,MAAO,aAETqF,SAAU,CACRjC,gBAAiB,gBACjBM,iBAAkB,gBAClBpB,YAAa,gBACbtC,MAAO,eAET+F,MAAO,CACL3C,gBAAiB,gBACjBM,iBAAkB,gBAClBpB,YAAa,gBACbtC,MAAO,gBAGXr5D,KAAM,CACJ05D,QAAS,CACP+C,gBAAiB,uDACjBM,iBAAkB,uDAClB1D,MAAO,mBAETiF,UAAW,CACT7B,gBAAiB,gBACjBM,iBAAkB,gBAClB1D,MAAO,iBAETkF,QAAS,CACP9B,gBAAiB,mDACjBM,iBAAkB,mDAClB1D,MAAO,eAETmF,KAAM,CACJ/B,gBAAiB,iDACjBM,iBAAkB,iDAClB1D,MAAO,aAET59C,KAAM,CACJghD,gBAAiB,oDACjBM,iBAAkB,oDAClB1D,MAAO,gBAET6F,KAAM,CACJzC,gBAAiB,oDACjBM,iBAAkB,oDAClB1D,MAAO,gBAEToF,OAAQ,CACNhC,gBAAiB,iDACjBM,iBAAkB,iDAClB1D,MAAO,aAETqF,SAAU,CACRjC,gBAAiB,gBACjBM,iBAAkB,gBAClB1D,MAAO,eAET+F,MAAO,CACL3C,gBAAiB,gBACjBM,iBAAkB,gBAClB1D,MAAO,gBAGXgG,KAAM,CACJhG,MAAO,kBACP4B,WAAY,kBACZC,YAAa,sBRzYjBoE,WSnGqB,CACvBxX,KAAM,CACJqR,mBAAoB,yBAEtBgE,MAAO,CACL/B,WAAY,uBACZO,YAAa,yBACbtC,MAAO,kBACPhC,aAAc,0BACdiC,OAAQ,2BACRS,QAAS,6BAEXE,OAAQ,CACNmB,WAAY,uBACZO,YAAa,yBACbtC,MAAO,kBACPU,QAAS,gBAEX95D,MAAO,CACL+5D,IAAK,SACLI,WAAY,OAEd0D,SAAU,CACR/2C,MAAO,SACPywC,GAAI,CACFzwC,MAAO,QAET2wC,GAAI,CACF3wC,MAAO,QAET40C,YAAa,4BACbC,iBAAkB,4BAClBmC,kBAAmB,4BACnB1G,aAAc,6BACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZiG,UAAW,CACTlG,MAAO,2BAETmG,YAAa,CACX/C,gBAAiB,6BACjBpD,MAAO,kBACP4B,WAAY,wBACZlB,QAAS,iBACT1C,aAAc,2BAEhBoI,WAAY,CACVhD,gBAAiB,6BACjBpD,MAAO,kBACP4B,WAAY,wBACZlB,QAAS,iBACT1C,aAAc,2BAEhBx6C,MAAO,CACL8+C,YAAa,yBACb3B,IAAK,6BAEP0F,QAAS,CACPC,OAAQ,gBAEVC,QAAS,CACP7F,QAAS,UACTK,WAAY,MACZf,MAAO,mBAET51C,KAAM,CACJg5C,gBAAiB,6BACjBC,mBAAoB,kBACpBmD,wBAAyB,yBACzBxG,MAAO,kBACP4B,WAAY,wBACZ2B,cAAe,2BACfkD,mBAAoB,oBACpB/4C,MAAO,OACPD,OAAQ,OACRuwC,aAAc,MACd0C,QAAS,UACTX,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZyG,UAAW,CACTJ,OAAQ,gBAEVj4D,MAAO,CACLqyD,QAAS,WACT1C,aAAc,2BAEhB2I,SAAU,CACRL,OAAQ,gBAEVl4D,KAAM,CACJsyD,QAAS,WACT1C,aAAc,2BAEhB4I,UAAW,CACTlG,QAAS,eACT4B,YAAa,0BAEfuE,WAAY,CACVnG,QAAS,eACT4B,YAAa,yBACb3B,IAAK,SACLmG,UAAW,WAEbtF,YAAa,CACXC,MAAO,CACLgD,SAAU,CACR1C,WAAY,gBACZqB,gBAAiB,gBACjBM,iBAAkB,gBAClB1D,MAAO,gBACP4B,WAAY,gBACZC,YAAa,iBAEfzwC,MAAO,CACL2wC,WAAY,gBACZ/B,MAAO,kBAGX2D,KAAM,CACJc,SAAU,CACR1C,WAAY,gBACZqB,gBAAiB,gBACjBM,iBAAkB,gBAClB1D,MAAO,gBACP4B,WAAY,gBACZC,YAAa,iBAEfzwC,MAAO,CACL2wC,WAAY,gBACZ/B,MAAO,kBTzCX+G,KUpGe,CACjBtY,KAAM,CACJsT,WAAY,uBACZ/D,aAAc,qBACdgC,MAAO,kBACPC,OAAQ,qEAEVp3D,KAAM,CACJ63D,QAAS,UACTC,IAAK,UAEPqG,QAAS,CACPrG,IAAK,UAEP/5D,MAAO,CACL65D,SAAU,UACVM,WAAY,OAEdkG,SAAU,CACRjH,MAAO,uBVkFPkH,SWrGmB,CACrBzY,KAAM,CACJqR,mBAAoB,yBAEtBkB,QAAS,CACPL,IAAK,WAEPwG,cAAe,CACbzG,QAAS,OACTC,IAAK,UAEPt+C,UAAW,CACTqL,MAAO,OACPD,OAAQ,SACRuwC,aAAc,0BACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZuB,YAAa,CACXC,MAAO,CACLp/C,UAAW,CACT0/C,WAAY,gBACZqB,gBAAiB,gBACjBM,iBAAkB,oBAGtBC,KAAM,CACJthD,UAAW,CACT0/C,WAAY,gBACZqB,gBAAiB,gBACjBM,iBAAkB,sBXmEtB0D,cYtGwB,CAC1B3Y,KAAM,CACJsT,WAAY,0BACZG,mBAAoB,mCACpBC,iBAAkB,iCAClBC,sBAAuB,uCACvBC,sBAAuB,uCACvBC,YAAa,4BACbC,iBAAkB,kCAClBC,iBAAkB,kCAClBC,mBAAoB,oCACpBzC,MAAO,qBACP0C,cAAe,8BACfC,iBAAkB,iCAClBC,wBAAyB,yCACzB3C,OAAQ,sBACRM,SAAU,yBACVC,SAAU,yBACVxC,aAAc,6BACd+B,UAAW,CACTryC,MAAO,gCACPwe,MAAO,gCACP8zB,MAAO,gCACPv0C,OAAQ,iCACRw0C,OAAQ,kCAEVH,mBAAoB,mCACpB3B,GAAI,CACFsC,SAAU,4BACVF,SAAU,4BACVC,SAAU,6BAEZnC,GAAI,CACFoC,SAAU,4BACVF,SAAU,4BACVC,SAAU,8BAGdiE,SAAU,CACR/2C,MAAO,SACPsyC,MAAO,2BAETvhC,QAAS,CACPsjC,WAAY,8BACZO,YAAa,gCACbtE,aAAc,iCACdgC,MAAO,yBACPC,OAAQ,2BAEVllD,KAAM,CACJ2lD,QAAS,iBACTC,IAAK,aACL0G,aAAc,QAEhBxG,OAAQ,CACNmB,gBAAiB,iCACjBqB,mBAAoB,oCACpBC,wBAAyB,0CACzBtD,MAAO,sBACPiC,WAAY,4BACZsB,cAAe,+BACfC,mBAAoB,qCACpB9C,QAAS,wBACT1C,aAAc,8BACdyF,KAAM,CACJzD,MAAO,2BACPiC,WAAY,iCACZxgD,KAAM,aAGV6lD,UAAW,CACTtH,MAAO,4BZgCPuH,SavGmB,CACrB9Y,KAAM,CACJuP,aAAc,qBACdtwC,MAAO,UACPD,OAAQ,UACRs0C,WAAY,0BACZyF,kBAAmB,kBACnBC,uBAAwB,wBACxBvF,mBAAoB,mCACpBC,iBAAkB,iCAClBG,YAAa,4BACbC,iBAAkB,kCAClBC,iBAAkB,4BAClBkF,mBAAoB,kBACpBC,wBAAyB,wBACzBC,wBAAyB,kBACzBC,2BAA4B,4BAC5BpF,mBAAoB,oCACpBxC,OAAQ,sBACRF,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,uBAEVH,mBAAoB,mCACpB3B,GAAI,CACFzwC,MAAO,OACPD,OAAQ,QAEV4wC,GAAI,CACF3wC,MAAO,SACPD,OAAQ,WAGZg2C,KAAM,CACJhiD,KAAM,WACNu+C,MAAO,qBACP8H,aAAc,2BACdC,kBAAmB,2BACnBrF,cAAe,8BACfvE,GAAI,CACF18C,KAAM,WAER48C,GAAI,CACF58C,KAAM,Ub0DRkjD,KcxGe,CACjBlW,KAAM,CACJuP,aAAc,OACduC,SAAU,UACVC,SAAU,SACVG,IAAK,SACLb,mBAAoB,yBAEtBkI,MAAO,CACLt6C,MAAO,OACPD,OAAQ,QAEVg2C,KAAM,CACJhiD,KAAM,QAERwmD,WAAY,CACVxmD,KAAM,OACNs+C,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,mCAGZuB,YAAa,CACXC,MAAO,CACLhT,KAAM,CACJsT,WAAY,gBACZ/B,MAAO,iBAETyD,KAAM,CACJzD,MAAO,iBAETiI,WAAY,CACVjI,MAAO,kBAGX2D,KAAM,CACJlV,KAAM,CACJsT,WAAY,gBACZ/B,MAAO,eAETyD,KAAM,CACJzD,MAAO,eAETiI,WAAY,CACVjI,MAAO,kBd0DXkI,YezGsB,CACxBzZ,KAAM,CACJqR,mBAAoB,yBAEtBqI,QAAS,CACPz6C,MAAO,SACPD,OAAQ,SACRuwC,aAAc,6BACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZ6D,MAAO,CACL7D,OAAQ,2BACRjC,aAAc,kCAEhBwD,YAAa,CACXC,MAAO,CACLqC,MAAO,CACL/B,WAAY,gBACZO,YAAa,iBAEfr+D,OAAQ,CACN+7D,MAAO,gBAGX2D,KAAM,CACJG,MAAO,CACL/B,WAAY,gBACZO,YAAa,iBAEfr+D,OAAQ,CACN+7D,MAAO,kBfsEXoI,cgB1GwB,CAC1B3E,KAAM,CACJhiD,KAAM,OACNu+C,MAAO,yBAETgB,QAAS,CACPL,IAAK,ShBqGL0H,aiB3GuB,CACzB5Z,KAAM,CACJsT,WAAY,+BACZO,YAAa,iCACbtC,MAAO,0BACPhC,aAAc,kCACdiC,OAAQ,2BACRqI,OAAQ,OACRC,YAAa,WAEfvH,QAAS,CACPN,QAAS,4BACTC,IAAK,QAEP8C,KAAM,CACJhiD,KAAM,SACNu+C,MAAO,2BAETwI,OAAQ,CACN7H,IAAK,SACLD,QAAS,oFjBwFT+H,YkB5GsB,CACxBha,KAAM,CACJsT,WAAY,uBACZO,YAAa,yBACbtC,MAAO,kBACPhC,aAAc,0BACdiC,OAAQ,8BACRH,mBAAoB,yBAEtB/kD,KAAM,CACJ2lD,QAAS,4BACTC,IAAK,yBAEP3vD,KAAM,CACJgxD,gBAAiB,qCACjB0B,iBAAkB,sCAClB1D,MAAO,0BACPiC,WAAY,gCACZJ,YAAa,iCACbnB,QAAS,4BACT1C,aAAc,kCACd2C,IAAK,wBACL8C,KAAM,CACJzD,MAAO,+BACPiC,WAAY,qCACZJ,YAAa,wCAGjB6G,QAAS,CACPrB,aAAc,QAEhBjG,YAAa,CACX3/C,KAAM,iCACNu+C,MAAO,kCACPiC,WAAY,wCACZJ,YAAa,0CAEf51C,UAAW,CACTq2C,YAAa,2BlBuEbqG,SmB7GmB,CACrBla,KAAM,CACJ6T,YAAa,cACbyB,YAAa,IACb/F,aAAc,IACd0C,QAAS,KAEXE,OAAQ,CACNmB,WAAY,uBACZ/B,MAAO,kBACPsC,YAAa,yBACbyB,YAAa,YACbrD,QAAS,eACT1C,aAAc,KAEhBgD,QAAS,CACPe,WAAY,uBACZ/B,MAAO,kBACPsC,YAAa,cACbyB,YAAa,IACbrD,QAAS,IACT1C,aAAc,KAEhBwK,OAAQ,CACNzG,WAAY,uBACZ/B,MAAO,kBACPsC,YAAa,yBACbyB,YAAa,YACbrD,QAAS,eACT1C,aAAc,KAEhB4K,aAAc,CACZtG,YAAa,yBACbyB,YAAa,aAEf8E,gBAAiB,CACfvG,YAAa,yBACbyB,YAAa,cnByEb+E,UoB9GoB,CACtBra,KAAM,CACJqR,mBAAoB,yBAEtBc,OAAQ,CACNmB,WAAY,uBACZO,YAAa,2BACbtC,MAAO,kBACP+D,YAAa,YACbrD,QAAS,gBAEXqI,WAAY,CACVhH,WAAY,uBACZqB,gBAAiB,6BACjBC,mBAAoB,yBACpBf,YAAa,2BACbtC,MAAO,kBACP4B,WAAY,wBACZ2B,cAAe,oBACf5C,IAAK,SACLD,QAAS,eACTX,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,OACRw0C,OAAQ,wBAGZ+I,YAAa,CACXjI,WAAY,OAEdkI,IAAK,CACHlH,WAAY,uBACZqB,gBAAiB,6BACjBC,mBAAoB,yBACpBrD,MAAO,kBACP4B,WAAY,wBACZ2B,cAAe,oBACfxD,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,OACRw0C,OAAQ,wBAGZiJ,SAAU,CACR5G,YAAa,2BACb5B,QAAS,gBAEXyI,WAAY,CACVpH,WAAY,uBACZO,YAAa,2BACbtC,MAAO,kBACPU,QAAS,gBAEX0I,aAAc,CACZrI,WAAY,OAEdyH,OAAQ,CACNzG,WAAY,uBACZO,YAAa,2BACbtC,MAAO,kBACP+D,YAAa,YACbrD,QAAS,gBAEX2I,UAAW,CACTrJ,MAAO,mBAETsJ,mBAAoB,SACpBC,gBAAiB,CACf77C,MAAO,MACPsyC,MAAO,mBAETwJ,SAAU,CACRxJ,MAAO,qBACP4B,WAAY,2BACZngD,KAAM,YAERgoD,YAAa,CACXhoD,KAAM,QAERioD,gBAAiB,CACftG,gBAAiB,6BACjBuG,wBAAyB,uBACzB3J,MAAO,qBACP4B,WAAY,eACZgI,mBAAoB,kBACpBnoD,KAAM,UACNu8C,aAAc,MACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZ7yD,OAAQ,CACNy8D,UAAW,SACXC,cAAe,CACb/H,WAAY,8BACZO,YAAa,gCACbtE,aAAc,iCACdgC,MAAO,yBACPC,OAAQ,2BAEV8J,eAAgB,CACdhI,WAAY,+BACZO,YAAa,iCACbtE,aAAc,kCACdgC,MAAO,0BACPC,OAAQ,2BACRS,QAAS,4BACTC,IAAK,UAEPqJ,KAAM,CACJ1H,YAAa,0BAEf2H,eAAgB,CACdvJ,QAAS,iBACTC,IAAK,cAEPuJ,WAAY,CACVlI,gBAAiB,iCACjBqB,mBAAoB,oCACpBC,wBAAyB,0CACzBtD,MAAO,sBACPiC,WAAY,4BACZsB,cAAe,+BACfC,mBAAoB,qCACpBv3C,UAAW,CACTq2C,YAAa,0BAEf5B,QAAS,wBACT1C,aAAc,gCAGlB4K,aAAc,CACZtG,YAAa,2BACbyB,YAAa,aAEf8E,gBAAiB,CACfvG,YAAa,2BACbyB,YAAa,aAEfvC,YAAa,CACXC,MAAO,CACLhT,KAAM,CACJ6T,YAAa,0BAEf2G,IAAK,CACHkB,kBAAmB,gBAErBjB,SAAU,CACRkB,oBAAqB,kBAGzBzG,KAAM,CACJlV,KAAM,CACJ6T,YAAa,iBAEf2G,IAAK,CACHkB,kBAAmB,iBAErBjB,SAAU,CACRkB,oBAAqB,oBpBxDzBxuC,OqB/GiB,CACnB6yB,KAAM,CACJsT,WAAY,6BACZO,YAAa,+BACbtC,MAAO,wBACPhC,aAAc,gCACdiC,OAAQ,0BAEVW,OAAQ,CACNF,QAAS,0BACTC,IAAK,UAEP/5D,MAAO,CACL65D,SAAU,UACVM,WAAY,OAEdC,QAAS,CACPN,QAAS,6EAEX8H,OAAQ,CACN9H,QAAS,4EACTC,IAAK,WrB2FL0J,QsBhHkB,CACpB5b,KAAM,CACJ6T,YAAa,0BAEftB,QAAS,CACPe,WAAY,uBACZ/B,MAAO,gBAETsK,WAAY,CACVhE,OAAQ,SACR5F,QAAS,SACTM,QAAS,CACPN,QAAS,aAGb6J,SAAU,CACRjE,OAAQ,SACR5F,QAAS,WACTM,QAAS,CACPN,QAAS,ctB8FX8J,KuBjHe,CACjB/b,KAAM,CACJsT,WAAY,2BACZO,YAAa,2BACb5B,QAAS,SACT1C,aAAc,sBAEhBhtD,KAAM,CACJgtD,aAAc,0BACd0C,QAAS,SACTj/C,KAAM,OACNs+C,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,yBvBkGVwK,OwBlHiB,CACnBhc,KAAM,CACJsT,WAAY,6BACZO,YAAa,+BACbtC,MAAO,wBACPC,OAAQ,0BAEVW,OAAQ,CACNF,QAAS,2BAEX95D,MAAO,CACL65D,SAAU,SACVM,WAAY,OAEdC,QAAS,CACPN,QAAS,6EAEX8H,OAAQ,CACN9H,QAAS,4BxBiGTgK,OyBnHiB,CACnBC,QAAS,CACP5I,WAAY,uBACZO,YAAa,yBACbtE,aAAc,2BAEhB4M,YAAa,CACX5K,MAAO,qBACP4B,WAAY,eACZC,YAAa,mBAEfpjC,QAAS,CACPsjC,WAAY,8BACZO,YAAa,gCACbtE,aAAc,iCACdgC,MAAO,yBACPC,OAAQ,0BACRS,QAAS,kBAEXmK,cAAe,CACb7I,gBAAiB,iCACjBhC,MAAO,sBACPiC,WAAY,4BACZvB,QAAS,wBACT1C,aAAc,+BAEhBgD,QAAS,CACPe,WAAY,uBACZO,YAAa,yBACbtC,MAAO,kBACPhC,aAAc,4BzBsFd8M,S0BpHmB,CACrBrc,KAAM,CACJsT,WAAY,uBACZO,YAAa,yBACbtE,aAAc,0BACdgC,MAAO,kBACPU,QAAS,+BACTZ,mBAAoB,yBAEtBiL,OAAQ,CACNhJ,WAAY,uBACZqB,gBAAiB,6BACjBpD,MAAO,kBACP4B,WAAY,wBACZ5D,aAAc,0BACd+F,YAAa,MACbzB,YAAa,cACb5B,QAAS,iBACTC,IAAK,SACLI,WAAY,MACZhB,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZgE,WAAY,CACVjE,MAAO,qBACP4B,WAAY,4BAEdZ,QAAS,CACPN,QAAS,M1BoFTsK,W2BrHqB,CACvBvc,KAAM,CACJsT,WAAY,uBACZO,YAAa,yBACbtC,MAAO,kBACPhC,aAAc,0BACd8B,mBAAoB,yBAEtBc,OAAQ,CACNmB,WAAY,cACZ/B,MAAO,eACPU,QAAS,WACT4B,YAAa,QACbyB,YAAa,IACb/F,aAAc,IACd2C,IAAK,UAEPK,QAAS,CACPiK,qBAAsB,kBACtBvK,QAAS,+BACTC,IAAK,QAEPuK,KAAM,CACJxK,QAAS,OACTC,IAAK,OACL2B,YAAa,yBACb6C,KAAM,CACJxE,IAAK,WAGTwK,SAAU,CACRxK,IAAK,UAEPyK,YAAa,CACX39C,OAAQ,WAEV49C,MAAO,CACL1K,IAAK,W3BiFL2K,U4BtHoB,CACtB7c,KAAM,CACJuR,MAAO,iCACPiC,WAAY,uCACZsJ,aAAc,yCACdzL,mBAAoB,OACpB0L,UAAW,yBACXC,IAAK,yBACLhL,SAAU,UACVM,WAAY,OAEdjxB,MAAO,CACL47B,WAAY,SACZC,cAAe,2B5B0GfC,W6BvHqB,CACvBnd,KAAM,CACJuR,MAAO,iCACPiC,WAAY,uCACZJ,YAAa,wCACb0J,aAAc,yCACdzL,mBAAoB,OACpB0L,UAAW,yBACXK,UAAW,yBACX9K,WAAY,MACZ+K,OAAQ,CACNrL,SAAU,UACVM,WAAY,QAGhBgL,KAAM,CACJD,OAAQ,CACNL,IAAK,aAGTO,GAAI,CACFl8B,MAAO,CACL47B,WAAY,SACZC,cAAe,0BAEjBG,OAAQ,CACNL,IAAK,2BAGTQ,GAAI,CACFjO,aAAc,qBACd8N,OAAQ,CACN/J,WAAY,0BACZrB,QAAS,gB7BuFXwL,S8BxHmB,CACrBzd,KAAM,CACJsV,YAAa,MACbzB,YAAa,yBACbtE,aAAc,0BACd8B,mBAAoB,yBAEtBqM,UAAW,CACTpK,WAAY,2BACZqB,gBAAiB,2BACjBpD,MAAO,gBACP4B,WAAY,cACZngD,KAAM,OACN6mD,OAAQ,SACR8D,KAAM,CACJpO,aAAc,OAEhB76D,KAAM,CACJ66D,aAAc,OAEhB+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZoM,QAAS,CACP5qD,KAAM,UAER6qD,kBAAmB,CACjBvK,WAAY,uBACZrB,QAAS,gBAEX6L,mBAAoB,CAClB9qD,KAAM,OACNu8C,aAAc,0BACdsK,OAAQ,SACRvI,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZuM,uBAAwB,CACtB/qD,KAAM,QAERulD,QAAS,CACPjF,WAAY,qBACZ/B,MAAO,gBACPU,QAAS,QAEXyG,cAAe,CACbxG,IAAK,SACLD,QAAS,QAEX+L,gBAAiB,CACf/+C,MAAO,OACPD,OAAQ,OACRi2C,iBAAkB,kBAClB1F,aAAc,MACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZyM,mBAAoB,CAClB3K,WAAY,sBAEd4K,qBAAsB,CACpB5K,WAAY,2BACZqB,gBAAiB,2BACjBM,iBAAkB,4BAEpBkJ,YAAa,CACXnrD,KAAM,OACN6mD,OAAQ,SACRvG,WAAY,2BACZqB,gBAAiB,2BACjBpD,MAAO,eACP4B,WAAY,cACZ5D,aAAc,MACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZ4M,gBAAiB,CACfprD,KAAM,UAER+/C,YAAa,CACXC,MAAO,CACL8K,mBAAoB,CAClBnJ,gBAAiB,gBACjBpD,MAAO,gBACP4B,WAAY,iBAEd6K,gBAAiB,CACf1K,WAAY,gBACZqB,gBAAiB,kBAGrBO,KAAM,CACJ4I,mBAAoB,CAClBnJ,gBAAiB,gBACjBpD,MAAO,gBACP4B,WAAY,eAEd6K,gBAAiB,CACf1K,WAAY,gBACZqB,gBAAiB,oB9BErB0J,U+BzHoB,CACtBrJ,KAAM,CACJzD,MAAO,4B/BwHPgI,MgC1HgB,CAClBvZ,KAAM,CACJqR,mBAAoB,yBAEtBqI,QAAS,CACP1E,KAAM,CACJhiD,KAAM,UAERw/C,KAAM,CACJc,WAAY,oBACZ/B,MAAO,iBAGX2K,QAAS,CACPoC,SAAU,CACRC,KAAM,OACNC,MAAO,OACPxB,IAAK,OACLyB,OAAQ,QAEVC,KAAM,MACNpL,WAAY,wBACZO,YAAa,wBACbyB,YAAa,MACb/F,aAAc,OACd0C,QAAS,QACTC,IAAK,UAEPzL,OAAQ,CACNkO,gBAAiB,wBACjBpD,MAAO,eACP4B,WAAY,cACZngD,KAAM,OACN0+C,SAAU,SACVnC,aAAc,MACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,yBhCmFVmN,aiC3HuB,CACzBnpE,OAAQ,CACNwd,KAAM,OACN4rD,UAAW,OACXtL,WAAY,wBACZqB,gBAAiB,wBACjBd,YAAa,QACbC,iBAAkB,QAClBwB,YAAa,IACb/F,aAAc,MACd8B,mBAAoB,wBACpBC,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,wBACPv0C,OAAQ,sBACRw0C,OAAQ,yBjC4GVqN,ckC5HwB,CAC1B7e,KAAM,CACJiS,QAAS,gDACT1C,aAAc,0BACd2C,IAAK,UAEPh6D,KAAM,CACJo6D,WAAY,OAEd0C,KAAM,CACJhiD,KAAM,QAER+/C,YAAa,CACXC,MAAO,CACL0D,KAAM,CACJpD,WAAY,gDACZO,YAAa,aACbtC,MAAO,aACPC,OAAQ,mEAEViF,QAAS,CACPnD,WAAY,iDACZO,YAAa,cACbtC,MAAO,cACPC,OAAQ,oEAEV79C,KAAM,CACJ2/C,WAAY,iDACZO,YAAa,eACbtC,MAAO,eACPC,OAAQ,qEAEVt7D,MAAO,CACLo9D,WAAY,+CACZO,YAAa,YACbtC,MAAO,YACPC,OAAQ,kEAEVgF,UAAW,CACTlD,WAAY,gBACZO,YAAa,gBACbtC,MAAO,gBACPC,OAAQ,sEAEVoF,SAAU,CACRtD,WAAY,gBACZO,YAAa,gBACbtC,MAAO,eACPC,OAAQ,uEAGZ0D,KAAM,CACJwB,KAAM,CACJpD,WAAY,kDACZO,YAAa,kDACbtC,MAAO,aACPC,OAAQ,mEAEViF,QAAS,CACPnD,WAAY,mDACZO,YAAa,mDACbtC,MAAO,cACPC,OAAQ,oEAEV79C,KAAM,CACJ2/C,WAAY,oDACZO,YAAa,oDACbtC,MAAO,eACPC,OAAQ,qEAEVt7D,MAAO,CACLo9D,WAAY,iDACZO,YAAa,iDACbtC,MAAO,YACPC,OAAQ,kEAEVgF,UAAW,CACTlD,WAAY,gBACZO,YAAa,gBACbtC,MAAO,gBACPC,OAAQ,sEAEVoF,SAAU,CACRtD,WAAY,cACZO,YAAa,gBACbtC,MAAO,gBACPC,OAAQ,yElCuCZsN,QmC7HkB,CACpB9e,KAAM,CACJiS,QAAS,gDACT1C,aAAc,0BACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,uBAEVH,mBAAoB,yBAEtBzM,QAAS,CACP+P,gBAAiB,6BACjBxB,WAAY,0BnC+GZ4L,WoC9HqB,CACvB/e,KAAM,CACJsT,WAAY,0BACZG,mBAAoB,mCACpBC,iBAAkB,iCAClBE,sBAAuB,uCACvBC,YAAa,4BACbC,iBAAkB,kCAClBC,iBAAkB,kCAClBC,mBAAoB,oCACpBzC,MAAO,qBACP0C,cAAe,8BACfC,iBAAkB,iCAClB1C,OAAQ,sBACRM,SAAU,yBACVC,SAAU,yBACVxC,aAAc,6BACd+B,UAAW,CACTryC,MAAO,gCACPwe,MAAO,gCACP8zB,MAAO,gCACPv0C,OAAQ,iCACRw0C,OAAQ,kCAEVH,mBAAoB,oCAEtB6E,KAAM,CACJ3G,aAAc,sBAEhBwD,YAAa,CACXC,MAAO,CACLkD,KAAM,CACJ3C,gBAAiB,gBACjBhC,MAAO,kBAGX2D,KAAM,CACJgB,KAAM,CACJ3C,gBAAiB,gBACjBhC,MAAO,kBpCwFXyN,WqC/HqB,CACvBC,MAAO,CACL3L,WAAY,0BACZO,YAAa,4BACbtC,MAAO,0BACPhC,aAAc,6BACd0C,QAAS,SACTqE,SAAU,WrCyHV4I,YsChIsB,CACxBlf,KAAM,CACJqR,mBAAoB,yBAEtB0F,OAAQ,CACN93C,MAAO,SACPswC,aAAc,6BACd4P,gBAAiB,0BAEnBpM,YAAa,CACXC,MAAO,CACL+D,OAAQ,CACNzD,WAAY,cACZqB,gBAAiB,gBACjBM,iBAAkB,gBAClBpB,YAAa,4BACbC,iBAAkB,4BAClBmC,kBAAmB,4BACnB1E,MAAO,gBACP4B,WAAY,gBACZC,YAAa,kBAGjB8B,KAAM,CACJ6B,OAAQ,CACNzD,WAAY,cACZqB,gBAAiB,gBACjBM,iBAAkB,gBAClBpB,YAAa,4BACbC,iBAAkB,4BAClBmC,kBAAmB,4BACnB1E,MAAO,gBACP4B,WAAY,gBACZC,YAAa,oBtCgGjBgM,SuCjImB,CACrBpf,KAAM,CACJkS,IAAK,UAEP7wB,MAAO,CACLpiB,MAAO,SACPywC,GAAI,CACFzwC,MAAO,QAET2wC,GAAI,CACF3wC,MAAO,UvCwHTogD,UwClIoB,CACtBrf,KAAM,CACJsT,WAAY,0BACZG,mBAAoB,mCACpBC,iBAAkB,iCAClBC,sBAAuB,uCACvBC,sBAAuB,uCACvBC,YAAa,4BACbC,iBAAkB,kCAClBC,iBAAkB,kCAClBC,mBAAoB,oCACpBzC,MAAO,qBACP0C,cAAe,8BACfC,iBAAkB,iCAClBC,wBAAyB,yCACzB3C,OAAQ,sBACRM,SAAU,yBACVC,SAAU,yBACVxC,aAAc,6BACd+B,UAAW,CACTryC,MAAO,gCACPwe,MAAO,gCACP8zB,MAAO,gCACPv0C,OAAQ,iCACRw0C,OAAQ,kCAEVH,mBAAoB,mCACpB3B,GAAI,CACFsC,SAAU,4BACVF,SAAU,4BACVC,SAAU,6BAEZnC,GAAI,CACFoC,SAAU,4BACVF,SAAU,4BACVC,SAAU,+BxCgGZuN,KyCnIe,CACjBtf,KAAM,CACJqR,mBAAoB,wBACpBC,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZpuD,MAAO,CACLkwD,WAAY,mBAEdiM,MAAO,CACLjM,WAAY,0BAEdp7D,KAAM,CACJq5D,MAAO,uBzCkHPiO,Q0CpIkB,CACpBxf,KAAM,CACJsT,WAAY,0BACZG,mBAAoB,mCACpBI,YAAa,4BACbG,mBAAoB,oCACpBzC,MAAO,qBACP0C,cAAe,8BACfzC,OAAQ,sBACRjC,aAAc,6BACd8B,mBAAoB,oCAEtB/kD,KAAM,CACJ2lD,QAAS,iBACTC,IAAK,aACLC,OAAQ,CACNF,QAAS,0BAGbG,OAAQ,CACNmB,gBAAiB,iCACjBqB,mBAAoB,oCACpBC,wBAAyB,0CACzBtD,MAAO,sBACPiC,WAAY,4BACZsB,cAAe,+BACfC,mBAAoB,qCACpB9C,QAAS,wBACT1C,aAAc,+BAEhB8C,YAAa,CACXiB,WAAY,iCACZ/B,MAAO,4BACPe,WAAY,kCACZL,QAAS,+BAEXwN,UAAW,CACTlO,MAAO,sBACPmO,YAAa,YACbC,UAAW,YAEbxJ,aAAc,CACZlE,QAAS,yBAEXc,YAAa,CACXC,MAAO,CACLZ,OAAQ,CACNsJ,kBAAmB,iBAGvBxG,KAAM,CACJ9C,OAAQ,CACNsJ,kBAAmB,oB1CiFvBkE,S2CrImB,CACrB5f,KAAM,CACJsT,WAAY,uBACZO,YAAa,yBACbtE,aAAc,0BACdgC,MAAO,kBACPW,IAAK,SACL2N,oBAAqB,CACnB5N,QAAS,4BACTC,IAAK,yBAEP4N,sBAAuB,CACrB7N,QAAS,iBACTC,IAAK,UAEPb,mBAAoB,yBAEtB0O,SAAU,CACRxQ,aAAc,0BACd0C,QAAS,6BAEX1vD,KAAM,CACJgxD,gBAAiB,qCACjB0B,iBAAkB,sCAClB1D,MAAO,0BACPiC,WAAY,gCACZJ,YAAa,iCACbnB,QAAS,4BACT1C,aAAc,kCACd2C,IAAK,wBACL8C,KAAM,CACJzD,MAAO,+BACPiC,WAAY,qCACZJ,YAAa,wCAGjBpjC,QAAS,CACPiiC,QAAS,IACTqB,WAAY,uBACZO,YAAa,yBACbtE,aAAc,0BACdgC,MAAO,kBACPC,OAAQ,8BACRU,IAAK,UAEP+H,QAAS,CACPhI,QAAS,4BACTC,IAAK,yBAEPQ,aAAc,CACZT,QAAS,qCACTK,WAAY,yCACZgB,WAAY,yCACZ/B,MAAO,oCAEToB,YAAa,CACX3/C,KAAM,iCACNu+C,MAAO,kCACPiC,WAAY,wCACZJ,YAAa,0CAEf51C,UAAW,CACTq2C,YAAa,0BAEfmM,aAAc,CACZzQ,aAAc,MACdv8C,KAAM,UACNu+C,MAAO,qBACP4B,WAAY,2BACZwB,gBAAiB,6BACjBrD,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,yB3C2DVyO,K4CtIe,CACjBjgB,KAAM,CACJsT,WAAY,uBACZO,YAAa,yBACbtC,MAAO,kBACPhC,aAAc,0BACdiC,OAAQ,8BACRH,mBAAoB,yBAEtB/kD,KAAM,CACJ2lD,QAAS,4BACTC,IAAK,yBAEP3vD,KAAM,CACJgxD,gBAAiB,qCACjBhC,MAAO,0BACPiC,WAAY,gCACZvB,QAAS,4BACT1C,aAAc,kCACd2C,IAAK,wBACL8C,KAAM,CACJzD,MAAO,+BACPiC,WAAY,uCAGhBd,aAAc,CACZT,QAAS,qCACTK,WAAY,yCACZgB,WAAY,wCACZ/B,MAAO,oCAET/zC,UAAW,CACTq2C,YAAa,2B5CuGbqM,Q6CvIkB,CACpBlgB,KAAM,CACJsT,WAAY,uBACZO,YAAa,yBACbtE,aAAc,0BACdgC,MAAO,kBACPW,IAAK,SACLD,QAAS,iBACTZ,mBAAoB,yBAEtB0O,SAAU,CACRxQ,aAAc,0BACd0C,QAAS,6BAEX1vD,KAAM,CACJgxD,gBAAiB,qCACjB0B,iBAAkB,sCAClB1D,MAAO,0BACPiC,WAAY,gCACZJ,YAAa,iCACbnB,QAAS,4BACT1C,aAAc,kCACd2C,IAAK,wBACL8C,KAAM,CACJzD,MAAO,+BACPiC,WAAY,qCACZJ,YAAa,wCAGjB6G,QAAS,CACPhI,QAAS,4BACTC,IAAK,wBACLoB,WAAY,uBACZO,YAAa,yBACbtE,aAAc,0BACdiC,OAAQ,8BACRoH,aAAc,OACd5D,KAAM,CACJhiD,KAAM,iCACNu+C,MAAO,kCACPiC,WAAY,wCACZJ,YAAa,2CAGjB51C,UAAW,CACTq2C,YAAa,0BAEfmM,aAAc,CACZzQ,aAAc,MACdv8C,KAAM,UACNu+C,MAAO,qBACP4B,WAAY,2BACZwB,gBAAiB,6BACjBrD,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,yB7C8EV7+D,Q8CxIkB,CACpBqtD,KAAM,CACJuP,aAAc,0BACd+F,YAAa,MACbjE,mBAAoB,yBAEtBkB,QAAS,CACPN,QAAS,iBACTC,IAAK,SACLxC,GAAI,CACFuC,QAAS,qBAEXrC,GAAI,CACFqC,QAAS,sBAGb/5D,KAAM,CACJ85D,SAAU,OACVM,WAAY,MACZ5C,GAAI,CACFsC,SAAU,YAEZpC,GAAI,CACFoC,SAAU,aAGdgD,KAAM,CACJhiD,KAAM,WACN08C,GAAI,CACF18C,KAAM,QAER48C,GAAI,CACF58C,KAAM,YAGVmrD,YAAa,CACXl/C,MAAO,UACPD,OAAQ,UACRuwC,aAAc,MACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACPzgB,OAAQ,wBAGZmjD,UAAW,CACTntD,KAAM,OACN08C,GAAI,CACF18C,KAAM,YAER48C,GAAI,CACF58C,KAAM,aAGVqkD,SAAU,CACRrX,KAAM,CACJsV,YAAa,QAGjB8K,OAAQ,CACN7N,QAAS,CACPN,QAAS,MAGbc,YAAa,CACXC,MAAO,CACL0D,KAAM,CACJpD,WAAY,gDACZO,YAAa,aACbtC,MAAO,aACPC,OAAQ,kEACR2M,YAAa,CACXxJ,gBAAiB,aACjBrD,UAAW,CACTC,MAAO,aACPC,OAAQ,SAGZ6F,SAAU,CACR9F,MAAO,aACPsC,YAAa,cAEfuM,OAAQ,CACN7O,MAAO,eAGXkF,QAAS,CACPnD,WAAY,iDACZO,YAAa,cACbtC,MAAO,cACPC,OAAQ,mEACR2M,YAAa,CACXxJ,gBAAiB,cACjBrD,UAAW,CACTC,MAAO,cACPC,OAAQ,SAGZ6F,SAAU,CACR9F,MAAO,cACPsC,YAAa,eAEfuM,OAAQ,CACN7O,MAAO,gBAGX59C,KAAM,CACJ2/C,WAAY,iDACZO,YAAa,eACbtC,MAAO,eACPC,OAAQ,oEACR2M,YAAa,CACXxJ,gBAAiB,eACjBrD,UAAW,CACTC,MAAO,eACPC,OAAQ,SAGZ6F,SAAU,CACR9F,MAAO,eACPsC,YAAa,gBAEfuM,OAAQ,CACN7O,MAAO,iBAGXr7D,MAAO,CACLo9D,WAAY,+CACZO,YAAa,YACbtC,MAAO,YACPC,OAAQ,iEACR2M,YAAa,CACXxJ,gBAAiB,YACjBrD,UAAW,CACTC,MAAO,YACPC,OAAQ,SAGZ6F,SAAU,CACR9F,MAAO,YACPsC,YAAa,aAEfuM,OAAQ,CACN7O,MAAO,cAGXiF,UAAW,CACTlD,WAAY,gBACZO,YAAa,gBACbtC,MAAO,gBACPC,OAAQ,qEACR2M,YAAa,CACXxJ,gBAAiB,gBACjBrD,UAAW,CACTC,MAAO,gBACPC,OAAQ,SAGZ6F,SAAU,CACR9F,MAAO,gBACPsC,YAAa,iBAEfuM,OAAQ,CACN7O,MAAO,kBAGXqF,SAAU,CACRtD,WAAY,gBACZO,YAAa,gBACbtC,MAAO,eACPC,OAAQ,qEACR2M,YAAa,CACXxJ,gBAAiB,gBACjBrD,UAAW,CACTC,MAAO,eACPC,OAAQ,SAGZ6F,SAAU,CACR9F,MAAO,gBACPsC,YAAa,iBAEfuM,OAAQ,CACN7O,MAAO,mBAIb2D,KAAM,CACJwB,KAAM,CACJpD,WAAY,kDACZO,YAAa,kDACbtC,MAAO,aACPC,OAAQ,kEACR2M,YAAa,CACXxJ,gBAAiB,4BACjBrD,UAAW,CACTC,MAAO,aACPC,OAAQ,SAGZ6F,SAAU,CACR9F,MAAO,aACPsC,YAAa,cAEfuM,OAAQ,CACN7O,MAAO,eAGXkF,QAAS,CACPnD,WAAY,mDACZO,YAAa,mDACbtC,MAAO,cACPC,OAAQ,mEACR2M,YAAa,CACXxJ,gBAAiB,4BACjBrD,UAAW,CACTC,MAAO,cACPC,OAAQ,SAGZ6F,SAAU,CACR9F,MAAO,cACPsC,YAAa,eAEfuM,OAAQ,CACN7O,MAAO,gBAGX59C,KAAM,CACJ2/C,WAAY,oDACZO,YAAa,oDACbtC,MAAO,eACPC,OAAQ,oEACR2M,YAAa,CACXxJ,gBAAiB,4BACjBrD,UAAW,CACTC,MAAO,eACPC,OAAQ,SAGZ6F,SAAU,CACR9F,MAAO,eACPsC,YAAa,gBAEfuM,OAAQ,CACN7O,MAAO,iBAGXr7D,MAAO,CACLo9D,WAAY,iDACZO,YAAa,iDACbtC,MAAO,YACPC,OAAQ,iEACR2M,YAAa,CACXxJ,gBAAiB,4BACjBrD,UAAW,CACTC,MAAO,YACPC,OAAQ,SAGZ6F,SAAU,CACR9F,MAAO,YACPsC,YAAa,aAEfuM,OAAQ,CACN7O,MAAO,cAGXiF,UAAW,CACTlD,WAAY,gBACZO,YAAa,gBACbtC,MAAO,gBACPC,OAAQ,qEACR2M,YAAa,CACXxJ,gBAAiB,gBACjBrD,UAAW,CACTC,MAAO,gBACPC,OAAQ,SAGZ6F,SAAU,CACR9F,MAAO,gBACPsC,YAAa,iBAEfuM,OAAQ,CACN7O,MAAO,kBAGXqF,SAAU,CACRtD,WAAY,cACZO,YAAa,gBACbtC,MAAO,gBACPC,OAAQ,qEACR2M,YAAa,CACXxJ,gBAAiB,gBACjBrD,UAAW,CACTC,MAAO,gBACPC,OAAQ,SAGZ6F,SAAU,CACR9F,MAAO,cACPsC,YAAa,eAEfuM,OAAQ,CACN7O,MAAO,mB9CxKb8O,W+CzIqB,CACvBrgB,KAAM,CACJuP,aAAc,0BACd2C,IAAK,QAEPoO,OAAQ,CACNhN,WAAY,yBACZtgD,KAAM,UAER3O,MAAO,CACL6tD,IAAK,UAEPqO,YAAa,CACXvtD,KAAM,UAERwtD,UAAW,CACTxtD,KAAM,QAERytD,UAAW,CACTC,YAAa,SACbC,cAAe,S/CsHfC,YgD1IsB,CACxB5gB,KAAM,CACJsT,WAAY,0BACZG,mBAAoB,mCACpBC,iBAAkB,iCAClBC,sBAAuB,uCACvBC,sBAAuB,uCACvBC,YAAa,4BACbC,iBAAkB,kCAClBC,iBAAkB,kCAClBC,mBAAoB,oCACpBzC,MAAO,qBACP0C,cAAe,8BACfC,iBAAkB,iCAClBC,wBAAyB,yCACzB3C,OAAQ,sBACRM,SAAU,yBACVC,SAAU,yBACVxC,aAAc,6BACd+B,UAAW,CACTryC,MAAO,gCACPwe,MAAO,gCACP8zB,MAAO,gCACPv0C,OAAQ,iCACRw0C,OAAQ,kCAEVH,mBAAoB,mCACpB3B,GAAI,CACFsC,SAAU,4BACVF,SAAU,4BACVC,SAAU,6BAEZnC,GAAI,CACFoC,SAAU,4BACVF,SAAU,4BACVC,SAAU,8BAGdiE,SAAU,CACR/2C,MAAO,SACPsyC,MAAO,2BAETvhC,QAAS,CACPsjC,WAAY,8BACZO,YAAa,gCACbtE,aAAc,iCACdgC,MAAO,yBACPC,OAAQ,2BAEVllD,KAAM,CACJ2lD,QAAS,iBACTC,IAAK,aACLC,OAAQ,CACNF,QAAS,0BAGbG,OAAQ,CACNmB,gBAAiB,iCACjBqB,mBAAoB,oCACpBC,wBAAyB,0CACzBtD,MAAO,sBACPiC,WAAY,4BACZsB,cAAe,+BACfC,mBAAoB,qCACpB9C,QAAS,wBACT1C,aAAc,8BACd2C,IAAK,UAEPG,YAAa,CACXiB,WAAY,iCACZ/B,MAAO,4BACPe,WAAY,kCACZL,QAAS,+BAEX4G,UAAW,CACTtH,MAAO,2BAET2E,KAAM,CACJ3G,aAAc,sBAEhB4G,aAAc,CACZlE,QAAS,0BhD0DT4O,UiD3IoB,CACtB7gB,KAAM,CACJkS,IAAK,YAEP4O,SAAU,CACR5O,IAAK,WjDuIL6O,kBkD5I4B,CAC9B/gB,KAAM,CACJ6Z,OAAQ,UACRxI,mBAAoB,yBAEtB5vB,KAAM,CACJ6xB,WAAY,uBACZqB,gBAAiB,6BACjBC,mBAAoB,yBACpBf,YAAa,yBACbtC,MAAO,kBACPuD,cAAe,oBACf3B,WAAY,wBACZlB,QAAS,eACT+O,kBAAmB,4BACnBzR,aAAc,2BAEhB0R,iBAAkB,CAChB3N,WAAY,uBACZqB,gBAAiB,6BACjBd,YAAa,yBACbtC,MAAO,qBACP4B,WAAY,eACZngD,KAAM,SACNu8C,aAAc,MACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZ0P,UAAW,CACT3P,MAAO,yBACPhC,aAAc,0BACdvwC,OAAQ,SlDyGRmiD,amD7IuB,CACzBnhB,KAAM,CACJohB,QAAS,CACPniD,MAAO,MACPsyC,MAAO,0BnD0ITsB,QoD9IkB,CACpB7S,KAAM,CACJsT,WAAY,+BACZO,YAAa,iCACbtC,MAAO,0BACPhC,aAAc,kCACdiC,OAAQ,2BACRqI,OAAQ,OACRC,YAAa,WAEfvH,QAAS,CACPN,QAAS,8BpDoIToP,UqD/IoB,CACtBrhB,KAAM,CACJiS,QAAS,cACTC,IAAK,UACL3C,aAAc,0BACd+D,WAAY,uBACZ/B,MAAO,kBACPF,mBAAoB,yBAEtBqM,UAAW,CACTpK,WAAY,cACZqB,gBAAiB,6BACjBC,mBAAoB,yBACpBrD,MAAO,qBACP4B,WAAY,2BACZ2B,cAAe,oBACf71C,MAAO,SACPD,OAAQ,SACRuwC,aAAc,MACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZ8P,kBAAmB,CACjB/P,MAAO,sBAETgQ,gBAAiB,CACfziD,SAAU,WrDiHV0iD,SsDhJmB,CACrBC,MAAO,CACLnO,WAAY,yBACZ/D,aAAc,0BACdvwC,OAAQ,UAEVg2C,KAAM,CACJzD,MAAO,2BAETvhC,QAAS,CACPsjC,WAAY,+BACZO,YAAa,iCACbtE,aAAc,kCACdgC,MAAO,0BACPU,QAAS,4BACTT,OAAQ,4BAEVe,QAAS,CACPL,IAAK,UAEPa,YAAa,CACXC,MAAO,CACL0O,SAAU,CACRC,eAAgB,YAChBC,iBAAkB,cAClBC,iBAAkB,gBAGtB3M,KAAM,CACJwM,SAAU,CACRC,eAAgB,YAChBC,iBAAkB,cAClBC,iBAAkB,kBtDiHtBxM,MuDjJgB,CAClBrV,KAAM,CACJsT,WAAY,uBACZO,YAAa,yBACbtC,MAAO,kBACPhC,aAAc,2BAEhB4C,OAAQ,CACNmB,WAAY,cACZ/B,MAAO,eACPU,QAAS,WACT4B,YAAa,yBACbyB,YAAa,IACb/F,aAAc,KAEhBuS,iBAAkB,CAChB7P,QAAS,qBAEX95D,MAAO,CACLm6D,WAAY,OAEdC,QAAS,CACPN,QAAS,gCAEX8H,OAAQ,CACN9H,QAAS,iCvDyHT8P,UwDlJoB,CACtB/hB,KAAM,CACJkS,IAAK,SACLb,mBAAoB,yBAEtBgE,MAAO,CACL/B,WAAY,uBACZO,YAAa,yBACbyB,YAAa,MACb/D,MAAO,kBACPU,QAAS,kBACT1C,aAAc,0BACdmG,MAAO,CACLJ,YAAa,MACbK,gBAAiB,2BAEnBC,KAAM,CACJN,YAAa,MACbO,mBAAoB,4BAGxBtzD,KAAM,CACJgxD,gBAAiB,qCACjBhC,MAAO,0BACPiC,WAAY,gCACZtB,IAAK,SACLD,QAAS,4BACT1C,aAAc,0BACdyF,KAAM,CACJzD,MAAO,+BACPiC,WAAY,uCAGhByG,QAAS,CACP+H,OAAQ,QAEVrP,YAAa,CACXpB,MAAO,kCACPiC,WAAY,0CxD6GZyO,SyDnJmB,CACrBjiB,KAAM,CACJkS,IAAK,YAEP4O,SAAU,CACR5O,IAAK,WzD+ILyK,Y0DpJsB,CACxB3c,KAAM,CACJsT,WAAY,yBACZ/D,aAAc,0BACdvwC,OAAQ,WAEV5b,MAAO,CACLkwD,WAAY,mBAEdjvD,MAAO,CACLktD,MAAO,2BACPS,SAAU,UACVM,WAAY,Q1DyIZ4P,gB2DrJ0B,CAC5BnP,YAAa,CACXC,MAAO,CACLhT,KAAM,CACJ,UAAW,YACX,UAAW,aACX,UAAW,cACX,UAAW,iBAGfkV,KAAM,CACJlV,KAAM,CACJ,UAAW,YACX,UAAW,aACX,UAAW,cACX,UAAW,mB3DuIfmiB,Y4DtJsB,CACxBniB,KAAM,CACJ/gC,MAAO,UACPD,OAAQ,UACRs0C,WAAY,0BACZyF,kBAAmB,kBACnBC,uBAAwB,wBACxBvF,mBAAoB,mCACpBC,iBAAkB,iCAClBG,YAAa,4BACbC,iBAAkB,kCAClBC,iBAAkB,4BAClBkF,mBAAoB,kBACpBC,wBAAyB,wBACzBC,wBAAyB,kBACzBC,2BAA4B,4BAC5BpF,mBAAoB,oCACpBxC,OAAQ,sBACRF,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,uBAEVH,mBAAoB,mCACpB3B,GAAI,CACFzwC,MAAO,OACPD,OAAQ,QAEV4wC,GAAI,CACF3wC,MAAO,SACPD,OAAQ,WAGZg2C,KAAM,CACJhiD,KAAM,UACNqmD,aAAc,2BACdC,kBAAmB,2BACnBrF,cAAe,8BACfvE,GAAI,CACF18C,KAAM,UAER48C,GAAI,CACF58C,KAAM,U5D2GRovD,O6DvJiB,CACnBpiB,KAAM,CACJkS,IAAK,UACLb,mBAAoB,wBACpBC,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZwD,KAAM,CACJhiD,KAAM,OACNu+C,MAAO,qBACP4B,WAAY,kBACZC,YAAa,oB7DwIbiP,Y8DxJsB,CACxBriB,KAAM,CACJqR,mBAAoB,yBAEtBiR,IAAK,CACHtvD,KAAM,MACNu8C,aAAc,qBACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZuB,YAAa,CACXC,MAAO,CACLsP,IAAK,CACHhP,WAAY,kBAGhB4B,KAAM,CACJoN,IAAK,CACHhP,WAAY,oB9DkIhBV,O+DzJiB,CACnB5S,KAAM,CACJsT,WAAY,0BACZG,mBAAoB,mCACpBC,iBAAkB,iCAClBC,sBAAuB,uCACvBC,sBAAuB,uCACvBC,YAAa,4BACbC,iBAAkB,kCAClBC,iBAAkB,kCAClBC,mBAAoB,oCACpBzC,MAAO,qBACP0C,cAAe,8BACfC,iBAAkB,iCAClBC,wBAAyB,yCACzB3C,OAAQ,sBACRM,SAAU,yBACVC,SAAU,yBACVxC,aAAc,6BACd+B,UAAW,CACTryC,MAAO,gCACPwe,MAAO,gCACP8zB,MAAO,gCACPv0C,OAAQ,iCACRw0C,OAAQ,kCAEVH,mBAAoB,mCACpB3B,GAAI,CACFsC,SAAU,4BACVF,SAAU,4BACVC,SAAU,6BAEZnC,GAAI,CACFoC,SAAU,4BACVF,SAAU,4BACVC,SAAU,8BAGdiE,SAAU,CACR/2C,MAAO,SACPsyC,MAAO,2BAETvhC,QAAS,CACPsjC,WAAY,8BACZO,YAAa,gCACbtE,aAAc,iCACdgC,MAAO,yBACPC,OAAQ,2BAEVllD,KAAM,CACJ2lD,QAAS,iBACTC,IAAK,aACLC,OAAQ,CACNF,QAAS,0BAGbG,OAAQ,CACNmB,gBAAiB,iCACjBqB,mBAAoB,oCACpBC,wBAAyB,0CACzBtD,MAAO,sBACPiC,WAAY,4BACZsB,cAAe,+BACfC,mBAAoB,qCACpB9C,QAAS,wBACT1C,aAAc,+BAEhB8C,YAAa,CACXiB,WAAY,iCACZ/B,MAAO,4BACPe,WAAY,kCACZL,QAAS,+BAEX4G,UAAW,CACTtH,MAAO,2BAETkO,UAAW,CACTlO,MAAO,sBACPmO,YAAa,YACbC,UAAW,YAEbxJ,aAAc,CACZlE,QAAS,0B/DwETsQ,agE1JuB,CACzBviB,KAAM,CACJuP,aAAc,8BAEhBwD,YAAa,CACXC,MAAO,CACLhT,KAAM,CACJgU,mBAAoB,sCAGxBkB,KAAM,CACJlV,KAAM,CACJgU,mBAAoB,wChE+IxBwO,SiE3JmB,CACrBxiB,KAAM,CACJuP,aAAc,2BAEhBwD,YAAa,CACXC,MAAO,CACLhT,KAAM,CACJsT,WAAY,gBACZmP,oBAAqB,0BAGzBvN,KAAM,CACJlV,KAAM,CACJsT,WAAY,4BACZmP,oBAAqB,gCjE8IzBC,OkE5JiB,CACnB1iB,KAAM,CACJqR,mBAAoB,yBAEtBsR,MAAO,CACLrP,WAAY,yBACZ/D,aAAc,0BACdv8C,KAAM,OAERusD,MAAO,CACLjM,WAAY,mBAEd99D,OAAQ,CACNypB,MAAO,OACPD,OAAQ,OACRuwC,aAAc,MACd+D,WAAY,yBACZqB,gBAAiB,yBACjBpC,QAAS,CACPhD,aAAc,MACdoF,gBAAiB,uBACjB11C,MAAO,OACPD,OAAQ,OACRwyC,OAAQ,8EAEVF,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZuB,YAAa,CACXC,MAAO,CACLx9D,OAAQ,CACNotE,kBAAmB,gBAGvB1N,KAAM,CACJ1/D,OAAQ,CACNotE,kBAAmB,oBlEoHvBC,UmE7JoB,CACtB7iB,KAAM,CACJkS,IAAK,SACLb,mBAAoB,0BnE2JpByR,SoE9JmB,CACrB9iB,KAAM,CACJsT,WAAY,uBACZO,YAAa,yBACbtC,MAAO,kBACPF,mBAAoB,yBAEtBwI,OAAQ,CACNvG,WAAY,0BAEd99D,OAAQ,CACNwd,KAAM,OACNsgD,WAAY,cACZ/D,aAAc,0BACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,yBpE4IVuR,YqE/JsB,CACxB/iB,KAAM,CACJuP,aAAc,6BACdyH,oBAAqB,OACrBE,aAAc,wGrE4Jd8L,QsEhKkB,CACpBhjB,KAAM,CACJqR,mBAAoB,yBAEtB7zC,UAAW,CACT81C,WAAY,yBACZ2B,iBAAkB,kBAClB4C,OAAQ,iBACR7kD,KAAM,OAERu0B,KAAM,CACJ0qB,QAAS,SACTC,IAAK,QAEP+Q,WAAY,CACVhR,QAAS,IACT1C,aAAc,0BACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,uBAEVU,IAAK,UAEPgR,UAAW,CACT3R,MAAO,qBACP6B,YAAa,kBACbd,WAAY,OAEd6Q,WAAY,CACV7P,WAAY,uBACZ2B,iBAAkB,uBAClBpB,YAAa,yBACboC,kBAAmB,yBACnB1E,MAAO,qBACP6B,YAAa,kBACbpgD,KAAM,OACNg/C,SAAU,WACVM,WAAY,MACZ/C,aAAc,MACdiC,OAAQ,8EAEV4R,WAAY,CACVnR,QAAS,mCAEXoR,UAAW,CACT/P,WAAY,uBACZ/B,MAAO,kBACPU,QAAS,IACT+P,OAAQ,StE8GR1hC,MuEjKgB,CAClB0f,KAAM,CACJqR,mBAAoB,yBAEtB7zC,UAAW,CACT81C,WAAY,0BAEdgQ,SAAU,CACR/T,aAAc,0BACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,uBAEVU,IAAK,UAEPqR,UAAW,CACThS,MAAO,qBACP6B,YAAa,kBACbd,WAAY,OAEdkR,WAAY,CACVlQ,WAAY,uBACZ2B,iBAAkB,uBAClBpB,YAAa,yBACboC,kBAAmB,yBACnB1E,MAAO,qBACP6B,YAAa,kBACbpgD,KAAM,OACNg/C,SAAU,WACVM,WAAY,MACZ/C,aAAc,MACdiC,OAAQ,+EvEgIRiS,QwElKkB,CACpBzjB,KAAM,CACJqR,mBAAoB,yBAEtBqS,QAAS,CACPpO,YAAa,YACbhC,WAAY,uBACZO,YAAa,0BAEftxD,KAAM,CACJ+wD,WAAY,cACZqB,gBAAiB,cACjBM,iBAAkB,cAClBK,YAAa,YACbzB,YAAa,yBACbC,iBAAkB,yBAClBmC,kBAAmB,kBACnB1E,MAAO,qBACP4B,WAAY,eACZC,YAAa,kBACbnB,QAAS,gBACTK,WAAY,MACZuF,OAAQ,aACR3F,IAAK,SACLZ,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZmS,SAAU,CACRpS,MAAO,qBACP4B,WAAY,eACZC,YAAa,mBAEfwQ,UAAW,CACT5kD,OAAQ,MACRy/C,OAAQ,OACRnL,WAAY,oBxE2HZuQ,KyEnKe,CACjB7jB,KAAM,CACJqR,mBAAoB,yBAEtBqS,QAAS,CACPpO,YAAa,YACbhC,WAAY,uBACZO,YAAa,0BAEfiQ,IAAK,CACHxQ,WAAY,cACZqB,gBAAiB,cACjBM,iBAAkB,cAClBK,YAAa,YACbzB,YAAa,yBACbC,iBAAkB,yBAClBmC,kBAAmB,kBACnB1E,MAAO,qBACP4B,WAAY,eACZC,YAAa,kBACbnB,QAAS,gBACTK,WAAY,MACZuF,OAAQ,aACR3F,IAAK,SACLZ,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,OACRw0C,OAAQ,wBAGZuS,SAAU,CACRzQ,WAAY,uBACZ/B,MAAO,kBACPU,QAAS,sCACTX,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,8BAGZkM,UAAW,CACTpK,WAAY,uBACZ/B,MAAO,qBACP4B,WAAY,eACZl0C,MAAO,SACPqyC,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,OACRw0C,OAAQ,wBAGZoS,UAAW,CACT5kD,OAAQ,MACRy/C,OAAQ,OACRnL,WAAY,mBAEdP,YAAa,CACXC,MAAO,CACL0K,UAAW,CACTlM,OAAQ,+CAGZ0D,KAAM,CACJwI,UAAW,CACTlM,OAAQ,kFzE8FZwS,Q0EpKkB,CACpBhkB,KAAM,CACJqR,mBAAoB,yBAEtB4S,QAAS,CACP3Q,WAAY,uBACZO,YAAa,0BAEfiQ,IAAK,CACHjQ,YAAa,yBACboC,kBAAmB,kBACnB1E,MAAO,qBACP4B,WAAY,eACZC,YAAa,mBAEf8Q,SAAU,CACR5Q,WAAY,uBACZ/B,MAAO,mBAETmM,UAAW,CACTpK,WAAY,uBACZ/B,MAAO,qBACP4B,WAAY,gBAEdJ,YAAa,CACXC,MAAO,CACL0K,UAAW,CACTlM,OAAQ,+CAGZ0D,KAAM,CACJwI,UAAW,CACTlM,OAAQ,kF1EqIZ2S,S2ErKmB,CACrBnkB,KAAM,CACJsT,WAAY,0BACZG,mBAAoB,mCACpBC,iBAAkB,iCAClBE,sBAAuB,uCACvBC,YAAa,4BACbC,iBAAkB,kCAClBC,iBAAkB,kCAClBC,mBAAoB,oCACpBzC,MAAO,qBACP0C,cAAe,8BACfC,iBAAkB,iCAClBC,wBAAyB,yCACzB3C,OAAQ,sBACRM,SAAU,yBACVC,SAAU,yBACVxC,aAAc,6BACd+B,UAAW,CACTryC,MAAO,gCACPwe,MAAO,gCACP8zB,MAAO,gCACPv0C,OAAQ,iCACRw0C,OAAQ,kCAEVH,mBAAoB,mCACpB3B,GAAI,CACFsC,SAAU,4BACVF,SAAU,4BACVC,SAAU,6BAEZnC,GAAI,CACFoC,SAAU,4BACVF,SAAU,4BACVC,SAAU,+B3EoIZqS,W4EtKqB,CACvBpkB,KAAM,CACJsT,WAAY,uBACZO,YAAa,yBACbtC,MAAO,kBACPhC,aAAc,0BACdiC,OAAQ,8BACRH,mBAAoB,yBAEtB/kD,KAAM,CACJ2lD,QAAS,4BACTC,IAAK,yBAEP3vD,KAAM,CACJgxD,gBAAiB,qCACjB0B,iBAAkB,sCAClB1D,MAAO,0BACPiC,WAAY,gCACZJ,YAAa,iCACbnB,QAAS,4BACT1C,aAAc,kCACd2C,IAAK,wBACL8C,KAAM,CACJzD,MAAO,+BACPiC,WAAY,qCACZJ,YAAa,wCAGjB6G,QAAS,CACPrB,aAAc,QAEhBjG,YAAa,CACX3/C,KAAM,iCACNu+C,MAAO,kCACPiC,WAAY,wCACZJ,YAAa,0CAEf51C,UAAW,CACTq2C,YAAa,2B5EiIbwQ,I6EvKc,CAChBrkB,KAAM,CACJgS,SAAU,WACVM,WAAY,MACZL,QAAS,iBACTC,IAAK,UACL3C,aAAc,0BACdyH,oBAAqB,sBAEvBhC,KAAM,CACJhiD,KAAM,WAER+/C,YAAa,CACXC,MAAO,CACLpB,QAAS,CACP0B,WAAY,gBACZ/B,MAAO,iBAETiF,UAAW,CACTlD,WAAY,gBACZ/B,MAAO,iBAETkF,QAAS,CACPnD,WAAY,cACZ/B,MAAO,eAETmF,KAAM,CACJpD,WAAY,YACZ/B,MAAO,aAET59C,KAAM,CACJ2/C,WAAY,eACZ/B,MAAO,gBAEToF,OAAQ,CACNrD,WAAY,YACZ/B,MAAO,aAETqF,SAAU,CACRtD,WAAY,gBACZ/B,MAAO,gBAGX2D,KAAM,CACJtD,QAAS,CACP0B,WAAY,qDACZ/B,MAAO,iBAETiF,UAAW,CACTlD,WAAY,gBACZ/B,MAAO,iBAETkF,QAAS,CACPnD,WAAY,mDACZ/B,MAAO,eAETmF,KAAM,CACJpD,WAAY,iDACZ/B,MAAO,aAET59C,KAAM,CACJ2/C,WAAY,oDACZ/B,MAAO,gBAEToF,OAAQ,CACNrD,WAAY,iDACZ/B,MAAO,aAETqF,SAAU,CACRtD,WAAY,cACZ/B,MAAO,oB7EkGX+S,S8ExKmB,CACrBtkB,KAAM,CACJsT,WAAY,0BACZO,YAAa,4BACbtC,MAAO,qBACPvyC,OAAQ,QACRizC,QAAS,gDACT1C,aAAc,8BAEhBgV,OAAQ,CACNrS,IAAK,WAEPsS,gBAAiB,CACf3M,OAAQ,U9E4JRxrB,S+EzKmB,CACrB3zC,MAAO,CACL+rE,UAAW,QAEb5I,WAAY,CACV6I,aAAc,CACZzS,QAAS,WAGb6J,SAAU,CACR4I,aAAc,CACZzS,QAAS,WAGb0S,YAAa,CACX3xD,KAAM,WACNu8C,aAAc,MACd+F,YAAa,MACbhC,WAAY,uBACZO,YAAa,yBACbtB,QAAS,CACPhD,aAAc,MACdv8C,KAAM,WACNsgD,WAAY,kBACZsR,YAAa,+EAGjBC,eAAgB,CACdtT,MAAO,yBACPv+C,KAAM,Q/E6IN8xD,agF1KuB,CACzB9kB,KAAM,CACJiS,QAAS,cACT1C,aAAc,0BACd2C,IAAK,SACLI,WAAY,MACZmB,mBAAoB,mCACpBsR,oBAAqB,mCACrB9Q,cAAe,8BACfD,mBAAoB,oCACpB1C,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,uBAEVH,mBAAoB,mCACpB3B,GAAI,CACFsC,SAAU,4BACVC,QAAS,oBAEXrC,GAAI,CACFoC,SAAU,4BACVC,QAAS,qBAGb+C,KAAM,CACJf,cAAe,+BAEjB1B,QAAS,CACPgM,KAAM,UACNvB,IAAK,UACLgI,cAAe,4EAEjBjS,YAAa,CACXC,MAAO,CACLhT,KAAM,CACJsT,WAAY,gBACZyF,kBAAmB,gBACnBpE,gBAAiB,gBACjBd,YAAa,gBACbtC,MAAO,gBACP4B,WAAY,gBACZkG,aAAc,gBACdJ,mBAAoB,iBAEtB1G,QAAS,CACPwG,kBAAmB,eAErB/D,KAAM,CACJzD,MAAO,gBACP4B,WAAY,gBACZkG,aAAc,kBAGlBnE,KAAM,CACJlV,KAAM,CACJsT,WAAY,gBACZyF,kBAAmB,gBACnBpE,gBAAiB,gBACjBd,YAAa,gBACbtC,MAAO,gBACP4B,WAAY,gBACZkG,aAAc,cACdJ,mBAAoB,iBAEtB1G,QAAS,CACPwG,kBAAmB,iBAErB/D,KAAM,CACJzD,MAAO,gBACP4B,WAAY,gBACZkG,aAAc,kBhFkGlB4L,aiF3KuB,CACzBjlB,KAAM,CACJ/gC,MAAO,SACPD,OAAQ,SACRuwC,aAAc,OACd2C,IAAK,UACLV,OAAQ,sBACRF,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,uBAEV8D,YAAa,MACbzB,YAAa,cACbC,iBAAkB,cAClBmF,mBAAoB,cACpBC,wBAAyB,cACzBlF,mBAAoB,oCACpB3C,mBAAoB,mCACpB6T,cAAe,QAEjB1vE,OAAQ,CACN+5D,aAAc,MACdv8C,KAAM,QAER+/C,YAAa,CACXC,MAAO,CACLhT,KAAM,CACJsT,WAAY,gBACZG,mBAAoB,mCACpBkB,gBAAiB,gBACjBoE,kBAAmB,kBACnBC,uBAAwB,yBAE1BxjE,OAAQ,CACN89D,WAAY,cACZG,mBAAoB,8BACpBkB,gBAAiB,cACjBoE,kBAAmB,cACnBC,uBAAwB,cACxBzH,MAAO,qBACP4B,WAAY,eACZkG,aAAc,kBACdC,kBAAmB,0BAGvBpE,KAAM,CACJlV,KAAM,CACJsT,WAAY,gBACZG,mBAAoB,gBACpBkB,gBAAiB,gBACjBoE,kBAAmB,kBACnBC,uBAAwB,yBAE1BxjE,OAAQ,CACN89D,WAAY,gBACZG,mBAAoB,gBACpBkB,gBAAiB,gBACjBoE,kBAAmB,gBACnBC,uBAAwB,gBACxBzH,MAAO,gBACP4B,WAAY,gBACZkG,aAAc,kBACdC,kBAAmB,4BjF2GvB6L,KkF5Ke,CACjBnlB,KAAM,CACJsT,WAAY,uBACZ/B,MAAO,kBACPU,QAAS,OACTC,IAAK,MACL8P,OAAQ,OACR3Q,mBAAoB,yBAEtB5vB,KAAM,CACJwwB,QAAS,iBACT1C,aAAc,0BACdoF,gBAAiB,6BACjBC,mBAAoB,yBACpBrD,MAAO,eACP4B,WAAY,qBACZ2B,cAAe,oBACfxD,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,OACRw0C,OAAQ,uBAEVU,IAAK,WAEPkT,SAAU,CACR7T,MAAO,qBACP4B,WAAY,2BACZ2B,cAAe,qBAEjBmM,iBAAkB,CAChB1R,aAAc,MACdv8C,KAAM,UACN2hD,gBAAiB,6BACjBuG,wBAAyB,uBACzB3J,MAAO,qBACP4B,WAAY,2BACZgI,mBAAoB,kBACpB7J,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZwJ,YAAa,CACXhoD,KAAM,QAERrU,OAAQ,CACNk5D,OAAQ,iBlF0HRwN,WmF7KqB,CACvBrlB,KAAM,CACJsT,WAAY,0BACZG,mBAAoB,mCACpBC,iBAAkB,iCAClBC,sBAAuB,uCACvBC,sBAAuB,uCACvBC,YAAa,4BACbC,iBAAkB,kCAClBC,iBAAkB,kCAClBC,mBAAoB,oCACpBzC,MAAO,qBACP0C,cAAe,8BACfC,iBAAkB,iCAClBC,wBAAyB,yCACzB3C,OAAQ,sBACRM,SAAU,yBACVC,SAAU,yBACVxC,aAAc,6BACd+B,UAAW,CACTryC,MAAO,gCACPwe,MAAO,gCACP8zB,MAAO,gCACPv0C,OAAQ,iCACRw0C,OAAQ,kCAEVH,mBAAoB,mCACpB3B,GAAI,CACFsC,SAAU,4BACVF,SAAU,4BACVC,SAAU,6BAEZnC,GAAI,CACFoC,SAAU,4BACVF,SAAU,4BACVC,SAAU,8BAGdiE,SAAU,CACR/2C,MAAO,SACPsyC,MAAO,2BAETvhC,QAAS,CACPsjC,WAAY,8BACZO,YAAa,gCACbtE,aAAc,iCACdgC,MAAO,yBACPC,OAAQ,2BAEV2T,KAAM,CACJlT,QAAS,kBAEX4G,UAAW,CACTtH,MAAO,2BAET4E,aAAc,CACZlE,QAAS,yBAEXiE,KAAM,CACJ3G,aAAc,uBnFmHd+V,UoF9KoB,CACtBtlB,KAAM,CACJqR,mBAAoB,yBAEtBc,OAAQ,CACNmB,WAAY,uBACZO,YAAa,2BACbtC,MAAO,kBACP+D,YAAa,YACbrD,QAAS,gBAEXqI,WAAY,CACVhH,WAAY,uBACZqB,gBAAiB,6BACjBC,mBAAoB,yBACpBf,YAAa,2BACbtC,MAAO,kBACP4B,WAAY,wBACZ2B,cAAe,oBACf5C,IAAK,SACLD,QAAS,eACTX,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,OACRw0C,OAAQ,wBAGZ+I,YAAa,CACXjI,WAAY,OAEdkI,IAAK,CACHlH,WAAY,uBACZqB,gBAAiB,6BACjBC,mBAAoB,yBACpBrD,MAAO,kBACP4B,WAAY,wBACZ2B,cAAe,oBACfxD,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,OACRw0C,OAAQ,wBAGZiJ,SAAU,CACR5G,YAAa,2BACb5B,QAAS,eACTC,IAAK,UAEPwI,WAAY,CACVpH,WAAY,uBACZO,YAAa,2BACbtC,MAAO,kBACPU,QAAS,gBAEX0I,aAAc,CACZrI,WAAY,OAEdyH,OAAQ,CACNzG,WAAY,uBACZO,YAAa,2BACbtC,MAAO,kBACP+D,YAAa,YACbrD,QAAS,gBAEX4I,mBAAoB,SACpBC,gBAAiB,CACf77C,MAAO,MACPsyC,MAAO,mBAETwJ,SAAU,CACRxJ,MAAO,qBACP4B,WAAY,2BACZngD,KAAM,YAERgoD,YAAa,CACXhoD,KAAM,QAERiuD,iBAAkB,CAChBtM,gBAAiB,6BACjBuG,wBAAyB,uBACzB3J,MAAO,qBACP4B,WAAY,eACZgI,mBAAoB,kBACpBnoD,KAAM,UACNu8C,aAAc,MACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACP8zB,MAAO,qBACPv0C,OAAQ,sBACRw0C,OAAQ,wBAGZ2I,aAAc,CACZtG,YAAa,yBACbyB,YAAa,aAEf8E,gBAAiB,CACfvG,YAAa,yBACbyB,YAAa,aAEfvC,YAAa,CACXC,MAAO,CACLhT,KAAM,CACJ6T,YAAa,0BAEf4G,SAAU,CACRkB,oBAAqB,kBAGzBzG,KAAM,CACJlV,KAAM,CACJ6T,YAAa,iBAEf4G,SAAU,CACRkB,oBAAqB,oBpFwDzB4J,MqF/KgB,CAClBvlB,KAAM,CACJ/gC,MAAO,QACPswC,aAAc,0BACd+F,YAAa,MACbjE,mBAAoB,yBAEtB2D,KAAM,CACJhiD,KAAM,YAERu/C,QAAS,CACPN,QAAS,4BACTC,IAAK,UAEPh6D,KAAM,CACJg6D,IAAK,UAEPsT,QAAS,CACPlT,WAAY,MACZN,SAAU,QAEZyT,OAAQ,CACNnT,WAAY,MACZN,SAAU,YAEZmM,YAAa,CACXl/C,MAAO,UACPD,OAAQ,UACRuwC,aAAc,MACd+B,UAAW,CACTryC,MAAO,qBACPwe,MAAO,qBACPzgB,OAAQ,wBAGZmjD,UAAW,CACTntD,KAAM,QAER+/C,YAAa,CACXC,MAAO,CACL0L,KAAM,QACNhI,KAAM,CACJpD,WAAY,gDACZO,YAAa,aACbtC,MAAO,aACPmU,YAAa,gBACblU,OAAQ,kEACR2M,YAAa,CACXxJ,gBAAiB,aACjBrD,UAAW,CACTC,MAAO,aACPC,OAAQ,UAIdiF,QAAS,CACPnD,WAAY,iDACZO,YAAa,cACbtC,MAAO,cACPmU,YAAa,gBACblU,OAAQ,mEACR2M,YAAa,CACXxJ,gBAAiB,cACjBrD,UAAW,CACTC,MAAO,cACPC,OAAQ,UAId79C,KAAM,CACJ2/C,WAAY,iDACZO,YAAa,eACbtC,MAAO,eACPmU,YAAa,gBACblU,OAAQ,oEACR2M,YAAa,CACXxJ,gBAAiB,eACjBrD,UAAW,CACTC,MAAO,eACPC,OAAQ,UAIdt7D,MAAO,CACLo9D,WAAY,+CACZO,YAAa,YACbtC,MAAO,YACPmU,YAAa,gBACblU,OAAQ,iEACR2M,YAAa,CACXxJ,gBAAiB,YACjBrD,UAAW,CACTC,MAAO,YACPC,OAAQ,UAIdgF,UAAW,CACTlD,WAAY,gBACZO,YAAa,gBACbtC,MAAO,gBACPmU,YAAa,gBACblU,OAAQ,qEACR2M,YAAa,CACXxJ,gBAAiB,gBACjBrD,UAAW,CACTC,MAAO,gBACPC,OAAQ,UAIdoF,SAAU,CACRtD,WAAY,gBACZO,YAAa,gBACbtC,MAAO,eACPmU,YAAa,cACblU,OAAQ,qEACR2M,YAAa,CACXxJ,gBAAiB,gBACjBrD,UAAW,CACTC,MAAO,eACPC,OAAQ,WAKhB0D,KAAM,CACJwJ,KAAM,OACNhI,KAAM,CACJpD,WAAY,kDACZO,YAAa,kDACbtC,MAAO,aACPmU,YAAa,cACblU,OAAQ,kEACR2M,YAAa,CACXxJ,gBAAiB,4BACjBrD,UAAW,CACTC,MAAO,aACPC,OAAQ,UAIdiF,QAAS,CACPnD,WAAY,mDACZO,YAAa,mDACbtC,MAAO,cACPmU,YAAa,cACblU,OAAQ,mEACR2M,YAAa,CACXxJ,gBAAiB,4BACjBrD,UAAW,CACTC,MAAO,cACPC,OAAQ,UAId79C,KAAM,CACJ2/C,WAAY,oDACZO,YAAa,oDACbtC,MAAO,eACPmU,YAAa,cACblU,OAAQ,oEACR2M,YAAa,CACXxJ,gBAAiB,4BACjBrD,UAAW,CACTC,MAAO,eACPC,OAAQ,UAIdt7D,MAAO,CACLo9D,WAAY,iDACZO,YAAa,iDACbtC,MAAO,YACPmU,YAAa,cACblU,OAAQ,iEACR2M,YAAa,CACXxJ,gBAAiB,4BACjBrD,UAAW,CACTC,MAAO,YACPC,OAAQ,UAIdgF,UAAW,CACTlD,WAAY,gBACZO,YAAa,gBACbtC,MAAO,gBACPmU,YAAa,cACblU,OAAQ,qEACR2M,YAAa,CACXxJ,gBAAiB,gBACjBrD,UAAW,CACTC,MAAO,gBACPC,OAAQ,UAIdoF,SAAU,CACRtD,WAAY,cACZO,YAAa,gBACbtC,MAAO,gBACPmU,YAAa,gBACblU,OAAQ,qEACR2M,YAAa,CACXxJ,gBAAiB,gBACjBrD,UAAW,CACTC,MAAO,gBACPC,OAAQ,arFhChB0K,QsFhLkB,CACpBlc,KAAM,CACJsT,WAAY,uBACZO,YAAa,yBACbtE,aAAc,0BACdgC,MAAO,kBACPW,IAAK,SACLD,QAAS,YtF0KT0T,gBuFjL0B,CAC5BC,OAAQ,CACNpT,KAAM,CACJc,WAAY,uBACZ/B,MAAO,sBAETyD,KAAM,CACJhiD,KAAM,UvF2KR3M,QwFlLkB,CACpB25C,KAAM,CACJlhC,SAAU,UACV+6C,OAAQ,UACRrI,OAAQ,2BACRS,QAAS,iBACT1C,aAAc,mCAEhBwD,YAAa,CACXC,MAAO,CACLhT,KAAM,CACJsT,WAAY,gBACZ/B,MAAO,gBAGX2D,KAAM,CACJlV,KAAM,CACJsT,WAAY,gBACZ/B,MAAO,kBxFiKXsU,OyFnLiB,CACnB9S,YAAa,CACXC,MAAO,CACLhT,KAAM,CACJsT,WAAY,oBAGhB4B,KAAM,CACJlV,KAAM,CACJsT,WAAY,+DCNd,MAAOwS,UAEJp1E,KAAA+a,SAAW,IAAI5X,IAAe,CAErC8X,YAAYzV,GACVD,QAAQC,MAAM,mBAAqBA,GACnC4vE,GAAiBr6D,SAAS/W,KAAKwB,EACjC,sCCAK,IAAM6vE,GAAS,MAAhB,MAAOA,EAEXv1E,YACUyD,EACAK,GADA5D,KAAAuD,uBACAvD,KAAA4D,uBAEV,CAEA0xE,YAAY7uE,EAA+B6jD,GACzC,OAAO,IAAIhgD,KAAoBC,IAE3BA,EAASvG,KADIhE,KAAK4D,sBAAsBujB,iBAExC5c,EAAS5E,UAAQ,EAEvB,iDAdW0vE,GAAS1uE,MAAAC,MAAAD,MAAAE,KAAA,sCAATwuE,EAASluE,QAATkuE,EAASjuE,UAAAuU,WAFR,QAAM,SAEP05D,CAAS,+BCHf,IAAME,GAAmB,MAA1B,MAAOA,EAMTz1E,YACY0D,EACAw3D,EACAqB,GAFAr8D,KAAAwD,mBACAxD,KAAAg7D,KACAh7D,KAAAq8D,UACR,CAIJloD,WACInU,KAAKgJ,IAAMhJ,KAAKwD,iBAAiB4F,iBAAiBhE,UAAUC,IACxD,IAA6B,IAAzBrF,KAAKw1E,iBACDnwE,EACA,IAA0B,IAAtBA,EAAOhB,YAIP,GAHKrE,KAAKg7D,GAAGya,cAAc1oC,MAAM6gC,WAC7B5tE,KAAKg7D,GAAGya,cAAc1oC,MAAM6gC,SAAW,aAEtC5tE,KAAKwoB,EAAG,CACTxoB,KAAKwoB,EAAIxoB,KAAKq8D,SAASrC,cAAc,OACrCh6D,KAAKq8D,SAASrU,SAAShoD,KAAKwoB,EAAG,uBAE/B,MAAMktD,EAAW11E,KAAKq8D,SAASrC,cAAc,OAC7Ch6D,KAAKq8D,SAASrU,SAAS0tB,EAAU,+BAEjC11E,KAAKq8D,SAASjC,YAAYp6D,KAAKwoB,EAAGktD,GAClC11E,KAAKq8D,SAASjC,YAAYp6D,KAAKg7D,GAAGya,cAAez1E,KAAKwoB,EAC1D,OAEIxoB,KAAKwoB,IACLxoB,KAAKq8D,SAAS7B,YAAYx6D,KAAKg7D,GAAGya,cAAez1E,KAAKwoB,GACtDxoB,KAAKwoB,EAAI,OAMjC,CACAhO,cACQxa,KAAKgJ,KACLhJ,KAAKgJ,IAAIwK,aAEjB,iDA9CS+hE,GAAmB5uE,MAAAC,MAAAD,0BAAA,oCAAnB4uE,EAAmBjhE,UAAA,uBAAAC,OAAA,CAAAihE,gBAAA,6BAAnBD,CAAmB,+CCMzB,IAAM1hE,GAAe,MAAtB,MAAOA,EA2BF8hE,eACH31E,KAAKoU,QAAQC,KAAK,KACtB,CAGAvU,YACY0D,GAAAxD,KAAAwD,mBA9BLxD,KAAAgD,KAAO,SASPhD,KAAA41E,WAAa,GAGb51E,KAAA+V,UAAW,EAGX/V,KAAAw1E,iBAAkB,EAGlBx1E,KAAAoU,QAA6B,IAAIF,MAIjClU,KAAA61E,cAAe,CASlB,CAEJ1hE,WAEInU,KAAKgJ,IAAMhJ,KAAKwD,iBAAiB4F,iBAAiBhE,UAAUC,IACpDA,IAAmC,IAAzBrF,KAAKw1E,kBACfx1E,KAAK61E,aAAexwE,EAAOhB,aAIvC,CAEAmW,cACQxa,KAAKgJ,KACLhJ,KAAKgJ,IAAIwK,aAEjB,iDAlDSK,GAAelN,MAAAC,MAAA,oCAAfiN,EAAeS,UAAA,iBAAAC,OAAA,CAAAvR,KAAA,OAAA8yE,aAAA,eAAAC,OAAA,SAAAH,WAAA,aAAA7/D,SAAA,WAAAy/D,gBAAA,mBAAAhhE,QAAA,CAAAJ,QAAA,WAAA4hE,mBAAA/gE,GAAAR,MAAA,EAAAC,KAAA,GAAAC,OAAA,uFAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,YCd5BlO,MAAA,cAEIA,MAAA,0BAASmO,EAAA6gE,cAAc,GACvBhvE,MAAA,GACJA,eAJyFA,MAAAmO,EAAA8gE,YACpBjvE,MADlD,kBAAAmO,EAAA0gE,gBACkD7uE,CADf,OAAAmO,EAAA9R,KACe2D,CADD,WAAAmO,EAAAihE,OACCpvE,CADmB,UAAAmO,EAAAghE,aACnBnvE,CAAzC,UAAAA,MAAA,EAAAsQ,GAAAnC,EAAAiB,UAAyCpP,CAAD,WAAAmO,EAAAiB,UAAAjB,EAAA+gE,kEDavDhiE,CAAe,KENfoiE,GAAY,MAAnB,MAAOA,EAEXn2E,YAAoBo2E,GAAAl2E,KAAAk2E,mBAEpB,CAEAC,oBACEn2E,KAAKk2E,kBAAkB7rD,SACzB,iDARW4rD,GAAYtvE,MAAAC,MAAA,oCAAZqvE,EAAY3hE,UAAA,mBAAAG,MAAA,GAAAC,KAAA,EAAAC,OAAA,0NAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICJblO,MAJZ,UAIYA,CAJe,UAIfA,CAFyB,UAEzBA,CADc,QACVA,MAAA,gCAAqBA,QACzBA,MAAA,WACIA,MAAA,6DACAA,MAAA,QAAMA,MAAA,mEACVA,QAEAA,MAAA,QAAIA,MAAA,kBAAWA,QAEXA,MADJ,SACIA,CADC,UAC6CA,MAAA,sBAClDA,UAEIA,MADJ,SACIA,CADC,UACuCA,MAAA,eAC5CA,UAMIA,MADJ,WACIA,CADgB,mBAC8BA,MAAA,0BAASmO,EAAAqhE,mBAAmB,GAAExvE,MAAA,mBAO5FA,omCDrBasvE,CAAY,wBEHlB,IAAMG,GAAiB,MAAxB,MAAOA,oDAAiB,oCAAjBA,EAAiB9hE,UAAA,mBAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,mBAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICL9BlO,MAAA,SACIA,MAAA,qBAEAA,MAAA,SAAwBA,MAAA,UAC5BA,iBADOA,MAAA,GAAAA,MAAA,aAAAA,MAAA,EAAAsO,sDDEMmhE,CAAiB,qFEOvB,IAAMC,GAA2B,MAAlC,MAAOA,EAEXv2E,cAAgB,CAEhBqU,WACA,iDALWkiE,EAA2B,oCAA3BA,EAA2B/hE,UAAA,kCAAAG,MAAA,GAAAC,KAAA,EAAAC,OAAA,uHAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICVpClO,MAFJ,uBAEIA,CAFgB,UAEhBA,CADmC,WAEjCA,MAAA,mBACAA,MAAA,WAA0BA,MAAA,wBAA2CA,QACrEA,MAAA,WAAkBA,MAAA,wBAGxBA,qBALmBA,MAAA,GAAkBA,MAAlB,gBAAkBA,CAAD,eACJA,MAAA,GAAAA,YAAA,kCACRA,MAAA,GAAAA,YAAA,6PDOX0vE,CAA2B,KEZjC,IAAKC,GAAZ,SAAYA,GACRA,WAAAC,MAAA,WADQD,CAEZ,CAFA,CAAYA,IAAa,ICAbE,GAAZ,SAAYA,GACRA,WAAAC,KAAA,UACAD,IAAAE,OAAA,YACAF,IAAAG,SAAA,cACAH,IAAAI,OAAA,YACAJ,IAAAK,UAAA,eACAL,IAAAM,mBAAA,wBACAN,IAAAO,WAAA,gBACAP,IAAAQ,gBAAA,qBARQR,CASZ,CATA,CAAYA,IAAM,ICKX,IAAMS,GAAsB,MAA7B,MAAOA,EADbn3E,cAIYE,KAAAk3E,uBAAuC,IAAI/zE,KAG5C+qD,QAAQipB,GAEXn3E,KAAKk3E,uBAAuBlzE,KAAK,CAAEgS,MAAM,IAIzC,MAAMtN,EAAM1I,KAAKo3E,eAAeD,GAChCn3E,KAAKk3E,uBAAuBlzE,KAAK0E,EACrC,CAEO0uE,eAAeD,GAClB,MACMjqC,EAAQiqC,EAAOjqC,MAIrB,MADe,CAAEmqC,SAAU,CAJfF,EAAOrxE,IAGHmqC,OAAOqnC,QAAU,IAAMpqC,EAAM+C,OAAO3X,MAClBtiB,MAAM,EAAM2iB,GAFnCuU,EAAM+C,OAAOtX,GAI5B,CAGA4+C,uBACI,OAAOv3E,KAAKk3E,sBAChB,iDA5BSD,EAAsB,sCAAtBA,EAAsB9vE,QAAtB8vE,EAAsB7vE,WAAA,SAAtB6vE,CAAsB,2ECO5B,IAAMO,GAAY,MAAnB,MAAOA,EAST13E,YACY23E,EACA7zE,GADA5D,KAAAy3E,aACAz3E,KAAA4D,wBATJ5D,KAAA03E,sBAA8C,IAAIzuE,KAAqB,IACvEjJ,KAAA23E,qBAA6C,IAAI1uE,KAAqB,IACtEjJ,KAAA43E,qBAA6C,IAAI3uE,KAAqB,IAGtEjJ,KAAA63E,qBAAgE,IAAI5uE,KAAgE,KAMtIjJ,KAAK4D,sBAAsB2jB,iBAG/BvnB,KAAK4D,sBAAsB6iB,iBAAiB1hB,QAAK+yE,MAAK,IAAI1yE,UAAUwkB,IAC9DA,GACF5pB,KAAK+3E,YAAU,EAErB,CAEQA,aAEN/3E,KAAK63E,qBAAqB9yE,QACxBkJ,MAAOy2C,KAAKA,IAAgB,EAC5Bj5C,MAAUwC,GAAUjO,KAAKy3E,WAAW/oE,qBAAqBT,KAAO,EAChEjJ,MAAIgzE,IACFA,EAAEruE,OAAO4J,QAAQy3B,IAKfA,EAAQitC,GAAGz0D,IAAOwnB,EAAQitC,GAAGz0D,IAAM,IAAIC,QAAQ,IAAK,KACpDunB,EAAQitC,GAAGt0D,IAAOqnB,EAAQitC,GAAGt0D,IAAM,IAAIF,QAAQ,IAAK,IAAG,EACxD,IAEFre,UAAUmB,IAET,MAAMoI,EAAI,CAAEL,UAAW/H,EAASgI,UAAW2pE,OAAQ3xE,EAASoD,QAE5D,OAAQpD,EAASgI,WACf,KAAK,EACHvO,KAAK03E,sBAAsB1zE,KAAK2K,GAChC,MACF,KAAK,EACH3O,KAAK23E,qBAAqB3zE,KAAK2K,GAC/B,MACF,KAAK,EACH3O,KAAK43E,qBAAqB5zE,KAAK2K,GAEnC,EAGN,CAEOwpE,qBACH,OAAOn4E,KAAK03E,sBAAsB9xE,cACtC,CAEOwyE,oBACH,OAAOp4E,KAAK23E,qBAAqB/xE,cACrC,CAEOyyE,oBACH,OAAOr4E,KAAK43E,qBAAqBhyE,cACrC,CAGO0yE,yBACH,OAAOt4E,KAAK63E,qBAAqBjyE,cACrC,CAEO2yE,gBAAgBtqE,GACnB,OAAQA,EAAOM,WACX,KAAK,EACDvO,KAAK03E,sBAAsB1zE,KAAK,MAChC,MACJ,KAAK,EACDhE,KAAK23E,qBAAqB3zE,KAAK,MAC/B,MACJ,KAAK,EACDhE,KAAK43E,qBAAqB5zE,KAAK,MAIvChE,KAAK63E,qBAAqB7zE,KAAKiK,EACnC,CAEOuqE,UAAUvqE,GACb,OAAOjO,KAAKy3E,WAAW/oE,qBAAqBT,GAAQlJ,QAAKiH,MACrDzF,KAAmB+H,UAAW/H,EAASgI,UAAW2pE,OAAQ3xE,EAASoD,UAE3E,CAEO8uE,gBAAgBhqE,GACnB,OAAOzO,KAAKy3E,WAAWjpE,gBAAgBC,GAAS1J,QAAKiH,MACjDhE,KAAwB,IAEhC,CAEO0wE,yBACH,OAAO14E,KAAKy3E,WAAWlnE,yBAAyBxL,QAAKiH,MACjDzF,GAAYA,EAASoD,QAE7B,CAGOgvE,yBACH,OAAO34E,KAAKy3E,WAAWppE,mBAAmB,GAAGtJ,QAAKiH,MAC9CzF,GAAYA,EAASoD,QAE7B,iDAhHS6tE,GAAY7wE,MAAAC,MAAAD,MAAAE,KAAA,sCAAZ2wE,EAAYrwE,QAAZqwE,EAAYpwE,WAAA,SAAZowE,CAAY,0CCKlB,IAAMoB,GAAc,MAArB,MAAOA,EAUX94E,YACU23E,EACAlxC,EACA5iC,GAFA3D,KAAAy3E,aACAz3E,KAAAumC,sBACAvmC,KAAA2D,0BAXF3D,KAAA64E,qBAAiD,IAAI5vE,MAAyB,GAC9EjJ,KAAA84E,kBAAgD,IAAI7vE,KAA2B,IAC/EjJ,KAAA+4E,uBAA+C,IAAI9vE,KAAqB,IACxEjJ,KAAAg5E,yBAA8D,IAAI71E,KAClEnD,KAAAi5E,yBAA4C,IAAI91E,IASxD,CAMA+1E,eACEl5E,KAAKg5E,yBAAyBj0E,QAC5B0G,MAAUwC,IACRjO,KAAKm5E,cAAgBlrE,GAAU,GACxBjO,KAAKy3E,WAAWxnE,yBAAyBjQ,KAAKm5E,kBACtD,EACDntE,MAAIotE,IAOK,CAACC,WANcD,IAIazvE,OAAqB,KAE5BT,QANNkwE,IAEcxvE,SAAkB,SAMvDxE,UAAUC,IACTrF,KAAKs5E,oBAAsBj0E,EAC3BrF,KAAKi5E,yBAAyBj1E,KAAK,SAAQ,GAI/ChE,KAAK2D,wBAAwByiC,gBAAgBhhC,UAAU,KACrDpF,KAAKi5E,yBAAyBj1E,KAAK,YAAW,GAGhDhE,KAAKi5E,yBAAyBrzE,eAAeb,QAC3C0G,MAAUpG,GAAUrF,KAAKu5E,aAAU,EACnCvtE,MAAI0W,GACE1iB,KAAKs5E,qBAAuBt5E,KAAKs5E,oBAAoBD,WAEhD,CAAC32D,SADO1iB,KAAKw5E,cAAc92D,EAAU1iB,KAAKs5E,oBAAoBD,YAC3CnwE,QAASlJ,KAAKs5E,oBAAoBpwE,SAEvD,CAACwZ,SAAUA,EAAUxZ,QAAS,QAEtC9D,UAAUC,IACTrF,KAAK+4E,uBAAuB/0E,KAAKqB,GAGjCrF,KAAK84E,kBAAkB90E,KAAKqB,EAAOqd,SAAQ,EAEjD,CAEA+2D,0BACE,OAAOz5E,KAAK64E,qBAAqBjzE,cACnC,CAEA8zE,uBAAuBvwE,GACrBnJ,KAAK64E,qBAAqB70E,KAAKmF,EACjC,CAEAwwE,YAAY1rE,GACVjO,KAAKg5E,yBAAyBh1E,KAAKiK,EACrC,CAEA2rE,kBAAkBziD,GAChB,SAAO9qB,OAAGrM,KAAKumC,oBAAoBrP,wBAAwBC,EAAarkB,YAC1E,CAGA+mE,YAAY/xE,GACV,SAAOuE,OAAGrM,KAAKumC,oBAAoB5P,eAAe7uB,GACpD,CAEAyxE,WACE,SAAOltE,OAAGrM,KAAKumC,oBAAoB7P,cACrC,CAEAojD,wBACE,OAAO95E,KAAK+4E,uBAAuBnzE,cACrC,CAEAm0E,mBACE,OAAO/5E,KAAK84E,kBAAkBlzE,cAChC,CAEAo0E,sBACEh6E,KAAKi5E,yBAAyBj1E,KAAK,UACrC,CAEAi2E,kBAAkBnyE,GAChB,SAAOuE,OAAGrM,KAAKumC,oBAAoB5P,eAAe7uB,IAC/C/C,QAECiH,MAAI3G,GAAUA,GAAUA,EAAO3D,kBAAoB2D,EAAO3D,kBAAoB,IACpF,CAKAw4E,sCAsBE,SAAO7tE,OArBsC,CAC3C,CAAC8U,KAAM,EAAGC,KAAM,SAChB,CAACD,KAAM,EAAGC,KAAM,QAChB,CAACD,KAAM,EAAGC,KAAM,YAChB,CAACD,KAAM,EAAGC,KAAM,YAChB,CAACD,KAAM,EAAGC,KAAM,cAChB,CAACD,KAAM,EAAGC,KAAM,iBAChB,CAACD,KAAM,EAAGC,KAAM,UAChB,CAACD,KAAM,EAAGC,KAAM,UAEhB,CAACD,KAAM,GAAIC,KAAM,mBACjB,CAACD,KAAM,GAAIC,KAAM,UACjB,CAACD,KAAM,GAAIC,KAAM,2BACjB,CAACD,KAAM,GAAIC,KAAM,UACjB,CAACD,KAAM,GAAIC,KAAM,mBACjB,CAACD,KAAM,GAAIC,KAAM,mBACjB,CAACD,KAAM,GAAIC,KAAM,aACjB,CAACD,KAAM,GAAIC,KAAM,eACjB,CAACD,KAAM,GAAIC,KAAM,eACjB,CAACD,KAAM,GAAIC,KAAM,UAGrB,CAOQo4D,cAAc92D,EAAqB22D,GAEzC32D,EAAS4F,KAAK,CAAChb,EAAG6sE,IAAM7sE,EAAE1M,GAAMu5E,EAAEv5E,IAClCy4E,EAAW/wD,KAAK,CAAChb,EAAG6sE,IAAM7sE,EAAI6sE,GAE9B,IAAI/uE,EAAI,EACJ2mD,EAAI,EACR,MAAMqoB,EAAoB,GAE1B,KAAOhvE,EAAIsX,EAASrX,QAAU0mD,EAAIsnB,EAAWhuE,QAEvCqX,EAAStX,GAAGxK,KAAOy4E,EAAWtnB,IAChCqoB,EAAO/mE,KAAKqP,EAAStX,IACrBA,GAAK,EACL2mD,GAAK,GACIrvC,EAAStX,GAAGxK,GAAMy4E,EAAWtnB,GACtC3mD,GAAK,EAEL2mD,GAAK,EAKT,OAAOqoB,CACT,CAKAC,eAAe/oE,GACb,OAAOtR,KAAKy3E,WAAWpmE,eAAeC,GACnCvM,QAAKiH,MAAIzF,GAAYA,EAASoD,QACnC,CAKA2wE,eAAeC,GACb,OAAOv6E,KAAKy3E,WAAWlmE,eAAegpE,GACnCx1E,QAAKiH,MAAIzF,GAAYA,EAASoD,OAAO6wE,aAC1C,CAEAC,kBAAkB/oE,GAChB,OAAO1R,KAAKy3E,WAAWhmE,kBAAkBC,GACtC3M,QACCiH,MAAIzF,GAAYA,EAASoD,OAAO6wE,cAAW,EAC3C/uE,MAAU,OACDY,OAAGrM,KAAKumC,oBAAoB5P,eAAejlB,EAAyBs2B,cAC5E,EACDhjC,MAAI01E,IACF16E,KAAKumC,oBAAoB9P,mBAAmBikD,EAAa,GAEjE,iDAhMW9B,GAAcjyE,MAAAC,MAAAD,MAAAE,MAAAF,MAAAG,MAAA,sCAAd8xE,EAAczxE,QAAdyxE,EAAcxxE,WAAA,SAAdwxE,CAAc,+BCJpB,IAAM+B,GAAkB,MAAzB,MAAOA,UAA0Bx/D,KAErCrb,YACU2e,GAERte,QAFQH,KAAAye,YAGV,CAEAm8D,WAAWC,GACT,OAAO76E,KAAKye,WAAWjS,KAAKxM,KAAKqb,OAAO,qBAAsBw/D,GAC3D91E,QAAKiH,MAAIsB,GAAKA,GACnB,CAKAwtE,mBACE,OAAO96E,KAAKye,WAAWzY,IAAiBhG,KAAKqb,OAAO,eACtD,iDAlBWs/D,GAAiBh0E,MAAAC,MAAA,sCAAjB+zE,EAAiBxzE,QAAjBwzE,EAAiBvzE,UAAAuU,WAFhB,QAAM,SAEPg/D,CAAkB,0CCNxB,IAAMI,GAAmB,MAA1B,MAAOA,EAIXj7E,cAFUE,KAAAg7E,QAAU,IAAI9mE,KAER,CAEhBC,WACA,CAEA8mE,mBACEj7E,KAAKg7E,QAAQ3mE,MACf,iDAXW0mE,EAAmB,oCAAnBA,EAAmBzmE,UAAA,0BAAAE,QAAA,CAAAwmE,QAAA,WAAAvmE,MAAA,GAAAC,KAAA,EAAAC,OAAA,sUAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICPhClO,MAAA,WACEA,MAAA,WACFA,QAEAA,MAAA,WAA+CA,MAAA,wBAAkCA,QAEjFA,MAAA,WAA2CA,MAAA,wBAAyCA,QAEpFA,MAAA,cAC+EA,MAAA,0BAASmO,EAAAmmE,kBAAkB,GACxGt0E,MAAA,WAAsCA,MAAA,0BACxCA,iBAP+CA,MAAA,GAAAA,YAAA,yBAEJA,MAAA,GAAAA,YAAA,gCAIHA,MAAA,GAAAA,YAAA,6EDH3Bo0E,CAAmB,+BEJhCp0E,MAAA,WAAwDA,MAAA,GAAeA,8BAAfA,cAAA8M,EAAAynE,cCIjD,IAAMC,GAAa,MAApB,MAAOA,EALbr7E,cAOWE,KAAAyW,YAAa,EACbzW,KAAAo7E,WAAY,EACZp7E,KAAAk7E,YAAc,GAEbl7E,KAAAq7E,WAAa,IAAInnE,MACjBlU,KAAAs7E,SAAW,IAAIpnE,MAEzB,eAAIqnE,GACF,OAAIv7E,KAAKyW,WACA,iBAEFzW,KAAKo7E,UAAY,wBAA0B,wBACpD,CAEAhnE,UACEpU,KAAKyW,YAAa,EAClBzW,KAAKq7E,WAAWhnE,KAAKrU,KAAKyW,WAC5B,CAEA+kE,eACEx7E,KAAKo7E,WAAY,EACjBp7E,KAAKs7E,SAASjnE,MAAK,EACrB,CAEAonE,eACEz7E,KAAKo7E,WAAY,EACjBp7E,KAAKs7E,SAASjnE,MAAK,EACrB,iDA7BW8mE,EAAa,oCAAbA,EAAa7mE,UAAA,mBAAAC,OAAA,CAAAkC,WAAA,aAAA2kE,UAAA,YAAAF,YAAA,eAAA1mE,QAAA,CAAA6mE,WAAA,aAAAC,SAAA,YAAA7mE,MAAA,EAAAC,KAAA,EAAAC,OAAA,kJAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDP1BlO,MAAA,WAEmCA,MAD9B,0BAASmO,EAAAV,SAAS,EACYzN,CADX,+BACLmO,EAAA0mE,cAAc,EAAE70E,CAAD,+BAAemO,EAAA2mE,cAAc,GAAE90E,QACjEA,MAAA,EAAA+0E,GAAA,oBAHK/0E,MAAA,UAAAmO,EAAAymE,aAGC50E,cAAA,OAAAmO,EAAAomE,oECIOC,CAAa,8CCNxBx0E,MAAA,oBAE6CA,MAAnC,8BAAAg1E,EAAAh1E,MAAAwP,GAAAwe,MAAApe,EAAA5P,QAAA,OAAAA,MAAc4P,EAAAqlE,eAAAD,EAAiB,GAAE,EAAEh1E,CAAD,oBAAAkU,GAAA,MAAA8gE,EAAAh1E,MAAAwP,GAAAwe,MAAApe,EAAA5P,QAAA,OAAAA,MAAa4P,EAAA+kE,SAAAK,EAAW,EAAC9gE,GAAS,GAAElU,wDADzBA,MADkB,cAAAk1E,EAClBl1E,CAD6C,YAAA4P,EAAAulE,aAAAH,EAAA,GAC7Ch1E,CAAd,aAAA4P,EAAAwlE,eAAAJ,EAAA,KCMpC,IAAMK,GAAe,MAAtB,MAAOA,EASXl8E,YAAoBu1B,GAAAr1B,KAAAq1B,mBAPVr1B,KAAAi8E,cAAgB,IAAI/nE,MAErBlU,KAAAk8E,mBAA+B,GACxCl8E,KAAAm8E,YAAc,EAENn8E,KAAA0xE,OAAS,EAGf1xE,KAAKo8E,wBACP,CAEAR,eAAeS,GACbr8E,KAAK0xE,OAAS2K,EACdr8E,KAAKi8E,cAAc5nE,KAAKgoE,EAC1B,CAEAf,SAASe,EAAmBC,GAC1Bt8E,KAAKm8E,YAAcG,EAAWD,EAAY,CAC5C,CAEAN,eAAeM,GACb,OAAOr8E,KAAK0xE,QAAU2K,CACxB,CAEAP,aAAaO,GACX,OAAOr8E,KAAKm8E,aAAeE,CAC7B,CAEQD,yBACNp8E,KAAKq1B,iBAAiBrvB,IAAI,CACxB,yBACA,8BACCZ,UAAU0wB,IACTv0B,OAAO2c,QAAgB4X,GAAGviB,QAASjG,GAAMtN,KAAKk8E,mBAAmB7oE,KAAK/F,EAAE,KACxEtN,KAAKk8E,mBAAmB/sC,OAAO,EAAE,EAAG,IACpCnvC,KAAKk8E,mBAAmB/sC,OAAO,EAAE,EAAG,IACpCnvC,KAAKk8E,mBAAmB/sC,OAAO,EAAE,EAAG,GAAE,EAE5C,iDAxCW6sC,GAAer1E,MAAAC,OAAA,oCAAfo1E,EAAe1nE,UAAA,qBAAAE,QAAA,CAAAynE,cAAA,iBAAAxnE,MAAA,EAAAC,KAAA,EAAAC,OAAA,+LAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDR5BlO,MAAA,WACEA,MAAA,EAAA41E,GAAA,sBAGF51E,eAHwCA,cAAA,UAAAmO,EAAAonE,wECO3BF,CAAe,8JCL1Br1E,MAAA,cAAiEA,MAAA,yBAAAg1E,EAAAh1E,MAAAwP,GAAAwe,MAAApe,EAAA5P,QAAA,OAAAA,MAAS4P,EAAAimE,cAAAb,GAAgB,GAGxFh1E,MAAA,WAAuBA,MAAA,GACzBA,4CAHQA,MAAA,UAAAA,MAAA,EAAAsO,GAAAsB,EAAAkmE,iBAAAd,IAAAplE,EAAAkmE,iBAAAd,KAEiBh1E,MAAA,GAAAA,MAAA4P,EAAAmmE,QAAAf,KCEpB,IAAMgB,GAAoB,MAA3B,MAAOA,EAOX78E,YACUu1B,GAAAr1B,KAAAq1B,mBANAr1B,KAAA48E,uBAAyB,IAAI1oE,MAEvClU,KAAA08E,QAAoB,GACpB18E,KAAA68E,gBAA4B,GAK1B78E,KAAK88E,YACP,CAEQA,aAEN98E,KAAKq1B,iBAAiBrvB,IAAI,CACxB,wBACA,uBACA,qBACA,0BAA0BZ,UAAU0wB,GAClCv0B,OAAO2c,QAAgB4X,GAAGviB,QAASjG,GAAMtN,KAAK08E,QAAQrpE,KAAK/F,EAAE,KACnE,CAEAmvE,iBAAiBM,GACf,OAAO/8E,KAAK68E,gBAAgBG,UAAU1vE,GAAKA,IAAMyvE,IAAY,CAC/D,CAEAP,cAAc7nD,GACZ30B,KAAKi9E,mBAAmBtoD,GACxB30B,KAAK48E,uBAAuBvoE,KAAKrU,KAAKk9E,qBACxC,CAEQD,mBAAmBtoD,GACJ30B,KAAK68E,gBAAgBG,UAAU1vE,GAAKA,IAAMqnB,IAC5C,EACjB30B,KAAK68E,gBAAkB78E,KAAK68E,gBAAgB5uE,OAAOX,GAAKA,GAAKqnB,GAE7D30B,KAAK68E,gBAAgBxpE,KAAKshB,EAC9B,CAEQuoD,qBACN,IAAI73E,EAAS,GAEb,QAASsvB,KAAS30B,KAAK68E,gBACrBx3E,GAAU,GAAGrF,KAAK08E,QAAQ/nD,MAG5B,OAAOtvB,EAAOgG,OAAS,EAAI,YAAchG,EAAS,EACpD,iDAhDWs3E,GAAoBh2E,MAAAC,OAAA,oCAApB+1E,EAAoBroE,UAAA,2BAAAE,QAAA,CAAAooE,uBAAA,0BAAAnoE,MAAA,EAAAC,KAAA,EAAAC,OAAA,qUAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDRjClO,MAAA,WAA0BA,MAAA,wBAAsCA,QAEhEA,MAAA,WACEA,MAAA,EAAAw2E,GAAA,gBAKFx2E,eAR0BA,oBAAA,6BAGGA,MAAA,GAAAA,MAAA,UAAAmO,EAAA4nE,sECKhBC,CAAoB,8CCL7Bh2E,MAAA,WAAyEA,MAAA,mBAAAA,MAAAwP,GAAA,MAAAinE,EAAAz2E,QAAA,OAAAA,MAASy2E,EAAApC,UAAS,GAAEr0E,kDAY3FA,MAAA,6BACkBA,MAAA,kCAAAkU,GAAAlU,MAAAqQ,GAAA,MAAAomE,EAAAz2E,MAAA,UAAAA,MAA0By2E,EAAAC,yBAAAxiE,GAAgC,GAAElU,kDAE9EA,MAAA,GAEMA,MADJ,WACIA,CADyD,iBACGA,MAAA,yBAAAkU,GAAAlU,MAAA22E,GAAA,MAAAF,EAAAz2E,MAAA,GAAAA,aAAAy2E,EAAAG,OAAA1iE,KAAAuiE,EAAAG,OAAA1iE,GAAAlU,MAAAkU,EAAA,GAEhElU,UAEAA,MAAA,6DAC8DA,MAAA,mBAAAA,MAAA22E,GAAA,MAAAF,EAAAz2E,MAAA,UAAAA,MAASy2E,EAAAI,SAAQ,GAAE72E,yCAJnEA,MAAA,GAAAA,MAAA,cAAAy2E,EAAAK,mBADkD92E,MAAA,UAAAy2E,EAAAG,QAKpD52E,cAAA,QAAAA,MAAA,IAAAA,MAAA,qBADwBA,MAAxB,YAAAy2E,EAAAtpE,UAAwBnN,CAAD,yDAhBvCA,MAAA,GACEA,MAAA,WAAmCA,MAAA,wBAAiCA,QAEpEA,MAAA,WAA0BA,MAAA,wBAAqCA,QAE/DA,MAAA,sBAA6BA,MAAA,yBAAAkU,GAAAlU,MAAA+2E,GAAA,MAAAN,EAAAz2E,QAAA,OAAAA,MAAiBy2E,EAAAO,gBAAA9iE,GAAuB,GAAElU,QAKvEA,MAHA,EAAAi3E,GAAA,8BAGAj3E,CAF8E,EAAAk3E,GAAA,sDAP3Cl3E,MAAA,GAAAA,YAAA,wBAETA,MAAA,GAAAA,YAAA,4BAIHA,MAAA,GAAAA,MAAA,OAAAy2E,EAAAU,2BAGRn3E,cAAA,OAAAy2E,EAAAW,4DAYjBp3E,MAAA,4BAAwCA,MAAA,qBAAAA,MAAAq3E,GAAA,MAAAZ,EAAAz2E,QAAA,OAAAA,MAAWy2E,EAAAnC,mBAAkB,GAAEt0E,SChBpE,IAAMs3E,GAAe,MAAtB,MAAOA,EAYX,qBAAIR,GACF,OAAOz9E,KAAK0xE,OAAS,EAAI1xE,KAAKk+E,2BAA6Bl+E,KAAKm+E,0BAClE,CAEA,oBAAIJ,GACF,OAAO/9E,KAAK0xE,OAAS,CACvB,CAEA5xE,YACUs+E,EACAC,EACAC,EACAjpD,GAHAr1B,KAAAo+E,YACAp+E,KAAAq+E,oBACAr+E,KAAAs+E,uBACAt+E,KAAAq1B,mBAtBVr1B,KAAA8T,WAAY,EACZ9T,KAAA0xE,OAAS,EACT1xE,KAAAu9E,OAAS,GACTv9E,KAAAu+E,YAAa,EACbv+E,KAAA89E,2BAA4B,EAC5B99E,KAAA68E,gBAAkB,GAElB78E,KAAAk+E,2BAA6B,GAC7Bl+E,KAAAm+E,2BAA6B,GAgB1Bn+E,KAAKq1B,iBAAiBrvB,IAAI,gCAAgCZ,UAAU0wB,GAAK91B,KAAKk+E,2BAA6BpoD,GAC1G91B,KAAKq1B,iBAAiBrvB,IAAI,gCAAgCZ,UAAU0wB,GAAK91B,KAAKm+E,2BAA6BroD,EAC/G,CAEA0nD,SACEx9E,KAAK8T,WAAY,EACjB9T,KAAK46E,YAAW,EAClB,CAEA+C,gBAAgBtB,GACdr8E,KAAK0xE,OAAS2K,EACdr8E,KAAK89E,0BAA4B99E,KAAK0xE,QAAU,CAClD,CAEAsJ,UACEh7E,KAAK46E,YAAW,GAAO,GACvB56E,KAAKo+E,UAAUzhD,OACjB,CAEAs+C,mBACEj7E,KAAKo+E,UAAUzhD,OACjB,CAEA0gD,yBAAyBR,GACvB78E,KAAK68E,gBAAkBA,CACzB,CAEQjC,WAAW4D,EAAkCC,GAAe,GAClEz+E,KAAKq+E,kBAAkBvD,mBAAmB11E,UAAU,KAClD,MAAMoI,EAAUxN,KAAK0+E,qBAAqBF,EAAyBC,GACnEz+E,KAAKq+E,kBAAkBzD,WAAWptE,GAASpI,UAAU,CACnDpB,KAAOsJ,IAAQtN,KAAK2+E,gBAAgBH,EAAyBC,EAAY,EACzEj5E,MAAOA,IAAMxF,KAAK2+E,gBAAgBH,EAAyBC,IAC5D,EAEL,CAEQC,qBAAqBF,EAAkCC,GAQ7D,MAJwC,CACtC/M,OAAQ+M,EAAeG,GAAa5+E,KAAK0xE,OACzC6L,OAAQiB,EAA0B,GAAKx+E,KAAK6+E,cAAcJ,GAG9D,CAEQE,gBAAgBH,EAAkCC,GAAe,GACvEz+E,KAAK8T,WAAY,GAEZ0qE,IAA4BC,IAC/Bz+E,KAAKs+E,qBAAqBQ,qBAC1B9+E,KAAKu+E,YAAa,EAEtB,CAEQM,cAAcJ,GAAe,GACnC,IAAIM,EAAa,GAEjB,OAAIN,IACFM,GAAc,0BAEZ/+E,KAAK0xE,QAAU,IACjBqN,GAAc/+E,KAAK68E,iBAEjB78E,KAAKu9E,OAAOlyE,OAAS,IACvB0zE,GAAc,eAAiB/+E,KAAKu9E,QAE/BwB,CACT,iDAhGWd,GAAet3E,MAAAC,OAAAD,MAAAE,IAAAF,MAAAG,IAAAH,MAAAI,OAAA,oCAAfk3E,EAAe3pE,UAAA,qBAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,gtBAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDZ1BlO,MAFF,UAEEA,CAF8B,WAG5BA,MAAA,EAAAq4E,GAAA,aACFr4E,QAEAA,MAAA,WAwBEA,MAtBA,EAAAs4E,GAAA,sBAsBAt4E,CAtBkC,EAAAu4E,GAAA,6BA0BtCv4E,iBA/BUA,MAAA,GAAAA,MAAA,QAAAmO,EAAAypE,YAKS53E,MAAA,GAAAA,MAAA,QAAAmO,EAAAypE,YAsBO53E,cAAA,OAAAmO,EAAAypE,qRChBbN,CAAe,KCJfkB,GAAoB,MAA3B,MAAOA,EAKXr/E,YACU28B,EACA74B,GADA5D,KAAAy8B,SACAz8B,KAAA4D,wBALO5D,KAAAo/E,mBAAqB,iBACrBp/E,KAAAq/E,oBAAsB,kBAKvC,CAEAC,gBACE,GAAIt/E,KAAK4D,sBAAsB2jB,oBAAmBrM,SAChD,OAEF,IAAIhS,IAAoBqc,aAAaC,QAAQxlB,KAAKo/E,qBAAuB,GACzEl2E,IAEA,MAAMq2E,EAAc,IAAI33E,KAClB43E,EAAqBj6D,aAAaC,QAAQxlB,KAAKq/E,qBAC/CI,EAAyC,OAAvBD,EAClBE,EAAkBD,EAAkBF,EAAc,IAAI33E,KAAK43E,GAC3DG,EAAiB,IAAI/3E,UAASA,MAAOg4E,YAAYF,EAAgBtzD,cAAgB,IAEnFljB,GAAW,KAAOu2E,GAAmBF,EAAY9zD,WAAak0D,EAAel0D,aAC/EviB,EAAU,EACVlJ,KAAK6/E,WAAW5B,KAGlB14D,aAAaK,QAAQ5lB,KAAKo/E,mBAAoBl2E,EAAQ4J,WACxD,CAEAgsE,qBACEv5D,aAAaK,QAAQ5lB,KAAKq/E,yBAAyBz3E,MAAOkL,WAC5D,CAEQ+sE,WAAW7xD,EAAgBC,GACfjuB,KAAKy8B,OAAO1O,KAAKC,EAAW,CAC5CE,cAAc,EACdE,SAAU,QACVC,UAAW,QACXC,OAAQ,OACRC,MAAO,OACPC,WAAW,EACX1lB,KAAMmlB,GAEV,iDA7CWkxD,GAAoBx4E,MAAAC,OAAAD,MAAAE,KAAA,sCAApBs4E,EAAoBh4E,QAApBg4E,EAAoB/3E,UAAAuU,WAFnB,QAAM,SAEPwjE,CAAoB,8BCH1B,IAAMW,GAAe,MAAtB,MAAOA,EAMXhgF,cAJAE,KAAA+/E,yBAA2B,IAAI58E,KAC/BnD,KAAAggF,sBAAwB,IAAI78E,KAC5BnD,KAAAigF,8BAAgC,IAAI98E,IAEpB,iDANL28E,EAAe,sCAAfA,EAAe34E,QAAf24E,EAAe14E,UAAAuU,WAFd,QAAM,SAEPmkE,CAAe,oBCIrB,IAAMI,GAAsB,MAA7B,MAAOA,UAA8B/kE,KAEzCrb,YAAoB2e,GAClBte,QADkBH,KAAAye,YAEpB,CAEAzY,MACE,OAAOhG,KAAKye,WAAWzY,IAAShG,KAAKqb,OAAO,mBACzCtW,QAAKiH,MAAI3G,GAAUA,EAAOsE,OAAOA,QACtC,iDATWu2E,GAAqBv5E,MAAAC,MAAA,sCAArBs5E,EAAqB/4E,QAArB+4E,EAAqB94E,UAAAuU,WAFpB,QAAM,SAEPukE,CAAsB,oBCK5B,IAAMC,GAAyB,MAAhC,MAAOA,UAAiC/kE,KAE5Ctb,YACUsgF,EACA95C,EACA3iC,EACA08E,EACAz8E,GAERzD,QANQH,KAAAogF,oBACApgF,KAAAsmC,qBACAtmC,KAAA2D,0BACA3D,KAAAqgF,iBACArgF,KAAA4D,uBAGV,CAEAm0E,WAAW51D,GACT,OAAO,IAAI7X,KAAoBC,IAC7BvK,KAAKsmC,mBAAmBpkB,0BAA0BC,GAAkB/c,UAClEk7E,GACEtgF,KAAKugF,kCACHh2E,EACA+1E,EACAn+D,GAAiB,EAG3B,CAEQo+D,kCACNh2E,EACAmY,EACAP,GACAniB,KAAKqgF,eAAenH,eAEpB,MAAMsH,EAAiBxgF,KAAK4D,sBAAsB2jB,gBAC9CpF,GACFniB,KAAK2D,wBAAwBmjC,MAAM9mC,KAAK4D,sBAAsBqC,UAAYyc,EAAU,IAAI,EAAO89D,GAC/Fj2E,EAASvG,MAAK,GACduG,EAAS5E,YAET3F,KAAKogF,kBAAkBp6E,MAAMZ,UAAWyxB,IACtC72B,KAAK2D,wBAAwBmjC,MAAM9mC,KAAK4D,sBAAsBqC,UAAYyc,EAAUmU,GAAS,EAAM2pD,GACnGj2E,EAASvG,MAAK,GACduG,EAAS5E,UAAQ,EAGvB,iDA1CWw6E,GAAwBx5E,MAAAC,IAAAD,MAAAE,MAAAF,MAAAG,MAAAH,MAAAI,IAAAJ,MAAAK,KAAA,sCAAxBm5E,EAAwBh5E,QAAxBg5E,EAAwB/4E,UAAAuU,WAFvB,QAAM,SAEPwkE,CAAyB,KCTzBM,GAAgB,MAAvB,MAAOA,EAGX,kBAAIC,GACF,OAAO1gF,KAAK2gF,uBACd,CAEA7gF,cALQE,KAAA2gF,wBAA0B,IAAIx9E,IAKtB,CAEhBy9E,oBAAoB94E,GAClB9H,KAAK2gF,wBAAwB38E,KAAK8D,EACpC,iDAXW24E,EAAgB,sCAAhBA,EAAgBt5E,QAAhBs5E,EAAgBr5E,UAAAuU,WAFf,QAAM,SAEP8kE,CAAgB,oBCPjBI,GAAZ,SAAYA,GACRA,SAAAC,MAAA,eACAD,EAAAE,SAAA,WAFQF,CAGZ,CAHA,CAAYA,IAAW,eCShB,IAAMG,GAAiB,MAAxB,MAAOA,EAqBX,WAAYC,GACV,OAAOjhF,KAAK4mB,WAAWvB,OAAO0F,cAAgB81D,GAAYE,SAAW/gF,KAAKkhF,iBAAmBlhF,KAAKmhF,YACpG,CAEArhF,cAvBiBE,KAAAmhF,aAAe,CAC9B,CAAEn+E,KAAMwzE,GAAOC,MACf,CAAEzzE,KAAMwzE,GAAOE,QACf,CAAE1zE,KAAMwzE,GAAOK,WACf,CAAE7zE,KAAMwzE,GAAOG,UACf,CAAE3zE,KAAMwzE,GAAOI,SAGA52E,KAAAkhF,iBAAmB,CAClC,CAAEl+E,KAAMwzE,GAAOQ,iBACf,CAAEh0E,KAAMwzE,GAAOM,oBACf,CAAE9zE,KAAMwzE,GAAOO,aAKA/2E,KAAAohF,YAAc,cACdphF,KAAA4mB,WAAa,IAAIc,KAOhC1nB,KAAKqhF,YACP,CAEQC,iBACN,MAAM3sD,EAAQpP,aAAaC,QAAQxlB,KAAKohF,aACxC,OAAiB,OAAVzsD,EAAiBnV,OAAOmV,GAAS,IAC1C,CAEQ4sD,eAAe5sD,GACrBpP,aAAaK,QAAQ5lB,KAAKohF,YAAazsD,EAAM7hB,WAC/C,CAEQ0uE,OAAO7sD,GACb30B,KAAKuhF,eAAe5sD,GACpB30B,KAAKyhF,iBAAmBzhF,KAAKihF,QAAQtsD,EACvC,CAEQ0sD,aACN,IAAIlxC,EAAYnwC,KAAKshF,iBAEH,OAAdnxC,GAAsBA,GAAanwC,KAAKihF,QAAQ51E,OAAS,EAC3D8kC,EAAY,EAEZA,IAGFnwC,KAAKwhF,OAAOrxC,EACd,iDArDW6wC,EAAiB,sCAAjBA,EAAiB75E,QAAjB65E,EAAiB55E,UAAAuU,WAFhB,QAAM,SAEPqlE,CAAiB,mDCT9B,MAAQtjE,YAAYD,MACb,SAASikE,GAAen+C,GAC3B,OAAuB,IAAhBA,EAAKl4B,QAAgBqS,GAAQ6lB,EAAK,IAAMA,EAAK,GAAKA,CAC7D,sCCGO,SAASo+C,MAAiBp+C,GAC7B,MAAMq+C,KAAiBC,OAAkBt+C,GACzC,OAAOq+C,KACD78E,MAAK48E,MAAiBp+C,IAAI,EAAGu+C,MAAiBF,KAAe,EAC7DpoE,MAAQ,CAACC,EAAQC,MACfqoE,QAAkB,CAACtoE,KAAWioE,GAAen+C,IAA7Cw+C,CAAqDroE,EAAU,EAE3E,uECKO,MAAMsoE,GAAoC,CAC7C,SACE,OACA,YACA,UACA,OACA,YACA,UACA,QACA,YACA,UACA,YACA,WACA,OACA,SC/BC,IAAKC,GAAZ,SAAYA,GAERA,WAAAC,KAAA,UACAD,IAAAE,OAAA,YACAF,IAAAG,OAAA,YACAH,IAAAI,MAAA,WACAJ,IAAAK,MAAA,WACAL,IAAAM,aAAA,kBACAN,IAAAO,MAAA,WARQP,CASZ,CATA,CAAYA,IAAiB,ICDjBQ,GAAZ,SAAYA,GACRA,WAAAC,IAAA,SACAD,IAAAE,MAAA,WACAF,IAAAG,KAAA,UAHQH,CAIZ,CAJA,CAAYA,IAAqB,ICArBI,GAAZ,SAAYA,GACRA,WAAAC,QAAA,aACAD,IAAAE,KAAA,UACAF,IAAAG,KAAA,UACAH,IAAAI,KAAA,UACAJ,IAAAK,OAAA,YALQL,CAMZ,CANA,CAAYA,IAAiB,ICMvB,MAAOM,UAGcnjF,KAAAojF,aAAe,CAAE,QACjBpjF,KAAAqjF,oBAAsB,CAAE,QACxBrjF,KAAAsjF,cAAgB,CAAE,QAClBtjF,KAAAujF,aAAe,CAAE,QACjBvjF,KAAAwjF,eAAiB,CAAE,QACnBxjF,KAAAyjF,cAAgB,CAAE,QAElBzjF,KAAA0jF,aAAe,cAAe,QAC9B1jF,KAAA2jF,kBAAoB,mBAAoB,QACxC3jF,KAAAC,QAAU,SAAU,QACpBD,KAAA4jF,iBAAmB,kBAAmB,QACtC5jF,KAAA6jF,cAAgB,eAAgB,QAChC7jF,KAAA8jF,eAAiB,gBAAiB,QAClC9jF,KAAA+jF,OAAS,QAAS,QAClB/jF,KAAAgkF,4BAA8B,6BAA8B,QAC5DhkF,KAAAikF,wBAA0B,yBAA0B,QACpDjkF,KAAAkkF,uBAAyB,wBAAyB,QAElDlkF,KAAAmkF,oBAAoC,CACvD,CAAExwE,MAAO,WAAYjB,MAAO,GAE9B,QAEqB1S,KAAAokF,eAA+B,CAClD,CAAEzwE,MAAO,oBAAqBjB,MAAO,GACrC,CAAEiB,MAAO,+BAAgCjB,MAAO,GAChD,CAAEiB,MAAO,wBAAyBjB,MAAO,GACzC,CAAEiB,MAAO,wBAAyBjB,MAAO,GACzC,CAAEiB,MAAO,2BAA4BjB,MAAO,GAC9C,QAEqB1S,KAAAqkF,gBAAgC,CAEnD,CAAE1wE,MAAO,yBAA0BjB,MAAO,EAAG4xE,cAAe,WAC5D,CAAE3wE,MAAO,wBAAyBjB,MAAO,EAAG4xE,cAAe,WAC3D,CAAE3wE,MAAO,8BAA+BjB,MAAO,EAAG4xE,cAAe,WAEnE,QAEqBtkF,KAAAukF,qBAAqC,CACxD,CAAE5wE,MAAO,QAASjB,MAAOmwE,GAAkBC,QAASwB,cAAe,WACnE,CAAE3wE,MAAO,OAAQjB,MAAOmwE,GAAkBE,KAAMuB,cAAe,WAC/D,CAAE3wE,MAAO,iCAAkCjB,MAAOmwE,GAAkBG,KAAMsB,cAAe,WACzF,CAAE3wE,MAAO,YAAajB,MAAOmwE,GAAkBI,KAAMqB,cAAe,WACpE,CAAE3wE,MAAO,UAAWjB,MAAOmwE,GAAkBK,OAAQoB,cAAe,WACtE,QAEqBtkF,KAAAwkF,sBAAsC,CACzD,CAAE7wE,MAAOwvE,GAAOsB,+BAA+B,IAAK/xE,MAAO,IAC3D,CAAEiB,MAAOwvE,GAAOsB,+BAA+B,GAAI/xE,MAAO,GAC1D,CAAEiB,MAAOwvE,GAAOsB,+BAA+B,GAAI/xE,MAAO,GAC1D,CAAEiB,MAAOwvE,GAAOsB,+BAA+B,GAAI/xE,MAAO,GAE1D,CAAEiB,MAAOwvE,GAAOsB,+BAA+B,IAAK/xE,MAAO,IAC7D,QAEqB1S,KAAA0kF,WAA2B,CAC9C,CAAE/wE,MAAO,sBAAuBjB,MAAO,eACvC,CAAEiB,MAAO,yBAA0BjB,MAAO,YAC5C,QAGqB1S,KAAA2kF,qBAAqC,CACxD,CAAEhxE,MAAO,aAAcjB,MAAO,GAChC,QAEqB1S,KAAA4kF,oBAAoC,CACvD,CAAEjxE,MAAO,aAAcjB,MAAO,GAC9B,CAAEiB,MAAO,wBAAyBjB,MAAO,GACzC,CAAEiB,MAAO,oBAAqBjB,MAAO,GACvC,QAEqB1S,KAAA6kF,oBAAoC,CACvD,CAAElxE,MAAO,aAAcjB,MAAO,GAC9B,CAAEiB,MAAO,wBAAyBjB,MAAO,GACzC,CAAEiB,MAAO,yBAA0BjB,MAAO,GAC5C,CAEK,8BAAOoyE,CAAwBC,GAClC,OAAQA,GACJ,KAAK,EACD,MAAO,MACX,KAAK,IACD,MAAO,MACX,KAAK,GACD,MAAO,MACX,KAAK,EACD,MAAO,OAGX,KAAK,EACD,MAAO,QACX,KAAK,EACD,MAAO,QACX,KAAK,GACD,MAAO,WAKb,QACE,MAAM,IAAIroE,MAAM,qCAAuCqoE,GAE/D,CAEO,qCAAON,CAA+BpgE,GACzC,OAAQA,GAEJ,KAAK,GACD,MAAO,0BAEX,KAAK,EACD,MAAO,4BAEX,KAAK,EACD,MAAO,wBAEX,KAAK,EACD,MAAO,4BAEX,KAAK,EACD,MAAO,yBACX,KAAK,GACD,MAAO,0BACX,QACI,MAAO,2BAAkCA,EAErD,QAEuBrkB,KAAAglF,WAAgC,CAAEzjB,QAAS,CAAC,GAAI,IAAM,QAEtDvhE,KAAAilF,iBAA6B,CAChD,EACA,GACA,GACF,QAGqBjlF,KAAAklF,2BAA6B,IAAIzoE,IAAI,CACxD,CACIwlE,GAAkBE,OAAQ,CACtBgD,iBAAkB1C,GAAsBE,MACxCyC,aAAc,EACdC,sBAAuB,oCACvBC,cAAe,qBACfC,YAAa,WAGrB,CACItD,GAAkBG,OAAQ,CACtB+C,iBAAkB1C,GAAsBG,KACxCwC,aAAc,EACdC,sBAAuB,oCACvBC,cAAe,qBACfC,YAAa,WAGrB,CACItD,GAAkBI,MAAO,CACrB8C,iBAAkB1C,GAAsBC,IACxC0C,aAAc,EACdC,sBAAuB,kCACvBC,cAAe,mBACfC,YAAa,SAGrB,CACItD,GAAkBK,MAAO,CACrB6C,iBAAkB1C,GAAsBC,IACxC0C,aAAc,EACdC,sBAAuB,kCACvBC,cAAe,mBACfC,YAAa,SAGrB,CACItD,GAAkBM,aAAc,CAC5B4C,iBAAkB1C,GAAsBC,IACxC0C,aAAc,EACdC,sBAAuB,kCACvBC,cAAe,mBACfC,YAAa,SAGrB,CACItD,GAAkBO,MAAO,CACrB2C,iBAAkB1C,GAAsBC,IACxC0C,aAAc,EACdC,sBAAuB,kCACvBC,cAAe,mBACfC,YAAa,UAGtB,QAEWvlF,KAAAwlF,yBAA2B,IAAI/oE,IAAI,CAC7C,CAAC,EAAG,CACAgpE,QAAS,+CAEb,CAAC,EAAG,CACAA,QAAS,2CAEb,CAAC,EAAG,CACAA,QAAS,0CAEb,CAAC,EAAG,CACAA,QAAS,yCAEd,cCrNKC,GAAZ,SAAYA,GACVA,WAAA5mB,KAAA,UACA4mB,IAAAC,MAAA,WACAD,IAAAE,IAAA,SAEAF,IAAAG,cAAA,mBACAH,IAAAI,aAAA,kBANUJ,CAOZ,CAPA,CAAYA,IAAY,IAUlB,MAAOK,GAAbjmF,cACWE,KAAAgmF,WAAa,IAAIC,aACxB,mGAAoG,CAClGC,QAAS,EACTC,QAAS,KAGJnmF,KAAAomF,SAAW,IAAIH,aACtB,qDAAsD,CACpDC,QAAS,EACTC,QAAS,KAYJnmF,KAAAqmF,mBAAqBC,eAAYC,aAAa,CACrDvjF,KAAM,UACNkjF,QAAS,EACTC,QAAS,KAGFnmF,KAAAwmF,kBAAoBF,eAAYC,aAAa,CACpDvjF,KAAM,SACNkjF,QAAS,EACTC,QAAS,IAGb,iBC3CO,IAAMM,GAAgB,MAAvB,MAAOA,EADb3mF,cAGYE,KAAA0mF,YAAa,EAGb1mF,KAAA2mF,wBAA4C,IAAIxjF,KAChDnD,KAAA4mF,8BAA8C,IAAIzjF,KAKnD0jF,oBACH,OAAO7mF,KAAK0mF,UAChB,CACOI,kBAAkB39E,GACrBnJ,KAAK0mF,WAAav9E,EAClBnJ,KAAK2mF,wBAAwB3iF,KAAKhE,KAAK0mF,WAC3C,CACOK,mBACH,OAAO/mF,KAAK2mF,wBAAwB/gF,cACxC,CAMOohF,sBACH,OAAOhnF,KAAKinF,gBAChB,CACOC,oBAAoBztE,EAAgB3R,GACrC9H,KAAKinF,kBAAoBn/E,IAC3B9H,KAAKinF,iBAAmBn/E,EACxB9H,KAAK4mF,8BAA8B5iF,KAAK,CAAEijF,iBAAkBjnF,KAAKinF,iBAAkBxtE,OAAQA,IAE/F,CACO0tE,yBACH,OAAOnnF,KAAK4mF,8BAA8BhhF,cAC9C,iDArCS6gF,EAAgB,sCAAhBA,EAAgBt/E,QAAhBs/E,EAAgBr/E,WAAA,SAAhBq/E,CAAgB,KCOhBW,GAAoB,MAA3B,MAAOA,EAUTtnF,YACYunF,EACAC,EACAjwD,GAFAr3B,KAAAqnF,cACArnF,KAAAsnF,mBACAtnF,KAAAq3B,SARJr3B,KAAA0mF,YAAa,CASjB,CAMGa,aAAarmE,GAEhB,MAAMsmE,EAASC,SAAMC,OAAO,CAAEh8E,QAAS,CAAEi8E,eAAWrmF,EAAWsmF,WAAW,KACpEC,EAAU3mE,EAAO4mE,SAEjBC,EAAe,GAGrB7mE,EAAO8mE,OAAOC,UAAWjQ,IAErB+P,EADkB/P,EAAEtsE,QAAQi8E,WACP3P,IAGzB,MAAMkQ,EAAc3mF,OAAO2I,KAAK69E,GAAS/7E,IAAIZ,GAAKmkB,SAASnkB,EAAG,KACxD+8E,EAAqB,GAE3BN,EAAQI,UAAWr3C,IACf,MAAMw3C,EAAcx3C,EACdllC,EAAU08E,EAAO18E,QACjBi8E,EAAYj8E,EAAQi8E,UAG1B,GAFAQ,EAAY90E,KAAKs0E,IAEc,IAA3Bj8E,EAAQ28E,iBAAwD,IAA7B38E,EAAQ48E,iBAA2B,CAEtE,MAAMC,EAAgBh+D,OAAQi+D,SAASb,GACvC,GAAIY,EAAS,CACT,IAAIh5B,GAAY,cAOhB,GALIA,IADAo4B,GAAa,EACA,oBAEA,oCAAqCA,KAGf,IAAnCO,EAAY5jF,QAAQqjF,GAAmB,CAEzC,MAAMc,GAAQ,IAAIjB,EAClBiB,GAAM/8E,QAAQ6jD,UAAYA,GAC1Bk5B,GAAM/8E,QAAQ+hE,aAAc,EAC3Bgb,GAAc/8E,QAAQi8E,UAAYA,EAClCc,GAAc/8E,QAAQk8E,WAAY,EACnCa,GAAM/8E,QAAQg9E,YAAa,EAC3BD,GAAM/8E,QAAQi9E,SAAU,EAEtBF,GAAMG,UAAUR,EAAOS,aACvB,MAAMhnB,GAAU7hE,KAAK8oF,mBAAmBP,GACxCE,GAAMM,WAAWlnB,IACjB4mB,GAAMO,MAAM9nE,EAAO8mE,OACvB,MACID,EAAQJ,GAAWiB,UAAUR,EAAOS,YAE5C,CAEJ,KAAO,CACH,MAAMJ,EAAQV,EAAQJ,GAClBc,IAAyC,IAAhCA,EAAM/8E,QAAQu9E,gBACvBR,EAAM/8E,QAAQk8E,WAAY,EAElC,IAGJM,EAAY30E,QAAQo0E,IAChB,IAAuC,IAAnCQ,EAAY7jF,QAAQqjF,GAAmB,CACvC,MAAMc,EAAQV,EAAQJ,GAClBc,IAAyC,IAAhCA,EAAM/8E,QAAQu9E,gBACvBR,EAAM/8E,QAAQk8E,WAAY,EAElC,IAIJ1mE,EAAO8mE,OAAOC,UAAWjQ,KAEO,IAAxBA,EAAEtsE,QAAQk8E,YACV1mE,EAAO8mE,OAAOkB,YAAYlR,GAC1BA,EAAEljB,SAAM,EAKpB,CAOOg0B,mBAAmBP,GACtB,IAAI1mB,EAAU,qCAAsC7hE,KAAKmpF,gCAA6BnjF,QAAIuiF,EAAS,2BAA4B,SAE/HA,SAAQa,OAAO9gE,KAAK,CAACC,EAAGC,IAAMD,EAAEm4B,WAAW2oC,YAAY5gE,cAAcD,EAAEk4B,WAAW2oC,cAAc91E,QAAQ+1E,SAG3EhoF,IAArBgoF,EAAM5oC,aACN4oC,EAAM5oC,WAAa6nC,EAAQ7nC,YAG/B,MAAMp9B,EAAMgmE,EAAMhmE,IAAIxQ,WAAW2Q,QAAQ,IAAK,KACxCC,EAAM4lE,EAAM5lE,IAAI5Q,WAAW2Q,QAAQ,IAAK,KAkBxC8lE,EAAuBvpF,KAAKqnF,YAAYmC,SAASrxD,YAAYQ,GAC7D8wD,EAAoBF,MAAwBvjF,QAAIuiF,EAAS,gBAAiB,IAE1EmB,EAAgB,qCAAqCpmE,KAAOI,IAE5DimE,EAAkB,4CACKL,EAAM5oC,WAAW9/C,sCAAuC0oF,EAAM5oC,WAAW2oC,aAAe,6CAGjHI,GACAzpF,KAAK4pF,wBAAwBL,IAAuBp7B,UAAUvY,IAAI,eAGtE,MAAMi0C,GAAeA,KACjB5+E,SAAS6+E,eAAe,iBAAkBR,EAAM5oC,WAAW9/C,OAAQq3D,iBAAiB,QAAU8xB,KAC1EA,GAAG/qC,OACamP,UAAUC,SAAS,oCAMnDpuD,KAAKsnF,iBAAiBJ,oBAAoB,qBAAsBoC,EAAM5oC,WAAW9/C,IACjFZ,KAAKq3B,OAAOG,SAAS,CAAC,QAAS,WAAY,CAACW,YAAa,CAAEG,KAAQ,UAAWK,GAAM2wD,EAAM5oC,WAAW9/C,MAAK,EAC7G,EAGL4U,WAAW,KACPq0E,IAAY,EACb,GAEHhoB,GAAW,yEAE0B7hE,KAAKmpF,gCAA6BnjF,QAAIsjF,EAAO,2BAA4B,+CACnFA,EAAM5oC,WAAW9/C,8CACf0oF,EAAM5oC,WAAW9/C,wGAEqB0oF,EAAM5oC,WAAW9/C,0FACb0oF,EAAM5oC,WAAW9/C,cAAc0oF,EAAM5oC,WAAW2oC,8CACpGM,8GAE2CD,4EAGlDH,MAAwBvjF,QAAIuiF,EAAS,gBAAiB,IACpD,kJAxDeyB,MACzB,MAAMC,GAAeh/E,SAAS6+E,eAAe,iBAAkBR,EAAM5oC,WAAW9/C,MAChF,GAAIqpF,GAAc,CACd,MAAMC,GAAgCD,GAAat9C,cAAc,qDACjE,GAAIu9C,IAAiCA,GAA8BC,WAAW9+E,OAC1E,OAAO4+E,GAAat9C,cAAc,qDAAqDw9C,SAE/F,CACA,MAbyB,2JAalBC,EAiDyEJ,2JACiD1mE,KAASI,8KAIhI,0CACN,GAKZm+C,GAAW,SAEJA,CACX,CAEQ+nB,wBAAwBjxD,GAC5B,MAAM4mB,EAAW9hC,MAAMR,KAAKhS,SAASo/E,uBAAuB,iBAAiB1xD,MAC7E,OAAO4mB,EAASl0C,OAAS,EAAIk0C,EAAS,GAAK,IAC7C,CAEF+qC,iBAAiBjkF,GACb,MAAMkkF,EAAcpH,GAAO+B,2BAA2Bl/E,IAAIK,GAC1D,OAAOkkF,EAAcA,EAAYlF,sBAAwB,sBAC7D,CAEQ8D,6BAA6BqB,GACjC,OAAIA,IAAkBvI,GAAkBG,OAC7B,YAEPoI,IAAkBvI,GAAkBE,OAC7B,YAIPqI,IAAkBvI,GAAkBK,OACpCkI,IAAkBvI,GAAkBI,OACpCmI,IAAkBvI,GAAkBM,cACpCiI,IAAkBvI,GAAkBO,MAG7B,WAEJ,EACX,iDAjOS4E,GAAoBzgF,MAAAC,OAAAD,MAAAE,IAAAF,MAAAC,OAAA,sCAApBwgF,EAAoBjgF,QAApBigF,EAAoBhgF,WAAA,SAApBggF,CAAoB,KCXlB,SAASqD,GAAOC,EAAKC,EAAQC,EAAU/c,EAAMC,EAAOxwD,GAC/D,GAAIwwD,EAAQD,GAAQ+c,EAAU,OAE9B,MAAMh6C,EAAKi9B,EAAOC,GAAU,EAE5B5L,GAAOwoB,EAAKC,EAAQ/5C,EAAGi9B,EAAMC,EAAOxwD,EAAQ,GAE5CmtE,GAAOC,EAAKC,EAAQC,EAAU/c,EAAMj9B,EAAI,EAAGtzB,EAAQ,GACnDmtE,GAAOC,EAAKC,EAAQC,EAAUh6C,EAAI,EAAGk9B,EAAOxwD,EAAQ,EACxD,CAEA,SAAS4kD,GAAOwoB,EAAKC,EAAQvgF,EAAGyjE,EAAMC,EAAO+c,GAEzC,KAAO/c,EAAQD,GAAM,CACjB,GAAIC,EAAQD,EAAO,IAAK,CACpB,MAAMx4B,EAAIy4B,EAAQD,EAAO,EACnBj9B,EAAIxmC,EAAIyjE,EAAO,EACfid,EAAIr+D,KAAKrN,IAAIi2B,GACbsB,EAAI,GAAMlqB,KAAKkc,IAAI,EAAImiD,EAAI,GAC3BC,GAAK,GAAMt+D,KAAKu+D,KAAKF,EAAIn0C,GAAKtB,EAAIsB,GAAKtB,IAAMzE,EAAIyE,EAAI,EAAI,GAAI,EAAK,GAGxE6sB,GAAOwoB,EAAKC,EAAQvgF,EAFJqiB,KAAKsqB,IAAI82B,EAAMphD,KAAKG,MAAMxiB,EAAIwmC,EAAI+F,EAAItB,EAAI01C,KACzCt+D,KAAKw+D,IAAInd,EAAOrhD,KAAKG,MAAMxiB,GAAKirC,EAAIzE,GAAK+F,EAAItB,EAAI01C,KACxBF,EAC9C,CAEA,MAAM/0D,EAAI60D,EAAO,EAAIvgF,EAAIygF,GACzB,IAAIz/E,EAAIyiE,EACJ9b,EAAI+b,EAKR,IAHAod,GAASR,EAAKC,EAAQ9c,EAAMzjE,GACxBugF,EAAO,EAAI7c,EAAQ+c,GAAO/0D,GAAGo1D,GAASR,EAAKC,EAAQ9c,EAAMC,GAEtD1iE,EAAI2mD,GAAG,CAIV,IAHAm5B,GAASR,EAAKC,EAAQv/E,EAAG2mD,GACzB3mD,IACA2mD,IACO44B,EAAO,EAAIv/E,EAAIy/E,GAAO/0D,GAAG1qB,IAChC,KAAOu/E,EAAO,EAAI54B,EAAI84B,GAAO/0D,GAAGi8B,GACpC,CAEI44B,EAAO,EAAI9c,EAAOgd,KAAS/0D,EAAGo1D,GAASR,EAAKC,EAAQ9c,EAAM9b,IAE1DA,IACAm5B,GAASR,EAAKC,EAAQ54B,EAAG+b,IAGzB/b,GAAK3nD,IAAGyjE,EAAO9b,EAAI,GACnB3nD,GAAK2nD,IAAG+b,EAAQ/b,EAAI,EAC5B,CACJ,CAEA,SAASm5B,GAASR,EAAKC,EAAQv/E,EAAG2mD,GAC9Bo5B,GAAKT,EAAKt/E,EAAG2mD,GACbo5B,GAAKR,EAAQ,EAAIv/E,EAAG,EAAI2mD,GACxBo5B,GAAKR,EAAQ,EAAIv/E,EAAI,EAAG,EAAI2mD,EAAI,EACpC,CAEA,SAASo5B,GAAKC,EAAKhgF,EAAG2mD,GAClB,MAAMs5B,EAAMD,EAAIhgF,GAChBggF,EAAIhgF,GAAKggF,EAAIr5B,GACbq5B,EAAIr5B,GAAKs5B,CACb,CCpBA,SAASC,GAAOC,EAAIC,EAAIC,EAAIC,GACxB,MAAMC,EAAKJ,EAAKE,EACVG,EAAKJ,EAAKE,EAChB,OAAOC,EAAKA,EAAKC,EAAKA,CAC1B,CCzCA,MAAMC,GAAchqF,GAAKA,EAAE,GACrBiqF,GAAcjqF,GAAKA,EAAE,GAEZ,MAAMkqF,GACjBjsF,YAAYspF,EAAQ4C,EAAOH,GAAaI,EAAOH,GAAalB,EAAW,GAAIsB,EAAYC,cACnFnsF,KAAK4qF,SAAWA,EAChB5qF,KAAKopF,OAASA,EAEd,MAAMgD,EAAiBhD,EAAO/9E,OAAS,MAAQghF,YAAcC,YAEvD5B,EAAM1qF,KAAK0qF,IAAM,IAAI0B,EAAehD,EAAO/9E,QAC3Cs/E,EAAS3qF,KAAK2qF,OAAS,IAAIuB,EAA0B,EAAhB9C,EAAO/9E,QAElD,QAASD,EAAI,EAAGA,EAAIg+E,EAAO/9E,OAAQD,IAC/Bs/E,EAAIt/E,GAAKA,EACTu/E,EAAO,EAAIv/E,GAAK4gF,EAAK5C,EAAOh+E,IAC5Bu/E,EAAO,EAAIv/E,EAAI,GAAK6gF,EAAK7C,EAAOh+E,IAGpCkd,GAAKoiE,EAAKC,EAAQC,EAAU,EAAGF,EAAIr/E,OAAS,EAAG,EACnD,CAEAwjE,MAAM0d,EAAMC,EAAMC,EAAMC,GACpB,OC3BO,SAAS7d,GAAM6b,EAAKC,EAAQ4B,EAAMC,EAAMC,EAAMC,EAAM9B,GAC/D,MAAM+B,EAAQ,CAAC,EAAGjC,EAAIr/E,OAAS,EAAG,GAC5BhG,EAAS,GACf,IAAIiI,EAAG6sE,EAEP,KAAOwS,EAAMthF,QAAQ,CACjB,MAAMuhF,EAAOD,EAAME,MACb/e,EAAQ6e,EAAME,MACdhf,GAAO8e,EAAME,MAEnB,GAAI/e,EAAQD,IAAQ+c,EAAU,CAC1B,QAASx/E,GAAIyiE,GAAMziE,IAAK0iE,EAAO1iE,KAC3BkC,EAAIq9E,EAAO,EAAIv/E,IACf+uE,EAAIwQ,EAAO,EAAIv/E,GAAI,GACfkC,GAAKi/E,GAAQj/E,GAAKm/E,GAAQtS,GAAKqS,GAAQrS,GAAKuS,GAAMrnF,EAAOgO,KAAKq3E,EAAIt/E,KAE1E,QACJ,CAEA,MAAMwlC,GAAInkB,KAAKG,OAAOihD,GAAOC,GAAS,GAEtCxgE,EAAIq9E,EAAO,EAAI/5C,IACfupC,EAAIwQ,EAAO,EAAI/5C,GAAI,GAEftjC,GAAKi/E,GAAQj/E,GAAKm/E,GAAQtS,GAAKqS,GAAQrS,GAAKuS,GAAMrnF,EAAOgO,KAAKq3E,EAAI95C,KAEtE,MAAMk8C,IAAYF,EAAO,GAAK,GAEjB,IAATA,EAAaL,GAAQj/E,EAAIk/E,GAAQrS,KACjCwS,EAAMt5E,KAAKw6D,IACX8e,EAAMt5E,KAAKu9B,GAAI,GACf+7C,EAAMt5E,KAAKy5E,MAEF,IAATF,EAAaH,GAAQn/E,EAAIo/E,GAAQvS,KACjCwS,EAAMt5E,KAAKu9B,GAAI,GACf+7C,EAAMt5E,KAAKy6D,GACX6e,EAAMt5E,KAAKy5E,IAEnB,CAEA,OAAOznF,CACX,CDdewpE,CAAM7uE,KAAK0qF,IAAK1qF,KAAK2qF,OAAQ4B,EAAMC,EAAMC,EAAMC,EAAM1sF,KAAK4qF,SACrE,CAEAmC,OAAOz/E,EAAG6sE,EAAGxrE,GACT,OD/BO,SAASo+E,GAAOrC,EAAKC,EAAQqC,EAAIC,EAAIt+E,EAAGi8E,GACnD,MAAM+B,EAAQ,CAAC,EAAGjC,EAAIr/E,OAAS,EAAG,GAC5BhG,EAAS,GACT6nF,EAAKv+E,EAAIA,EAEf,KAAOg+E,EAAMthF,QAAQ,CACjB,MAAMuhF,EAAOD,EAAME,MACb/e,EAAQ6e,EAAME,MACdhf,EAAO8e,EAAME,MAEnB,GAAI/e,EAAQD,GAAQ+c,EAAU,CAC1B,QAASx/E,GAAIyiE,EAAMziE,IAAK0iE,EAAO1iE,KACvBkgF,GAAOX,EAAO,EAAIv/E,IAAIu/E,EAAO,EAAIv/E,GAAI,GAAI4hF,EAAIC,IAAOC,GAAI7nF,EAAOgO,KAAKq3E,EAAIt/E,KAEhF,QACJ,CAEA,MAAMwlC,EAAInkB,KAAKG,OAAOihD,EAAOC,GAAS,GAEhCxgE,GAAIq9E,EAAO,EAAI/5C,GACfupC,GAAIwQ,EAAO,EAAI/5C,EAAI,GAErB06C,GAAOh+E,GAAG6sE,GAAG6S,EAAIC,IAAOC,GAAI7nF,EAAOgO,KAAKq3E,EAAI95C,IAEhD,MAAMk8C,IAAYF,EAAO,GAAK,GAEjB,IAATA,EAAaI,EAAKr+E,GAAKrB,GAAI2/E,EAAKt+E,GAAKwrE,MACrCwS,EAAMt5E,KAAKw6D,GACX8e,EAAMt5E,KAAKu9B,EAAI,GACf+7C,EAAMt5E,KAAKy5E,MAEF,IAATF,EAAaI,EAAKr+E,GAAKrB,GAAI2/E,EAAKt+E,GAAKwrE,MACrCwS,EAAMt5E,KAAKu9B,EAAI,GACf+7C,EAAMt5E,KAAKy6D,GACX6e,EAAMt5E,KAAKy5E,IAEnB,CAEA,OAAOznF,CACX,CCRe0nF,CAAO/sF,KAAK0qF,IAAK1qF,KAAK2qF,OAAQr9E,EAAG6sE,EAAGxrE,EAAG3O,KAAK4qF,SACvD,EE9BJ,MAAMuC,GAAiB,CACnBjH,QAAS,EACTC,QAAS,GACTiH,UAAW,EACXC,OAAQ,GACRC,OAAQ,IACR1C,SAAU,GACVxrE,KAAK,EAGLmuE,YAAY,EAGZC,OAAQ,KAGRxhF,IAAKwoD,GAASA,GAGZi5B,GAAShhE,KAAKghE,QAAWpC,IAAS/9E,IAAQ+9E,EAAI,IAAM/9E,EAAU+9E,EAAI,IAAzCA,CAAiD,IAAIqC,aAAa,IAElF,MAAMC,GACjB7tF,YAAY4L,GACR1L,KAAK0L,QAAUg8E,GAAOnmF,OAAOgkD,OAAO4nC,IAAiBzhF,GACrD1L,KAAK4tF,MAAQ,IAAInwE,MAAMzd,KAAK0L,QAAQy6E,QAAU,EAClD,CAEA0H,KAAKzE,GACD,MAAOhqE,MAAK8mE,UAASC,UAASyE,YAAY5qF,KAAK0L,QAE3C0T,GAAK7Z,QAAQoC,KAAK,cAEtB,MAAMmmF,EAAU,WAAa1E,EAAO/9E,gBAChC+T,GAAK7Z,QAAQoC,KAAKmmF,GAEtB9tF,KAAKopF,OAASA,EAGd,IAAItB,EAAW,GACf,QAAS18E,EAAI,EAAGA,EAAIg+E,EAAO/9E,OAAQD,IAC1Bg+E,EAAOh+E,GAAG2iF,UACfjG,EAASz0E,KAAK26E,GAAmB5E,EAAOh+E,GAAIA,IAEhDpL,KAAK4tF,MAAMzH,EAAU,GAAK,IAAI4F,GAAOjE,EAAUkE,GAAMC,GAAMrB,EAAU8C,cAEjEtuE,GAAK7Z,QAAQ0oF,QAAQH,GAIzB,QAAShD,EAAI3E,EAAS2E,GAAK5E,EAAS4E,IAAK,CACrC,MAAM9jE,GAAOpf,KAAKof,MAGlB8gE,EAAW9nF,KAAKkuF,SAASpG,EAAUgD,GACnC9qF,KAAK4tF,MAAM9C,GAAK,IAAIiB,GAAOjE,EAAUkE,GAAMC,GAAMrB,EAAU8C,cAEvDtuE,GAAK7Z,QAAQ6Z,IAAI,2BAA4B0rE,EAAGhD,EAASz8E,QAASzD,KAAKof,MAAQA,EACvF,CAEA,OAAI5H,GAAK7Z,QAAQ0oF,QAAQ,cAElBjuF,IACX,CAEAmuF,YAAYC,EAAMC,GACd,IAAIC,IAAWF,EAAK,GAAK,KAAO,IAAM,KAAO,IAAM,IACnD,MAAMG,EAAS9hE,KAAKsqB,KAAI,GAAKtqB,KAAKw+D,IAAI,GAAImD,EAAK,KAC/C,IAAII,EAAqB,MAAZJ,EAAK,GAAa,MAAQA,EAAK,GAAK,KAAO,IAAM,KAAO,IAAM,IAC3E,MAAMK,EAAShiE,KAAKsqB,KAAI,GAAKtqB,KAAKw+D,IAAI,GAAImD,EAAK,KAE/C,GAAIA,EAAK,GAAKA,EAAK,IAAM,IACrBE,GAAS,IACTE,EAAS,YACFF,EAASE,EAAQ,CACxB,MAAME,EAAa1uF,KAAKmuF,YAAY,CAACG,EAAQC,EAAQ,IAAKE,GAASJ,GAC7DM,EAAa3uF,KAAKmuF,YAAY,EAAC,IAAMI,EAAQC,EAAQC,GAASJ,GACpE,OAAOK,EAAWriE,OAAOsiE,EAC7B,CAEA,MAAMla,EAAOz0E,KAAK4tF,MAAM5tF,KAAK4uF,WAAWP,IAClC3D,EAAMjW,EAAK5F,MAAMggB,GAAKP,GAASQ,GAAKL,GAASI,GAAKL,GAASM,GAAKP,IAChEzG,EAAW,GACjB,UAAWnvD,KAAM+xD,EAAK,CAClB,MAAMhvD,EAAI+4C,EAAK2U,OAAOzwD,GACtBmvD,EAASz0E,KAAKqoB,EAAEqzD,UAAYC,GAAetzD,GAAK17B,KAAKopF,OAAO1tD,EAAE/G,OAClE,CACA,OAAOmzD,CACX,CAEAmH,YAAYtH,GACR,MAAMuH,EAAWlvF,KAAKmvF,aAAaxH,GAC7ByH,EAAapvF,KAAKqvF,eAAe1H,GACjC2H,EAAW,oCAEX36D,EAAQ30B,KAAK4tF,MAAMwB,GACzB,IAAKz6D,EAAO,MAAM,IAAIjY,MAAM4yE,GAE5B,MAAMC,EAAS56D,EAAMy0D,OAAO8F,GAC5B,IAAKK,EAAQ,MAAM,IAAI7yE,MAAM4yE,GAE7B,MAAM3gF,EAAI3O,KAAK0L,QAAQ2hF,QAAUrtF,KAAK0L,QAAQ4hF,OAAS7gE,KAAKo1B,IAAI,EAAGutC,EAAa,IAC1E1E,EAAM/1D,EAAMo4D,OAAOwC,EAAOjiF,EAAGiiF,EAAOpV,EAAGxrE,GACvC6gF,EAAW,GACjB,UAAW72D,KAAM+xD,EAAK,CAClB,MAAMhvD,EAAI/G,EAAMy0D,OAAOzwD,GACnB+C,EAAE+zD,WAAa9H,GACf6H,EAASn8E,KAAKqoB,EAAEqzD,UAAYC,GAAetzD,GAAK17B,KAAKopF,OAAO1tD,EAAE/G,OAEtE,CAEA,GAAwB,IAApB66D,EAASnkF,OAAc,MAAM,IAAIqR,MAAM4yE,GAE3C,OAAOE,CACX,CAEAE,UAAU/H,EAAWtuC,EAAO/sB,GAIxB,MAAMqjE,EAAS,GACf,OAAA3vF,KAAK4vF,cAAcD,EAAQhI,EAJ3BtuC,EAAQA,GAAS,GACjB/sB,EAASA,GAAU,EAGkC,GAE9CqjE,CACX,CAEAE,QAAQ/E,EAAGx9E,EAAG6sE,GACV,MAAM1F,EAAOz0E,KAAK4tF,MAAM5tF,KAAK4uF,WAAW9D,IAClCgF,EAAKrjE,KAAKo1B,IAAI,EAAGipC,IAChBwC,SAAQD,UAAUrtF,KAAK0L,QACxB7J,EAAIwrF,EAASC,EACbhhB,GAAO6N,EAAIt4E,GAAKiuF,EAChB/hB,GAAUoM,EAAI,EAAIt4E,GAAKiuF,EAEvBC,EAAO,CACTC,SAAU,IAGd,OAAAhwF,KAAKiwF,iBACDxb,EAAK5F,OAAOvhE,EAAIzL,GAAKiuF,EAAIxjB,GAAMh/D,EAAI,EAAIzL,GAAKiuF,EAAI/hB,GAChD0G,EAAK2U,OAAQ97E,EAAG6sE,EAAG2V,EAAIC,GAEjB,IAANziF,GACAtN,KAAKiwF,iBACDxb,EAAK5F,MAAM,EAAIhtE,EAAIiuF,EAAIxjB,EAAK,EAAGyB,GAC/B0G,EAAK2U,OAAQ0G,EAAI3V,EAAG2V,EAAIC,GAE5BziF,IAAMwiF,EAAK,GACX9vF,KAAKiwF,iBACDxb,EAAK5F,MAAM,EAAGvC,EAAKzqE,EAAIiuF,EAAI/hB,GAC3B0G,EAAK2U,QAAQ,EAAIjP,EAAG2V,EAAIC,GAGzBA,EAAKC,SAAS3kF,OAAS0kF,EAAO,IACzC,CAEAG,wBAAwBvI,GACpB,IAAIwI,EAAgBnwF,KAAKqvF,eAAe1H,GAAa,EACrD,KAAOwI,GAAiBnwF,KAAK0L,QAAQy6E,SAAS,CAC1C,MAAMqJ,EAAWxvF,KAAKivF,YAAYtH,GAElC,GADAwI,IACwB,IAApBX,EAASnkF,OAAc,MAC3Bs8E,EAAY6H,EAAS,GAAG9uC,WAAW0vC,UACvC,CACA,OAAOD,CACX,CAEAP,cAAcvqF,EAAQsiF,EAAWtuC,EAAO/sB,EAAQ+jE,GAC5C,MAAMb,EAAWxvF,KAAKivF,YAAYtH,GAElC,UAAW2I,KAASd,EAAU,CAC1B,MAAMh7B,EAAQ87B,EAAM5vC,WAkBpB,GAhBI8T,GAASA,EAAM+zB,QACX8H,EAAU77B,EAAM+7B,aAAejkE,EAE/B+jE,GAAW77B,EAAM+7B,YAGjBF,EAAUrwF,KAAK4vF,cAAcvqF,EAAQmvD,EAAM47B,WAAY/2C,EAAO/sB,EAAQ+jE,GAGnEA,EAAU/jE,EAEjB+jE,IAGAhrF,EAAOgO,KAAKi9E,GAEZjrF,EAAOgG,SAAWguC,EAAO,KACjC,CAEA,OAAOg3C,CACX,CAEAJ,iBAAiBvF,EAAKtB,EAAQ97E,EAAG6sE,EAAG2V,EAAIC,GACpC,UAAW3kF,KAAKs/E,EAAK,CACjB,MAAMhvD,EAAI0tD,EAAOh+E,GACXolF,EAAY90D,EAAEqzD,UAEpB,IAAI0B,EAAMC,EAAIC,EACd,GAAIH,EACAC,EAAOG,GAAqBl1D,GAC5Bg1D,EAAKh1D,EAAEpuB,EACPqjF,EAAKj1D,EAAEy+C,MACJ,CACH,MAAMt4E,GAAI7B,KAAKopF,OAAO1tD,EAAE/G,OACxB87D,EAAO5uF,GAAE6+C,WACTgwC,EAAK7B,GAAKhtF,GAAEksF,SAAS8C,YAAY,IACjCF,EAAK7B,GAAKjtF,GAAEksF,SAAS8C,YAAY,GACrC,CAEA,MAAMnsC,GAAI,CACN1hD,KAAM,EACN+qF,SAAU,CAAC,CACPthE,KAAKq1B,MAAM9hD,KAAK0L,QAAQ4hF,QAAUoD,EAAKZ,EAAKxiF,IAC5Cmf,KAAKq1B,MAAM9hD,KAAK0L,QAAQ4hF,QAAUqD,EAAKb,EAAK3V,MAEhDsW,QAIJ,IAAI93D,GACA63D,EACA73D,GAAK+C,EAAE/C,GACA34B,KAAK0L,QAAQ6hF,WAEpB50D,GAAK+C,EAAE/G,MACA30B,KAAKopF,OAAO1tD,EAAE/G,OAAOgE,KAE5BA,GAAK34B,KAAKopF,OAAO1tD,EAAE/G,OAAOgE,SAGnBr3B,IAAPq3B,KAAkB+rB,GAAE/rB,GAAKA,IAE7Bo3D,EAAKC,SAAS38E,KAAKqxC,GACvB,CACJ,CAEAkqC,WAAW9D,GACP,OAAOr+D,KAAKsqB,IAAI/2C,KAAK0L,QAAQw6E,QAASz5D,KAAKw+D,IAAIx+D,KAAKG,OAAOk+D,GAAI9qF,KAAK0L,QAAQy6E,QAAU,GAC1F,CAEA+H,SAAS9E,EAAQiF,GACb,MAAMvG,EAAW,IACVuF,SAAQC,SAAQE,SAAQJ,aAAaptF,KAAK0L,QAC3CiD,EAAI0+E,GAAUC,EAAS7gE,KAAKo1B,IAAI,EAAGwsC,IAGzC,QAASjjF,EAAI,EAAGA,EAAIg+E,EAAO/9E,OAAQD,IAAK,CACpC,MAAMvJ,EAAIunF,EAAOh+E,GAEjB,GAAIvJ,EAAEwsF,MAAQA,EAAM,SACpBxsF,EAAEwsF,KAAOA,EAGT,MAAM5Z,EAAOz0E,KAAK4tF,MAAMS,EAAO,GACzByC,EAAcrc,EAAKsY,OAAOlrF,EAAEyL,EAAGzL,EAAEs4E,EAAGxrE,GAEpCoiF,GAAkBlvF,EAAEktF,WAAa,EACvC,IAAIA,GAAYgC,GAGhB,UAAWC,MAAcF,EAAa,CAClC,MAAMtoE,GAAIisD,EAAK2U,OAAO4H,IAElBxoE,GAAE6lE,KAAOA,IAAMU,IAAavmE,GAAEumE,WAAa,EACnD,CAGA,GAAIA,GAAYgC,IAAmBhC,IAAa3B,EAAW,CACvD,IAAI6D,GAAKpvF,EAAEyL,EAAIyjF,GACXG,GAAKrvF,EAAEs4E,EAAI4W,GAEXI,GAAoB3D,GAAUuD,GAAkB,EAAI/wF,KAAKw6C,KAAK34C,GAAG,GAAQ,KAG7E,MAAM82B,IAAMvtB,GAAK,IAAMijF,EAAO,GAAKruF,KAAKopF,OAAO/9E,OAE/C,UAAW2lF,MAAcF,EAAa,CAClC,MAAMtoE,GAAIisD,EAAK2U,OAAO4H,IAEtB,GAAIxoE,GAAE6lE,MAAQA,EAAM,SACpB7lE,GAAE6lE,KAAOA,EAET,MAAM+C,GAAa5oE,GAAEumE,WAAa,EAClCkC,IAAMzoE,GAAElb,EAAI8jF,GACZF,IAAM1oE,GAAE2xD,EAAIiX,GAEZ5oE,GAAEinE,SAAW92D,GAET60D,IACK2D,KAAmBA,GAAoBnxF,KAAKw6C,KAAK34C,GAAG,IACzD2rF,EAAO2D,GAAmBnxF,KAAKw6C,KAAKhyB,KAE5C,CAEA3mB,EAAE4tF,SAAW92D,GACbmvD,EAASz0E,KAAKg+E,GAAcJ,GAAKlC,GAAWmC,GAAKnC,GAAWp2D,GAAIo2D,GAAWoC,IAE/E,SACIrJ,EAASz0E,KAAKxR,GAEVktF,GAAY,EACZ,UAAWiC,MAAcF,EAAa,CAClC,MAAMtoE,GAAIisD,EAAK2U,OAAO4H,IAClBxoE,GAAE6lE,MAAQA,IACd7lE,GAAE6lE,KAAOA,EACTvG,EAASz0E,KAAKmV,IAClB,CAGZ,CAEA,OAAOs/D,CACX,CAGAqH,aAAaxH,GACT,OAAQA,EAAY3nF,KAAKopF,OAAO/9E,QAAW,CAC/C,CAGAgkF,eAAe1H,GACX,OAAQA,EAAY3nF,KAAKopF,OAAO/9E,QAAU,EAC9C,CAEAmvC,KAAK8uC,EAAO5kF,GACR,GAAI4kF,EAAMyF,UACN,OAAOrqF,EAAQgjF,GAAO,CAAC,EAAG4B,EAAM5oC,YAAc4oC,EAAM5oC,WAExD,MAAMrQ,EAAWrwC,KAAKopF,OAAOE,EAAM30D,OAAO+rB,WACpCr7C,EAASrF,KAAK0L,QAAQM,IAAIqkC,GAChC,OAAO3rC,GAASW,IAAWgrC,EAAWq3C,GAAO,CAAC,EAAGriF,GAAUA,CAC/D,EAGJ,SAASgsF,GAAc/jF,EAAG6sE,EAAGxhD,EAAIo2D,EAAWruC,GACxC,MAAO,CACHpzC,EAAGmgF,GAAOngF,GACV6sE,EAAGsT,GAAOtT,GACVkU,KAAMiD,IACN34D,KACA82D,UAAU,EACVV,YACAruC,aAER,CAEA,SAASstC,GAAmBnsF,EAAG82B,GAC3B,MAAOrrB,EAAG6sE,GAAKt4E,EAAEksF,SAAS8C,YAC1B,MAAO,CACHvjF,EAAGmgF,GAAOoB,GAAKvhF,IACf6sE,EAAGsT,GAAOqB,GAAK3U,IACfkU,KAAMiD,IACN38D,MAAOgE,EACP82D,UAAU,EAElB,CAEA,SAAST,GAAezG,GACpB,MAAO,CACHvlF,KAAM,UACN21B,GAAI4vD,EAAQ5vD,GACZ+nB,WAAYkwC,GAAqBrI,GACjCwF,SAAU,CACN/qF,KAAM,QACN6tF,YAAa,CAACU,GAAKhJ,EAAQj7E,GAAIkkF,GAAKjJ,EAAQpO,KAGxD,CAEA,SAASyW,GAAqBrI,GAC1B,MAAM30D,EAAQ20D,EAAQwG,UAChB0C,EACF79D,GAAS,IAAQ,GAAGnH,KAAKq1B,MAAMluB,EAAQ,QACvCA,GAAS,IAAUnH,KAAKq1B,MAAMluB,EAAQ,KAAO,GAA7B,IAAuCA,EAC3D,OAAO8zD,GAAOA,GAAO,CAAC,EAAGa,EAAQ7nC,YAAa,CAC1C6nC,SAAS,EACT6H,WAAY7H,EAAQ5vD,GACpB43D,YAAa38D,EACb89D,wBAAyBD,GAEjC,CAGA,SAAS5C,GAAKnrE,GACV,OAAOA,EAAM,IAAM,EACvB,CACA,SAASorE,GAAKxrE,GACV,MAAMquE,EAAMllE,KAAKklE,IAAIruE,EAAMmJ,KAAKmlE,GAAK,KAC/BzX,EAAK,GAAM,IAAO1tD,KAAKrN,KAAK,EAAIuyE,IAAQ,EAAIA,IAAQllE,KAAKmlE,GAC/D,OAAOzX,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,CACnC,CAGA,SAASoX,GAAKjkF,GACV,OAAmB,KAAXA,EAAI,GAChB,CACA,SAASkkF,GAAKrX,GACV,MAAM0X,GAAM,IAAU,IAAJ1X,GAAW1tD,KAAKmlE,GAAK,IACvC,OAAO,IAAMnlE,KAAKqlE,KAAKrlE,KAAKkc,IAAIkpD,IAAOplE,KAAKmlE,GAAK,EACrD,CAEA,SAASlK,GAAOqK,EAAMC,GAClB,UAAWr5D,KAAMq5D,EAAKD,EAAKp5D,GAAMq5D,EAAIr5D,GACrC,OAAOo5D,CACX,CAEA,SAAS/F,GAAKnqF,GACV,OAAOA,EAAEyL,CACb,CACA,SAAS2+E,GAAKpqF,GACV,OAAOA,EAAEs4E,CACb,CC5ZM,MAAO8X,GA2BTnyF,YAAmBwjB,EAAc,EAAGI,EAAc,GAC9C1jB,KAAKsjB,IAAMA,EACXtjB,KAAK0jB,IAAMA,CACf,EC5BE,MAAOwuE,WAAgBD,GAA7BnyF,kCAUWE,KAAAopF,OAAkB,EAuB7B,CAlBI,cAAW+I,GACP,OAAOnyF,KAAKopF,OAAO/9E,MACvB,CAMA+mF,eACI,OAAIpyF,KAAK2nF,UACE3nF,KAAK2nF,UAEZ3nF,KAAK0gD,YAAc1gD,KAAK0gD,YAAc1gD,KAAK0gD,WAAW9/C,IAC7CZ,KAAK0gD,WAAW9/C,IAEtB,CACX,ECrBG,IAAMyxF,GAAc,MAArB,MAAOA,EAyBTvyF,cAdQE,KAAA0L,QAAe,CACnBw6E,QAAS,EACTC,QAAS,GACTkH,OAAQ,IACRC,OAAQ,IACR1C,SAAU,GACVxrE,KAAK,GAWLpf,KAAK20B,MAAQ,IAAIg5D,GAAa3tF,KAAK0L,QACvC,CAOOmiF,KAAKzE,GAGR,MAAM4G,EAAkDhwF,KAAKsyF,gCAAgClJ,GAC7FppF,KAAK20B,MAAMk5D,KAAKmC,EACpB,CAQO7B,YAAYoE,EAAsBlE,GACrC,IAAIvG,EACJ,IAEI,MAAMsG,EAAO,CAACmE,EAAOC,UAAWD,EAAOE,WAAYF,EAAOG,UAAWH,EAAOI,YACtEC,EAAK5yF,KAAK20B,MAAMw5D,YAAYC,EAAMC,GACxCvG,EAAW9nF,KAAK6yF,kCAAkCD,EACtD,OAASt4E,GACL/U,QAAQC,MAAM,uBAAwB8U,GACtCwtE,EAAW,EACf,CACA,OAAOA,CACX,CASO+H,QAAQxB,EAAc/gF,EAAW6sE,GAEpCn6E,KAAK20B,MAAMk7D,QAAQxB,EAAM/gF,EAAG6sE,EAChC,CAOO8U,YAAYtH,GAEf,MAAMqI,EAAgChwF,KAAK20B,MAAMs6D,YAAYtH,GAC7D,OAAO3nF,KAAK8yF,gCAAgC9C,EAChD,CAUON,UAAU/H,EAAmBtuC,EAAgB,GAAI/sB,EAAiB,GAErE,MAAM0jE,EAAgChwF,KAAK20B,MAAM+6D,UAAU/H,EAAWtuC,EAAO/sB,GAC7E,OAAOtsB,KAAK8yF,gCAAgC9C,EAChD,CAQOE,wBAAwBvI,GAE3B,OAAO3nF,KAAK20B,MAAMu7D,wBAAwBvI,EAC9C,CAOQ2K,gCAAgClJ,GAEpC,MAAM4G,EAAkD,GAExD,UAAW1G,KAASF,EAYhB4G,EAAS38E,KAX4C,CACjDrQ,KAAM,UACN09C,WAAY4oC,EAAM5oC,WAClBqtC,SAAU,CACN/qF,KAAM,QACN6tF,YAAa,CACTvH,EAAM5lE,IACN4lE,EAAMhmE,QAOtB,OAAO0sE,CACX,CAOQ8C,gCAAgC9C,GAEpC,MAAM5G,EAAkB,GAExB,UAAW2J,KAAW/C,EAMlB5G,EAAO/1E,KALc,CACjBiQ,IAAKyvE,EAAQhF,SAAS8C,YAAY,GAClCntE,IAAKqvE,EAAQhF,SAAS8C,YAAY,GAClCnwC,WAAYqyC,EAAQryC,aAK5B,OAAO0oC,EAAO9gE,KAAK,CAAChb,EAAG6sE,IAAM7sE,EAAEozC,WAAW9/C,GAAKu5E,EAAEz5B,WAAW9/C,GAChE,CAOQiyF,kCAAkC7C,GAEtC,MAAMlI,EAAsB,GAE5B,UAAWpjC,KAAKsrC,EAAU,CACtB,MAAMt0D,EAAI,IAAIw2D,GAEdx2D,EAAEisD,UAAYjjC,EAAEhE,YAAa0vC,WAC7B10D,EAAEpY,IAAMohC,EAAEqpC,SAAS8C,YAAY,GAC/Bn1D,EAAEhY,IAAMghC,EAAEqpC,SAAS8C,YAAY,GAC/Bn1D,EAAE0tD,OAAS1tD,EAAEisD,UAAY3nF,KAAK0vF,UAAUh0D,EAAEisD,UAAW2J,KAAY,CAAC,IAAIW,GAAMv2D,EAAEpY,IAAKoY,EAAEhY,MACrFgY,EAAEglB,WAAagE,EAAEhE,WAEjBonC,EAASz0E,KAAKqoB,EAClB,CAEA,OAAOosD,CACX,iDArLSuK,EAAc,sCAAdA,EAAclrF,QAAdkrF,EAAcjrF,WAAA,SAAdirF,CAAc,KCJdW,GAAc,MAArB,MAAOA,EAMF,yCAAOC,CAAmCC,EAAaC,GAG1DD,EAAOtyF,GAAWsyF,EAAQE,0BAE1B,UAAWpwF,KAAQmwF,EACf,GAAID,EAAO9vE,KAAOpgB,EAAKme,KAAM,CACzB+xE,EAAO3xE,MAAQve,EAAKue,MACpB,KACJ,CA6EJ,OAAgC2xE,CACpC,CAKO,0BAAOG,CAAoBhtF,GAO9B,OAAQA,GACJ,KAAK,EACD,OAAO,EACX,KAAK,EACD,OAAO,EACX,KAAK,EACD,OAAO,EAGX,QACI,OAAO,EAEnB,CAOO,yBAAOitF,CAAmBC,GAC7B,IAAIjpC,EACJ,OAAQipC,GACJ,KAAK,EACDjpC,EAAQu4B,GAAkBG,KAC1B,MACJ,KAAK,EASL,QACI14B,EAAQu4B,GAAkBI,KAC1B,MARJ,KAAK,EACD34B,EAAQu4B,GAAkBE,KAC1B,MACJ,KAAK,EACDz4B,EAAQu4B,GAAkBC,QAMlC,OAAOx4B,CACX,CAMOkpC,oBAAoB9wE,GAEvB,IAAKA,EACD,MAAO,GAGX,MAAM0mE,EAAkB,GAExB,UAAWjnF,KAAKugB,EAAU,CAItB,IAAI7hB,EAAe,EAMnB,GALIsB,EAAExB,KAAOshF,GAAkBE,SAC3BthF,EAAesB,EAAEtB,cAIjBsB,EAAEkhB,GAAI,CAEN,MAAMC,EAAMC,YAAY,GAAKphB,EAAEkhB,GAAGG,IAAIC,QAAQ,IAAK,MAC7CC,EAAMH,YAAY,GAAKphB,EAAEkhB,GAAGM,IAAIF,QAAQ,IAAK,MAE/CH,GAAe,MAARA,GAAeI,GAAe,MAARA,GAW7B0lE,EAAO/1E,KAVc,CACjBiQ,IAAMA,EACNI,IAAMA,EACNg9B,WAAY,CACR9/C,GAAIuB,EAAEvB,GACN4pF,cAAeroF,EAAExB,GACjB0oF,YAAalnF,EAAE1B,GACfI,aAAcA,IAK9B,CAEJ,CACA,OAAOuoF,CACX,iDA9LS4J,EAAc,sCAAdA,EAAc7rF,QAAd6rF,EAAc5rF,WAAA,SAAd4rF,CAAc,KCEdS,GAAoB,MAA3B,MAAOA,EAqCT3zF,YACY4zF,GAAA1zF,KAAA0zF,aAjCJ1zF,KAAA2zF,aAAqC,IAAI1qF,KAAgB,MAqCjEjJ,KAAA4zF,SAAW,CAFX,CAWOC,KAAK/L,EAAqB97E,GAG7B,MAAMqY,EAAQ,IAAIyvE,gBAID,MAAb9zF,KAAK+zF,MACL/zF,KAAK+zF,KAAKj/B,SAiBd,IAAIk/B,EAAiBlM,EACjBmM,EAAwBnM,EAASlmF,KAAK85B,GAAKA,EAAEy2D,WAAa,GAAKz2D,EAAE0tD,OAAOnpE,KAAKpe,GAAKA,EAAE6+C,WAAW9/C,IAAMZ,KAAK0zF,WAAW1M,wBAEzH,GAAIiN,GAAyBA,EAAsB9B,WAAa,EAAG,CAC/D6B,EAAiBlM,EAAS75E,OAAOytB,GAAKA,GAAKu4D,GAE3C,IAAIC,EAAeD,EAAsB7K,OAAOxnF,KAAKC,GAAKA,EAAE6+C,WAAW9/C,KAAOZ,KAAK0zF,WAAW1M,uBAC1FmN,EAAiBF,EACrBE,EAAe/K,OAAS6K,EAAsB7K,OAAOn7E,OAAOpM,GAAKA,GAAKqyF,GAEtE,IAAIE,EAAwB,IAAIlC,GAAQgC,EAAc5wE,IAAK4wE,EAAcxwE,KACzE0wE,EAAsB1zC,WAAawzC,EAAcxzC,WACjD0zC,EAAsBhL,OAAO/1E,KAAK6gF,GAElCF,EAAe3gF,KAAK+gF,EAAuBD,GAErC5pE,OAAQi+D,SAAS4L,EAAsBhC,gBAAkBgC,CACnE,CAEA,UAAW7L,KAAWyL,EAGdzL,EAAQ4J,WAAa,EAErBnyF,KAAKq0F,mBAAmB9L,EAASlkE,EAAOrY,GAGxChM,KAAKs0F,YAAY/L,EAASlkE,EAAOrY,GAKzC,OAAOqY,CACX,CAEOkwE,wBACH,OAAOv0F,KAAK2zF,aAAa/tF,cAC7B,CAQQyuF,mBAAmB9L,EAAkBlkE,EAAmBrY,EAAUN,GAGtE,MAAM8oF,EAAa,IAAI1hD,IACvB,UAAWw2C,MAASf,EAAQa,OACxBoL,EAAW5+C,IAAI51C,KAAKy0F,gBAAgBnL,GAAM5oC,WAAW8pC,gBAIzD,IAAIkK,EAAM,EACVF,EAAWjhF,QAAQstD,KACf6zB,GAAO7zB,KAGX,MAmBM8zB,EAAY,GAAGpM,EAAQ6J,iBACvBwC,EAAW,mEACuCF,UAAYC,6DAElEpM,EAAQ4J,WAAWr/E,6CAIf+hF,GAAU,IAAIC,WAAQ,CACxBC,KAAQH,IAUZ,IAAII,GAAgB,IAHJC,UAAOvN,OAAO,CAAEh8E,QAAS,CAAEwmF,aAAS5wF,EAAWqmF,eAAWrmF,MAI1E0zF,GAAcpM,UAAU,CAACL,EAAQjlE,IAAKilE,EAAQ7kE,MAC9CsxE,GAActpF,QAAQ44D,KAAOuwB,GAC7BG,GAActpF,QAAQi8E,UAAYY,EAAQ6J,eAC1C4C,GAActpF,QAAQwmF,QAAU3J,EAEhCyM,GAAchM,MAAM3kE,GAEpB2wE,GAAcloB,GAAG,QA9CA9kE,KAEb,MAAM2/E,GAAY3/E,GAAMg3C,OAAOtzC,QAAQwmF,QAAQE,eAC/CpyF,KAAK2zF,aAAa3vF,KAAK,CAAEgE,MAAO,QAAShF,KAAM,QAAS2kF,UAAWA,IAAW,GA6ClFqN,GAAcloB,GAAG,YA1CI9kE,KAEjB,MAAM2/E,GAAY3/E,GAAMg3C,OAAOtzC,QAAQwmF,QAAQE,eAC/CpyF,KAAK2zF,aAAa3vF,KAAK,CAAEgE,MAAO,YAAahF,KAAM,QAAS2kF,UAAWA,IAAW,GAyCtFqN,GAAcloB,GAAG,WAtCG9kE,KAEhB,MAAM2/E,GAAY3/E,GAAMg3C,OAAOtzC,QAAQwmF,QAAQE,eAC/CpyF,KAAK2zF,aAAa3vF,KAAK,CAAEgE,MAAO,WAAYhF,KAAM,QAAS2kF,UAAWA,IAAW,EAqCzF,CAEA8M,gBAAgBpuF,GACZ,MAAMkkF,EAAcpH,GAAO+B,2BAA2Bl/E,IAAIK,GAC1D,OAAOkkF,EAAcA,EAAYpF,iBAAmB,CACxD,CAOQmP,YAAY/L,EAAkBlkE,EAAmBrY,EAAUN,GAC/D,IAAIwpF,EACAxxE,EAAKJ,EAELilE,EAAQZ,WACRuN,EAAkB3M,EAAQa,OAAO,GAAG1oC,WACpCh9B,EAAM6kE,EAAQa,OAAO,GAAG1lE,IACxBJ,EAAMilE,EAAQa,OAAO,GAAG9lE,MAGxB4xE,EAAkB3M,EAAQ7nC,WAC1Bh9B,EAAM6kE,EAAQ7kE,IACdJ,EAAMilE,EAAQjlE,KAIlB,MAAMqxE,EAAYO,EAAgBt0F,GAClC,IAAIu0F,EAGJ,MAAMC,EAAQF,EAAgBr0F,aAuBxBwnF,GAAiBroF,KAAK0zF,WAAW7M,oBAGjCI,GAAmBjnF,KAAK0zF,WAAW1M,sBACzC,IAAIsB,IAAmB,EACnBrB,KAAqBx6D,KAAKC,IAAIioE,KAC9BrM,IAAmB,GAGvB,MAAMhkB,GAAOtkE,KAAKq1F,iBAAiBV,EAAWO,EAAgB1K,cAAe4K,EAAO9M,IAcrF6M,EAAiB,IAXAF,UAAOvN,OAAO,CAC1Bh8E,QAAS,CACLgE,eAAWpO,EACX4wF,aAAS5wF,EACTqmF,eAAWrmF,EACX+mF,oBAAgB/mF,EAChBgnF,sBAAkBhnF,MAM1B6zF,EAAevM,UAAU,CAACtlE,EAAKI,IAC/ByxE,EAAezpF,QAAQ44D,KAAOA,GAC9B6wB,EAAezpF,QAAQ4pF,UAAW,EAClCH,EAAezpF,QAAQ6pF,aAAc,EACrCJ,EAAezpF,QAAQgE,UAAYilF,EACnCQ,EAAezpF,QAAQwmF,QAAU3J,EACjC4M,EAAezpF,QAAQi8E,UAAYY,EAAQ6J,eAC3C+C,EAAezpF,QAAQ28E,eAAiBA,GACxC8M,EAAezpF,QAAQ48E,iBAAmBA,GAEtCrB,IAAoBA,KAAqBsB,EAAQ7nC,WAAW9/C,IAC5Du0F,EAAeK,gBAAgB,KAGnCL,EAAenM,MAAM3kE,GAErB8wE,EAAeroB,GAAG,QA/CD9kE,KAEb,MAAM2/E,GAAY3/E,GAAMg3C,OAAOtzC,QAAQwmF,QAAQE,eAC/CpyF,KAAK2zF,aAAa3vF,KAAK,CAAEgE,MAAO,QAAShF,KAAM,UAAW2kF,UAAWA,IAAW,GA8CpFwN,EAAeroB,GAAG,YA7DG9kE,KAEjB,MAAM2/E,GAAY3/E,GAAMg3C,OAAOtzC,QAAQwmF,QAAQE,eAC/CpyF,KAAK2zF,aAAa3vF,KAAK,CAAEgE,MAAO,YAAahF,KAAM,UAAW2kF,UAAWA,IAAW,GA4DxFwN,EAAeroB,GAAG,WAzDE9kE,KAEhB,MAAM2/E,GAAY3/E,GAAMg3C,OAAOtzC,QAAQwmF,QAAQE,eAC/CpyF,KAAK2zF,aAAa3vF,KAAK,CAAEgE,MAAO,WAAYhF,KAAM,UAAW2kF,UAAWA,IAAW,EAuD3F,CAUQ0N,iBAAiB18D,EAAYtyB,EAAgB+uF,EAAe3+E,GAChE2+E,EAAQA,GAAS,EAEjB,MAAMK,GAAkC,IAAfh/E,EAAuB,0BAA4B,GAE5E,IAAI2uE,EAAeplF,KAAK01F,gBAAgBrvF,GAuBxC,OApBa,IAAIyuF,WAAQ,CACrBC,KAAQ,2DACoC3P,KAAgBqQ,UAAwB98D,+XAQpDy8D,6DACQA,yDACJA,sIAS5C,CAEQM,gBAAgBrvF,GACpB,MAAMkkF,EAAcpH,GAAO+B,2BAA2Bl/E,IAAIK,GAC1D,OAAOkkF,EAAcA,EAAYnF,aAAe,CACpD,iDA3USqO,GAAoB9sF,MAAAC,IAAA,sCAApB6sF,EAAoBtsF,QAApBssF,EAAoBrsF,WAAA,SAApBqsF,CAAoB,oBCR1B,IAAMkC,GAAyB,MAAhC,MAAOA,EAEX71F,YAAsCmL,GAAAjL,KAAAiL,UACtC,CAEA2qF,iBAAiBC,GACf,IAAI9kD,EAAO9lC,SAAS+uD,cAAc,UAClCjpB,EAAK/tC,KAAO,kBACZ+tC,EAAKo5C,UAAY0L,EACjB5qF,SAAS6qF,qBAAqB,QAAQ,GAAG17B,YAAYrpB,EACvD,CAEAglD,6BAA6BC,GAG3B,QAFIC,GAAU,EACVC,EAAUjrF,SAAS6qF,qBAAqB,UACnC1qF,EAAI,EAAGA,EAAI8qF,EAAQ7qF,SAAUD,EACE,MAAlC8qF,EAAQ9qF,GAAG+qF,aAAa,QAAkBD,EAAQ9qF,GAAG+qF,aAAa,QAAQpwF,SAAS,YACrFkwF,GAAU,GAId,GAAKA,EAYH1wF,QAAQC,MAAM,qCAXd,IAAS4F,EAAI,EAAGA,EAAI4qF,EAAY3qF,OAAQD,IAAK,CAC3C,IAAI2lC,EAAO9lC,SAAS+uD,cAAc,UAClCjpB,EAAKihD,IAAMgE,EAAa5qF,GACxB2lC,EAAK/tC,KAAO,kBACZ+tC,EAAKqlD,OAAQ,EACbrlD,EAAKslD,OAAQ,EACbtlD,EAAKulD,QAAU,QACfrrF,SAAS6qF,qBAAqB,QAAQ,GAAG17B,YAAYrpB,EACvD,CAKJ,iDAnCW4kD,GAAyBhvF,MAEhB02D,OAAQ,sCAFjBs4B,EAAyBxuF,QAAzBwuF,EAAyBvuF,UAAAuU,WAFxB,QAAM,SAEPg6E,CAAyB,KCCzBY,GAAsB,MAA7B,MAAOA,EAEXz2F,cAEAE,KAAAw2F,qBAAuB,IAAIrzF,IAFX,iDAFLozF,EAAsB,sCAAtBA,EAAsBpvF,QAAtBovF,EAAsBnvF,UAAAuU,WAFrB,QAAM,SAEP46E,CAAsB,KC8BtBE,GAAU,MAAjB,MAAOA,EA6CX,aAAIC,GACF,OAAO12F,KAAK22F,gBAAgB/wF,cAC9B,CAGA,uBAAIgxF,GACF,OAAO52F,KAAK62F,oBACd,CAIA,mBAAIC,GACF,OAAO92F,KAAK+2F,uBAAuBnxF,cACrC,CAEA,aAAIoxF,GACF,OAAOh3F,KAAKi3F,aAAarxF,cAC3B,CAEA9F,YACUo3F,EACA7W,EACA8W,EACAC,EACAC,EACAC,EACAC,EACAlgE,EACAmgE,EACA/zF,EACAg0F,EACAC,GACA9zF,GACA+zF,GACArQ,IAdAtnF,KAAAk3F,uBACAl3F,KAAAqgF,iBACArgF,KAAAm3F,iBACAn3F,KAAAo3F,iBACAp3F,KAAAq3F,mBACAr3F,KAAAs3F,uBACAt3F,KAAAu3F,SACAv3F,KAAAq3B,SACAr3B,KAAAw3F,iBACAx3F,KAAAyD,kBACAzD,KAAAy3F,kBACAz3F,KAAA03F,6BACA13F,KAAA4D,yBACA5D,KAAA23F,0BACA33F,KAAAsnF,oBA7EHtnF,KAAA43F,qBAAmD,IAAIz0F,KACvDnD,KAAA63F,kBAAuF,IAAI10F,KAC3FnD,KAAA83F,sBAAkD,IAAI7uF,MAAgB,GAE5DjJ,KAAA+3F,UAAY,IAAIhS,GAEzB/lF,KAAAg4F,WAAY,EAKZh4F,KAAA22F,gBAAkB,IAAIxzF,KACtBnD,KAAAi4F,wBAA0B,IAAI90F,KAC9BnD,KAAAk4F,mBAAqB,IAAI/0F,KAOzBnD,KAAAm4F,aAAc,EACdn4F,KAAAo4F,wBAAyB,EACzBp4F,KAAAq4F,wBAAyB,EACzBr4F,KAAAs4F,oBAAsB,EACtBt4F,KAAAu4F,mBAAoB,EACpBv4F,KAAAi3F,aAAe,IAAIhuF,MAAgB,GAE3BjJ,KAAAw4F,oBAAsB,IAAIvvF,MAAgB,GAO1DjJ,KAAAkhB,OAAc,CACZ4mE,SAAU,IAAIgM,gBACdjM,QAAS,IAAIiM,gBACb9L,OAAQ,IAAI8L,gBACZ5b,OAAQ,IAAI4b,gBACZ2E,OAAQ,IAAI3E,gBACZ4E,MAAO,IAAI5E,iBAOL9zF,KAAA62F,qBAAuBnR,GAAa5mB,KAKpC9+D,KAAA+2F,uBAAyB,IAAI5zF,KA2BnCnD,KAAK24F,6BACL34F,KAAK44F,uBACL54F,KAAK64F,mBACL74F,KAAK84F,yBACL94F,KAAK+4F,6BACP,CAEAC,WAAWhtF,GACThM,KAAKgM,IAAMA,EAEXhM,KAAKi5F,aACLj5F,KAAKk5F,yBACLl5F,KAAKm5F,cACLn5F,KAAKo5F,mBAELp5F,KAAKs4F,oBAAsBt4F,KAAKgM,IAAKqtF,aAAer5F,KAAKq4F,uBACzDr4F,KAAKs5F,kBAELt5F,KAAKi3F,aAAajzF,MAAK,EACzB,CAEOu1F,kBAAkB3R,GACvB5nF,KAAKw4F,oBAAoBx0F,KAAK4jF,EAChC,CAEA4R,WAAWtwE,GACTlpB,KAAKgM,KAAKytF,QAAQz5F,KAAKgM,IAAI0tF,UAAYxwE,EACzC,CAEAywE,YACE35F,KAAKi4F,wBAAwBj0F,MAAK,EACpC,CAEA41F,wBACM55F,KAAK65F,aACP75F,KAAK65F,YAAYrmF,cAEfxT,KAAK85F,aACP95F,KAAK85F,YAAYtmF,cAEfxT,KAAK+5F,qBACP/5F,KAAK+5F,oBAAoBvmF,aAE7B,CAEAwmF,kBAAkBrP,EAAgB0D,EAAOruF,KAAKs4F,qBAC5Ct4F,KAAKi6F,UAAYtP,EACjB3qF,KAAKgM,KAAKkuF,QAAQvP,EAAQ0D,GAC1B74E,WAAW,KACTxV,KAAKgM,KAAKytF,QAAQpL,EAAI,EACrB,IACL,CAEA8L,YACE3kF,WAAW,KACTxV,KAAKgM,KAAKouF,gBAAc,EACvB,EACL,CAEAl/D,YAAYm/D,GACM,MAAZr6F,KAAKgM,MAGThM,KAAK62F,qBAAuBwD,EAC5Br6F,KAAKgM,IAAIi8E,UAAU36E,GAAKtN,KAAKgM,IAAKk9E,YAAY57E,IAC9CtN,KAAKs6F,YAAYt6F,KAAK62F,sBACtB72F,KAAKyD,gBAAgBy3B,YAAYl7B,KAAK62F,sBACtC72F,KAAKk5F,yBACLl5F,KAAKy3F,gBAAgBzX,sBAAsBh8E,MAAK,GAChDhE,KAAK+2F,uBAAuB/yF,KAAKhE,KAAK62F,sBACxC,CAEA0D,uBAAuB73E,GAErB,GAAwB,IAApBA,EAASrX,OACX,OAIF,MAAMmvF,EAAO,GACPC,EAAO,GAEb,QAASrvF,EAAIsX,EAASrX,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC7C,MAAMjJ,EAAIugB,EAAStX,GAEnB,GAAIjJ,EAAEkhB,GAAI,CACR,MAAMC,EAAMC,WAAW,GAAKphB,EAAEkhB,GAAGG,IAC3BE,EAAMH,WAAW,GAAKphB,EAAEkhB,GAAGM,IAE7BL,GAAe,MAARA,GACTk3E,EAAKnnF,KAAKiQ,GAERI,GAAe,MAARA,GACT+2E,EAAKpnF,KAAKqQ,EAEd,CACF,CAEA1jB,KAAK06F,eAAeF,EAAMC,EAC5B,CAEQnB,kBACNt5F,KAAKgM,IAAK8gE,GAAG,UAAW,KAClB9sE,KAAKu4F,oBACPv4F,KAAKs4F,oBAAsBt4F,KAAKgM,KAAK0tF,UAAO,EAGlD,CAEQX,8BACN/4F,KAAKsnF,iBAAiBH,yBAAyB/hF,UAAU0D,IACvD9I,KAAKu4F,mBAAqB/sE,MAAM1iB,EAAKm+E,iBAAgB,EAEzD,CAEQ0R,6BAEN34F,KAAK26F,gBAAkB36F,KAAKs3F,qBAAqB/C,wBAAwBnvF,UAAUC,IACnE,MAAVA,GAGJrF,KAAKu3F,OAAO76B,IAAI,KACd,OAAQr3D,EAAO2C,OACb,IAAK,QACHhI,KAAK46F,YAAYv1F,GACjB,MAEF,IAAK,YACHrF,KAAK66F,gBAAgBx1F,GACrB,MAEF,IAAK,WACHrF,KAAK86F,eAAez1F,GAExB,EACD,EAEL,CAEQu1F,YAAYv1F,GAElB,GAAoB,YAAhBA,EAAOrC,KAAoB,CAE7B,MACMulF,EAAgBh+D,OAAQi+D,SADZnjF,EAAOsiF,WAEzB,GAAIY,EAAS,CAEX,MAAMoC,EAAS,IAAIoQ,UAAOxS,EAAQjlE,IAAKilE,EAAQ7kE,KAC/C1jB,KAAKgM,KAAKkuF,QAAQvP,EAAQ3qF,KAAKs4F,qBAC/Bt4F,KAAKq3F,iBAAiBzW,oBAAoB2H,EAAQ7nC,WAAW9/C,GAC/D,CACF,CAGA,GAAoB,UAAhByE,EAAOrC,KAAkB,CAE3B,MAAM2kF,EAAYtiF,EAAOsiF,UACnBY,EAAgBh+D,OAAQi+D,SAASb,GACvC,GAAIY,EAAS,CAEXvoF,KAAKkhB,OAAO8mE,OAAOC,UAAWjzD,IACZA,EACTtpB,QAAQi8E,YAAcA,IAC3B3nF,KAAKkhB,OAAO8mE,OAAOkB,YAAYl0D,GAC/BA,EAAE8/B,SAAM,GAKZ,MAAMkmC,EAAUh7F,KAAKi7F,eAAe1S,EAAQZ,WAC5C,IAAIuT,EAAS,EACTC,EAAS,EACTC,EAAS,EACTC,EAAS,EACb,UAAWrmE,KAAKgmE,EACTE,IACHA,EAASlmE,EAAE1R,KAER63E,IACHA,EAASnmE,EAAE1R,KAER83E,IACHA,EAASpmE,EAAEtR,KAER23E,IACHA,EAASrmE,EAAEtR,KAEbw3E,EAASzuE,KAAKw+D,IAAIiQ,EAAQlmE,EAAE1R,KAC5B63E,EAAS1uE,KAAKsqB,IAAIokD,EAAQnmE,EAAE1R,KAC5B83E,EAAS3uE,KAAKw+D,IAAImQ,EAAQpmE,EAAEtR,KAC5B23E,EAAS5uE,KAAKsqB,IAAIskD,EAAQrmE,EAAEtR,KAE9B1jB,KAAKgM,KAAKsvF,UAAU,CAAC,CAACJ,EAAQE,GAAS,CAACD,EAAQE,IAAUlY,GAAO6B,WACnE,CACF,CACF,CAEQ6V,gBAAgBx1F,GACtB,IAAIkqD,EAAY,cAEdA,GADkB,UAAhBlqD,EAAOrC,KACI,oBAEA,oCAAqCqC,EAAOsiF,YAG3D,MAAMH,EAASC,SAAMC,OAAO,CAC1Bh8E,QAAS,CACPi8E,eAAWrmF,EAAWsmF,eAAWtmF,EAAW2nF,mBAAe3nF,KAKzDqmF,EAAYtiF,EAAOsiF,UACnBY,EAAgBh+D,OAAQi+D,SAASb,GACvC,GAAIY,EAAS,CAEX,IAAIgT,GAAgB,EAcpB,GAbAv7F,KAAKkhB,OAAO8mE,OAAOC,UAAWjzD,IACZA,EACTtpB,QAAQi8E,YAAcA,IAC3B4T,GAAgB,GAFFvmE,EAKTtpB,QAAQi8E,YAAcA,IAA0C,IALvD3yD,EAK6BtpB,QAAQu9E,gBACnDjpF,KAAKkhB,OAAO8mE,OAAOkB,YAAYl0D,GAC/BA,EAAE8/B,SAAM,GAKRymC,EACF,OAGEv7F,KAAKw7F,cACP34D,aAAa7iC,KAAKw7F,cAIpBx7F,KAAKw7F,aAAehmF,WAAW,KAE7BxV,KAAKyoF,MAAQ,IAAIjB,EACjBxnF,KAAKyoF,MAAO/8E,QAAQ6jD,UAAYA,EAChCvvD,KAAKyoF,MAAO/8E,QAAQ+hE,aAAc,EACjCztE,KAAKyoF,MAAc/8E,QAAQi8E,UAAYA,EACvC3nF,KAAKyoF,MAAc/8E,QAAQk8E,WAAY,EACvC5nF,KAAKyoF,MAAc/8E,QAAQu9E,eAAgB,EAC5CjpF,KAAKyoF,MAAO/8E,QAAQg9E,YAAa,EACjC1oF,KAAKyoF,MAAO/8E,QAAQi9E,SAAU,EAE9B,MAAM8S,EAAQz7F,KAAKk3F,qBAAqBpO,mBAAmBP,GAC3DvoF,KAAKyoF,MAAOG,UAAU5oF,KAAK07F,0BAA0B,CAACnT,EAAQjlE,IAAKilE,EAAQ7kE,KAAM6kE,IACjFvoF,KAAKyoF,MAAOM,WAAW0S,GACvBz7F,KAAKyoF,MAAOO,MAAMhpF,KAAKkhB,OAAO8mE,QAG9B,MAAM2T,EAAYA,KACZ37F,KAAKw7F,cACP34D,aAAa7iC,KAAKw7F,aAAY,EAG5BI,EAAWA,KACf57F,KAAKw7F,aAAehmF,WAAW,KAC7BxV,KAAKkhB,OAAO8mE,OAAOC,UAAWjzD,KACZA,GACTtpB,QAAQi8E,YAAcA,IAA0C,IADvD3yD,GAC6BtpB,QAAQu9E,gBACnDjpF,KAAKkhB,OAAO8mE,OAAOkB,YAAYl0D,IAC/BA,GAAE8/B,SAAM,EAEX,EACA,IAAG,EAIF+mC,EAAwBvhF,KAE5B,MAAMqe,GADKre,GAAE0kC,OACCm3C,aAAa,mBACvBx9D,IACF34B,KAAKq3F,iBAAiBzW,oBAAoBjoD,GAAE,EAK1CmjE,EAAO97F,KAAKyoF,OAAOsT,aACzBD,EAAM5jC,oBAAoB,YAAayjC,GACvCG,EAAM7jC,iBAAiB,YAAa0jC,GACpCG,EAAM5jC,oBAAoB,WAAY0jC,GACtCE,EAAM7jC,iBAAiB,WAAY2jC,GACnCE,EAAM5jC,oBAAoB,QAAS2jC,GACnCC,EAAM7jC,iBAAiB,QAAS4jC,EAAoB,EAEnD,IACL,CACF,CAEQf,eAAez1F,GAEfrF,KAAKw7F,cACP34D,aAAa7iC,KAAKw7F,cAEpBx7F,KAAKw7F,aAAehmF,WAAW,KAC7B,GAAIxV,KAAKyoF,MAAO,CACd,MAAMd,EAAYtiF,EAAOsiF,UACzB3nF,KAAKkhB,OAAO8mE,OAAOC,UAAWjzD,IACZA,EACTtpB,QAAQi8E,YAAcA,IAA0C,IADvD3yD,EAC6BtpB,QAAQu9E,gBACnDjpF,KAAKkhB,OAAO8mE,OAAOkB,YAAYl0D,GAC/BA,EAAE8/B,SAAM,EAGd,GACC,IAEP,CAKQmmC,eAAetT,EAAmB6H,GAIxC,GAHKA,IACHA,EAAW,IAAI/xE,OAEbkqE,EAAW,CACb,MAAMyB,EAASppF,KAAKm3F,eAAelI,YAAYtH,GAC/C,UAAWjsD,KAAK0tD,EAKdoG,EAASn8E,KAAK,IAAI0nF,UAHNr/D,EAAEpY,IACFoY,EAAEhY,MAIVgY,EAAEglB,WAAW0vC,aACfZ,EAAWxvF,KAAKi7F,eAAev/D,EAAEglB,WAAW0vC,WAAYZ,GAG9D,CAEA,OAAOA,CACT,CAEQ4J,mBACN,MAAM4C,EAAgBh8F,KAAKyD,gBAAgB23B,cACvC4gE,EACFh8F,KAAKk7B,YAAY8gE,IAEjBh8F,KAAKk7B,YAAYwqD,GAAaE,KAC9BpwE,WAAW,IAAMxV,KAAKy3F,gBAAgB1X,yBAAyB/7E,MAAK,GAAO,KAE/E,CAEQi1F,aACN,UAAWgD,KAAgBja,GACzBhiF,KAAKgM,KAAK8gE,GAAGmvB,EAAej0F,IAC1BhI,KAAK22F,gBAAgB3yF,KAAK,CAACi4F,eAAcj0F,SAAkB,EAGjE,CAEQkxF,yBACN,UAAWgD,KAAc36F,OAAO2I,KAAKlK,KAAKkhB,QAAS,CACjD,MAAMmD,EAAQrkB,KAAKkhB,OAAOg7E,GAC1B73E,EAAM83E,cACN93E,EAAM2kE,MAAMhpF,KAAKgM,IACnB,CACF,CAEQmtF,cACN,MAAMiD,EAAYp8F,KAAKqgF,eAAetG,mBAEtC/5E,KAAKgM,KAAKytF,QAAQz5F,KAAKgM,IAAIqwF,aAAe,GAC1Cr8F,KAAK85F,YAAc95F,KAAKk4F,mBAAmBtyF,eAAeb,QAExDu3F,MAAU,CAACjO,KAAMruF,KAAKgM,KAAK0tF,UAAWnH,OAAQvyF,KAAKgM,KAAKuwF,cAGxD5a,GAEEya,EAAUr3F,QAAKiH,MAAI0W,GAAY1iB,KAAKo3F,eAAe5D,oBAAoB9wE,KAGvE,CAACutB,EAAQm5C,IAEHppF,KAAKgM,KAAKwwF,SAASx8F,KAAKkhB,OAAO4mE,WAEjC9nF,KAAKm3F,eAAetJ,KAAKzE,GAClBppF,KAAKm3F,eAAehJ,YAAYl+C,EAAOsiD,OAAS9lE,KAAKG,MAAMqjB,EAAOo+C,QAEpE,KAGVjpF,UAAW0iF,IAEJv9D,OAAQi+D,SAAW,GACzB,UAAWD,KAAWT,EACdv9D,OAAQi+D,SAASD,EAAQ6J,gBAAkB7J,EAGnD,MAEMkU,EAAYz8F,KAAKs3F,qBAAqBzD,KAAK/L,EAAU9nF,KAAKgM,KAEhEhM,KAAKkhB,OAAO8mE,OAAOC,UAAWyU,IAC5B,MAAM76F,EAAS66F,EAEf,IAAgC,IAA5B76F,EAAE6J,QAAQu9E,eAA0BpnF,EAAE6J,QAAQi8E,WAAa,EAC7D,OAEF,MACMY,EAAgBh+D,OAAQi+D,SADZ3mF,EAAE6J,QAAQi8E,WAE5B,GAAIY,EAAS,CACI,IAAIwS,UAAOxS,EAAQjlE,IAAKilE,EAAQ7kE,KAC/C7hB,EAAE+mF,UAAU5oF,KAAK07F,0BAA0B,CAACnT,EAAQjlE,IAAKilE,EAAQ7kE,KAAM6kE,IACvE,MAAM1mB,EAAU7hE,KAAKk3F,qBAAqBpO,mBAAmBP,GAC7D1mF,EAAEknF,WAAWlnB,EACf,IAIF7hE,KAAKgM,KAAKk9E,YAAYlpF,KAAKkhB,OAAO4mE,UAClC9nF,KAAKkhB,OAAO4mE,SAAW2U,EACvBz8F,KAAKkhB,OAAO4mE,SAASkB,MAAMhpF,KAAKgM,MAE3BhM,KAAKg4F,WAAalQ,EAASz8E,OAAS,GAGD,IADpBrL,KAAKw3F,eAAehO,SAAUmT,aAAa72F,IACrDxB,QAAQ,mBACdkR,WAAW,KACTxV,KAAK25F,YACL35F,KAAKg4F,WAAY,GAChB,KAILh4F,KAAKk3F,qBAAqB3P,aAAavnF,KAAKkhB,OAAM,GAMxDlhB,KAAK+5F,oBAGH/5F,KAAKi4F,wBAAwBlzF,QAC3BkJ,MAAOU,GAAKA,GC3iBb,SAASiuF,MAAkBroF,GAC9B,MAAMsoF,KAAUhb,OAAkBttE,GAClC,SAAOiF,MAAQ,CAACC,EAAQC,KACpB,MAAMojF,EAAMvoF,EAAOlJ,OACb0xF,EAAc,IAAIt/E,MAAMq/E,GAC9B,IAAInjF,EAAWpF,EAAOvI,IAAI,KAAM,GAC5BgxF,GAAQ,EACZ,QAAS5xF,EAAI,EAAGA,EAAI0xF,EAAK1xF,KACrB+O,SAAU5F,EAAOnJ,IAAIhG,aAAUgV,MAAyBV,EAAahH,IACjEqqF,EAAY3xF,GAAKsH,GACZsqF,IAAUrjF,EAASvO,KACpBuO,EAASvO,IAAK,GACb4xF,EAAQrjF,EAASsjF,MAAMC,SAAevjF,EAAW,QAEvDwjF,OAEP1jF,EAAOrU,aAAUgV,MAAyBV,EAAahH,IACnD,GAAIsqF,EAAO,CACP,MAAMtqE,EAAS,CAAChgB,KAAUqqF,GAC1BrjF,EAAW1V,KAAK64F,EAAUA,KAAWnqE,GAAUA,EACnD,IACF,EAEV,CDshBQkqE,CAAeR,EAAW,CAAC5uF,EAASkV,IAAaA,IAEhDtd,UAAWsd,IACNA,GAAYA,EAASrX,OAAS,GAChCrL,KAAKu6F,uBAAuB73E,EAAQ,GAK5C1iB,KAAK65F,YAAc75F,KAAK22F,gBAAgBvxF,UAAUg4F,IAGzC,YAFcA,EAASnB,cAG1Bj8F,KAAKq9F,cAAcD,EAASp1F,MAEhC,EAEJ,CAEQ0yF,eAAeF,EAAqBC,GAE1C,IAAIS,EAAS,EACTC,EAAS,EACTC,EAAS,EACTC,EAAS,EAuCb,GArCAb,EAAKjnF,QAAQykE,IACPA,IACGkjB,IACHA,EAASljB,GAENmjB,IACHA,EAASnjB,GAGPA,EAAIkjB,IACNA,EAASljB,GAEPA,EAAImjB,IACNA,EAASnjB,MAKfyiB,EAAKlnF,QAAQykE,IACPA,IACGojB,IACHA,EAASpjB,GAENqjB,IACHA,EAASrjB,GAGPA,EAAIojB,IACNA,EAASpjB,GAEPA,EAAIqjB,IACNA,EAASrjB,MAMXkjB,GAAUC,GAAUC,GAAUC,EAAQ,CACxC,MAAM9I,EAAS,IAAI+K,gBACjB,CAACpC,EAAQE,GACT,CAACD,EAAQE,IAGXr7F,KAAKgM,KAAKsvF,UAAU/I,EAAQpP,GAAO6B,WACrC,CACF,CAEQqY,cAAcr1F,GAEpB,MAAMu1F,EAAK,IAAI31F,KACTqoC,EAAS,CACbo+C,KAAQruF,KAAKgM,IAAK0tF,UAClBnH,OAAUvyF,KAAKgM,IAAKuwF,YACpB9iF,OAAU,gBACV8jF,GAAM,GAAGA,EAAGrwE,gBAAgBqwE,EAAGnwE,gBAAgBmwE,EAAGC,qBAGpDx9F,KAAKk4F,mBAAmBl0F,KAAKisC,EAC/B,CAEQyrD,0BAA0B+B,EAA0BlV,GAS1D,IAAImV,EAAcC,GAAapV,EAAQa,OAAO/9E,OAC1CuyF,GAAmBF,EAAcG,IAAqBA,IAAqBH,GAAeI,GAASC,GAEnGl8F,GAAI7B,KAAKgM,IAAKgyF,uBAAuBP,GACrCQ,GAAWj+F,KAAKgM,IAAKkyF,iBAAiBC,UAAU7wF,EAepD,OAbIzL,GAAEs4E,EAAIyjB,GACR/7F,GAAEs4E,EAAIyjB,EAGN/7F,GAAEyL,GAAK8wF,KADIv8F,GAAEyL,GAAK2wF,GAAW,GAAI,EAAK,IAGlCp8F,GAAEyL,EAAI+wF,GACRx8F,GAAEyL,EAAI+wF,IACGx8F,GAAEyL,EAAI+wF,GAAqBJ,GAAWK,KAC/Cz8F,GAAEyL,EAAI2wF,GAAWI,GAAqBP,EAAaQ,IAIhDt+F,KAAKgM,IAAKuyF,uBAAuB18F,GAC1C,CAEQy4F,YAAYD,GAClB,OAAQA,GACN,KAAK3U,GAAaC,MAChB3lF,KAAK+3F,UAAU/R,WAAWgD,MAAMhpF,KAAKgM,KACrC,MAEF,KAAK05E,GAAaG,cAChB7lF,KAAK+3F,UAAU1R,mBAAmB2C,MAAMhpF,KAAKgM,KAC7C,MAEF,KAAK05E,GAAaI,aAChB9lF,KAAK+3F,UAAUvR,kBAAkBwC,MAAMhpF,KAAKgM,KAC5C,MAEF,KAAK05E,GAAaE,IAChB5lF,KAAK+3F,UAAU3R,SAAS4C,MAAMhpF,KAAKgM,KAGzC,CAEQwyF,yBACNx+F,KAAKo4F,wBAAyB,EAO9Bp4F,KAAK03F,0BAA0B3B,6BANf,CAGd,kHACA,wFAGJ,CAEQ6C,uBACN54F,KAAK82F,gBAAgB1xF,UAAUq5F,IAC7Bz+F,KAAK4D,sBAAsB6iB,iBAAiBrhB,UAAUwkB,IAChDA,IACe60E,IAAoB/Y,GAAaG,eAAiB4Y,IAAoB/Y,GAAaI,eACpF9lF,KAAK4D,sBAAsByjB,cAAgBrnB,KAAKo4F,wBAC9Dp4F,KAAKw+F,wBAAsB,EAEhC,EAEL,CAEQ3F,mBACN74F,KAAK23F,uBAAuBnB,qBAAqBpxF,UAAU+yF,IACzDn4F,KAAKm4F,YAAcA,GAEvB,CAEQW,yBACN94F,KAAKy3F,gBAAgBxX,8BAA8B76E,UAAUs5F,IAC3D1+F,KAAKq4F,uBAAyBqG,EAC9B1+F,KAAKg6F,kBAAkBh6F,KAAKi6F,UAAU,EAE1C,iDAzrBWxD,GAAU9vF,MAAAC,IAAAD,MAAAE,IAAAF,MAAAG,IAAAH,MAAAI,IAAAJ,MAAAK,IAAAL,MAAAM,IAAAN,mBAAAO,OAAAP,MAAAO,OAAAP,MAAAg4F,MAAAh4F,MAAAi4F,IAAAj4F,MAAAk4F,IAAAl4F,MAAAm4F,KAAAn4F,MAAAo4F,IAAAp4F,MAAAq4F,IAAA,sCAAVvI,EAAUtvF,QAAVsvF,EAAUrvF,WAAA,SAAVqvF,CAAU,KE/BVwI,GAAiB,MAAxB,MAAOA,EADbn/F,cAGYE,KAAAk/F,UAA0B,IAAI/7F,KAE/Bg8F,mBACH,OAAOn/F,KAAKk/F,UAAUt5F,cAC1B,CAEOw5F,OAAO9wE,GACVtuB,KAAKk/F,UAAUl7F,KAAKsqB,EACxB,iDAVS2wE,EAAiB,sCAAjBA,EAAiB93F,QAAjB83F,EAAiB73F,WAAA,SAAjB63F,CAAiB,oBCFvB,IAAMI,GAAoB,MAA3B,MAAOA,EAEDC,YAAYC,GAChB,OAAQA,EAAM,GAAK,IAAM,IAAMA,CACnC,CAEOC,UAAUC,GAEb,GAAIA,EAAU,EACV,MAAO,GAGX,IAAIC,EAAUjzE,KAAKkzE,KAAKF,EAAU,IAE9BG,EAAQnzE,KAAKG,MAAM8yE,EAAU,GAAK,GAAK,KACvCG,EAAOH,EAAkB,GAARE,EAAa,GAAK,IAEnCE,EAASrzE,KAAKG,MAAMizE,EAAO,GAAK,GAAK,IACzCA,GAAuB,GAATC,EAAc,GAAK,GAEjC,IAAIC,EAAQtzE,KAAKG,MAAMizE,EAAO,GAAK,GAAK,GACxCA,GAAsB,EAARE,EAAY,GAAK,GAE/B,IAAIC,EAAOvzE,KAAKG,MAAOizE,EAAQ,GAAK,IACpCA,GAAqB,GAAPG,EAAY,GAE1B,IAAIC,EAAQxzE,KAAKG,MAAOizE,EAAQ,IAChCA,GAAsB,GAARI,EAEd,IAAIC,EAAOzzE,KAAKG,MAAOizE,EAAQ,GAG3BD,EACIE,GACAC,EAAQ,EACRC,EAAO,EACPC,EAAQ,EACRC,EAAO,GACAH,GACPC,EAAO,EACPC,EAAQ,EACRC,EAAO,GACAF,GACPC,EAAQ,EACRC,EAAO,IACAD,GAEAC,KACPA,EAAO,GAGPJ,EACIC,GACAC,EAAO,EACPC,EAAQ,EACRC,EAAO,GACAF,GACPC,EAAQ,EACRC,EAAO,IACAD,GAEAC,KACPA,EAAO,GAGPH,EACIC,GACAC,EAAQ,EACRC,EAAO,IACAD,GAEAC,KACPA,EAAO,GAGPF,IACIC,GAEOC,KACPA,EAAO,GAS3B,IAAI79E,EAAM,GACV,OAAIu9E,IACIv9E,IACAA,GAAO,KAEXA,GAAOu9E,EAAQ,MAEfE,IACIz9E,IACAA,GAAO,KAEXA,GAAOy9E,EAAS,MAEhBC,IACI19E,IACAA,GAAO,KAEXA,GAAO09E,EAAQ,MAEfC,IACI39E,IACAA,GAAO,KAEXA,GAAO29E,EAAO,MAEdC,IAAUC,GACN79E,IACAA,GAAO,KAEXA,GAAO49E,EAAQ,OACPA,GAASC,GACb79E,IACAA,GAAO,KAEXA,GAAO69E,EAAO,QACPD,GAASC,IACZ79E,IACAA,GAAO,KAEXA,GAAO49E,EAAQ,IAAMjgG,KAAKs/F,YAAYY,GAAQ,MAG9CN,GAAS,IACTv9E,EAAM,SAGHA,CACX,iDAvISg9E,EAAoB,6DAApBA,EAAoBc,MAAA,YAApBd,CAAoB,KCEpBe,GAAe,MAAtB,MAAOA,EAGFZ,UAAUl8F,GACb,IAAI+8F,EAAU,GACd,OAAI/8F,IACA+8F,EAAUrgG,KAAKsgG,gBAAgBD,EAAS/8F,EAASgiC,IACjD+6D,EAAUrgG,KAAKsgG,gBAAgBD,EAAS/8F,EAASi9F,IAE7Cj9F,EAAS3C,IAAM2C,EAAS3C,KAAO2C,EAASi9F,KACxCF,EAAUrgG,KAAKsgG,gBAAgBD,EAAS/8F,EAAS3C,KAGrD0/F,EAAUrgG,KAAKsgG,gBAAgBD,EAAS/8F,EAASmiC,KAE5CniC,EAASmiC,KAAOniC,EAAS3C,KAAO2C,EAASi9F,KAC1CF,EAAUrgG,KAAKsgG,gBAAgBD,EAAS/8F,EAASiiC,IACjD86D,EAAUrgG,KAAKsgG,gBAAgBD,EAAS/8F,EAASkiC,KAGrD66D,EAAUrgG,KAAKsgG,gBAAgBD,EAAS/8F,EAAS4gC,UACjDm8D,EAAUrgG,KAAKsgG,gBAAgBD,EAAS/8F,EAASoiC,KAE9C26D,CACX,CAEQC,gBAAgBD,EAAiBG,GACrC,OAAIA,IACAH,IAAYA,EAAU,KAAO,IAAMG,GAGhCH,CACX,iDAhCSD,EAAe,wDAAfA,EAAeD,MAAA,YAAfC,CAAe,+BCWrB,IAAMK,GAAc,MAArB,MAAOA,EAuBX,oBAAIC,GACF,MAAM7uF,EAAO0T,aAAaC,QAAQxlB,KAAK2gG,uBACvC,IAAIt7F,GAAS,EACb,OAAY,MAARwM,IACFxM,EAAkB,SAATwM,GAEJxM,CACT,CAEAvF,YACU63F,EACArQ,EACAsZ,GAFA5gG,KAAA23F,yBACA33F,KAAAsnF,mBACAtnF,KAAA4gG,aAjCO5gG,KAAA2gG,sBAAwB,kBACxB3gG,KAAA6gG,cAAgB,IAAI9a,GAG7B/lF,KAAA8gG,mBAAoB,EACpB9gG,KAAA+gG,2BAA4B,EAC5B/gG,KAAAu4F,mBAAoB,EACpBv4F,KAAAm4F,aAAc,EAGdn4F,KAAAghG,eAAiB,CACvBpzB,SAAU,aACVqzB,gBAAiBjhG,KAAK8gG,kBACtBI,eAAe,EACfC,WAAW,EACX5yE,MAAO,IACP6yE,kBAAmB,CAACvgC,MAAO,MAAOwgC,OAAQ,IAG5CrhG,KAAAshG,0BAA4B,IAAIn+F,KAgB9BnD,KAAKshG,0BAA0Bl8F,UAAUwiF,IACvC5nF,KAAKuhG,aAAa3Z,EAAS,EAE/B,CAEA4Z,SACMxhG,KAAKu4F,oBAAsBv4F,KAAKm4F,YAClCn4F,KAAKyhG,wBAELzhG,KAAK0hG,eACT,CAEAC,UACM3hG,KAAKu4F,oBAAsBv4F,KAAKm4F,YAClCn4F,KAAK4hG,yBAEL5hG,KAAK6hG,gBACT,CAEA7I,WAAWhtF,GACThM,KAAKgM,IAAMA,EACXhM,KAAK64F,mBACL74F,KAAK+4F,8BAEL/4F,KAAK8hG,kBACL9hG,KAAK4gG,WAAW9J,gBAAgB1xF,UAAUi1F,GAAgBr6F,KAAK+hG,YAAY1H,GAC7E,CAEQ0H,YAAY1H,GAClB,OAAQA,GACN,KAAK3U,GAAaC,MAChB3lF,KAAKgiG,QAASD,YAAY/hG,KAAK6gG,cAAc7a,YAC7C,MAEF,KAAKN,GAAaG,cAChB7lF,KAAKgiG,QAASD,YAAY/hG,KAAK6gG,cAAcxa,oBAC7C,MAEF,KAAKX,GAAaI,aAChB9lF,KAAKgiG,QAASD,YAAY/hG,KAAK6gG,cAAcra,mBAC7C,MAEF,KAAKd,GAAaE,IAChB5lF,KAAKgiG,QAASD,YAAY/hG,KAAK6gG,cAAcza,UAGnD,CAEQyS,mBACN74F,KAAK23F,uBAAuBnB,qBAAqBpxF,UAAU+yF,IACzDn4F,KAAKm4F,YAAcA,EACnBn4F,KAAK8hG,iBAAe,EAExB,CAEQ/I,8BACN/4F,KAAKsnF,iBAAiBH,yBAAyB/hF,UAAU+xE,IACvDn3E,KAAKu4F,kBAAoBphB,GAAQ8P,iBAAmB,EACpDjnF,KAAK8hG,iBAAe,EAExB,CAEQA,kBAEF9hG,KAAKghG,eAAeG,YAGxBnhG,KAAKghG,eAAeC,gBAAkBjhG,KAAKu4F,oBAAsBv4F,KAAKm4F,YAAcn4F,KAAK+gG,0BAA4B/gG,KAAK8gG,kBAGtH9gG,KAAKgiG,SACPhiG,KAAKgM,KAAKi2F,cAAcjiG,KAAKgiG,SAE/BhiG,KAAKghG,eAAeG,WAAanhG,KAAK0gG,iBACtC1gG,KAAKgiG,QAAU,IAAIE,KAAJ,CAAYliG,KAAK6gG,cAAcza,SAAUpmF,KAAKghG,gBAAgBhY,MAAMhpF,KAAKgM,KACxFhM,KAAKmiG,qBACP,CAEQA,qBACNniG,KAAKgiG,QAAQl1B,GAAG,SAAWhkE,IACzB9I,KAAKghG,eAAeG,WAAanhG,KAAKghG,eAAeG,UACrDnhG,KAAKshG,0BAA0Bt9F,MAAM8E,EAAKq4F,UAAS,EAEvD,CAEQI,aAAa3Z,GACnBriE,aAAaK,QAAQ5lB,KAAK2gG,sBAAuB/Y,EAAU90E,WAC7D,CAEQ2uF,wBACiC,IAAnCzhG,KAAK+gG,4BAGT/gG,KAAK+gG,2BAA6B,EAClC/gG,KAAK8hG,kBACP,CAEQF,0BACiC,KAAnC5hG,KAAK+gG,4BAGT/gG,KAAK+gG,2BAA6B,EAClC/gG,KAAK8hG,kBACP,CAEQJ,gBACyB,IAA3B1hG,KAAK8gG,oBAGT9gG,KAAK8gG,mBAAqB,EAC1B9gG,KAAK8hG,kBACP,CAEQD,kBACyB,KAA3B7hG,KAAK8gG,oBAGT9gG,KAAK8gG,mBAAqB,EAC1B9gG,KAAK8hG,kBACP,iDA5JWrB,GAAc95F,MAAAC,IAAAD,MAAAE,IAAAF,MAAAG,IAAA,sCAAd25F,EAAct5F,QAAds5F,EAAcr5F,UAAAuU,WAFb,QAAM,SAEP8kF,CAAc,KCXd2B,GAAkB,MAAzB,MAAOA,EAITtiG,YAAoBuiG,GAAAriG,KAAAqiG,QAFZriG,KAAAsiG,MAAa,EAEoB,CAEzCC,YACI,OAAOviG,KAAKqiG,MAAMr8F,IAAI,mCAAmCjB,QACrDC,MAAIK,IACArF,KAAKsiG,MAAQj9F,KAChB,EACC2G,MAAI3G,IAAU,GACxB,CAEAm9F,QAAQC,GACJ,IAAIrgG,EAAOqgG,EACX,MAAMviG,EAAMF,KAAKsiG,MAAMG,GACvB,OAAIviG,IACAkC,EAAOlC,EAAIkC,MAERA,CACX,iDArBSggG,GAAkBz7F,MAAAC,MAAA,sCAAlBw7F,EAAkBj7F,QAAlBi7F,EAAkBh7F,WAAA,SAAlBg7F,CAAkB,KCF/B,MAAMM,GACF,iBAAOC,CAAW32F,GACd,MAAM42F,EAAW,GACjB,UAAWx4F,KAAK4B,EACRA,EAAI2iC,eAAevkC,IACnBw4F,EAASvvF,KAAKrH,EAAI5B,IAG1B,OAAOw4F,CACX,CACA,kBAAOC,CAAYrlC,EAAMslC,EAAc96F,GAE/B,EAAI86F,EAAaC,UAAU13F,QAC3BmyD,EAAKd,IAAI,KACLomC,EAAazuF,KAAKrM,EAAK,EAGnC,EACH,IAEKg7F,GAAgB,MAAtB,MAAMA,EACFljG,YAAYkrC,EAASwyB,GACjBx9D,KAAKgrC,QAAUA,EACfhrC,KAAKw9D,KAAOA,EACZx9D,KAAKijG,aAAe,EACpBjjG,KAAKkjG,kBAAiBC,WAAO,WAAW,WACxCnjG,KAAKojG,oBAAsB,CAAC,EAC5BpjG,KAAKqjG,iBAAmBrjG,KAAKojG,oBAC7BpjG,KAAKsjG,WAAatjG,KAAKojG,oBACvBpjG,KAAKujG,YAAcvjG,KAAKojG,oBACxBpjG,KAAKwjG,eAAiBxjG,KAAKojG,oBAE3BpjG,KAAK0L,QAAU,CAAC,EAEhB1L,KAAKyjG,SAAW,IAAIvvF,MACpBlU,KAAK0jG,WAAa,IAAIxvF,MACtBlU,KAAK2jG,aAAe,IAAIzvF,MAExBlU,KAAKoU,QAAU,IAAIF,MACnBlU,KAAK4jG,cAAgB,IAAI1vF,MACzBlU,KAAK6jG,YAAc,IAAI3vF,MACvBlU,KAAK8jG,UAAY,IAAI5vF,MACrBlU,KAAK+jG,YAAc,IAAI7vF,MACvBlU,KAAKgkG,YAAc,IAAI9vF,MACvBlU,KAAKikG,WAAa,IAAI/vF,MAEtBlU,KAAKkkG,UAAY,IAAIhwF,MACrBlU,KAAKmkG,eAAiB,IAAIjwF,MAC1BlU,KAAKokG,aAAe,IAAIlwF,MAExBlU,KAAKqkG,UAAY,IAAInwF,MACrBlU,KAAKskG,eAAiB,IAAIpwF,MAC1BlU,KAAKukG,aAAe,IAAIrwF,KAE5B,CACAC,WAEInU,KAAKw9D,KAAKX,kBAAkB,KAExB78D,KAAKgM,OAAMA,QAAIhM,KAAKgrC,QAAQyqC,cAAez1E,KAAK0L,SAChD1L,KAAKwkG,sBAAqB,GAG1B,MAAQxkG,KAAKykG,QAAU,MAAQzkG,KAAKquF,MACpCruF,KAAKk6F,QAAQl6F,KAAKykG,OAAQzkG,KAAKquF,MAG/B,MAAQruF,KAAKs7F,WACbt7F,KAAK0kG,aAAa1kG,KAAKs7F,WAEvB,MAAQt7F,KAAK2kG,WACb3kG,KAAK4kG,aAAa5kG,KAAK2kG,WAEvB,MAAQ3kG,KAAKkmF,SACblmF,KAAK6kG,WAAW7kG,KAAKkmF,SAErB,MAAQlmF,KAAKmmF,SACbnmF,KAAK8kG,WAAW9kG,KAAKmmF,SAEzBnmF,KAAK+kG,WAEL/kG,KAAKyjG,SAASpvF,KAAKrU,KAAKgM,IAC5B,CACAsJ,YAAYC,GAUJA,EAAQ84E,MAAW94E,EAAQkvF,QAAa,MAAQzkG,KAAKquF,MAAQ,MAAQruF,KAAKykG,OAC1EzkG,KAAKk6F,QAAQ3kF,EAAQkvF,OAAUO,aAAczvF,EAAQ84E,KAAQ2W,cAGxDzvF,EAAQ84E,KACbruF,KAAKy5F,QAAQlkF,EAAQ84E,KAAQ2W,cAGxBzvF,EAAQkvF,QACbzkG,KAAKilG,UAAU1vF,EAAQkvF,OAAUO,cAGjCzvF,EAAQ+lF,WACRt7F,KAAK0kG,aAAanvF,EAAQ+lF,UAAa0J,cAEvCzvF,EAAQovF,WACR3kG,KAAK4kG,aAAarvF,EAAQovF,UAAaK,cAEvCzvF,EAAQ2wE,SACRlmF,KAAK6kG,WAAWtvF,EAAQ2wE,QAAW8e,cAEnCzvF,EAAQ4wE,SACRnmF,KAAK8kG,WAAWvvF,EAAQ4wE,QAAW6e,aAE3C,CACAxqF,cAEQ,MAAQxa,KAAKgM,KACbhM,KAAKgM,IAAI8oD,QAEjB,CACAowC,SACI,OAAOllG,KAAKgM,GAChB,CACAm5F,WACInlG,KAAKolG,aACT,CACAZ,uBACI,MAAMa,EAAuBA,CAAC76D,EAAW86D,KACrCtlG,KAAKgM,IAAI8gE,GAAGtiC,EAAW86D,EAAO,EAGlCD,EAAqB,QAAU/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAKoU,QAASkG,IACtF+qF,EAAqB,WAAa/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAK4jG,cAAetpF,IAC/F+qF,EAAqB,YAAc/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAK6jG,YAAavpF,IAC9F+qF,EAAqB,UAAY/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAK8jG,UAAWxpF,IAC1F+qF,EAAqB,YAAc/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAKgkG,YAAa1pF,IAC9F+qF,EAAqB,WAAa/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAKikG,WAAY3pF,IAC5F+qF,EAAqB,YAAc/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAK+jG,YAAazpF,IAC9F+qF,EAAqB,YAAc/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAKskG,eAAgBhqF,IACjG+qF,EAAqB,OAAS/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAKqkG,UAAW/pF,IACvF+qF,EAAqB,UAAY/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAKukG,aAAcjqF,IAC7F+qF,EAAqB,YAAc/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAKmkG,eAAgB7pF,IACjG+qF,EAAqB,OAAS/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAKkkG,UAAW5pF,IACvF+qF,EAAqB,UAAY/qF,GAAMooF,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAKokG,aAAc9pF,IAE7F,MAAMirF,EAAsBA,KACxB,MAAMlX,EAAOruF,KAAKgM,IAAI0tF,UAClBrL,IAASruF,KAAKquF,OACdruF,KAAKquF,KAAOA,EACZqU,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAK0jG,WAAYrV,IAExD,MAAMoW,EAASzkG,KAAKgM,IAAIw5F,aACpB,MAAQf,GAAU,MAAQzkG,KAAKykG,WACzB,MAAQA,GAAU,MAAQzkG,KAAKykG,SAAWA,IAAWzkG,KAAKykG,QACxDA,EAAOnhF,MAAQtjB,KAAKykG,OAAOnhF,KAAOmhF,EAAO/gF,MAAQ1jB,KAAKykG,OAAO/gF,OACjE1jB,KAAKykG,OAASA,EACd/B,GAAYG,YAAY7iG,KAAKw9D,KAAMx9D,KAAK2jG,aAAcc,GAAM,EAIxEY,EAAqB,UAAWE,GAChCF,EAAqB,UAAWE,EACpC,CAIAR,WAEI/kG,KAAKw9D,KAAKX,kBAAkB,KAEpB,MAAQ78D,KAAKgM,KACbhM,KAAKgM,IAAIouF,eAAe,CAAC,EAAC,EAGtC,CAIAgL,cACQ,MAAQplG,KAAKylG,aACb5iE,aAAa7iC,KAAKylG,aAEtBzlG,KAAKylG,YAAcjwF,WAAWxV,KAAK+kG,SAASW,KAAK1lG,MAAO,IAC5D,CAMAk6F,QAAQuK,EAAQpW,GACR,MAAQruF,KAAKgM,KAAO,MAAQy4F,GAAU,MAAQpW,GAC9CruF,KAAKgM,IAAIkuF,QAAQuK,EAAQpW,EAAMruF,KAAKwjG,eAE5C,CAKA/J,QAAQpL,GACA,MAAQruF,KAAKgM,KAAO,MAAQqiF,GAC5BruF,KAAKgM,IAAIytF,QAAQpL,EAAMruF,KAAKujG,YAEpC,CAKA0B,UAAUR,GACF,MAAQzkG,KAAKgM,KAAO,MAAQy4F,GAC5BzkG,KAAKgM,IAAI25F,MAAMlB,EAAQzkG,KAAKsjG,WAEpC,CAKAoB,aAAakB,GACL,MAAQ5lG,KAAKgM,KAAO,MAAQ45F,GAC5B5lG,KAAKgM,IAAIsvF,UAAUsK,EAAc5lG,KAAKqjG,iBAE9C,CAKAuB,aAAagB,GACL,MAAQ5lG,KAAKgM,KAAO,MAAQ45F,GAC5B5lG,KAAKgM,IAAI44F,aAAagB,EAE9B,CAKAf,WAAWxW,GACH,MAAQruF,KAAKgM,KAAO,MAAQqiF,GAC5BruF,KAAKgM,IAAI64F,WAAWxW,EAE5B,CAKAyW,WAAWzW,GACH,MAAQruF,KAAKgM,KAAO,MAAQqiF,GAC5BruF,KAAKgM,IAAI84F,WAAWzW,EAE5B,EAEJ2U,SAAiB57F,UAAI,SAAAg3B,GAAA,WAAAA,GAAwF4kE,GAAVr8F,MAA4CA,OAA5CA,MAAsEA,OAAS,EAClLq8F,EAAiB6C,UADkFl/F,MAAE,CAAA3D,KACJggG,EAAgB1uF,UAAA,oBAAAsG,aAAA,SAAA/F,EAAAC,GAAA,EAAAD,GADdlO,MAAE,2BACJmO,EAAAqwF,UAAU,KADRx+F,MACc,EAAA4N,OAAA,CAAA8uF,iBAAA,iDAAAC,WAAA,qCAAAC,YAAA,uCAAAC,eAAA,6CAAA93F,QAAA,+BAAA2iF,KAAA,yBAAAoW,OAAA,6BAAAnJ,UAAA,mCAAAqJ,UAAA,mCAAAze,QAAA,+BAAAC,QAAA,gCAAA3xE,QAAA,CAAAivF,SAAA,kBAAAC,WAAA,oBAAAC,aAAA,sBAAAvvF,QAAA,eAAAwvF,cAAA,qBAAAC,YAAA,mBAAAC,UAAA,iBAAAC,YAAA,mBAAAC,YAAA,mBAAAC,WAAA,kBAAAC,UAAA,iBAAAC,eAAA,sBAAAC,aAAA,oBAAAC,UAAA,iBAAAC,eAAA,sBAAAC,aAAA,qBAAAvU,SAAA,CADdrpF,SAzO7Fq8F,CAAgB,KA6vBhB8C,GAAa,MAAnB,MAAMA,GAENA,SAAc1+F,UAAI,SAAAg3B,GAAA,WAAAA,GAAwF0nE,EAAa,EACvHA,EAAcznE,UAvhBqF13B,KAAE,CAAA3D,KAuhBM8iG,IAS3GA,EAAcxnE,UAhiBqF33B,MAAE,IAohB/Fm/F,CAAa,KC/vBNC,GAAqB,MAA5B,MAAOA,EA0BXjmG,YACU8gG,EACAoF,EACA3lB,EACA18E,EACA6zF,EACAyO,EACA5wE,EACA6wE,GAPAlmG,KAAA4gG,aACA5gG,KAAAgmG,iBACAhmG,KAAAqgF,iBACArgF,KAAA2D,0BACA3D,KAAAw3F,iBACAx3F,KAAAimG,uBACAjmG,KAAAq1B,mBACAr1B,KAAAkmG,qBA7BVlmG,KAAA0L,QAAU,CACRy6F,OAAQ,GACR9X,KAAM,GACN+X,aAAa,EACbC,oBAAoB,EACpB5B,OAAQ,IAAI1J,UACV,UACA,WAEFuL,mBAAmB,EACnBpgB,QAAS,GAKHlmF,KAAAumG,iBAAmB,IAAInG,GAGdpgG,KAAAwmG,eAA+B,IAAIC,MACnCzmG,KAAA0mG,WAA2B,IAAID,KAYhD,CAEAzN,WAAWhtF,GAEThM,KAAK4gG,WAAW5H,WAAWhtF,GAC3BhM,KAAKgmG,eAAehN,WAAWhtF,GAC/BhM,KAAK2mG,yBACP,CAEAnsF,cAKExa,KAAK4gG,WAAWhH,wBAChB55F,KAAKwmG,eAAehzF,cACpBxT,KAAK4mG,0BAA0BpzF,cAC/BxT,KAAK0mG,WAAWlzF,aAClB,CAGQmzF,0BACN,MAAM39F,EAAMhJ,KAAKw3F,eAAer/D,YAAY/yB,UACzC6qC,IACC,MAAQtX,KAAIL,QAAS2X,IAEftX,GAAM34B,KAAK6mG,wBAA4B7mG,KAAK6mG,wBAA0BrnF,OAAOmZ,KAAQ34B,KAAK6mG,yBAC9F7mG,KAAK8mG,kCAEHnuE,GAAe,YAATL,IACRt4B,KAAK6mG,uBAAyBrnF,OAAOmZ,GACrC34B,KAAK+mG,gCAAgC/mG,KAAK6mG,wBAC1C7mG,KAAKgnG,oBAAoBhnG,KAAK6mG,wBAAsB,GAI1D7mG,KAAKwmG,eAAe5wD,IAAI5sC,EAC1B,CAEQg+F,oBAAoBzsB,GAC1Bv6E,KAAK4mG,yBAA2B5mG,KAAK2D,wBAAwByiC,gBAC1DrhC,QACC0G,MAAU,IAAMzL,KAAKqgF,eAAexG,YAAYU,KAEjDn1E,UACE6hG,IACCjnG,KAAKknG,6BAA6BD,EAAW,EAGrD,CAEQC,6BAA6Bp+F,GACnC,MAAMq+F,EAAgBnnG,KAAK4pF,wBAAwB9gF,EAAKlI,KAAK+rC,cAAc,4BACrEy6D,EAAcpnG,KAAK4pF,wBAAwB9gF,EAAKlI,KAAK+rC,cAAc,0BAIzE,GAFA3sC,KAAKqnG,gCAEDF,GAAiBr+F,EAAKua,GAAI,CAC5Bva,EAAKua,GAAGiiB,GAAKtlC,KAAKkmG,mBAAmB1D,QAAQ15F,EAAKua,GAAGiiB,IACrD,MAAMgiE,EAActnG,KAAKumG,iBAAiB/G,UAAU12F,EAAKua,IAIzD,GAHA8jF,EAAcI,YAAcD,EAC5BH,EAAcpsC,aAAa,QAASusC,GAEhCF,EACF,IACE,MAAMI,EAAqD1+F,EAAKpH,mBAAmBE,KAAK0L,GAAa,IAARA,EAAE8V,IAE/F,GAAIokF,EAAe,CACjB,MAAMC,EAAyB,IAAI7/F,KAAK4/F,EAAc5jF,GAAGE,GAEnDmH,EAAOwB,KAAKkzE,WADJ/3F,MACY6jB,UAAYg8E,EAAiBh8E,WAAa,KAEhER,IACFm8E,EAAYG,YAAcvnG,KAAKimG,qBAAqBzG,UAAUv0E,GAAQ,IAAMjrB,KAAKq1B,iBAAiBtzB,QAAQ,cAE9G,CACF,OAEEqlG,EAAYG,YAAc,kCAC5B,CAEJ,CACF,CAEQ3d,wBAAwBjxD,GAC9B,MAAM4mB,EAAW9hC,MAAMR,KAAKhS,SAASo/E,uBAAuB,iBAAiB1xD,MAC7E,OAAO4mB,EAASl0C,OAAS,EAAIk0C,EAAS,GAAK,IAC7C,CAEQwnD,gCAAgCpuE,GACtC34B,KAAK4pF,wBAAwBjxD,IAAKw1B,UAAUvY,IAAI,cAClD,CAEQkxD,gCAAgCnuE,EAAK34B,KAAK6mG,wBAChD7mG,KAAK4mG,0BAA0BpzF,cAC/BxT,KAAK0mG,WAAWlzF,cAChBxT,KAAK0nG,mCAAmCxvC,oBAAoB,QAAS,QACrEl4D,KAAK4pF,wBAAwBjxD,IAAKw1B,UAAU2G,OAAO,eACnD90D,KAAK6mG,uBAAyB,IAChC,CAEQQ,gCAEN,MAAMM,EADQ3nG,KAAK4pF,wBAAwB5pF,KAAK6mG,yBAChBl6D,cAAc,uBAE1Cg7D,GACFnyF,WAAW,KACTxV,KAAK0nG,mCAAqCC,EAC1C3nG,KAAK0nG,mCAAmCzvC,iBAAiB,QAAS,KACjEriD,UAAUC,UAAUC,UAAU6xF,EAAiBxR,aAAa,uBAAgC,EAC7F,EACC,EAEP,iDArJW4P,GAAqBp/F,MAAAC,IAAAD,MAAAE,IAAAF,MAAAG,IAAAH,MAAAI,MAAAJ,MAAAK,OAAAL,MAAAM,IAAAN,MAAAO,OAAAP,MAAAg4F,IAAA,oCAArBoH,EAAqBzxF,UAAA,wBAAA07E,SAAA,CAAArpF,MAFrB,CAAC04F,MAAqB5qF,MAAA,EAAAC,KAAA,EAAAC,OAAA,4EAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICpBnClO,MAAA,WAAkEA,MAAA,2BAAAkU,GAAA,OAAmB/F,EAAAkkF,WAAAn+E,EAAkB,GACvGlU,cADuCA,MAAA,iBAAAmO,EAAApJ,sDDsB1Bq6F,CAAqB,KEfrB6B,GAAkB,MAAzB,MAAOA,EAQT9nG,YACY+nG,EACAC,EACApU,GAFA1zF,KAAA6nG,OACA7nG,KAAA8nG,SACA9nG,KAAA0zF,YACR,CAKGqU,gCACH,IAAI5+F,EAAOnJ,KAAK0zF,WAAW7M,oBAC3B19E,UAAQA,EACRnJ,KAAK0zF,WAAW5M,kBAAkB39E,GAElBnJ,KAAK6nG,KAAK3mF,OAAO4mE,SACzBG,UAAWr3C,IAEf,MAAMllC,EADcklC,EACGllC,aACQpK,IAA3BoK,EAAQ28E,iBACR38E,EAAQ28E,eAAiBl/E,KAIjCnJ,KAAK8nG,OAAOvgB,aAAavnF,KAAK6nG,KAAK3mF,QAE5B/X,CACX,iDAlCSy+F,GAAkBjhG,MAAAC,IAAAD,MAAAE,IAAAF,MAAAG,IAAA,sCAAlB8gG,EAAkBzgG,QAAlBygG,EAAkBxgG,WAAA,SAAlBwgG,CAAkB,8BCL7BjhG,MAAA,gCAAwBA,MAAA,UAAA8M,EAAAu0F,6CAStBrhG,MAAA,SAAmCA,MAAA,GAAeA,+BAAfA,cAAA8M,EAAAw0F,wCACnCthG,MAAA,SAA8DA,MAAA,GAAmBA,+BAAnBA,cAAA8M,EAAAy0F,4CAFhEvhG,MADF,UACEA,CAD0G,WAGxGA,MADA,EAAAwhG,GAAA,YACAxhG,CADmC,EAAAyhG,GAAA,aAErCzhG,QACAA,MAAA,WACFA,8BAJUA,MAAA,GAAAA,MAAA,OAAA8M,EAAAO,UAAAP,EAAA2nE,WACAz0E,cAAA,OAAA8M,EAAA40F,wBAAA50F,EAAAO,WAAAP,EAAA2nE,YCJH,IAAMktB,GAAa,MAApB,MAAOA,EAgBXxoG,cAfSE,KAAAskE,KAAO,GACPtkE,KAAAuoG,aAAe,GACfvoG,KAAAgU,UAAW,EACXhU,KAAAioG,YAAc,GACdjoG,KAAAu7E,YAAc,GACdv7E,KAAAwoG,iBAAmB,GACnBxoG,KAAAyoG,WAAY,EACZzoG,KAAA0oG,kBAAmB,EACnB1oG,KAAA2oG,iBAAkB,EAClB3oG,KAAA4oG,qBAAsB,EACtB5oG,KAAAqoG,uBAAwB,EACxBroG,KAAAkoG,gBAAkB,GAE3BloG,KAAAo7E,WAAY,CAGZ,CAEAjnE,WACA,CAEA00F,QAAQvsB,GACNt8E,KAAKo7E,UAAYkB,CACnB,CAEA0rB,iBACE,IAAI3iG,EAASrF,KAAKu7E,YAElB,OACEl2E,GADErF,KAAKgU,UAAYhU,KAAKo7E,UACd,IAAIp7E,KAAKuoG,eAET,IAAIvoG,KAAKskE,OAEdj/D,CACT,CAEAyjG,sBACE,IAAIzjG,EAASrF,KAAKwoG,iBAElB,OAAIxoG,KAAKgU,UAAYhU,KAAKo7E,UACxB/1E,GAAU,gBACFrF,KAAKgU,WAAahU,KAAKo7E,YAAcp7E,KAAK2oG,mBAClDtjG,GAAU,aAELA,CACT,iDA9CWijG,EAAa,oCAAbA,EAAah0F,UAAA,gBAAAC,OAAA,CAAA+vD,KAAA,OAAAikC,aAAA,eAAAv0F,SAAA,WAAAi0F,YAAA,cAAA1sB,YAAA,cAAAitB,iBAAA,mBAAAC,UAAA,YAAAC,iBAAA,mBAAAC,gBAAA,kBAAAC,oBAAA,sBAAAP,sBAAA,wBAAAH,gBAAA,mBAAAzzF,MAAA,EAAAC,KAAA,EAAAC,OAAA,wYAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDR1BlO,MAAA,WACiCA,MAA5B,8BAAamO,EAAA+zF,SAAQ,EAAK,EAAEliG,CAAD,6BAAamO,EAAA+zF,SAAQ,EAAM,GACzDliG,MAAA,EAAAoiG,GAAA,aAKFpiG,QAEAA,MAAA,EAAAqiG,GAAA,oBATKriG,MAAA,UAAAmO,EAAAg0F,uBAEGniG,cAAA,QAAAmO,EAAA2zF,WAOF9hG,cAAA,OAAAmO,EAAA4zF,kBAAA5zF,EAAAsmE,WAAAtmE,EAAA8zF,qBAAA9zF,EAAAuzF,iKCDOC,CAAa,8CCWtB3hG,MAAA,uCAEiCA,MAAA,mBAAAA,MAAAwP,GAAA,MAAAinE,EAAAz2E,QAAA,OAAAA,MAASy2E,EAAA6rB,mBAAkB,GAAsBtiG,gCAFdA,MAAA,cAAAA,MAAA,qBAAhCA,MAAA,WAAAy2E,EAAA8rB,8DAMpCviG,MAAA,4DAIiCA,MAAA,mBAAAA,MAAA+2E,GAAA,MAAAN,EAAAz2E,QAAA,OAAAA,MAASy2E,EAAA+rB,aAAY,GAAExiG,gCAH7CA,MAAA,cAAAA,MAAA,wBACAA,MAAA,kBAAAA,MAAA,yBADgDA,MADT,WAAAy2E,EAAAgsB,oBACSziG,CADuB,yBACvBA,CADoD,oDAoB/GA,MADF,YACEA,CADuE,UACJA,MAAA,eACrEA,kCAGEA,MADF,YACEA,CAD+E,UACiBA,MAAA,gBAClGA,kCAGEA,MADF,YACEA,CADmF,UACEA,MAAA,uBACvFA,WC/BK,IAAM0iG,GAAqB,MAA5B,MAAOA,UAA6Bp2F,KAiBxC,mBAAIq2F,GACF,OAAOtpG,KAAK4gG,WAAWhK,sBAAwBlR,GAAaC,KAC9D,CAEA,wBAAI4jB,GACF,OAAOvpG,KAAK4gG,WAAWhK,sBAAwBlR,GAAaE,GAE9D,CAEA,oBAAI4jB,GACF,OAAOxpG,KAAK4gG,WAAWhK,sBAAwBlR,GAAaG,eAC1D7lF,KAAK4gG,WAAWhK,sBAAwBlR,GAAaI,YACzD,CAEA,+BAAI2jB,GACF,OAAQl/E,OAAOm/E,aAAeC,OAAOr7E,QAAU/D,OAAOm/E,aAAeC,OAAOr7E,OAAS,IAAM/D,OAAOq/E,YAAcD,OAAOp7E,KACzH,CAEAzuB,YACUwnF,EACAuiB,EACAxyE,EACAgpD,EACArzE,EACApJ,EACA6zF,EACAmJ,EACAn9F,EACAF,GAERpD,QAXQH,KAAAsnF,mBACAtnF,KAAA6pG,qBACA7pG,KAAAq3B,SACAr3B,KAAAqgF,iBACArgF,KAAAgN,oBACAhN,KAAA4D,wBACA5D,KAAAy3F,kBACAz3F,KAAA4gG,aACA5gG,KAAAyD,kBACAzD,KAAAuD,uBAxCOvD,KAAA8pG,eAA8C,IAAI51F,MAE1DlU,KAAA+pG,WAAsB,GAE/B/pG,KAAAgqG,oBAAqB,EACrBhqG,KAAAiqG,mBAAoB,EACpBjqG,KAAAkqG,mBAAoB,EACpBlqG,KAAAmqG,mBAAoB,EACpBnqG,KAAAopG,qBAAsB,EACtBppG,KAAAoqG,mBAAoB,EACpBpqG,KAAAq4F,uBAAyB,EAiCvBr4F,KAAKgqG,mBAAqBhqG,KAAKqqG,iBAC/BrqG,KAAK+pG,WAAa/pG,KAAK4D,sBAAsB2c,aAC/C,CAEA/F,cACExa,KAAKsT,gBACP,CAEAa,WACEnU,KAAKmqG,mBAAoB,EACzBnqG,KAAKsqG,cACLtqG,KAAKuqG,yBAEDvqG,KAAKyD,gBAAgB43B,gBACvBr7B,KAAKwqG,eAEPxqG,KAAK+4F,8BACL/4F,KAAKyqG,+BACLzqG,KAAK0qG,4BACP,CAEOzB,mBACLjpG,KAAK8pG,eAAez1F,KAAKiiE,GAAcC,MACzC,CAEA4yB,aACEnpG,KAAKopG,qBAAuBppG,KAAKopG,oBACjCppG,KAAKqgF,eAAe3G,uBAAuB15E,KAAKopG,oBAClD,CAEAuB,WACE3qG,KAAK4gG,WAAWpH,WAAW,GAC3Bx5F,KAAK4qG,uBACP,CAEAC,YACE7qG,KAAK4gG,WAAWpH,YAAW,GAC3Bx5F,KAAK8qG,uBACP,CAGA3F,SAASn9F,GACPhI,KAAKgqG,mBAAqBhqG,KAAKqqG,gBACjC,CAEAU,qBACM/qG,KAAKqqG,iBACPrqG,KAAKgrG,iBAELhrG,KAAKirG,kBAGPjrG,KAAKgqG,mBAAqBhqG,KAAKqqG,gBACjC,CAEAa,cACElrG,KAAK4gG,WAAWjH,WAClB,CAEA6Q,eACExqG,KAAKkqG,kBAAoBlqG,KAAK6pG,mBAAmB9B,gCACjD/nG,KAAKyD,gBAAgB63B,cAAct7B,KAAKkqG,kBAC1C,CAEAI,YAAYj2F,GAAO,GACjBrU,KAAKmqG,mBAAqBnqG,KAAKmqG,kBAC3B91F,GACFrU,KAAKy3F,gBAAgB1X,yBAAyB/7E,KAAKhE,KAAKmqG,kBAC5D,CAEQM,+BACNzqG,KAAKqgF,eAAe5G,0BAA0Br0E,UAAU+lG,IACtDnrG,KAAKopG,oBAAsB+B,GAE/B,CAEQpS,8BACN/4F,KAAKsnF,iBAAiBH,yBAAyB/hF,UAAU0D,IACvD9I,KAAKoqG,mBAAqB5+E,MAAM1iB,EAAKm+E,iBAAgB,EAEzD,CAEQyjB,6BACN1qG,KAAK4gG,WAAW5J,UAAU5xF,UAAUgmG,IAC9BA,GAGFprG,KAAK4gG,WAAW50F,KAAK8gE,GAAG,YAAa,KACnC9sE,KAAKopG,qBAAsB,EAC3BppG,KAAKqgF,eAAe3G,uBAAuB15E,KAAKopG,oBAAmB,EACpE,EAGP,CAEQ6B,kBACN,MAAMI,EAAgBC,QAChB5+D,EAAYzhC,SAASvB,KAEvBgjC,EAAK6+D,kBACP7+D,EAAK6+D,oBACI7+D,EAAK8+D,qBACd9+D,EAAK8+D,uBACI9+D,EAAK++D,wBACd/+D,EAAK++D,wBAAwBJ,EAASK,sBAC7Bh/D,EAAKi/D,qBACdj/D,EAAKi/D,qBAET,CAEQX,iBACN,MAAMY,EAAiB3gG,SAEnB2gG,EAAUC,iBACZD,EAAUC,mBACDD,EAAUE,oBACnBF,EAAUE,sBACDF,EAAUG,uBACnBH,EAAUG,yBACDH,EAAUI,kBACnBJ,EAAUI,kBAEd,CAEQ3B,iBACN,MAAMuB,EAAiB3gG,SAEvB,OAUOjL,KAAKypG,oCATuBnoG,IAAhCsqG,EAAUK,mBAAmE,OAAhCL,EAAUK,wBACrB3qG,IAAlCsqG,EAAUM,qBAAuE,OAAlCN,EAAUM,0BAC7B5qG,IAA5BsqG,EAAUO,gBAAgCP,EAAUO,oBACnB7qG,IAAjCsqG,EAAUQ,qBAAqCR,EAAUQ,mBAO9D,CAEQ7B,yBACNvqG,KAAKmT,iBACHnT,KAAKy3F,gBAAgB1X,yBAAyB36E,UAAUwiF,IACtD5nF,KAAKmqG,kBAAoBviB,IAG/B,CAEQgjB,wBAC8B,IAAhC5qG,KAAKq4F,yBAGTr4F,KAAKq4F,wBAA0B,EAC/Br4F,KAAKy3F,gBAAgBxX,8BAA8Bj8E,KAAKhE,KAAKq4F,wBAC/D,CAEQyS,yBAC8B,KAAhC9qG,KAAKq4F,yBAGTr4F,KAAKq4F,wBAA0B,EAC/Br4F,KAAKy3F,gBAAgBxX,8BAA8Bj8E,KAAKhE,KAAKq4F,wBAC/D,iDAlNWgR,GAAoB1iG,MAAAC,IAAAD,MAAAE,IAAAF,MAAAG,OAAAH,MAAAI,IAAAJ,MAAAK,MAAAL,MAAAM,KAAAN,MAAAO,IAAAP,MAAAg4F,IAAAh4F,MAAAi4F,MAAAj4F,MAAAk4F,MAAA,oCAApBwK,EAAoB/0F,UAAA,sBAAAsG,aAAA,SAAA/F,EAAAC,GAAA,EAAAD,GAApBlO,MAAA,kBAAAkU,GAAA,OAAA/F,EAAAqwF,SAAAtqF,EAAgB,KAAAlU,ynFDpBzBA,MAHJ,UAGIA,CAH6E,UAG7EA,CAD0B,sCAGfA,MAAA,0BAASmO,EAAAw1F,aAAa,GAAE3jG,QAEnCA,MAAA,sCAEWA,MAAA,0BAASmO,EAAA01F,cAAc,GAAE7jG,QAEpCA,MAAA,sCAEWA,MAAA,0BAASmO,EAAAo2F,aAAa,GAAEvkG,QAEnCA,MAAA,sCAEiCA,MAAA,0BAASmO,EAAAi2F,oBAAoB,GAAEpkG,QAEhEA,MAAA,GAAA0lG,GAAA,mBAGF1lG,QAEAA,MAAA,YACEA,MAAA,GAAA2lG,GAAA,mBAMA3lG,MAAA,kBAEiCA,MAAA,0BAASmO,EAAA61F,UAAU,GAAEhkG,QAEtDA,MAAA,mBAEiCA,MAAA,0BAASmO,EAAA+1F,WAAW,GAGzDlkG,YAEAA,MAAA,aAUEA,MARA,GAAA4lG,GAAA,cAQA5lG,CARyE,GAAA6lG,GAAA,cAQzE7lG,CAJiF,GAAA8lG,GAAA,eAQjF9lG,MAAA,cAA4BA,MAAA,IAC9BA,iBAtD8CA,MAAA,GAAAA,MAAA,cAAAA,MAAA,oBAA/BA,MAAA,WAAAmO,EAAAq1F,mBAI+BxjG,MAAA,GAAAA,MAAA,cAAAA,MAAA,iCAA/BA,MAAA,WAAAmO,EAAAo1F,mBAI+BvjG,MAAA,GAAAA,MAAA,cAAAA,MAAA,wBAA/BA,MAAA,WAAAmO,EAAAm1F,mBAIgCtjG,MAAA,GAAAA,MAAA,cAAAA,MAAA,8BAAhCA,MAAA,WAAAmO,EAAAk1F,oBAICrjG,MAAA,GAAAA,MAAA,OAAAmO,EAAA43F,kBAMA/lG,MAAA,GAAAA,MAAA,OAAAmO,EAAAs1F,mBAMDzjG,QAAyBA,MAAzB,qBAAyBA,CAAD,uBAIxBA,QAAyBA,MAAzB,qBAAyBA,CAAD,uBAS9BA,MAAA,GAAAA,MAAA,OAAAmO,EAAAw0F,iBAIA3iG,cAAA,OAAAmO,EAAA00F,kBAIA7iG,cAAA,OAAAmO,EAAAy0F,sBAIqB5iG,MAAA,GAAAA,MAAAmO,EAAAi1F,4iCCjCjBV,CAAqB,8CCtBhC1iG,MADF,UACEA,CADqF,iBAGpDA,MAAA,mBAAAA,MAAAwP,GAAA,MAAAinE,EAAAz2E,QAAA,OAAAA,MAASy2E,EAAAutB,WAAU,GAAEhkG,QAEtDA,MAAA,iBAEiCA,MAAA,mBAAAA,MAAAwP,GAAA,MAAAinE,EAAAz2E,QAAA,OAAAA,MAASy2E,EAAAytB,YAAW,GACvDlkG,gBAPaA,QAAyBA,MAAzB,qBAAyBA,CAAD,uBAIxBA,QAAyBA,MAAzB,qBAAyBA,CAAD,wBCK9B,IAAMgmG,GAAwB,MAA/B,MAAOA,EAIX7sG,YACU23F,EACAuO,GADAhmG,KAAAy3F,kBACAz3F,KAAAgmG,iBAJVhmG,KAAA4sG,mBAAoB,EAMlB5sG,KAAK4sG,kBAAoB5sG,KAAKgmG,eAAetF,gBAC/C,CAEAmM,kBACE7sG,KAAKgmG,eAAe1E,0BAA0Bl8F,UAAU2iF,IACtD/nF,KAAK4sG,kBAAoB7kB,GAE7B,CAEA5zE,WACA,CAEAw2F,WACE3qG,KAAKgmG,eAAexE,QACtB,CAEAqJ,YACE7qG,KAAKgmG,eAAerE,SACtB,iDA1BWgL,GAAwBhmG,MAAAC,IAAAD,MAAAE,IAAA,oCAAxB8lG,EAAwBr4F,UAAA,4BAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,2dAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,GDVrClO,MAAA,EAAAmmG,GAAA,kBAAMnmG,MAAA,OAAAmO,EAAA83F,sECUOD,CAAwB,+BCVrC,SAASI,GAAQ7sG,GAAkC,OAA2E6sG,GAArD,mBAAXhwF,QAAoD,iBAApBA,OAAOiwF,SAAmC,SAAiB9sG,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX6c,QAAyB7c,EAAIJ,cAAgBid,QAAU7c,IAAQ6c,OAAOkwF,UAAY,gBAAkB/sG,CAAK,GAAoBA,EAAM,0CCE1W,SAASgtG,GAAkB3/E,IACxCnC,QAAa,EAAGC,WAChB,IACIJ,KAAOM,MAAOgC,GACdvB,EAAMf,EAAK8G,YACXo7E,GAAQnhF,EAHO,EAGc,EAAI,GAAKA,EAHvB,EAInBf,SAAKmiF,WAAWniF,EAAKoiF,aAAeF,GACpCliF,EAAKqiF,YAAY,EAAG,EAAG,EAAG,GACnBriF,CACT,CCRe,SAASsiF,GAAkBhgF,IACxCnC,QAAa,EAAGC,WAChB,IAAIJ,KAAOM,MAAOgC,GACdte,EAAOgc,EAAKuiF,iBACZC,EAA4B,IAAI7lG,KAAK,GACzC6lG,EAA0BC,eAAez+F,EAAO,EAAG,EAAG,GACtDw+F,EAA0BH,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIK,EAAkBT,GAAkBO,GACpCG,EAA4B,IAAIhmG,KAAK,GACzCgmG,EAA0BF,eAAez+F,EAAM,EAAG,GAClD2+F,EAA0BN,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIO,EAAkBX,GAAkBU,GAExC,OAAI3iF,EAAKQ,WAAakiF,EAAgBliF,UAC7Bxc,EAAO,EACLgc,EAAKQ,WAAaoiF,EAAgBpiF,UACpCxc,EAEAA,EAAO,CAElB,2BClBe,SAAS6+F,GAAevgF,EAAW7hB,GAChD,IAAIqiG,EAAMC,EAAOC,EAAOC,EAAuBC,EAAiBC,EAAuBC,EAAuBC,GAE9GljF,QAAa,EAAGC,WAChB,IAAIJ,KAAOM,MAAOgC,GACdte,EAAOgc,EAAKuiF,iBACZrgB,KAAiBohB,QACjBh+E,MAAwB7C,MAAm3B,QAAx2BqgF,EAAyjB,QAAjjBC,EAAoe,QAA3dC,EAAsH,QAA7GC,EAA0ExiG,GAAQ6kB,6BAA6D,IAA1B29E,EAAmCA,EAAoC,MAAZxiG,GAAyF,QAAtCyiG,EAAkBziG,EAAQ6pB,cAAwC,IAApB44E,GAA4F,QAArDC,EAAwBD,EAAgBziG,eAA+C,IAA1B0iG,OAA5J,EAAwMA,EAAsB79E,6BAA6C,IAAV09E,EAAmBA,EAAQ9gB,EAAe58D,6BAA6C,IAAVy9E,EAAmBA,EAA4D,QAAnDK,EAAwBlhB,EAAe53D,cAA8C,IAA1B84E,GAAyG,QAA5DC,EAAyBD,EAAsB3iG,eAAgD,IAA3B4iG,OAA9E,EAA2HA,EAAuB/9E,6BAA4C,IAATw9E,EAAkBA,EAAO,GAEh7B,KAAMx9E,IAAyB,GAAKA,IAAyB,GAC3D,MAAM,IAAIzU,WAAW,6DAGvB,IAAI0yF,GAAsB,IAAI5mG,KAAK,GACnC4mG,GAAoBd,eAAez+F,EAAO,EAAG,EAAGshB,IAChDi+E,GAAoBlB,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIK,MAAkBc,MAAeD,GAAqB9iG,GACtDgjG,GAAsB,IAAI9mG,KAAK,GACnC8mG,GAAoBhB,eAAez+F,EAAM,EAAGshB,IAC5Cm+E,GAAoBpB,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIO,MAAkBY,MAAeC,GAAqBhjG,GAE1D,OAAIuf,EAAKQ,WAAakiF,GAAgBliF,UAC7Bxc,EAAO,EACLgc,EAAKQ,WAAaoiF,GAAgBpiF,UACpCxc,EAEAA,EAAO,CAElB,gBCiDA,MAAA0/F,KAnEK,SAAW1jF,EAAM5F,GASlB,IAAIupF,EAAa3jF,EAAKuiF,iBAElBv+F,EAAO2/F,EAAa,EAAIA,EAAa,EAAIA,EAC7C,SAAO3iF,MAA0B,OAAV5G,EAAiBpW,EAAO,IAAMA,EAAMoW,EAAMha,OACnE,EAsDFsjG,KApDK,SAAW1jF,EAAM5F,GAClB,IAAInW,EAAQ+b,EAAK4jF,cACjB,MAAiB,MAAVxpF,EAAgBsG,OAAOzc,EAAQ,IAAC,EAAI+c,MAAgB/c,EAAQ,EAAG,EACxE,EAiDFy/F,KA/CK,SAAW1jF,EAAM5F,GAClB,SAAO4G,MAAgBhB,EAAKoiF,aAAchoF,EAAMha,OAClD,EA6CFsjG,KAvBK,SAAW1jF,EAAM5F,GAClB,SAAO4G,MAAgBhB,EAAK6jF,cAAgB,IAAM,GAAIzpF,EAAMha,OAC9D,EAqBFsjG,KAnBK,SAAW1jF,EAAM5F,GAClB,SAAO4G,MAAgBhB,EAAK6jF,cAAezpF,EAAMha,OACnD,EAiBFsjG,KAfK,SAAW1jF,EAAM5F,GAClB,SAAO4G,MAAgBhB,EAAK8jF,gBAAiB1pF,EAAMha,OACrD,EAaFsjG,KAXK,SAAW1jF,EAAM5F,GAClB,SAAO4G,MAAgBhB,EAAK+jF,gBAAiB3pF,EAAMha,OACrD,EASFsjG,KAPK,SAAW1jF,EAAM5F,GAClB,IAAI4pF,EAAiB5pF,EAAMha,OACvB6jG,EAAejkF,EAAKkkF,qBACpBC,EAAoB3iF,KAAKG,MAAMsiF,EAAeziF,KAAKo1B,IAAI,GAAIotD,EAAiB,IAChF,SAAOhjF,MAAgBmjF,EAAmB/pF,EAAMha,OAClD,ECgvBF,SAASgkG,GAAoB/iF,EAAQgjF,GACnC,IAAIlR,EAAO9xE,EAAS,EAAI,IAAM,IAC1BijF,EAAY9iF,KAAKC,IAAIJ,GACrB2zE,EAAQxzE,KAAKG,MAAM2iF,EAAY,IAC/B7P,EAAU6P,EAAY,GAE1B,GAAgB,IAAZ7P,EACF,OAAOtB,EAAOzyE,OAAOs0E,GAGvB,IAAIuP,EAAYF,GAAkB,GAClC,OAAOlR,EAAOzyE,OAAOs0E,GAASuP,KAAYvjF,MAAgByzE,EAAS,EACrE,CAEA,SAAS+P,GAAkCnjF,EAAQgjF,GACjD,OAAIhjF,EAAS,IAAO,GACPA,EAAS,EAAI,IAAM,MACvB8xE,EAAOnyE,MAAgBQ,KAAKC,IAAIJ,GAAU,GAAI,GAGhDojF,GAAepjF,EAAQgjF,EAChC,CAEA,SAASI,GAAepjF,EAAQgjF,GAC9B,IAAIE,EAAYF,GAAkB,GAC9BlR,EAAO9xE,EAAS,EAAI,IAAM,IAC1BijF,EAAY9iF,KAAKC,IAAIJ,GAGzB,OAAO8xE,GAFH6B,EAAQh0E,MAAgBQ,KAAKG,MAAM2iF,EAAY,IAAK,GAElCC,GADlB9P,EAAUzzE,MAAgBsjF,EAAY,GAAI,EAEhD,CAEA,MAAAI,GAlyBiB,CAEfC,EAAG,SAAW3kF,EAAM5F,EAAO+K,GACzB,IAAIoC,EAAMvH,EAAKuiF,iBAAmB,EAAI,EAAI,EAE1C,OAAQnoF,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO+K,EAASoC,IAAIA,EAAK,CACvBjE,MAAO,gBAIX,IAAK,QACH,OAAO6B,EAASoC,IAAIA,EAAK,CACvBjE,MAAO,WAKX,QACE,OAAO6B,EAASoC,IAAIA,EAAK,CACvBjE,MAAO,SAGf,EAEA4rD,EAAG,SAAWlvD,EAAM5F,EAAO+K,GAEzB,GAAc,OAAV/K,EAAgB,CAClB,IAAIupF,EAAa3jF,EAAKuiF,iBAGtB,OAAOp9E,EAASiC,cADLu8E,EAAa,EAAIA,EAAa,EAAIA,EACT,CAClCrgE,KAAM,QAEV,CAEA,OAAOogE,KAAkB1jF,EAAM5F,EACjC,EAEAwqF,EAAG,SAAW5kF,EAAM5F,EAAO+K,EAAU1kB,GACnC,IAAIokG,EAAiBhC,GAAe7iF,EAAMvf,GAEtCqkG,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAEzD,MAAc,OAAVzqF,GAEF,EAAO4G,MADY8jF,EAAW,IACO,GAIzB,OAAV1qF,EACK+K,EAASiC,cAAc09E,EAAU,CACtCxhE,KAAM,UACP,EAIItiB,MAAgB8jF,EAAU1qF,EAAMha,OACzC,EAEA2kG,EAAG,SAAW/kF,EAAM5F,GAClB,IAAI4qF,EAAc1C,GAAkBtiF,GAEpC,SAAOgB,MAAgBgkF,EAAa5qF,EAAMha,OAC5C,EAUAojB,EAAG,SAAWxD,EAAM5F,GAClB,IAAIpW,EAAOgc,EAAKuiF,iBAChB,SAAOvhF,MAAgBhd,EAAMoW,EAAMha,OACrC,EAEA6kG,EAAG,SAAWjlF,EAAM5F,EAAO+K,GACzB,IAAI0C,EAAUrG,KAAKkzE,MAAM10E,EAAK4jF,cAAgB,GAAK,GAEnD,OAAQxpF,GAEN,IAAK,IACH,OAAOsG,OAAOmH,GAGhB,IAAK,KACH,SAAO7G,MAAgB6G,EAAS,GAGlC,IAAK,KACH,OAAO1C,EAASiC,cAAcS,EAAS,CACrCyb,KAAM,YAIV,IAAK,MACH,OAAOne,EAAS0C,QAAQA,EAAS,CAC/BvE,MAAO,cACPyiB,QAAS,eAIb,IAAK,QACH,OAAO5gB,EAAS0C,QAAQA,EAAS,CAC/BvE,MAAO,SACPyiB,QAAS,eAKb,QACE,OAAO5gB,EAAS0C,QAAQA,EAAS,CAC/BvE,MAAO,OACPyiB,QAAS,eAGjB,EAEAm/D,EAAG,SAAWllF,EAAM5F,EAAO+K,GACzB,IAAI0C,EAAUrG,KAAKkzE,MAAM10E,EAAK4jF,cAAgB,GAAK,GAEnD,OAAQxpF,GAEN,IAAK,IACH,OAAOsG,OAAOmH,GAGhB,IAAK,KACH,SAAO7G,MAAgB6G,EAAS,GAGlC,IAAK,KACH,OAAO1C,EAASiC,cAAcS,EAAS,CACrCyb,KAAM,YAIV,IAAK,MACH,OAAOne,EAAS0C,QAAQA,EAAS,CAC/BvE,MAAO,cACPyiB,QAAS,eAIb,IAAK,QACH,OAAO5gB,EAAS0C,QAAQA,EAAS,CAC/BvE,MAAO,SACPyiB,QAAS,eAKb,QACE,OAAO5gB,EAAS0C,QAAQA,EAAS,CAC/BvE,MAAO,OACPyiB,QAAS,eAGjB,EAEAo/D,EAAG,SAAWnlF,EAAM5F,EAAO+K,GACzB,IAAIlhB,EAAQ+b,EAAK4jF,cAEjB,OAAQxpF,GACN,IAAK,IACL,IAAK,KACH,OAAOspF,KAAkB1jF,EAAM5F,GAGjC,IAAK,KACH,OAAO+K,EAASiC,cAAcnjB,EAAQ,EAAG,CACvCq/B,KAAM,UAIV,IAAK,MACH,OAAOne,EAASlhB,MAAMA,EAAO,CAC3Bqf,MAAO,cACPyiB,QAAS,eAIb,IAAK,QACH,OAAO5gB,EAASlhB,MAAMA,EAAO,CAC3Bqf,MAAO,SACPyiB,QAAS,eAKb,QACE,OAAO5gB,EAASlhB,MAAMA,EAAO,CAC3Bqf,MAAO,OACPyiB,QAAS,eAGjB,EAEAs1C,EAAG,SAAWr7D,EAAM5F,EAAO+K,GACzB,IAAIlhB,EAAQ+b,EAAK4jF,cAEjB,OAAQxpF,GAEN,IAAK,IACH,OAAOsG,OAAOzc,EAAQ,GAGxB,IAAK,KACH,SAAO+c,MAAgB/c,EAAQ,EAAG,GAGpC,IAAK,KACH,OAAOkhB,EAASiC,cAAcnjB,EAAQ,EAAG,CACvCq/B,KAAM,UAIV,IAAK,MACH,OAAOne,EAASlhB,MAAMA,EAAO,CAC3Bqf,MAAO,cACPyiB,QAAS,eAIb,IAAK,QACH,OAAO5gB,EAASlhB,MAAMA,EAAO,CAC3Bqf,MAAO,SACPyiB,QAAS,eAKb,QACE,OAAO5gB,EAASlhB,MAAMA,EAAO,CAC3Bqf,MAAO,OACPyiB,QAAS,eAGjB,EAEAq/D,EAAG,SAAWplF,EAAM5F,EAAO+K,EAAU1kB,GACnC,IAAI4kG,EClTO,SAASC,GAAWhjF,EAAW7hB,IAC5C0f,QAAa,EAAGC,WAChB,IAAIJ,KAAOM,MAAOgC,GACd4/E,KAAOsB,MAAexjF,EAAMvf,GAAS+f,UCH5B,SAAS+kF,GAAmBjjF,EAAW7hB,GACpD,IAAIqiG,EAAMC,EAAOC,EAAOC,EAAuBC,EAAiBC,EAAuBC,EAAuBC,GAE9GljF,QAAa,EAAGC,WAChB,IAAI8hE,KAAiBohB,QACjBh+E,KAAwB7C,MAAm3B,QAAx2BqgF,EAAyjB,QAAjjBC,EAAoe,QAA3dC,EAAsH,QAA7GC,EAA0ExiG,GAAQ6kB,6BAA6D,IAA1B29E,EAAmCA,EAAoC,MAAZxiG,GAAyF,QAAtCyiG,EAAkBziG,EAAQ6pB,cAAwC,IAApB44E,GAA4F,QAArDC,EAAwBD,EAAgBziG,eAA+C,IAA1B0iG,OAA5J,EAAwMA,EAAsB79E,6BAA6C,IAAV09E,EAAmBA,EAAQ9gB,EAAe58D,6BAA6C,IAAVy9E,EAAmBA,EAA4D,QAAnDK,EAAwBlhB,EAAe53D,cAA8C,IAA1B84E,GAAyG,QAA5DC,EAAyBD,EAAsB3iG,eAAgD,IAA3B4iG,OAA9E,EAA2HA,EAAuB/9E,6BAA4C,IAATw9E,EAAkBA,EAAO,GAC56B9+F,EAAO6+F,GAAevgF,EAAW7hB,GACjC+kG,GAAY,IAAI7oG,KAAK,GAIzB,OAHA6oG,GAAU/C,eAAez+F,EAAM,EAAGshB,GAClCkgF,GAAUnD,YAAY,EAAG,EAAG,EAAG,IAC3BriF,EAAOwjF,MAAegC,GAAW/kG,EAEvC,CDTuD8kG,CAAmBvlF,EAAMvf,GAAS+f,UAIvF,OAAOgB,KAAKq1B,MAAMqrD,EARO,QAQwB,CACnD,CD0SeoD,CAAWtlF,EAAMvf,GAE5B,MAAc,OAAV2Z,EACK+K,EAASiC,cAAci+E,EAAM,CAClC/hE,KAAM,UACP,EAGItiB,MAAgBqkF,EAAMjrF,EAAMha,OACrC,EAEAqlG,EAAG,SAAWzlF,EAAM5F,EAAO+K,GACzB,IAAIugF,EG9TO,SAASC,GAAcrjF,IACpCnC,QAAa,EAAGC,WAChB,IAAIJ,KAAOM,MAAOgC,GACd4/E,EAAOD,GAAkBjiF,GAAMQ,UCLtB,SAASolF,GAAsBtjF,IAC5CnC,QAAa,EAAGC,WAChB,IAAIpc,EAAOs+F,GAAkBhgF,GACzBujF,EAAkB,IAAIlpG,KAAK,GAI/B,OAHAkpG,EAAgBpD,eAAez+F,EAAM,EAAG,GACxC6hG,EAAgBxD,YAAY,EAAG,EAAG,EAAG,GAC1BJ,GAAkB4D,EAE/B,CDHiDD,CAAsB5lF,GAAMQ,UAI3E,OAAOgB,KAAKq1B,MAAMqrD,EARO,QAQwB,CACnD,CHsTkByD,CAAc3lF,GAE5B,MAAc,OAAV5F,EACK+K,EAASiC,cAAcs+E,EAAS,CACrCpiE,KAAM,UACP,EAGItiB,MAAgB0kF,EAAStrF,EAAMha,OACxC,EAEAyrB,EAAG,SAAW7L,EAAM5F,EAAO+K,GACzB,MAAc,OAAV/K,EACK+K,EAASiC,cAAcpH,EAAKoiF,aAAc,CAC/C9+D,KAAM,SAIHogE,KAAkB1jF,EAAM5F,EACjC,EAEA0rF,EAAG,SAAW9lF,EAAM5F,EAAO+K,GACzB,IAAI4gF,EKtVO,SAASC,GAAgB1jF,IACtCnC,QAAa,EAAGC,WAChB,IAAIJ,KAAOM,MAAOgC,GACd2jF,EAAYjmF,EAAKQ,UACrBR,EAAKkmF,YAAY,EAAG,GACpBlmF,EAAKqiF,YAAY,EAAG,EAAG,EAAG,GAC1B,IAAI8D,EAAuBnmF,EAAKQ,UAEhC,OAAOgB,KAAKG,OADKskF,EAAYE,GARL,OAS8B,CACxD,CL6UoBH,CAAgBhmF,GAEhC,MAAc,OAAV5F,EACK+K,EAASiC,cAAc2+E,EAAW,CACvCziE,KAAM,eACP,EAGItiB,MAAgB+kF,EAAW3rF,EAAMha,OAC1C,EAEAgmG,EAAG,SAAWpmF,EAAM5F,EAAO+K,GACzB,IAAIkhF,EAAYrmF,EAAK8G,YAErB,OAAQ1M,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO+K,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,cACPyiB,QAAS,eAIb,IAAK,QACH,OAAO5gB,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,SACPyiB,QAAS,eAIb,IAAK,SACH,OAAO5gB,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,QACPyiB,QAAS,eAKb,QACE,OAAO5gB,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,OACPyiB,QAAS,eAGjB,EAEA12B,EAAG,SAAW2Q,EAAM5F,EAAO+K,EAAU1kB,GACnC,IAAI4lG,EAAYrmF,EAAK8G,YACjBw/E,GAAkBD,EAAY5lG,EAAQ4kB,aAAe,GAAK,GAAK,EAEnE,OAAQjL,GAEN,IAAK,IACH,OAAOsG,OAAO4lF,GAGhB,IAAK,KACH,SAAOtlF,MAAgBslF,EAAgB,GAGzC,IAAK,KACH,OAAOnhF,EAASiC,cAAck/E,EAAgB,CAC5ChjE,KAAM,QAGV,IAAK,MACH,OAAOne,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,cACPyiB,QAAS,eAIb,IAAK,QACH,OAAO5gB,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,SACPyiB,QAAS,eAIb,IAAK,SACH,OAAO5gB,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,QACPyiB,QAAS,eAKb,QACE,OAAO5gB,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,OACPyiB,QAAS,eAGjB,EAEAtV,EAAG,SAAWzQ,EAAM5F,EAAO+K,EAAU1kB,GACnC,IAAI4lG,EAAYrmF,EAAK8G,YACjBw/E,GAAkBD,EAAY5lG,EAAQ4kB,aAAe,GAAK,GAAK,EAEnE,OAAQjL,GAEN,IAAK,IACH,OAAOsG,OAAO4lF,GAGhB,IAAK,KACH,SAAOtlF,MAAgBslF,EAAgBlsF,EAAMha,QAG/C,IAAK,KACH,OAAO+kB,EAASiC,cAAck/E,EAAgB,CAC5ChjE,KAAM,QAGV,IAAK,MACH,OAAOne,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,cACPyiB,QAAS,eAIb,IAAK,QACH,OAAO5gB,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,SACPyiB,QAAS,eAIb,IAAK,SACH,OAAO5gB,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,QACPyiB,QAAS,eAKb,QACE,OAAO5gB,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,OACPyiB,QAAS,eAGjB,EAEA5lC,EAAG,SAAW6f,EAAM5F,EAAO+K,GACzB,IAAIkhF,EAAYrmF,EAAK8G,YACjBy/E,EAA6B,IAAdF,EAAkB,EAAIA,EAEzC,OAAQjsF,GAEN,IAAK,IACH,OAAOsG,OAAO6lF,GAGhB,IAAK,KACH,SAAOvlF,MAAgBulF,EAAcnsF,EAAMha,QAG7C,IAAK,KACH,OAAO+kB,EAASiC,cAAcm/E,EAAc,CAC1CjjE,KAAM,QAIV,IAAK,MACH,OAAOne,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,cACPyiB,QAAS,eAIb,IAAK,QACH,OAAO5gB,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,SACPyiB,QAAS,eAIb,IAAK,SACH,OAAO5gB,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,QACPyiB,QAAS,eAKb,QACE,OAAO5gB,EAASpE,IAAIslF,EAAW,CAC7B/iF,MAAO,OACPyiB,QAAS,eAGjB,EAEAzoB,EAAG,SAAW0C,EAAM5F,EAAO+K,GACzB,IACIqhF,EADQxmF,EAAK6jF,cACgB,IAAM,EAAI,KAAO,KAElD,OAAQzpF,GACN,IAAK,IACL,IAAK,KACH,OAAO+K,EAAS4C,UAAUy+E,EAAoB,CAC5CljF,MAAO,cACPyiB,QAAS,eAGb,IAAK,MACH,OAAO5gB,EAAS4C,UAAUy+E,EAAoB,CAC5CljF,MAAO,cACPyiB,QAAS,eACR7wB,cAEL,IAAK,QACH,OAAOiQ,EAAS4C,UAAUy+E,EAAoB,CAC5CljF,MAAO,SACPyiB,QAAS,eAIb,QACE,OAAO5gB,EAAS4C,UAAUy+E,EAAoB,CAC5CljF,MAAO,OACPyiB,QAAS,eAGjB,EAEAxoB,EAAG,SAAWyC,EAAM5F,EAAO+K,GACzB,IACIqhF,EADAxR,EAAQh1E,EAAK6jF,cAWjB,OAPE2C,EADY,KAAVxR,EAvjBA,OAyjBiB,IAAVA,EA1jBH,WA6jBeA,EAAQ,IAAM,EAAI,KAAO,KAGxC56E,GACN,IAAK,IACL,IAAK,KACH,OAAO+K,EAAS4C,UAAUy+E,EAAoB,CAC5CljF,MAAO,cACPyiB,QAAS,eAGb,IAAK,MACH,OAAO5gB,EAAS4C,UAAUy+E,EAAoB,CAC5CljF,MAAO,cACPyiB,QAAS,eACR7wB,cAEL,IAAK,QACH,OAAOiQ,EAAS4C,UAAUy+E,EAAoB,CAC5CljF,MAAO,SACPyiB,QAAS,eAIb,QACE,OAAO5gB,EAAS4C,UAAUy+E,EAAoB,CAC5CljF,MAAO,OACPyiB,QAAS,eAGjB,EAEA0gE,EAAG,SAAWzmF,EAAM5F,EAAO+K,GACzB,IACIqhF,EADAxR,EAAQh1E,EAAK6jF,cAajB,OATE2C,EADExR,GAAS,GA7lBN,UA+lBIA,GAAS,GAhmBX,YAkmBEA,GAAS,EAnmBb,UAGF,QAsmBG56E,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO+K,EAAS4C,UAAUy+E,EAAoB,CAC5CljF,MAAO,cACPyiB,QAAS,eAGb,IAAK,QACH,OAAO5gB,EAAS4C,UAAUy+E,EAAoB,CAC5CljF,MAAO,SACPyiB,QAAS,eAIb,QACE,OAAO5gB,EAAS4C,UAAUy+E,EAAoB,CAC5CljF,MAAO,OACPyiB,QAAS,eAGjB,EAEA2gE,EAAG,SAAW1mF,EAAM5F,EAAO+K,GACzB,GAAc,OAAV/K,EAAgB,CAClB,IAAI46E,EAAQh1E,EAAK6jF,cAAgB,GACjC,OAAc,IAAV7O,IAAaA,EAAQ,IAClB7vE,EAASiC,cAAc4tE,EAAO,CACnC1xD,KAAM,QAEV,CAEA,OAAOogE,KAAkB1jF,EAAM5F,EACjC,EAEAusF,EAAG,SAAW3mF,EAAM5F,EAAO+K,GACzB,MAAc,OAAV/K,EACK+K,EAASiC,cAAcpH,EAAK6jF,cAAe,CAChDvgE,KAAM,SAIHogE,KAAkB1jF,EAAM5F,EACjC,EAEAwsF,EAAG,SAAW5mF,EAAM5F,EAAO+K,GACzB,IAAI6vE,EAAQh1E,EAAK6jF,cAAgB,GAEjC,MAAc,OAAVzpF,EACK+K,EAASiC,cAAc4tE,EAAO,CACnC1xD,KAAM,UACP,EAGItiB,MAAgBg0E,EAAO56E,EAAMha,OACtC,EAEAjB,EAAG,SAAW6gB,EAAM5F,EAAO+K,GACzB,IAAI6vE,EAAQh1E,EAAK6jF,cAGjB,OAFc,IAAV7O,IAAaA,EAAQ,IAEX,OAAV56E,EACK+K,EAASiC,cAAc4tE,EAAO,CACnC1xD,KAAM,UACP,EAGItiB,MAAgBg0E,EAAO56E,EAAMha,OACtC,EAEAulC,EAAG,SAAW3lB,EAAM5F,EAAO+K,GACzB,MAAc,OAAV/K,EACK+K,EAASiC,cAAcpH,EAAK8jF,gBAAiB,CAClDxgE,KAAM,WAIHogE,KAAkB1jF,EAAM5F,EACjC,EAEAsxB,EAAG,SAAW1rB,EAAM5F,EAAO+K,GACzB,MAAc,OAAV/K,EACK+K,EAASiC,cAAcpH,EAAK+jF,gBAAiB,CAClDzgE,KAAM,WAIHogE,KAAkB1jF,EAAM5F,EACjC,EAEAysF,EAAG,SAAW7mF,EAAM5F,GAClB,OAAOspF,KAAkB1jF,EAAM5F,EACjC,EAEA0sF,EAAG,SAAW9mF,EAAM5F,EAAO2sF,EAAWtmG,GACpC,IACIumG,GADevmG,EAAQwmG,eAAiBjnF,GACVsB,oBAElC,GAAuB,IAAnB0lF,EACF,MAAO,IAGT,OAAQ5sF,GAEN,IAAK,IACH,OAAOoqF,GAAkCwC,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOvC,GAAeuC,GAQxB,QACE,OAAOvC,GAAeuC,EAAgB,KAE5C,EAEA3kG,EAAG,SAAW2d,EAAM5F,EAAO2sF,EAAWtmG,GACpC,IACIumG,GADevmG,EAAQwmG,eAAiBjnF,GACVsB,oBAElC,OAAQlH,GAEN,IAAK,IACH,OAAOoqF,GAAkCwC,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOvC,GAAeuC,GAQxB,QACE,OAAOvC,GAAeuC,EAAgB,KAE5C,EAEA9pE,EAAG,SAAWld,EAAM5F,EAAO2sF,EAAWtmG,GACpC,IACIumG,GADevmG,EAAQwmG,eAAiBjnF,GACVsB,oBAElC,OAAQlH,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQgqF,GAAoB4C,EAAgB,KAIrD,QACE,MAAO,MAAQvC,GAAeuC,EAAgB,KAEpD,EAEAnnB,EAAG,SAAW7/D,EAAM5F,EAAO2sF,EAAWtmG,GACpC,IACIumG,GADevmG,EAAQwmG,eAAiBjnF,GACVsB,oBAElC,OAAQlH,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQgqF,GAAoB4C,EAAgB,KAIrD,QACE,MAAO,MAAQvC,GAAeuC,EAAgB,KAEpD,EAEAn8E,EAAG,SAAW7K,EAAM5F,EAAO2sF,EAAWtmG,GACpC,IACIwlG,EAAYzkF,KAAKG,OADFlhB,EAAQwmG,eAAiBjnF,GACJQ,UAAY,KACpD,SAAOQ,MAAgBilF,EAAW7rF,EAAMha,OAC1C,EAEAyY,EAAG,SAAWmH,EAAM5F,EAAO2sF,EAAWtmG,GACpC,IACIwlG,GADexlG,EAAQwmG,eAAiBjnF,GACfQ,UAC7B,SAAOQ,MAAgBilF,EAAW7rF,EAAMha,OAC1C,GM9zBF,IAAI8mG,GAAoB,SAA2BC,EAAS5iF,GAC1D,OAAQ4iF,GACN,IAAK,IACH,OAAO5iF,EAAWvE,KAAK,CACrBsD,MAAO,UAGX,IAAK,KACH,OAAOiB,EAAWvE,KAAK,CACrBsD,MAAO,WAGX,IAAK,MACH,OAAOiB,EAAWvE,KAAK,CACrBsD,MAAO,SAIX,QACE,OAAOiB,EAAWvE,KAAK,CACrBsD,MAAO,SAGf,EAEI8jF,GAAoB,SAA2BD,EAAS5iF,GAC1D,OAAQ4iF,GACN,IAAK,IACH,OAAO5iF,EAAW7nB,KAAK,CACrB4mB,MAAO,UAGX,IAAK,KACH,OAAOiB,EAAW7nB,KAAK,CACrB4mB,MAAO,WAGX,IAAK,MACH,OAAOiB,EAAW7nB,KAAK,CACrB4mB,MAAO,SAIX,QACE,OAAOiB,EAAW7nB,KAAK,CACrB4mB,MAAO,SAGf,EA+CA,MAAA+jF,GAJqB,CACnBzwG,EAAGwwG,GACHE,EA3C0B,SAA+BH,EAAS5iF,GAClE,IAQIgjF,EARAC,EAAcL,EAAQ/hF,MAAM,cAAgB,GAC5CqiF,EAAcD,EAAY,GAC1BE,EAAcF,EAAY,GAE9B,IAAKE,EACH,OAAOR,GAAkBC,EAAS5iF,GAKpC,OAAQkjF,GACN,IAAK,IACHF,EAAiBhjF,EAAWQ,SAAS,CACnCzB,MAAO,UAET,MAEF,IAAK,KACHikF,EAAiBhjF,EAAWQ,SAAS,CACnCzB,MAAO,WAET,MAEF,IAAK,MACHikF,EAAiBhjF,EAAWQ,SAAS,CACnCzB,MAAO,SAET,MAGF,QACEikF,EAAiBhjF,EAAWQ,SAAS,CACnCzB,MAAO,SAKb,OAAOikF,EAAe/uF,QAAQ,WAAY0uF,GAAkBO,EAAaljF,IAAa/L,QAAQ,WAAY4uF,GAAkBM,EAAanjF,GAC3I,GC9Ee,SAASojF,GAAgC3nF,GACtD,IAAI4nF,EAAU,IAAIjrG,KAAKA,KAAKkrG,IAAI7nF,EAAKmB,cAAenB,EAAKkB,WAAYlB,EAAKiB,UAAWjB,EAAK+B,WAAY/B,EAAKiC,aAAcjC,EAAKmC,aAAcnC,EAAKuyE,oBACjJqV,SAAQnF,eAAeziF,EAAKmB,eACrBnB,EAAKQ,UAAYonF,EAAQpnF,SAClC,CCfA,IAAIsnF,GAA2B,CAAC,IAAK,MACjCC,GAA0B,CAAC,KAAM,QAO9B,SAASC,GAAoB5tF,EAAOqG,EAAQilB,GACjD,GAAc,SAAVtrB,EACF,MAAM,IAAIvJ,WAAW,qCAAqCuQ,OAAOX,EAAQ,0CAA0CW,OAAOskB,EAAO,mFAC5H,GAAc,OAAVtrB,EACT,MAAM,IAAIvJ,WAAW,iCAAiCuQ,OAAOX,EAAQ,0CAA0CW,OAAOskB,EAAO,mFACxH,GAAc,MAAVtrB,EACT,MAAM,IAAIvJ,WAAW,+BAA+BuQ,OAAOX,EAAQ,sDAAsDW,OAAOskB,EAAO,mFAClI,GAAc,OAAVtrB,EACT,MAAM,IAAIvJ,WAAW,iCAAiCuQ,OAAOX,EAAQ,sDAAsDW,OAAOskB,EAAO,kFAE7I,0BCeA,MAAAuiE,GAdiB,CACfjoF,QAAMwE,MAAkB,CACtBC,QApBc,CAChBC,KAAM,mBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,cAiBLC,aAAc,SAEhBpoB,QAAM8nB,MAAkB,CACtBC,QAlBc,CAChBC,KAAM,iBACNC,KAAM,cACNC,OAAQ,YACRC,MAAO,UAeLC,aAAc,SAEhBC,YAAUP,MAAkB,CAC1BC,QAhBkB,CACpBC,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAaLC,aAAc,+CC7BlB,MAAAojF,GCca,CACX/wG,KAAM,QACN8tB,eAAgBA,KAChBV,WAAYA,GACZW,eAAgBA,KAChBC,SAAUA,KACVC,MAAOA,KACP3kB,QAAS,CACP4kB,aAAc,EAGdC,sBAAuB,ICJ3B,IAAI6iF,GAAyB,wDAGzBC,GAA6B,oCAC7BC,GAAsB,eACtBC,GAAoB,MACpBC,GAAgC,WAqSrB,SAAS9nF,GAAO6B,EAAWkmF,EAAgB/nG,GACxD,IAAIqiG,EAAMI,EAAiBH,EAAOC,EAAOyF,EAAOxF,EAAuByF,EAAkBC,EAAuBvF,EAAuBC,EAAwBuF,GAAOC,GAAOC,GAAOC,GAAuBC,GAAkBC,GAAuBC,GAAwBC,IAE5QhpF,QAAa,EAAGC,WAChB,IAAIgpF,GAAY1oF,OAAO8nF,GACnBtmB,MAAiBohB,QACjBh5E,GAA4L,QAAlLw4E,EAAgG,QAAxFI,EAAoEziG,GAAQ6pB,cAAwC,IAApB44E,EAA6BA,EAAkBhhB,GAAe53D,cAA6B,IAATw4E,EAAkBA,EAAOoF,GAC7N5iF,MAAwB7C,MAAu3B,QAA52BsgF,EAA6jB,QAApjBC,EAAue,QAA9dyF,EAAsH,QAA7GxF,EAA0ExiG,GAAQ6kB,6BAA6D,IAA1B29E,EAAmCA,EAAoC,MAAZxiG,GAA0F,QAAvCioG,EAAmBjoG,EAAQ6pB,cAAyC,IAArBo+E,GAA8F,QAAtDC,EAAwBD,EAAiBjoG,eAA+C,IAA1BkoG,OAA/J,EAA2MA,EAAsBrjF,6BAA6C,IAAVmjF,EAAmBA,EAAQvmB,GAAe58D,6BAA6C,IAAV09E,EAAmBA,EAA4D,QAAnDI,EAAwBlhB,GAAe53D,cAA8C,IAA1B84E,GAAyG,QAA5DC,EAAyBD,EAAsB3iG,eAAgD,IAA3B4iG,OAA9E,EAA2HA,EAAuB/9E,6BAA6C,IAAVy9E,EAAmBA,EAAQ,GAEt7B,KAAMz9E,IAAyB,GAAKA,IAAyB,GAC3D,MAAM,IAAIzU,WAAW,6DAGvB,IAAIwU,MAAe5C,MAAs1B,QAA30BmmF,GAAkiB,QAAzhBC,GAAqd,QAA5cC,GAA6G,QAApGC,GAA0EtoG,GAAQ4kB,oBAAoD,IAA1B0jF,GAAmCA,GAAoC,MAAZtoG,GAA0F,QAAvCuoG,GAAmBvoG,EAAQ6pB,cAAyC,IAArB0+E,IAA8F,QAAtDC,GAAwBD,GAAiBvoG,eAA+C,IAA1BwoG,QAA/J,EAA2MA,GAAsB5jF,oBAAoC,IAAVyjF,GAAmBA,GAAQ5mB,GAAe78D,oBAAoC,IAAVwjF,GAAmBA,GAA6D,QAApDK,GAAyBhnB,GAAe53D,cAA+C,IAA3B4+E,IAA2G,QAA7DC,GAAyBD,GAAuBzoG,eAAgD,IAA3B0oG,QAA/E,EAA4HA,GAAuB9jF,oBAAoC,IAAVujF,GAAmBA,GAAQ,GAE54B,KAAMvjF,IAAgB,GAAKA,IAAgB,GACzC,MAAM,IAAIxU,WAAW,oDAGvB,IAAKyZ,GAAOnF,SACV,MAAM,IAAItU,WAAW,yCAGvB,IAAKyZ,GAAO/F,WACV,MAAM,IAAI1T,WAAW,2CAGvB,IAAIwP,MAAeC,MAAOgC,GAE1B,IC3Ta,SAAS+mF,GAAQ/mF,GAG9B,MAFAnC,MAAa,EAAGC,YlBAH,SAASxY,GAAOH,GAC7B0Y,eAAa,EAAGC,WACT3Y,aAAiB9K,MAA2B,WAAnBmlG,GAAQr6F,IAAiE,kBAA1CnR,OAAO0rG,UAAUn6F,SAASyhG,KAAK7hG,EAChG,CkBDOG,CAAO0a,IAAmC,iBAAdA,EAC/B,OAAO,EAGT,IAAItC,KAAOM,MAAOgC,GAClB,OAAQ/B,MAAMhM,OAAOyL,GACvB,CDkTOqpF,CAAQhpF,IACX,MAAM,IAAIxP,WAAW,sBAMvB,IACI+2F,GEhVS,SAAS2B,GAAgBjnF,EAAWC,IACjDpC,QAAa,EAAGC,WAChB,IAAIoC,KAASC,MAAUF,GACvB,SAAOG,MAAgBJ,GAAYE,EACrC,CF4UgB+mF,CAAgBlpF,GADTsnF,GAAgCtnF,KAEjDmpF,GAAmB,CACrBlkF,sBAAuBA,GACvBD,aAAcA,GACdiF,OAAQA,GACR28E,cAAe5mF,IAEbjmB,GAASgvG,GAAUhkF,MAAMgjF,IAA4BrnG,IAAI,SAAU2/B,IACrE,IAAI+oE,GAAiB/oE,GAAU,GAE/B,MAAuB,MAAnB+oE,IAA6C,MAAnBA,IAErBC,EADaC,GAAeF,KACd/oE,GAAWpW,GAAO/F,YAGlCmc,EACT,GAAGte,KAAK,IAAIgD,MAAM+iF,IAAwBpnG,IAAI,SAAU2/B,IAEtD,GAAkB,OAAdA,GACF,MAAO,IAGT,IAAI+oE,GAAiB/oE,GAAU,GAE/B,GAAuB,MAAnB+oE,GACF,OA0BN,SAASG,GAAmBlkE,GAC1B,IAAImkE,EAAUnkE,EAAMtgB,MAAMijF,IAE1B,OAAKwB,EAIEA,EAAQ,GAAGrxF,QAAQ8vF,GAAmB,KAHpC5iE,CAIX,CAlCakkE,CAAmBlpE,IAG5B,IAAIopE,GAAYC,GAAWN,IAE3B,GAAIK,GACF,QAAkB,MAAZrpG,GAA0CA,EAAQupG,8BJhYvD,SAASC,GAAyB7vF,GACvC,OAAkD,IAA3C2tF,GAAwB1uG,QAAQ+gB,EACzC,CI8X8F6vF,CAAyBvpE,KAC/GsnE,GAAoBtnE,GAAW8nE,EAAgB9nF,OAAO4B,MAGtC,MAAZ7hB,GAA0CA,EAAQypG,+BJvYvD,SAASC,GAA0B/vF,GACxC,OAAmD,IAA5C0tF,GAAyBzuG,QAAQ+gB,EAC1C,CIqY+F+vF,CAA0BzpE,KACjHsnE,GAAoBtnE,GAAW8nE,EAAgB9nF,OAAO4B,IAGjDwnF,GAAUlC,GAASlnE,GAAWpW,GAAOnF,SAAUqkF,IAGxD,GAAIC,GAAerkF,MAAMmjF,IACvB,MAAM,IAAI13F,WAAW,iEAAmE44F,GAAiB,KAG3G,OAAO/oE,EACT,GAAGte,KAAK,IACR,OAAOhoB,EACT,wBGpYO,IAAMgwG,GAAiC,MAAxC,MAAOA,EAcXv1G,YACU8gG,EACAsF,EACAoP,EACAj1B,EACAmX,EACA3gF,GALA7W,KAAA4gG,aACA5gG,KAAAkmG,qBACAlmG,KAAAs1G,kBACAt1G,KAAAqgF,iBACArgF,KAAAw3F,iBACAx3F,KAAA6W,iBACN,CAEJ1C,WACEnU,KAAKu1G,kBACLv1G,KAAKw1G,wBACP,CAEAh7F,cACExa,KAAKy1G,sBAAsBjiG,cAC3BxT,KAAK01G,6BAA6BliG,cAClCxT,KAAK21G,wBAAwBniG,aAC/B,CAEOoiG,mBACL51G,KAAK4nF,WAAY,EACjB5nF,KAAK08B,WACP,CAEOm5E,YAELjgG,UAAUC,UAAUC,UADL,GAAG9V,KAAK8I,MAAMioG,EAAEe,EAAEtuF,MAAMxjB,KAAK8I,MAAMioG,EAAEe,EAAEnuF,KAExD,CAEQ6xF,yBACPx1G,KAAK01G,4BAA8B11G,KAAKw3F,eAAer/D,YACtDpzB,QACA0G,MAAWwkC,GACLA,EAAOtX,GACF34B,KAAKqgF,eAAexG,YAAYr6D,OAAOywB,EAAOtX,MAAM,EAEtDtsB,OAAG,QAGZjH,UACG0D,IACC,GAAIA,EAGF,OAFA9I,KAAK41G,wBACL51G,KAAK81G,eAAiB,IAAKhtG,IAG7B9I,KAAK41G,kBAAgB,EAG3B,CAEQL,kBACNv1G,KAAK21G,uBAAyB31G,KAAK4gG,WAAW/I,kBAAkBzyF,UAAW0D,IACrEA,GAAM9I,KAAK08B,WAAS,GAG1B18B,KAAKy1G,qBAAuBz1G,KAAK4gG,WAAWhJ,qBAAqBxyF,UAC9D0D,IACC,GAAIA,EAWF,OAVA9I,KAAK8I,KAAO,IAAIA,GAChB9I,KAAK+1G,cAAgB/1G,KAAKg2G,iBAAiBltG,GAC3C9I,KAAKi2G,gBAAkBj2G,KAAKk2G,kBAAkBptG,GAE1C9I,KAAK4nF,WACP5nF,KAAK08B,iBAEPlnB,WAAW,KACTxV,KAAKk8B,WAAS,EACbl8B,KAAK4nF,UAAY,IAAM,GAG5B5nF,KAAK08B,WAAS,EAGpB,CAEQw5E,kBAAkBptG,GACxB,IAAIqtG,EAAa,IAAKrtG,EAAKioG,EAAEe,GAC7BqE,SAAW7wE,GAAKtlC,KAAKkmG,mBAAmB1D,QAAQ2T,EAAW7wE,IACvCtlC,KAAKs1G,gBAAgB9V,UAAU2W,EAErD,CAEQz5E,YACN18B,KAAKo2G,UAAU3gC,eAAetnB,UAAUvY,IAAI,QAC5CpgC,WAAW,KACTxV,KAAKo2G,UAAU3gC,eAAetnB,UAAU2G,OAAO,aAAY,EAC1D,IACL,CAEQ54B,YACNl8B,KAAK4nF,WAAY,EACjB5nF,KAAKo2G,UAAU3gC,eAAetnB,UAAUvY,IAAI,cAC5C51C,KAAKo2G,UAAU3gC,eAAetnB,UAAU2G,OAAO,OACjD,CAEQkhD,iBAAiBhuG,GACvB,MAAQrH,KAAI01G,MAAOruG,EACbsuG,EAAY31G,MAAMsmB,MAAStmB,GAC3B41G,EAAUF,MAAMpvF,MAASovF,GACzBG,EAAe,oBAIrB,MAAO,CACLvrF,KAAM,GAJetqB,EAAK+qB,GAAO4qF,EAAWE,EAAc,CAAEjhF,OAAQv1B,KAAK6W,gBAAgBqe,wBAA2B,oBACjGmhF,EAAK3qF,GAAO6qF,EAASC,EAAc,CAAEjhF,OAAQv1B,KAAK6W,gBAAgBqe,wBAA2B,iBAIhHi4E,KAAMntG,KAAKy2G,iBAAiBzuG,GAEhC,CAEQyuG,iBAAiBhwG,GACvB,IAAKA,EAAM9F,KAAO8F,EAAM4vG,GACtB,OAAO,KAEJ,CACH,MAAMl+D,EAAY,IAAIvwC,KAAKnB,EAAM9F,IAAI8qB,UAC/BysB,EAAU,IAAItwC,KAAKnB,EAAM4vG,IAAI5qF,UAEnC,OADiBgB,KAAKG,OAAOsrB,EAAUC,GAAa,IAEtD,CACF,iDAvIWk9D,GAAiC1uG,MAAAC,IAAAD,MAAAE,IAAAF,MAAAG,IAAAH,MAAAI,IAAAJ,MAAAK,OAAAL,MAAAM,MAAA,oCAAjCouG,EAAiC/gG,UAAA,sCAAA2B,UAAA,SAAApB,EAAAC,MAAA,EAAAD,oFAFjC,CAACurF,MAAgB3rF,MAAA,GAAAC,KAAA,GAAAC,OAAA,sfAAAC,SAAA,SAAAC,EAAAC,GAAA,KAAAD,EAAA,iBChB1BlO,MADJ,YACIA,CADmC,WAE/BA,MAAA,WACAA,MAAA,UACIA,MAAA,wBAERA,UACAA,MAAA,cAAQA,MAAA,mBAAAA,aAAAwP,GAAAxP,MAASmO,EAAA8gG,mBAAkB,GAC/BjvG,MAAA,SACJA,QAEIA,MADJ,UACIA,CADiC,aACCA,MAAA,uDAAsEA,QACxGA,MAAA,aACIA,MAAA,IACJA,QACAA,MAAA,aACIA,MAAA,IACJA,QAGIA,MADJ,YACIA,CADuB,cAEnBA,MAAA,IACJA,QAGIA,MADJ,YACIA,CADgC,WAE5BA,MAAA,aACJA,QACAA,MAAA,gBAAQA,MAAA,mBAAAA,aAAAwP,GAAAxP,MAASmO,EAAA+gG,YAAW,GACxBlvG,MAAA,aAKpBA,sBA9BYA,MAAA,GAAAA,MAAA,IAAAA,MAAA,wBAO8BA,MAAA,GAAAA,MAAA,GAAAA,MAAA,uBAAAA,MAAA,YAAAmO,EAAAihG,cAAA,KAAAjhG,EAAAihG,cAAA5I,MAAA,IAE9BxmG,MAAA,GAAAA,MAAA,UAAAmO,EAAAihG,cAAA,KAAAjhG,EAAAihG,cAAA9qF,KAAA,KAGAtkB,MAAA,GAAAA,MAAA,UAAAmO,EAAAghG,eAAA,KAAAhhG,EAAAghG,eAAAr1G,GAAA,KAKIkG,MAAA,GAAAA,MAAA,IAAAmO,EAAAmhG,gBAAA,KAImBtvG,MAAA,GAAAA,MAAA,kDAAAmO,EAAAhM,KAAA,KAAAgM,EAAAhM,KAAAioG,EAAAe,EAAAtuF,GAAA,UAAA1O,EAAAhM,KAAA,KAAAgM,EAAAhM,KAAAioG,EAAAe,EAAAnuF,GAAA,GAAAhd,q1FDNtB0uG,CAAiC,KEXjCqB,GAAkB,MAAzB,MAAOA,oDAAkB,oCAAlBA,EAAkBpiG,UAAA,qBAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,gDAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICR/BlO,MAAA,WACIA,MAAA,mBACJA,eADiBA,QAAkBA,MAAlB,gBAAkBA,CAAD,8ZDOrB+vG,CAAkB,KERxB,IAAKC,GAAZ,SAAYA,GAERA,WAAAC,MAAA,WACAD,IAAAlgC,KAAA,UACAkgC,IAAAE,KAAA,UAJQF,CAKZ,CALA,CAAYA,IAAa,ICGzB,MAAMG,GAAwB,CAC5B,2CAA6B,4CAC7B,oBAAqB,6BACrB,2CAAuC,wCACvC,uCAAmC,8BACnC,iDAAkD,mDAClD,8CAA+C,sCAC/C,qDAA4C,wBAE5C,QAAS,yBACT,0BAAsB,kCACtB,yBAAa,6BACb,0BAAsB,qCACtB,wBAAY,0BACZ,+BAAsB,uCACtB,sBAAuB,oCACvB,iBAAkB,6BAClB,YAAU,6BACV,8BAAgB,8BAChBC,OAAU,yBACV,iBAAkB,+BAClB,oCAA2B,yBAC3B,qDAAgD,6BAM3C,IAAMC,GAAmB,MAA1B,MAAOA,EAEXl3G,YACSC,GAAAC,KAAAD,WACN,CAEHy/F,UAAU9sF,GACR,MAAmC,OAA/B1S,KAAKD,UAAUk3G,aACVH,GAAiBpkG,GAAS1S,KAAKD,UAAUgC,QAAQ+0G,GAAiBpkG,IAEpEA,CACT,iDAXWskG,GAAmBrwG,MAAAC,MAAA,gEAAnBowG,EAAmB7W,MAAA,YAAnB6W,CAAmB,iHCpBxBrwG,MAAA,GACIA,MAAA,YACAA,MAAA,UACIA,MAAA,6CACJA,sCADIA,MAAA,GAAAA,MAAA,IAAAy2E,EAAA9uE,YAAA8uE,EAAA85B,WAAA7zB,oBAAA18E,MAAA,6BAAAA,MAAA,qDAGRA,MAAA,UACIA,MAAA,wBACJA,eADIA,cAAA,WAAAA,MAAA,yDAEJA,MAAA,GACIA,MAAA,YACAA,MAAA,UACIA,MAAA,6CACJA,sCADIA,MAAA,GAAAA,MAAA,IAAAy2E,EAAA9uE,YAAA8uE,EAAA85B,WAAAzzB,cAAA98E,MAAA,8BAAAA,MAAA,6DAwBAA,MAAA,aACIA,MAAA,YACAA,MAAA,0CACJA,8BADIA,MAAA,GAAAA,MAAA,IAAAA,MAAA,mCAAAA,MAAA,IAAAy2E,EAAA+5B,WAAA,2CAEJxwG,MAAA,aACIA,MAAA,YACAA,MAAA,0CACJA,8BADIA,MAAA,GAAAA,MAAA,IAAAA,MAAA,mCAAAA,MAAA,IAAAy2E,EAAA+5B,WAAA,2CAEJxwG,MAAA,aAAqEA,MAAA,8BAAyCA,8BAAzCA,oBAAA,UAAAy2E,EAAAg6B,WAAA,MAAAh6B,EAAAg6B,UAAAnvG,GAAA,KAAAm1E,EAAAg6B,UAAAnvG,GAAAovG,gCACrE1wG,MAAA,aAA6GA,MAAA,6CAAwFA,8BAAxFA,cAAA,GAAAA,MAAA,yCAAAy2E,EAAAg6B,WAAA,MAAAh6B,EAAAg6B,UAAAnvG,GAAA,KAAAm1E,EAAAg6B,UAAAnvG,GAAAxH,KAAAkG,MAAA,iDAC7GA,MAAA,aAA8GA,MAAA,6CAAuFA,8BAAvFA,cAAA,GAAAA,MAAA,wCAAAy2E,EAAAg6B,WAAA,MAAAh6B,EAAAg6B,UAAAnvG,GAAA,KAAAm1E,EAAAg6B,UAAAnvG,GAAAxH,KAAAkG,MAAA,uBCpCvH,IAAM2wG,GAA8B,MAArC,MAAOA,EAwBXx3G,YACU8gG,EACA/pF,EACA9W,EACAwmC,GAHAvmC,KAAA4gG,aACA5gG,KAAA6W,kBACA7W,KAAAD,YACAC,KAAAumC,sBApBHvmC,KAAAu3G,mBAAqBv3G,KAAKD,UAAUgC,QAAQ,+BAC5C/B,KAAAw3G,kBAAoBx3G,KAAKD,UAAUgC,QAAQ,8BAWlC/B,KAAAy3G,gBAAkBd,GAClB32G,KAAAk3G,WAAa/zB,GACbnjF,KAAA03G,SAAmB13G,KAAK6W,gBAAgBS,OAOpD,CAEJnD,WACEnU,KAAK23G,sBACP,CAEAn9F,cACExa,KAAK43G,2BAA2BpkG,cAChCxT,KAAK63G,0BAA0BrkG,aACjC,CAEOqiG,YAELjgG,UAAUC,UAAUC,UADL,GAAG9V,KAAKo3G,WAAWn/B,GAAGz0D,MAAMxjB,KAAKo3G,WAAWn/B,GAAGt0D,KAEhE,CAEOiyF,mBACL51G,KAAK4nF,WAAY,EACjB5nF,KAAK08B,WACP,CAEQA,YACN18B,KAAKo2G,UAAU3gC,cAActnB,UAAUvY,IAAI,QAC3CpgC,WAAW,KACTxV,KAAKo2G,UAAU3gC,cAActnB,UAAU2G,OAAO,aAAY,EACzD,IACL,CAEQ54B,YACNl8B,KAAK4nF,WAAY,EACjB5nF,KAAKo2G,UAAU3gC,cAActnB,UAAUvY,IAAI,cAC3C51C,KAAKo2G,UAAU3gC,cAActnB,UAAU2G,OAAO,OAChD,CAEQ6iD,uBACN33G,KAAK63G,yBAA2B73G,KAAK4gG,WAAWhJ,qBAAqBxyF,UAAW0D,IAC1EA,GAAM9I,KAAK08B,WAAS,GAG1B18B,KAAK43G,0BAA4B53G,KAAK4gG,WAAW/I,kBAAkBzyF,UAChEid,IACC,GAAIA,GAAKvZ,KAaP,OAZA9I,KAAKsO,UAAY+T,EAAIvZ,KAAKgvG,GAC1B93G,KAAKo3G,UAAY/0F,EAAIvZ,KACrB9I,KAAK+3G,UAAY11F,EAAI01F,UACrB/3G,KAAKg4G,iBACDh4G,KAAK+3G,YAAcpB,GAAclgC,MAAMz2E,KAAKi4G,cAE5Cj4G,KAAK4nF,WACP5nF,KAAK08B,iBAEPlnB,WAAW,KACTxV,KAAKk8B,WAAS,EACbl8B,KAAK4nF,UAAY,IAAM,GAG5B5nF,KAAK08B,WAAS,EAGpB,CAEQs7E,iBACN,GAAIh4G,KAAKo3G,WAAW9uG,GAAI,CACtB,MAAMu8B,EAAS7kC,KAAKumC,oBAAoBtP,cAAcj3B,KAAKo3G,WAAW9uG,IAClEu8B,IACF7kC,KAAK6kC,OAASA,EAElB,CACA,GAAI7kC,KAAKo3G,WAAW7uG,GAAI,CACtB,MAAMua,EAAU9iB,KAAKumC,oBAAoB5P,eAAe32B,KAAKo3G,WAAW7uG,IACpEua,IACF9iB,KAAK8iB,QAAUA,EAEnB,CACF,CAEQm1F,cACFj4G,KAAKo3G,WAAWnvG,IAAMjI,KAAKo3G,UAAUnvG,GAAG4b,IAC1C7jB,KAAKm3G,WAAa1qF,KAAKC,IAAI1sB,KAAKo3G,UAAUnvG,GAAG4b,GAKjD,iDAhHWyzF,GAA8B3wG,MAAAC,IAAAD,MAAAE,MAAAF,MAAAG,OAAAH,MAAAI,MAAA,oCAA9BuwG,EAA8BhjG,UAAA,kCAAA2B,UAAA,SAAApB,EAAAC,MAAA,EAAAD,oFAF9B,CAACurF,MAAgB3rF,MAAA,GAAAC,KAAA,GAAAC,OAAA,s0BAAAC,SAAA,SAAAC,EAAAC,GAAA,KAAAD,EAAA,iBDT1BlO,MAVJ,YAUIA,CADH,WAWOA,MATA,EAAAuxG,GAAA,qBASAvxG,CATqJ,EAAAwxG,GAAA,aASrJxxG,CAHkD,EAAAyxG,GAAA,sBAStDzxG,QACAA,MAAA,cAAQA,MAAA,mBAAAA,aAAAwP,GAAAxP,MAASmO,EAAA8gG,mBAAkB,GAC/BjvG,MAAA,SACJA,QAEIA,MADJ,UACIA,CADiC,YAE7BA,MAAA,qBACJA,QACAA,MAAA,aACIA,MAAA,IACJA,QACAA,MAAA,aACIA,MAAA,IACJA,QAGIA,MADJ,YACIA,CADuB,aAgBnBA,MAVA,GAAA0xG,GAAA,cAUA1xG,CAVmH,GAAA2xG,GAAA,cAUnH3xG,CAN6G,GAAA4xG,GAAA,cAM7G5xG,CAFqE,GAAA6xG,GAAA,cAErE7xG,CAD6G,GAAA8xG,GAAA,eAEjH9xG,QAGIA,MADJ,YACIA,CADgC,WAE5BA,MAAA,aACJA,QACAA,MAAA,gBAAQA,MAAA,mBAAAA,aAAAwP,GAAAxP,MAASmO,EAAA+gG,YAAW,GACxBlvG,MAAA,aAKpBA,sBApEIA,MAAA,UAAAA,MAAA,GAAAsQ,GAAAnC,EAAAijG,YAAAjjG,EAAA2iG,gBAAAhhC,MAAA3hE,EAAAxG,YAAAwG,EAAAoiG,WAAA7zB,oBAAAvuE,EAAAijG,YAAAjjG,EAAA2iG,gBAAAhhC,MAAA3hE,EAAAxG,YAAAwG,EAAAoiG,WAAA5zB,cAAAxuE,EAAAijG,YAAAjjG,EAAA2iG,gBAAAb,MAAA9hG,EAAAijG,YAAAjjG,EAAA2iG,gBAAAZ,OAAA/hG,EAAAxG,YAAAwG,EAAAoiG,WAAA1zB,gBAAA1uE,EAAAxG,YAAAwG,EAAAoiG,WAAAzzB,iBASmB98E,MAAA,GAAAA,MAAA,OAAAmO,EAAAijG,YAAAjjG,EAAA2iG,gBAAAhhC,OAAA3hE,EAAAxG,YAAAwG,EAAAoiG,WAAA7zB,qBAAAvuE,EAAAxG,YAAAwG,EAAAoiG,WAAA5zB,gBAMR38E,cAAA,OAAAmO,EAAAijG,YAAAjjG,EAAA2iG,gBAAAb,OAGQjwG,cAAA,OAAAmO,EAAAijG,YAAAjjG,EAAA2iG,gBAAAZ,OAAA/hG,EAAAxG,YAAAwG,EAAAoiG,WAAA1zB,gBAAA1uE,EAAAxG,YAAAwG,EAAAoiG,WAAAzzB,gBAYX98E,MAAA,GAAAA,MAAA,IAAAA,MAAA,YAAAmO,EAAAsiG,UAAA,KAAAtiG,EAAAsiG,UAAAhvG,GAAA,0BAAA0M,EAAA4iG,UAAA,KAGA/wG,MAAA,GAAAA,MAAA,WAAAmO,EAAAgO,QAAA,KAAAhO,EAAAgO,QAAAriB,KAAAqU,EAAAyiG,mBAAA,KAGA5wG,MAAA,GAAAA,MAAA,WAAAmO,EAAA+vB,OAAA,KAAA/vB,EAAA+vB,OAAA6zE,KAAA5jG,EAAA0iG,kBAAA,WAAA1iG,EAAA+vB,OAAA,KAAA/vB,EAAA+vB,OAAA8zE,KAAA,QASWhyG,MAAA,GAAAA,MAAA,OAAAmO,EAAAijG,YAAAjjG,EAAA2iG,gBAAAhhC,MAAA3hE,EAAAxG,YAAAwG,EAAAoiG,WAAA7zB,qBAIA18E,cAAA,OAAAmO,EAAAijG,YAAAjjG,EAAA2iG,gBAAAhhC,MAAA3hE,EAAAxG,YAAAwG,EAAAoiG,WAAA5zB,eAIA38E,cAAA,OAAAmO,EAAAijG,YAAAjjG,EAAA2iG,gBAAAb,OACAjwG,cAAA,OAAAmO,EAAAijG,YAAAjjG,EAAA2iG,gBAAAZ,MAAA/hG,EAAAxG,YAAAwG,EAAAoiG,WAAAzzB,eACA98E,cAAA,OAAAmO,EAAAijG,YAAAjjG,EAAA2iG,gBAAAZ,MAAA/hG,EAAAxG,YAAAwG,EAAAoiG,WAAA1zB,gBAIY78E,MAAA,GAAAA,MAAA,kDAAAmO,EAAAsiG,WAAA,MAAAtiG,EAAAsiG,UAAAn/B,GAAA,KAAAnjE,EAAAsiG,UAAAn/B,GAAAz0D,GAAA,UAAA1O,EAAAsiG,WAAA,MAAAtiG,EAAAsiG,UAAAn/B,GAAA,KAAAnjE,EAAAsiG,UAAAn/B,GAAAt0D,GAAA,GAAAhd,g6ICxCtB2wG,CAA8B,gECrB/BsB,GAAZ,SAAYA,GACRA,WAAA12B,KAAA,UACA02B,IAAAniC,KAAA,UACAmiC,IAAAC,MAAA,WAGAD,IAAAE,YAAA,iBACAF,IAAAG,YAAA,iBACAH,IAAAI,QAAA,aACAJ,IAAA10E,SAAA,cACA00E,IAAAK,OAAA,YACAL,IAAAM,OAAA,aACAN,IAAAO,QAAA,cACAP,IAAAQ,MAAA,YACAR,IAAAS,SAAA,eACAT,IAAAU,SAAA,eACAV,IAAAW,gBAAA,sBACAX,IAAAY,SAAA,eACAZ,IAAAa,SAAA,eACAb,IAAAc,KAAA,WACAd,IAAAe,WAAA,iBACAf,IAAAgB,UAAA,gBACAhB,IAAAiB,kBAAA,wBACAjB,IAAAkB,SAAA,eACAlB,IAAAmB,KAAA,WACAnB,IAAAoB,aAAA,mBAEApB,IAAAqB,MAAA,YACArB,IAAAsB,UAAA,gBACAtB,IAAAuB,SAAA,eACAvB,IAAAwB,QAAA,eACAxB,IAAAyB,WAAA,kBACAzB,IAAApuB,cAAA,qBACAouB,IAAA0B,iBAAA,yBACA1B,IAAA2B,0BAAA,kCACA3B,IAAA4B,mBAAA,2BAnCQ5B,CAoCZ,CApCA,CAAYA,IAAiB,ICAjB6B,GAAZ,SAAYA,GACRA,WAAA7tG,OAAA,YACA6tG,IAAAl5F,MAAA,WACAk5F,IAAAC,SAAA,cACAD,IAAAE,YAAA,iBAJQF,CAKZ,CALA,CAAYA,IAAiB,IAOjBG,GAAZ,SAAYA,GACRA,WAAAC,QAAA,aACAD,IAAAE,KAAA,UAFQF,CAGZ,CAHA,CAAYA,IAAc,ICapB,SAAUG,GAA2BjyG,GAEvC,IAAI4J,GADa5J,EAAKpH,mBACG,IAAIuM,OAAO+pE,GAAKA,GAAiB,KAAZA,EAAEz2D,OAEhD,OADc7O,GAASA,EAAMrH,OAAS,GAAKqH,EAAM,GAAGkR,GAAMlR,EAAM,GAAGkR,GAAK,OACzDC,CACnB,CAEM,SAAUm3F,GAAiBlyG,GAC7B,MAAM2J,EAAU3J,EAAKyZ,kBAAoBzZ,EAAKpH,mBAAmBE,KAAKiQ,GAAQA,EAAKjR,KAAOkI,GAAMyZ,mBAAqB,KAC/G04F,EAAcnyG,EAAK2Z,sBAAwB3Z,EAAKpH,mBAAmBE,KAAKiQ,GAAQA,EAAKjR,KAAOkI,GAAM2Z,uBAAyB,KACjI,OAAOhQ,GAASmR,IAAIC,GAAKo3F,GAAar3F,IAAIC,CAC9C,CCzBO,IAAMq3F,GAAkB,MAAzB,MAAOA,EAGF1b,UAAU36D,GACb,IAAIs2E,EAAW,GACf,OAAIt2E,IACIA,EAAO6zE,KACPyC,IAAaA,EAAW,IAAM,IAAMt2E,EAAO6zE,IAE3C7zE,EAAO8zE,KACPwC,IAAaA,EAAW,IAAM,IAAMt2E,EAAO8zE,KAG5CwC,CACX,iDAdSD,EAAkB,qDAAlBA,EAAkB/a,MAAA,YAAlB+a,CAAkB,KC2BzB,SAAUE,GAAmCtyG,GAE/C,IAAI4J,GADa5J,EAAKpH,mBACG,IAAIuM,OAAO+pE,GAAKA,GAAiB,KAAZA,EAAEz2D,OAC5C85F,EAAU3oG,GAASA,EAAMrH,OAAS,GAAKqH,EAAM,GAAGkR,GAAMlR,EAAM,GAAGkR,GAAK,KAExE,MAAMqO,EAAQ,IAAIrqB,KACZ0zG,EAAS,IAAI1zG,KAAKyzG,EAAOv3F,GACzBy3F,EAAUtpF,EAAMxG,UAAY6vF,EAAO7vF,UAEzC,OADiBgB,KAAKkzE,KAAK4b,EAAS,IAExC,CC1CO,IAAKC,GAAZ,SAAYA,GACRA,WAAAl5G,KAAA,UACAk5G,IAAAn1G,OAAA,YACAm1G,IAAA7zG,KAAA,UACA6zG,IAAAC,MAAA,WACAD,IAAAE,OAAA,YACAF,IAAA32E,OAAA,YACA22E,IAAAG,MAAA,WACAH,IAAAI,KAAA,UACAJ,IAAAK,IAAA,SACAL,IAAAM,IAAA,UACAN,IAAA75G,KAAA,WACA65G,IAAAO,IAAA,UACAP,IAAAQ,OAAA,aACAR,IAAA93E,MAAA,YACA83E,IAAAS,SAAA,eACAT,IAAA7iF,GAAA,SACA6iF,IAAAU,KAAA,WACAV,IAAAW,YAAA,kBAlBQX,CAmBZ,CAnBA,CAAYA,IAAmB,ICEzB,SAAUY,KACZ,IACE,OAAOl4G,KAAKgN,MAAMqU,aAAaC,QCFM,2CDEyE,EAChH,OAEE,MAAO,EACT,CACJ,CEYe,SAAS62F,GAAQ9uF,EAAWC,IACzCpC,QAAa,EAAGC,WAChB,IAAIJ,KAAOM,MAAOgC,GACdE,KAASC,MAAUF,GAEvB,OAAIhC,MAAMiC,GACD,IAAI7lB,KAAK00G,MAGb7uF,GAKLxC,EAAKsxF,QAAQtxF,EAAKiB,UAAYuB,GACvBxC,EACT,CCLe,SAASuxF,GAAOjvF,EAAWkvF,EAAU/wG,GAClD,IAAIqiG,EAAMC,EAAOC,EAAO+F,EAAuB7F,EAAiBC,EAAuBC,EAAuBC,GAE9GljF,QAAa,EAAGC,WAChB,IAAI8hE,KAAiBohB,QACjBj+E,KAAe5C,MAA+0B,QAAp0BqgF,EAA8hB,QAAthBC,EAAkd,QAAzcC,EAA6G,QAApG+F,EAA0EtoG,GAAQ4kB,oBAAoD,IAA1B0jF,EAAmCA,EAAoC,MAAZtoG,GAAyF,QAAtCyiG,EAAkBziG,EAAQ6pB,cAAwC,IAApB44E,GAA4F,QAArDC,EAAwBD,EAAgBziG,eAA+C,IAA1B0iG,OAA5J,EAAwMA,EAAsB99E,oBAAoC,IAAV29E,EAAmBA,EAAQ9gB,EAAe78D,oBAAoC,IAAV09E,EAAmBA,EAA4D,QAAnDK,EAAwBlhB,EAAe53D,cAA8C,IAA1B84E,GAAyG,QAA5DC,EAAyBD,EAAsB3iG,eAAgD,IAA3B4iG,OAA9E,EAA2HA,EAAuBh+E,oBAAmC,IAATy9E,EAAkBA,EAAO,GAEn4B,KAAMz9E,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIxU,WAAW,oDAGvB,IAAImP,MAAOM,MAAOgC,GACdvB,MAAM0B,MAAU+uF,GAChBC,GAAazxF,GAAK0xF,SAGlBC,GAAQ,EAAItsF,EAEhB,OAAO+rF,GAAQpxF,GADJe,GAAM,GAAKA,GAAM,EAAIA,IAAO0wF,GAAaE,IAAS,IAH7C5wF,GAAM,EACM,GAAK,EAE4C4wF,IAAS,GAAKF,GAAaE,IAAS,EAEnH,CCxCO,IAAMC,GAAsB,MAA7B,MAAOA,EAKX/8G,YACU+W,EACAwe,GADAr1B,KAAA6W,kBACA7W,KAAAq1B,mBALVr1B,KAAAiyB,MAAO,GACPjyB,KAAAg8G,OAAS,GAMPh8G,KAAK88G,iBACP,CAEQA,kBACN98G,KAAKq1B,iBAAiBrvB,IAAI,iBAAiBZ,UAAU0wB,GAAK91B,KAAKg8G,OAASlmF,GACxE91B,KAAKq1B,iBAAiBrvB,IAAI,mBAAmBZ,UAAU0wB,GAAK91B,KAAKiyB,MAAQ6D,EAC3E,CAEAinF,uBAAuBC,GACrB,OAAOA,EAAK/vE,OAAO,GAAGvoB,cAAgBs4F,EAAK38F,MAAM,EACnD,CAEA48F,iBAAiBC,GACf,MAAMjyF,EAAO,IAAIrjB,KACjBqjB,SAAKsxF,QAAQ,GACbtxF,EAAKkyF,SAASD,EAAa,GAEbjyF,EAAKmyF,eAAep9G,KAAK6W,gBAAgBS,QAAS,CAACpI,MAAO,QAG1E,CAEAmuG,wBACE,IAAIh4G,EAAS,GACb,QAAS+F,EAAI,EAAGA,GAAK,GAAIA,IACvB/F,EAAOgO,KAAKrT,KAAKi9G,iBAAiB7xG,IAEpC,OAAO/F,CACT,CAEAi4G,8BACE,IAAIj4G,EAAmB,GACnB4lB,EAAO,IAAIrjB,KAEf,QAASwD,EAAI,EAAGA,EAAI,EAAEA,IAAK,CACzB6f,EAAOuxF,GAAOvxF,EAAM7f,GACpB,MAAM8D,EAAQ+b,EAAKmyF,eAAep9G,KAAK6W,gBAAgBS,QAAS,CAACwa,QAAS,SAC1EzsB,EAAOgO,KAAKnE,EAAM,GAAGwV,cACvB,CAEA,OAAOrf,CACT,CAEAk4G,qBAAqBC,EAAqBC,GAAqB,GAC7D,UAAW5rG,KAAQ2rG,EACb3rG,EAAK8B,OACP3T,KAAKq1B,iBAAiBrvB,IAAI6L,EAAK8B,OAAOvO,UAAU0wB,IAC9CjkB,EAAK8B,MAAQ8pG,EAAqBz9G,KAAK+8G,uBAAuBjnF,GAAKA,IAIzE,OAAO0nF,CACT,iDA7DWX,GAAsBl2G,MAAAC,MAAAD,MAAAE,OAAA,sCAAtBg2G,EAAsB11G,QAAtB01G,EAAsBz1G,UAAAuU,WAFrB,QAAM,SAEPkhG,CAAsB,KCX5B,IAAKa,GAAZ,SAAYA,GAERA,WAAAC,OAAA,YAEAD,IAAAE,KAAA,UAEAF,IAAAG,MAAA,WANQH,CAOZ,CAPA,CAAYA,IAAe,2HCMvB/2G,MAAA,qDAMQA,MAAA,cAAoDA,MAAA,mBAAAA,MAAAm3G,GAAA,MAAAvnG,EAAA5P,MAAA,UAAAA,MAAS4P,EAAAwnG,UAAS,GAClEp3G,MAAA,UAAMA,MAAA,OACVA,qCAJJA,MAAA,WAEIA,MAAA,EAAAq3G,GAAA,gBAGJr3G,+BAHaA,cAAA,OAAA4P,EAAA9D,QAAAC,iCAFb/L,MAAA,EAAAs3G,GAAA,kCAAsCt3G,MAAA,OAAA4P,EAAA2nG,YAAA3nG,EAAA4nG,gBAAAP,OCAvC,IAAMQ,GAAe,MAAtB,MAAOA,EAoCTt+G,cA1BgBE,KAAAq+G,SAAU,EAKVr+G,KAAAk+G,UAAYR,GAAgBC,OAK3B39G,KAAAs+G,aAAmC,IAAIpqG,MAGvClU,KAAAu+G,aAAsC,IAAIrqG,MAK1ClU,KAAAw+G,aAAmC,IAAItqG,MAIjDlU,KAAAy+G,UAAW,EAEXz+G,KAAAm+G,gBAAkBT,EAIzB,CAEAvpG,WACA,CAOOuqG,QAAQ12G,GAEXhI,KAAKs+G,aAAajqG,KAAK,KAC3B,CAEOsqG,WACHnpG,WAAW,IAAMxV,KAAK4+G,YAAYnpC,cAAcopC,QAAS,GAC7D,CAKOd,UAGH/9G,KAAKyS,SAAS6oD,SAAS,IACvBt7D,KAAKw+G,aAAanqG,KAAK,MACvBrU,KAAK4+G,YAAYnpC,cAAcopC,OACnC,CAEOC,UACH9+G,KAAKy+G,UAAW,EAChBz+G,KAAKu+G,aAAalqG,KAAKrU,KAAKy+G,SAChC,CAEOM,SACH/+G,KAAKy+G,UAAW,EAChBz+G,KAAKu+G,aAAalqG,KAAKrU,KAAKy+G,SAChC,iDA5ESL,EAAe,oCAAfA,EAAe9pG,UAAA,gBAAA2B,UAAA,SAAApB,EAAAC,MAAA,EAAAD,qGAAflO,MAAA,yBAAAkU,GAAA,OAAA/F,EAAA4pG,QAAA7jG,EAAe,gmBDX5BlU,MAAA,WAUIA,MAHA,EAAAq4G,GAAA,aAGAr4G,CAHmE,EAAAs4G,GAAA,yBAAAt4G,OAanEA,MAAA,yDACwBA,MAApB,mBAAAA,aAAAwP,GAAAxP,MAASmO,EAAAgqG,UAAS,EAAEn4G,CAAD,kBAAAA,aAAAwP,GAAAxP,MAASmO,EAAAiqG,SAAQ,GAC5Cp4G,mCArBIA,MAAA,UAAAA,MAAA,EAAAsQ,GAAAnC,EAAAopG,YAAAppG,EAAAqpG,gBAAAP,KAAA9oG,EAAAopG,YAAAppG,EAAAqpG,gBAAAN,MAAA/oG,EAAA2pG,WAMO93G,QAAsBA,MAAtB,QAAAmO,EAAArC,QAAAC,MAAsB/L,CAAA,WAAAu4G,GAa0Cv4G,MAAA,GAAAA,MAAA,cAAAA,MAAA,IAAAA,MAAA,uBAA9BA,MAAA,cAAAmO,EAAArC,ogECThC2rG,CAAe,KCNfe,GAAW,MAAlB,MAAOA,EAEX3f,UAAUh4F,EAA0B43G,EAAY,IAC9C,OAAO53G,EAAOA,EAAK6Y,MAAM,EAAG++F,IAAc53G,EAAK6D,QAAU+zG,EAAY,MAAQ,IAAM,EACrF,iDAJWD,EAAW,oDAAXA,EAAWhf,MAAA,YAAXgf,CAAW,KCKXE,GAAwB,MAA/B,MAAOA,EAcHC,gBAEN,GADAt/G,KAAKqgG,QAAU,GACXrgG,KAAKsD,SAAU,CACjBtD,KAAKsD,SAASgiC,GAAKtlC,KAAKu/G,oBAAoB/c,QAAQxiG,KAAKsD,SAASgiC,IAClE,MAAMk6E,EAAax/G,KAAKumG,iBAAiB/G,UAAUx/F,KAAKsD,UACxDtD,KAAKqgG,QAAUmf,EAAWn0G,OAAS,EAAIm0G,EAAa,EACtD,CACF,CAEArrG,WAGEnU,KAAKs/G,eAEP,CAEAhqG,YAAYC,GAEVvV,KAAKs/G,eACP,CAGAx/G,YACUy/G,GAAAv/G,KAAAu/G,sBA9BHv/G,KAAAqgG,QAAU,GAKTrgG,KAAAumG,iBAAmB,IAAInG,EA2B/B,iDAvCWif,GAAwB14G,MAAAC,IAAA,oCAAxBy4G,EAAwB/qG,UAAA,0BAAAC,OAAA,CAAAjR,SAAA,YAAA0sF,SAAA,CAAArpF,OAAA8N,MAAA,EAAAC,KAAA,EAAAC,OAAA,mBAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICVrClO,MAAA,WACIA,MAAA,sBACJA,eAFcA,MAAA,QAAAmO,EAAAurF,SACV15F,cAAA,IAAAA,MAAA,IAAAmO,EAAAurF,QAAA,2FDSSgf,CAAwB,qDEJI,IAEnCI,GAAkB,MAAxB,MAAMA,UAA2BC,KAC7Bp9G,KAAO,SACPq9G,iBAA6B,MAAQ,IAAIC,EAAiC,OAAO,SAAoCxhF,GAAqB,OAAQwhF,IAAoCA,EAAkCj5G,MAAyB84G,KAAsBrhF,GAAqBqhF,EAAqB,CAAG,EAAvR,GAC7BE,kBAA6Bh5G,MAAsB,CAAE0e,MAAOo6F,EAAoBt4G,QAASs4G,EAAmBr4G,UAAMuU,WAAY,SACjI,OAJK8jG,CAAkB,KAUlBxsG,GAAa,MAAnB,MAAMA,EACFhI,YAAW40G,OAAOxiD,OAClByiD,cAAaD,OAAOE,OACpB/kD,MAAK6kD,OAAOG,OACZC,YAAWJ,OAAOK,OAClBC,MAAKN,OAAOO,OACZ/jD,YAAWwjD,OAAOQ,OAClBlnG,UAAS0mG,OAAOS,OAChBC,sBAAqBV,OAAOJ,IAC5Be,aAAYX,OAAOH,MACnBe,cACAC,OACAC,GACA,gBAAIC,GACA,MAAO,CAAEC,MAAO7gH,KAAKmZ,QAAQ2nG,MAAMD,MACvC,CACA,SAAIt+G,GACA,OAAOvC,KAAKF,YAAYwC,KAAKmhB,QAAQ,KAAM,IAAItD,aACnD,CACA,kBAAI4gG,GACA,OAAO/gH,KAAKghH,eAChB,CACAC,gBAAeC,OAAK,MACpBC,iBAAiBC,GACb,GAAIA,EACA,OAAOA,EAAYphH,KAAKqhH,SAAeD,EAAS9+G,OAAYtC,KAAKqhH,SAAcD,EAAWphH,KAAKmhH,iBAAiBC,EAASE,gBAAmBF,EAASE,oBAAkBhgH,CAE/K,CACAigH,gBAAgB71G,EAASuS,EAAM,GAAIgyB,EAAS,CAAC,GACzC,SAAOuxE,OAAY91G,EAASuS,EAAKgyB,EACrC,CACA97B,WACQnU,KAAKiL,UACLjL,KAAKyhH,aAEb,CACA5U,kBACI7sG,KAAK0gH,OAAS1gH,KAAKg7D,IAAIya,cACnBz1E,KAAK0gH,QACL1gH,KAAK0gH,QAAQ3lD,aAAa/6D,KAAKihH,aAAc,GAErD,CACA3rG,YAAYC,GACR,GAAIvV,KAAKiL,YAAY,EAACy2G,OAAiB1hH,KAAK8/G,YAAa,CACrD,MAAQa,MAAOprG,EACXorG,GAAMA,EAAG3b,eACThlG,KAAK2hH,uBAAuBhB,EAAG3b,cAC/BhlG,KAAK4hH,qBAAqB,IAAM5hH,KAAK2hH,uBAAuBhB,EAAG3b,eAEvE,CACJ,CACAxqF,cACIxa,KAAK6hH,0BACT,CACAJ,cACI,MAAMK,EAAQA,KACLC,KAAKC,kBAAkB,UACxBhiH,KAAKwgH,UAAUyB,QAAQjiH,KAAK4gH,cAC5BmB,KAAKG,mBAAmB,SAE5BliH,KAAKmiH,kBAAiB,EAG1BL,IACA9hH,KAAK4hH,qBAAqB,IAAME,IACpC,CACAM,mBACSL,KAAKC,kBAAkB,SAAWhiH,KAAKuC,QACxCvC,KAAKugH,mBAAmB0B,QAAQjiH,KAAK4gH,cACrC5gH,KAAK+gH,gBAAkB/gH,KAAK+gH,gBAAgBkB,QAAQjiH,KAAK4gH,cACzDmB,KAAKG,mBAAmBliH,KAAK+gH,gBAAgBz+G,MAErD,CACA6/G,mBAEI,IAAKE,MAAML,kBAAkB,UAAW,CACpC,MAAQpjD,YAAW8B,WAAU4hD,SAAQv1E,SAAU/sC,KAAK+gH,gBAAgBwB,oBAAsB,CAAC,EAC3FviH,KAAKwgH,UAAU3yB,KAAKjvB,GAAW4jD,IAAK,CAAElgH,KAAM,yBAA0BtC,KAAK4gH,eAC3E5gH,KAAKwgH,UAAU3yB,KAAKntB,GAAU8hD,IAAK,CAAElgH,KAAM,wBAAyBtC,KAAK4gH,eACzE5gH,KAAKwgH,UAAU3yB,KAAKy0B,GAAQE,IAAK,CAAElgH,KAAM,sBAAuBtC,KAAK4gH,eACrE5gH,KAAKwgH,UAAUiC,UAAU,CAAEngH,KAAM,kBAAmBtC,KAAK4gH,cAAgB7zE,GACzEs1E,MAAMH,mBAAmB,SAC7B,CAEA,IAAKG,MAAML,kBAAkBhiH,KAAK+gH,gBAAgBz+G,OAAStC,KAAK+gH,gBAAgBz+G,KAAM,CAClF,MAAQkgH,MAAKz1E,SAAU/sC,KAAK+gH,gBAAgB2B,uBAAyB,CAAC,EACtE1iH,KAAK+gH,gBAAgBlzB,KAAK20B,EAAK,CAAElgH,KAAM,GAAGtC,KAAK+gH,gBAAgBz+G,oBAAqBtC,KAAK4gH,eACzF5gH,KAAK+gH,gBAAgB0B,UAAU,CAAEngH,KAAM,GAAGtC,KAAK+gH,gBAAgBz+G,gBAAiBtC,KAAK4gH,cAAgB7zE,GACrGs1E,MAAMH,mBAAmBliH,KAAK+gH,gBAAgBz+G,KAClD,CAEA,IAAK+/G,MAAML,kBAAkB,eAAgB,CACzC,MAAMW,EAAa3iH,KAAK+gH,gBAAgB6B,0BACxC5iH,KAAKwgH,UAAU3yB,KAAK80B,EAAY,CAAErgH,KAAM,cAAe0iE,OAAO,KAAShlE,KAAK4gH,eAC5EyB,MAAMH,mBAAmB,cAC7B,CACIliH,KAAK2gH,KACL3gH,KAAK2hH,uBAAuB3hH,KAAK2gH,IACjC3gH,KAAK4hH,qBAAqB,IAAM5hH,KAAK2hH,uBAAuB3hH,KAAK2gH,KAEzE,CACAgB,uBAAuBkB,GACnB,MAAQL,OAAQxiH,KAAK+gH,gBAAgB+B,iBAAiBD,EAAQ,IAAI7iH,KAAKihH,kBAAoB,CAAC,EACtF8B,EAAc/iH,KAAK+gH,gBAAgBlzB,KAAK20B,EAAK,CAC/ClgH,KAAM,GAAGtC,KAAKihH,gBAAgBjhH,KAAK+gH,gBAAgBz+G,UAChDtC,KAAK4gH,eAEZ5gH,KAAKygH,cAAgBsC,GAAa/nD,EACtC,CACA6mD,2BACI7hH,KAAKygH,eAAe3rD,QACxB,CACA8sD,qBAAqBn3E,EAAWA,QAC5Bs3E,KAAKiB,wBACLC,MAAan2C,GAAG,eAAgBriC,EACpC,CACAy4E,GAAGC,EAAKtjB,GACJ,MAAMxqF,EAAUrV,KAAK8rC,OAAS9rC,KAAK8rC,OAAOi1E,gBAAgB1rG,UAAU8tG,GAAOnjH,KAAK+gH,gBAAgB1rG,UAAU8tG,GAC1G,MAAuB,mBAAZ9tG,EACAA,EAAQ,CAAE+rG,SAAUphH,OAEL,iBAAZqV,EAAuBA,EAAU8tG,CACnD,CACAC,GAAGD,GACC,MAAM9zE,EAASrvC,KAAK+gH,gBAAgBsC,eAAeF,GACnD,MAAsB,mBAAX9zE,EACAA,EAAO,CAAE+xE,SAAUphH,OAER,iBAAXqvC,EACAA,EAGA,IAAKA,EAEpB,CAKA,UAAIvD,GACA,OAAO9rC,KAAKshH,cAChB,CACA3B,iBAAc,SAA+BvhF,GAAqB,OAAO,IAAKA,GAAqBnrB,EAAkB,EACrH0sG,iBAA4Bh5G,MAAqB,CAAE3D,KAAMiQ,EAAesB,OAAQ,CAAEosG,GAAI,MAAQ2C,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAAC84G,GAAoBC,OAAa/4G,SACtL,OAhJKsM,CAAa,KCTbswG,GAAU,MAAhB,MAAMA,EACF5D,cAAgB,IAChBA,gCAAkC,KAClCA,iCAAmC,KACnCA,eACA,eAAO33D,CAAShd,EAASukB,GACjBvkB,GAAWukB,IACPvkB,EAAQmjB,UACRnjB,EAAQmjB,UAAUvY,IAAI2Z,GAEtBvkB,EAAQukB,WAAa,IAAMA,EAEvC,CACA,yBAAOi0D,CAAmBx4E,EAASukB,GAC/B,GAAIvkB,GAAWukB,EACX,GAAIvkB,EAAQmjB,UAAW,CACnB,IAAI9e,EAASkgB,EAAUnc,OAAOjoC,MAAM,KACpC,QAASC,EAAI,EAAGA,EAAIikC,EAAOhkC,OAAQD,IAC/B4/B,EAAQmjB,UAAUvY,IAAIvG,EAAOjkC,GAErC,KACK,CACD,IAAIikC,EAASkgB,EAAUpkD,MAAM,KAC7B,QAASC,EAAI,EAAGA,EAAIikC,EAAOhkC,OAAQD,IAC/B4/B,EAAQukB,WAAa,IAAMlgB,EAAOjkC,EAE1C,CAER,CACA,kBAAOo+C,CAAYxe,EAASukB,GACpBvkB,GAAWukB,IACPvkB,EAAQmjB,UACRnjB,EAAQmjB,UAAU2G,OAAOvF,GAEzBvkB,EAAQukB,UAAYvkB,EAAQukB,UAAU9rC,QAAQ,IAAIssB,OAAO,UAAYwf,EAAUpkD,MAAM,KAAKkiB,KAAK,KAAO,UAAW,MAAO,KAEpI,CACA,4BAAOo2F,CAAsBz4E,EAAS04E,GAC9B14E,GAAW04E,GACX,CAACA,GACIC,OACA11G,OAAOsO,SACPhJ,QAASqwG,GAAWA,EAAOz4G,MAAM,KAAKoI,QAASg8C,GAAcvvD,KAAKwpD,YAAYxe,EAASukB,IAEpG,CACA,eAAOs0D,CAAS74E,EAASukB,GACrB,SAAIvkB,IAAWukB,KACPvkB,EAAQmjB,UACDnjB,EAAQmjB,UAAUC,SAASmB,GAE3B,IAAIxf,OAAO,QAAUwf,EAAY,QAAS,MAAM58C,KAAKq4B,EAAQukB,WAGhF,CACA,eAAOu0D,CAAS94E,GACZ,OAAOvtB,MAAMwvF,UAAUh/F,OAAOsmG,KAAKvpE,EAAQe,WAAWyjD,SAAU,SAAUc,GACtE,OAAOA,IAAUtlD,CACrB,EACJ,CACA,WAAOppC,CAAKopC,EAASuB,GACjB,OAAO9uB,MAAMR,KAAK+tB,EAAQyB,iBAAiBF,GAC/C,CACA,iBAAOw3E,CAAW/4E,EAASuB,GACvB,OAAOvsC,KAAKgkH,UAAUh5E,GAAWA,EAAQ2B,cAAcJ,GAAY,IACvE,CACA,YAAO5X,CAAMqW,GACT,IAAIwkD,EAAWxkD,EAAQe,WAAWk4E,WAC9B1kB,EAAM,EACV,QAASn0F,EAAI,EAAGA,EAAIokF,EAASnkF,OAAQD,IAAK,CACtC,GAAIokF,EAASpkF,IAAM4/B,EACf,OAAOu0D,EACiB,GAAxB/P,EAASpkF,GAAG2oD,UACZwrC,GACR,CACA,OAAO,CACX,CACA,uBAAO2kB,CAAiBl5E,EAASm5E,GAC7B,IAAI30B,EAAWxkD,EAAQe,WAAaf,EAAQe,WAAWk4E,WAAa,GAChE1kB,EAAM,EACV,QAASn0F,EAAI,EAAGA,EAAIokF,EAASnkF,OAAQD,IAAK,CACtC,GAAIokF,EAASpkF,IAAM4/B,EACf,OAAOu0D,EACP/P,EAASpkF,GAAGg5G,YAAc50B,EAASpkF,GAAGg5G,WAAWD,IAA0C,GAAxB30B,EAASpkF,GAAG2oD,UAC/EwrC,GACR,CACA,OAAO,CACX,CACA,oBAAO8kB,CAAc/kF,EAAS0f,EAAQslE,EAAW,QAC5B,SAAbA,GAAuBhlF,GAAW0f,GAClCh/C,KAAKo6D,YAAY96B,EAAS0f,EAElC,CACA,mBAAOulE,CAAajlF,EAAS0f,EAAQslE,EAAW,OAAQE,GAAoB,GACpEllF,GAAW0f,IACPwlE,IACAllF,EAAQyN,MAAM64B,SAAW,GAAG29C,EAAWkB,cAAczlE,QAExC,SAAbslE,EACAtkH,KAAK0kH,iBAAiBplF,EAAS0f,GAG/Bh/C,KAAK2kH,iBAAiBrlF,EAAS0f,GAG3C,CACA,uBAAO0lE,CAAiB15E,EAASgU,EAAQmqB,GAAS,GAC9C,MAAMy7C,EAA6B5pD,KAC/B,GAAKA,GAEL,MAA6D,aAAtDpoB,iBAAiBooB,IAAI6pD,iBAAiB,YAA6B7pD,GAAK4pD,EAA0B5pD,GAAG8pD,cAAa,EAEvHC,EAAoB/5E,EAAQg6E,aAAe,CAAEz2F,MAAOyc,EAAQi6E,YAAa32F,OAAQ0c,EAAQk6E,cAAiBllH,KAAKmlH,2BAA2Bn6E,GAC1Io6E,EAAepmE,EAAOkmE,aACtBG,EAAermE,EAAOsmE,wBACtBC,EAAkBvlH,KAAKwlH,qBACvBC,EAAmBzlH,KAAK0lH,sBACxBC,EAAW3lH,KAAK4lH,cAEhBC,GADkBjB,EAA0B55E,IACHs6E,yBAA2B,CACtEh5C,KAAK,EAAKi5C,EACV13C,MAAM,EAAK43C,GAEf,IAAIn5C,GAAKuB,GACLw3C,EAAa/4C,IAAM84C,EAAeL,EAAkBz2F,OAASq3F,EAASr3F,QACtEg+C,GAAM+4C,EAAa/4C,IAAMu5C,GAAsBv5C,IAAMy4C,EAAkBz2F,OACvE0c,EAAQ+B,MAAM+4E,gBAAkB,SAC5BT,EAAa/4C,IAAMA,GAAM,IACzBA,IAAM,EAAK+4C,EAAa/4C,OAI5BA,GAAM84C,EAAeC,EAAa/4C,IAAMu5C,GAAsBv5C,IAC9DthC,EAAQ+B,MAAM+4E,gBAAkB,OAEpC,MAAMC,GAAqBV,EAAax3C,KAAOk3C,EAAkBx2F,MAAQo3F,EAASp3F,MAI9Es/C,GAFAk3C,EAAkBx2F,MAAQo3F,EAASp3F,OAEuB,GAAlD82F,EAAax3C,KAAOg4C,GAAsBh4C,MAE7Ck4C,GAAqB,EALmBV,EAAax3C,KAAOg4C,GAAsBh4C,KAOrCk4C,GAI3CV,EAAax3C,KAAOg4C,GAAsBh4C,KAErD7iC,EAAQ+B,MAAMu/B,IAAMA,GAAM,KAC1BthC,EAAQ+B,MAAM8gC,KAAOA,GAAO,KAC5B1E,IAAWn+B,EAAQ+B,MAAMi5E,UAAuB,WAAXz2B,OAAsB,oCAAsC,+BACrG,CACA,uBAAOo1B,CAAiB35E,EAASgU,EAAQmqB,GAAS,GAC9C,MAAM47C,EAAoB/5E,EAAQg6E,aAAe,CAAEz2F,MAAOyc,EAAQi6E,YAAa32F,OAAQ0c,EAAQk6E,cAAiBllH,KAAKmlH,2BAA2Bn6E,GAC1Ii7E,EAAqBlB,EAAkBz2F,OACvC43F,EAAoBnB,EAAkBx2F,MACtC43F,EAAoBnnE,EAAOkmE,aAC3BkB,EAAmBpnE,EAAOimE,YAC1BI,EAAermE,EAAOsmE,wBACtBC,EAAkBvlH,KAAKwlH,qBACvBC,EAAmBzlH,KAAK0lH,sBACxBC,GAAW3lH,KAAK4lH,cACtB,IAAIt5C,GAAKuB,GACLw3C,EAAa/4C,IAAM65C,EAAoBF,EAAqBN,GAASr3F,QACrEg+C,GAAM+4C,EAAa/4C,IAAMi5C,EAAkBU,EAC3Cj7E,EAAQ+B,MAAM+4E,gBAAkB,SAC5Bx5C,GAAM,IACNA,GAAMi5C,KAIVj5C,GAAM65C,EAAoBd,EAAa/4C,IAAMi5C,EAC7Cv6E,EAAQ+B,MAAM+4E,gBAAkB,OAGhCj4C,GADAw3C,EAAax3C,KAAOq4C,EAAoBP,GAASp3F,MAC1C9B,KAAKsqB,IAAI,EAAGsuE,EAAax3C,KAAO43C,EAAmBW,EAAmBF,GAEtEb,EAAax3C,KAAO43C,EAC/Bz6E,EAAQ+B,MAAMu/B,IAAMA,GAAM,KAC1BthC,EAAQ+B,MAAM8gC,KAAOA,GAAO,KAC5B1E,IAAWn+B,EAAQ+B,MAAMi5E,UAAuB,WAAXz2B,OAAsB,oCAAsC,+BACrG,CACA,iBAAO82B,CAAWr7E,EAASs7E,EAAU,IACjC,OAAiC,OAA1Bt7E,EAAQe,WAAyBu6E,EAAUtmH,KAAKqmH,WAAWr7E,EAAQe,WAAYu6E,EAAQj6F,OAAO,CAAC2e,EAAQe,aAClH,CACA,2BAAOw6E,CAAqBv7E,GACxB,IAAIw7E,EAAoB,GACxB,GAAIx7E,EAAS,CACT,IAAIs7E,EAAUtmH,KAAKqmH,WAAWr7E,GAC9B,MAAMy7E,EAAgB,gBAChBC,EAAiB31E,IACnB,IAAI41E,EAAmBp8F,OAAOqoB,iBAAoB7B,EAAM,MACxD,OAAO01E,EAAc9zG,KAAKg0G,EAAiB9B,iBAAiB,cAAgB4B,EAAc9zG,KAAKg0G,EAAiB9B,iBAAiB,eAAiB4B,EAAc9zG,KAAKg0G,EAAiB9B,iBAAiB,aAAY,EAEvN,QAAS/4E,KAAUw6E,EAAS,CACxB,IAAIM,EAAsC,IAApB96E,EAAOioB,UAAkBjoB,EAAO+6E,QAAQC,gBAC9D,GAAIF,EAAiB,CACjB,IAAItyG,EAAYsyG,EAAgBz7G,MAAM,KACtC,QAASohC,KAAYj4B,EAAW,CAC5B,IAAI0mD,EAAKh7D,KAAK+jH,WAAWj4E,EAAQS,GAC7ByuB,GAAM0rD,EAAc1rD,IACpBwrD,EAAkBnzG,KAAK2nD,EAE/B,CACJ,CACwB,IAApBlvB,EAAOioB,UAAkB2yD,EAAc56E,IACvC06E,EAAkBnzG,KAAKy4B,EAE/B,CACJ,CACA,OAAO06E,CACX,CACA,kCAAOO,CAA4B/7E,GAC/BA,EAAQ+B,MAAMi6E,WAAa,SAC3Bh8E,EAAQ+B,MAAMmnB,QAAU,QACxB,IAAI+yD,EAAgBj8E,EAAQk6E,aAC5Bl6E,SAAQ+B,MAAMmnB,QAAU,OACxBlpB,EAAQ+B,MAAMi6E,WAAa,UACpBC,CACX,CACA,iCAAOC,CAA2Bl8E,GAC9BA,EAAQ+B,MAAMi6E,WAAa,SAC3Bh8E,EAAQ+B,MAAMmnB,QAAU,QACxB,IAAIizD,EAAen8E,EAAQi6E,YAC3Bj6E,SAAQ+B,MAAMmnB,QAAU,OACxBlpB,EAAQ+B,MAAMi6E,WAAa,UACpBG,CACX,CACA,iCAAOhC,CAA2Bn6E,GAC9B,IAAIo8E,EAAa,CAAC,EAClBp8E,SAAQ+B,MAAMi6E,WAAa,SAC3Bh8E,EAAQ+B,MAAMmnB,QAAU,QACxBkzD,EAAW74F,MAAQyc,EAAQi6E,YAC3BmC,EAAW94F,OAAS0c,EAAQk6E,aAC5Bl6E,EAAQ+B,MAAMmnB,QAAU,OACxBlpB,EAAQ+B,MAAMi6E,WAAa,UACpBI,CACX,CACA,mBAAOC,CAAajR,EAAWvkG,GAC3B,IAAIy1G,EAAiB10E,iBAAiBwjE,GAAWyO,iBAAiB,kBAC9D0C,EAAYD,EAAiB/jG,WAAW+jG,GAAkB,EAC1DE,EAAkB50E,iBAAiBwjE,GAAWyO,iBAAiB,cAC/Dt4C,EAAai7C,EAAkBjkG,WAAWikG,GAAmB,EAC7DC,EAAgBrR,EAAUkP,wBAE1Bh5F,EADWza,EAAKyzG,wBACEh5C,IAAMrhE,SAASvB,KAAKg+G,WAAaD,EAAcn7C,IAAMrhE,SAASvB,KAAKg+G,WAAaH,EAAYh7C,EAC9Go7C,EAASvR,EAAUsR,UACnBT,EAAgB7Q,EAAUwR,aAC1BjqB,GAAa39F,KAAK6nH,eAAeh2G,GACjCya,EAAS,EACT8pF,EAAUsR,UAAYC,EAASr7F,EAE1BA,EAASqxE,GAAaspB,IAC3B7Q,EAAUsR,UAAYC,EAASr7F,EAAS26F,EAAgBtpB,GAEhE,CACA,aAAOmqB,CAAO98E,EAAShyB,GACnBgyB,EAAQ+B,MAAMg7E,QAAU,EACxB,IAAI7iD,GAAQ,IAAIt9D,KACZmgH,EAAU,EACVC,EAAO,WACPD,GAAW/8E,EAAQ+B,MAAMg7E,QAAQtkG,QAAQ,IAAK,OAAG,IAAS7b,MAAO6jB,UAAYy5C,GAAQlsD,EACrFgyB,EAAQ+B,MAAMg7E,QAAUA,EACxB7iD,GAAQ,IAAIt9D,MACPmgH,EAAU,IACVx9F,OAAO09F,uBAAyBA,sBAAsBD,IAAUxyG,WAAWwyG,EAAM,IAE1F,EACAA,GACJ,CACA,cAAOE,CAAQl9E,EAASm9E,GACpB,IAAIJ,EAAU,EAAiCvmD,EAAnB,GAAe2mD,EAC3C,IAAIC,EAAS/kF,YAAY,MACrB0kF,GAAoBvmD,IACL,IACXumD,EAAU,EACV/kF,cAAcolF,IAElBp9E,EAAQ+B,MAAMg7E,QAAUA,GAPA,GAShC,CACA,yBAAOvC,GACH,IAAItwD,EAAMjqD,SAAS2gC,gBACnB,OAAQrhB,OAAO89F,aAAenzD,EAAIwyD,YAAcxyD,EAAIozD,WAAa,EACrE,CACA,0BAAO5C,GACH,IAAIxwD,EAAMjqD,SAAS2gC,gBACnB,OAAQrhB,OAAOg+F,aAAerzD,EAAIszD,aAAetzD,EAAIuzD,YAAc,EACvE,CACA,cAAOp6E,CAAQrD,EAASuB,GACpB,IAAI1qC,EAAIypG,QAAQ2B,UAQhB,OAPQprG,EAAEwsC,SACNxsC,EAAE6mH,uBACF7mH,EAAE8mH,oBACF9mH,EAAE+mH,mBACF,SAAUjyE,GACN,OAA+D,IAAxD,GAAGryC,QAAQiwG,KAAKtpG,SAASwhC,iBAAiBkK,GAAI32C,KACzD,GACKu0G,KAAKvpE,EAASuB,EAC3B,CACA,oBAAOk4E,CAAczpD,EAAImM,GACrB,IAAI54C,EAAQysC,EAAGiqD,YACf,GAAI99C,EAAQ,CACR,IAAIp6B,EAAQ6F,iBAAiBooB,GAC7BzsC,GAAShL,WAAWwpB,EAAM87E,YAActlG,WAAWwpB,EAAM+7E,YAC7D,CACA,OAAOv6F,CACX,CACA,2BAAOw6F,CAAqB/tD,GACxB,IAAIjuB,EAAQ6F,iBAAiBooB,GAC7B,OAAOz3C,WAAWwpB,EAAMi8E,aAAezlG,WAAWwpB,EAAMk8E,aAC5D,CACA,0BAAOC,CAAoBluD,GACvB,IAAIjuB,EAAQ6F,iBAAiBooB,GAC7B,OAAOz3C,WAAWwpB,EAAM87E,YAActlG,WAAWwpB,EAAM+7E,YAC3D,CACA,iBAAOlf,CAAW5uC,GACd,IAAIzsC,EAAQysC,EAAGiqD,YACXl4E,EAAQ6F,iBAAiBooB,GAC7BzsC,UAAShL,WAAWwpB,EAAMi8E,aAAezlG,WAAWwpB,EAAMk8E,cACnD16F,CACX,CACA,YAAOA,CAAMysC,GACT,IAAIzsC,EAAQysC,EAAGiqD,YACXl4E,EAAQ6F,iBAAiBooB,GAC7BzsC,UAAShL,WAAWwpB,EAAMi8E,aAAezlG,WAAWwpB,EAAMk8E,cACnD16F,CACX,CACA,qBAAO46F,CAAenuD,GAClB,IAAI1sC,EAAS0sC,EAAGkqD,aACZn4E,EAAQ6F,iBAAiBooB,GAC7B1sC,UAAU/K,WAAWwpB,EAAMw/B,YAAchpD,WAAWwpB,EAAMy/B,eACnDl+C,CACX,CACA,qBAAOu5F,CAAe7sD,EAAImM,GACtB,IAAI74C,EAAS0sC,EAAGkqD,aAChB,GAAI/9C,EAAQ,CACR,IAAIp6B,EAAQ6F,iBAAiBooB,GAC7B1sC,GAAU/K,WAAWwpB,EAAMi5E,WAAaziG,WAAWwpB,EAAMq8E,aAC7D,CACA,OAAO96F,CACX,CACA,gBAAO+6F,CAAUruD,GACb,IAAI1sC,EAAS0sC,EAAGkqD,aACZn4E,EAAQ6F,iBAAiBooB,GAC7B1sC,UAAU/K,WAAWwpB,EAAMw/B,YAAchpD,WAAWwpB,EAAMy/B,eAAiBjpD,WAAWwpB,EAAMu8E,gBAAkB/lG,WAAWwpB,EAAMw8E,mBACxHj7F,CACX,CACA,eAAOk7F,CAASxuD,GACZ,IAAIzsC,EAAQysC,EAAGiqD,YACXl4E,EAAQ6F,iBAAiBooB,GAC7BzsC,UAAShL,WAAWwpB,EAAMi8E,aAAezlG,WAAWwpB,EAAMk8E,cAAgB1lG,WAAWwpB,EAAM08E,iBAAmBlmG,WAAWwpB,EAAM28E,kBACxHn7F,CACX,CACA,kBAAOq3F,GACH,IAAI+D,EAAMp/F,OAAQuM,EAAI7rB,SAAUqP,EAAIwc,EAAE8U,gBAAiBg+E,EAAI9yF,EAAEg/D,qBAAqB,QAAQ,GAC1F,MAAO,CAAEvnE,MADyFo7F,EAAI/f,YAActvF,EAAEuvG,aAAeD,EAAEC,YACpHv7F,OADqIq7F,EAAIjgB,aAAepvF,EAAEstG,cAAgBgC,EAAEhC,aAEnM,CACA,gBAAOkC,CAAU9uD,GACb,IAAI+uD,EAAO/uD,EAAGsqD,wBACd,MAAO,CACHh5C,IAAKy9C,EAAKz9C,KAAO/hD,OAAO89F,aAAep9G,SAAS2gC,gBAAgB87E,WAAaz8G,SAASvB,KAAKg+G,WAAa,GACxG75C,KAAMk8C,EAAKl8C,MAAQtjD,OAAOg+F,aAAet9G,SAAS2gC,gBAAgB48E,YAAcv9G,SAASvB,KAAK8+G,YAAc,GAEpH,CACA,yBAAOwB,CAAmBh/E,EAASi/E,GAC/B,IAAIl+E,EAAaf,EAAQe,WACzB,IAAKA,EACD,KAAM,wBACV,OAAOA,EAAWm+E,aAAaD,EAAoBj/E,EACvD,CACA,mBAAOm/E,GACH,GAAIv0G,WAAa5V,KAAKoqH,WAClB,OAAOx0G,UAAUy0G,SAEzB,CACA,WAAOC,GACH,IAAIC,EAAKhgG,OAAO3U,UAAUy0G,UAE1B,OADWE,EAAGjmH,QAAQ,SACX,IAIGimH,EAAGjmH,QAAQ,YACX,GAEDimH,EAAGjmH,QAAQ,QACb,GAEAimH,EAAGjmH,QAAQ,SACX,EAMf,CACA,YAAOkmH,GACH,MAAO,mBAAmB73G,KAAKiD,UAAUy0G,aAAe9/F,OAAOkgG,QACnE,CACA,gBAAOC,GACH,MAAO,aAAa/3G,KAAKiD,UAAUy0G,UACvC,CACA,oBAAOM,GACH,MAAO,iBAAkBpgG,QAAU3U,UAAUg1G,eAAiB,CAClE,CACA,kBAAOxwD,CAAYpvB,EAASgU,GACxB,GAAIh/C,KAAKgkH,UAAUhlE,GACfA,EAAOob,YAAYpvB,OAAO,MACrBgU,GAAUA,EAAOgc,IAAMhc,EAAOgc,GAAGya,eAGtC,KAAM,iBAAmBz2B,EAAS,OAAShU,EAF3CgU,EAAOgc,GAAGya,cAAcrb,YAAYpvB,EAEOA,CACnD,CACA,kBAAOwvB,CAAYxvB,EAASgU,GACxB,GAAIh/C,KAAKgkH,UAAUhlE,GACfA,EAAOwb,YAAYxvB,OAAO,KACrBgU,EAAOgc,KAAMhc,EAAOgc,GAAGya,cAG5B,KAAM,iBAAmBzqC,EAAU,SAAWgU,EAF9CA,EAAOgc,GAAGya,cAAcjb,YAAYxvB,EAEUgU,CACtD,CACA,oBAAO6rE,CAAc7/E,GACX,WAAYsgE,QAAQ2B,UAGtBjiE,EAAQ8pB,SAFR9pB,EAAQe,WAAWyuB,YAAYxvB,EAGvC,CACA,gBAAOg5E,CAAU9jH,GACb,MAA8B,iBAAhB4qH,YAA2B5qH,aAAe4qH,YAAc5qH,GAAsB,iBAARA,GAA4B,OAARA,GAAiC,IAAjBA,EAAI6zD,UAA0C,iBAAjB7zD,EAAI6qH,QAC7J,CACA,8BAAOC,CAAwBhwD,GAC3B,GAAIA,EAAI,CACJ,IAAIjuB,EAAQ6F,iBAAiBooB,GAC7B,OAAOA,EAAGiqD,YAAcjqD,EAAG6uD,YAActmG,WAAWwpB,EAAM08E,iBAAmBlmG,WAAWwpB,EAAM28E,iBAClG,CACK,CACD,GAAsC,OAAlC1pH,KAAKirH,yBACL,OAAOjrH,KAAKirH,yBAChB,IAAIC,EAAYjgH,SAAS+uD,cAAc,OACvCkxD,EAAU37D,UAAY,sBACtBtkD,SAASvB,KAAK0wD,YAAY8wD,GAC1B,IAAIC,EAAiBD,EAAUjG,YAAciG,EAAUrB,YACvD5+G,gBAASvB,KAAK8wD,YAAY0wD,GAC1BlrH,KAAKirH,yBAA2BE,EACzBA,CACX,CACJ,CACA,+BAAOC,GACH,GAAuC,OAAnCprH,KAAKqrH,0BACL,OAAOrrH,KAAKqrH,0BAChB,IAAIH,EAAYjgH,SAAS+uD,cAAc,OACvCkxD,EAAU37D,UAAY,sBACtBtkD,SAASvB,KAAK0wD,YAAY8wD,GAC1B,IAAII,EAAkBJ,EAAUhG,aAAegG,EAAUtD,aACzD38G,gBAASvB,KAAK8wD,YAAY0wD,GAC1BlrH,KAAKirH,yBAA2BK,EACzBA,CACX,CACA,0BAAOC,CAAoBvgF,EAASwgF,EAAYjoF,GAC5CyH,EAAQwgF,GAAYC,MAAMzgF,EAASzH,EACvC,CACA,qBAAOmoF,GACH,GAAInhG,OAAOohG,aACHphG,OAAOohG,eAAeC,MACtBrhG,OAAOohG,eAAeC,QAEjBrhG,OAAOohG,eAAeE,iBAAmBthG,OAAOohG,eAAeG,WAAa,GAAKvhG,OAAOohG,eAAeI,WAAW,GAAGC,iBAAiB3gH,OAAS,GACpJkf,OAAOohG,eAAeE,uBAAgB,GAGrC5gH,SAASghH,WAAgBhhH,SAASghH,UAAaL,MACpD,IACI3gH,SAASghH,UAAaL,OAC1B,OAEI,CAGZ,CACA,iBAAOM,GACH,IAAKlsH,KAAK4gB,QAAS,CACf,IAAIk0F,EAAU90G,KAAKmsH,mBACnBnsH,KAAK4gB,QAAU,CAAC,EACZk0F,EAAQl0F,UACR5gB,KAAK4gB,QAAQk0F,EAAQl0F,UAAW,EAChC5gB,KAAK4gB,QAAQhC,QAAak2F,EAAQl2F,SAElC5e,KAAK4gB,QAAQwrG,OACbpsH,KAAK4gB,QAAQyrG,QAAY,EAEpBrsH,KAAK4gB,QAAQyrG,SAClBrsH,KAAK4gB,QAAQ0rG,QAAY,EAEjC,CACA,OAAOtsH,KAAK4gB,OAChB,CACA,uBAAOurG,GACH,IAAI5B,EAAK30G,UAAUy0G,UAAUlqG,cACzBkQ,EAAQ,wBAAwB6f,KAAKq6E,IAAO,wBAAwBr6E,KAAKq6E,IAAO,qCAAqCr6E,KAAKq6E,IAAO,kBAAkBr6E,KAAKq6E,IAAQA,EAAGjmH,QAAQ,cAAgB,GAAK,gCAAgC4rC,KAAKq6E,IAAQ,GACjP,MAAO,CACH3pG,QAASyP,EAAM,IAAM,GACrBzR,QAASyR,EAAM,IAAM,IAE7B,CACA,gBAAOk8F,CAAU75G,GACb,OAAI8M,OAAO+sG,UACA/sG,OAAO+sG,UAAU75G,GAGA,iBAAVA,GAAsB85G,SAAS95G,IAAU+Z,KAAKG,MAAMla,KAAWA,CAErF,CACA,eAAO+5G,CAASzhF,GACZ,OAAQA,GAAoC,OAAzBA,EAAQg6E,YAC/B,CACA,gBAAOp9B,CAAU58C,GACb,OAAOA,GAAmC,MAAxBA,EAAQg6E,YAC9B,CACA,cAAO0H,CAAQ1hF,GACX,OAAmB,OAAZA,UAA2BA,EAAY,KAAeA,EAAQ+/E,UAAY//E,EAAQe,UAC7F,CACA,YAAO8yE,CAAM7zE,EAASt/B,GAClBs/B,GAAW//B,SAAS0hH,gBAAkB3hF,GAAWA,EAAQ6zE,MAAMnzG,EACnE,CACA,iCAAOkhH,CAA2BrgF,EAAW,IACzC,MAAO,2FAA2FA,kIACmBA,sGAC5BA,uGACCA,yGACEA,2GACEA,kHACOA,6GACLA,0GACHA,GACjG,CACA,2BAAOsgF,CAAqB7hF,EAASuB,EAAW,IAC5C,IAAIugF,EAAoB9sH,KAAK4B,KAAKopC,EAAShrC,KAAK4sH,2BAA2BrgF,IACvEwgF,EAA2B,GAC/B,QAASC,KAAoBF,EAAmB,CAC5C,MAAMG,EAAgBr6E,iBAAiBo6E,GACnChtH,KAAK4nF,UAAUolC,IAA8C,QAAzBC,EAAc/4D,SAAiD,UAA5B+4D,EAAcjG,YACrF+F,EAAyB15G,KAAK25G,EACtC,CACA,OAAOD,CACX,CACA,0BAAOG,CAAoBliF,EAASuB,EAAW,IAC3C,IAAIygF,EAAmBhtH,KAAK+jH,WAAW/4E,EAAShrC,KAAK4sH,2BAA2BrgF,IAChF,GAAIygF,EAAkB,CAClB,MAAMC,EAAgBr6E,iBAAiBo6E,GACvC,GAAIhtH,KAAK4nF,UAAUolC,IAA8C,QAAzBC,EAAc/4D,SAAiD,UAA5B+4D,EAAcjG,WACrF,OAAOgG,CACf,CACA,OAAO,IACX,CACA,+BAAOG,CAAyBniF,EAASuB,EAAW,IAChD,MAAMugF,EAAoB9sH,KAAK6sH,qBAAqB7hF,EAASuB,GAC7D,OAAOugF,EAAkBzhH,OAAS,EAAIyhH,EAAkB,GAAK,IACjE,CACA,8BAAOM,CAAwBpiF,EAASuB,GACpC,MAAMugF,EAAoB9sH,KAAK6sH,qBAAqB7hF,EAASuB,GAC7D,OAAOugF,EAAkBzhH,OAAS,EAAIyhH,EAAkBA,EAAkBzhH,OAAS,GAAK,IAC5F,CACA,8BAAOgiH,CAAwBriF,EAASsiF,GAAU,GAC9C,MAAMR,EAAoBvJ,EAAWsJ,qBAAqB7hF,GAC1D,IAAIrW,EAAQ,EACZ,GAAIm4F,GAAqBA,EAAkBzhH,OAAS,EAAG,CACnD,MAAMkiH,EAAeT,EAAkBxoH,QAAQwoH,EAAkB,GAAGU,cAAcb,eAC9EW,EAEI34F,GADgB,GAAhB44F,GAAuC,IAAjBA,EACdT,EAAkBzhH,OAAS,EAG3BkiH,EAAe,GAGN,GAAhBA,GAAsBA,IAAiBT,EAAkBzhH,OAAS,IACvEspB,EAAQ44F,EAAe,EAE/B,CACA,OAAOT,EAAkBn4F,EAC7B,CACA,qBAAO84F,GACH,OAAAztH,KAAK0tH,OAAS1tH,KAAK0tH,QAAU,MACpB1tH,KAAK0tH,MAClB,CACA,mBAAO/B,GACH,OAAIphG,OAAOohG,aACAphG,OAAOohG,eAAe74G,WACxB7H,SAAS0gH,aACP1gH,SAAS0gH,eAAe74G,WAC1B7H,SAASghH,UACPhhH,SAASghH,UAAa0B,cAAcnmH,KACxC,IACX,CACA,uBAAOomH,CAAiB5uE,EAAQgc,GAC5B,IAAKhc,EACD,OAAO,KACX,OAAQA,GACJ,IAAK,WACD,OAAO/zC,SACX,IAAK,SACD,OAAOsf,OACX,IAAK,QACD,OAAOywC,GAAI6yD,mBACf,IAAK,QACD,OAAO7yD,GAAI8yD,uBACf,IAAK,UACD,OAAO9yD,GAAI8pD,cACf,IAAK,eACD,OAAO9pD,GAAI8pD,cAAcA,cAC7B,QACI,MAAM9hH,SAAcg8C,EACpB,GAAa,WAATh8C,EACA,OAAOiI,SAAS0hC,cAAcqS,GAE7B,GAAa,WAATh8C,GAAqBg8C,EAAOrQ,eAAe,iBAChD,OAAO3uC,KAAK0sH,QAAQ1tE,EAAOy2B,eAAiBz2B,EAAOy2B,mBAAgBn0E,EAGvE,MAAM0pC,GADc9qC,EACO8+C,IADW9+C,EAAIJ,aAAeI,EAAIq0G,MAAQr0G,EAAIurH,MACpCzsE,IAAWA,EAChD,OAAQhU,GAAgC,IAArBA,EAAQ+oB,UAAmB/zD,KAAK0sH,QAAQ1hF,GAAWA,EAAU,KAD1EA,IADc9qC,CAIhC,CACA,eAAOkqH,GACH,gBAAiB7/F,OAAW,KAAeA,OAAOtf,UAAYsf,OAAOtf,SAAS+uD,cAClF,CACA,mBAAOm8B,CAAanrD,EAAS1oC,GACzB,GAAI0oC,EAAS,CACT,MAAMt4B,EAAQs4B,EAAQmrD,aAAa7zF,GACnC,OAAKkpB,MAAM9Y,GAGG,SAAVA,GAA8B,UAAVA,EACH,SAAVA,EAEJA,GALKA,CAMhB,CAEJ,CACA,kCAAOq7G,GACH,OAAOxjG,OAAOq/E,WAAa3+F,SAAS2gC,gBAAgBq5E,WACxD,CACA,sBAAO+I,CAAgBz+D,EAAY,qBAC/BtkD,SAASvB,KAAKqjC,MAAMsuB,YAAY,oBAAqBr7D,KAAK+tH,8BAAgC,MAC1F/tH,KAAKgoD,SAAS/8C,SAASvB,KAAM6lD,EACjC,CACA,wBAAO0+D,CAAkB1+D,EAAY,qBACjCtkD,SAASvB,KAAKqjC,MAAMmhF,eAAe,qBACnCluH,KAAKwpD,YAAYv+C,SAASvB,KAAM6lD,EACpC,CACA,oBAAOyK,CAAch3D,EAAMohH,EAAa,CAAC,KAAM50B,GAC3C,GAAIxsF,EAAM,CACN,MAAMgoC,EAAU//B,SAAS+uD,cAAch3D,GACvC,OAAAhD,KAAKu9B,cAAcyN,EAASo5E,GAC5Bp5E,EAAQyP,UAAU+0C,GACXxkD,CACX,CAEJ,CACA,mBAAO+vB,CAAa/vB,EAASmjF,EAAY,GAAIz7G,GACrC1S,KAAKgkH,UAAUh5E,IAAfhrC,MAA2B0S,GAC3Bs4B,EAAQ+vB,aAAaozD,EAAWz7G,EAExC,CACA,oBAAO6qB,CAAcyN,EAASo5E,EAAa,CAAC,GACxC,GAAIpkH,KAAKgkH,UAAUh5E,GAAU,CACzB,MAAMojF,EAAiBA,CAACvjD,EAAMn4D,KAC1B,MAAM28B,EAASrE,GAASqjF,SAASxjD,GAAQ,CAAC7/B,GAASqjF,SAASxjD,IAAS,GACrE,MAAO,CAACn4D,GAAOixG,OAAOn2B,OAAO,CAAC8gC,EAAInsH,KAC9B,GAAU,MAANA,EAA+B,CAC/B,MAAMa,SAAcb,EACpB,GAAa,WAATa,GAA8B,WAATA,EACrBsrH,EAAGj7G,KAAKlR,QAAC,GAEK,WAATa,EAAmB,CACxB,MAAMurH,EAAM9wG,MAAMC,QAAQvb,GACpBisH,EAAevjD,EAAM1oE,GACrBZ,OAAO2c,QAAQ/b,GAAG6J,IAAI,EAAEwiH,EAAIC,MAAkB,UAAT5jD,IAAuB4jD,IAAa,IAAPA,GAAgFA,GAAKD,OAAKltH,EAA9E,GAAGktH,EAAG/qG,QAAQ,kBAAmB,SAAStD,iBAAiBsuG,MAC/IH,EAAKC,EAAIljH,OAASijH,EAAGjiG,OAAOkiG,EAAItgH,OAAQytB,KAAQA,IAAM4yF,CAC1D,CACJ,CACA,OAAOA,GACRj/E,EAAM,EAEb9tC,OAAO2c,QAAQkmG,GAAY7wG,QAAQ,EAAE0K,EAAKvL,MACtC,GAAqC,MAAVA,EAAgB,CACvC,MAAMg8G,EAAezwG,EAAIoS,MAAM,WAC3Bq+F,EACA1jF,EAAQitB,iBAAiBy2D,EAAa,GAAGvuG,cAAezN,GAE3C,UAARuL,EACLje,KAAKu9B,cAAcyN,EAASt4B,IAG5BA,EAAgB,UAARuL,EAAkB,IAAI,IAAI60B,IAAIs7E,EAAe,QAAS17G,KAAS2a,KAAK,KAAK+lB,OAAiB,UAARn1B,EAAkBmwG,EAAe,QAAS17G,GAAO2a,KAAK,KAAK+lB,OAAS1gC,GAC7Js4B,EAAQqjF,OAASrjF,EAAQqjF,QAAU,CAAC,KAAOrjF,EAAQqjF,OAAOpwG,GAAOvL,GAClEs4B,EAAQ+vB,aAAa98C,EAAKvL,GAElC,GAER,CACJ,CACA,yBAAOi8G,CAAmB3jF,EAASuB,EAAW,IAC1C,QAAOvsC,KAAKgkH,UAAUh5E,IAChBA,EAAQqD,QAAQ,2FAA2F9B,0IACYA,8GAC5BA,+GACCA,iHACEA,mHACEA,0HACOA,IAEjH,EACH,OA1sBKg3E,CAAU,KA4sBhB,MAAMqL,GACF5jF,QACA4f,SACA47D,kBACA1mH,YAAYkrC,EAAS4f,EAAWA,QAC5B5qD,KAAKgrC,QAAUA,EACfhrC,KAAK4qD,SAAWA,CACpB,CACAikE,qBACI7uH,KAAKwmH,kBAAoBjD,GAAWgD,qBAAqBvmH,KAAKgrC,SAC9D,QAAS5/B,EAAI,EAAGA,EAAIpL,KAAKwmH,kBAAkBn7G,OAAQD,IAC/CpL,KAAKwmH,kBAAkBp7G,GAAG6sD,iBAAiB,SAAUj4D,KAAK4qD,SAElE,CACAkkE,uBACI,GAAI9uH,KAAKwmH,kBACL,QAASp7G,EAAI,EAAGA,EAAIpL,KAAKwmH,kBAAkBn7G,OAAQD,IAC/CpL,KAAKwmH,kBAAkBp7G,GAAG8sD,oBAAoB,SAAUl4D,KAAK4qD,SAGzE,CACAhF,UACI5lD,KAAK8uH,uBACL9uH,KAAKgrC,QAAU,KACfhrC,KAAK4qD,SAAW,KAChB5qD,KAAKwmH,kBAAoB,IAC7B,ECzuBJ,IAIMuI,GAAS,MAAf,MAAMA,UAAkB97G,GAMpB+7G,WAAY,EAKZC,YAAa,EACbC,SAAU,EACVpP,cAAaD,OAAOE,OACpB90G,YAAW40G,OAAOxiD,OAClBrxB,QAAO6zE,OAAOG,OACdmP,yBAE2B,IAAnBnvH,KAAKgvH,UACLhvH,KAAKgsC,KAAKypC,cAAcxa,gBAAgB,aAGxCj7D,KAAKgsC,KAAKypC,cAAc1a,aAAa,aAAa,GAEjD/6D,KAAKkvH,SACNlvH,KAAKwuB,WAEb,CACA4gG,qBACSpvH,KAAKkvH,SACNlvH,KAAKwuB,WAEb,CACAA,aACI,EAAI6gG,OAAkBrvH,KAAK8/G,aAAe9/G,KAAKivH,YAC3Cz5G,WAAW,KACP,MAAMs3G,EAAoBvJ,GAAWsJ,qBAAqB7sH,KAAKgsC,MAAMypC,eACpC,IAA7Bq3C,EAAkBzhH,QAClBrL,KAAKgsC,KAAKypC,cAAcopC,QAExBiO,EAAkBzhH,OAAS,GAC3ByhH,EAAkB,GAAGjO,QAEzB7+G,KAAKkvH,SAAU,GAG3B,CACAvP,iBAA6B,MAAQ,IAAI2P,EAAwB,OAAO,SAA2BlxF,GAAqB,OAAQkxF,IAA2BA,EAAyB3oH,MAAyBooH,KAAa3wF,GAAqB2wF,EAAY,CAAG,EAAjO,GAC7BpP,iBAA4Bh5G,MAAqB,CAAE3D,KAAM+rH,EAAWz6G,UAAW,CAAC,CAAC,GAAI,aAAc,KAAMC,OAAQ,CAAEy6G,UAAW,CAAC,EAAG,YAAa,YAAaO,OAAmBN,WAAY,CAAC,EAAG,aAAc,eAAiB3L,YAAY,EAAMtzB,SAAU,CAACrpF,MAA6BA,SAC3R,OAjDKooH,CAAS,KA+DTS,GAAe,MAArB,MAAMA,EACF7P,iBAAc,SAAiCvhF,GAAqB,OAAO,IAAKA,GAAqBoxF,EAAoB,EACzH7P,iBAA4Bh5G,KAAoB,CAAE3D,KAAMwsH,IACxD7P,iBAA4Bh5G,MAAoB,CAAC,GACpD,OAJK6oH,CAAe,KCjErB,MAAMC,GAAQA,EAAG9O,QAAS,+DAGLA,EAAG,uEAETA,EAAG,sCACAA,EAAG,4CACRA,EAAG,2CACCA,EAAG,yCACDA,EAAG,yCACLA,EAAG,oCACNA,EAAG,sCACEA,EAAG,qDAITA,EAAG,sCACCA,EAAG,mCACNA,EAAG,8KAWCA,EAAG,8CACRA,EAAG,uEAIEA,EAAG,4CACRA,EAAG,kEAIEA,EAAG,yCACRA,EAAG,+DAIEA,EAAG,yCACRA,EAAG,iEAIEA,EAAG,2CACRA,EAAG,qEAIEA,EAAG,6CACRA,EAAG,gEAICA,EAAG,0CACHA,EAAG,uCACNA,EAAG,yCACEA,EAAG,2DAILA,EAAG,0CACHA,EAAG,uCACNA,EAAG,yCACEA,EAAG,2DAILA,EAAG,0CACHA,EAAG,uCACNA,EAAG,yCACEA,EAAG,sSAkBhBtrG,GAAU,CACZi6C,KAAMA,EAAGkF,QAAO4sD,cAAe,CAC3B,sBACA,CACI,oBAAkBsO,OAAWl7D,EAAM9hD,QAAyC,IAA/BiZ,OAAO6oC,EAAM9hD,OAAOrH,OACjE,iBAAemsC,OAAQgd,EAAM9hD,SAAW0uG,EAASuO,OAAOC,QACxD,aAA6B,UAAfp7D,EAAMlyC,KACpB,aAA6B,UAAfkyC,EAAMlyC,KACpB,aAA6B,WAAfkyC,EAAMlyC,KACpB,eAAmC,SAAnBkyC,EAAMq7D,SACtB,kBAAsC,YAAnBr7D,EAAMq7D,SACzB,eAAmC,SAAnBr7D,EAAMq7D,SACtB,iBAAqC,WAAnBr7D,EAAMq7D,SACxB,oBAAwC,cAAnBr7D,EAAMq7D,SAC3B,mBAAuC,aAAnBr7D,EAAMq7D,YAGpC,IACIC,GAAU,MAAhB,MAAMA,UAAmBpQ,KACrBp9G,KAAO,QACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAIoQ,EAAyB,OAAO,SAA4B3xF,GAAqB,OAAQ2xF,IAA4BA,EAA0BppH,MAAyBmpH,KAAc1xF,GAAqB0xF,EAAa,CAAG,EAAvO,GAC7BnQ,kBAA6Bh5G,MAAsB,CAAE0e,MAAOyqG,EAAY3oH,QAAS2oH,EAAW1oH,YAC/F,OANK0oH,CAAU,KA0PVE,GAAK,MAAX,MAAMA,UAAc/8G,GAKhB2iE,cAAajlC,SAKb5D,SAAQ4D,SAKR81B,aAAY91B,SAKZruB,QAAOquB,SAKPk/E,YAAWl/E,SAKXj+B,SAAQi+B,SAKRs/E,iBAAgBt/E,QAAM,EAAO,CAAE6uD,UAAW+vB,QAC1CvO,mBAAkBnB,OAAOiQ,IAKzBI,kBAAiBC,OAAS,KACtB,IAAI96G,EAAU,sBACd,SAAIq6G,OAAW1vH,KAAK0S,UAA4C,IAAhCiZ,OAAO3rB,KAAK0S,SAASrH,SACjDgK,GAAW,mBAEU,UAArBrV,KAAKymE,YACLpxD,GAAW,cAEe,WAArBrV,KAAKymE,YACVpxD,GAAW,cAEe,UAArBrV,KAAKymE,cACVpxD,GAAW,kBAEXmiC,OAAQx3C,KAAK0S,WACb2C,GAAW,gBAEXrV,KAAK41E,eACLvgE,GAAW,IAAIrV,KAAK41E,gBAEpB51E,KAAK6vH,aACLx6G,GAAW,YAAYrV,KAAK6vH,cAEzBx6G,IAEXsqG,iBAA6B,MAAQ,IAAIyQ,EAAoB,OAAO,SAAuBhyF,GAAqB,OAAQgyF,IAAuBA,EAAqBzpH,MAAyBqpH,KAAS5xF,GAAqB4xF,EAAQ,CAAG,EAAzM,GAC7BrQ,iBAA4Bh5G,MAAqB,CAAE3D,KAAMgtH,EAAO17G,UAAW,CAAC,CAAC,YAAa+7G,SAAU,EAAGz1G,aAAc,SAA4B/F,EAAIC,GAAgB,EAALD,IACxJlO,MAAcmO,EAAIi4B,SAClBpmC,MAAcmO,EAAIo7G,kBAClBvpH,MAAe,UAAWmO,EAAIm7G,iBAAmB,QACnD,EAAG17G,OAAQ,CAAEqhE,WAAY,CAAC,EAAG,cAAe7oC,MAAO,CAAC,EAAG,SAAU05B,UAAW,CAAC,EAAG,aAAcnkD,KAAM,CAAC,EAAG,QAASutG,SAAU,CAAC,EAAG,YAAan9G,MAAO,CAAC,EAAG,SAAUu9G,cAAe,CAAC,EAAG,kBAAoB3M,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACmpH,KAAcnpH,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGE,SAAU,SAAwBC,EAAIC,GAAgB,EAALD,GACpYlO,MAAU,GACH,EAALkO,GACFlO,MAAqBmO,EAAIpC,QAC3B,EAAG49G,aAAc,CAACxxF,MAAcgC,OAAeyvF,cAAe,EAAGC,gBAAiB,IAC3F,OA5EKR,CAAK,KA+FLS,GAAW,MAAjB,MAAMA,EACF9Q,iBAAc,SAA6BvhF,GAAqB,OAAO,IAAKA,GAAqBqyF,EAAgB,EACjH9Q,iBAA4Bh5G,KAAoB,CAAE3D,KAAMytH,IACxD9Q,iBAA4Bh5G,MAAoB,CAAE43B,QAAS,CAACyxF,GAAOlvF,MAAcA,SACpF,OAJK2vF,CAAW,KC1aXC,GAAa,MAAnB,MAAMA,UAAsBhR,KACxBp9G,KAAO,WACP+gH,aAnCQ,ipBAoCR1D,iBAA6B,MAAQ,IAAIgR,EAA4B,OAAO,SAA+BvyF,GAAqB,OAAQuyF,IAA+BA,EAA6BhqH,MAAyB+pH,KAAiBtyF,GAAqBsyF,EAAgB,CAAG,EAAzP,GAC7B/Q,kBAA6Bh5G,MAAsB,CAAE0e,MAAOqrG,EAAevpH,QAASupH,EAActpH,YACrG,OALKspH,CAAa,KAqBnB,MAAMz7G,GAAM,CAAC,KAAK,IACZ27G,GAAQ,MAAd,MAAMA,UAAiB39G,GACnBU,MACAk9G,MAAO,EACPj7C,WACAk7C,KACAC,UACAC,WACA78G,WACIhU,MAAMgU,WACNnU,KAAKixH,eACT,CACAA,gBACI,MAAMC,KAAe15E,OAAQx3C,KAAK2T,OAClC3T,KAAK8wH,KAAQI,OAAuB5vH,EAAR,MAC5BtB,KAAK+wH,UAAaG,OAA4B5vH,EAAbtB,KAAK2T,MACtC3T,KAAKgxH,WAAaE,CACtB,CACAC,gBACI,MAAO,UAAUnxH,KAAK41E,WAAa51E,KAAK41E,WAAa,IAAM,KAAK51E,KAAK6wH,KAAO,cAAgB,IAChG,CACAlR,iBAA6B,MAAQ,IAAIyR,EAAuB,OAAO,SAA0BhzF,GAAqB,OAAQgzF,IAA0BA,EAAwBzqH,MAAyBiqH,KAAYxyF,GAAqBwyF,EAAW,CAAG,EAA3N,GAC7BjR,iBAA4Bh5G,MAAqB,CAAE3D,KAAM4tH,EAAUt8G,UAAW,CAAC,CAAC,iBAAkB+8G,UAAW,CAAC,EAAG,cAAe,iBAAkB98G,OAAQ,CAAEZ,MAAO,QAASk9G,KAAM,CAAC,EAAG,OAAQ,OAAQtB,OAAmB35C,WAAY,cAAgB0tC,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAAC+pH,KAAiB/pH,MAA6BA,MAA+BA,OAAyBqvE,mBAAoB/gE,GAAKR,MAAO,EAAGC,KAAM,EAAGE,SAAU,SAA2BC,EAAIC,GAAgB,EAALD,IACvelO,QACAA,MAAgB,GAClB,EAAG4pH,cAAe,EAAGC,gBAAiB,IAC/C,OAzBKI,CAAQ,KCxDRU,GAAW,MAAjB,MAAMA,UAAoBV,GACtBW,OACAp9G,WACInU,KAAKuxH,OAAS,WAAUrQ,SAAS,GACrC,CACAvB,iBAA6B,MAAQ,IAAI6R,EAA0B,OAAO,SAA6BpzF,GAAqB,OAAQozF,IAA6BA,EAA2B7qH,MAAyB2qH,KAAelzF,GAAqBkzF,EAAc,CAAG,EAA7O,GAC7B3R,iBAA4Bh5G,MAAqB,CAAE3D,KAAMsuH,EAAah9G,UAAW,CAAC,CAAC,gBAAiBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,2yCAA4yC,OAAQ,gBAAiB,CAAC,EAAG,MAAO,CAAC,QAAS,KAAM,SAAU,KAAM,OAAQ,UAAWC,SAAU,SAA8BC,EAAIC,GAAgB,EAALD,IAC7vDlO,QACAA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,KAClCA,MAAa,EAAG,OAAQ,GACxBA,QACAA,MAAkB,EAAG,OAArBA,CAA6B,EAAG,WAAY,GAC5CA,MAAa,EAAG,OAAQ,GACxBA,aACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACvFnqH,QACAA,MAAe,YAAamO,EAAIy8G,QAChC5qH,MAAa,GACbA,MAAc,KAAMmO,EAAIy8G,QAC1B,EAAGhB,cAAe,IAC3B,OAtBKe,CAAW,KCEjB,MAAM7B,GAAQA,EAAG9O,QAAS,kKAURA,EAAG,8SAoBftrG,GAAU,CACZi6C,KAAM,SACR,IACImiE,GAAW,MAAjB,MAAMA,UAAoB/R,KACtBp9G,KAAO,SACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAI+R,EAA0B,OAAO,SAA6BtzF,GAAqB,OAAQszF,IAA6BA,EAA2B/qH,MAAyB8qH,KAAerzF,GAAqBqzF,EAAc,CAAG,EAA7O,GAC7B9R,kBAA6Bh5G,MAAsB,CAAE0e,MAAOosG,EAAatqH,QAASsqH,EAAYrqH,YACjG,OANKqqH,CAAW,KA+BXE,GAAM,MAAZ,MAAMA,UAAe1+G,GACjBuqD,QAAOqiD,OAAOliD,OACdqjD,mBAAkBnB,OAAO4R,IACzBG,kBACAC,kBACAplH,QACA3M,cACIK,SAAM,EACN2xH,OAAO,MACH,EAAIzC,OAAkBrvH,KAAK8/G,cACnB9/G,KAAKmZ,OAAOg8D,SACZn1E,KAAKw9D,KAAKX,kBAAkB,KACxB78D,KAAKulD,SACLvlD,KAAK6xH,kBAAoB7xH,KAAKq8D,SAAStW,OAAO/lD,KAAKg7D,GAAGya,cAAe,YAAaz1E,KAAK6jG,YAAY6B,KAAK1lG,MAAK,GAIjHA,KAAK80D,SAAO,EAI5B,CACA+3C,kBACI1sG,MAAM0sG,iBACV,CACAhJ,YAAY77F,GACR,IAAI+pH,EAAM/xH,KAAKgyH,SACf,IAAKD,GAA0E,SAAnE/xH,KAAKiL,SAASgnH,aAAar/E,iBAAiBm/E,EAAK,MAAM79D,QAC/D,OAGJ,MADA1K,OAAYuoE,EAAK,kBACb,EAAC1I,OAAU0I,MAAQ,EAACvI,OAASuI,GAAM,CACnC,IAAIj7F,EAAIrK,KAAKsqB,OAAI0tE,OAAczkH,KAAKg7D,GAAGya,gBAAa,EAAGoyC,OAAe7nH,KAAKg7D,GAAGya,gBAC9Es8C,EAAIhlF,MAAMze,OAASwI,EAAI,KACvBi7F,EAAIhlF,MAAMxe,MAAQuI,EAAI,IAC1B,CACA,IAAIxK,KAASw9F,OAAU9pH,KAAKg7D,GAAGya,eAC3BnoE,EAAItF,EAAMkqH,MAAQ5lG,EAAOuhD,KAAO7tE,KAAKiL,SAASvB,KAAKg+G,aAAY8B,OAASuI,GAAO,EAC/E53C,EAAInyE,EAAMmqH,MAAQ7lG,EAAOggD,IAAMtsE,KAAKiL,SAASvB,KAAK8+G,cAAaa,OAAU0I,GAAO,EACpF/xH,KAAKq8D,SAASnB,SAAS62D,EAAK,MAAO53C,EAAI,MACvCn6E,KAAKq8D,SAASnB,SAAS62D,EAAK,OAAQzkH,EAAI,OAAI,EAC5C06C,OAAS+pE,EAAK,gBACd/xH,KAAKyM,QAAU+I,WAAW,KACtB,IAAIu8G,EAAM/xH,KAAKgyH,SACXD,MACAvoE,OAAYuoE,EAAK,eAAc,EAEpC,IACP,CACAC,SACI,MAAMxiC,EAAWxvF,KAAKg7D,GAAGya,cAAc+Z,SACvC,QAASpkF,EAAI,EAAGA,EAAIokF,EAASnkF,OAAQD,IACjC,GAAqC,iBAA1BokF,EAASpkF,GAAGmkD,YAAqE,IAA3CigC,EAASpkF,GAAGmkD,UAAUjrD,QAAQ,SAC3E,OAAOkrF,EAASpkF,GAGxB,OAAO,IACX,CACAgnH,WACI,IAAIL,EAAM/xH,KAAKgyH,SACXD,MACAvoE,OAAYuoE,EAAK,eAEzB,CACAM,eAAerqH,GACPhI,KAAKyM,SACLo2B,aAAa7iC,KAAKyM,UAAO,EAE7B+8C,OAAYxhD,EAAMsqH,cAAe,eACrC,CACA/sE,SACI,IAAIwsE,EAAM/xH,KAAKq8D,SAASrC,cAAc,QACtCh6D,KAAKq8D,SAASrU,SAAS+pE,EAAK,SAC5B/xH,KAAKq8D,SAASjC,YAAYp6D,KAAKg7D,GAAGya,cAAes8C,GACjD/xH,KAAKq8D,SAAStB,aAAag3D,EAAK,cAAe,QAC/C/xH,KAAKq8D,SAAStB,aAAag3D,EAAK,OAAQ,gBACnC/xH,KAAK4xH,oBACN5xH,KAAK4xH,kBAAoB5xH,KAAKq8D,SAAStW,OAAOgsE,EAAK,eAAgB/xH,KAAKqyH,eAAe3sB,KAAK1lG,OAEpG,CACA80D,SACI,IAAIi9D,EAAM/xH,KAAKgyH,SACXD,IACA/xH,KAAK6xH,mBAAqB7xH,KAAK6xH,oBAC/B7xH,KAAK4xH,mBAAqB5xH,KAAK4xH,oBAC/B5xH,KAAK6xH,kBAAoB,KACzB7xH,KAAK4xH,kBAAoB,QACzB98D,OAAOi9D,GAEf,CACAv3G,cACQxa,KAAKmZ,QAAUnZ,KAAKmZ,OAAOg8D,UAC3Bn1E,KAAK80D,SAET30D,MAAMqa,aACV,CACAmlG,iBAAc,SAAwBvhF,GAAqB,OAAO,IAAKA,GAAqBuzF,EAAW,EACvGhS,iBAA4Bh5G,MAAqB,CAAE3D,KAAM2uH,EAAQr9G,UAAW,CAAC,CAAC,GAAI,UAAW,KAAM+8G,UAAW,CAAC,EAAG,YAAa/N,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAAC8qH,KAAe9qH,SACrM,OAlGKgrH,CAAM,KCzDZ,MAAMlC,GAAQA,EAAG9O,QAAS,8MASbA,EAAG,6CACEA,EAAG,wDACGA,EAAG,uDACNA,EAAG,6CACFA,EAAG,0IAIIA,EAAG,wCAAwCA,EAAG,+CAA+CA,EAAG,6DACjGA,EAAG,6CAA6CA,EAAG,sDAC1DA,EAAG,uEAEbA,EAAG,qWAwBDA,EAAG,wLAQFA,EAAG,uJASAA,EAAG,+CACCA,EAAG,gDACFA,EAAG,+EAIRA,EAAG,gEAIHA,EAAG,+CACCA,EAAG,gDACFA,EAAG,+EAIRA,EAAG,6HAQDA,EAAG,iIAQTA,EAAG,sFAIEA,EAAG,8DACGA,EAAG,qDACdA,EAAG,2FAIEA,EAAG,+DACGA,EAAG,sDACdA,EAAG,oFAIEA,EAAG,sDACNA,EAAG,8BAA8BA,EAAG,8BAA8BA,EAAG,4DAC9DA,EAAG,2EAIRA,EAAG,sCACNA,EAAG,2CACEA,EAAG,mEAIJA,EAAG,0EAIAA,EAAG,iFAINA,EAAG,0DACGA,EAAG,iDACdA,EAAG,gGAIEA,EAAG,gEACGA,EAAG,uDACdA,EAAG,uGAIEA,EAAG,iEACGA,EAAG,wDACdA,EAAG,mGAIKA,EAAG,0DACNA,EAAG,qFAIHA,EAAG,wDACGA,EAAG,+CACdA,EAAG,4FAIEA,EAAG,8DACGA,EAAG,qDACdA,EAAG,mGAIEA,EAAG,+DACGA,EAAG,sDACdA,EAAG,+FAIKA,EAAG,wDACNA,EAAG,gFAIHA,EAAG,qDACGA,EAAG,4CACdA,EAAG,sFAIEA,EAAG,2DACGA,EAAG,kDACdA,EAAG,6FAIEA,EAAG,4DACGA,EAAG,mDACdA,EAAG,yFAIKA,EAAG,qDACNA,EAAG,6EAIHA,EAAG,qDACGA,EAAG,4CACdA,EAAG,sFAIEA,EAAG,2DACGA,EAAG,kDACdA,EAAG,6FAIEA,EAAG,4DACGA,EAAG,mDACdA,EAAG,yFAIKA,EAAG,qDACNA,EAAG,6EAIHA,EAAG,qDACGA,EAAG,4CACdA,EAAG,sFAIEA,EAAG,2DACGA,EAAG,kDACdA,EAAG,6FAIEA,EAAG,4DACGA,EAAG,mDACdA,EAAG,yFAIKA,EAAG,qDACNA,EAAG,+EAIHA,EAAG,uDACGA,EAAG,8CACdA,EAAG,0FAIEA,EAAG,6DACGA,EAAG,oDACdA,EAAG,iGAIEA,EAAG,8DACGA,EAAG,qDACdA,EAAG,6FAIKA,EAAG,uDACNA,EAAG,mFAIHA,EAAG,yDACGA,EAAG,gDACdA,EAAG,8FAIEA,EAAG,+DACGA,EAAG,sDACdA,EAAG,qGAIEA,EAAG,gEACGA,EAAG,uDACdA,EAAG,iGAIKA,EAAG,yDACNA,EAAG,qHAKDA,EAAG,wDACVA,EAAG,sGAIEA,EAAG,mEACDA,EAAG,wDACVA,EAAG,uGAIEA,EAAG,oEACDA,EAAG,wDACVA,EAAG,sGAIIA,EAAG,0DACVA,EAAG,2HAIEA,EAAG,qEACDA,EAAG,0DACVA,EAAG,4HAIEA,EAAG,sEACDA,EAAG,0DACVA,EAAG,sGAIIA,EAAG,wDACVA,EAAG,uHAIEA,EAAG,mEACDA,EAAG,wDACVA,EAAG,wHAIEA,EAAG,oEACDA,EAAG,wDACVA,EAAG,iGAIIA,EAAG,qDACVA,EAAG,iHAIEA,EAAG,gEACDA,EAAG,qDACVA,EAAG,kHAIEA,EAAG,iEACDA,EAAG,qDACVA,EAAG,8FAIIA,EAAG,qDACVA,EAAG,iHAIEA,EAAG,gEACDA,EAAG,qDACVA,EAAG,kHAIEA,EAAG,iEACDA,EAAG,qDACVA,EAAG,8FAIIA,EAAG,qDACVA,EAAG,iHAIEA,EAAG,gEACDA,EAAG,qDACVA,EAAG,kHAIEA,EAAG,iEACDA,EAAG,qDACVA,EAAG,gGAIIA,EAAG,uDACVA,EAAG,qHAIEA,EAAG,kEACDA,EAAG,uDACVA,EAAG,sHAIEA,EAAG,mEACDA,EAAG,uDACVA,EAAG,oGAIIA,EAAG,yDACVA,EAAG,yHAIEA,EAAG,oEACDA,EAAG,yDACVA,EAAG,0HAIEA,EAAG,qEACDA,EAAG,yDACVA,EAAG,mGAIIA,EAAG,sDACVA,EAAG,mHAIEA,EAAG,iEACDA,EAAG,sDACVA,EAAG,oHAIEA,EAAG,kEACDA,EAAG,sDACVA,EAAG,oIAMHA,EAAG,8FAIEA,EAAG,wFAERA,EAAG,+FAIEA,EAAG,yFAERA,EAAG,qJAMHA,EAAG,mHAIEA,EAAG,0FAERA,EAAG,oHAIEA,EAAG,2FAERA,EAAG,qJAMHA,EAAG,+GAIEA,EAAG,wFAERA,EAAG,gHAIEA,EAAG,yFAERA,EAAG,gJAMHA,EAAG,yGAIEA,EAAG,qFAERA,EAAG,0GAIEA,EAAG,sFAERA,EAAG,6IAMHA,EAAG,yGAIEA,EAAG,qFAERA,EAAG,0GAIEA,EAAG,sFAERA,EAAG,6IAMHA,EAAG,yGAIEA,EAAG,qFAERA,EAAG,0GAIEA,EAAG,sFAERA,EAAG,+IAMHA,EAAG,6GAIEA,EAAG,uFAERA,EAAG,8GAIEA,EAAG,wFAERA,EAAG,gJAMHA,EAAG,2GAIEA,EAAG,sFAERA,EAAG,4GAIEA,EAAG,uFAERA,EAAG,kJAMHA,EAAG,iHAIEA,EAAG,yFAERA,EAAG,kHAIEA,EAAG,0FAERA,EAAG,mIAMHA,EAAG,+IAMHA,EAAG,mPAUHA,EAAG,gKAYVtrG,GAAU,CACZi6C,KAAMA,EAAG8xD,WAAU5sD,WAAY,CAC3B,uBACA,CACI,qBAAsB4sD,EAASmR,UAAY/9D,EAAM7gD,QAAU6gD,EAAMmR,MACjE,qBAAwC,QAAlBnR,EAAMg+D,SAAuC,WAAlBh+D,EAAMg+D,UAAyBh+D,EAAM7gD,MACtF,mBAAoB6gD,EAAM6pD,QAC1B,gBAAiB7pD,EAAMqS,KACvB,CAAC,YAAYrS,EAAMq7D,YAAar7D,EAAMq7D,SACtC,kBAAmBr7D,EAAMi+D,OACzB,mBAAoBj+D,EAAMk+D,QAC1B,gBAAiBl+D,EAAMhtD,KACvB,oBAAqBgtD,EAAMmS,SAC3B,cAA8B,UAAfnS,EAAMlyC,KACrB,cAA8B,UAAfkyC,EAAMlyC,KACrB,iBAAkBkyC,EAAMoS,MACxB,iBAAkBpS,EAAMm+D,QAGhCroD,YAAa,wBACbhG,KAAMA,EAAG9P,WAAY,CACjB,gBACA,CACI,CAAC,iBAAiBA,EAAMg+D,WAAYh+D,EAAM7gD,QAGlDA,MAAO,kBACT,IACIi/G,GAAW,MAAjB,MAAMA,UAAoBlT,KACtBp9G,KAAO,SACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAIkT,EAA0B,OAAO,SAA6Bz0F,GAAqB,OAAQy0F,IAA6BA,EAA2BlsH,MAAyBisH,KAAex0F,GAAqBw0F,EAAc,CAAG,EAA7O,GAC7BjT,kBAA6Bh5G,MAAsB,CAAE0e,MAAOutG,EAAazrH,QAASyrH,EAAYxrH,YACjG,OANKwrH,CAAW,KAuCjB,MAAM39G,GAAM,CAAC,WACPgC,GAAM,CAAC,WACP67G,GAAM,CAAC,QACPC,GAAM,CAAC,KACPC,GAAMC,KAASC,MAAOD,IAC5B,SAASE,GAA+Bt+G,EAAIC,GAAgB,EAALD,GACnDlO,MAAsB,EACxB,CACF,SAASysH,GAAqDv+G,EAAIC,GAEhE,GAFgF,EAALD,GACzElO,MAAa,EAAG,OAAQ,GACjB,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,UAAW8M,EAAO4/G,aAChC1sH,MAAe,eAAe,EAA9BA,CAAoC,kBAAmB,cAC3D,CAAE,CACF,SAAS2sH,GAA4Dz+G,EAAIC,GAEvE,GAFuF,EAALD,GAChFlO,MAAa,EAAG,cAAe,GACxB,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,aAAc8M,EAAO8/G,mBAAnC5sH,CAAuD,QAAQ,GAC/DA,MAAe,eAAe,EAA9BA,CAAoC,kBAAmB,cAC3D,CAAE,CACF,SAAS6sH,GAA8C3+G,EAAIC,GAIzD,GAJyE,EAALD,IAClElO,MAA2B,GAC3BA,MAAc,EAAGysH,GAAsD,EAAG,EAAG,OAAQ,EAArFzsH,CAAwF,EAAG2sH,GAA6D,EAAG,EAAG,cAAe,GAC7K3sH,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,QACAA,MAAc,OAAQ8M,EAAO62D,aAC7B3jE,QACAA,MAAc,QAAS8M,EAAO62D,YAClC,CAAE,CACF,SAASmpD,GAA+C5+G,EAAIC,GAAO,CACnE,SAAS4+G,GAAiC7+G,EAAIC,GAE5C,GAF4D,EAALD,GACrDlO,MAAc,EAAG8sH,GAAgD,EAAG,EAAG,cAAe,IAC/E,EAAL5+G,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,OAAQ8M,EAAOkgH,qBAAuBlgH,EAAOmgH,qBAC/D,CAAE,CACF,SAASC,GAA+Bh/G,EAAIC,GAI1C,GAJ0D,EAALD,IACnDlO,MAA2B,GAC3BA,MAAc,EAAG6sH,GAA+C,EAAG,EAAG,eAAgB,EAAtF7sH,CAAyF,EAAG+sH,GAAkC,EAAG,EAAG,KAAM,GAC1I/sH,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,QACAA,MAAc,QAAS8M,EAAOkgH,sBAAwBlgH,EAAOmgH,sBAC7DjtH,QACAA,MAAc,mBAAoB8M,EAAOkgH,qBAAuBlgH,EAAOmgH,qBAAvEjtH,CAA6F,0BAA2BA,MAAmB,EAAGqsH,GAAKv/G,EAAO4/G,aAC9J,CAAE,CACF,SAASS,GAAsCj/G,EAAIC,GAEjD,GAFiE,EAALD,GAC1DlO,MAAa,EAAG,OAAQ,GACjB,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc8M,EAAO6wD,MACrB39D,MAAc,UAAW8M,EAAO4/G,aAChC1sH,MAAe,kBAAmB,OACtC,CAAE,CACF,SAASotH,GAA+Cl/G,EAAIC,GAAO,CACnE,SAASk/G,GAAiCn/G,EAAIC,GAE5C,GAF4D,EAALD,GACrDlO,MAAc,EAAGotH,GAAgD,EAAG,EAAG,cAAe,IAC/E,EAALl/G,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,QAAS8M,EAAO6wD,OAAS7wD,EAAOwgH,cAAgBxgH,EAAOygH,eACzE,CAAE,CACF,SAASC,GAA+Bt/G,EAAIC,GAI1C,GAJ0D,EAALD,IACnDlO,MAA2B,GAC3BA,MAAc,EAAGmtH,GAAuC,EAAG,EAAG,OAAQ,GAAtEntH,CAA0E,EAAGqtH,GAAkC,EAAG,EAAG,KAAM,GAC3HrtH,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,QACAA,MAAc,OAAQ8M,EAAO6wD,OAAS7wD,EAAOwgH,eAAiBxgH,EAAOygH,eACrEvtH,QACAA,MAAc,mBAAoB8M,EAAOwgH,cAAgBxgH,EAAOygH,cAAhEvtH,CAA+E,0BAA2BA,MAAmB,EAAGqsH,GAAKv/G,EAAO4/G,aAChJ,CAAE,CACF,SAASe,GAAuBv/G,EAAIC,GAIlC,GAJkD,EAALD,IAC3ClO,MAAkB,EAAG,OAAQ,IAC7BA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,MAAe,cAAe8M,EAAO6wD,OAAS7wD,EAAOE,MAArDhN,CAA4D,kBAAmB,SAC/EA,QACAA,MAAqB8M,EAAOE,MAChC,CAAE,CACF,SAAS0gH,GAA0Bx/G,EAAIC,GAErC,GAFqD,EAALD,GAC9ClO,MAAa,EAAG,UAAW,IACpB,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,MAAc,QAAS8M,EAAOkyD,MAA9Bh/D,CAAqC,WAAY8M,EAAO6gH,cAC5D,CAAE,CACF,MAAMC,GAA0B,CAC5BluD,OAAQ,WACRr4C,UAAW,cACXwmG,SAAU,qBACVz+G,SAAU,aACVsoG,QAAS,mBACToW,UAAW,+BACb,IACIC,GAAW,MAAjB,MAAMA,UAAoBzhH,GACtB+tG,mBAAkBnB,OAAO+S,IACzBjT,iBAA6B,MAAQ,IAAIgV,EAA0B,OAAO,SAA6Bv2F,GAAqB,OAAQu2F,IAA6BA,EAA2BhuH,MAAyB+tH,KAAet2F,GAAqBs2F,EAAc,CAAG,EAA7O,GAC7B/U,iBAA4Bh5G,MAAqB,CAAE3D,KAAM0xH,EAAapgH,UAAW,CAAC,CAAC,GAAI,eAAgB,KAAM+7G,SAAU,EAAGz1G,aAAc,SAAkC/F,EAAIC,GAAgB,EAALD,GACjLlO,MAAe,kBAAkB,EACnC,EAAG28G,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACisH,KAAejsH,SAC/E,OANK+tH,CAAW,KAkBXE,GAAU,MAAhB,MAAMA,UAAmB3hH,GACrB+tG,mBAAkBnB,OAAO+S,IACzBjT,iBAA6B,MAAQ,IAAIkV,EAAyB,OAAO,SAA4Bz2F,GAAqB,OAAQy2F,IAA4BA,EAA0BluH,MAAyBiuH,KAAcx2F,GAAqBw2F,EAAa,CAAG,EAAvO,GAC7BjV,iBAA4Bh5G,MAAqB,CAAE3D,KAAM4xH,EAAYtgH,UAAW,CAAC,CAAC,GAAI,cAAe,KAAM+7G,SAAU,EAAGz1G,aAAc,SAAiC/F,EAAIC,GAAgB,EAALD,GAC9KlO,MAAe,iBAAiB,EAClC,EAAG28G,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACisH,KAAejsH,SAC/E,OANKiuH,CAAU,KAsBVE,GAAe,MAArB,MAAMA,UAAwB7hH,GAM1Bu/G,QAAU,OAMVloD,YACA,SAAI32D,CAAM2b,GACNtvB,KAAK+0H,OAASzlG,EACVtvB,KAAKg1H,cACLh1H,KAAKi1H,cACLj1H,KAAKk1H,aACLl1H,KAAKm1H,gBAEb,CACA,QAAI7wD,CAAKh1C,GACLtvB,KAAKo1H,MAAQ9lG,EACTtvB,KAAKg1H,cACLh1H,KAAKk1H,aACLl1H,KAAKm1H,gBAEb,CAKA,WAAI9W,GACA,OAAOr+G,KAAKq1H,QAChB,CACA,WAAIhX,CAAQ/uF,GACRtvB,KAAKq1H,SAAW/lG,EACZtvB,KAAKg1H,cACLh1H,KAAKk1H,aACLl1H,KAAKm1H,gBAEb,CACAG,aACAC,cAAaC,OAAaZ,IAC1Ba,eAAcD,OAAad,IAC3BgB,cAAavF,OAAS,MAAUnwH,KAAKy1H,gBAAiBz1H,KAAKu1H,eAC3D,eAAII,CAAYrmG,GACZtvB,KAAKs1H,aAAehmG,EAChBA,GAAsB,iBAARA,GAEd/tB,OAAO2c,QAAQoR,GAAK/b,QAAQ,EAAEnJ,EAAGjI,KAAOnC,KAAK,IAAIoK,OAASjI,IAAMnC,KAAK,IAAIoK,KAAOjI,GAExF,CAKA0tH,SAKA4C,QAAS,EAKTC,SAAU,EAKVlrH,MAAO,EAKPm/D,UAAW,EAKXrkD,KAAO,KAMPskD,OAAQ,EAKR+rD,MACAoC,OACAK,MACAC,UAAW,EACXL,YACA,eAAIY,GACA,OAAO51H,KAAKg7D,GAAGya,aACnB,CACAogD,iBAAmBt0H,OAAOmxB,OAAO6hG,IACjCuB,gBAAe3F,OAAS,MAAUnwH,KAAKu1H,eAAgBv1H,KAAKy1H,gBAAiBz1H,KAAKwH,OAMlF,SAAImM,GACA,OAAO3T,KAAK+0H,MAChB,CAMA,QAAIzwD,GACA,OAAOtkE,KAAKo1H,KAChB,CAMA,eAAIO,GACA,OAAO31H,KAAKs1H,YAChB,CACAS,YAAc,0uDAad/U,mBAAkBnB,OAAO+S,IACzB/lB,kBACI1sG,MAAM0sG,mBAAgB,EACtB7kD,OAAShoD,KAAK41H,YAAa51H,KAAKg2H,gBAAgB3oG,KAAK,MACrDrtB,KAAKi2H,aACLj2H,KAAKk2H,cACLl2H,KAAKg1H,aAAc,CACvB,CACA1/G,YAAY6gH,GACRh2H,MAAMmV,YAAY6gH,GAClB,MAAQR,eAAgBQ,EACxB,GAAIR,EAAa,CACb,MAAMnhE,EAAQmhE,EAAY3wB,aAC1B,UAAWpoF,KAAY43C,EACnBx0D,KAAK4c,GAAY43C,EAAM53C,EAE/B,CACJ,CACAo5G,gBACI,MAAMpgD,EAAa,CAAC2+C,GAAwBluD,OAAQkuD,GAAwBvmG,WAC5E,OAAIhuB,KAAKskE,OAAStkE,KAAK2T,UAAS6jC,OAAQx3C,KAAK41H,YAAYruB,cACrD3xB,EAAWviE,KAAKkhH,GAAwBC,UAExCx0H,KAAKq+G,UACLzoC,EAAWviE,KAAKkhH,GAAwBx+G,SAAUw+G,GAAwBlW,UACrEr+G,KAAKskE,MAAQtkE,KAAK2T,OACnBiiE,EAAWviE,KAAKkhH,GAAwBE,WAExCz0H,KAAKskE,OAAStkE,KAAK2T,SAAS,EAAC6jC,OAAQx3C,KAAK41H,YAAYruB,cACtD3xB,EAAWviE,KAAKkhH,GAAwBC,WAG5Cx0H,KAAKwH,MACLouE,EAAWviE,KAAK,iBAEhBrT,KAAK6vH,UACLj6C,EAAWviE,KAAK,YAAYrT,KAAK6vH,YAEjC7vH,KAAK4mE,OACLgP,EAAWviE,KAAK,kBAEhBrT,KAAKyyH,QACL78C,EAAWviE,KAAK,mBAEhBrT,KAAKsiB,MACLszD,EAAWviE,KAAK,YAAYrT,KAAKsiB,QAEjCtiB,KAAK2mE,UACLiP,EAAWviE,KAAK,qBAEhBrT,KAAK0yH,SACL98C,EAAWviE,KAAK,oBAEF,UAAdrT,KAAKsiB,MACLszD,EAAWviE,KAAK,eAEF,UAAdrT,KAAKsiB,MACLszD,EAAWviE,KAAK,eAEhBrT,KAAKo2H,UACLxgD,EAAWviE,KAAK,kBAEbuiE,CACX,CACA,YAAIwgD,GAEA,MAAMC,EADgBr2H,KAAKg7D,GAAGya,cACO6gD,QAAQ,WAC7C,SAAO9+E,OAAQx3C,KAAK2yH,SAAW0D,EAAiBr2H,KAAK2yH,KACzD,CACAwC,gBACI,MAAMv/C,EAAa51E,KAAKg2H,gBACxBh2H,KAAK41H,YAAYznE,UAAU2G,UAAU90D,KAAK61H,kBAC1C71H,KAAK41H,YAAYznE,UAAUvY,OAAOggC,EACtC,CACAsgD,cAEI,KAAI,EADYnS,OAAW/jH,KAAK41H,YAAa,oBAC7B51H,KAAK2T,MAAO,CACxB,IAAI4iH,EAAev2H,KAAKiL,SAAS+uD,cAAc,QAC3Ch6D,KAAKskE,OAAStkE,KAAK2T,OACnB4iH,EAAax7D,aAAa,cAAe,QAE7Cw7D,EAAahnE,UAAY,iBACzBgnE,EAAan8D,YAAYp6D,KAAKiL,SAASurH,eAAex2H,KAAK2T,QAC3D3T,KAAK41H,YAAYx7D,YAAYm8D,EACjC,CACJ,CACAN,aAEI,KAAI,EADYlS,OAAW/jH,KAAK41H,YAAa,oBAC5B51H,KAAKskE,MAAQtkE,KAAKq+G,SAAU,CACzC,IAAIoY,EAAcz2H,KAAKiL,SAAS+uD,cAAc,QAC9Cy8D,EAAYlnE,UAAY,gBACxBknE,EAAY17D,aAAa,cAAe,QACxC,IAAI27D,EAAe12H,KAAK2T,MAAQ,iBAAmB3T,KAAKwyH,QAAU,KAC9DkE,MACA1uE,OAASyuE,EAAaC,GAE1B,IAAIrD,EAAYrzH,KAAK0W,eACjB28G,MACArrE,OAASyuE,EAAapD,IAErBrzH,KAAKsqE,aAAetqE,KAAKq+G,UAC1BoY,EAAYtsC,UAAYnqF,KAAK+1H,aAEjC/1H,KAAK41H,YAAYtoE,aAAampE,EAAaz2H,KAAK41H,YAAYe,WAChE,CACJ,CACA1B,cACI,IAAIsB,KAAexS,OAAW/jH,KAAK41H,YAAa,mBAC3C51H,KAAK2T,MAIV4iH,EAAgBA,EAAahvB,YAAcvnG,KAAK2T,MAAS3T,KAAKk2H,cAH1DK,GAAgBv2H,KAAK41H,YAAYp7D,YAAY+7D,EAIrD,CACArB,aACI,IAAIuB,KAAc1S,OAAW/jH,KAAK41H,YAAa,kBAC3CW,KAAexS,OAAW/jH,KAAK41H,YAAa,mBAC5C51H,KAAKq+G,UAAYr+G,KAAKsqE,aAAemsD,EACrCA,EAAYtsC,UAAYnqF,KAAK+1H,YAExBU,GAAatsC,YAClBssC,EAAYtsC,UAAY,IAExBssC,EAEIA,EAAYlnE,UADZvvD,KAAKwyH,QACmB,kBAAoB+D,EAAe,iBAAmBv2H,KAAKwyH,QAAU,IAAM,IAAMxyH,KAAK0W,eAGtF,iBAAmB1W,KAAK0W,eAIpD1W,KAAKi2H,YAEb,CACAv/G,eACI,OAAO1W,KAAKq+G,QAAU,0BAA4Br+G,KAAKsqE,YAActqE,KAAKsqE,YAAc,UAAYtqE,KAAKskE,MAAQ,UACrH,CACA9pD,cACIxa,KAAKg1H,aAAc,EACnB70H,MAAMqa,aACV,CACAmlG,iBAA6B,MAAQ,IAAIiX,EAA8B,OAAO,SAAiCx4F,GAAqB,OAAQw4F,IAAiCA,EAA+BjwH,MAAyBmuH,KAAmB12F,GAAqB02F,EAAkB,CAAG,EAArQ,GAC7BnV,iBAA4Bh5G,MAAqB,CAAE3D,KAAM8xH,EAAiBxgH,UAAW,CAAC,CAAC,GAAI,UAAW,KAAMuiH,eAAgB,SAAwChiH,EAAIC,EAAKgiH,GAAqB,EAALjiH,IACrLlO,MAAwBmwH,EAAUhiH,EAAIygH,WAAYX,GAAY,GAC9DjuH,MAAwBmwH,EAAUhiH,EAAI2gH,YAAaf,GAAa,IACzD,EAAL7/G,GACFlO,MAAkB,EACpB,EAAG0pH,SAAU,EAAGz1G,aAAc,SAAsC/F,EAAIC,GAAgB,EAALD,GACjFlO,MAAe,qBAAsBmO,EAAI4gH,aAAzC/uH,CAAuD,gBAAiBmO,EAAIghH,eAC9E,EAAGvhH,OAAQ,CAAEi+G,QAAS,UAAWloD,YAAa,cAAe+zC,QAAS,UAAWwR,SAAU,WAAY4C,OAAQ,CAAC,EAAG,SAAU,SAAUlD,OAAmBmD,QAAS,CAAC,EAAG,UAAW,UAAWnD,OAAmB/nH,KAAM,CAAC,EAAG,OAAQ,OAAQ+nH,OAAmB5oD,SAAU,CAAC,EAAG,WAAY,WAAY4oD,OAAmBjtG,KAAM,OAAQskD,MAAO,CAAC,EAAG,QAAS,QAAS2oD,OAAmBoD,MAAO,CAAC,EAAG,QAAS,QAASpD,OAAmB57G,MAAO,QAAS2wD,KAAM,OAAQqxD,YAAa,eAAiBrS,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACisH,KAAejsH,MAA6BA,MAA+BA,SACxmB,OAnSKmuH,CAAe,KAsVfiC,GAAM,MAAZ,MAAMA,UAAe9jH,GAKjBjQ,KAAO,SAKPwvH,QAAU,OAKVluD,KAKAqB,MAKAhyD,MAKAoC,SAKAsoG,SAAU,EAKV/zC,YAKAmoD,QAAS,EAKTC,SAAU,EAKVlrH,MAAO,EAMPo/D,OAAQ,EAKRipD,SAKAlpD,UAAW,EAKXE,MAAO,EAKPmwD,SAKA10G,KAKA20G,QAKAlqF,MAKA6oC,WAMAshD,WAMA5C,cAAgB,YAKhBvD,UAKA/B,UAKA2D,MAOAv+G,QAAU,IAAIF,MAOd4qG,QAAU,IAAI5qG,MAOd6qG,OAAS,IAAI7qG,MAKbijH,gBAKAxD,oBAKAM,aACAqB,aAKA,eAAIK,GACA,OAAO31H,KAAKs1H,YAChB,CACA,eAAIK,CAAYrmG,GACZtvB,KAAKs1H,aAAehmG,EAChBA,GAAsB,iBAARA,GAEd/tB,OAAO2c,QAAQoR,GAAK/b,QAAQ,EAAEnJ,EAAGjI,KAAOnC,KAAK,IAAIoK,OAASjI,IAAMnC,KAAK,IAAIoK,KAAOjI,GAExF,CACA,YAAIi0H,GAEA,MAAMC,EADgBr2H,KAAKg7D,GAAGya,cACO6gD,QAAQ,WAC7C,SAAO9+E,OAAQx3C,KAAK2yH,SAAW0D,EAAiBr2H,KAAK2yH,KACzD,CACA3R,mBAAkBnB,OAAO+S,IACzBwE,UACAC,iBACAnD,cACAN,qBACA0D,qBACIt3H,KAAKo3H,WAAW7jH,QAAS1B,IACrB,OAAQA,EAAK0lH,WACT,IAAK,UASL,QACIv3H,KAAKm3H,gBAAkBtlH,EAAK+C,SAC5B,MARJ,IAAK,OACD5U,KAAKi0H,aAAepiH,EAAK+C,SACzB,MACJ,IAAK,cACD5U,KAAK2zH,oBAAsB9hH,EAAK+C,SAKxC,EAER,CACAU,YAAY6gH,GACRh2H,MAAMmV,YAAY6gH,GAClB,MAAQR,eAAgBQ,EACxB,GAAIR,EAAa,CACb,MAAMnhE,EAAQmhE,EAAY3wB,aAC1B,UAAWpoF,KAAY43C,EACnBx0D,KAAK4c,GAAY43C,EAAM53C,EAE/B,CACJ,CACA22G,mBACI,OAAOhyH,OAAO2c,QAAQle,KAAKqzH,aACtBplH,OAAO,EAAC,CAAGyE,OAAaA,GACxB86E,OAAO,CAACgqC,GAAMv5G,KAASu5G,EAAM,IAAIv5G,IAAO,wBACjD,CACAo1G,YACI,MAAO,CACH,CAAC,iCAAiCrzH,KAAKsqE,aAAe,MAAOtqE,KAAKq+G,QAClE,iBAAiB,EACjB,qBAAuC,SAAjBr+G,KAAKwyH,SAAsBxyH,KAAK2T,MACtD,sBAAwC,UAAjB3T,KAAKwyH,SAAuBxyH,KAAK2T,MACxD,oBAAsC,QAAjB3T,KAAKwyH,SAAqBxyH,KAAK2T,MACpD,uBAAyC,WAAjB3T,KAAKwyH,SAAwBxyH,KAAK2T,MAElE,CACA,eAAI8jH,GACA,MAAO,CACH,wBAAwB,EACxB,sBAAuBz3H,KAAKskE,MAAQtkE,KAAKi0H,cAAgBj0H,KAAKsqE,aAAetqE,KAAK2zH,qBAAuB3zH,KAAK4zH,wBAA0B5zH,KAAK2T,MAC7I,qBAAuC,QAAjB3T,KAAKwyH,SAAsC,WAAjBxyH,KAAKwyH,UAAyBxyH,KAAK2T,MACnF,mBAAoB3T,KAAKq+G,QACzB,8BAA+Br+G,KAAKq+G,UAAYr+G,KAAKskE,MAAQtkE,KAAK2T,QAAU3T,KAAKsqE,aAAgC,SAAjBtqE,KAAKwyH,QACrG,gBAAiBxyH,KAAK6mE,KACtB,CAAC,YAAY7mE,KAAK6vH,YAAa7vH,KAAK6vH,SACpC,kBAAmB7vH,KAAKyyH,OACxB,mBAAoBzyH,KAAK0yH,QACzB,gBAAiB1yH,KAAKwH,MAAwB,QAAhBxH,KAAKi3H,QACnC,oBAAqBj3H,KAAK2mE,UAA4B,YAAhB3mE,KAAKi3H,QAC3C,cAA6B,UAAdj3H,KAAKsiB,KACpB,cAA6B,UAAdtiB,KAAKsiB,KACpB,iBAAkBtiB,KAAK4mE,MACvB,iBAAkB5mE,KAAKo2H,SACvB,CAAC,GAAGp2H,KAAK41E,cAAe51E,KAAK41E,WAErC,CACA+pC,iBAA6B,MAAQ,IAAI+X,EAAqB,OAAO,SAAwBt5F,GAAqB,OAAQs5F,IAAwBA,EAAsB/wH,MAAyBowH,KAAU34F,GAAqB24F,EAAS,CAAG,EAA/M,GAC7BpX,iBAA4Bh5G,MAAqB,CAAE3D,KAAM+zH,EAAQziH,UAAW,CAAC,CAAC,aAAcuiH,eAAgB,SAA+BhiH,EAAIC,EAAKgiH,GAK9I,GALmK,EAALjiH,IAC5JlO,MAAkBmwH,EAAU7hH,GAAK,GACjCtO,MAAkBmwH,EAAU7/G,GAAK,GACjCtQ,MAAkBmwH,EAAUhE,GAAK,GACjCnsH,MAAkBmwH,EAAUa,MAAe,IACpC,EAAL9iH,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAIqiH,gBAAkBS,EAAG5yD,OACtEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI6+G,oBAAsBiE,EAAG5yD,OAC1Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIm/G,aAAe2D,EAAG5yD,OACnEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIsiH,UAAYQ,EACjE,CAAE,EAAGrjH,OAAQ,CAAEvR,KAAM,OAAQwvH,QAAS,UAAWluD,KAAM,OAAQqB,MAAO,QAAShyD,MAAO,QAASoC,SAAU,CAAC,EAAG,WAAY,WAAYw5G,OAAmBlR,QAAS,CAAC,EAAG,UAAW,UAAWkR,OAAmBjlD,YAAa,cAAemoD,OAAQ,CAAC,EAAG,SAAU,SAAUlD,OAAmBmD,QAAS,CAAC,EAAG,UAAW,UAAWnD,OAAmB/nH,KAAM,CAAC,EAAG,OAAQ,OAAQ+nH,OAAmB3oD,MAAO,CAAC,EAAG,QAAS,QAAS2oD,OAAmBM,SAAU,WAAYlpD,SAAU,CAAC,EAAG,WAAY,WAAY4oD,OAAmB1oD,KAAM,CAAC,EAAG,OAAQ,OAAQ0oD,OAAmByH,SAAU,CAAC,EAAG,WAAY,WAAYa,OAAkBv1G,KAAM,OAAQ20G,QAAS,UAAWlqF,MAAO,QAAS6oC,WAAY,aAAcshD,WAAY,aAAc5C,cAAe,gBAAiBvD,UAAW,YAAa/B,UAAW,CAAC,EAAG,YAAa,YAAaO,OAAmBoD,MAAO,CAAC,EAAG,QAAS,QAASpD,OAAmBoG,YAAa,eAAiBnhH,QAAS,CAAEJ,QAAS,UAAW0qG,QAAS,UAAWC,OAAQ,UAAYuE,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACisH,KAAejsH,MAA6BA,MAA+BA,MAAyBA,OAAyBqvE,mBAAoB+8C,GAAKt+G,MAAO,EAAGC,KAAM,GAAIC,OAAQ,CAAC,CAAC,UAAW,GAAI,EAAG,QAAS,QAAS,OAAQ,UAAW,WAAY,UAAW,cAAe,CAAC,EAAG,oBAAqB,CAAC,EAAG,QAAS,CAAC,QAAS,iBAAkB,EAAG,QAAS,CAAC,EAAG,QAAS,WAAY,EAAG,QAAS,CAAC,EAAG,mBAAoB,2BAA4B,CAAC,EAAG,UAAW,EAAG,QAAS,CAAC,EAAG,aAAc,OAAQ,EAAG,QAAS,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,UAAW,EAAG,QAAS,CAAC,EAAG,kBAAmB,CAAC,EAAG,QAAS,aAAcC,SAAU,SAAyBC,EAAIC,GAAgB,EAALD,IAC5rDlO,QACAA,MAAkB,EAAG,SAAU,GAC/BA,MAAc,QAAS,SAAiDkU,GAAU,OAAO/F,EAAIV,QAAQC,KAAKwG,EAAS,EAAnHlU,CAAsH,QAAS,SAAiDkU,GAAU,OAAO/F,EAAIgqG,QAAQzqG,KAAKwG,EAAS,EAA3NlU,CAA8N,OAAQ,SAAgDkU,GAAU,OAAO/F,EAAIiqG,OAAO1qG,KAAKwG,EAAS,GAChUlU,MAAgB,GAChBA,MAAc,EAAGwsH,GAAgC,EAAG,EAAG,eAAgB,EAAvExsH,CAA0E,EAAGktH,GAAgC,EAAG,EAAG,eAAgB,EAAnIltH,CAAsI,EAAGwtH,GAAgC,EAAG,EAAG,eAAgB,EAA/LxtH,CAAkM,EAAGytH,GAAwB,EAAG,EAAG,OAAQ,EAA3OztH,CAA8O,EAAG0tH,GAA2B,EAAG,EAAG,UAAW,GAC7R1tH,SACO,EAALkO,IACFlO,MAAc,UAAWmO,EAAIi4B,MAA7BpmC,CAAoC,WAAYmO,EAAIiB,UAAYjB,EAAIupG,QAApE13G,CAA6E,UAAWmO,EAAI2iH,YAA5F9wH,CAAyG,aAAcmO,EAAIk6G,WAC3HroH,MAAe,OAAQmO,EAAI9R,KAA3B2D,CAAiC,aAAcmO,EAAIi8G,UAAnDpqH,CAA8D,eAAgB,SAA9EA,CAAwF,kBAAmB,OAA3GA,CAAmH,WAAYmO,EAAIkiH,UACnIrwH,MAAa,GACbA,MAAc,mBAAoBmO,EAAIqiH,iBAAmBriH,EAAIuiH,kBAC7D1wH,QACAA,MAAc,OAAQmO,EAAIupG,SAC1B13G,QACAA,MAAc,QAASmO,EAAIupG,SAC3B13G,QACAA,MAAc,QAASmO,EAAIqiH,kBAAoBriH,EAAIuiH,kBAAoBviH,EAAInB,OAC3EhN,QACAA,MAAc,QAASmO,EAAIqiH,kBAAoBriH,EAAIuiH,kBAAoBviH,EAAI6wD,OAC7E,EAAG2qD,aAAc,CAACxxF,MAAcl4B,MAAYA,MAASA,MAAqBA,MAAY+qH,GAAQ5C,GAAWuC,GAAab,GAAa5pH,GAAUi6B,OAAeyvF,cAAe,EAAGC,gBAAiB,IACxM,OA9RKuG,CAAM,KA6ZNe,GAAY,MAAlB,MAAMA,EACFnY,iBAAc,SAA8BvhF,GAAqB,OAAO,IAAKA,GAAqB05F,EAAiB,EACnHnY,iBAA4Bh5G,KAAoB,CAAE3D,KAAM80H,IACxDnY,iBAA4Bh5G,MAAoB,CAAE43B,QAAS,CAACO,MAAci4F,GAAQj2F,MAAcA,SACnG,OAJKg3F,CAAY,KC1kDZC,GAAe,MAArB,MAAMA,UAAwBnH,GAC1BjR,iBAA6B,MAAQ,IAAIqY,EAA8B,OAAO,SAAiC55F,GAAqB,OAAQ45F,IAAiCA,EAA+BrxH,MAAyBoxH,KAAmB35F,GAAqB25F,EAAkB,CAAG,EAArQ,GAC7BpY,iBAA4Bh5G,MAAqB,CAAE3D,KAAM+0H,EAAiBzjH,UAAW,CAAC,CAAC,oBAAqBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,0oBAA2oB,OAAQ,iBAAkBC,SAAU,SAAkCC,EAAIC,GAAgB,EAALD,IAC3iClO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXKwH,CAAe,KCAfE,GAAgB,MAAtB,MAAMA,UAAyBrH,GAC3BjR,iBAA6B,MAAQ,IAAIuY,EAA+B,OAAO,SAAkC95F,GAAqB,OAAQ85F,IAAkCA,EAAgCvxH,MAAyBsxH,KAAoB75F,GAAqB65F,EAAmB,CAAG,EAA3Q,GAC7BtY,iBAA4Bh5G,MAAqB,CAAE3D,KAAMi1H,EAAkB3jH,UAAW,CAAC,CAAC,qBAAsBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,yoBAA0oB,OAAQ,iBAAkBC,SAAU,SAAmCC,EAAIC,GAAgB,EAALD,IAC7iClO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXK0H,CAAgB,KCAhBE,GAAa,MAAnB,MAAMA,UAAsBvH,GACxBjR,iBAA6B,MAAQ,IAAIyY,EAA4B,OAAO,SAA+Bh6F,GAAqB,OAAQg6F,IAA+BA,EAA6BzxH,MAAyBwxH,KAAiB/5F,GAAqB+5F,EAAgB,CAAG,EAAzP,GAC7BxY,iBAA4Bh5G,MAAqB,CAAE3D,KAAMm1H,EAAe7jH,UAAW,CAAC,CAAC,kBAAmBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,0kBAA2kB,OAAQ,iBAAkBC,SAAU,SAAgCC,EAAIC,GAAgB,EAALD,IACr+BlO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXK4H,CAAa,KCAbE,GAAe,MAArB,MAAMA,UAAwBzH,GAC1BjR,iBAA6B,MAAQ,IAAI2Y,EAA8B,OAAO,SAAiCl6F,GAAqB,OAAQk6F,IAAiCA,EAA+B3xH,MAAyB0xH,KAAmBj6F,GAAqBi6F,EAAkB,CAAG,EAArQ,GAC7B1Y,iBAA4Bh5G,MAAqB,CAAE3D,KAAMq1H,EAAiB/jH,UAAW,CAAC,CAAC,oBAAqBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,4oBAA6oB,OAAQ,iBAAkBC,SAAU,SAAkCC,EAAIC,GAAgB,EAALD,IAC7iClO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXK8H,CAAe,KCAfE,GAAS,MAAf,MAAMA,UAAkB3H,GACpBjR,iBAA6B,MAAQ,IAAI6Y,EAAwB,OAAO,SAA2Bp6F,GAAqB,OAAQo6F,IAA2BA,EAAyB7xH,MAAyB4xH,KAAan6F,GAAqBm6F,EAAY,CAAG,EAAjO,GAC7B5Y,iBAA4Bh5G,MAAqB,CAAE3D,KAAMu1H,EAAWjkH,UAAW,CAAC,CAAC,cAAegvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,qhCAAshC,OAAQ,iBAAkBC,SAAU,SAA4BC,EAAIC,GAAgB,EAALD,IACp6ClO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXKgI,CAAS,KCATE,GAAY,MAAlB,MAAMA,UAAqB7H,GACvBjR,iBAA6B,MAAQ,IAAI+Y,EAA2B,OAAO,SAA8Bt6F,GAAqB,OAAQs6F,IAA8BA,EAA4B/xH,MAAyB8xH,KAAgBr6F,GAAqBq6F,EAAe,CAAG,EAAnP,GAC7B9Y,iBAA4Bh5G,MAAqB,CAAE3D,KAAMy1H,EAAcnkH,UAAW,CAAC,CAAC,iBAAkBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,2sDAA4sD,OAAQ,iBAAkBC,SAAU,SAA+BC,EAAIC,GAAgB,EAALD,IACnmElO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXKkI,CAAY,KCGlB,MAAMhJ,GAAQA,EAAG9O,QAAS,sHAKbA,EAAG,wCACEA,EAAG,gDACAA,EAAG,gDACFA,EAAG,kDACDA,EAAG,0DACEA,EAAG,2CAA2CA,EAAG,kDAAkDA,EAAG,mDAAmDA,EAAG,gDAAgDA,EAAG,gFAEvNA,EAAG,iFAENA,EAAG,oFAIDA,EAAG,4FAIHA,EAAG,0FAIHA,EAAG,qDACLA,EAAG,iDACNA,EAAG,iCAAiCA,EAAG,iCAAiCA,EAAG,uDACpEA,EAAG,qFAILA,EAAG,6FAILA,EAAG,wGAIHA,EAAG,yGAKHA,EAAG,iDACRA,EAAG,8EAIHA,EAAG,qGAIHA,EAAG,mFAICA,EAAG,kDACCA,EAAG,mDACFA,EAAG,sEAIRA,EAAG,kDACCA,EAAG,mDACFA,EAAG,+EAOnBtrG,GAAU,CACZi6C,KAAMA,EAAG8xD,WAAU5sD,WAAY,CAC3B,0BACA,CACI,WAAY4sD,EAASuX,OACrB,iBAAiC,UAAfnkE,EAAMlyC,KACxB,iBAAiC,UAAfkyC,EAAMlyC,KACxB,YAAakyC,EAAMokE,QACnB,mBAAsC,WAAlBpkE,EAAMyiE,QAC1B,oBAAqBziE,EAAMm+D,SAGrC,IACIkG,GAAc,MAApB,MAAMA,UAAuBnZ,KACzBp9G,KAAO,YACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAImZ,EAA6B,OAAO,SAAgC16F,GAAqB,OAAQ06F,IAAgCA,EAA8BnyH,MAAyBkyH,KAAkBz6F,GAAqBy6F,EAAiB,CAAG,EAA/P,GAC7BlZ,kBAA6Bh5G,MAAsB,CAAE0e,MAAOwzG,EAAgB1xH,QAAS0xH,EAAezxH,YACvG,OANKyxH,CAAc,KA+BdE,GAAS,MAAf,MAAMA,UAAkB9lH,GACpB+lH,QAKA/B,QAAU,WAKVtE,MAKAsG,MACAN,OACA3X,mBAAkBnB,OAAOgZ,IACzB,YAAIzC,GAEA,MAAMC,EADgBr2H,KAAKg7D,GAAGya,cACO6gD,QAAQ,WAC7C,SAAO9+E,OAAQx3C,KAAK2yH,SAAW0D,EAAiBr2H,KAAK2yH,KACzD,CACA7yH,YAAYk5H,GACR74H,QACAH,KAAKg5H,QAAUA,CACnB,CACAnsB,kBACI1sG,MAAM0sG,kBACN7sG,KAAKk5H,oBACLl5H,KAAKmgH,GAAGgZ,eACZ,CACAC,YACIp5H,KAAKk5H,mBACT,CACAG,UACIr5H,KAAKk5H,mBACT,CACAA,oBACIl5H,KAAK24H,OAAU34H,KAAKg7D,GAAGya,cAAc/iE,OAAS1S,KAAKg7D,GAAGya,cAAc/iE,MAAMrH,QAAYrL,KAAKg5H,SAAWh5H,KAAKg5H,QAAQ/qG,KACvH,CACA0xF,iBAAc,SAA2BvhF,GAAqB,OAAO,IAAKA,GAAqB26F,GAAWpyH,MAAqBC,MAAY,GAAK,EAChJ+4G,iBAA4Bh5G,MAAqB,CAAE3D,KAAM+1H,EAAWzkH,UAAW,CAAC,CAAC,GAAI,aAAc,KAAM+8G,UAAW,CAAC,EAAG,cAAe,eAAgBhB,SAAU,GAAIz1G,aAAc,SAAgC/F,EAAIC,GAAgB,EAALD,GAC1NlO,MAAc,QAAS,SAA4CkU,GAAU,OAAO/F,EAAIukH,QAAQx+G,EAAS,GAClG,EAALhG,GACFlO,MAAe,WAAYmO,EAAI6jH,OAA/BhyH,CAAuC,mBAAoC,WAAhBmO,EAAImiH,SAAoD,WAA5BniH,EAAIqE,OAAOmgH,cAA2D,WAA9BxkH,EAAIqE,OAAOogH,eAA1I5yH,CAAuK,oBAAqBmO,EAAIshH,SAAhMzvH,CAA0M,iBAAgC,UAAdmO,EAAImkH,MAAhOtyH,CAAmP,kBAAiC,UAAdmO,EAAImkH,MAA1QtyH,CAA6R,iBAAgC,UAAdmO,EAAImkH,MAAnTtyH,CAAsU,kBAAiC,UAAdmO,EAAImkH,MAC/V,EAAG1kH,OAAQ,CAAE0iH,QAAS,UAAWtE,MAAO,CAAC,EAAG,QAAS,QAASpD,OAAmB0J,MAAO,SAAW3V,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACkyH,KAAkBlyH,MAA6BA,SAC/M,OAhDKoyH,CAAS,KAgFTS,GAAe,MAArB,MAAMA,EACF7Z,iBAAc,SAAiCvhF,GAAqB,OAAO,IAAKA,GAAqBo7F,EAAoB,EACzH7Z,iBAA4Bh5G,KAAoB,CAAE3D,KAAMw2H,IACxD7Z,iBAA4Bh5G,MAAoB,CAAC,GACpD,OAJK6yH,CAAe,KC7MrB,MAAMC,GACF,cAAO/7G,CAAQhL,EAAOk5G,GAAQ,GAC1B,OAAOnuG,MAAMC,QAAQhL,KAAWk5G,GAA0B,IAAjBl5G,EAAMrH,OACnD,CACA,eAAOquH,CAAShnH,EAAOk5G,GAAQ,GAC3B,MAAwB,iBAAVl5G,IAAuB+K,MAAMC,QAAQhL,IAAmB,MAATA,IAAkBk5G,GAAuC,IAA9BrqH,OAAO2I,KAAKwI,GAAOrH,OAC/G,CACA,aAAOsuH,CAAOC,EAAMC,EAAMC,GACtB,OAAIA,EACO95H,KAAK+5H,iBAAiBH,EAAME,KAAW95H,KAAK+5H,iBAAiBF,EAAMC,GAEnE95H,KAAKg6H,cAAcJ,EAAMC,EACxC,CACA,oBAAOG,CAAcJ,EAAMC,GACvB,GAAID,IAASC,EACT,OAAO,EACX,GAAID,GAAQC,GAAuB,iBAARD,GAAmC,iBAARC,EAAkB,CACpE,IAA4DzuH,EAAGC,EAAQ4S,EAAnEg8G,EAAOx8G,MAAMC,QAAQk8G,GAAOM,EAAOz8G,MAAMC,QAAQm8G,GACrD,GAAII,GAAQC,EAAM,CAEd,IADA7uH,EAASuuH,EAAKvuH,SACAwuH,EAAKxuH,OACf,OAAO,EACX,IAAKD,EAAIC,EAAgB,GAARD,KACb,IAAKpL,KAAKg6H,cAAcJ,EAAKxuH,GAAIyuH,EAAKzuH,IAClC,OAAO,EACf,OAAO,CACX,CACA,GAAI6uH,GAAQC,EACR,OAAO,EACX,IAAIC,EAAQn6H,KAAK6S,OAAO+mH,GAAOQ,EAAQp6H,KAAK6S,OAAOgnH,GACnD,GAAIM,GAASC,EACT,OAAO,EACX,GAAID,GAASC,EACT,OAAOR,EAAKnuG,WAAaouG,EAAKpuG,UAClC,IAAI4uG,EAAUT,aAAgB7pF,OAAQuqF,EAAUT,aAAgB9pF,OAChE,GAAIsqF,GAAWC,EACX,OAAO,EACX,GAAID,GAAWC,EACX,OAAOV,EAAK9mH,YAAc+mH,EAAK/mH,WACnC,IAAI5I,EAAO3I,OAAO2I,KAAK0vH,GAEvB,IADAvuH,EAASnB,EAAKmB,UACC9J,OAAO2I,KAAK2vH,GAAMxuH,OAC7B,OAAO,EACX,IAAKD,EAAIC,EAAgB,GAARD,KACb,IAAK7J,OAAO0rG,UAAUt+D,eAAe4lE,KAAKslB,EAAM3vH,EAAKkB,IACjD,OAAO,EACf,IAAKA,EAAIC,EAAgB,GAARD,KAEb,IAAKpL,KAAKg6H,cAAcJ,EADxB37G,EAAM/T,EAAKkB,IACwByuH,EAAK57G,IACpC,OAAO,EAEf,OAAO,CACX,CACA,OAAO27G,GAASA,GAAQC,GAASA,CACrC,CACA,uBAAOE,CAAiBjxH,EAAMgxH,GAC1B,GAAIhxH,GAAQgxH,EAAO,CACf,GAAI95H,KAAKu6H,WAAWT,GAChB,OAAOA,EAAMhxH,GAEZ,IAA0B,GAAtBgxH,EAAMx1H,QAAQ,KACnB,OAAOwE,EAAKgxH,GAEX,CACD,IAAIU,EAASV,EAAM3uH,MAAM,KACrBuH,EAAQ5J,EACZ,QAASsC,EAAI,EAAG0xF,EAAM09B,EAAOnvH,OAAQD,EAAI0xF,IAAO1xF,EAAG,CAC/C,GAAa,MAATsH,EACA,OAAO,KAEXA,EAAQA,EAAM8nH,EAAOpvH,GACzB,CACA,OAAOsH,CACX,CACJ,CAEI,OAAO,IAEf,CACA,iBAAO6nH,CAAWr6H,GACd,SAAUA,GAAOA,EAAIJ,aAAeI,EAAIq0G,MAAQr0G,EAAIurH,MACxD,CACA,mBAAOgP,CAAa/nH,EAAOuK,EAAME,GAEzBzK,GAASuK,IAASE,IACdA,GAAMzK,EAAMrH,SACZ8R,GAAMzK,EAAMrH,OACZ4R,GAAQvK,EAAMrH,QAElBqH,EAAMy8B,OAAOhyB,EAAI,EAAGzK,EAAMy8B,OAAOlyB,EAAM,GAAG,IAElD,CACA,6BAAOy9G,CAAuB7oH,EAAM8iB,EAAOy2D,EAAKuvC,GAC5C,GAAIvvC,EAAI//E,OAAS,EAAG,CAChB,IAAIuvH,GAAW,EACf,QAASxvH,EAAI,EAAGA,EAAIggF,EAAI//E,OAAQD,IAE5B,GADuBpL,KAAK66H,gBAAgBzvC,EAAIhgF,GAAIuvH,GAC7BhmG,EAAO,CAC1By2D,EAAIj8C,OAAO/jC,EAAG,EAAGyG,GACjB+oH,GAAW,EACX,KACJ,CAECA,GACDxvC,EAAI/3E,KAAKxB,EAEjB,MAEIu5E,EAAI/3E,KAAKxB,EAEjB,CACA,sBAAOgpH,CAAgBhpH,EAAM+J,GACzB,IAAI+Y,GAAQ,EACZ,GAAI/Y,EACA,QAASxQ,EAAI,EAAGA,EAAIwQ,EAAKvQ,OAAQD,IAC7B,GAAIwQ,EAAKxQ,IAAMyG,EAAM,CACjB8iB,EAAQvpB,EACR,KACJ,CAGR,OAAOupB,CACX,CACA,eAAOy5B,CAAS17C,EAAOkJ,GACnB,GAAa,MAATlJ,GAAiBkJ,GAAQA,EAAKvQ,OAC9B,QAASikB,KAAO1T,EACZ,GAAI5b,KAAK25H,OAAOjnH,EAAO4c,GACnB,OAAO,EAGnB,OAAO,CACX,CACA,oBAAOwrG,CAAcxqF,GACjB,OAAIA,IACAA,EAAMA,EAAIyqF,UAAU,QAAQt3G,QAAQ,IAAAssB,OAAA,uBAAmB,KAEpDO,CACX,CACA,aAAOz9B,CAAO89B,GACV,MAAiD,kBAA1CpvC,OAAO0rG,UAAUn6F,SAASyhG,KAAK5jE,EAC1C,CACA,cAAO6G,CAAQ9kC,GACX,OAAiB,MAAVA,GAAmD,KAAVA,GAAiB+K,MAAMC,QAAQhL,IAA2B,IAAjBA,EAAMrH,SAAmBrL,KAAK6S,OAAOH,IAA2B,iBAAVA,GAAoD,IAA9BnR,OAAO2I,KAAKwI,GAAOrH,MAC5L,CACA,iBAAOqkH,CAAWh9G,GACd,OAAQ1S,KAAKw3C,QAAQ9kC,EACzB,CACA,cAAOsoH,CAAQC,EAAQC,EAAQ3lG,EAAQ4lG,EAAQ,GAC3C,IAAI91H,GAAS,EACb,MAAM+1H,EAAcp7H,KAAKw3C,QAAQyjF,GAC3BI,EAAcr7H,KAAKw3C,QAAQ0jF,GACjC,OACI71H,EADA+1H,GAAeC,EACN,EACJD,EACID,EACJE,GACKF,EACa,iBAAXF,GAAyC,iBAAXC,EACjCD,EAAOxyG,cAAcyyG,EAAQ3lG,EAAQ,CAAE+lG,SAAS,IAEhDL,EAASC,GAAS,EAAKD,EAASC,EAAS,EAAI,EACnD71H,CACX,CACA,WAAOijB,CAAK2yG,EAAQC,EAAQC,EAAQ,EAAG5lG,EAAQgmG,EAAgB,GAC3D,MAAMl2H,EAASo0H,GAAYuB,QAAQC,EAAQC,EAAQ3lG,EAAQ4lG,GAC3D,IAAIK,EAAiBL,EAErB,OAAI1B,GAAYjiF,QAAQyjF,IAAWxB,GAAYjiF,QAAQ0jF,MACnDM,EAAmC,IAAlBD,EAAsBJ,EAAQI,GAE5CC,EAAiBn2H,CAC5B,CACA,YAAOo2H,CAAM7B,EAAMC,GACf,GAAYv4H,MAARs4H,GAA6Bt4H,MAARu4H,EAGpB,OAAav4H,MAARs4H,GAAqC,iBAATA,GAA+Bt4H,MAARu4H,GAAqC,iBAATA,EAGvEv4H,MAARs4H,GAAqC,iBAATA,GAA+Bt4H,MAARu4H,GAAqC,iBAATA,EAGlFA,GAAQD,EAFJ,CAACA,GAAQ,GAAIC,GAAQ,IAAIxsG,KAAK,KAH9B,IAAMusG,GAAQ,CAAC,KAAQC,GAAQ,CAAC,EAM/C,CACA,2BAAO6B,CAAqBC,EAAO,IAC/B,OAAO37H,KAAK0vH,WAAWiM,IAAyB,IAAhBA,EAAKtwH,QAAgBswH,EAAKtrG,MAAM,OACpE,CACA,mBAAOurG,CAAa17H,KAAQ+vC,GACxB,OAAOjwC,KAAKu6H,WAAWr6H,GAAOA,KAAO+vC,GAAU/vC,CACnD,CACA,oBAAO27H,CAAczwC,EAAK3gD,GACtB,IAAI9V,GAAQ,EACZ,GAAI30B,KAAK0vH,WAAWtkC,GAChB,IACIz2D,EAAQy2D,EAAIywC,cAAcpxF,EAC9B,OAEI9V,EAAQy2D,EAAI0wC,YAAY,IAAI1wC,GAAKkiC,UAAU1rH,KAAK6oC,GACpD,CAEJ,OAAO9V,CACX,CACA,eAAOonG,CAAS3wC,EAAK3gD,GACjB,IAAI54B,EACJ,GAAI7R,KAAK0vH,WAAWtkC,GAChB,IACIv5E,EAAOu5E,EAAI2wC,SAAStxF,EACxB,OAEI54B,EAAO,IAAIu5E,GAAKkiC,UAAU1rH,KAAK6oC,EACnC,CAEJ,OAAO54B,CACX,CACA,iBAAOmqH,CAAWzzG,EAAGC,GACjB,GAAID,IAAMC,EACN,OAAO,EACX,GAAID,GAAKC,GAAiB,iBAALD,GAA6B,iBAALC,EAAe,CACxD,IAAsDpd,EAAGC,EAAQ4S,EAA7Dg8G,EAAOx8G,MAAMC,QAAQ6K,GAAI2xG,EAAOz8G,MAAMC,QAAQ8K,GAClD,GAAIyxG,GAAQC,EAAM,CAEd,IADA7uH,EAASkd,EAAEld,SACGmd,EAAEnd,OACZ,OAAO,EACX,IAAKD,EAAIC,EAAgB,GAARD,KACb,IAAKpL,KAAKg8H,WAAWzzG,EAAEnd,GAAIod,EAAEpd,IACzB,OAAO,EACf,OAAO,CACX,CACA,GAAI6uH,GAAQC,EACR,OAAO,EACX,IAAIC,EAAQ5xG,aAAa3gB,KAAMwyH,EAAQ5xG,aAAa5gB,KACpD,GAAIuyH,GAASC,EACT,OAAO,EACX,GAAID,GAASC,EACT,OAAO7xG,EAAEkD,WAAajD,EAAEiD,UAC5B,IAAI4uG,EAAU9xG,aAAawnB,OAAQuqF,EAAU9xG,aAAaunB,OAC1D,GAAIsqF,GAAWC,EACX,OAAO,EACX,GAAID,GAAWC,EACX,OAAO/xG,EAAEzV,YAAc0V,EAAE1V,WAC7B,IAAI5I,EAAO3I,OAAO2I,KAAKqe,GAEvB,IADAld,EAASnB,EAAKmB,UACC9J,OAAO2I,KAAKse,GAAGnd,OAC1B,OAAO,EACX,IAAKD,EAAIC,EAAgB,GAARD,KACb,IAAK7J,OAAO0rG,UAAUt+D,eAAe4lE,KAAK/rF,EAAGte,EAAKkB,IAC9C,OAAO,EACf,IAAKA,EAAIC,EAAgB,GAARD,KAEb,IAAKpL,KAAKg8H,WAAWzzG,EADrBtK,EAAM/T,EAAKkB,IACkBod,EAAEvK,IAC3B,OAAO,EAEf,OAAO,CACX,CACA,OAAOsK,GAAMA,GAAKC,GAAMA,CAC5B,CACA,gBAAOyzG,CAAUzZ,GACb,OAAOA,GACDA,EACG/+F,QAAQ,yCAA0C,IAClDA,QAAQ,SAAU,KAClBA,QAAQ,aAAc,MACtBA,QAAQ,WAAY,MACpBA,QAAQ,MAAO,KACfA,QAAQ,MAAO,IAE5B,CACA,iBAAOy4G,CAAW5rF,GAEd,OAAOtwC,KAAKm8H,SAAS7rF,GAAOA,EAAI7sB,QAAQ,SAAU,IAAItD,cAAgBmwB,CAC1E,CACA,eAAO6rF,CAASzpH,EAAOk5G,GAAQ,GAC3B,MAAwB,iBAAVl5G,IAAuBk5G,GAAmB,KAAVl5G,EAClD,EAGJ,IAAI0pH,GAAS,EAuCb,IAAIC,GAjCJ,SAASC,KACL,IAAIC,EAAW,GACf,MAYMC,EAAaxhE,GACRA,GAAKzrC,SAASyrC,EAAGjuB,MAAM0vF,OAAQ,KAAO,EAEjD,MAAO,CACHz2H,IAAKw2H,EACL53H,IAAKA,CAACqZ,EAAK+8C,EAAI0hE,KACP1hE,IACAA,EAAGjuB,MAAM0vF,OAAS9wG,OAnBP8hG,EAACxvG,EAAKy+G,KACzB,IAAIC,EAAaJ,EAASlxH,OAAS,EAAIkxH,EAASA,EAASlxH,OAAS,GAAK,CAAE4S,MAAKvL,MAAOgqH,GACjFE,EAAYD,EAAWjqH,OAASiqH,EAAW1+G,MAAQA,EAAM,EAAIy+G,GAAc,EAC/EH,SAASlpH,KAAK,CAAE4K,MAAKvL,MAAOkqH,IACrBA,GAe0BnP,CAAexvG,EAAKy+G,IAAW,EAGhE72G,MAAQm1C,IACAA,IAjBUyhE,KAClBF,EAAWA,EAAStuH,OAAQ/N,GAAQA,EAAIwS,QAAU+pH,EAAM,EAiBhDI,CAAaL,EAAUxhE,IACvBA,EAAGjuB,MAAM0vF,OAAS,KAG1BK,WAAYA,IAlBLP,EAASlxH,OAAS,EAAIkxH,EAASA,EAASlxH,OAAS,GAAGqH,MAAQ,EAoB3E,CACkB4pH,GAElB,MAAMS,GAAsBrqH,KACfA,EC3SP+8G,GAAQA,EAAG9O,QAAS,kgBAyBbA,EAAG,+DACeA,EAAG,qEACLA,EAAG,0DACdA,EAAG,6DACGA,EAAG,sFAEdA,EAAG,6DACaA,EAAG,4CAA4CA,EAAG,mDAAmDA,EAAG,oDAAoDA,EAAG,4IAK1KA,EAAG,+DACDA,EAAG,0DACVA,EAAG,6GAIEA,EAAG,gEACDA,EAAG,2DACVA,EAAG,sGAIEA,EAAG,2DACNA,EAAG,2CAA2CA,EAAG,2CAA2CA,EAAG,iEACxFA,EAAG,qPAQOA,EAAG,kCAAkCA,EAAG,kJAOhDA,EAAG,wDACEA,EAAG,mCACnBA,EAAG,oSAkBDA,EAAG,iDACAA,EAAG,+CACRA,EAAG,qDACQA,EAAG,yDACNA,EAAG,uDACNA,EAAG,0QAaNA,EAAG,kDACAA,EAAG,gDACRA,EAAG,6DACeA,EAAG,qTAevBA,EAAG,8CACKA,EAAG,iPAUOA,EAAG,4CAA4CA,EAAG,mDAAmDA,EAAG,oDAAoDA,EAAG,iDAAiDA,EAAG,uFAIjOA,EAAG,mDACLA,EAAG,yDACKA,EAAG,6FAITA,EAAG,kDACLA,EAAG,wDACKA,EAAG,8GAINA,EAAG,4DACRA,EAAG,4GAIEA,EAAG,2DACRA,EAAG,gOASqBA,EAAG,0DAClBA,EAAG,mYAgBXA,EAAG,mFAIFA,EAAG,mFAICA,EAAG,mDACTA,EAAG,8EAIDA,EAAG,4OAWLA,EAAG,0CACFA,EAAG,kDACIA,EAAG,iEACKA,EAAG,4CAA4CA,EAAG,mDAAmDA,EAAG,0DAChHA,EAAG,oDAAoDA,EAAG,uHAGlEA,EAAG,+HAIEA,EAAG,oDACRA,EAAG,4FAIEA,EAAG,uDACNA,EAAG,uCAAuCA,EAAG,uCAAuCA,EAAG,6DAChFA,EAAG,6FAIPA,EAAG,uDACRA,EAAG,gGAIEA,EAAG,6DACRA,EAAG,6GAIEA,EAAG,+CACRA,EAAG,wGAIEA,EAAG,uDACRA,EAAG,sHAIEA,EAAG,6DACRA,EAAG,mJAQFA,EAAG,0PAWFA,EAAG,4DACWA,EAAG,4CAA4CA,EAAG,mDAAmDA,EAAG,iDAAiDA,EAAG,oDAAoDA,EAAG,0DAC3NA,EAAG,mFAEXA,EAAG,+HAIFA,EAAG,oDACCA,EAAG,yFAIRA,EAAG,uDACEA,EAAG,uHAIHA,EAAG,uDACNA,EAAG,uCAAuCA,EAAG,uCAAuCA,EAAG,6DAChFA,EAAG,sFAIXA,EAAG,sPAWFA,EAAG,2DACWA,EAAG,4CAA4CA,EAAG,mDAAmDA,EAAG,iDAAiDA,EAAG,oDAAoDA,EAAG,0DAC3NA,EAAG,kFAEXA,EAAG,4HAIHA,EAAG,oDACEA,EAAG,wFAIRA,EAAG,uDACEA,EAAG,sHAIHA,EAAG,uDACNA,EAAG,uCAAuCA,EAAG,uCAAuCA,EAAG,6DAChFA,EAAG,2KAOTA,EAAG,+DACSA,EAAG,8OAWHA,EAAG,sEAEpBA,EAAG,qHAICA,EAAG,mKAOPA,EAAG,2XAgBDA,EAAG,4LAKCA,EAAG,2CACPA,EAAG,4CACFA,EAAG,6GAIJA,EAAG,4LAKCA,EAAG,2CACPA,EAAG,4CACFA,EAAG,uJAMGA,EAAG,2IAIHA,EAAG,0CAGjB0C,GAAe,CACjB/zD,KAAMA,EAAGkF,YAAM,CAASoZ,SAA6B,SAAnBpZ,EAAM8vD,SAAsB,gBAAahjH,KAEzE+T,GAAU,CACZi6C,KAAMA,EAAG8xD,eAAS,CACd,2CAA2C,EAC3C,qBAAsBA,EAASgV,SAC/B,wBAAyBhV,EAASuX,OAClC,uBAAwBvX,EAASvC,MACjC,UAAWuC,EAASvC,OAASuC,EAAS4b,iBAE1CC,QAAS,qBACT33D,SAAU,wBACV43D,mBAAoB,oCACpBn2D,UAAW,0BACXpC,MAAOA,EAAGy8C,eAAS,CACf,kCAAkC,EAClC,4BAA6BA,EAAS+b,OACtC,aAAc/b,EAASrrG,SACvB,wBAAyBqrG,EAASgc,WAEtCC,kBAAmB,kCACnBC,SAAU,wBACV77D,OAAQ,sBACR87D,aAAc,2BACd91H,MAAO,qBACPu/D,YAAa,4BACbC,WAAY,2BACZu2D,OAAQ,sBACRC,aAAc,2BACdv2D,QAAS,wBACTw2D,WAAY,qCACZC,WAAY,0BACZC,mBAAoB,8CACpBC,YAAa,4BACbz2D,QAAS,uBACT02D,QAASA,EAAG7yG,UAAW,CACnB,wBACA,CACI,2BAA4BA,EAAK8yG,WACjC,qBAAsB9yG,EAAKgH,QAGnCjG,IAAKA,EAAGo1F,WAAUn2F,WACd,IAAI+yG,EAAmB,GACvB,OAAI5c,EAAS6c,oBAAsB7c,EAAS3qG,WAAWwU,IAASA,EAAKizG,aACjEF,EAAmB/yG,EAAKe,MAAQo1F,EAAS1uG,MAAM,GAAGwZ,WAAajB,EAAKe,MAAQo1F,EAAS1uG,MAAM,GAAGwZ,UAAY,4BAA8B,mCAErI,CACH,oBAAoB,EACpB,6BAA8Bk1F,EAAS6c,oBAAsB7c,EAAS3qG,WAAWwU,IAASA,EAAKizG,WAC/F,aAAc9c,EAASrrG,WAAakV,EAAKizG,WACzCpoG,CAACkoG,IAAmB,EACxB,EAEJz2D,UAAW,0BACXr4D,MAAOA,EAAGkyG,WAAU5sD,QAAOtlD,QAAOylB,WAAY,CAC1C,qBACA,CACI,8BAA+BysF,EAAS+c,gBAAgBxpG,GACxD,aAAc6/B,EAAMz+C,WAAa7G,EAAMgvH,aAG/C12D,SAAU,yBACVv4D,KAAMA,EAAGmyG,WAAU5sD,QAAOvlD,UAAW,CACjC,oBACA,CACI,6BAA8BmyG,EAASgd,eAAenvH,EAAKyD,OAC3D,aAAc8hD,EAAMz+C,WAAa9G,EAAKivH,aAG9Cx2D,WAAY,2BACZ22D,WAAY,2BACZC,kBAAmB,gCACnBC,kBAAmB,gCACnBzxG,UAAW,yBACX0xG,aAAc,6BACdC,aAAc,6BACdC,WAAY,2BACZj3D,UAAW,yBACXk3D,cAAe,4BACfC,cAAe,6BACjB,IACIC,GAAe,MAArB,MAAMA,UAAwBnf,KAC1Bp9G,KAAO,aACPmtH,MAAQA,GACRp6G,QAAUA,GACVguG,aAAeA,GACf1D,iBAA6B,MAAQ,IAAImf,EAA8B,OAAO,SAAiC1gG,GAAqB,OAAQ0gG,IAAiCA,EAA+Bn4H,MAAyBk4H,KAAmBzgG,GAAqBygG,EAAkB,CAAG,EAArQ,GAC7Blf,kBAA6Bh5G,MAAsB,CAAE0e,MAAOw5G,EAAiB13H,QAAS03H,EAAgBz3H,YACzG,OAPKy3H,CAAe,KAgLrB,MAAM5pH,GAAM,CAAC,QACPgC,GAAM,CAAC,UACP67G,GAAM,CAAC,UACPC,GAAM,CAAC,gBACPC,GAAM,CAAC,UACP+L,GAAM,CAAC,gBACPC,GAAM,CAAC,YACPC,GAAM,CAAC,eACPC,GAAM,CAAC,aACPC,GAAM,CAAC,iBACPC,GAAO,CAAC,iBACRC,GAAO,CAAC,aACRC,GAAO,CAAC,aACRC,GAAO,CAAC,cACRC,GAAO,CAAC,kBACRC,GAAO,CAAC,CAAC,CAAC,aAAc,CAAC,CAAC,cAC1BC,GAAO,CAAC,WAAY,YACpBC,GAAO1M,KAAS2M,cAAe3M,IAC/B4M,GAAO5M,KAAS,0BAA2BA,IAC3C6M,GAAOA,CAAC7M,EAAI8M,MAAUC,qBAAsB/M,EAAIgN,qBAAsBF,IACtEG,GAAOjN,KAASvgH,MAAO,UAAWu9B,OAAQgjF,IAC1CkN,GAAOlN,KAASjM,WAAYiM,IAC5BmN,GAAOnN,KAAS38G,UAAW28G,IAC3BoN,GAAOA,CAACpN,EAAI8M,MAAU,yBAAyB,EAAM,2BAA4B9M,EAAI,qBAAsB8M,IAC3GO,GAAOA,CAACrN,EAAI8M,MAAU,sBAAsB,EAAM,8BAA+B9M,EAAI,aAAc8M,IACnGQ,GAAOA,CAACtN,EAAI8M,MAAU,qBAAqB,EAAM,6BAA8B9M,EAAI,aAAc8M,IACvG,SAASS,GAA6D3rH,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACzF,MAAM6oE,EAAM/2E,QACZA,MAAkB,EAAG,YAAa,IAClCA,MAAc,QAAS,WAAqGA,MAAiB+2E,GAAM,MAAMN,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOv3D,QAAU,GAC9Nlf,OACJ,CAAW,EAALkO,GACFlO,MAAc,0BAChB,CACF,SAAS85H,GAAwE5rH,EAAIC,GAAO,CAC5F,SAAS4rH,GAA0D7rH,EAAIC,GAAgB,EAALD,GAC9ElO,MAAc,EAAG85H,GAAyE,EAAG,EAAG,cAClG,CACF,SAASE,GAAwD9rH,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACpF,MAAMmC,EAAMrQ,QACZA,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,QAAS,WAA2FA,MAAiBqQ,GAAM,MAAMomE,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOv3D,QAAU,GACpNlf,MAAc,EAAG+5H,GAA2D,EAAG,EAAG,KAAM,IACxF/5H,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAOwjD,mBAAqBxjD,EAAOyjD,mBACzE,CAAE,CACF,SAASC,GAAiDjsH,EAAIC,GAI5D,GAJ4E,EAALD,IACrElO,MAA2B,GAC3BA,MAAc,EAAG65H,GAA8D,EAAG,EAAG,YAAa,EAAlG75H,CAAqG,EAAGg6H,GAAyD,EAAG,EAAG,OAAQ,IAC/Kh6H,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,QAASy2E,EAAOwjD,oBAAsBxjD,EAAOyjD,oBAC3Dl6H,QACAA,MAAc,OAAQy2E,EAAOwjD,mBAAqBxjD,EAAOyjD,mBAC7D,CAAE,CACF,SAASE,GAAkDlsH,EAAIC,GAE7D,GAF6E,EAALD,GACtElO,MAAa,EAAG,OAAQ,IACjB,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAc,UAAWy2E,EAAO9Y,KACpC,CAAE,CACF,SAAS08D,GAAyEnsH,EAAIC,GAAgB,EAALD,GAC7FlO,MAAa,EAAG,eAClB,CACF,SAASs6H,GAA0EpsH,EAAIC,GAAO,CAC9F,SAASosH,GAA4DrsH,EAAIC,GAAgB,EAALD,GAChFlO,MAAc,EAAGs6H,GAA2E,EAAG,EAAG,cACpG,CACF,SAASE,GAA0DtsH,EAAIC,GAIrE,GAJqF,EAALD,IAC9ElO,MAA2B,GAC3BA,MAAc,EAAGq6H,GAA0E,EAAG,EAAG,eAAgB,EAAjHr6H,CAAoH,EAAGu6H,GAA6D,EAAG,EAAG,KAAM,IAChMv6H,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,QAASy2E,EAAOgkD,sBAAwBhkD,EAAOikD,sBAC7D16H,QACAA,MAAc,mBAAoBy2E,EAAOgkD,qBAAuBhkD,EAAOikD,qBAC3E,CAAE,CACF,SAASC,GAA2CzsH,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACvE,MAAMyoE,EAAM32E,QACZA,MAAkB,EAAG,SAAU,IAC/BA,MAAc,QAAS,SAA4EkU,GAAUlU,MAAiB22E,GAAM32E,QAAoB,MAAM46H,EAAgB56H,MAAe,GAAUy2E,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAOokD,cAAc3mH,EAAQ0mH,GAAiB,GACxS56H,MAAc,EAAGo6H,GAAmD,EAAG,EAAG,OAAQ,GAAlFp6H,CAAsF,EAAGw6H,GAA2D,EAAG,EAAG,eAAgB,GAC1Kx6H,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,IAAI4sH,EACJ,MAAMrkD,EAASz2E,MAAiB,GAChCA,MAAc,WAAYy2E,EAAOrnE,UACjCpP,MAAe,aAAcy2E,EAAOskD,oBAApC/6H,CAAyD,gBAAuD,QAArC86H,EAAUrkD,EAAO4/C,sBAAwC17H,IAAZmgI,GAAwBA,EAAhJ96H,CAAiK,gBAAiBy2E,EAAO4/C,eAAiB5/C,EAAOukD,QAAU,MAC3Nh7H,QACAA,MAAc,OAAQy2E,EAAO9Y,MAC7B39D,QACAA,MAAc,QAASy2E,EAAO9Y,KAClC,CAAE,CACF,SAASs9D,GAAgE/sH,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC5F,MAAMgtH,EAAMl7H,QACZA,MAAkB,EAAG,eAAgB,IACrCA,MAAc,QAAS,SAAuGkU,GAAUlU,MAAiBk7H,GAAM,MAAMzkD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOokD,cAAc3mH,GAAU,GACxPlU,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAc,UAAWA,MAAmB,EAAGk5H,GAAMziD,EAAO0kD,aAChE,CAAE,CACF,SAASC,GAAgEltH,EAAIC,GAAgB,EAALD,GACpFlO,MAAsB,EACxB,CACF,SAASq7H,GAAiDntH,EAAIC,GAM5D,GAN4E,EAALD,IACrElO,MAA2B,GAC3BA,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,EAAGi7H,GAAiE,EAAG,EAAG,eAAgB,GAAxGj7H,CAA4G,EAAGo7H,GAAiE,EAAG,EAAG,eAAgB,IACtMp7H,QACAA,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAa,GACbA,MAAc,QAASy2E,EAAO6kD,oBAAsB7kD,EAAO8kD,oBAC3Dv7H,QACAA,MAAc,mBAAoBy2E,EAAO6kD,mBAAqB7kD,EAAO8kD,mBAArEv7H,CAAyF,0BAA2BA,MAAmB,EAAGg5H,GAAMviD,EAAOokD,cAAc97B,KAAKtoB,IAC9K,CAAE,CACF,SAAS+kD,GAAkCttH,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC9D,MAAMsB,EAAMxP,QACZA,MAAkB,EAAG,QAAS,EAAG,GACjCA,MAAc,QAAS,SAAkEkU,GAAUlU,MAAiBwP,GAAM,MAAMinE,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAOglD,aAAavnH,GAAU,EAAjNlU,CAAoN,UAAW,SAAoEkU,GAAUlU,MAAiBwP,GAAM,MAAMinE,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAOilD,eAAexnH,GAAU,EAA7ZlU,CAAga,QAAS,WAAsEA,MAAiBwP,GAAM,MAAMinE,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAOklD,eAAiB,EAAvlB37H,CAA0lB,OAAQ,SAAiEkU,GAAUlU,MAAiBwP,GAAM,MAAMinE,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAOmlD,YAAY1nH,GAAU,EAA1xBlU,CAA6xB,QAAS,SAAkEkU,GAAUlU,MAAiBwP,GAAM,MAAMinE,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAOolD,YAAY3nH,GAAU,GAC/9BlU,QACAA,MAAc,EAAGm6H,GAAkD,EAAG,EAAG,eAAgB,EAAzFn6H,CAA4F,EAAG26H,GAA4C,EAAG,EAAG,SAAU,EAA3J36H,CAA8J,EAAGq7H,GAAkD,EAAG,EAAG,eAAgB,EAC7O,CAAE,GAAS,EAALntH,EAAQ,CACV,IAAI4tH,EACJ,MAAMrlD,EAASz2E,QACfA,MAAcy2E,EAAOslD,iBACrB/7H,MAAc,QAASy2E,EAAOulD,gBAA9Bh8H,CAA+C,WAAYy2E,EAAOwlD,cAAlEj8H,CAAiF,UAAWy2E,EAAOk8C,WAAnG3yH,CAA+G,UAAW,qBAA1HA,CAAgJ,cAAey2E,EAAOylD,aAAe,GAArLl8H,CAAyL,WAAYy2E,EAAOrnE,SAA5MpP,CAAsN,aAAcy2E,EAAO4xC,UAA3OroH,CAAsP,UAAWy2E,EAAO65C,QAAxQtwH,CAAiR,QAASy2E,EAAOg5C,UACjSzvH,MAAe,KAAMy2E,EAAO0lD,QAA5Bn8H,CAAqC,OAAQy2E,EAAO96E,KAApDqE,CAA0D,WAAYy2E,EAAO2lD,SAA7Ep8H,CAAuF,gBAAiBy2E,EAAO2lD,SAA/Gp8H,CAAyH,gBAAwD,QAAtC87H,EAAWrlD,EAAO4/C,sBAAyC17H,IAAbmhI,GAAyBA,EAAlN97H,CAAoO,gBAAiBy2E,EAAO4/C,eAAiB5/C,EAAOukD,QAAU,KAA9Rh7H,CAAoS,kBAAmBy2E,EAAO4lD,eAA9Tr8H,CAA8U,aAAcy2E,EAAO2zC,UAAnWpqH,CAA8W,WAAYy2E,EAAO45C,SAAjYrwH,CAA2Y,YAAay2E,EAAO6lD,QAAU,MAAQ,MACjbt8H,MAAa,GACbA,MAAc,OAAQy2E,EAAO8lD,YAAc9lD,EAAOrnE,UAA4B,MAAhBqnE,EAAO1qE,OACrE/L,QACAA,MAAc,OAAQy2E,EAAO+lD,UAAmC,WAAvB/lD,EAAOgmD,aAChDz8H,QACAA,MAAc,OAA+B,UAAvBy2E,EAAOgmD,aAA2BhmD,EAAO+lD,SACnE,CAAE,CACF,SAASE,GAAyCxuH,EAAIC,GAAgB,EAALD,GAC7DlO,MAAsB,EACxB,CACF,SAAS28H,GAAiEzuH,EAAIC,GAAgB,EAALD,GACrFlO,MAAa,EAAG,kBAClB,CACF,SAAS48H,GAAsE1uH,EAAIC,GAAO,CAC1F,SAAS0uH,GAAwD3uH,EAAIC,GAAgB,EAALD,GAC5ElO,MAAc,EAAG48H,GAAuE,EAAG,EAAG,cAChG,CACF,SAASE,GAAsD5uH,EAAIC,GAIjE,GAJiF,EAALD,IAC1ElO,MAAkB,EAAG,QACrBA,MAAc,EAAG68H,GAAyD,EAAG,EAAG,KAAM,IACtF78H,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAOsmD,sBAAwBtmD,EAAOumD,sBAC5E,CAAE,CACF,SAASC,GAAwD/uH,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACpF,MAAMgvH,EAAOl9H,QACbA,MAAkB,EAAG,SAAU,IAC/BA,MAAc,QAAS,SAAyFkU,GAAUlU,MAAiBk9H,GAAO,MAAMzmD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO0mD,kBAAkBjpH,GAAU,EAA/OlU,CAAkP,UAAW,SAA2FkU,GAAUlU,MAAiBk9H,GAAO,MAAMzmD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,GAC9dlU,MAAU,GACVA,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMmvH,EAAYr9H,QAAmB2P,UAC/B8mE,EAASz2E,MAAiB,GAChCA,MAAc,WAAYy2E,EAAO6mD,4BACjCt9H,MAAe,aAAcy2E,EAAO1e,eAAe,gBACnD/3D,QACAA,MAAsB,IAAKy2E,EAAO8mD,aAAaF,EAAU90H,OAAQ,IACrE,CAAE,CACF,SAASi1H,GAAwDtvH,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACpF,MAAMuvH,EAAOz9H,QACbA,MAAkB,EAAG,SAAU,IAC/BA,MAAc,QAAS,SAAyFkU,GAAUlU,MAAiBy9H,GAAO,MAAMhnD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOinD,iBAAiBxpH,GAAU,EAA9OlU,CAAiP,UAAW,SAA2FkU,GAAUlU,MAAiBy9H,GAAO,MAAMhnD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,GAC7dlU,MAAU,GACVA,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMmvH,EAAYr9H,QAAmB2P,UAC/B8mE,EAASz2E,MAAiB,GAChCA,MAAc,WAAYy2E,EAAO6mD,4BACjCt9H,MAAe,aAAcy2E,EAAO1e,eAAe,eACnD/3D,QACAA,MAAsB,IAAKy2E,EAAOknD,QAAQN,GAAY,IAC1D,CAAE,CACF,SAASO,GAAqE1vH,EAAIC,GAIhF,GAJgG,EAALD,IACzFlO,MAA2B,GAC3BA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAsB,GAAIy2E,EAAOonD,mBAAmB,GAAI,MAAOpnD,EAAOonD,mBAAmBpnD,EAAOonD,mBAAmBn5H,OAAS,GAAI,GACpI,CAAE,CACF,SAASo5H,GAAqE5vH,EAAIC,GAAgB,EAALD,GACzFlO,MAAsB,EACxB,CACF,SAAS+9H,GAAsD7vH,EAAIC,GAIjE,GAJiF,EAALD,IAC1ElO,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,EAAG49H,GAAsE,EAAG,EAAG,eAAgB,EAA7G59H,CAAgH,EAAG89H,GAAsE,EAAG,EAAG,eAAgB,IAC/M99H,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,QAASy2E,EAAOunD,gBAAkBvnD,EAAOwnD,iBACvDj+H,QACAA,MAAc,mBAAoBy2E,EAAOunD,gBAAkBvnD,EAAOwnD,gBAAlEj+H,CAAmF,0BAA2BA,MAAmB,EAAGy5H,GAAMhjD,EAAOonD,kBACrJ,CAAE,CACF,SAASK,GAAmEhwH,EAAIC,GAAgB,EAALD,GACvFlO,MAAa,EAAG,mBAClB,CACF,SAASm+H,GAAuEjwH,EAAIC,GAAO,CAC3F,SAASiwH,GAAyDlwH,EAAIC,GAAgB,EAALD,GAC7ElO,MAAc,EAAGm+H,GAAwE,EAAG,EAAG,cACjG,CACF,SAASE,GAAuDnwH,EAAIC,GAIlE,GAJkF,EAALD,IAC3ElO,MAAkB,EAAG,QACrBA,MAAc,EAAGo+H,GAA0D,EAAG,EAAG,KAAM,IACvFp+H,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAO6nD,kBAAoB7nD,EAAO8nD,kBACxE,CAAE,CACF,SAASC,GAA6DtwH,EAAIC,GAIxE,GAJwF,EAALD,IACjFlO,MAAkB,EAAG,KAAM,GAA3BA,CAA+B,EAAG,QAClCA,MAAU,GACVA,WACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAa,GACbA,MAAqBy2E,EAAO1e,eAAe,cAC/C,CAAE,CACF,SAAS0mE,GAA6DvwH,EAAIC,GAIxE,GAJwF,EAALD,IACjFlO,MAAkB,EAAG,KAAM,GAA3BA,CAA+B,EAAG,OAAQ,IAC1CA,MAAU,GACVA,WACO,EAALkO,EAAQ,CACV,MAAMwwH,EAAcvwH,EAAIwB,UACxB3P,MAAa,GACbA,MAAqB0+H,EACzB,CAAE,CACF,SAASC,GAAkEzwH,EAAIC,GAI7E,GAJ6F,EAALD,IACtFlO,MAAkB,EAAG,KAAM,GAA3BA,CAA+B,EAAG,OAAQ,IAC1CA,MAAU,GACVA,WACO,EAALkO,EAAQ,CACV,MAAM0wH,EAAQ5+H,QAAmBguB,MAC3BqvG,EAAYr9H,MAAiB,GAAG2P,UACtC3P,MAAa,GACbA,MAAsB,IAAKq9H,EAAUwB,YAAYD,GAAQ,IAC7D,CAAE,CACF,SAASE,GAAgG5wH,EAAIC,GAI3G,GAJ2H,EAALD,IACpHlO,MAA2B,GAC3BA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,MAAM6wH,EAAW/+H,MAAiB,GAAG2P,UACrC3P,QACAA,MAAqB++H,EAAS15G,IAClC,CAAE,CACF,SAAS25G,GAA+G9wH,EAAIC,GAAgB,EAALD,GACnIlO,MAAsB,EACxB,CACF,SAASi/H,GAAgG/wH,EAAIC,GAI3G,GAJ2H,EAALD,IACpHlO,MAA2B,GAC3BA,MAAc,EAAGg/H,GAAgH,EAAG,EAAG,eAAgB,IACvJh/H,SACO,EAALkO,EAAQ,CACV,MAAM6wH,EAAW/+H,MAAiB,GAAG2P,UAC/B8mE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAOyoD,cAAgBzoD,EAAO0oD,cAAhEn/H,CAA+E,0BAA2BA,MAAmB,EAAGy5H,GAAMsF,GAC1I,CAAE,CACF,SAASK,GAA+GlxH,EAAIC,GAAgB,EAALD,GACnIlO,MAAsB,EACxB,CACF,SAASq/H,GAAgGnxH,EAAIC,GAI3G,GAJ2H,EAALD,IACpHlO,MAA2B,GAC3BA,MAAc,EAAGo/H,GAAgH,EAAG,EAAG,eAAgB,IACvJp/H,SACO,EAALkO,EAAQ,CACV,MAAM6wH,EAAW/+H,MAAiB,GAAG2P,UAC/B8mE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAO6oD,sBAAwB7oD,EAAO8oD,sBAAxEv/H,CAA+F,0BAA2BA,MAAmB,EAAGy5H,GAAMsF,GAC1J,CAAE,CACF,SAASS,GAAuFtxH,EAAIC,GAIlG,GAJkH,EAALD,IAC3GlO,MAAkB,EAAG,MAAO,IAC5BA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,MAAM6wH,EAAW/+H,MAAiB,GAAG2P,UACrC3P,QACAA,MAAsB,IAAK++H,EAAS15G,IAAK,IAC7C,CAAE,CACF,SAASo6G,GAAiFvxH,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC7G,MAAMwxH,EAAO1/H,QACbA,MAA2B,GAC3BA,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,QAAS,SAAgHkU,GAAUlU,MAAiB0/H,GAAO,MAAMX,EAAW/+H,QAAmB2P,UAAiB8mE,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOkpD,aAAazrH,EAAQ6qH,GAAY,EAA1T/+H,CAA6T,UAAW,SAAkHkU,GAAUlU,MAAiB0/H,GAAO,MAAMX,EAAW/+H,QAAmB2P,UAAiBiwH,EAAQ5/H,MAAiB,GAAGguB,MAAayoD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOopD,kBAAkB3rH,EAAQ6qH,EAAUa,GAAS,GAClqB5/H,MAAc,EAAG8+H,GAAiG,EAAG,EAAG,eAAgB,EAAxI9+H,CAA2I,EAAGi/H,GAAiG,EAAG,EAAG,eAAgB,EAArQj/H,CAAwQ,EAAGq/H,GAAiG,EAAG,EAAG,eAAgB,GAClYr/H,QACAA,MAAc,EAAGw/H,GAAwF,EAAG,EAAG,MAAO,IACtHx/H,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAM6wH,EAAW/+H,QAAmB2P,UAC9B8mE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,UAAWy2E,EAAOqpD,SAASf,IACzC/+H,MAAe,YAAay2E,EAAOspD,cAActpD,EAAOupD,qBAAqBjB,KAC7E/+H,QACAA,MAAc,QAASy2E,EAAOyoD,eAAiBzoD,EAAO0oD,gBAAkBJ,EAASxH,aAAe9gD,EAAO6oD,uBAAyB7oD,EAAO8oD,wBACvIv/H,QACAA,MAAc,OAAQ++H,EAASxH,aAAe9gD,EAAO6oD,uBAAyB7oD,EAAO8oD,uBACrFv/H,QACAA,MAAc,QAAS++H,EAASxH,YAChCv3H,QACAA,MAAc,OAAQy2E,EAAO3mE,WAAWivH,GAC5C,CAAE,CACF,SAASkB,GAAkE/xH,EAAIC,GAI7E,GAJ6F,EAALD,IACtFlO,MAAkB,EAAG,KAAM,IAC3BA,MAAc,EAAGy/H,GAAkF,EAAG,EAAG,eAAgB,GACzHz/H,SACO,EAALkO,EAAQ,CACV,MAAM6wH,EAAW5wH,EAAIwB,UACf8mE,EAASz2E,MAAiB,GAChCA,MAAc,UAAWA,MAAmB,EAAG05H,GAAMqF,EAAS3H,WAAY2H,EAASzzG,QACnFtrB,MAAe,aAAc++H,EAAS15G,KACtCrlB,QACAA,MAAc,QAAQ++H,EAAS3H,YAAa3gD,EAAOypD,gBACvD,CAAE,CACF,SAASC,GAA6DjyH,EAAIC,GAIxE,GAJwF,EAALD,IACjFlO,MAAkB,EAAG,MACrBA,MAAc,EAAG2+H,GAAmE,EAAG,EAAG,KAAM,GAAhG3+H,CAAoG,EAAGigI,GAAmE,EAAG,EAAG,KAAM,IACtLjgI,SACO,EAALkO,EAAQ,CACV,MAAMkyH,EAAWjyH,EAAIwB,UACf8mE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,OAAQy2E,EAAO4pD,UAC7BrgI,QACAA,MAAc,UAAWogI,EAC7B,CAAE,CACF,SAASE,GAAwDpyH,EAAIC,GAOnE,GAPmF,EAALD,IAC5ElO,MAAkB,EAAG,QAAS,GAA9BA,CAAkC,EAAG,QAArCA,CAA8C,EAAG,MACjDA,MAAc,EAAGw+H,GAA8D,EAAG,EAAG,KAAM,GAA3Fx+H,CAA+F,EAAGy+H,GAA8D,EAAG,EAAG,KAAM,IAC5Kz+H,UACAA,MAAkB,EAAG,SACrBA,MAAc,EAAGmgI,GAA8D,EAAG,EAAG,KAAM,IAC3FngI,WACO,EAALkO,EAAQ,CACV,MAAMmvH,EAAYr9H,QAAmB2P,UAC/B8mE,EAASz2E,MAAiB,GAChCA,MAAa,GACbA,MAAc,OAAQy2E,EAAO4pD,UAC7BrgI,QACAA,MAAc,UAAWy2E,EAAO8pD,UAChCvgI,MAAa,GACbA,MAAc,UAAWq9H,EAAUmD,MACvC,CAAE,CACF,SAASC,GAA+CvyH,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC3E,MAAMwyH,EAAM1gI,QACZA,MAAkB,EAAG,MAAO,GAA5BA,CAAgC,EAAG,MAAO,GAA1CA,CAA8C,EAAG,WAAY,IAC7DA,MAAc,UAAW,SAAoFkU,GAAUlU,MAAiB0gI,GAAM,MAAMjqD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,EAAlPlU,CAAqP,UAAW,SAAoFkU,GAAUlU,MAAiB0gI,GAAM,MAAMjqD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOkqD,kBAAkBzsH,GAAU,GACldlU,MAAc,EAAG28H,GAAkE,EAAG,EAAG,kBAAmB,EAA5G38H,CAA+G,EAAG88H,GAAuD,EAAG,EAAG,OAAQ,GACvL98H,QACAA,MAAkB,EAAG,MAAO,IAC5BA,MAAc,EAAGi9H,GAAyD,EAAG,EAAG,SAAU,GAA1Fj9H,CAA8F,EAAGw9H,GAAyD,EAAG,EAAG,SAAU,GAA1Kx9H,CAA8K,EAAG+9H,GAAuD,EAAG,EAAG,OAAQ,IACtP/9H,QACAA,MAAkB,EAAG,WAAY,IACjCA,MAAc,UAAW,SAAoFkU,GAAUlU,MAAiB0gI,GAAM,MAAMjqD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,EAAlPlU,CAAqP,UAAW,SAAoFkU,GAAUlU,MAAiB0gI,GAAM,MAAMjqD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOmqD,kBAAkB1sH,GAAU,GACldlU,MAAc,GAAIk+H,GAAoE,EAAG,EAAG,mBAAoB,EAAhHl+H,CAAmH,GAAIq+H,GAAwD,EAAG,EAAG,OAAQ,GAC7Lr+H,UACAA,MAAc,GAAIsgI,GAAyD,EAAG,EAAG,QAAS,IAC1FtgI,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAM0xH,EAAQzxH,EAAI6f,MACZyoD,EAASz2E,MAAiB,GAChCA,MAAa,GACbA,MAAc,UAAWA,MAAmB,GAAIw5H,GAAgB,IAAVoG,EAAc,UAAY,WAChF5/H,MAAe,aAAcy2E,EAAOoqD,mBACpC7gI,QACAA,MAAc,QAASy2E,EAAOsmD,uBAAyBtmD,EAAOumD,uBAC9Dh9H,QACAA,MAAc,OAAQy2E,EAAOsmD,uBAAyBtmD,EAAOumD,uBAC7Dh9H,MAAa,GACbA,MAAc,OAA+B,SAAvBy2E,EAAOqqD,aAC7B9gI,QACAA,MAAc,OAA+B,SAAvBy2E,EAAOqqD,aAC7B9gI,QACAA,MAAc,OAA+B,SAAvBy2E,EAAOqqD,aAC7B9gI,QACAA,MAAc,UAAWA,MAAmB,GAAIw5H,GAAMoG,IAAUnpD,EAAO0iB,OAAOz0F,OAAS,EAAI,UAAY,WACvG1E,MAAe,aAAcy2E,EAAOsqD,mBACpC/gI,QACAA,MAAc,QAASy2E,EAAOunD,iBAAmBvnD,EAAOwnD,iBACxDj+H,QACAA,MAAc,OAAQy2E,EAAO6nD,mBAAqB7nD,EAAO8nD,mBACzDv+H,QACAA,MAAc,OAA+B,SAAvBy2E,EAAOqqD,YACjC,CAAE,CACF,SAASE,GAA4D9yH,EAAIC,GAIvE,GAJuF,EAALD,IAChFlO,MAAkB,EAAG,MAAO,IAC5BA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,MAAM+yH,EAAQjhI,QAAmB2P,UACjC3P,QACAA,MAAsB,IAAKihI,EAAO,IACtC,CAAE,CACF,SAASC,GAAsDhzH,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAClF,MAAMizH,EAAOnhI,QACbA,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,QAAS,SAAqFkU,GAAU,MAAMktH,EAAQphI,MAAiBmhI,GAAMnzG,MAAayoD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO4qD,cAAcntH,EAAQktH,GAAS,EAAlQphI,CAAqQ,UAAW,SAAuFkU,GAAU,MAAMktH,EAAQphI,MAAiBmhI,GAAMnzG,MAAayoD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO6qD,mBAAmBptH,EAAQktH,GAAS,GAClgBphI,MAAU,GACVA,MAAc,EAAGghI,GAA6D,EAAG,EAAG,MAAO,IAC3FhhI,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAM+yH,EAAQ9yH,EAAIwB,UACZyxH,EAAQjzH,EAAI6f,MACZyoD,EAASz2E,MAAiB,GAChCA,MAAc,UAAWA,MAAmB,EAAG25H,GAAMljD,EAAO+gD,gBAAgB4J,GAAQ3qD,EAAO8qD,gBAAgBH,KAC3GphI,QACAA,MAAsB,IAAKihI,EAAO,KAClCjhI,QACAA,MAAc,OAAQy2E,EAAO+gD,gBAAgB4J,GACjD,CAAE,CACF,SAASI,GAA+CtzH,EAAIC,GAI1D,GAJ0E,EAALD,IACnElO,MAAkB,EAAG,MAAO,IAC5BA,MAAc,EAAGkhI,GAAuD,EAAG,EAAG,OAAQ,IACtFlhI,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,UAAWy2E,EAAOgrD,oBACpC,CAAE,CACF,SAASC,GAA4DxzH,EAAIC,GAIvE,GAJuF,EAALD,IAChFlO,MAAkB,EAAG,MAAO,IAC5BA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,MAAMyzH,EAAQ3hI,QAAmB2P,UACjC3P,QACAA,MAAsB,IAAK2hI,EAAO,IACtC,CAAE,CACF,SAASC,GAAsD1zH,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAClF,MAAM2zH,EAAO7hI,QACbA,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,QAAS,SAAqFkU,GAAU,MAAMytH,EAAQ3hI,MAAiB6hI,GAAMlyH,UAAiB8mE,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOqrD,aAAa5tH,EAAQytH,GAAS,EAArQ3hI,CAAwQ,UAAW,SAAuFkU,GAAU,MAAMytH,EAAQ3hI,MAAiB6hI,GAAMlyH,UAAiB8mE,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOsrD,kBAAkB7tH,EAAQytH,GAAS,GACxgB3hI,MAAU,GACVA,MAAc,EAAG0hI,GAA6D,EAAG,EAAG,MAAO,IAC3F1hI,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMyzH,EAAQxzH,EAAIwB,UACZ8mE,EAASz2E,MAAiB,GAChCA,MAAc,UAAWA,MAAmB,EAAG45H,GAAMnjD,EAAOghD,eAAekK,GAAQlrD,EAAOurD,eAAeL,KACzG3hI,QACAA,MAAsB,IAAK2hI,EAAO,KAClC3hI,QACAA,MAAc,OAAQy2E,EAAOghD,eAAekK,GAChD,CAAE,CACF,SAASM,GAA+C/zH,EAAIC,GAI1D,GAJ0E,EAALD,IACnElO,MAAkB,EAAG,MAAO,IAC5BA,MAAc,EAAG4hI,GAAuD,EAAG,EAAG,OAAQ,IACtF5hI,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,UAAWy2E,EAAOonD,mBACpC,CAAE,CACF,SAASqE,GAAyCh0H,EAAIC,GAOpD,GAPoE,EAALD,IAC7DlO,MAA2B,GAC3BA,MAAkB,EAAG,MAAO,IAC5BA,MAAc,EAAGygI,GAAgD,GAAI,GAAI,MAAO,IAChFzgI,QACAA,MAAc,EAAGwhI,GAAgD,EAAG,EAAG,MAAO,GAA9ExhI,CAAkF,EAAGiiI,GAAgD,EAAG,EAAG,MAAO,IAClJjiI,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAa,GACbA,MAAc,UAAWy2E,EAAO0iB,QAChCn5F,QACAA,MAAc,OAA+B,UAAvBy2E,EAAOqqD,aAC7B9gI,QACAA,MAAc,OAA+B,SAAvBy2E,EAAOqqD,YACjC,CAAE,CACF,SAASqB,GAAgDj0H,EAAIC,GAAgB,EAALD,GACpElO,MAAa,EAAG,gBAClB,CACF,SAASoiI,GAAgDl0H,EAAIC,GAAO,CACpE,SAASk0H,GAAkCn0H,EAAIC,GAAgB,EAALD,GACtDlO,MAAc,EAAGoiI,GAAiD,EAAG,EAAG,cAC1E,CACF,SAASE,GAA+Cp0H,EAAIC,GAAgB,EAALD,IACnElO,MAA2B,GAC3BA,MAAU,EAAG,KACbA,QACF,CACF,SAASuiI,GAAkDr0H,EAAIC,GAAgB,EAALD,GACtElO,MAAa,EAAG,kBAClB,CACF,SAASwiI,GAAiDt0H,EAAIC,GAAO,CACrE,SAASs0H,GAAmCv0H,EAAIC,GAAgB,EAALD,GACvDlO,MAAc,EAAGwiI,GAAkD,EAAG,EAAG,cAC3E,CACF,SAASE,GAAiDx0H,EAAIC,GAAgB,EAALD,GACrElO,MAAa,EAAG,gBAClB,CACF,SAAS2iI,GAAiDz0H,EAAIC,GAAO,CACrE,SAASy0H,GAAmC10H,EAAIC,GAAgB,EAALD,GACvDlO,MAAc,EAAG2iI,GAAkD,EAAG,EAAG,cAC3E,CACF,SAASE,GAAgD30H,EAAIC,GAAgB,EAALD,IACpElO,MAA2B,GAC3BA,MAAU,EAAG,KACbA,QACF,CACF,SAAS8iI,GAAmD50H,EAAIC,GAAgB,EAALD,GACvElO,MAAa,EAAG,kBAClB,CACF,SAAS+iI,GAAgE70H,EAAIC,GAAO,CACpF,SAAS60H,GAAkD90H,EAAIC,GAAgB,EAALD,GACtElO,MAAc,EAAG+iI,GAAiE,EAAG,EAAG,cAC1F,CACF,SAASE,GAAgD/0H,EAAIC,GAI3D,GAJ2E,EAALD,IACpElO,MAA2B,GAC3BA,MAAc,EAAGgjI,GAAmD,EAAG,EAAG,KAAM,IAChFhjI,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAOysD,uBAAyBzsD,EAAO0sD,uBAC7E,CAAE,CACF,SAASC,GAAuCl1H,EAAIC,GAIlD,GAJkE,EAALD,IAC3DlO,MAAkB,EAAG,MAAO,GAA5BA,CAAgC,EAAG,QACnCA,MAAU,GACVA,WACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAa,GACbA,MAAqBy2E,EAAO4sD,cAChC,CAAE,CACF,SAASC,GAAuDp1H,EAAIC,GAAgB,EAALD,GAC3ElO,MAAa,EAAG,gBAClB,CACF,SAASujI,GAAuDr1H,EAAIC,GAAO,CAC3E,SAASq1H,GAAyCt1H,EAAIC,GAAgB,EAALD,GAC7DlO,MAAc,EAAGujI,GAAwD,EAAG,EAAG,cACjF,CACF,SAASE,GAAsDv1H,EAAIC,GAAgB,EAALD,IAC1ElO,MAA2B,GAC3BA,MAAU,EAAG,KACbA,QACF,CACF,SAAS0jI,GAAyDx1H,EAAIC,GAAgB,EAALD,GAC7ElO,MAAa,EAAG,kBAClB,CACF,SAAS2jI,GAAuDz1H,EAAIC,GAAO,CAC3E,SAASy1H,GAAyC11H,EAAIC,GAAgB,EAALD,GAC7DlO,MAAc,EAAG2jI,GAAwD,EAAG,EAAG,cACjF,CACF,SAASE,GAAuC31H,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACnE,MAAM41H,EAAO9jI,QACbA,MAAkB,EAAG,MAAO,GAA5BA,CAAgC,EAAG,WAAY,IAC/CA,MAAc,UAAW,SAA4EkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,EAA3OlU,CAA8O,gBAAiB,SAAkFkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOstD,gBAAgB7vH,GAAU,EAA9clU,CAAid,gBAAiB,SAAkFkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOstD,gBAAgB7vH,GAAU,EAAjrBlU,CAAorB,YAAa,SAA8EkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOutD,6BAA6B9vH,EAAQ,EAAG,GAAK,EAA/5BlU,CAAk6B,UAAW,SAA4EkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAAjoClU,CAAooC,cAAe,SAAgFkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAA32ClU,CAA82C,cAAe,SAAgFkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAArlDlU,CAAwlD,aAAc,WAAmFA,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOytD,gCAAkC,GACpzDlkI,MAAc,EAAGsjI,GAAwD,EAAG,EAAG,gBAAiB,EAAhGtjI,CAAmG,EAAGwjI,GAA0C,EAAG,EAAG,KAAM,IAC5JxjI,QACAA,MAAkB,EAAG,QACrBA,MAAc,EAAGyjI,GAAuD,EAAG,EAAG,eAAgB,GAC9FzjI,MAAU,GACVA,QACAA,MAAkB,EAAG,WAAY,IACjCA,MAAc,UAAW,SAA4EkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,EAA3OlU,CAA8O,gBAAiB,SAAkFkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO0tD,gBAAgBjwH,GAAU,EAA9clU,CAAid,gBAAiB,SAAkFkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO0tD,gBAAgBjwH,GAAU,EAAjrBlU,CAAorB,YAAa,SAA8EkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOutD,6BAA6B9vH,EAAQ,GAAG,GAAM,EAAh6BlU,CAAm6B,UAAW,SAA4EkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAAloClU,CAAqoC,cAAe,SAAgFkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAA52ClU,CAA+2C,cAAe,SAAgFkU,GAAUlU,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAAtlDlU,CAAylD,aAAc,WAAmFA,MAAiB8jI,GAAO,MAAMrtD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOytD,gCAAkC,GACrzDlkI,MAAc,EAAG0jI,GAA0D,EAAG,EAAG,kBAAmB,EAApG1jI,CAAuG,EAAG4jI,GAA0C,EAAG,EAAG,KAAM,IAChK5jI,SACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAe,aAAcy2E,EAAO1e,eAAe,eACnD/3D,QACAA,MAAc,QAASy2E,EAAO2tD,wBAA0B3tD,EAAO4tD,wBAC/DrkI,QACAA,MAAc,mBAAoBy2E,EAAO2tD,uBAAyB3tD,EAAO4tD,wBACzErkI,MAAa,GACbA,MAAc,OAAQy2E,EAAO6tD,cAAgB,IAC7CtkI,QACAA,MAAqBy2E,EAAO6tD,eAC5BtkI,QACAA,MAAe,aAAcy2E,EAAO1e,eAAe,eACnD/3D,QACAA,MAAc,QAASy2E,EAAOysD,wBAA0BzsD,EAAO0sD,wBAC/DnjI,QACAA,MAAc,mBAAoBy2E,EAAOysD,uBAAyBzsD,EAAO0sD,uBAC7E,CAAE,CACF,SAASoB,GAAuCr2H,EAAIC,GAIlD,GAJkE,EAALD,IAC3DlO,MAAkB,EAAG,MAAO,GAA5BA,CAAgC,EAAG,QACnCA,MAAU,GACVA,WACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAa,GACbA,MAAqBy2E,EAAO4sD,cAChC,CAAE,CACF,SAASmB,GAAuDt2H,EAAIC,GAAgB,EAALD,GAC3ElO,MAAa,EAAG,gBAClB,CACF,SAASykI,GAAuDv2H,EAAIC,GAAO,CAC3E,SAASu2H,GAAyCx2H,EAAIC,GAAgB,EAALD,GAC7DlO,MAAc,EAAGykI,GAAwD,EAAG,EAAG,cACjF,CACF,SAASE,GAAyDz2H,EAAIC,GAAgB,EAALD,GAC7ElO,MAAa,EAAG,kBAClB,CACF,SAAS4kI,GAAuD12H,EAAIC,GAAO,CAC3E,SAAS02H,GAAyC32H,EAAIC,GAAgB,EAALD,GAC7DlO,MAAc,EAAG4kI,GAAwD,EAAG,EAAG,cACjF,CACF,SAASE,GAAuC52H,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACnE,MAAM62H,EAAO/kI,QACbA,MAAkB,EAAG,MAAO,GAA5BA,CAAgC,EAAG,WAAY,IAC/CA,MAAc,UAAW,SAA4EkU,GAAUlU,MAAiB+kI,GAAO,MAAMtuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,EAA3OlU,CAA8O,UAAW,SAA4EkU,GAAUlU,MAAiB+kI,GAAO,MAAMtuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOuuD,WAAW9wH,GAAU,EAA7blU,CAAgc,gBAAiB,SAAkFkU,GAAUlU,MAAiB+kI,GAAO,MAAMtuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOuuD,WAAW9wH,GAAU,GAC3pBlU,MAAc,EAAGwkI,GAAwD,EAAG,EAAG,gBAAiB,EAAhGxkI,CAAmG,EAAG0kI,GAA0C,EAAG,EAAG,KAAM,IAC5J1kI,QACAA,MAAkB,EAAG,QACrBA,MAAU,GACVA,QACAA,MAAkB,EAAG,WAAY,IACjCA,MAAc,UAAW,SAA4EkU,GAAUlU,MAAiB+kI,GAAO,MAAMtuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,EAA3OlU,CAA8O,QAAS,SAA0EkU,GAAUlU,MAAiB+kI,GAAO,MAAMtuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOuuD,WAAW9wH,GAAU,EAAzblU,CAA4b,gBAAiB,SAAkFkU,GAAUlU,MAAiB+kI,GAAO,MAAMtuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOuuD,WAAW9wH,GAAU,GACvpBlU,MAAc,EAAG2kI,GAA0D,EAAG,EAAG,kBAAmB,EAApG3kI,CAAuG,EAAG6kI,GAA0C,EAAG,EAAG,KAAM,IAChK7kI,SACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAe,aAAcy2E,EAAO1e,eAAe,OACnD/3D,QACAA,MAAc,QAASy2E,EAAO2tD,wBAA0B3tD,EAAO4tD,wBAC/DrkI,QACAA,MAAc,mBAAoBy2E,EAAO2tD,uBAAyB3tD,EAAO4tD,wBACzErkI,MAAa,GACbA,MAAqBy2E,EAAOlqD,GAAK,KAAO,MACxCvsB,QACAA,MAAe,aAAcy2E,EAAO1e,eAAe,OACnD/3D,QACAA,MAAc,QAASy2E,EAAOysD,wBAA0BzsD,EAAO0sD,wBAC/DnjI,QACAA,MAAc,mBAAoBy2E,EAAOysD,uBAAyBzsD,EAAO0sD,uBAC7E,CAAE,CACF,SAAS8B,GAAgC/2H,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC5D,MAAMg3H,EAAOllI,QACbA,MAAkB,EAAG,MAAO,GAA5BA,CAAgC,EAAG,MAAO,GAA1CA,CAA8C,EAAG,WAAY,IAC7DA,MAAc,UAAW,SAAqEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,EAApOlU,CAAuO,gBAAiB,SAA2EkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO0uD,cAAcjxH,GAAU,EAA9blU,CAAic,gBAAiB,SAA2EkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO0uD,cAAcjxH,GAAU,EAAxpBlU,CAA2pB,YAAa,SAAuEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOutD,6BAA6B9vH,EAAQ,EAAG,GAAK,EAA/3BlU,CAAk4B,UAAW,SAAqEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAA1lClU,CAA6lC,cAAe,SAAyEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAA7zClU,CAAg0C,cAAe,SAAyEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAAhiDlU,CAAmiD,aAAc,WAA4EA,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOytD,gCAAkC,GACxvDlkI,MAAc,EAAGmiI,GAAiD,EAAG,EAAG,gBAAiB,EAAzFniI,CAA4F,EAAGqiI,GAAmC,EAAG,EAAG,KAAM,IAC9IriI,QACAA,MAAkB,EAAG,QACrBA,MAAc,EAAGsiI,GAAgD,EAAG,EAAG,eAAgB,GACvFtiI,MAAU,GACVA,QACAA,MAAkB,EAAG,WAAY,IACjCA,MAAc,UAAW,SAAqEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,EAApOlU,CAAuO,gBAAiB,SAA2EkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2uD,cAAclxH,GAAU,EAA9blU,CAAic,gBAAiB,SAA2EkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2uD,cAAclxH,GAAU,EAAxpBlU,CAA2pB,YAAa,SAAuEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOutD,6BAA6B9vH,EAAQ,GAAG,GAAM,EAAh4BlU,CAAm4B,UAAW,SAAqEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAA3lClU,CAA8lC,cAAe,SAAyEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAA9zClU,CAAi0C,cAAe,SAAyEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAAjiDlU,CAAoiD,aAAc,WAA4EA,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOytD,gCAAkC,GACzvDlkI,MAAc,EAAGuiI,GAAmD,EAAG,EAAG,kBAAmB,EAA7FviI,CAAgG,GAAIyiI,GAAoC,EAAG,EAAG,KAAM,IACpJziI,UACAA,MAAkB,GAAI,MAAO,GAA7BA,CAAiC,GAAI,QACrCA,MAAU,IACVA,UACAA,MAAkB,GAAI,MAAO,GAA7BA,CAAiC,GAAI,WAAY,IACjDA,MAAc,UAAW,SAAsEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,EAArOlU,CAAwO,gBAAiB,SAA4EkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO4uD,gBAAgBnxH,GAAU,EAAlclU,CAAqc,gBAAiB,SAA4EkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO4uD,gBAAgBnxH,GAAU,EAA/pBlU,CAAkqB,YAAa,SAAwEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOutD,6BAA6B9vH,EAAQ,EAAG,GAAK,EAAv4BlU,CAA04B,UAAW,SAAsEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAAnmClU,CAAsmC,cAAe,SAA0EkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAAv0ClU,CAA00C,cAAe,SAA0EkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAA3iDlU,CAA8iD,aAAc,WAA6EA,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOytD,gCAAkC,GACpwDlkI,MAAc,GAAI0iI,GAAkD,EAAG,EAAG,gBAAiB,EAA3F1iI,CAA8F,GAAI4iI,GAAoC,EAAG,EAAG,KAAM,IAClJ5iI,QACAA,MAAkB,GAAI,QACtBA,MAAc,GAAI6iI,GAAiD,EAAG,EAAG,eAAgB,GACzF7iI,MAAU,IACVA,QACAA,MAAkB,GAAI,WAAY,IAClCA,MAAc,UAAW,SAAsEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,EAArOlU,CAAwO,gBAAiB,SAA4EkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO6uD,gBAAgBpxH,GAAU,EAAlclU,CAAqc,gBAAiB,SAA4EkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO6uD,gBAAgBpxH,GAAU,EAA/pBlU,CAAkqB,YAAa,SAAwEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOutD,6BAA6B9vH,EAAQ,GAAG,GAAM,EAAx4BlU,CAA24B,UAAW,SAAsEkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAApmClU,CAAumC,cAAe,SAA0EkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAAx0ClU,CAA20C,cAAe,SAA0EkU,GAAUlU,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOwtD,2BAA2B/vH,GAAU,EAA5iDlU,CAA+iD,aAAc,WAA6EA,MAAiBklI,GAAO,MAAMzuD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOytD,gCAAkC,GACrwDlkI,MAAc,GAAI8iI,GAAoD,EAAG,EAAG,kBAAmB,EAA/F9iI,CAAkG,GAAIijI,GAAiD,EAAG,EAAG,eAAgB,GAC7KjjI,UACAA,MAAc,GAAIojI,GAAwC,EAAG,EAAG,MAAO,GAAvEpjI,CAA2E,GAAI6jI,GAAwC,GAAI,EAAG,MAAO,GAArI7jI,CAAyI,GAAIukI,GAAwC,EAAG,EAAG,MAAO,GAAlMvkI,CAAsM,GAAI8kI,GAAwC,EAAG,EAAG,MAAO,IAC/P9kI,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAa,GACbA,MAAe,aAAcy2E,EAAO1e,eAAe,aACnD/3D,QACAA,MAAc,QAASy2E,EAAO2tD,wBAA0B3tD,EAAO4tD,wBAC/DrkI,QACAA,MAAc,mBAAoBy2E,EAAO2tD,uBAAyB3tD,EAAO4tD,wBACzErkI,MAAa,GACbA,MAAc,OAAQy2E,EAAO8uD,YAAc,IAC3CvlI,QACAA,MAAqBy2E,EAAO8uD,aAC5BvlI,QACAA,MAAe,aAAcy2E,EAAO1e,eAAe,aACnD/3D,QACAA,MAAc,QAASy2E,EAAOysD,wBAA0BzsD,EAAO0sD,wBAC/DnjI,QACAA,MAAc,mBAAoBy2E,EAAOysD,uBAAyBzsD,EAAO0sD,wBACzEnjI,MAAa,GACbA,MAAqBy2E,EAAO4sD,eAC5BrjI,MAAa,GACbA,MAAe,aAAcy2E,EAAO1e,eAAe,eACnD/3D,QACAA,MAAc,QAASy2E,EAAO2tD,wBAA0B3tD,EAAO4tD,wBAC/DrkI,QACAA,MAAc,mBAAoBy2E,EAAO2tD,uBAAyB3tD,EAAO4tD,wBACzErkI,MAAa,GACbA,MAAc,OAAQy2E,EAAO+uD,cAAgB,IAC7CxlI,QACAA,MAAqBy2E,EAAO+uD,eAC5BxlI,QACAA,MAAe,aAAcy2E,EAAO1e,eAAe,eACnD/3D,QACAA,MAAc,QAASy2E,EAAOysD,wBAA0BzsD,EAAO0sD,wBAC/DnjI,QACAA,MAAc,OAAQy2E,EAAOysD,uBAAyBzsD,EAAO0sD,wBAC7DnjI,QACAA,MAAc,OAAQy2E,EAAOgvD,aAC7BzlI,QACAA,MAAc,OAAQy2E,EAAOgvD,aAC7BzlI,QACAA,MAAc,OAA6B,MAArBy2E,EAAOivD,YAC7B1lI,QACAA,MAAc,OAA6B,MAArBy2E,EAAOivD,WACjC,CAAE,CACF,SAASC,GAAgCz3H,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC5D,MAAM03H,EAAO5lI,QACbA,MAAkB,EAAG,MAAO,GAA5BA,CAAgC,EAAG,WAAY,IAC/CA,MAAc,UAAW,SAAqEkU,GAAUlU,MAAiB4lI,GAAO,MAAMnvD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,EAApOlU,CAAuO,UAAW,SAAqEkU,GAAUlU,MAAiB4lI,GAAO,MAAMnvD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOovD,mBAAmB3xH,GAAU,GACvblU,QACAA,MAAkB,EAAG,WAAY,IACjCA,MAAc,UAAW,SAAqEkU,GAAUlU,MAAiB4lI,GAAO,MAAMnvD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO2mD,yBAAyBlpH,GAAU,EAApOlU,CAAuO,UAAW,SAAqEkU,GAAUlU,MAAiB4lI,GAAO,MAAMnvD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOqvD,mBAAmB5xH,GAAU,GACvblU,SACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,QAASy2E,EAAO1e,eAAe,SAA7C/3D,CAAuD,UAAWy2E,EAAOsvD,uBACzE/lI,QACAA,MAAc,QAASy2E,EAAO1e,eAAe,SAA7C/3D,CAAuD,UAAWy2E,EAAOuvD,sBAC7E,CAAE,CACF,SAASC,GAAyC/3H,EAAIC,GAAgB,EAALD,GAC7DlO,MAAsB,EACxB,CACF,SAASkmI,GAA0Bh4H,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACtD,MAAMi4H,EAAMnmI,QACZA,MAAkB,EAAG,MAAO,GAAI,GAChCA,MAAc,0BAA2B,SAAmFkU,GAAUlU,MAAiBmmI,GAAM,MAAM1vD,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAO2vD,wBAAwBlyH,GAAU,EAA/PlU,CAAkQ,yBAA0B,SAAkFkU,GAAUlU,MAAiBmmI,GAAM,MAAM1vD,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAO4vD,uBAAuBnyH,GAAU,EAAhflU,CAAmf,QAAS,SAAwDkU,GAAUlU,MAAiBmmI,GAAM,MAAM1vD,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAO6vD,eAAepyH,GAAU,GAC9qBlU,MAAgB,GAChBA,MAAc,EAAG08H,GAA0C,EAAG,EAAG,eAAgB,GAAjF18H,CAAqF,EAAGkiI,GAA0C,EAAG,EAAG,eAAgB,EAAxJliI,CAA2J,EAAGilI,GAAiC,GAAI,GAAI,MAAO,GAA9MjlI,CAAkN,EAAG2lI,GAAiC,EAAG,EAAG,MAAO,IACnQ3lI,MAAgB,EAAG,GACnBA,MAAc,EAAGimI,GAA0C,EAAG,EAAG,eAAgB,IACjFjmI,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,QACfA,MAAcy2E,EAAO8vD,iBACrBvmI,MAAc,UAAWy2E,EAAO+vD,WAAhCxmI,CAA4C,UAAWy2E,EAAOjvD,WAA9DxnB,CAA0E,oBAAqBA,MAAmB,GAAIu5H,GAAMv5H,MAAmB,GAAIm5H,GAAM1iD,EAAOgwD,sBAAuBhwD,EAAOiwD,wBAA9L1mI,CAAuN,cAAgC,IAAlBy2E,EAAO+/C,QAC5Ox2H,MAAe,KAAMy2E,EAAOukD,QAA5Bh7H,CAAqC,aAAcy2E,EAAO1e,eAAe,cAAzE/3D,CAAwF,OAAQy2E,EAAO+/C,OAAS,KAAO,SAAvHx2H,CAAiI,aAAcy2E,EAAO+/C,OAAS,KAAO,QACtKx2H,MAAa,GACbA,MAAc,mBAAoBy2E,EAAOkwD,gBAAkBlwD,EAAOmwD,iBAClE5mI,QACAA,MAAc,QAASy2E,EAAOggD,UAC9Bz2H,QACAA,MAAc,QAASy2E,EAAOowD,UAAYpwD,EAAOggD,WAAoC,SAAvBhgD,EAAOqqD,aACrE9gI,QACAA,MAAc,OAAQy2E,EAAOqwD,eAC7B9mI,MAAa,GACbA,MAAc,mBAAoBy2E,EAAOswD,gBAAkBtwD,EAAOuwD,gBACtE,CAAE,CACF,MAAMC,GAA4B,CAC9B5uG,QAAS6uG,MACTC,eAAaC,OAAW,IAAMC,IAC9BxhG,OAAO,GAEX,IAIMwhG,GAAU,MAAhB,MAAMA,UAAmB/6H,GACrBuqD,KACAywE,eACA7K,YAAc,SAKdr2F,MAKA6oC,WAKA0jD,WAKAwJ,QAKAxgI,KAKAogI,gBAKAG,YAKAG,eAKAjS,UAKAmd,cAKAn4H,SAKAo4H,WAKAC,kBAAoB,IAKpBC,eAAiB,IAKjBlR,QAAS,EAKT0J,iBAAkB,EAKlByH,kBAKAnL,SAKAxQ,MAKAruD,KAKAggD,SAKAse,cAKA2L,gBAAkB,MAMlBC,eAMAC,cAKApC,WAAa,KAKbjP,SAKAsR,SAAW,EAKXC,WAAa,EAKbC,WAAa,EAKbxC,aAAc,EAKdrJ,SAKAjB,aAAc,EAKdkF,UAAW,EAKX6H,6BAA8B,EAK9B3L,WAAY,EAKZ4L,SAAW,OAKXC,cAAgB,SAKhBC,aAKAvB,cAKAf,sBAKAC,sBAKA3d,UAKAigB,YAAa,EAKbvS,WAAa,EAKbwQ,gBAKAC,WAKA+B,aAAc,EAKdC,sBAAuB,EAKvBlM,QAKA+G,cAAgB,IAKhBoF,WAAY,EAKZhC,sBAAwB,kCAKxBC,sBAAwB,aAKxBrW,SAKAC,QAKA30G,KAKA,WAAI+sH,GACA,OAAOrvI,KAAKsvI,QAChB,CACA,WAAID,CAAQpkH,GACRjrB,KAAKsvI,SAAWrkH,EACS3pB,MAArBtB,KAAKuvI,cAAkD,MAArBvvI,KAAKuvI,cAAwBvvI,KAAKwvI,aACpExvI,KAAKyvI,aAAazvI,KAAKuvI,aAAcvvI,KAAKwvI,YAElD,CAKA,WAAIE,GACA,OAAO1vI,KAAK2vI,QAChB,CACA,WAAID,CAAQzkH,GACRjrB,KAAK2vI,SAAW1kH,EACS3pB,MAArBtB,KAAKuvI,cAAkD,MAArBvvI,KAAKuvI,cAAwBvvI,KAAKwvI,aACpExvI,KAAKyvI,aAAazvI,KAAKuvI,aAAcvvI,KAAKwvI,YAElD,CAKA,iBAAII,GACA,OAAO5vI,KAAK6vI,cAChB,CACA,iBAAID,CAAcA,GACd5vI,KAAK6vI,eAAiBD,EACGtuI,MAArBtB,KAAKuvI,cAAkD,MAArBvvI,KAAKuvI,cAAwBvvI,KAAKwvI,aACpExvI,KAAKyvI,aAAazvI,KAAKuvI,aAAcvvI,KAAKwvI,YAElD,CAKA,gBAAIM,GACA,OAAO9vI,KAAK+vI,aAChB,CACA,gBAAID,CAAaA,GACb9vI,KAAK+vI,cAAgBD,EACIxuI,MAArBtB,KAAKuvI,cAAkD,MAArBvvI,KAAKuvI,cAAwBvvI,KAAKwvI,aACpExvI,KAAKyvI,aAAazvI,KAAKuvI,aAAcvvI,KAAKwvI,YAElD,CAMA,aAAIQ,GACA,OAAOhwI,KAAKiwI,UAChB,CACA,aAAID,CAAUA,GAEV,GADAhwI,KAAKiwI,WAAaD,EACdA,EAAW,CACX,MAAMpwC,EAAQowC,EAAU7kI,MAAM,KACxB+kI,EAAY3gH,SAASqwE,EAAM,IAC3BuwC,EAAU5gH,SAASqwE,EAAM,IAC/B5/F,KAAKowI,oBAAoBF,EAAWC,EACxC,CACJ,CAKA,YAAI3C,GACA,OAAOxtI,KAAKqwI,SAChB,CACA,YAAI7C,CAASA,GACTxtI,KAAKqwI,UAAY7C,OACQlsI,IAArBtB,KAAKksI,aACLlsI,KAAKswI,SAAStwI,KAAK0S,OAAS,IAAI9K,MAEpC5H,KAAKuwI,kBACT,CAKA,qBAAIC,GACA,OAAOxwI,KAAKywI,kBAChB,CACA,qBAAID,CAAkBA,GAClBxwI,KAAKywI,mBAAqBD,EAC1BxwI,KAAK0wI,gCACL1wI,KAAK2wI,uBACT,CAKA,kBAAIC,GACA,OAAO5wI,KAAK6wI,eAChB,CACA,kBAAID,CAAeA,GACf5wI,KAAK6wI,gBAAkBD,EACvB5wI,KAAK0wI,gCACL1wI,KAAK2wI,uBACT,CAKA,kBAAIG,GACA,OAAO9wI,KAAK+wI,eAChB,CACA,kBAAID,CAAeA,GACf9wI,KAAK+wI,gBAAkBD,EACvB9wI,KAAKgxI,gBACT,CAMA,UAAIz7G,CAAO07G,GACP1rI,QAAQ6Z,IAAI,2DAChB,CAKA,QAAI8xH,GACA,OAAOlxI,KAAKmxI,KAChB,CACA,QAAID,CAAKA,GACLlxI,KAAKmxI,MAAQD,EACblxI,KAAKynI,YAAcznI,KAAKmxI,KAC5B,CAKA,eAAIC,GACA,OAAOpxI,KAAKqxI,YAChB,CACA,eAAID,CAAYA,GAEZ,GADApxI,KAAKqxI,aAAeD,EAChBpxI,KAAKg1H,YAAa,CAClB,MAAM/pG,EAAOmmH,GAAe,IAAIxpI,KAChC5H,KAAKuvI,aAAetkH,EAAKkB,WACzBnsB,KAAKwvI,YAAcvkH,EAAKmB,cACxBpsB,KAAKswI,SAASrlH,GACdjrB,KAAKyvI,aAAazvI,KAAKuvI,aAAcvvI,KAAKwvI,YAC9C,CACJ,CAMA1wB,QAAU,IAAI5qG,MAMd6qG,OAAS,IAAI7qG,MAMb8mE,QAAU,IAAI9mE,MAMdo9H,SAAW,IAAIp9H,MAKf6pG,QAAU,IAAI7pG,MAMdmlH,QAAU,IAAInlH,MAMdq9H,aAAe,IAAIr9H,MAMnBs9H,aAAe,IAAIt9H,MAMnBu9H,cAAgB,IAAIv9H,MAMpBw9H,aAAe,IAAIx9H,MAKnBy9H,eAAiB,IAAIz9H,MAKrB09H,OAAS,IAAI19H,MACb29H,mBACAC,oBACA,WAAIjwE,CAAQA,GACR7hE,KAAK+xI,iBAAmBlwE,EACpB7hE,KAAK+xI,mBACD/xI,KAAKgyI,iBACL/jF,QAAQC,QAAQ,MAAM+jF,KAAK,IAAMjyI,KAAKkyI,eACtClyI,KAAKgyI,iBAAkB,IAGlBhyI,KAAK6+G,QAAU7+G,KAAKm9H,QACrBn9H,KAAKmyI,oBAIrB,CACAnxB,mBAAkBnB,OAAOgf,IACzBkT,iBACAr/H,MACAy0H,MACArnC,OACAonC,SACAqI,aACAC,YACAtD,YACAC,cACAlB,cACA/3G,GACA4uC,KACAswE,kBACA9yG,QACA+yG,uBACArV,eACAsV,cAAgBA,OAChBC,eAAiBA,OACjBC,gBACAC,gBACAC,sBACAC,qBACAC,YACAC,YACAh0B,MACAi0B,UACAna,OACAgK,gBAAkB,KAClB2M,SACAK,SACAU,UACAJ,WACA8C,wBACAtM,SAASx7G,GACL,OAAOjrB,KAAKghH,gBAAgB3rG,QAAQ2W,IAAI,CAAEo1F,SAAUphH,KAAMirB,KAAMA,GACpE,CAKA46G,aAKAyH,eAKAI,eAKAzH,qBAKAtB,eAKAjB,qBAKAuB,iBAKA7D,oBAKAR,kBAKAiJ,sBAKAkB,sBAKA9I,kBACA6D,cACAyH,gBACAI,gBACAzH,sBACAtB,gBACAjB,sBACAuB,kBACA7D,qBACAR,mBACAiJ,uBACAkB,uBACA9I,mBACA2N,eACAE,cACAiD,cACAC,aACAC,aACAC,cACAC,uBACAC,gBAAkB,KAClBrB,gBACAhd,YACAse,wBACAC,QACA9C,mBACAhJ,YACA+L,kBACA7R,QACAkP,gBAAkB,EAClBE,gBACAI,MAAQ,OACRsC,aACApC,aACAqC,UAAY,KACZnpH,OACA,UAAIgL,GACA,OAAOv1B,KAAKuzI,OAChB,CACA,uBAAI7R,GACA,OAAO1hI,KAAKkuI,cAAgBluI,KAAKkuI,cAAgBluI,KAAK0+D,eAAe,aACzE,CACA,qBAAI8oE,GACA,OAAqCxnI,KAAK0+D,eAAd,SAArB1+D,KAAKynI,YAA6C,aAAqC,UAArBznI,KAAKynI,YAA8C,WAAkC,YAClK,CACA,qBAAIC,GACA,OAAqC1nI,KAAK0+D,eAAd,SAArB1+D,KAAKynI,YAA6C,aAAqC,UAArBznI,KAAKynI,YAA8C,WAAkC,YAClK,CACA,aAAIkM,GACA,OAAO3zI,KAAKghH,gBAAgB3rG,QAAQi6C,KAAK,CAAE8xD,SAAUphH,MACzD,CACA,cAAImuB,GACA,OAAOnuB,KAAKghH,gBAAgB3rG,QAAQsvD,MAAM,CAAEy8C,SAAUphH,MAC1D,CACA,YAAIo2H,GAEA,MAAMC,EADgBr2H,KAAKg7D,GAAGya,cACO6gD,QAAQ,WAC7C,OAAOt2H,KAAK2yH,SAAW0D,CAC3B,CACAv2H,YAAY09D,EAAMywE,GACd9tI,QACAH,KAAKw9D,KAAOA,EACZx9D,KAAKiuI,eAAiBA,EACtBjuI,KAAKuqB,OAASvqB,KAAKiL,SAASgnH,WAChC,CACA99G,WACIhU,MAAMgU,WACNnU,KAAKwzI,qBAAoBtyB,OAAK,UAC9BlhH,KAAK2hI,QAAU3hI,KAAKwzI,kBAAoB,SACxC,MAAMvoH,EAAOjrB,KAAKoxI,aAAe,IAAIxpI,KACrC5H,KAAK2wI,wBACL3wI,KAAKuvI,aAAetkH,EAAKkB,WACzBnsB,KAAKwvI,YAAcvkH,EAAKmB,cACxBpsB,KAAK6yI,YAAc,GACnB7yI,KAAKynI,YAAcznI,KAAKkxI,KACN,SAAdlxI,KAAKkxI,OACLlxI,KAAKgxI,iBACLhxI,KAAKswI,SAASrlH,GACdjrB,KAAKyvI,aAAazvI,KAAKuvI,aAAcvvI,KAAKwvI,aAC1CxvI,KAAK4yI,YAA4G,IAA5F,OAAkBnmH,KAAKG,MAAM,OAAYH,KAAKG,MAAM,MAAcH,KAAKG,MAAM,QAAoB,GAAK,GAAK,KAEpI5sB,KAAKszI,wBAA0BtzI,KAAKmZ,OAAOy6H,oBAAoBxuI,UAAU,KACrEpF,KAAKgxI,iBACLhxI,KAAKmgH,GAAG0zB,cAAa,GAEzB7zI,KAAKg1H,aAAc,CACvB,CACAnoB,kBACI1sG,MAAM0sG,kBACF7sG,KAAKm9H,SACLn9H,KAAK+xI,kBAAoB/xI,KAAK+xI,iBAAiBt8D,cAAc1a,aAAa/6D,KAAKwzI,kBAAmB,KAC7FxzI,KAAK+V,WAAa/V,KAAKm9H,SACxBn9H,KAAKmyI,oBACuB,IAAxBnyI,KAAK4wI,gBACD5wI,KAAK+xI,kBAAoB/xI,KAAK+xI,iBAAiBt8D,gBAC/Cz1E,KAAK+xI,iBAAiBt8D,cAAc1oC,MAAMxe,SAAQk2F,OAAczkH,KAAK6xI,oBAAoBp8D,eAAiB,OAK9H,CACA2hD,UACAE,qBACIt3H,KAAKo3H,UAAU7jH,QAAS1B,IACpB,OAAQA,EAAK0lH,WACT,IAAK,OAoCL,QACIv3H,KAAK8lI,cAAgBj0H,EAAK+C,SAC1B,MAnCJ,IAAK,SACD5U,KAAK4kI,gBAAkB/yH,EAAK+C,SAC5B,MACJ,IAAK,eACD5U,KAAKkmI,sBAAwBr0H,EAAK+C,SAClC,MACJ,IAAK,SACD5U,KAAKutI,gBAAkB17H,EAAK+C,SAC5B,MACJ,IAAK,YACD5U,KAAKkiI,mBAAqBrwH,EAAK+C,SAC/B,MACJ,IAAK,eACD5U,KAAK2jI,sBAAwB9xH,EAAK+C,SAClC,MACJ,IAAK,WACD5U,KAAKklI,kBAAoBrzH,EAAK+C,SAC9B,MACJ,IAAK,cACD5U,KAAKqhI,qBAAuBxvH,EAAK+C,SACjC,MACJ,IAAK,YACD5U,KAAK6gI,mBAAqBhvH,EAAK+C,SAC/B,MACJ,IAAK,gBACD5U,KAAK8pI,uBAAyBj4H,EAAK+C,SACnC,MACJ,IAAK,gBACD5U,KAAKgrI,uBAAyBn5H,EAAK+C,SACnC,MACJ,IAAK,SACD5U,KAAK2tI,gBAAkB97H,EAAK+C,SAKpC,EAER,CACA8pD,eAAegD,GACX,OAAO1hE,KAAKmZ,OAAOulD,eAAegD,EACtC,CACA0uE,oBAAoBtpG,EAAO81B,GACvB58D,KAAK6yI,YAAc,GACnB,QAASznI,EAAI07B,EAAO17B,GAAKwxD,EAAKxxD,IAC1BpL,KAAK6yI,YAAYx/H,KAAKjI,EAE9B,CACA4lI,iBACIhxI,KAAKknI,SAAW,GAChB,IAAI4M,EAAW9zI,KAAK+zI,qBAChBC,EAAYh0I,KAAK0+D,eAAeu1E,MAAgBC,eACpD,QAAS9oI,EAAI,EAAGA,EAAI,EAAGA,IACnBpL,KAAKknI,SAAS7zH,KAAK2gI,EAAUF,IAC7BA,EAAuB,GAAZA,EAAgB,IAAMA,CAEzC,CACA1L,oBACI,IAAIA,EAAoB,GACxB,QAASh9H,EAAI,EAAGA,GAAK,GAAIA,IACrBg9H,EAAkB/0H,KAAKrT,KAAKmZ,OAAOulD,eAAe,mBAAmBtzD,IAEzE,OAAOg9H,CACX,CACA5D,mBACI,IAAIA,EAAmB,GACnB2P,EAAOn0I,KAAKwvI,YAAexvI,KAAKwvI,YAAc,GAClD,QAASpkI,EAAI,EAAGA,EAAI,GAAIA,IACpBo5H,EAAiBnxH,KAAK8gI,EAAO/oI,GAEjC,OAAOo5H,CACX,CACAiL,aAAavgI,EAAOD,GAChBjP,KAAK8/F,OAAS9/F,KAAK8/F,OAAS,GAC5B,QAAS10F,EAAI,EAAGA,EAAIpL,KAAK4wI,eAAgBxlI,IAAK,CAC1C,IAAIwlC,EAAI1hC,EAAQ9D,EACZ+uE,EAAIlrE,EACJ2hC,EAAI,KACJA,EAAKA,EAAI,GAAM,EACfupC,EAAIlrE,EAAO,GAEfjP,KAAK8/F,OAAOzsF,KAAKrT,KAAKo0I,YAAYxjG,EAAGupC,GACzC,CACJ,CACAk6D,cAAcppH,GACV,IAAIqpH,EAAY,IAAI1sI,KAAKqjB,EAAKQ,WAC9B,GAAIzrB,KAAK6uI,4BAA6B,CAClC,IAAIiC,GAAkB9wI,KAAK+zI,qBAC3BO,EAAU/3B,QAAQ+3B,EAAUpoH,UAAY,EAAI4kH,EAAiBwD,EAAU33B,SAC3E,MAEI23B,EAAU/3B,QAAQ+3B,EAAUpoH,UAAY,GAAKooH,EAAU33B,UAAY,IAEvE,IAAIh1G,EAAO2sI,EAAU7oH,UACrB6oH,SAAUn3B,SAAS,GACnBm3B,EAAU/3B,QAAQ,GACX9vF,KAAKG,MAAMH,KAAKq1B,OAAOn6C,EAAO2sI,EAAU7oH,WAAa,OAAY,GAAK,CACjF,CACA2oH,YAAYllI,EAAOD,GACf,IAAIk4H,EAAQ,GACRoN,EAAWv0I,KAAKw0I,wBAAwBtlI,EAAOD,GAC/CwlI,EAAaz0I,KAAK00I,oBAAoBxlI,EAAOD,GAC7C0lI,EAAsB30I,KAAK40I,wBAAwB1lI,EAAOD,GAC1D4lI,EAAQ,EACR5iH,EAAQ,IAAIrqB,KACZ49H,EAAc,GACdsP,EAAYroH,KAAKkzE,MAAM80C,EAAaF,GAAY,GACpD,QAASnpI,EAAI,EAAGA,EAAI0pI,EAAW1pI,IAAK,CAChC,IAAIklG,GAAO,GACX,GAAS,GAALllG,EAAQ,CACR,QAAS2mD,GAAI4iF,EAAsBJ,EAAW,EAAGxiF,IAAK4iF,EAAqB5iF,KAAK,CAC5E,IAAIkb,GAAOjtE,KAAK+0I,wBAAwB7lI,EAAOD,GAC/CqhG,GAAKj9F,KAAK,CACN2Y,IAAK+lC,GACL7iD,MAAO+9D,GAAK/9D,MACZD,KAAMg+D,GAAKh+D,KACX8uH,YAAY,EACZ9rG,MAAOjyB,KAAKg1I,QAAQ/iH,EAAO8/B,GAAGkb,GAAK/9D,MAAO+9D,GAAKh+D,MAC/CivH,WAAYl+H,KAAKi1I,aAAaljF,GAAGkb,GAAK/9D,MAAO+9D,GAAKh+D,MAAM,IAEhE,CACA,IAAIimI,GAAsB,EAAI5kC,GAAKjlG,OACnC,QAAS0mD,GAAI,EAAGA,GAAImjF,GAAqBnjF,KACrCu+C,GAAKj9F,KAAK,CACN2Y,IAAK6oH,EACL3lI,MAAOA,EACPD,KAAMA,EACNgjB,MAAOjyB,KAAKg1I,QAAQ/iH,EAAO4iH,EAAO3lI,EAAOD,GACzCivH,WAAYl+H,KAAKi1I,aAAaJ,EAAO3lI,EAAOD,GAAM,KAEtD4lI,GAER,MAEI,QAAS9iF,GAAI,EAAGA,GAAI,EAAGA,KAAK,CACxB,GAAI8iF,EAAQJ,EAAY,CACpB,IAAIzwI,GAAOhE,KAAKm1I,oBAAoBjmI,EAAOD,GAC3CqhG,GAAKj9F,KAAK,CACN2Y,IAAK6oH,EAAQJ,EACbvlI,MAAOlL,GAAKkL,MACZD,KAAMjL,GAAKiL,KACX8uH,YAAY,EACZ9rG,MAAOjyB,KAAKg1I,QAAQ/iH,EAAO4iH,EAAQJ,EAAYzwI,GAAKkL,MAAOlL,GAAKiL,MAChEivH,WAAYl+H,KAAKi1I,aAAaJ,EAAQJ,EAAYzwI,GAAKkL,MAAOlL,GAAKiL,MAAM,IAEjF,MAEIqhG,GAAKj9F,KAAK,CACN2Y,IAAK6oH,EACL3lI,MAAOA,EACPD,KAAMA,EACNgjB,MAAOjyB,KAAKg1I,QAAQ/iH,EAAO4iH,EAAO3lI,EAAOD,GACzCivH,WAAYl+H,KAAKi1I,aAAaJ,EAAO3lI,EAAOD,GAAM,KAG1D4lI,GACJ,CAEA70I,KAAKgnI,UACLxB,EAAYnyH,KAAKrT,KAAKq0I,cAAc,IAAIzsI,KAAK0oG,GAAK,GAAGrhG,KAAMqhG,GAAK,GAAGphG,MAAOohG,GAAK,GAAGtkF,OAEtFm7G,EAAM9zH,KAAKi9F,GACf,CACA,MAAO,CACHphG,MAAOA,EACPD,KAAMA,EACNk4H,MAAOA,EACP3B,YAAaA,EAErB,CACA8K,SAASrlH,GACLjrB,KAAKkzB,GAAKjI,EAAK+B,WAAa,GACxBhtB,KAAKwtI,UACLxtI,KAAKmsI,cAAgBlhH,EAAKiC,aAC1BltB,KAAKirI,cAAgBhgH,EAAKmC,aAC1BptB,KAAKo1I,iBAAiBnqH,EAAK+B,aAEtBhtB,KAAKo9H,WACVp9H,KAAKmsI,cAAgB,EACrBnsI,KAAKksI,YAAc,EACnBlsI,KAAKirI,cAAgB,EAE7B,CACAoK,YAAYrtI,GACJhI,KAAK+V,SACL/N,EAAM0S,kBAGV1a,KAAKgyI,iBAAkB,EACE,UAArBhyI,KAAKynI,aACLznI,KAAKs1I,gBACL9/H,WAAW,KACPxV,KAAKkyI,aAAY,EAClB,IAEuB,SAArBlyI,KAAKynI,aACVznI,KAAKu1I,kBACL//H,WAAW,KACPxV,KAAKkyI,aAAY,EAClB,KAGuB,IAAtBlyI,KAAKuvI,cACLvvI,KAAKuvI,aAAe,GACpBvvI,KAAKs1I,iBAGLt1I,KAAKuvI,eAETvvI,KAAKyxI,cAAcp9H,KAAK,CAAEnF,MAAOlP,KAAKuvI,aAAe,EAAGtgI,KAAMjP,KAAKwvI,cACnExvI,KAAKyvI,aAAazvI,KAAKuvI,aAAcvvI,KAAKwvI,cAElD,CACAgG,WAAWxtI,GACHhI,KAAK+V,SACL/N,EAAM0S,kBAGV1a,KAAKgyI,iBAAkB,EACE,UAArBhyI,KAAKynI,aACLznI,KAAKy1I,gBACLjgI,WAAW,KACPxV,KAAKkyI,aAAY,EAClB,IAEuB,SAArBlyI,KAAKynI,aACVznI,KAAK01I,kBACLlgI,WAAW,KACPxV,KAAKkyI,aAAY,EAClB,KAGuB,KAAtBlyI,KAAKuvI,cACLvvI,KAAKuvI,aAAe,EACpBvvI,KAAKy1I,iBAGLz1I,KAAKuvI,eAETvvI,KAAKyxI,cAAcp9H,KAAK,CAAEnF,MAAOlP,KAAKuvI,aAAe,EAAGtgI,KAAMjP,KAAKwvI,cACnExvI,KAAKyvI,aAAazvI,KAAKuvI,aAAcvvI,KAAKwvI,cAElD,CACA8F,gBACIt1I,KAAKwvI,cACL,IAAImG,EAAe31I,KAAK6yI,YACxB,GAAI7yI,KAAKyuI,eAAiBzuI,KAAKwvI,YAAcmG,EAAa,GAAI,CAC1D,IAAIC,EAAaD,EAAaA,EAAatqI,OAAS,GAAKsqI,EAAa,GACtE31I,KAAKowI,oBAAoBuF,EAAa,GAAKC,EAAYD,EAAaA,EAAatqI,OAAS,GAAKuqI,EACnG,CACJ,CACAL,kBACIv1I,KAAKwvI,YAAcxvI,KAAKwvI,YAAc,EAC1C,CACAkG,kBACI11I,KAAKwvI,YAAcxvI,KAAKwvI,YAAc,EAC1C,CACAiG,gBACIz1I,KAAKwvI,cACL,IAAImG,EAAe31I,KAAK6yI,YACxB,GAAI7yI,KAAKyuI,eAAiBzuI,KAAKwvI,YAAcmG,EAAaA,EAAatqI,OAAS,GAAI,CAChF,IAAIuqI,EAAaD,EAAaA,EAAatqI,OAAS,GAAKsqI,EAAa,GACtE31I,KAAKowI,oBAAoBuF,EAAa,GAAKC,EAAYD,EAAaA,EAAatqI,OAAS,GAAKuqI,EACnG,CACJ,CACA9R,kBAAkB97H,GACdhI,KAAK61I,eAAe,SACpB7tI,EAAM0S,gBACV,CACA2pH,iBAAiBr8H,GACbhI,KAAK61I,eAAe,QACpB7tI,EAAM0S,gBACV,CACA4rH,aAAat+H,EAAO8tI,IACZ91I,KAAK+V,UAAa+/H,EAAS5X,YAI3Bl+H,KAAK+1I,uBAAyB/1I,KAAKyW,WAAWq/H,IAC9C91I,KAAK0S,MAAQ1S,KAAK0S,MAAMzE,OAAO,CAACgd,EAAM7f,KAC1BpL,KAAKg2I,aAAa/qH,EAAM6qH,IAEV,IAAtB91I,KAAK0S,MAAMrH,SACXrL,KAAK0S,MAAQ,MAEjB1S,KAAKi2I,YAAYj2I,KAAK0S,QAGlB1S,KAAKk2I,iBAAiBJ,IACtB91I,KAAKm2I,WAAWL,IAGnB91I,KAAKo2I,qBAAuBp2I,KAAKmvI,sBAA0BnvI,KAAKi+H,oBAAsBj+H,KAAK0S,MAAM,KAClG8C,WAAW,KACPxN,EAAM0S,iBACN1a,KAAKq2I,cACDr2I,KAAK8hE,MACL9hE,KAAKs2I,kBAETt2I,KAAKmgH,GAAG0zB,cAAa,EACtB,KAEP7zI,KAAKuwI,mBACLvoI,EAAM0S,kBA5BF1S,EAAM0S,gBA6Bd,CACAw7H,iBAAiBJ,GACb,OAAI91I,KAAK+1I,uBACuB,MAArB/1I,KAAKgvI,cAAuBhvI,KAAKgvI,cAAgBhvI,KAAK0S,MAAQ1S,KAAK0S,MAAMrH,OAAS,EAGjG,CACA28H,cAAchgI,EAAO2sB,GACC,UAAd30B,KAAKkxI,KACLlxI,KAAKsmI,aAAat+H,EAAO,CAAEiH,KAAMjP,KAAKwvI,YAAatgI,MAAOylB,EAAO3I,IAAK,EAAGkyG,YAAY,KAGrFl+H,KAAKuvI,aAAe56G,EACpB30B,KAAKyvI,aAAazvI,KAAKuvI,aAAcvvI,KAAKwvI,aAC1CxvI,KAAK61I,eAAe,QACpB71I,KAAKyxI,cAAcp9H,KAAK,CAAEnF,MAAOlP,KAAKuvI,aAAe,EAAGtgI,KAAMjP,KAAKwvI,cAE3E,CACA/G,aAAazgI,EAAOiH,GACE,SAAdjP,KAAKkxI,KACLlxI,KAAKsmI,aAAat+H,EAAO,CAAEiH,KAAMA,EAAMC,MAAO,EAAG8c,IAAK,EAAGkyG,YAAY,KAGrEl+H,KAAKwvI,YAAcvgI,EACnBjP,KAAK61I,eAAe,SACpB71I,KAAK0xI,aAAar9H,KAAK,CAAEnF,MAAOlP,KAAKuvI,aAAe,EAAGtgI,KAAMjP,KAAKwvI,cAE1E,CACAe,mBACI,IAAIgG,EAAiB,GACrB,GAAIv2I,KAAK0S,MACL,GAAI1S,KAAKo2I,oBACLG,EAAiBv2I,KAAKw2I,eAAex2I,KAAK0S,YAAK,GAE1C1S,KAAK+1I,sBACV,QAAS3qI,EAAI,EAAGA,EAAIpL,KAAK0S,MAAMrH,OAAQD,IAEnCmrI,GADmBv2I,KAAKw2I,eAAex2I,KAAK0S,MAAMtH,IAE9CA,IAAMpL,KAAK0S,MAAMrH,OAAS,IAC1BkrI,GAAkBv2I,KAAKouI,kBAAoB,UAEnD,GAEKpuI,KAAKi+H,oBACNj+H,KAAK0S,OAAS1S,KAAK0S,MAAMrH,OAAQ,CACjC,IACIkrG,EAAUv2G,KAAK0S,MAAM,GACzB6jI,EAAiBv2I,KAAKw2I,eAFNx2I,KAAK0S,MAAM,IAGvB6jG,IACAggC,GAAkB,IAAMv2I,KAAKquI,eAAiB,IAAMruI,KAAKw2I,eAAejgC,GAEhF,CAGRv2G,KAAK2iI,gBAAkB4T,EACvBv2I,KAAKk5H,oBACDl5H,KAAK8xI,qBAAuB9xI,KAAK8xI,oBAAoBr8D,gBACrDz1E,KAAK8xI,oBAAoBr8D,cAAc/iE,MAAQ1S,KAAK2iI,gBAE5D,CACA6T,eAAevrH,GACX,IAAIsrH,EAAiBv2I,KAAKkvI,YAAcjkH,EAAO,KAC/C,MAAMwrH,EAAcz2I,KAAK02I,8BAA8BzrH,GACvD,OAAIjrB,KAAK22I,YAAY1rH,GACbjrB,KAAKo9H,SACLmZ,EAAiBv2I,KAAK42I,WAAW3rH,IAGjCsrH,EAAiBv2I,KAAK62I,WAAW5rH,EAAMjrB,KAAK82I,iBACxC92I,KAAKwtI,WACL+I,GAAkB,IAAMv2I,KAAK42I,WAAW3rH,KAIzB,WAAlBjrB,KAAK8uI,WACVyH,EAAiBtrH,GAErBsrH,EAAiBE,EAAcF,EAAiB,GACzCA,CACX,CACA5P,qBAAqBmP,GACjB,OAAO,IAAIluI,KAAKkuI,EAAS7mI,KAAM6mI,EAAS5mI,MAAO4mI,EAAS9pH,IAC5D,CACA06G,cAAcz7G,GACV,MAAO,GAAGA,EAAKmB,iBAAiBnB,EAAKkB,cAAclB,EAAKiB,WAC5D,CACAkpH,iBAAiBn1C,GACU,MAAnBjgG,KAAKqsI,YACLrsI,KAAKkzB,GAAK+sE,EAAQ,GAEdjgG,KAAKksI,YADLjsC,GAAS,GACmB,IAATA,EAAc,GAAKA,EAAQ,GAGlB,GAATA,EAAa,GAAKA,GAIzCjgG,KAAKksI,YAAcjsC,CAE3B,CACA41C,eAAepO,GACXznI,KAAKynI,YAAcA,EACnBznI,KAAKmgH,GAAGgZ,gBACRn5H,KAAKukH,cACT,CACA4xB,WAAWL,GACP,IAAI7qH,EAAOjrB,KAAK2mI,qBAAqBmP,GA0BrC,GAzBI91I,KAAKwtI,WAGGviH,EAAK8rH,SAFU,MAAnB/2I,KAAKqsI,WACoB,KAArBrsI,KAAKksI,YACSlsI,KAAKkzB,GAAK,GAAK,EAEflzB,KAAKkzB,GAAKlzB,KAAKksI,YAAc,GAAKlsI,KAAKksI,YAG3ClsI,KAAKksI,aAEvBjhH,EAAK+rH,WAAWh3I,KAAKmsI,eACrBlhH,EAAKgsH,WAAWj3I,KAAKirI,gBAErBjrI,KAAKqvI,SAAWrvI,KAAKqvI,QAAUpkH,IAC/BA,EAAOjrB,KAAKqvI,QACZrvI,KAAKo1I,iBAAiBnqH,EAAK+B,YAC3BhtB,KAAKmsI,cAAgBlhH,EAAKiC,aAC1BltB,KAAKirI,cAAgBhgH,EAAKmC,cAE1BptB,KAAK0vI,SAAW1vI,KAAK0vI,QAAUzkH,IAC/BA,EAAOjrB,KAAK0vI,QACZ1vI,KAAKo1I,iBAAiBnqH,EAAK+B,YAC3BhtB,KAAKmsI,cAAgBlhH,EAAKiC,aAC1BltB,KAAKirI,cAAgBhgH,EAAKmC,cAE1BptB,KAAKo2I,oBACLp2I,KAAKi2I,YAAYhrH,QAAI,GAEhBjrB,KAAK+1I,sBACV/1I,KAAKi2I,YAAYj2I,KAAK0S,MAAQ,IAAI1S,KAAK0S,MAAOuY,GAAQ,CAACA,SAAK,GAEvDjrB,KAAKi+H,mBACV,GAAIj+H,KAAK0S,OAAS1S,KAAK0S,MAAMrH,OAAQ,CACjC,IAAIirG,EAAYt2G,KAAK0S,MAAM,GACvB6jG,EAAUv2G,KAAK0S,MAAM,IACpB6jG,GAAWtrF,EAAKQ,WAAa6qF,EAAU7qF,UACxC8qF,EAAUtrF,GAGVqrF,EAAYrrF,EACZsrF,EAAU,MAEdv2G,KAAKi2I,YAAY,CAAC3/B,EAAWC,GACjC,MAEIv2G,KAAKi2I,YAAY,CAAChrH,EAAM,OAGhCjrB,KAAKsxI,SAASj9H,KAAK4W,EACvB,CACAgrH,YAAYvjI,GAER,GADA1S,KAAK0S,MAAQA,EACQ,QAAjB1S,KAAK8uI,SACL9uI,KAAKsyI,cAActyI,KAAK0S,YAAK,GAEP,UAAjB1S,KAAK8uI,SACV,GAAI9uI,KAAKo2I,oBACLp2I,KAAKsyI,cAActyI,KAAKw2I,eAAex2I,KAAK0S,YAE3C,CACD,IAAIwkI,EAAiB,KACjBz5H,MAAMC,QAAQ1d,KAAK0S,SACnBwkI,EAAiBl3I,KAAK0S,MAAM1G,IAAKif,GAASjrB,KAAKw2I,eAAevrH,KAElEjrB,KAAKsyI,cAAc4E,EACvB,CAER,CACA1C,wBAAwBtlI,EAAOD,GAC3B,IAAI+c,EAAM,IAAIpkB,KACdokB,EAAIuwF,QAAQ,GACZvwF,EAAImxF,SAASjuG,GACb8c,EAAI4zD,YAAY3wE,GAChB,IAAI6kI,EAAW9nH,EAAI2wF,SAAW38G,KAAKm3I,iBACnC,OAAOrD,GAAY,EAAIA,EAAW,EAAIA,CAC1C,CACAY,oBAAoBxlI,EAAOD,GACvB,OAAO,GAAKjP,KAAKo3I,qBAAqB,IAAIxvI,KAAKqH,EAAMC,EAAO,KAAKgd,SACrE,CACA0oH,wBAAwB1lI,EAAOD,GAC3B,IAAIg+D,EAAOjtE,KAAK+0I,wBAAwB7lI,EAAOD,GAC/C,OAAOjP,KAAK00I,oBAAoBznE,EAAK/9D,MAAO+9D,EAAKh+D,KACrD,CACA8lI,wBAAwB7lI,EAAOD,GAC3B,IAAI2hC,EAAGupC,EACP,OAAc,IAAVjrE,GACA0hC,EAAI,GACJupC,EAAIlrE,EAAO,IAGX2hC,EAAI1hC,EAAQ,EACZirE,EAAIlrE,GAED,CAAEC,MAAO0hC,EAAG3hC,KAAMkrE,EAC7B,CACAg7D,oBAAoBjmI,EAAOD,GACvB,IAAI2hC,EAAGupC,EACP,OAAc,KAAVjrE,GACA0hC,EAAI,EACJupC,EAAIlrE,EAAO,IAGX2hC,EAAI1hC,EAAQ,EACZirE,EAAIlrE,GAED,CAAEC,MAAO0hC,EAAG3hC,KAAMkrE,EAC7B,CACAg9D,iBACI,IAAIrG,EAAiB9wI,KAAK+zI,qBAC1B,OAAOjD,EAAiB,EAAI,EAAIA,EAAiB,CACrD,CACAr6H,WAAWq/H,GACP,IAAI91I,KAAK0S,MAsBL,OAAO,EArBP,GAAI1S,KAAKo2I,oBACL,OAAOp2I,KAAKg2I,aAAah2I,KAAK0S,MAAOojI,GAEpC,GAAI91I,KAAK+1I,sBAAuB,CACjC,IAAIsB,GAAW,EACf,QAASpsH,KAAQjrB,KAAK0S,MAElB,GADA2kI,EAAWr3I,KAAKg2I,aAAa/qH,EAAM6qH,GAC/BuB,EACA,MAGR,OAAOA,CACX,QACSr3I,KAAKi+H,mBACNj+H,KAAK0S,MAAM,GACJ1S,KAAKg2I,aAAah2I,KAAK0S,MAAM,GAAIojI,IAAa91I,KAAKg2I,aAAah2I,KAAK0S,MAAM,GAAIojI,IAAa91I,KAAKs3I,cAAct3I,KAAK0S,MAAM,GAAI1S,KAAK0S,MAAM,GAAIojI,GAE7I91I,KAAKg2I,aAAah2I,KAAK0S,MAAM,GAAIojI,QALhD,CAWR,CACAyB,eACI,OAAqB,MAAdv3I,KAAK0S,OAAuC,iBAAf1S,KAAK0S,KAC7C,CACAyrH,gBAAgBjvH,GACZ,GAAIlP,KAAKu3I,iBAAmBv3I,KAAK+1I,sBAAuB,CACpD,MAAOjvG,EAAO81B,GAAO58D,KAAKi+H,mBAAqBj+H,KAAK0S,MAAQ,CAAC1S,KAAK0S,MAAO1S,KAAK0S,OACxE2kI,EAAW,IAAIzvI,KAAK5H,KAAKwvI,YAAatgI,EAAO,GACnD,OAAOmoI,GAAYvwG,GAASuwG,IAAaz6E,GAAO91B,EACpD,CACA,OAAO,CACX,CACAohG,gBAAgBh5H,EAAOD,GACnB,MAAMuoI,EAAcvoI,GAAQjP,KAAKwvI,YACjC,QAASxjH,EAAM,EAAGA,EAAMhsB,KAAK00I,oBAAoBxlI,EAAOsoI,GAAe,EAAGxrH,IACtE,GAAIhsB,KAAKi1I,aAAajpH,EAAK9c,EAAOsoI,GAAa,GAC3C,OAAO,EAGf,OAAO,CACX,CACA7O,eAAe15H,GACX,OAAOwO,MAAM,IACRo7C,KAAK,GACLokC,MAAM,CAAC96F,EAAG+M,IAAUlP,KAAKkoI,gBAAgBh5H,EAAOD,GACzD,CACAmvH,eAAenvH,GACX,GAAIjP,KAAKu3I,eAAgB,CACrB,IAAI7kI,EAAQ1S,KAAKi+H,mBAAqBj+H,KAAK0S,MAAM,GAAK1S,KAAK0S,MAC3D,OAAQ1S,KAAK+1I,uBAAwBrjI,EAAM0Z,gBAAkBnd,CACjE,CACA,OAAO,CACX,CACA+mI,aAAatjI,EAAOojI,GAChB,SAAIpjI,OAASG,OAAOH,KACTA,EAAMwZ,YAAc4pH,EAAS9pH,KAAOtZ,EAAMyZ,aAAe2pH,EAAS5mI,OAASwD,EAAM0Z,gBAAkB0pH,EAAS7mI,IAG3H,CACAqoI,cAAcxwG,EAAO81B,EAAKk5E,GAEtB,MAAIjjI,OAAOi0B,KAAK,EAAKj0B,OAAO+pD,GAAM,CAC9B,IAAI3xC,EAAOjrB,KAAK2mI,qBAAqBmP,GACrC,OAAOhvG,EAAMrb,WAAaR,EAAKQ,WAAamxC,EAAInxC,WAAaR,EAAKQ,SACtE,CACA,OALc,CAMlB,CACA2qH,oBACI,MAA8B,WAAvBp2I,KAAK+uI,aAChB,CACA9Q,mBACI,MAA8B,UAAvBj+H,KAAK+uI,aAChB,CACAgH,sBACI,MAA8B,aAAvB/1I,KAAK+uI,aAChB,CACAiG,QAAQ/iH,EAAOjG,EAAK9c,EAAOD,GACvB,OAAOgjB,EAAM/F,YAAcF,GAAOiG,EAAM9F,aAAejd,GAAS+iB,EAAM7F,gBAAkBnd,CAC5F,CACAgmI,aAAajpH,EAAK9c,EAAOD,EAAM8uH,GAC3B,IAAI0Z,GAAW,EACXC,GAAW,EACXC,GAAY,EACZC,GAAW,EACf,QAAI7Z,IAAe/9H,KAAKsuI,qBAGpBtuI,KAAKqvI,UACDrvI,KAAKqvI,QAAQjjH,cAAgBnd,GAGxBjP,KAAKqvI,QAAQjjH,gBAAkBnd,GAA4B,QAApBjP,KAAKynI,cAC7CznI,KAAKqvI,QAAQljH,WAAajd,GAGrBlP,KAAKqvI,QAAQljH,aAAejd,GAC7BlP,KAAKqvI,QAAQnjH,UAAYF,MACzByrH,GAAW,GAKvBz3I,KAAK0vI,UACD1vI,KAAK0vI,QAAQtjH,cAAgBnd,GAGxBjP,KAAK0vI,QAAQtjH,gBAAkBnd,IAChCjP,KAAK0vI,QAAQvjH,WAAajd,GAGrBlP,KAAK0vI,QAAQvjH,aAAejd,GAC7BlP,KAAK0vI,QAAQxjH,UAAYF,MACzB0rH,GAAW,GAKvB13I,KAAK4vI,gBACL+H,GAAa33I,KAAK63I,eAAe7rH,EAAK9c,EAAOD,IAE7CjP,KAAK8vI,eACL8H,GAAY53I,KAAK83I,cAAc9rH,EAAK9c,EAAOD,IAExCwoI,GAAYC,GAAYC,GAAaC,EAChD,CACAC,eAAe7rH,EAAK9c,EAAOD,GACvB,GAAIjP,KAAK4vI,cACL,QAASmI,KAAgB/3I,KAAK4vI,cAC1B,GAAImI,EAAa3rH,gBAAkBnd,GAAQ8oI,EAAa5rH,aAAejd,GAAS6oI,EAAa7rH,YAAcF,EACvG,OAAO,EAInB,OAAO,CACX,CACA8rH,cAAc9rH,EAAK9c,EAAOD,GACtB,GAAIjP,KAAK8vI,aAAc,CAEnB,IAAIkI,EADU,IAAIpwI,KAAKqH,EAAMC,EAAO8c,GACR2wF,SAC5B,OAAoD,IAA7C38G,KAAK8vI,aAAaxrI,QAAQ0zI,EACrC,CACA,OAAO,CACX,CACA5V,aAAap6H,GACThI,KAAK6+G,OAAQ,EACT7+G,KAAK8hI,aACL9hI,KAAKi4I,cAETj4I,KAAK8+G,QAAQzqG,KAAKrM,EACtB,CACAs6H,eACQtiI,KAAK8hI,cAAgB9hI,KAAKg9H,gBAC1Bh9H,KAAKi4I,aAEb,CACA1V,YAAYv6H,GACRhI,KAAK6+G,OAAQ,EACb7+G,KAAK++G,OAAO1qG,KAAKrM,GACZhI,KAAKkvI,aACNlvI,KAAKuwI,mBAETvwI,KAAKuyI,gBACT,CACA/Q,cAAcx5H,EAAOkwI,EAAal4I,KAAK8xI,qBAAqBr8D,eACnDz1E,KAAKg9H,eAKNh9H,KAAKq2I,eAJL6B,EAAWr5B,QACX7+G,KAAKi4I,cAKb,CACApyH,QACI7lB,KAAK2iI,gBAAkB,KACvB3iI,KAAK0S,MAAQ,KACb1S,KAAKsyI,cAActyI,KAAK0S,OACxB1S,KAAK+9G,QAAQ1pG,MACjB,CACA44H,eAAejlI,GACXhI,KAAKiuI,eAAer4F,IAAI,CACpBuiG,cAAenwI,EACfg3C,OAAQh/C,KAAKg7D,GAAGya,eAExB,CACAyuD,aAAavvG,GACT,OAAO30B,KAAKmZ,OAAOulD,eAAe,cAAc/pC,EACpD,CACA2vG,QAAQp1H,GACJ,MAA4B,UAArBlP,KAAKynI,YAA0BznI,KAAKwvI,YAActgI,EAAMD,IACnE,CACAg1H,2BACI,OAAOjkI,KAAK4wI,eAAiB,GAAK5wI,KAAK+V,QAC3C,CACAuxH,kBAAkBt/H,GACdhI,KAAKqzI,gBAAkB,CAAE+E,UAAU,EAAM/xE,QAAQ,GACjDrmE,KAAKq1I,YAAYrtI,EACrB,CACAu/H,kBAAkBv/H,GACdhI,KAAKqzI,gBAAkB,CAAE+E,UAAU,EAAO/xE,QAAQ,GAClDrmE,KAAKw1I,WAAWxtI,EACpB,CACA+7H,yBAAyB/7H,GACrB,OAAQA,EAAMqwI,OAEV,KAAK,EAID,GAHKr4I,KAAKm9H,QACNn9H,KAAKs4I,UAAUtwI,GAEfhI,KAAKm9H,OAAQ,CACb,MAAMob,KAAiBx0B,OAAW/jH,KAAK6xI,oBAAoBp8D,cAAe,wBAE1E,GAAIz1E,KAAKo9H,SACL,OAFYp1H,EAAMg3C,QAKHu5F,EAAe/oD,SAAS+oD,GAAgB/oD,UAAUnkF,OAAS,IACtErL,KAAKmyI,mBAGjB,CACA,MAEJ,KAAK,GACDnyI,KAAK8xI,qBAAqBr8D,cAAcopC,QACxC7+G,KAAKg9H,gBAAiB,EACtBh1H,EAAM0S,iBAMlB,CACA2nH,eAAer6H,GACXhI,KAAK8yI,WAAY,EACK,KAAlB9qI,EAAMwwI,SAAkBx4I,KAAK+xI,iBAC7B/xI,KAAKs4I,UAAUtwI,GAEQ,KAAlBA,EAAMwwI,QACPx4I,KAAKg9H,iBACLh9H,KAAK8xI,qBAAqBr8D,cAAcopC,QACxC7+G,KAAKg9H,gBAAiB,EACtBh1H,EAAM0S,kBAGa,KAAlB1S,EAAMwwI,QACPx4I,KAAKg9H,iBACLh9H,KAAKg9H,gBAAiB,EACtBh1H,EAAM0S,kBAGa,IAAlB1S,EAAMwwI,SAAiBx4I,KAAK+xI,sBACjCllB,OAAqB7sH,KAAK+xI,iBAAiBt8D,eAAeliE,QAASynD,GAAQA,EAAGy9E,SAAW,MACrFz4I,KAAKg9H,iBACLh9H,KAAKg9H,gBAAiB,GAGlC,CACAwJ,kBAAkBx+H,EAAO8tI,EAAU4C,GAC/B,MAAMC,EAAc3wI,EAAMsqH,cACpBsmB,EAAOD,EAAY7zB,cACnBvlC,EAAcv/E,KAAK2mI,qBAAqBmP,GAC9C,OAAQ9tI,EAAMqwI,OAEV,KAAK,GAAI,CACLM,EAAYF,SAAW,KACvB,IAAII,MAAYC,OAASF,GACrBG,GAAUH,EAAK9zB,cAAc+I,mBAC7BkrB,IAEA,EAAIl1B,OADYk1B,GAAQvpD,SAASqpD,IAAWrpD,SAAS,GAC7B,eACpBxvF,KAAKqzI,gBAAkB,CAAE+E,UAAU,GACnCp4I,KAAKw1I,WAAWxtI,KAGhB+wI,GAAQvpD,SAASqpD,IAAWrpD,SAAS,GAAGipD,SAAW,IACnDM,GAAQvpD,SAASqpD,IAAWrpD,SAAS,GAAGqvB,UAI5C7+G,KAAKqzI,gBAAkB,CAAE+E,UAAU,GACnCp4I,KAAKw1I,WAAWxtI,IAEpBA,EAAM0S,iBACN,KACJ,CAEA,KAAK,GAAI,CACLi+H,EAAYF,SAAW,KACvB,IAAII,MAAYC,OAASF,GACrBI,GAAUJ,EAAK9zB,cAAcgJ,uBACjC,GAAIkrB,GAAS,CACT,IAAIC,GAAYD,GAAQxpD,SAASqpD,IAAWrpD,SAAS,IACrD,EAAIq0B,OAASo1B,GAAW,eACpBj5I,KAAKqzI,gBAAkB,CAAE+E,UAAU,GACnCp4I,KAAKq1I,YAAYrtI,KAGjBixI,GAAUR,SAAW,IACrBQ,GAAUp6B,QAElB,MAEI7+G,KAAKqzI,gBAAkB,CAAE+E,UAAU,GACnCp4I,KAAKq1I,YAAYrtI,GAErBA,EAAM0S,iBACN,KACJ,CAEA,KAAK,GAAI,CACLi+H,EAAYF,SAAW,KACvB,IAAIS,GAAWN,EAAK9qB,uBACpB,GAAIorB,GAAU,CACV,IAAID,GAAYC,GAAS1pD,SAAS,IAClC,EAAIq0B,OAASo1B,GAAW,gBAAY,EAAKp1B,OAASo1B,GAAUn0B,cAAe,2BACvE9kH,KAAKm5I,iBAAgB,EAAMT,IAG3BO,GAAUR,SAAW,IACrBQ,GAAUp6B,QAElB,MAEI7+G,KAAKm5I,iBAAgB,EAAMT,GAE/B1wI,EAAM0S,iBACN,KACJ,CAEA,KAAK,GAAI,CACLi+H,EAAYF,SAAW,KACvB,IAAIW,GAAWR,EAAK/qB,mBACpB,GAAIurB,GAAU,CACV,IAAIH,GAAYG,GAAS5pD,SAAS,IAClC,EAAIq0B,OAASo1B,GAAW,cACpBj5I,KAAKm5I,iBAAgB,EAAOT,IAG5BO,GAAUR,SAAW,IACrBQ,GAAUp6B,QAElB,MAEI7+G,KAAKm5I,iBAAgB,EAAOT,GAEhC1wI,EAAM0S,iBACN,KACJ,CAGA,KAAK,GACL,KAAK,GACD1a,KAAKsmI,aAAat+H,EAAO8tI,GACzB9tI,EAAM0S,iBACN,MAGJ,KAAK,GACD1a,KAAK8xI,qBAAqBr8D,cAAcopC,QACxC7+G,KAAKg9H,gBAAiB,EACtBh1H,EAAM0S,iBACN,MAGJ,KAAK,EACI1a,KAAKm9H,QACNn9H,KAAKs4I,UAAUtwI,GAEnB,MAGJ,KAAK,GAAI,CACL2wI,EAAYF,SAAW,KACvB,MAAMY,GAAc,IAAIzxI,KAAK23E,EAAYnzD,cAAemzD,EAAYpzD,WAAa,EAAGozD,EAAYrzD,WAC1FotH,GAAWt5I,KAAK0mI,cAAc2S,IACpCr5I,KAAKm5I,iBAAgB,EAAMT,EAAY,mBAAmBY,qCAC1DtxI,EAAM0S,iBACN,KACJ,CAEA,KAAK,GAAI,CACLi+H,EAAYF,SAAW,KACvB,MAAMY,GAAc,IAAIzxI,KAAK23E,EAAYnzD,cAAemzD,EAAYpzD,WAAa,EAAGozD,EAAYrzD,WAC1FotH,GAAWt5I,KAAK0mI,cAAc2S,IACpCr5I,KAAKm5I,iBAAgB,EAAOT,EAAY,mBAAmBY,qCAC3DtxI,EAAM0S,iBACN,KACJ,CAEA,KAAK,GACDi+H,EAAYF,SAAW,KACvB,MAAMc,EAAe,IAAI3xI,KAAK23E,EAAYnzD,cAAemzD,EAAYpzD,WAAY,GAC3EqtH,EAAkBx5I,KAAK0mI,cAAc6S,GACrCE,KAAe11B,OAAW40B,EAAY3zB,aAAc,mBAAmBw0B,oCACzEC,IACAA,EAAahB,SAAW,IACxBgB,EAAa56B,SAEjB72G,EAAM0S,iBACN,MAEJ,KAAK,GACDi+H,EAAYF,SAAW,KACvB,MAAMiB,EAAc,IAAI9xI,KAAK23E,EAAYnzD,cAAemzD,EAAYpzD,WAAa,EAAG,GAC9EwtH,EAAiB35I,KAAK0mI,cAAcgT,GACpCE,MAAc71B,OAAW40B,EAAY3zB,aAAc,mBAAmB20B,oCACxED,IACAE,GAAYnB,SAAW,IACvBmB,GAAY/6B,SAEhB72G,EAAM0S,iBAMlB,CACAutH,mBAAmBjgI,EAAO2sB,GACtB,MAAMikH,EAAO5wI,EAAMsqH,cACnB,OAAQtqH,EAAMqwI,OAEV,KAAK,GACL,KAAK,GAAI,CACLO,EAAKH,SAAW,KAChB,IAAIoB,EAAQjB,EAAK9zB,cAAct1B,SAC3BqpD,KAAYC,OAASF,GACzB,IAAIQ,EAAWS,EAAsB,KAAhB7xI,EAAMqwI,MAAeQ,EAAY,EAAIA,EAAY,GAClEO,IACAA,EAASX,SAAW,IACpBW,EAASv6B,SAEb72G,EAAM0S,iBACN,KACJ,CAEA,KAAK,GAAI,CACLk+H,EAAKH,SAAW,KAChB,IAAIS,EAAWN,EAAK9qB,uBAChBorB,GACAA,EAAST,SAAW,IACpBS,EAASr6B,UAGT7+G,KAAKqzI,gBAAkB,CAAE+E,UAAU,GACnCp4I,KAAKq1I,YAAYrtI,IAErBA,EAAM0S,iBACN,KACJ,CAEA,KAAK,GAAI,CACLk+H,EAAKH,SAAW,KAChB,IAAIW,EAAWR,EAAK/qB,mBAChBurB,GACAA,EAASX,SAAW,IACpBW,EAASv6B,UAGT7+G,KAAKqzI,gBAAkB,CAAE+E,UAAU,GACnCp4I,KAAKw1I,WAAWxtI,IAEpBA,EAAM0S,iBACN,KACJ,CAGA,KAAK,GACL,KAAK,GACD1a,KAAKgoI,cAAchgI,EAAO2sB,GAC1B3sB,EAAM0S,iBACN,MAGJ,KAAK,GACD1a,KAAK8xI,qBAAqBr8D,cAAcopC,QACxC7+G,KAAKg9H,gBAAiB,EACtBh1H,EAAM0S,iBACN,MAGJ,KAAK,EACI1a,KAAKm9H,QACNn9H,KAAKs4I,UAAUtwI,GAQ/B,CACA0gI,kBAAkB1gI,EAAO2sB,GACrB,MAAMikH,EAAO5wI,EAAMsqH,cACnB,OAAQtqH,EAAMqwI,OAEV,KAAK,GACL,KAAK,GAAI,CACLO,EAAKH,SAAW,KAChB,IAAIoB,EAAQjB,EAAK9zB,cAAct1B,SAC3BqpD,KAAYC,OAASF,GACzB,IAAIQ,EAAWS,EAAsB,KAAhB7xI,EAAMqwI,MAAeQ,EAAY,EAAIA,EAAY,GAClEO,IACAA,EAASX,SAAW,IACpBW,EAASv6B,SAEb72G,EAAM0S,iBACN,KACJ,CAEA,KAAK,GAAI,CACLk+H,EAAKH,SAAW,KAChB,IAAIS,EAAWN,EAAK9qB,uBAChBorB,GACAA,EAAST,SAAW,IACpBS,EAASr6B,UAGT7+G,KAAKqzI,gBAAkB,CAAE+E,UAAU,GACnCp4I,KAAKq1I,YAAYrtI,IAErBA,EAAM0S,iBACN,KACJ,CAEA,KAAK,GAAI,CACLk+H,EAAKH,SAAW,KAChB,IAAIW,EAAWR,EAAK/qB,mBAChBurB,GACAA,EAASX,SAAW,IACpBW,EAASv6B,UAGT7+G,KAAKqzI,gBAAkB,CAAE+E,UAAU,GACnCp4I,KAAKw1I,WAAWxtI,IAEpBA,EAAM0S,iBACN,KACJ,CAGA,KAAK,GACL,KAAK,GACD1a,KAAKyoI,aAAazgI,EAAO2sB,GACzB3sB,EAAM0S,iBACN,MAGJ,KAAK,GACD1a,KAAK8xI,qBAAqBr8D,cAAcopC,QACxC7+G,KAAKg9H,gBAAiB,EACtBh1H,EAAM0S,iBACN,MAGJ,KAAK,EACD1a,KAAKs4I,UAAUtwI,GAO3B,CACAmxI,gBAAgBlsE,EAAMyrE,EAAYY,GAC9B,GAAIrsE,EACA,GAA4B,IAAxBjtE,KAAK4wI,gBAAuC,IAAf8H,EAC7B14I,KAAKqzI,gBAAkB,CAAE+E,UAAU,GACnCp4I,KAAK0zI,UAAY4F,EACjBt5I,KAAKq1I,YAAYrtI,WAEhB,CACD,IAAI8xI,EAAqB95I,KAAK+xI,iBAAiBt8D,cAAc+Z,SAASkpD,EAAa,GACnF,GAAIY,EAAU,CACV,MAAMG,KAAe11B,OAAW+1B,EAAoBR,GACpDG,EAAahB,SAAW,IACxBgB,EAAa56B,OACjB,KACK,CACD,IAAIg7B,KAAQj4I,OAAKk4I,EAAoB,+DACjCb,EAAYY,EAAMA,EAAMxuI,OAAS,GACrC4tI,EAAUR,SAAW,IACrBQ,EAAUp6B,OACd,CACJ,SAG4B,IAAxB7+G,KAAK4wI,gBAAwB8H,IAAe14I,KAAK4wI,eAAiB,EAClE5wI,KAAKqzI,gBAAkB,CAAE+E,UAAU,GACnCp4I,KAAK0zI,UAAY4F,EACjBt5I,KAAKw1I,WAAWxtI,WAEf,CACD,IAAI+xI,EAAqB/5I,KAAK+xI,iBAAiBt8D,cAAc+Z,SAASkpD,EAAa,GACnF,GAAIY,EAAU,CACV,MAAMG,KAAe11B,OAAWg2B,EAAoBT,GACpDG,EAAahB,SAAW,IACxBgB,EAAa56B,OACjB,KACK,CACD,IAAIo6B,KAAYl1B,OAAWg2B,EAAoB,+DAC/Cd,EAAUR,SAAW,IACrBQ,EAAUp6B,OACd,CACJ,CAER,CACAqzB,cACI,IAAI0G,EACJ,GAAI54I,KAAKqzI,gBAAiB,CACtB,GAAIrzI,KAAKqzI,gBAAgBhtE,OACrBrmE,KAAKmyI,oBACDnyI,KAAKqzI,gBAAgB+E,YACrBr0B,OAAW/jH,KAAK+xI,iBAAiBt8D,cAAe,6BAA6BopC,SAAM,EAEnFkF,OAAW/jH,KAAK+xI,iBAAiBt8D,cAAe,6BAA6BopC,YAEhF,CACD,GAAI7+G,KAAKqzI,gBAAgB+E,SAAU,CAC/B,IAAIyB,EAEAA,KAAQj4I,OAAK5B,KAAK+xI,iBAAiBt8D,cADd,UAArBz1E,KAAKynI,YAC6C,uDAExB,SAArBznI,KAAKynI,YACwC,oDAGAznI,KAAK0zI,WAAa,+DAEpEmG,GAASA,EAAMxuI,OAAS,IACxButI,EAAOiB,EAAMA,EAAMxuI,OAAS,GAEpC,MAGQutI,KAAO70B,OAAW/jH,KAAK+xI,iBAAiBt8D,cADnB,UAArBz1E,KAAKynI,YACkD,uDAE7B,SAArBznI,KAAKynI,YAC6C,oDAGAznI,KAAK0zI,WAAa,+DAG7EkF,IACAA,EAAKH,SAAW,IAChBG,EAAK/5B,QAEb,CACA7+G,KAAKqzI,gBAAkB,KACvBrzI,KAAK0zI,UAAY,IACrB,MAEI1zI,KAAKmyI,mBAEb,CACAA,oBACI,MAAM6H,EAAYh6I,KAAK+xI,kBAAkBt8D,cACzC,IAAImjE,EACJ,GAAyB,UAArB54I,KAAKynI,YAAyB,CAC9B,IAAIoS,KAAQj4I,OAAKo4I,EAAW,wDACxBC,KAAel2B,OAAWi2B,EAAW,mDACzCH,EAAMtmI,QAASqlI,GAAUA,EAAKH,UAAW,GACzCG,EAAOqB,GAAgBJ,EAAM,GACR,IAAjBA,EAAMxuI,SAAW,EACGzJ,OAAKo4I,EAAW,kEACtBzmI,QAASqlI,GAAUA,EAAKH,UAAW,EAEzD,SAC8B,SAArBz4I,KAAKynI,YAAwB,CAClC,IAAIoS,KAAQj4I,OAAKo4I,EAAW,qDACxBC,KAAel2B,OAAWi2B,EAAW,gDACzCH,EAAMtmI,QAASqlI,GAAUA,EAAKH,UAAW,GACzCG,EAAOqB,GAAgBJ,EAAM,GACR,IAAjBA,EAAMxuI,SAAW,EACGzJ,OAAKo4I,EAAW,+DACtBzmI,QAASqlI,GAAUA,EAAKH,UAAW,EAEzD,SAEIG,KAAO70B,OAAWi2B,EAAW,qBACxBpB,EAAM,CACP,IAAIsB,KAAYn2B,OAAWi2B,EAAW,2DAElCpB,EADAsB,IAGAtB,EAAO70B,OAAWi2B,EAAW,8DACrC,CAEApB,IACAA,EAAKH,SAAW,KACXz4I,KAAKyzI,gBAAkBzzI,KAAKqzI,kBAAoBrzI,KAAKqzI,gBAAgBhtE,SACtE7wD,WAAW,KACFxV,KAAK+V,UACN6iI,EAAK/5B,OAAM,EAEhB,GAEP7+G,KAAKyzI,cAAe,EAE5B,CACA6E,UAAUtwI,GACN,IAAI8kH,KAAoBD,OAAqB7sH,KAAK+xI,iBAAiBt8D,eACnE,GAAIq3C,GAAqBA,EAAkBzhH,OAAS,EAChD,GAAKyhH,EAAkB,GAAGU,cAAcb,cAGnC,CACD,IAAIY,EAAeT,EAAkBxoH,QAAQwoH,EAAkB,GAAGU,cAAcb,eAChF,GAAI3kH,EAAMmyI,SACN,IAAoB,GAAhB5sB,GAAuC,IAAjBA,EACtB,GAAIvtH,KAAKovI,UACLtiB,EAAkBA,EAAkBzhH,OAAS,GAAGwzG,YAE/C,CACD,IAAqB,IAAjB0O,EACA,OAAOvtH,KAAKq2I,cACX,GAAqB,IAAjB9oB,EACL,MACR,MAGAT,EAAkBS,EAAe,GAAG1O,aAAM,IAI1B,GAAhB0O,EACA,GAAIvtH,KAAKo9H,SACLtQ,EAAkB,GAAGjO,YAEpB,CACD,IAAIu7B,EAAY,EAChB,QAAShvI,EAAI,EAAGA,EAAI0hH,EAAkBzhH,OAAQD,IACL,SAAjC0hH,EAAkB1hH,GAAGivI,UACrBD,EAAYhvI,GAEpB0hH,EAAkBstB,GAAWv7B,OACjC,SAEK0O,IAAiBT,EAAkBzhH,OAAS,EAAG,CACpD,IAAKrL,KAAKovI,YAA6B,GAAhB7hB,EACnB,OAAOvtH,KAAKq2I,cAChBvpB,EAAkB,GAAGjO,OACzB,MAEIiO,EAAkBS,EAAe,GAAG1O,OAGhD,MA3CIiO,EAAkB,GAAGjO,QA6C7B72G,EAAM0S,gBACV,CACA4/H,sBAAsB1pG,GAClB5wC,KAAKuvI,aAAehgH,SAASqhB,GAC7B5wC,KAAKyxI,cAAcp9H,KAAK,CAAEnF,MAAOlP,KAAKuvI,aAAe,EAAGtgI,KAAMjP,KAAKwvI,cACnExvI,KAAKyvI,aAAazvI,KAAKuvI,aAAcvvI,KAAKwvI,YAC9C,CACA+K,qBAAqBpgE,GACjBn6E,KAAKwvI,YAAcjgH,SAAS4qD,GAC5Bn6E,KAAK0xI,aAAar9H,KAAK,CAAEnF,MAAOlP,KAAKuvI,aAAe,EAAGtgI,KAAMjP,KAAKwvI,cAClExvI,KAAKyvI,aAAazvI,KAAKuvI,aAAcvvI,KAAKwvI,YAC9C,CACAgL,gBAAgBv6C,EAAO/sE,GAEnB,MAAuB,MAAnBlzB,KAAKqsI,WACS,KAAVpsC,EACO/sE,EAAK,GAAK,EAGVA,EAAK+sE,EAAQ,GAAKA,EAG1BA,CACX,CACAw6C,cAAc1tH,EAAME,EAAQE,EAAQ+F,GAChC,IACIwnH,EADAC,EAAmB,CAAC5tH,EAAME,EAAQE,GAElCza,EAAQ1S,KAAK0S,MACjB,MAAMkoI,EAAgB56I,KAAKw6I,gBAAgBztH,EAAMmG,GAC3C2nH,EAAU76I,KAAKi+H,mBAAoB6c,EAAa96I,KAAK+1I,uBAAsC8E,GAAWC,KAEnG96I,KAAK0S,QACN1S,KAAK0S,MAAQ,CAAC,IAAI9K,KAAQ,IAAIA,OAE9BizI,IACAnoI,EAAQ1S,KAAK0S,MAAM,IAAM1S,KAAK0S,MAAM,IAEpCooI,IACApoI,EAAQ1S,KAAK0S,MAAM1S,KAAK0S,MAAMrH,OAAS,KAG/C,MAAM0vI,GAAkBroI,EAAQA,EAAMsoI,eAAiB,KACvD,IAAIC,GAAYj7I,KAAKqvI,SAAW0L,IAAmB/6I,KAAKqvI,QAAQ2L,iBAAmBD,GAC/EG,GAAYl7I,KAAK0vI,SAAWqL,IAAmB/6I,KAAK0vI,QAAQsL,iBAAmBD,GAInF,OAHIE,KACAP,EAAoB16I,KAAKqvI,QAAQriH,YAAc,KAE3C,GAEJ,KAAKiuH,IAAaP,GAAiD,KAA5B16I,KAAKqvI,QAAQriH,YAAqBhtB,KAAKqvI,QAAQriH,WAAa4tH,EAC/FD,EAAiB,GAAK,GAC1B,KAAKM,IAAaj7I,KAAKqvI,QAAQriH,aAAe4tH,GAAiB56I,KAAKqvI,QAAQniH,aAAeD,EACvF0tH,EAAiB,GAAK36I,KAAKqvI,QAAQniH,aACvC,KAAK+tH,IAAaj7I,KAAKqvI,QAAQriH,aAAe4tH,GAAiB56I,KAAKqvI,QAAQniH,eAAiBD,GAAUjtB,KAAKqvI,QAAQjiH,aAAeD,EAC/HwtH,EAAiB,GAAK36I,KAAKqvI,QAAQjiH,aACnC,MACJ,KAAK6tH,KAAcP,GAAqB16I,KAAKqvI,QAAQriH,WAAa,IAAM4tH,GAAiB56I,KAAKqvI,QAAQriH,WAAa4tH,EAC/GD,EAAiB,GAAK,GACtB36I,KAAKkzB,IAAK,EACd,KAAK+nH,IAAaj7I,KAAKqvI,QAAQriH,aAAe4tH,GAAiB56I,KAAKqvI,QAAQniH,aAAeD,EACvF0tH,EAAiB,GAAK36I,KAAKqvI,QAAQniH,aACvC,KAAK+tH,IAAaj7I,KAAKqvI,QAAQriH,aAAe4tH,GAAiB56I,KAAKqvI,QAAQniH,eAAiBD,GAAUjtB,KAAKqvI,QAAQjiH,aAAeD,EAC/HwtH,EAAiB,GAAK36I,KAAKqvI,QAAQjiH,aACnC,MACJ,KAAK6tH,IAAaP,GAAqB16I,KAAKqvI,QAAQriH,WAAa4tH,GAAmC,KAAlBA,EAC9E56I,KAAKo1I,iBAAiBp1I,KAAKqvI,QAAQriH,YACnC2tH,EAAiB,GAAK36I,KAAKksI,YAC/B,KAAK+O,IAAaj7I,KAAKqvI,QAAQriH,aAAe4tH,GAAiB56I,KAAKqvI,QAAQniH,aAAeD,EACvF0tH,EAAiB,GAAK36I,KAAKqvI,QAAQniH,aACvC,KAAK+tH,IAAaj7I,KAAKqvI,QAAQriH,aAAe4tH,GAAiB56I,KAAKqvI,QAAQniH,eAAiBD,GAAUjtB,KAAKqvI,QAAQjiH,aAAeD,EAC/HwtH,EAAiB,GAAK36I,KAAKqvI,QAAQjiH,aACnC,MACJ,KAAK6tH,IAAaj7I,KAAKqvI,QAAQriH,WAAa4tH,EACxCD,EAAiB,GAAK36I,KAAKqvI,QAAQriH,WACvC,KAAKiuH,IAAaj7I,KAAKqvI,QAAQriH,aAAe4tH,GAAiB56I,KAAKqvI,QAAQniH,aAAeD,EACvF0tH,EAAiB,GAAK36I,KAAKqvI,QAAQniH,aACvC,KAAK+tH,IAAaj7I,KAAKqvI,QAAQriH,aAAe4tH,GAAiB56I,KAAKqvI,QAAQniH,eAAiBD,GAAUjtB,KAAKqvI,QAAQjiH,aAAeD,EAC/HwtH,EAAiB,GAAK36I,KAAKqvI,QAAQjiH,aACnC,MACJ,KAAK8tH,IAAal7I,KAAK0vI,QAAQ1iH,WAAa4tH,EACxCD,EAAiB,GAAK36I,KAAK0vI,QAAQ1iH,WACvC,KAAKkuH,IAAal7I,KAAK0vI,QAAQ1iH,aAAe4tH,GAAiB56I,KAAK0vI,QAAQxiH,aAAeD,EACvF0tH,EAAiB,GAAK36I,KAAK0vI,QAAQxiH,aACvC,KAAKguH,IAAal7I,KAAK0vI,QAAQ1iH,aAAe4tH,GAAiB56I,KAAK0vI,QAAQxiH,eAAiBD,GAAUjtB,KAAK0vI,QAAQtiH,aAAeD,EAC/HwtH,EAAiB,GAAK36I,KAAK0vI,QAAQtiH,aAG3C,OAAOutH,CACX,CACA7O,cAAc9jI,GAEV,IAAImzI,GAAWn7I,KAAKksI,aAAe,GAAKlsI,KAAK0uI,SACzC0M,EAAQp7I,KAAKkzB,GACM,MAAnBlzB,KAAKqsI,WACL8O,EAAUA,GAAW,GAAKA,EAAU,GAAKA,EACjB,MAAnBn7I,KAAKqsI,cALGrsI,KAAKksI,aAAe,GAOlB,IAAMiP,EAAU,KAC3BC,GAASp7I,KAAKkzB,IAElBioH,EAAUA,GAAW,GAAKA,EAAU,GAAKA,GAE7Cn7I,KAAKq7I,uBAAuBD,IAC3Bp7I,KAAKksI,YAAalsI,KAAKmsI,cAAensI,KAAKirI,eAAiBjrI,KAAKy6I,cAAcU,EAASn7I,KAAKmsI,cAAensI,KAAKirI,cAAemQ,GACjIpzI,EAAM0S,gBACV,CACA2gI,uBAAuBD,GACnB,IAAI1oI,EAAQ1S,KAAK0S,MACjB,MAAMqoI,EAAkBroI,EAAQA,EAAMsoI,eAAiB,KAGnDh7I,KAAKkzB,MAFOlzB,KAAKqvI,SAAW0L,GAAmB/6I,KAAKqvI,QAAQ2L,iBAAmBD,GAClE/6I,KAAKqvI,QAAQriH,YAAc,KAI9BouH,CAElB,CACAzQ,6BAA6B3iI,EAAOhF,EAAMs4I,GACjCt7I,KAAK+V,WACN/V,KAAKu7I,OAAOvzI,EAAO,KAAMhF,EAAMs4I,GAC/BtzI,EAAM0S,iBAEd,CACAkwH,2BAA2B5iI,GAClBhI,KAAK+V,WACN/V,KAAKw7I,uBACLx7I,KAAKy7I,aAEb,CACA5Q,iCACS7qI,KAAK+V,UAAY/V,KAAKyyI,kBACvBzyI,KAAKw7I,uBACLx7I,KAAKy7I,aAEb,CACAF,OAAOvzI,EAAOkhB,EAAUlmB,EAAMs4I,GAC1B,IAAIlwI,EAAI8d,GAAY,IAMpB,OALAlpB,KAAKw7I,uBACLx7I,KAAKyyI,gBAAkBj9H,WAAW,KAC9BxV,KAAKu7I,OAAOvzI,EAAO,IAAKhF,EAAMs4I,GAC9Bt7I,KAAKmgH,GAAG0zB,cAAa,EACtBzoI,GACKpI,GACJ,KAAK,EACiB,IAAds4I,EACAt7I,KAAK8rI,cAAc9jI,GAEnBhI,KAAK+rI,cAAc/jI,GACvB,MACJ,KAAK,EACiB,IAAdszI,EACAt7I,KAAKgsI,gBAAgBhkI,GAErBhI,KAAKisI,gBAAgBjkI,GACzB,MACJ,KAAK,EACiB,IAAdszI,EACAt7I,KAAK0qI,gBAAgB1iI,GAErBhI,KAAK8qI,gBAAgB9iI,GAGjChI,KAAKuwI,kBACT,CACAiL,uBACQx7I,KAAKyyI,kBACL5vG,aAAa7iC,KAAKyyI,iBAClBzyI,KAAKyyI,gBAAkB,KAE/B,CACA1G,cAAc/jI,GACV,IAAImzI,GAAWn7I,KAAKksI,aAAe,GAAKlsI,KAAK0uI,SACzC0M,EAAQp7I,KAAKkzB,GACM,MAAnBlzB,KAAKqsI,WACL8O,EAAUA,EAAU,EAAI,GAAKA,EAAUA,EACf,MAAnBn7I,KAAKqsI,aAEe,KAArBrsI,KAAKksI,cACLkP,GAASp7I,KAAKkzB,IAElBioH,EAAUA,GAAW,EAAI,GAAKA,EAAUA,GAE5Cn7I,KAAKq7I,uBAAuBD,IAC3Bp7I,KAAKksI,YAAalsI,KAAKmsI,cAAensI,KAAKirI,eAAiBjrI,KAAKy6I,cAAcU,EAASn7I,KAAKmsI,cAAensI,KAAKirI,cAAemQ,GACjIpzI,EAAM0S,gBACV,CACAsxH,gBAAgBhkI,GACZ,IAAI0zI,GAAa17I,KAAKmsI,eAAiB,GAAKnsI,KAAK2uI,WACjD+M,EAAYA,EAAY,GAAKA,EAAY,GAAKA,GAC7C17I,KAAKksI,YAAalsI,KAAKmsI,cAAensI,KAAKirI,eAAiBjrI,KAAKy6I,cAAcz6I,KAAKksI,YAAawP,EAAW17I,KAAKirI,cAAejrI,KAAKkzB,IACtIlrB,EAAM0S,gBACV,CACAuxH,gBAAgBjkI,GACZ,IAAI0zI,GAAa17I,KAAKmsI,eAAiB,GAAKnsI,KAAK2uI,WACjD+M,EAAYA,EAAY,EAAI,GAAKA,EAAYA,GAC5C17I,KAAKksI,YAAalsI,KAAKmsI,cAAensI,KAAKirI,eAAiBjrI,KAAKy6I,cAAcz6I,KAAKksI,YAAawP,EAAW17I,KAAKirI,cAAejrI,KAAKkzB,IACtIlrB,EAAM0S,gBACV,CACAgwH,gBAAgB1iI,GACZ,IAAI2zI,EAAY37I,KAAKirI,cAAgBjrI,KAAK4uI,WAC1C+M,EAAYA,EAAY,GAAKA,EAAY,GAAKA,GAC7C37I,KAAKksI,YAAalsI,KAAKmsI,cAAensI,KAAKirI,eAAiBjrI,KAAKy6I,cAAcz6I,KAAKksI,YAAalsI,KAAKmsI,cAAewP,EAAW37I,KAAKkzB,IACtIlrB,EAAM0S,gBACV,CACAowH,gBAAgB9iI,GACZ,IAAI2zI,EAAY37I,KAAKirI,cAAgBjrI,KAAK4uI,WAC1C+M,EAAYA,EAAY,EAAI,GAAKA,EAAYA,GAC5C37I,KAAKksI,YAAalsI,KAAKmsI,cAAensI,KAAKirI,eAAiBjrI,KAAKy6I,cAAcz6I,KAAKksI,YAAalsI,KAAKmsI,cAAewP,EAAW37I,KAAKkzB,IACtIlrB,EAAM0S,gBACV,CACA+gI,aACI,IAAI/oI,EAAQ1S,KAAK0S,MACb1S,KAAKi+H,qBACLvrH,EAAQ1S,KAAK0S,MAAM,IAAM1S,KAAK0S,MAAM,IAEpC1S,KAAK+1I,wBACLrjI,EAAQ1S,KAAK0S,MAAM1S,KAAK0S,MAAMrH,OAAS,IAE3CqH,EAAQA,EAAQ,IAAI9K,KAAK8K,EAAM+Y,WAAa,IAAI7jB,KAGxC8K,EAAMqkI,SAFS,MAAnB/2I,KAAKqsI,WACoB,KAArBrsI,KAAKksI,YACUlsI,KAAKkzB,GAAK,GAAK,EAEflzB,KAAKkzB,GAAKlzB,KAAKksI,YAAc,GAAKlsI,KAAKksI,YAG3ClsI,KAAKksI,aAExBx5H,EAAMskI,WAAWh3I,KAAKmsI,eACtBz5H,EAAMukI,WAAWj3I,KAAKirI,eAClBjrI,KAAKi+H,qBAEDvrH,EADA1S,KAAK0S,MAAM,GACH,CAAC1S,KAAK0S,MAAM,GAAIA,GAEhB,CAACA,EAAO,OAEpB1S,KAAK+1I,wBACLrjI,EAAQ,IAAI1S,KAAK0S,MAAM2N,MAAM,GAAG,GAAK3N,IAEzC1S,KAAKi2I,YAAYvjI,GACjB1S,KAAKsxI,SAASj9H,KAAK3B,GACnB1S,KAAKuwI,kBACT,CACA5E,WAAW3jI,GACP,MAAMozI,GAASp7I,KAAKkzB,GACpBlzB,KAAKkzB,GAAKkoH,GACTp7I,KAAKksI,YAAalsI,KAAKmsI,cAAensI,KAAKirI,eAAiBjrI,KAAKy6I,cAAcz6I,KAAKksI,YAAalsI,KAAKmsI,cAAensI,KAAKirI,cAAemQ,GAC1Ip7I,KAAKy7I,aACLzzI,EAAM0S,gBACV,CACA8nH,YAAYx6H,GAER,IAAKhI,KAAK8yI,UACN,OAEJ9yI,KAAK8yI,WAAY,EACjB,IAAIxjH,EAAMtnB,EAAMg3C,OAAOtsC,MACvB,IACI,IAAIA,EAAQ1S,KAAK47I,qBAAqBtsH,GAClCtvB,KAAK67I,iBAAiBnpI,IACtB1S,KAAKi2I,YAAYvjI,GACjB1S,KAAK87I,YAEA97I,KAAKkvI,aACVlvI,KAAKi2I,YAAYvjI,EAEzB,OAII1S,KAAKi2I,YADOj2I,KAAKkvI,YAAc5/G,EAAM,KAEzC,CACAtvB,KAAK24H,OAAiB,MAAPrpG,GAAeA,EAAIjkB,OAClCrL,KAAKq5H,QAAQhlH,KAAKrM,EACtB,CACA6zI,iBAAiBnpI,GACb,GAAI1S,KAAKo2I,oBACL,OAAOp2I,KAAKi1I,aAAaviI,EAAMwZ,UAAWxZ,EAAMyZ,WAAYzZ,EAAM0Z,eAAe,GAErF,IAAIkoF,EAAU5hG,EAAMuqF,MAAO96F,GAAMnC,KAAKi1I,aAAa9yI,EAAE+pB,UAAW/pB,EAAEgqB,WAAYhqB,EAAEiqB,eAAe,IAC/F,OAAIkoF,GAAWt0G,KAAKi+H,qBAChB3pB,EAA2B,IAAjB5hG,EAAMrH,QAAiBqH,EAAMrH,OAAS,GAAKqH,EAAM,IAAMA,EAAM,IAEpE4hG,CACX,CACAsnC,qBAAqBp0I,GACjB,IAAKA,GAA+B,IAAvBA,EAAK4rC,OAAO/nC,OACrB,OAAO,KAEX,IAAIqH,EACJ,GAAI1S,KAAKo2I,oBACL1jI,EAAQ1S,KAAK+7I,cAAcv0I,QAAI,GAE1BxH,KAAK+1I,sBAAuB,CACjC,IAAIiG,EAASx0I,EAAK2D,MAAMnL,KAAKouI,mBAC7B17H,EAAQ,GACR,QAAS2S,KAAS22H,EACdtpI,EAAMW,KAAKrT,KAAK+7I,cAAc12H,EAAM+tB,QAE5C,SACSpzC,KAAKi+H,mBAAoB,CAC9B,IAAI+d,EAASx0I,EAAK2D,MAAM,IAAMnL,KAAKquI,eAAiB,KACpD37H,EAAQ,GACR,QAAStH,EAAI,EAAGA,EAAI4wI,EAAO3wI,OAAQD,IAC/BsH,EAAMtH,GAAKpL,KAAK+7I,cAAcC,EAAO5wI,GAAGgoC,OAEhD,CACA,OAAO1gC,CACX,CACAqpI,cAAcv0I,GACV,IAAIyjB,EACAgxH,EAAQz0I,EAAK2D,MAAM,KACvB,GAAInL,KAAKo9H,SACLnyG,EAAO,IAAIrjB,KACX5H,KAAKk8I,aAAajxH,EAAMgxH,EAAM,GAAIA,EAAM,QAEvC,CACD,MAAM9N,EAAanuI,KAAK82I,gBACxB,GAAI92I,KAAKwtI,SAAU,CACf,IAAI2O,EAA0B,MAAnBn8I,KAAKqsI,WAAqB4P,EAAMpvD,MAAQ,KAC/CuvD,EAAaH,EAAMpvD,MACvB5hE,EAAOjrB,KAAKq8I,UAAUJ,EAAM5uH,KAAK,KAAM8gH,GACvCnuI,KAAKk8I,aAAajxH,EAAMmxH,EAAYD,EACxC,MAEIlxH,EAAOjrB,KAAKq8I,UAAU70I,EAAM2mI,EAEpC,CACA,OAAOljH,CACX,CACAixH,aAAaxpI,EAAO0pI,EAAYD,GAC5B,GAAuB,MAAnBn8I,KAAKqsI,aAAuB8P,EAC5B,KAAM,eAEVn8I,KAAKkzB,GAAc,OAATipH,GAA0B,OAATA,EAC3B,IAAIx0I,EAAO3H,KAAKs8I,UAAUF,GAC1B1pI,EAAMqkI,SAASpvI,EAAKolB,MACpBra,EAAMskI,WAAWrvI,EAAKslB,QACtBva,EAAMukI,WAAWtvI,EAAKwlB,OAC1B,CACAwpH,YAAY1rH,GACR,SAAOpY,OAAOoY,KAAI,EAAKykG,OAAWzkG,EACtC,CACA6wH,WACI,IAAIS,EAAYv8I,KAAK0S,MACjB+K,MAAMC,QAAQ6+H,KACdA,EAAiC,IAArBA,EAAUlxI,OAAekxI,EAAU,GAAKA,EAAU,IAElE,IAAIjtH,EAAMtvB,KAAKoxI,aAAepxI,KAAK22I,YAAY32I,KAAKoxI,eAAiBpxI,KAAK0S,MAAQ1S,KAAKoxI,YAAcmL,GAAav8I,KAAK22I,YAAY4F,GAAaA,EAAY,IAAI30I,KAChK5H,KAAKuvI,aAAejgH,EAAInD,WACxBnsB,KAAKwvI,YAAclgH,EAAIlD,cACvBpsB,KAAKyvI,aAAazvI,KAAKuvI,aAAcvvI,KAAKwvI,cACtCxvI,KAAKwtI,UAAYxtI,KAAKo9H,YACtBp9H,KAAKo1I,iBAAiB9lH,EAAItC,YAC1BhtB,KAAKmsI,cAAgB78G,EAAIpC,aACzBltB,KAAKirI,cAAgB37G,EAAIlC,aAEjC,CACA6qH,cACSj4I,KAAKg9H,iBACNh9H,KAAK87I,WACA97I,KAAKijI,UACNjjI,KAAKyzI,cAAe,GAExBzzI,KAAKg9H,gBAAiB,EAE9B,CACAqZ,cACIr2I,KAAK8xI,qBAAqBr8D,cAAcopC,QACxC7+G,KAAKg9H,gBAAiB,EACtBh9H,KAAKw7I,uBACDx7I,KAAKijI,SACLjjI,KAAKs2I,kBAETt2I,KAAKmgH,GAAG0zB,cACZ,CACA2I,SACSx8I,KAAKm9H,SACDn9H,KAAKg9H,eAKNh9H,KAAKq2I,eAJLr2I,KAAKi4I,cACLj4I,KAAK8xI,qBAAqBr8D,cAAcopC,SAMpD,CACAkuB,wBAAwB/kI,GACpB,OAAQA,EAAMmjC,SACV,IAAK,UACL,IAAK,iBACInrC,KAAKm9H,SACNn9H,KAAKs/B,QAAUt3B,EAAMgjC,QACrBhrC,KAAKs/B,SAASy7B,aAAa/6D,KAAKwzI,kBAAmB,KAEnDiJ,SAASz8I,KAAKs/B,QADEt/B,KAAKm9H,YAAyD77H,EAAhD,CAAEssE,SAAU,WAAYtB,IAAK,IAAKuB,KAAM,MAEtE7tE,KAAKqkH,gBACLrkH,KAAKkyI,cACDlyI,KAAKivI,aACDjvI,KAAKijI,QACL3G,GAAY13H,IAAI,QAAS5E,KAAKs/B,QAASt/B,KAAK08H,YAAc18H,KAAKmZ,OAAOsjH,OAAOr6D,OAE7Ek6D,GAAY13H,IAAI,UAAW5E,KAAKs/B,QAASt/B,KAAK08H,YAAc18H,KAAKmZ,OAAOsjH,OAAOn9F,UAEvFt/B,KAAKukH,eACLvkH,KAAK4xI,OAAOv9H,KAAKrM,IAErB,MACJ,IAAK,OACDhI,KAAK08I,gBACL18I,KAAKg7E,QAAQ3mE,KAAKrM,GAG9B,CACAglI,uBAAuBhlI,GACnB,OAAQA,EAAMmjC,SACV,IAAK,UACL,IAAK,iBACInrC,KAAKm9H,SACNn9H,KAAK28I,4BACL38I,KAAK48I,6BACL58I,KAAK6uH,sBAET,MACJ,IAAK,OACG7uH,KAAKivI,YACL3S,GAAYz2G,MAAM7d,EAAMgjC,SAIxC,CACAq5E,gBACQrkH,KAAKskH,WACiB,SAAlBtkH,KAAKskH,SACLtkH,KAAKiL,SAASvB,KAAK0wD,YAAYp6D,KAAKs/B,UAAO,EAE3C86B,OAAYp6D,KAAKskH,SAAUtkH,KAAKs/B,SAE5C,CACAu9G,uBACQ78I,KAAKs/B,SAAWt/B,KAAKskH,UACrBtkH,KAAKg7D,GAAGya,cAAcrb,YAAYp6D,KAAKs/B,QAE/C,CACAilF,eACQvkH,KAAKijI,QACLjjI,KAAK88I,eAAe98I,KAAKs/B,SAEpBt/B,KAAKs/B,UACNt/B,KAAKskH,UACa,SAAdtkH,KAAKkxI,MACAlxI,KAAKs/B,QAAQyN,MAAMxe,QACpBvuB,KAAKs/B,QAAQyN,MAAMxe,SAAQk2F,OAAczkH,KAAKs/B,SAAW,MAExDt/B,KAAKs/B,QAAQyN,MAAM64B,WACpB5lE,KAAKs/B,QAAQyN,MAAM64B,YAAW6+C,OAAczkH,KAAK8xI,qBAAqBr8D,eAAiB,OAItFz1E,KAAKs/B,QAAQyN,MAAMxe,QACpBvuB,KAAKs/B,QAAQyN,MAAMxe,SAAQk2F,OAAczkH,KAAK8xI,qBAAqBr8D,eAAiB,SAG5FkvC,OAAiB3kH,KAAKs/B,QAASt/B,KAAK8xI,qBAAqBr8D,iBAAa,EAGtEivC,OAAiB1kH,KAAKs/B,QAASt/B,KAAK8xI,qBAAqBr8D,eAGrE,CACAqnE,eAAe9xG,IACNhrC,KAAK8hE,MAAQ9hE,KAAKijI,UACnBjjI,KAAK8hE,KAAO9hE,KAAKq8D,SAASrC,cAAc,OACxCh6D,KAAKq8D,SAASnB,SAASl7D,KAAK8hE,KAAM,SAAUn2C,OAAO4D,SAASyb,EAAQ+B,MAAM0vF,QAAU,KAAE,EAEtFz0E,OAAShoD,KAAK8hE,KADO,wGAErB9hE,KAAKoyI,kBAAoBpyI,KAAKq8D,SAAStW,OAAO/lD,KAAK8hE,KAAM,QAAU95D,IAC/DhI,KAAKs2I,kBACLt2I,KAAKg9H,gBAAiB,IAE1Bh9H,KAAKq8D,SAASjC,YAAYp6D,KAAKiL,SAASvB,KAAM1J,KAAK8hE,OAAI,EACvDksD,SAER,CACAsoB,kBACQt2I,KAAK8hE,UACL9Z,OAAShoD,KAAK8hE,KAAM,wBACf9hE,KAAK2yI,uBACN3yI,KAAK2yI,qBAAuB3yI,KAAKq8D,SAAStW,OAAO/lD,KAAK8hE,KAAM,eAAgB9hE,KAAK+8I,YAAYr3C,KAAK1lG,QAG9G,CACA+8I,cACI,IAAK/8I,KAAK8hE,KACN,OAEJ9hE,KAAKq8D,SAAS7B,YAAYx6D,KAAKiL,SAASvB,KAAM1J,KAAK8hE,MACnD,IACIk7E,EADAC,EAAej9I,KAAKiL,SAASvB,KAAK8lF,SAEtC,QAASpkF,EAAI,EAAGA,EAAI6xI,EAAa5xI,OAAQD,IAErC,MAAIy4G,OADYo5B,EAAa7xI,GACL,mCAAoC,CACxD4xI,GAAkB,EAClB,KACJ,CAECA,MACD/uB,SAEJjuH,KAAKk9I,6BACLl9I,KAAKm9I,0BACLn9I,KAAK8hE,KAAO,IAChB,CACAq7E,0BACQn9I,KAAKoyI,oBACLpyI,KAAKoyI,oBACLpyI,KAAKoyI,kBAAoB,KAEjC,CACA8K,6BACQl9I,KAAK2yI,sBAAwB3yI,KAAK8hE,OAClC9hE,KAAK2yI,uBACL3yI,KAAK2yI,qBAAuB,KAEpC,CACAyK,WAAW1qI,GAEP,GADA1S,KAAK0S,MAAQA,EACT1S,KAAK0S,OAA+B,iBAAf1S,KAAK0S,MAC1B,IACI1S,KAAK0S,MAAQ1S,KAAK47I,qBAAqB57I,KAAK0S,MAChD,OAEQ1S,KAAKkvI,cACLlvI,KAAK0S,MAAQA,EAErB,CAEJ1S,KAAKuwI,mBACLvwI,KAAK87I,WACL97I,KAAKmgH,GAAG0zB,cACZ,CACAwJ,iBAAiBz6F,GACb5iD,KAAKsyI,cAAgB1vF,CACzB,CACA06F,kBAAkB16F,GACd5iD,KAAKuyI,eAAiB3vF,CAC1B,CACA26F,iBAAiBjuH,GACbtvB,KAAK+V,SAAWuZ,EAChBtvB,KAAKmgH,GAAG0zB,cACZ,CACAiD,gBACI,OAAO92I,KAAKmuI,YAAcnuI,KAAK0+D,eAAe,aAClD,CACAq1E,qBACI,OAAO/zI,KAAK+wI,iBAAmB/wI,KAAK0+D,eAAeu1E,MAAgBuJ,kBACvE,CAEA3G,WAAW5rH,EAAMS,GACb,IAAKT,EACD,MAAO,GAEX,IAAIwyH,EACJ,MAAMC,EAAartH,IACf,MAAMge,EAAUovG,EAAU,EAAI/xH,EAAOrgB,QAAUqgB,EAAOuhB,OAAOwwG,EAAU,KAAOptH,EAC9E,OAAIge,GACAovG,IAEGpvG,GACRsvG,EAAeA,CAACttH,EAAO3d,EAAOoqF,KAC7B,IAAIyC,GAAM,GAAK7sF,EACf,GAAIgrI,EAAUrtH,GACV,KAAOkvE,GAAIl0F,OAASyxF,GAChByC,GAAM,IAAMA,GAGpB,OAAOA,IACRq+C,EAAaA,CAACvtH,EAAO3d,EAAOmrI,EAAYC,KAChCJ,EAAUrtH,GAASytH,GAAUprI,GAASmrI,EAAWnrI,GAE5D,IAAIqrI,EAAS,GACTC,GAAU,EACd,GAAI/yH,EACA,IAAKwyH,EAAU,EAAGA,EAAU/xH,EAAOrgB,OAAQoyI,IACvC,GAAIO,EAC+B,MAA3BtyH,EAAOuhB,OAAOwwG,IAAqBC,EAAU,KAI7CK,GAAUryH,EAAOuhB,OAAOwwG,GAHxBO,GAAU,OAOd,OAAQtyH,EAAOuhB,OAAOwwG,IAClB,IAAK,IACDM,GAAUJ,EAAa,IAAK1yH,EAAKiB,UAAW,GAC5C,MACJ,IAAK,IACD6xH,GAAUH,EAAW,IAAK3yH,EAAK0xF,SAAU38G,KAAK0+D,eAAeu1E,MAAgBgK,iBAAkBj+I,KAAK0+D,eAAeu1E,MAAgBiK,YACnI,MACJ,IAAK,IACDH,GAAUJ,EAAa,IAAKlxH,KAAKq1B,OAAO,IAAIl6C,KAAKqjB,EAAKmB,cAAenB,EAAKkB,WAAYlB,EAAKiB,WAAWT,UAAY,IAAI7jB,KAAKqjB,EAAKmB,cAAe,EAAG,GAAGX,WAAa,OAAW,GAC7K,MACJ,IAAK,IACDsyH,GAAUJ,EAAa,IAAK1yH,EAAKkB,WAAa,EAAG,GACjD,MACJ,IAAK,IACD4xH,GAAUH,EAAW,IAAK3yH,EAAKkB,WAAYnsB,KAAK0+D,eAAeu1E,MAAgBkK,mBAAoBn+I,KAAK0+D,eAAeu1E,MAAgBmK,cACvI,MACJ,IAAK,IACDL,GAAUL,EAAU,KAAOzyH,EAAKmB,eAAiBnB,EAAKmB,cAAgB,IAAM,GAAK,IAAM,IAAOnB,EAAKmB,cAAgB,IACnH,MACJ,IAAK,IACD2xH,GAAU9yH,EAAKQ,UACf,MACJ,IAAK,IACDsyH,GAA2B,IAAjB9yH,EAAKQ,UAAoBzrB,KAAK4yI,YACxC,MACJ,IAAK,IACG8K,EAAU,KACVK,GAAU,IAGVC,GAAU,EAEd,MACJ,QACID,GAAUryH,EAAOuhB,OAAOwwG,GAK5C,OAAOM,CACX,CACAnH,WAAW3rH,GACP,IAAKA,EACD,MAAO,GAEX,IAAI8yH,EAAS,GACT99C,EAAQh1E,EAAK+B,WACb0yE,EAAUz0E,EAAKiC,aACfuyE,EAAUx0E,EAAKmC,aACnB,MAAuB,MAAnBptB,KAAKqsI,YAAsBpsC,EAAQ,IAAe,IAATA,IACzCA,GAAS,IAGT89C,GADmB,MAAnB/9I,KAAKqsI,YACe,IAAVpsC,EAAc,GAGdA,EAAQ,GAAK,IAAMA,EAAQA,EAEzC89C,GAAU,IACVA,GAAUr+C,EAAU,GAAK,IAAMA,EAAUA,EACrC1/F,KAAKosI,cACL2R,GAAU,IACVA,GAAUt+C,EAAU,GAAK,IAAMA,EAAUA,GAEtB,MAAnBz/F,KAAKqsI,aACL0R,GAAU9yH,EAAK+B,WAAa,GAAK,MAAQ,OAEtC+wH,CACX,CACAzB,UAAU5pI,GACN,IAAIspI,EAAStpI,EAAMvH,MAAM,KAEzB,GAAI6wI,EAAO3wI,UADYrL,KAAKosI,YAAc,EAAI,GAE1C,KAAM,eAEV,IAAIz6B,EAAIpiF,SAASysH,EAAO,IACpBprG,EAAIrhB,SAASysH,EAAO,IACpBrlG,EAAI32C,KAAKosI,YAAc78G,SAASysH,EAAO,IAAM,KACjD,GAAIxwH,MAAMmmF,IAAMnmF,MAAMolB,IAAM+gE,EAAI,IAAM/gE,EAAI,IAA0B,MAAnB5wC,KAAKqsI,YAAsB16B,EAAI,IAAQ3xG,KAAKosI,cAAgB5gH,MAAMmrB,IAAMA,EAAI,IACzH,KAAM,eAGN,MAAuB,MAAnB32C,KAAKqsI,aACK,KAAN16B,GAAY3xG,KAAKkzB,GACjBy+E,GAAK,IAEC3xG,KAAKkzB,IAAY,KAANy+E,IACjBA,GAAK,KAGN,CAAE5kF,KAAM4kF,EAAG1kF,OAAQ2jB,EAAGzjB,OAAQwpB,EAE7C,CAEA0lG,UAAU3pI,EAAOgZ,GACb,GAAc,MAAVA,GAA2B,MAAThZ,EAClB,KAAM,oBAGV,GAAc,MADdA,EAAyB,iBAAVA,EAAqBA,EAAMI,WAAaJ,EAAQ,IAE3D,OAAO,KAEX,IAAI+qI,EAASY,EAAKC,EAA0OrzH,GAAnOszH,EAAS,EAAGhQ,EAAkD,iBAAzBvuI,KAAKuuI,gBAA+BvuI,KAAKuuI,qBAAuB3mI,MAAOwkB,cAAgB,IAAOmD,SAASvvB,KAAKuuI,gBAAiB,IAAKt/H,GAAO,EAAIC,GAAQ,EAAI8c,GAAM,EAAIwyH,GAAM,EAAIR,IAAU,EAAaN,GAAartH,KAC3Q,IAAIge,GAAUovG,EAAU,EAAI/xH,EAAOrgB,QAAUqgB,EAAOuhB,OAAOwwG,EAAU,KAAOptH,GAC5E,OAAIge,IACAovG,IAEGpvG,IACRowG,GAAapuH,KACZ,IAAIquH,GAAYhB,GAAUrtH,IAAQ/N,GAAiB,MAAV+N,GAAgB,GAAe,MAAVA,GAAgB,GAAe,MAAVA,IAAiBquH,GAAY,EAAc,MAAVruH,GAAgB,EAAI,EAAuCsuH,GAAS,IAAI5uG,OAAO,SAApC,MAAV1f,GAAgB/N,GAAO,GAA2C,IAAMA,GAAO,KAAMi9E,GAAM7sF,EAAMi5B,UAAU4yG,GAAQluH,MAAMsuH,IAC9Q,IAAKp/C,GACD,KAAM,8BAAgCg/C,EAE1CA,UAAUh/C,GAAI,GAAGl0F,OACVkkB,SAASgwE,GAAI,GAAI,GAAE,EAC3Bq/C,GAAUA,CAACvuH,GAAOwtH,GAAYC,MAC7B,IAAInpH,IAAQ,EACRy2D,GAAMsyD,GAAUrtH,IAASytH,GAAYD,GACrCgB,GAAQ,GACZ,QAASzzI,GAAI,EAAGA,GAAIggF,GAAI//E,OAAQD,KAC5ByzI,GAAMxrI,KAAK,CAACjI,GAAGggF,GAAIhgF,MAEvByzI,GAAMv2H,KAAK,CAACC,GAAGC,OACFD,GAAE,GAAGld,OAASmd,GAAE,GAAGnd,SAEhC,QAASD,GAAI,EAAGA,GAAIyzI,GAAMxzI,OAAQD,KAAK,CACnC,IAAI9I,GAAOu8I,GAAMzzI,IAAG,GACpB,GAAIsH,EAAMnH,OAAOgzI,EAAQj8I,GAAK+I,QAAQ8U,gBAAkB7d,GAAK6d,cAAe,CACxEwU,GAAQkqH,GAAMzzI,IAAG,GACjBmzI,GAAUj8I,GAAK+I,OACf,KACJ,CACJ,CACA,IAAc,IAAVspB,GACA,OAAOA,GAAQ,EAGf,KAAM,4BAA8B4pH,GAEzCO,GAAeA,KACd,GAAIpsI,EAAMu6B,OAAOsxG,KAAY7yH,EAAOuhB,OAAOwwG,GACvC,KAAM,kCAAoCc,EAE9CA,KAKJ,IAHkB,UAAdv+I,KAAKkxI,OACLllH,EAAM,GAELyxH,EAAU,EAAGA,EAAU/xH,EAAOrgB,OAAQoyI,IACvC,GAAIO,GAC+B,MAA3BtyH,EAAOuhB,OAAOwwG,IAAqBC,GAAU,KAI7CoB,KAHAd,IAAU,OAOd,OAAQtyH,EAAOuhB,OAAOwwG,IAClB,IAAK,IACDzxH,EAAMyyH,GAAU,KAChB,MACJ,IAAK,IACDG,GAAQ,IAAK5+I,KAAK0+D,eAAeu1E,MAAgBgK,iBAAkBj+I,KAAK0+D,eAAeu1E,MAAgBiK,YACvG,MACJ,IAAK,IACDM,EAAMC,GAAU,KAChB,MACJ,IAAK,IACDvvI,EAAQuvI,GAAU,KAClB,MACJ,IAAK,IACDvvI,EAAQ0vI,GAAQ,IAAK5+I,KAAK0+D,eAAeu1E,MAAgBkK,mBAAoBn+I,KAAK0+D,eAAeu1E,MAAgBmK,cACjH,MACJ,IAAK,IACDnvI,EAAOwvI,GAAU,KACjB,MACJ,IAAK,IACDxzH,GAAO,IAAIrjB,KAAK62I,GAAU,MAC1BxvI,EAAOgc,GAAKmB,cACZld,EAAQ+b,GAAKkB,WAAa,EAC1BH,EAAMf,GAAKiB,UACX,MACJ,IAAK,IACDjB,GAAO,IAAIrjB,MAAM62I,GAAU,KAAOz+I,KAAK4yI,aAAe,KACtD3jI,EAAOgc,GAAKmB,cACZld,EAAQ+b,GAAKkB,WAAa,EAC1BH,EAAMf,GAAKiB,UACX,MACJ,IAAK,IACGwxH,GAAU,KACVoB,KAGAd,IAAU,EAEd,MACJ,QACIc,KAIhB,GAAIP,EAAS7rI,EAAMrH,SACfizI,EAAQ5rI,EAAMnH,OAAOgzI,IAChB,OAAO5rI,KAAK2rI,IACb,KAAM,4CAA8CA,EAS5D,IANa,IAATrvI,EACAA,OAAWrH,MAAOwkB,cAEbnd,EAAO,MACZA,QAAYrH,MAAOwkB,eAAY,IAASxkB,MAAOwkB,cAAgB,KAAQnd,GAAQs/H,EAAkB,GAAI,MAErGiQ,GAAM,EAGN,IAFAtvI,EAAQ,EACR8c,EAAMwyH,EAEFH,EAAMr+I,KAAK00I,oBAAoBzlI,EAAMC,EAAQ,KACzC8c,GAAOqyH,IAGXnvI,IACA8c,GAAOqyH,EAQf,GALkB,SAAdr+I,KAAKkxI,OACLhiI,GAAkB,IAAVA,EAAe,EAAIA,EAC3B8c,GAAc,IAARA,EAAa,EAAIA,GAE3Bf,GAAOjrB,KAAKo3I,qBAAqB,IAAIxvI,KAAKqH,EAAMC,EAAQ,EAAG8c,IACvDf,GAAKmB,gBAAkBnd,GAAQgc,GAAKkB,WAAa,IAAMjd,GAAS+b,GAAKiB,YAAcF,EACnF,KAAM,eAEV,OAAOf,EACX,CACAmsH,qBAAqBnsH,GACjB,OAAKA,GAGLA,EAAK8rH,SAAS9rH,EAAK+B,WAAa,GAAK/B,EAAK+B,WAAa,EAAI,GACpD/B,GAHI,IAIf,CACAiuG,oBACIl5H,KAAK24H,OAAU34H,KAAK2iI,iBAA2C,IAAxB3iI,KAAK2iI,eAChD,CACA+T,8BAA8BqI,GAC1B,QAAI/+I,KAAKkvI,eAGAlvI,KAAKqvI,SAAW0P,GAAgB/+I,KAAKqvI,YAAcrvI,KAAK0vI,SAAWqP,GAAgB/+I,KAAK0vI,QACrG,CACAlD,mBAAmBxkI,GACf,MAAMijB,EAAO,IAAIrjB,KACXkuI,EAAW,CACb9pH,IAAKf,EAAKiB,UACVhd,MAAO+b,EAAKkB,WACZld,KAAMgc,EAAKmB,cACX2xG,WAAY9yG,EAAKkB,aAAensB,KAAKuvI,cAAgBtkH,EAAKmB,gBAAkBpsB,KAAKwvI,YACjFv9G,OAAO,EACPisG,YAAY,GAEhBl+H,KAAKyvI,aAAaxkH,EAAKkB,WAAYlB,EAAKmB,eACxCpsB,KAAKsmI,aAAat+H,EAAO8tI,GACzB91I,KAAKuxI,aAAal9H,KAAK4W,EAC3B,CACAwhH,mBAAmBzkI,GACfhI,KAAKi2I,YAAY,MACjBj2I,KAAKuwI,mBACLvwI,KAAKq2I,cACLr2I,KAAKwxI,aAAan9H,KAAKrM,EAC3B,CACA2oI,wBACI,GAAI3wI,KAAK4wI,eAAiB,GAAK5wI,KAAKwwI,kBAAmB,CAC9CxwI,KAAKqyI,yBACNryI,KAAKqyI,uBAAyBryI,KAAKq8D,SAASrC,cAAc,SAC1Dh6D,KAAKqyI,uBAAuBrvI,KAAO,WACnChD,KAAKq8D,SAASjC,YAAYp6D,KAAKiL,SAASvB,KAAM1J,KAAKqyI,yBAEvD,IAAIloD,EAAY,GAChB,GAAInqF,KAAKwwI,kBAAmB,CACxB,IAAIA,EAAoB,IAAIxwI,KAAKwwI,mBAAmBviI,OAAQ+pE,MAASA,EAAEgnE,aAAchnE,EAAEinE,YAAY32H,KAAK,CAAC42H,EAAIC,KAAO,EAAKD,EAAGF,WAAWv2H,cAAc02H,EAAGH,gBAAY19I,EAAW,CAAEg6H,SAAS,KAC1L,QAASlwH,EAAI,EAAGA,EAAIolI,EAAkBnlI,OAAQD,IAAK,CAC/C,IAAM4zI,aAAYC,aAAczO,EAAkBplI,GAC9CikC,EAAS,2CACOrvC,KAAKwzI,oDAAoDyL,yIAI7E,QAASltF,EAAIktF,EAAWltF,EAAI/xD,KAAK4wI,eAAgB7+E,IAC7C1iB,GAAU,+CACUrvC,KAAKwzI,oDAAoDzhF,EAAI,2HAKrFo4B,GAAa,2DACuB60D,qCAC1B3vG,oDAGd,CACJ,CACArvC,KAAKqyI,uBAAuBloD,UAAYA,KACxCpvB,OAAa/6D,KAAKqyI,uBAAwB,QAASryI,KAAKmZ,QAAQ2nG,OAAOD,MAC3E,CACJ,CACA6vB,gCACQ1wI,KAAKqyI,yBACLryI,KAAKqyI,uBAAuBv9E,SAC5B90D,KAAKqyI,uBAAyB,KAEtC,CACAsK,4BACS38I,KAAK0yI,uBACN1yI,KAAKw9D,KAAKX,kBAAkB,KAExB78D,KAAK0yI,sBAAwB1yI,KAAKq8D,SAAStW,OADpB/lD,KAAKg7D,GAAKh7D,KAAKg7D,GAAGya,cAAc+3C,cAAgBxtH,KAAKiL,SACV,YAAcjD,IACxEhI,KAAKo/I,iBAAiBp3I,IAAUhI,KAAKg9H,gBACrCh9H,KAAKw9D,KAAKd,IAAI,KACV18D,KAAKq2I,cACLr2I,KAAK2xI,eAAet9H,KAAKrM,GACzBhI,KAAKmgH,GAAG0zB,cAAa,EACxB,EAER,EAGb,CACAwL,8BACQr/I,KAAK0yI,wBACL1yI,KAAK0yI,wBACL1yI,KAAK0yI,sBAAwB,KAErC,CACAkK,8BACS58I,KAAKozI,yBAA2BpzI,KAAKijI,UACtCjjI,KAAKozI,uBAAyBpzI,KAAKq8D,SAAStW,OAAO/lD,KAAKuqB,OAAQ,SAAUvqB,KAAKs/I,eAAe55C,KAAK1lG,OAE3G,CACAu/I,+BACQv/I,KAAKozI,yBACLpzI,KAAKozI,yBACLpzI,KAAKozI,uBAAyB,KAEtC,CACAvkB,qBACS7uH,KAAKmzI,gBACNnzI,KAAKmzI,cAAgB,IAAIvkB,GAA8B5uH,KAAK6xI,oBAAoBp8D,cAAe,KACvFz1E,KAAKg9H,gBACLh9H,KAAKq2I,aAAY,IAI7Br2I,KAAKmzI,cAActkB,oBACvB,CACAC,uBACQ9uH,KAAKmzI,eACLnzI,KAAKmzI,cAAcrkB,sBAE3B,CACAswB,iBAAiBp3I,GACb,QAAShI,KAAKg7D,GAAGya,cAAc+pE,WAAWx3I,EAAMg3C,SAAWh/C,KAAKy/I,iBAAiBz3I,IAAUhI,KAAKg7D,GAAGya,cAAcrnB,SAASpmD,EAAMg3C,SAAYh/C,KAAKs/B,SAAWt/B,KAAKs/B,QAAQ8uB,SAASpmD,EAAMg3C,QAC5L,CACAygG,iBAAiBz3I,GACb,SAAO67G,OAAS77G,EAAMg3C,OAAQ,8BAA0B,EAAK6kE,OAAS77G,EAAMg3C,OAAQ,4BAAwB,EAAK6kE,OAAS77G,EAAMg3C,OAAQ,8BAA0B,EAAK6kE,OAAS77G,EAAMg3C,OAAQ,yBAClM,CACAsgG,iBACQt/I,KAAKg9H,kBAAkB,EAACrS,UACxB3qH,KAAKq2I,aAEb,CACAqG,gBACI18I,KAAKynI,YAAcznI,KAAKkxI,KACpBlxI,KAAK8hE,MACL9hE,KAAK+8I,cAET/8I,KAAKq/I,8BACLr/I,KAAKu/I,+BACLv/I,KAAK8uH,uBACL9uH,KAAKs/B,QAAU,IACnB,CACA9kB,cACQxa,KAAKmzI,gBACLnzI,KAAKmzI,cAAcvtF,UACnB5lD,KAAKmzI,cAAgB,MAErBnzI,KAAKszI,yBACLtzI,KAAKszI,wBAAwB9/H,cAE7BxT,KAAKs/B,SAAWt/B,KAAKivI,YACrB3S,GAAYz2G,MAAM7lB,KAAKs/B,SAE3Bt/B,KAAK0wI,gCACL1wI,KAAKw7I,uBACLx7I,KAAK68I,uBACL78I,KAAK08I,gBACLv8I,MAAMqa,aACV,CACAmlG,iBAAc,SAA4BvhF,GAAqB,OAAO,IAAKA,GAAqB4vG,GAAYrnI,MAAqBA,OAAYA,MAAqBC,OAAqB,EACvL+4G,iBAA4Bh5G,MAAqB,CAAE3D,KAAMgrI,EAAY15H,UAAW,CAAC,CAAC,gBAAiB,CAAC,gBAAiB,CAAC,kBAAmBuiH,eAAgB,SAAmChiH,EAAIC,EAAKgiH,GAc/L,GAdoN,EAALjiH,IAC7MlO,MAAkBmwH,EAAU7hH,GAAK,GACjCtO,MAAkBmwH,EAAU7/G,GAAK,GACjCtQ,MAAkBmwH,EAAUhE,GAAK,GACjCnsH,MAAkBmwH,EAAU/D,GAAK,GACjCpsH,MAAkBmwH,EAAU9D,GAAK,GACjCrsH,MAAkBmwH,EAAUiI,GAAK,GACjCp4H,MAAkBmwH,EAAUkI,GAAK,GACjCr4H,MAAkBmwH,EAAUmI,GAAK,GACjCt4H,MAAkBmwH,EAAUoI,GAAK,GACjCv4H,MAAkBmwH,EAAUqI,GAAK,GACjCx4H,MAAkBmwH,EAAUsI,GAAM,GAClCz4H,MAAkBmwH,EAAUuI,GAAM,GAClC14H,MAAkBmwH,EAAUa,MAAe,IACpC,EAAL9iH,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAI+wH,aAAejO,EAAG5yD,OACnEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIw4H,eAAiB1V,EAAG5yD,OACrEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI44H,eAAiB9V,EAAG5yD,OACrEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAImxH,qBAAuBrO,EAAG5yD,OAC3Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI6vH,eAAiB/M,EAAG5yD,OACrEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI4uH,qBAAuB9L,EAAG5yD,OAC3Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAImwH,iBAAmBrN,EAAG5yD,OACvEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIssH,oBAAsBxJ,EAAG5yD,OAC1Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI8rH,kBAAoBhJ,EAAG5yD,OACxEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI+0H,sBAAwBjS,EAAG5yD,OAC5Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIi2H,sBAAwBnT,EAAG5yD,OAC5Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAImtH,kBAAoBrK,EAAG5yD,OACxEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIsiH,UAAYQ,EACjE,CAAE,EAAG3hH,UAAW,SAA0BpB,EAAIC,GAI5C,GAJ4D,EAALD,IACrDlO,MAAe24H,GAAM,GACrB34H,MAAe44H,GAAM,GACrB54H,MAAe64H,GAAM,IACd,EAAL3qH,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAI+8H,mBAAqBja,EAAG5yD,OACzEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIg9H,oBAAsBla,EAAG5yD,OAC1Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI+sD,QAAU+1D,EAAG5yD,MAClE,CAAE,EAAGzwD,OAAQ,CAAE6uH,YAAa,cAAer2F,MAAO,QAAS6oC,WAAY,aAAc0jD,WAAY,aAAcwJ,QAAS,UAAWxgI,KAAM,OAAQogI,gBAAiB,kBAAmBG,YAAa,cAAeG,eAAgB,iBAAkBjS,UAAW,YAAamd,cAAe,gBAAiBn4H,SAAU,CAAC,EAAG,WAAY,WAAYw5G,OAAmB4e,WAAY,aAAcC,kBAAmB,oBAAqBC,eAAgB,iBAAkBlR,OAAQ,CAAC,EAAG,SAAU,SAAU5N,OAAmBsX,gBAAiB,CAAC,EAAG,kBAAmB,kBAAmBtX,OAAmB+e,kBAAmB,CAAC,EAAG,oBAAqB,oBAAqB/e,OAAmB4T,SAAU,CAAC,EAAG,WAAY,WAAY5T,OAAmBoD,MAAO,CAAC,EAAG,QAAS,QAASpD,OAAmBjrD,KAAM,OAAQggD,SAAU,WAAYse,cAAe,CAAC,EAAG,gBAAiB,gBAAiBrT,OAAmBgf,gBAAiB,kBAAmBC,eAAgB,CAAC,EAAG,iBAAkB,iBAAkBjf,OAAmBkf,cAAe,CAAC,EAAG,gBAAiB,gBAAiBlf,OAAmB8c,WAAY,aAAcjP,SAAU,CAAC,EAAG,WAAY,WAAY7N,OAAmBmf,SAAU,CAAC,EAAG,WAAY,WAAY7W,OAAkB8W,WAAY,CAAC,EAAG,aAAc,aAAc9W,OAAkB+W,WAAY,CAAC,EAAG,aAAc,aAAc/W,OAAkBuU,YAAa,CAAC,EAAG,cAAe,cAAe7c,OAAmBwT,SAAU,CAAC,EAAG,WAAY,WAAYxT,OAAmBuS,YAAa,CAAC,EAAG,cAAe,cAAevS,OAAmByX,SAAU,CAAC,EAAG,WAAY,WAAYzX,OAAmBsf,4BAA6B,8BAA+B3L,UAAW,CAAC,EAAG,YAAa,YAAa3T,OAAmBuf,SAAU,WAAYC,cAAe,gBAAiBC,aAAc,CAAC,EAAG,eAAgB,eAAgBnX,OAAkB4V,cAAe,CAAC,EAAG,gBAAiB,gBAAiBle,OAAmBmd,sBAAuB,wBAAyBC,sBAAuB,wBAAyB3d,UAAW,CAAC,EAAG,YAAa,YAAaO,OAAmB0f,WAAY,CAAC,EAAG,aAAc,aAAc1f,OAAmBmN,WAAY,CAAC,EAAG,aAAc,aAAc7E,OAAkBqV,gBAAiB,kBAAmBC,WAAY,aAAc+B,YAAa,CAAC,EAAG,cAAe,cAAe3f,OAAmB4f,qBAAsB,CAAC,EAAG,uBAAwB,uBAAwB5f,OAAmB0T,QAAS,CAAC,EAAG,UAAW,UAAW1T,OAAmBya,cAAe,gBAAiBoF,UAAW,CAAC,EAAG,YAAa,YAAa7f,OAAmB6d,sBAAuB,wBAAyBC,sBAAuB,wBAAyBrW,SAAU,CAAC,EAAG,WAAY,WAAYa,OAAkBZ,QAAS,UAAW30G,KAAM,OAAQ+sH,QAAS,UAAWK,QAAS,UAAWE,cAAe,gBAAiBE,aAAc,eAAgBE,UAAW,YAAaxC,SAAU,WAAYgD,kBAAmB,oBAAqBI,eAAgB,iBAAkBE,eAAgB,iBAAkBv7G,OAAQ,SAAU27G,KAAM,OAAQE,YAAa,eAAiB58H,QAAS,CAAEsqG,QAAS,UAAWC,OAAQ,SAAU/jC,QAAS,UAAWs2D,SAAU,WAAYvzB,QAAS,UAAWsb,QAAS,UAAWkY,aAAc,eAAgBC,aAAc,eAAgBC,cAAe,gBAAiBC,aAAc,eAAgBC,eAAgB,iBAAkBC,OAAQ,UAAYtuB,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACinI,GAA2B/O,KAAmBl4H,MAA6BA,MAA+BA,OAAyBqvE,mBAAoB0pD,GAAMjrH,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,YAAa,IAAK,CAAC,aAAc,IAAK,CAAC,iBAAkB,IAAK,CAAC,EAAG,UAAW,WAAY,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,UAAW,UAAW,QAAS,EAAG,QAAS,CAAC,aAAc,GAAI,OAAQ,OAAQ,OAAQ,WAAY,oBAAqB,OAAQ,gBAAiB,SAAU,eAAgB,MAAO,EAAG,QAAS,UAAW,QAAS,OAAQ,QAAS,QAAS,WAAY,UAAW,UAAW,cAAe,WAAY,aAAc,UAAW,SAAU,CAAC,EAAG,QAAS,CAAC,OAAQ,SAAU,gBAAiB,SAAU,QAAS,wBAAyB,WAAY,IAAK,EAAG,WAAY,QAAS,EAAG,QAAS,CAAC,EAAG,QAAS,QAAS,EAAG,QAAS,CAAC,QAAS,0BAA2B,EAAG,QAAS,EAAG,QAAS,CAAC,EAAG,SAAU,CAAC,EAAG,0BAA2B,EAAG,SAAU,CAAC,EAAG,oBAAqB,CAAC,OAAQ,SAAU,gBAAiB,SAAU,WAAY,IAAK,EAAG,wBAAyB,EAAG,QAAS,YAAa,CAAC,EAAG,UAAW,EAAG,QAAS,CAAC,EAAG,WAAY,CAAC,EAAG,qCAAsC,CAAC,EAAG,UAAW,QAAS,EAAG,QAAS,CAAC,EAAG,mBAAoB,2BAA4B,CAAC,EAAG,QAAS,WAAY,CAAC,EAAG,QAAS,UAAW,WAAY,CAAC,QAAS,2BAA4B,EAAG,QAAS,CAAC,QAAS,yBAA0B,EAAG,QAAS,CAAC,EAAG,mCAAoC,CAAC,QAAS,wBAAyB,EAAG,QAAS,WAAY,CAAC,QAAS,0BAA2B,EAAG,QAAS,CAAC,QAAS,yBAA0B,EAAG,QAAS,CAAC,EAAG,yBAA0B,CAAC,EAAG,uBAAwB,CAAC,OAAQ,QAAS,UAAW,GAAI,OAAQ,GAAI,aAAc,8CAA+C,OAAQ,SAAU,EAAG,UAAW,UAAW,WAAY,CAAC,EAAG,sBAAuB,CAAC,OAAQ,SAAU,QAAS,4BAA6B,UAAW,GAAI,EAAG,WAAY,QAAS,UAAW,EAAG,QAAS,CAAC,OAAQ,SAAU,QAAS,2BAA4B,UAAW,GAAI,EAAG,WAAY,QAAS,UAAW,EAAG,QAAS,CAAC,QAAS,sBAAuB,EAAG,QAAS,CAAC,UAAW,GAAI,OAAQ,GAAI,OAAQ,QAAS,aAAc,8CAA+C,EAAG,UAAW,UAAW,WAAY,CAAC,QAAS,wBAAyB,OAAQ,OAAQ,EAAG,QAAS,CAAC,OAAQ,SAAU,UAAW,GAAI,EAAG,4BAA6B,EAAG,QAAS,UAAW,YAAa,CAAC,OAAQ,SAAU,UAAW,GAAI,EAAG,2BAA4B,EAAG,QAAS,UAAW,YAAa,CAAC,EAAG,uBAAwB,CAAC,OAAQ,OAAQ,EAAG,yBAA0B,CAAC,QAAS,qCAAsC,EAAG,QAAS,CAAC,QAAS,4BAA6B,QAAS,MAAO,EAAG,QAAS,WAAY,CAAC,EAAG,QAAS,WAAY,CAAC,EAAG,0BAA2B,cAAe,CAAC,QAAS,MAAO,EAAG,6BAA8B,CAAC,EAAG,wBAAyB,CAAC,QAAS,0BAA2B,EAAG,QAAS,CAAC,EAAG,UAAW,EAAG,QAAS,WAAY,CAAC,EAAG,2BAA4B,CAAC,EAAG,mCAAoC,cAAe,CAAC,YAAa,QAAS,UAAW,GAAI,EAAG,QAAS,UAAW,WAAY,CAAC,QAAS,sBAAuB,YAAa,SAAU,EAAG,QAAS,CAAC,YAAa,SAAU,EAAG,uBAAwB,CAAC,EAAG,2BAA4B,CAAC,UAAW,GAAI,EAAG,UAAW,QAAS,UAAW,EAAG,QAAS,WAAY,CAAC,UAAW,GAAI,EAAG,QAAS,UAAW,WAAY,CAAC,EAAG,0BAA2B,CAAC,EAAG,4BAA6B,CAAC,EAAG,4BAA6B,CAAC,UAAW,GAAI,OAAQ,GAAI,OAAQ,QAAS,aAAc,mDAAoD,EAAG,UAAW,gBAAiB,gBAAiB,YAAa,UAAW,cAAe,cAAe,cAAe,CAAC,EAAG,0BAA2B,CAAC,EAAG,8BAA+B,CAAC,QAAS,yBAA0B,EAAG,QAAS,CAAC,QAAS,6BAA8B,EAAG,QAAS,CAAC,QAAS,2BAA4B,EAAG,QAAS,CAAC,EAAG,8BAA+B,CAAC,EAAG,4BAA6B,CAAC,OAAQ,QAAS,OAAQ,GAAI,UAAW,GAAI,aAAc,mDAAoD,EAAG,UAAW,UAAW,iBAAkB,CAAC,OAAQ,QAAS,OAAQ,GAAI,UAAW,GAAI,aAAc,mDAAoD,EAAG,UAAW,QAAS,iBAAkB,CAAC,EAAG,0BAA2B,CAAC,OAAQ,QAAS,aAAc,4BAA6B,EAAG,UAAW,UAAW,QAAS,WAAY,CAAC,OAAQ,QAAS,aAAc,4BAA6B,EAAG,UAAW,UAAW,QAAS,YAAaC,SAAU,SAA6BC,EAAIC,GAAgB,EAALD,IACl2PlO,MAAmB84H,IACnB94H,MAAkB,EAAG,OAAQ,EAAG,GAChCA,MAAc,EAAGw7H,GAAmC,EAAG,GAAI,cAAe,EAA1Ex7H,CAA6E,EAAGkmI,GAA2B,EAAG,GAAI,MAAO,GACzHlmI,SACO,EAALkO,IACFlO,MAAcmO,EAAI8gE,YAClBjvE,MAAc,UAAWmO,EAAI6+H,UAA7BhtI,CAAwC,UAAWmO,EAAIi4B,OACvDpmC,MAAa,GACbA,MAAc,QAASmO,EAAIqoH,QAC3Bx2H,QACAA,MAAc,OAAQmO,EAAIqoH,QAAUroH,EAAIkoH,gBAC1C,EAAG1M,aAAc,CAACxxF,MAAcj4B,MAAYA,MAAYA,MAASA,MAAqBA,MAAYkwH,GAAQpF,GAAQoG,GAAiBE,GAAkBE,GAAeE,GAAiBE,GAAWE,GAAc1J,GAAWgK,GAAWj4F,OAAeyvF,cAAe,EAAGznH,KAAM,CAAEgtC,UAAW,IAClR6S,MAAQ,mBAAoB,IACxB2B,MAAM,oBAAkBvd,MAAM,CAC1ByyD,UAAW,uBACXuoB,QAAS,MACX,EACFzyE,MAAW,kBAAmB,IAACvI,MAAM,CAAEg7E,QAAS,EAAGvoB,UAAW,iBAAe,EAAGpyD,MAAQ,8BAA4BL,MAAM,CAAEg7E,QAAS,EAAGvoB,UAAW,UAAQ,EAC3JlqD,MAAW,kBAAmB,IAAClI,MAAQ,8BAA4BL,MAAM,CAAEg7E,QAAS,QAAM,EAC1FzyE,MAAW,yBAA0B,IAACvI,MAAM,CAAEg7E,QAAS,EAAGvoB,UAAW,2CAAyC,EAAGpyD,MAAQ,+BAA4B,EACrJkI,MAAW,yBAA0B,IACjClI,MAAQ,8BAA4BL,MAAM,CACtCg7E,QAAS,EACTvoB,UAAW,iDAItBgxB,gBAAiB,IACjC,OA9/FKwd,CAAU,KAurHV0R,GAAgB,MAAtB,MAAMA,EACF//B,iBAAc,SAAkCvhF,GAAqB,OAAO,IAAKA,GAAqBshH,EAAqB,EAC3H//B,iBAA4Bh5G,KAAoB,CAAE3D,KAAM08I,IACxD//B,iBAA4Bh5G,MAAoB,CAAE43B,QAAS,CAACyvG,GAAYltG,MAAcA,SACzF,OAJK4+G,CAAgB,KCxmKhBC,GAAS,MAAf,MAAMA,UAAkB/uB,GACpBjR,iBAA6B,MAAQ,IAAIigC,EAAwB,OAAO,SAA2BxhH,GAAqB,OAAQwhH,IAA2BA,EAAyBj5I,MAAyBg5I,KAAavhH,GAAqBuhH,EAAY,CAAG,EAAjO,GAC7BhgC,iBAA4Bh5G,MAAqB,CAAE3D,KAAM28I,EAAWrrI,UAAW,CAAC,CAAC,cAAegvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,01BAA21B,OAAQ,iBAAkBC,SAAU,SAA4BC,EAAIC,GAAgB,EAALD,IACzuClO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXKovB,CAAS,KCATE,GAAS,MAAf,MAAMA,UAAkBjvB,GACpBjR,iBAA6B,MAAQ,IAAImgC,EAAwB,OAAO,SAA2B1hH,GAAqB,OAAQ0hH,IAA2BA,EAAyBn5I,MAAyBk5I,KAAazhH,GAAqByhH,EAAY,CAAG,EAAjO,GAC7BlgC,iBAA4Bh5G,MAAqB,CAAE3D,KAAM68I,EAAWvrI,UAAW,CAAC,CAAC,cAAegvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,6YAA8Y,OAAQ,iBAAkBC,SAAU,SAA4BC,EAAIC,GAAgB,EAALD,IAC5xBlO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXKsvB,CAAS,KCOf,MAAMpwB,GAAQA,EAAG9O,QAAS,wIAMbA,EAAG,mCACFA,EAAG,wUAiBIA,EAAG,sJAOHA,EAAG,qDACAA,EAAG,8CACTA,EAAG,uCACRA,EAAG,mCACFA,EAAG,mDACYA,EAAG,0CAA0CA,EAAG,iDAAiDA,EAAG,+CAA+CA,EAAG,kDAAkDA,EAAG,sFAEtNA,EAAG,0EAIMA,EAAG,gDACjBA,EAAG,2CACCA,EAAG,sCACPA,EAAG,uCACFA,EAAG,+HAIGA,EAAG,kGAIHA,EAAG,sDACLA,EAAG,4FAIRA,EAAG,8IAIEA,EAAG,4DACDA,EAAG,kJAIVA,EAAG,sJAIIA,EAAG,oDACLA,EAAG,gDACNA,EAAG,gCAAgCA,EAAG,gCAAgCA,EAAG,sDAClEA,EAAG,uJAILA,EAAG,wHAIHA,EAAG,2GAILA,EAAG,gHAIHA,EAAG,+JAIHA,EAAG,yJAQHA,EAAG,uDACDA,EAAG,0HAIVA,EAAG,wGAKHA,EAAG,sCACFA,EAAG,kFAIAA,EAAG,yCACPA,EAAG,0CACFA,EAAG,iGAKJA,EAAG,sCACFA,EAAG,kFAIAA,EAAG,yCACPA,EAAG,0CACFA,EAAG,iCAGXtrG,GAAU,CACZi6C,KAAMA,EAAG8xD,WAAU5sD,WAAY,CAC3B,yBACA,CACI,qBAAsB4sD,EAAS2+B,QAC/B,aAAcvrF,EAAMz+C,SACpB,YAAay+C,EAAMokE,QACnB,mBAAoBpkE,EAAMyiE,QAA4B,WAAlBziE,EAAMyiE,QAAsD,WAA/B7V,EAASjoG,OAAOmgH,YAA4D,WAAjClY,EAASjoG,OAAOogH,eAGpIymB,IAAK,iBACLrvG,MAAO,mBACP2zB,KAAM,mBACR,IACI27E,GAAa,MAAnB,MAAMA,UAAsBvgC,KACxBp9G,KAAO,WACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAIugC,EAA4B,OAAO,SAA+B9hH,GAAqB,OAAQ8hH,IAA+BA,EAA6Bv5I,MAAyBs5I,KAAiB7hH,GAAqB6hH,EAAgB,CAAG,EAAzP,GAC7BtgC,kBAA6Bh5G,MAAsB,CAAE0e,MAAO46H,EAAe94I,QAAS84I,EAAc74I,YACrG,OANK64I,CAAa,KAuCnB,MAAMhrI,GAAM,CAAC,gBACPgC,GAAM,CAAC,SACP67G,GAAMA,MAAS,oBAAoB,IACnCC,GAAME,KAAS8sB,QAAS9sB,EAAIC,MAAO,oBACzC,SAASitB,GAAuDtrI,EAAIC,GAElE,GAFkF,EAALD,GAC3ElO,MAAa,EAAG,OAAQ,GACjB,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAc,UAAWy2E,EAAOgjE,cAChCz5I,MAAe,kBAAmB,OACtC,CAAE,CACF,SAAS05I,GAA4DxrI,EAAIC,GAAgB,EAALD,GAChFlO,MAAa,EAAG,YAAa,GACtB,EAALkO,IACFlO,MAAc,aAAc,mBAC5BA,MAAe,kBAAmB,QACpC,CACF,SAAS25I,GAAgDzrI,EAAIC,GAI3D,GAJ2E,EAALD,IACpElO,MAA2B,GAC3BA,MAAc,EAAGw5I,GAAwD,EAAG,EAAG,OAAQ,EAAvFx5I,CAA0F,EAAG05I,GAA6D,EAAG,EAAG,YAAa,GAC7K15I,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,OAAQy2E,EAAOgjE,cAC7Bz5I,QACAA,MAAc,QAASy2E,EAAOgjE,aAClC,CAAE,CACF,SAASG,GAA6C1rI,EAAIC,GAAgB,EAALD,GACjElO,MAAa,EAAG,YAAa,GACtB,EAALkO,IACFlO,MAAc,aAAc,mBAC5BA,MAAe,kBAAmB,QACpC,CACF,SAAS65I,GAAiC3rI,EAAIC,GAI5C,GAJ4D,EAALD,IACrDlO,MAA2B,GAC3BA,MAAc,EAAG25I,GAAiD,EAAG,EAAG,eAAgB,EAAxF35I,CAA2F,EAAG45I,GAA8C,EAAG,EAAG,YAAa,GAC/J55I,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,QACfA,QACAA,MAAc,OAAQy2E,EAAO2iE,SAC7Bp5I,QACAA,MAAc,OAAQy2E,EAAOqjE,iBACjC,CAAE,CACF,SAASC,GAAkC7rI,EAAIC,GAAO,CACtD,SAAS6rI,GAAoB9rI,EAAIC,GAAgB,EAALD,GACxClO,MAAc,EAAG+5I,GAAmC,EAAG,EAAG,cAC5D,CACF,MAAME,GAA0B,CAC5B5hH,QAAS6uG,MACTC,eAAaC,OAAW,IAAM8S,IAC9Br0G,OAAO,GAEX,IAIMq0G,GAAQ,MAAd,MAAMA,UAAiB5tI,GAKnBP,MAKApQ,KAKAyT,SAKA+qI,OAKA9d,eAKAjS,UAKAiG,SAKA8L,QAKA/1F,MAKAusF,WAKA1jD,WAKAmrE,WAKAC,eAAgB,EAKhB1+H,KAKA2+H,YAKAb,aAKAc,SAKAne,SAKA/T,UAKAmyB,WAAY,EAKZC,YAAa,EAKbnqB,QAAU,WAMVoqB,SAAW,IAAIntI,MAMf4qG,QAAU,IAAI5qG,MAMd6qG,OAAS,IAAI7qG,MACbotI,eACA,WAAIvB,GACA,OAAO//I,KAAKygJ,mBAA2BzgJ,KAAK8gJ,OAAS9gJ,KAAKiuB,QAAUjuB,KAAKmhJ,aAAY/yF,OAASpuD,KAAK0S,MAAO1S,KAAKiuB,OACnH,CACA,kBAAIiiG,GACA,MAAO,CACH,0BAA0B,EAC1B,iCAAkClwH,KAAK+/I,QACvC,aAAc//I,KAAK+V,SACnB,mBAAqC,WAAjB/V,KAAKi3H,SAAqD,WAA7Bj3H,KAAKmZ,OAAOmgH,cAA4D,WAA/Bt5H,KAAKmZ,OAAOogH,eACtG,gCAA+C,UAAdv5H,KAAKsiB,KACtC,gCAA+C,UAAdtiB,KAAKsiB,KAE9C,CACAm+H,kBAAiBc,YAAOjgJ,GAKxBkgJ,qBACApqB,UACAqqB,sBACAxzH,MACAqkH,cAAgBA,OAChBC,eAAiBA,OACjBrjB,SAAU,EACVlO,mBAAkBnB,OAAOogC,IACzB3oB,qBACIt3H,KAAKo3H,UAAU7jH,QAAS1B,IACpB,OAAQA,EAAK0lH,WACT,IAAK,OAGL,IAAK,eACDv3H,KAAKyhJ,sBAAwB5vI,EAAK+C,SAE1C,EAER,CACAU,YAAYC,GACRpV,MAAMmV,YAAYC,GACdA,EAAQyrI,eACRhhJ,KAAKygJ,eAAe77I,IAAI2Q,EAAQyrI,cAAch8C,aAEtD,CACAixC,YAAYjuI,GACR,IAAI05I,EAMJ,MAAMC,EAAc3hJ,KAAKigH,SAASj6G,IAAI47I,MAAW,KAAM,CAAE/nG,UAAU,EAAMgoG,MAAM,IACzEC,EAAoBH,IAAgB3hJ,KAAKihJ,YAAcU,EAAYjvI,MAAQ1S,KAAKiuB,MACjFjuB,KAAK8gJ,QAYNY,EAAgB1hJ,KAAKygJ,iBAAmBzgJ,KAAKmhJ,UAAYnhJ,KAAK+/I,QAAU//I,KAAKohJ,WAAaphJ,KAAKmhJ,UAC/FnhJ,KAAKiuB,MAAQyzH,EACb1hJ,KAAKsyI,cAAcoP,KAZfA,EADA1hJ,KAAK+/I,SAAW//I,KAAKygJ,iBACLqB,EAAkB7zI,OAAQqhB,KAAQ,EAACqqG,OAAOrqG,EAAKtvB,KAAK0S,QAEpDovI,EAAoB,IAAIA,EAAmB9hJ,KAAK0S,OAAS,CAAC1S,KAAK0S,OACnF1S,KAAKsyI,cAAcoP,GACnB1hJ,KAAKiuB,MAAQyzH,EACT1hJ,KAAKihJ,aACLjhJ,KAAKihJ,YAAY3lF,SAASomF,IAQ9B1hJ,KAAKygJ,kBACLzgJ,KAAKygJ,eAAe77I,KAAI,GAE5B5E,KAAKqhJ,SAAShtI,KAAK,CAAE0rI,QAAS2B,EAAevJ,cAAenwI,GAChE,CACA+5I,aAAa/5I,GACJhI,KAAKkhJ,UACNlhJ,KAAKi2I,YAAYjuI,EAEzB,CACAo6H,aAAap6H,GACThI,KAAKkvH,SAAU,EACflvH,KAAK8+G,QAAQzqG,KAAKrM,EACtB,CACAu6H,YAAYv6H,GACRhI,KAAKkvH,SAAU,EACflvH,KAAK++G,OAAO1qG,KAAKrM,GACjBhI,KAAKuyI,gBACT,CACA1zB,QACI7+G,KAAKshJ,eAAe7rE,cAAcopC,OACtC,CACAu+B,WAAWnvH,GACPjuB,KAAKiuB,MAAQA,EACbjuB,KAAKmgH,GAAG0zB,cACZ,CACAwJ,iBAAiBz6F,GACb5iD,KAAKsyI,cAAgB1vF,CACzB,CACA06F,kBAAkB16F,GACd5iD,KAAKuyI,eAAiB3vF,CAC1B,CACA26F,iBAAiBjuH,GACb9Z,WAAW,KACPxV,KAAK+V,SAAWuZ,EAChBtvB,KAAKmgH,GAAG0zB,cAAa,EAE7B,CACAl0B,iBAA6B,MAAQ,IAAIqiC,EAAuB,OAAO,SAA0B5jH,GAAqB,OAAQ4jH,IAA0BA,EAAwBr7I,MAAyBk6I,KAAYziH,GAAqByiH,EAAW,CAAG,EAA3N,GAC7BlhC,iBAA4Bh5G,MAAqB,CAAE3D,KAAM69I,EAAUvsI,UAAW,CAAC,CAAC,cAAe,CAAC,cAAe,CAAC,gBAAiBuiH,eAAgB,SAAiChiH,EAAIC,EAAKgiH,GAGrL,GAH0M,EAALjiH,IACnMlO,MAAkBmwH,EAAU7hH,GAAK,GACjCtO,MAAkBmwH,EAAUa,MAAe,IACpC,EAAL9iH,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAI0sI,qBAAuB5pB,EAAG5yD,OAC3Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIsiH,UAAYQ,EACjE,CAAE,EAAG3hH,UAAW,SAAwBpB,EAAIC,GAE1C,GAF0D,EAALD,GACnDlO,MAAesQ,GAAK,GACb,EAALpC,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAIwsI,eAAiB1pB,EAAG5yD,MACzE,CAAE,EAAGzwD,OAAQ,CAAE7B,MAAO,QAASpQ,KAAM,OAAQyT,SAAU,CAAC,EAAG,WAAY,WAAYw5G,OAAmBuxB,OAAQ,CAAC,EAAG,SAAU,SAAUvxB,OAAmByT,eAAgB,iBAAkBjS,UAAW,YAAaiG,SAAU,CAAC,EAAG,WAAY,WAAYa,OAAkBiL,QAAS,UAAW/1F,MAAO,QAASusF,WAAY,aAAc1jD,WAAY,aAAcmrE,WAAY,aAAcC,cAAe,CAAC,EAAG,gBAAiB,gBAAiBzxB,OAAmBjtG,KAAM,OAAQ2+H,YAAa,cAAeb,aAAc,eAAgBc,SAAU,CAAC,EAAG,WAAY,WAAY3xB,OAAmBwT,SAAU,CAAC,EAAG,WAAY,WAAYxT,OAAmBP,UAAW,CAAC,EAAG,YAAa,YAAaO,OAAmB4xB,UAAW,YAAaC,WAAY,aAAcnqB,QAAS,WAAaziH,QAAS,CAAE6sI,SAAU,WAAYviC,QAAS,UAAWC,OAAQ,UAAYuE,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACi6I,GAAyBX,KAAiBt5I,MAA6BA,MAA+BA,MAAyBA,OAAyB8N,MAAO,EAAGC,KAAM,GAAIC,OAAQ,CAAC,CAAC,QAAS,IAAK,CAAC,EAAG,WAAY,CAAC,OAAQ,WAAY,EAAG,QAAS,OAAQ,SAAU,QAAS,UAAW,WAAY,WAAY,WAAY,CAAC,EAAG,kBAAmB,CAAC,EAAG,QAAS,CAAC,EAAG,mBAAoB,2BAA4B,CAAC,EAAG,aAAc,EAAG,QAAS,CAAC,QAAS,kBAAmB,EAAG,UAAW,EAAG,QAAS,CAAC,EAAG,kBAAmB,EAAG,WAAY,CAAC,EAAG,eAAgBC,SAAU,SAA2BC,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC99C,MAAMsB,EAAMxP,QACZA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,QAAS,EAAG,GAC9CA,MAAc,QAAS,SAAkDkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAIstH,aAAavnH,GAAU,EAA3JlU,CAA8J,OAAQ,SAAiDkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAIytH,YAAY1nH,GAAU,EAAxSlU,CAA2S,SAAU,SAAmDkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAIitI,aAAalnI,GAAU,GAC1blU,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAc,EAAG65I,GAAkC,EAAG,EAAG,eAAgB,EAAzE75I,CAA4E,EAAGg6I,GAAqB,EAAG,EAAG,KAAM,GAChHh6I,SACJ,CAAW,EAALkO,IACFlO,MAAcmO,EAAIi4B,OAClBpmC,MAAcmO,EAAI8gE,YAClBjvE,MAAc,UAAWmO,EAAIo7G,gBAC7BvpH,MAAe,mBAAoBmO,EAAIirI,QAAvCp5I,CAAgD,iBAAkBmO,EAAIirI,QAAtEp5I,CAA+E,kBAAmBmO,EAAIiB,UACtGpP,QACAA,MAAcmO,EAAIwkH,YAClB3yH,MAAcmO,EAAIisI,YAClBp6I,MAAc,QAASmO,EAAIpC,MAA3B/L,CAAkC,UAAWmO,EAAIirI,QAAjDp5I,CAA0D,WAAYmO,EAAIiB,SAA1EpP,CAAoF,WAAYmO,EAAIosI,SAApGv6I,CAA8G,UAAWA,MAAmB,GAAImsH,KAChJnsH,MAAe,KAAMmO,EAAIguH,QAAzBn8H,CAAkC,OAAQmO,EAAIxS,KAA9CqE,CAAoD,WAAYmO,EAAIkiH,SAApErwH,CAA8E,WAAYmO,EAAIiuH,SAA9Fp8H,CAAwG,kBAAmBmO,EAAIkuH,eAA/Hr8H,CAA+I,aAAcmO,EAAIi8G,WACjKpqH,MAAa,GACbA,MAAc,QAASmO,EAAI0sI,uBAAyB1sI,EAAI2sI,uBACxD96I,QACAA,MAAc,mBAAoBmO,EAAI0sI,sBAAwB1sI,EAAI2sI,sBAAlE96I,CAAyF,0BAA2BA,MAAmB,GAAIosH,GAAKj+G,EAAIirI,UACtJ,EAAGzvB,aAAc,CAACxxF,MAAcl4B,MAAYA,MAASA,MAAqB+4I,GAAWE,GAAW/+G,OAAeyvF,cAAe,EAAGC,gBAAiB,IAC3J,OAjRKqwB,CAAQ,KAkYRoB,GAAc,MAApB,MAAMA,EACFtiC,iBAAc,SAAgCvhF,GAAqB,OAAO,IAAKA,GAAqB6jH,EAAmB,EACvHtiC,iBAA4Bh5G,KAAoB,CAAE3D,KAAMi/I,IACxDtiC,iBAA4Bh5G,MAAoB,CAAE43B,QAAS,CAACsiH,GAAU//G,MAAcA,SACvF,OAJKmhH,CAAc,KC9nBdC,GAAa,MAAnB,MAAMA,UAAsBtxB,GACxBW,OACAp9G,WACInU,KAAKuxH,OAAS,WAAUrQ,SAAS,GACrC,CACAvB,iBAA6B,MAAQ,IAAIwiC,EAA4B,OAAO,SAA+B/jH,GAAqB,OAAQ+jH,IAA+BA,EAA6Bx7I,MAAyBu7I,KAAiB9jH,GAAqB8jH,EAAgB,CAAG,EAAzP,GAC7BviC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMk/I,EAAe5tI,UAAW,CAAC,CAAC,kBAAmBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,YAAa,UAAW,YAAa,UAAW,IAAK,64BAA84B,OAAQ,gBAAiB,CAAC,EAAG,MAAO,CAAC,QAAS,KAAM,SAAU,KAAM,OAAQ,UAAWC,SAAU,SAAgCC,EAAIC,GAAgB,EAALD,IACr5ClO,QACAA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,KAClCA,MAAa,EAAG,OAAQ,GACxBA,QACAA,MAAkB,EAAG,OAArBA,CAA6B,EAAG,WAAY,GAC5CA,MAAa,EAAG,OAAQ,GACxBA,aACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACvFnqH,QACAA,MAAe,YAAamO,EAAIy8G,QAChC5qH,MAAa,GACbA,MAAc,KAAMmO,EAAIy8G,QAC1B,EAAGhB,cAAe,IAC3B,OAtBK2xB,CAAa,KCAbE,GAAW,MAAjB,MAAMA,UAAoBxxB,GACtBW,OACAp9G,WACInU,KAAKuxH,OAAS,WAAUrQ,SAAS,GACrC,CACAvB,iBAA6B,MAAQ,IAAI0iC,EAA0B,OAAO,SAA6BjkH,GAAqB,OAAQikH,IAA6BA,EAA2B17I,MAAyBy7I,KAAehkH,GAAqBgkH,EAAc,CAAG,EAA7O,GAC7BziC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMo/I,EAAa9tI,UAAW,CAAC,CAAC,gBAAiBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,YAAa,UAAW,YAAa,UAAW,IAAK,g7BAAi7B,OAAQ,gBAAiB,CAAC,EAAG,MAAO,CAAC,QAAS,KAAM,SAAU,KAAM,OAAQ,UAAWC,SAAU,SAA8BC,EAAIC,GAAgB,EAALD,IACl7ClO,QACAA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,KAClCA,MAAa,EAAG,OAAQ,GACxBA,QACAA,MAAkB,EAAG,OAArBA,CAA6B,EAAG,WAAY,GAC5CA,MAAa,EAAG,OAAQ,GACxBA,aACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACvFnqH,QACAA,MAAe,YAAamO,EAAIy8G,QAChC5qH,MAAa,GACbA,MAAc,KAAMmO,EAAIy8G,QAC1B,EAAGhB,cAAe,IAC3B,OAtBK6xB,CAAW,KCAXE,GAAU,MAAhB,MAAMA,UAAmB1xB,GACrBW,OACAp9G,WACInU,KAAKuxH,OAAS,WAAUrQ,SAAS,GACrC,CACAvB,iBAA6B,MAAQ,IAAI4iC,EAAyB,OAAO,SAA4BnkH,GAAqB,OAAQmkH,IAA4BA,EAA0B57I,MAAyB27I,KAAclkH,GAAqBkkH,EAAa,CAAG,EAAvO,GAC7B3iC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMs/I,EAAYhuI,UAAW,CAAC,CAAC,eAAgBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,q1BAAs1B,OAAQ,gBAAiB,CAAC,EAAG,MAAO,CAAC,QAAS,KAAM,SAAU,KAAM,OAAQ,UAAWC,SAAU,SAA6BC,EAAIC,GAAgB,EAALD,IACpyClO,QACAA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,KAClCA,MAAa,EAAG,OAAQ,GACxBA,QACAA,MAAkB,EAAG,OAArBA,CAA6B,EAAG,WAAY,GAC5CA,MAAa,EAAG,OAAQ,GACxBA,aACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACvFnqH,QACAA,MAAe,YAAamO,EAAIy8G,QAChC5qH,MAAa,GACbA,MAAc,KAAMmO,EAAIy8G,QAC1B,EAAGhB,cAAe,IAC3B,OAtBK+xB,CAAU,KCAVE,GAAe,MAArB,MAAMA,UAAwB5xB,GAC1BW,OACAp9G,WACInU,KAAKuxH,OAAS,WAAUrQ,SAAS,GACrC,CACAvB,iBAA6B,MAAQ,IAAI8iC,EAA8B,OAAO,SAAiCrkH,GAAqB,OAAQqkH,IAAiCA,EAA+B97I,MAAyB67I,KAAmBpkH,GAAqBokH,EAAkB,CAAG,EAArQ,GAC7B7iC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMw/I,EAAiBluI,UAAW,CAAC,CAAC,oBAAqBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,YAAa,UAAW,YAAa,UAAW,IAAK,stDAAutD,OAAQ,gBAAiB,CAAC,EAAG,MAAO,CAAC,QAAS,KAAM,SAAU,KAAM,OAAQ,UAAWC,SAAU,SAAkCC,EAAIC,GAAgB,EAALD,IACpuElO,QACAA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,KAClCA,MAAa,EAAG,OAAQ,GACxBA,QACAA,MAAkB,EAAG,OAArBA,CAA6B,EAAG,WAAY,GAC5CA,MAAa,EAAG,OAAQ,GACxBA,aACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACvFnqH,QACAA,MAAe,YAAamO,EAAIy8G,QAChC5qH,MAAa,GACbA,MAAc,KAAMmO,EAAIy8G,QAC1B,EAAGhB,cAAe,IAC3B,OAtBKiyB,CAAe,KCAfE,GAAQ,MAAd,MAAMA,UAAiB9xB,GACnBW,OACAp9G,WACInU,KAAKuxH,OAAS,WAAUrQ,SAAS,GACrC,CACAvB,iBAA6B,MAAQ,IAAIgjC,EAAuB,OAAO,SAA0BvkH,GAAqB,OAAQukH,IAA0BA,EAAwBh8I,MAAyB+7I,KAAYtkH,GAAqBskH,EAAW,CAAG,EAA3N,GAC7B/iC,iBAA4Bh5G,MAAqB,CAAE3D,KAAM0/I,EAAUpuI,UAAW,CAAC,CAAC,aAAcgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,0xBAA2xB,OAAQ,gBAAiB,CAAC,EAAG,MAAO,CAAC,QAAS,KAAM,SAAU,KAAM,OAAQ,UAAWC,SAAU,SAA2BC,EAAIC,GAAgB,EAALD,IACnuClO,QACAA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,KAClCA,MAAa,EAAG,OAAQ,GACxBA,QACAA,MAAkB,EAAG,OAArBA,CAA6B,EAAG,WAAY,GAC5CA,MAAa,EAAG,OAAQ,GACxBA,aACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACvFnqH,QACAA,MAAe,YAAamO,EAAIy8G,QAChC5qH,MAAa,GACbA,MAAc,KAAMmO,EAAIy8G,QAC1B,EAAGhB,cAAe,IAC3B,OAtBKmyB,CAAQ,KCARE,GAAW,MAAjB,MAAMA,UAAoBhyB,GACtBW,OACAp9G,WACInU,KAAKuxH,OAAS,WAAUrQ,SAAS,GACrC,CACAvB,iBAA6B,MAAQ,IAAIkjC,EAA0B,OAAO,SAA6BzkH,GAAqB,OAAQykH,IAA6BA,EAA2Bl8I,MAAyBi8I,KAAexkH,GAAqBwkH,EAAc,CAAG,EAA7O,GAC7BjjC,iBAA4Bh5G,MAAqB,CAAE3D,KAAM4/I,EAAatuI,UAAW,CAAC,CAAC,gBAAiBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,6XAA8X,OAAQ,gBAAiB,CAAC,IAAK,kMAAmM,OAAQ,gBAAiB,CAAC,IAAK,+VAAgW,OAAQ,gBAAiB,CAAC,IAAK,kMAAmM,OAAQ,gBAAiB,CAAC,EAAG,MAAO,CAAC,QAAS,KAAM,SAAU,KAAM,OAAQ,UAAWC,SAAU,SAA8BC,EAAIC,GAAgB,EAALD,IAClpDlO,QACAA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,KAClCA,MAAa,EAAG,OAAQ,EAAxBA,CAA2B,EAAG,OAAQ,EAAtCA,CAAyC,EAAG,OAAQ,EAApDA,CAAuD,EAAG,OAAQ,GAClEA,QACAA,MAAkB,EAAG,OAArBA,CAA6B,EAAG,WAAY,GAC5CA,MAAa,EAAG,OAAQ,GACxBA,aACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACvFnqH,QACAA,MAAe,YAAamO,EAAIy8G,QAChC5qH,MAAa,GACbA,MAAc,KAAMmO,EAAIy8G,QAC1B,EAAGhB,cAAe,IAC3B,OAtBKqyB,CAAW,KCAXE,GAAkB,MAAxB,MAAMA,UAA2BlyB,GAC7BW,OACAp9G,WACInU,KAAKuxH,OAAS,WAAUrQ,SAAS,GACrC,CACAvB,iBAA6B,MAAQ,IAAIojC,EAAiC,OAAO,SAAoC3kH,GAAqB,OAAQ2kH,IAAoCA,EAAkCp8I,MAAyBm8I,KAAsB1kH,GAAqB0kH,EAAqB,CAAG,EAAvR,GAC7BnjC,iBAA4Bh5G,MAAqB,CAAE3D,KAAM8/I,EAAoBxuI,UAAW,CAAC,CAAC,uBAAwBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,g5CAAi5C,OAAQ,gBAAiB,CAAC,EAAG,MAAO,CAAC,QAAS,KAAM,SAAU,KAAM,OAAQ,UAAWC,SAAU,SAAqCC,EAAIC,GAAgB,EAALD,IACv3DlO,QACAA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,KAClCA,MAAa,EAAG,OAAQ,GACxBA,QACAA,MAAkB,EAAG,OAArBA,CAA6B,EAAG,WAAY,GAC5CA,MAAa,EAAG,OAAQ,GACxBA,aACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACvFnqH,QACAA,MAAe,YAAamO,EAAIy8G,QAChC5qH,MAAa,GACbA,MAAc,KAAMmO,EAAIy8G,QAC1B,EAAGhB,cAAe,IAC3B,OAtBKuyB,CAAkB,KCAlBE,GAAmB,MAAzB,MAAMA,UAA4BpyB,GAC9BW,OACAp9G,WACInU,KAAKuxH,OAAS,WAAUrQ,SAAS,GACrC,CACAvB,iBAA6B,MAAQ,IAAIsjC,EAAkC,OAAO,SAAqC7kH,GAAqB,OAAQ6kH,IAAqCA,EAAmCt8I,MAAyBq8I,KAAuB5kH,GAAqB4kH,EAAsB,CAAG,EAA7R,GAC7BrjC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMggJ,EAAqB1uI,UAAW,CAAC,CAAC,wBAAyBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,07CAA27C,OAAQ,gBAAiB,CAAC,EAAG,MAAO,CAAC,QAAS,KAAM,SAAU,KAAM,OAAQ,UAAWC,SAAU,SAAsCC,EAAIC,GAAgB,EAALD,IACp6DlO,QACAA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,KAClCA,MAAa,EAAG,OAAQ,GACxBA,QACAA,MAAkB,EAAG,OAArBA,CAA6B,EAAG,WAAY,GAC5CA,MAAa,EAAG,OAAQ,GACxBA,aACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACvFnqH,QACAA,MAAe,YAAamO,EAAIy8G,QAChC5qH,MAAa,GACbA,MAAc,KAAMmO,EAAIy8G,QAC1B,EAAGhB,cAAe,IAC3B,OAtBKyyB,CAAmB,KCAnBE,GAAS,MAAf,MAAMA,UAAkBtyB,GACpBW,OACAp9G,WACInU,KAAKuxH,OAAS,WAAUrQ,SAAS,GACrC,CACAvB,iBAA6B,MAAQ,IAAIwjC,EAAwB,OAAO,SAA2B/kH,GAAqB,OAAQ+kH,IAA2BA,EAAyBx8I,MAAyBu8I,KAAa9kH,GAAqB8kH,EAAY,CAAG,EAAjO,GAC7BvjC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMkgJ,EAAW5uI,UAAW,CAAC,CAAC,cAAegvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,YAAa,UAAW,YAAa,UAAW,IAAK,0pFAA2pF,OAAQ,gBAAiB,CAAC,EAAG,MAAO,CAAC,QAAS,KAAM,SAAU,KAAM,OAAQ,UAAWC,SAAU,SAA4BC,EAAIC,GAAgB,EAALD,IACtpGlO,QACAA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,KAClCA,MAAa,EAAG,OAAQ,GACxBA,QACAA,MAAkB,EAAG,OAArBA,CAA6B,EAAG,WAAY,GAC5CA,MAAa,EAAG,OAAQ,GACxBA,aACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACvFnqH,QACAA,MAAe,YAAamO,EAAIy8G,QAChC5qH,MAAa,GACbA,MAAc,KAAMmO,EAAIy8G,QAC1B,EAAGhB,cAAe,IAC3B,OAtBK2yB,CAAS,KCDTE,GAAW,MAAjB,MAAMA,UAAoBxyB,GACtBjR,iBAA6B,MAAQ,IAAI0jC,EAA0B,OAAO,SAA6BjlH,GAAqB,OAAQilH,IAA6BA,EAA2B18I,MAAyBy8I,KAAehlH,GAAqBglH,EAAc,CAAG,EAA7O,GAC7BzjC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMogJ,EAAa9uI,UAAW,CAAC,CAAC,gBAAiBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,+oBAAgpB,OAAQ,iBAAkBC,SAAU,SAA8BC,EAAIC,GAAgB,EAALD,IACpiClO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXK6yB,CAAW,KCAXE,GAAa,MAAnB,MAAMA,UAAsB1yB,GACxBjR,iBAA6B,MAAQ,IAAI4jC,EAA4B,OAAO,SAA+BnlH,GAAqB,OAAQmlH,IAA+BA,EAA6B58I,MAAyB28I,KAAiBllH,GAAqBklH,EAAgB,CAAG,EAAzP,GAC7B3jC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMsgJ,EAAehvI,UAAW,CAAC,CAAC,kBAAmBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,qoBAAsoB,OAAQ,iBAAkBC,SAAU,SAAgCC,EAAIC,GAAgB,EAALD,IAChiClO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXK+yB,CAAa,KCSnB,MAAM7zB,GAAQA,EAAG9O,QAAS,gPAYRA,EAAG,iDACRA,EAAG,4CACHA,EAAG,4DACaA,EAAG,6CAA6CA,EAAG,oDAAoDA,EAAG,qDAAqDA,EAAG,4FAI7KA,EAAG,uDACRA,EAAG,4FAIEA,EAAG,wDACRA,EAAG,6dAoBoBA,EAAG,gKAKLA,EAAG,6NASbA,EAAG,wHAIPA,EAAG,+HAIHA,EAAG,6JAKQA,EAAG,oEACLA,EAAG,wRAWCA,EAAG,sEACLA,EAAG,6JAKPA,EAAG,0KAQNA,EAAG,2DACNA,EAAG,kJAKJA,EAAG,6HAIHA,EAAG,6JAKUA,EAAG,sEACLA,EAAG,0TAaHA,EAAG,oEACLA,EAAG,mbAsBfA,EAAG,2CACPA,EAAG,4CACFA,EAAG,yHAIAA,EAAG,2CACPA,EAAG,4CACFA,EAAG,2GAIGA,EAAG,gIAIHA,EAAG,sHAIVA,EAAG,+CAGVtrG,GAAU,CACZi6C,KAAMA,EAAG8xD,eAAS,CACd,4CAA4C,EAC5C,wBAAyBA,EAASuX,SAAkC,IAAxBvX,EAASoiC,WACrD,uBAAwBpiC,EAAS8N,QACjC,wBAAyB9N,EAASqiC,aAAyC,YAA1BriC,EAASsiC,aAC1D,2BAA4BtiC,EAASqiC,aAAyC,eAA1BriC,EAASsiC,aAC7D,yBAA0BtiC,EAASqiC,aAAyC,aAA1BriC,EAASsiC,aAC3D,sBAAuBtiC,EAASgV,WAEpC6G,QAAS,sBACT0mB,YAAa,6BACbC,gBAAiBA,EAAGxiC,eAAS,CACzB,uDAAuD,EACvD,aAAcA,EAASqiC,aAAgC,OAAjBriC,EAASrqE,KAAgBqqE,EAASyiC,YAE5EC,gBAAiBA,EAAG1iC,eAAS,CACzB,uDAAuD,EACvD,aAAcA,EAASqiC,aAAgC,OAAjBriC,EAASn2B,KAAgBm2B,EAAS2iC,aAE9E,IACIC,GAAgB,MAAtB,MAAMA,UAAyBtkC,KAC3Bp9G,KAAO,cACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAIskC,EAA+B,OAAO,SAAkC7lH,GAAqB,OAAQ6lH,IAAkCA,EAAgCt9I,MAAyBq9I,KAAoB5lH,GAAqB4lH,EAAmB,CAAG,EAA3Q,GAC7BrkC,kBAA6Bh5G,MAAsB,CAAE0e,MAAO2+H,EAAkB78I,QAAS68I,EAAiB58I,YAC3G,OANK48I,CAAgB,KA2CtB,MAAM/uI,EAAM,CAAC,aACPgC,EAAM,CAAC,uBACP67G,EAAM,CAAC,uBACPC,GAAM,CAAC,SACb,SAASmxB,GAAgDrvI,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC5E,MAAMipG,EAAMn3G,QACZA,MAAkB,EAAG,YAAa,GAClCA,MAAc,QAAS,WAAwFA,MAAiBm3G,GAAM,MAAMvnG,EAAS5P,MAAiB,GAAI,OAAOA,MAAe4P,EAAOsP,QAAU,GACjNlf,OACJ,CAAW,EAALkO,IACFlO,MAAc,UAAW,4BACzBA,MAAe,kBAAmB,aACpC,CACF,SAASw9I,GAA2DtvI,EAAIC,GAAO,CAC/E,SAASsvI,GAA6CvvI,EAAIC,GAAgB,EAALD,GACjElO,MAAc,EAAGw9I,GAA4D,EAAG,EAAG,cACrF,CACF,SAASE,GAA2CxvI,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACvE,MAAMmC,EAAMrQ,QACZA,MAAkB,EAAG,OAAQ,GAC7BA,MAAc,QAAS,WAA8EA,MAAiBqQ,GAAM,MAAMT,EAAS5P,MAAiB,GAAI,OAAOA,MAAe4P,EAAOsP,QAAU,GACvMlf,MAAc,EAAGy9I,GAA8C,EAAG,EAAG,KAAM,GAC3Ez9I,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAe,kBAAmB,aAClCA,QACAA,MAAc,mBAAoB4P,EAAOqqH,mBAAqBrqH,EAAOsqH,mBACzE,CAAE,CACF,SAASyjB,GAAoCzvI,EAAIC,GAI/C,GAJ+D,EAALD,IACxDlO,MAA2B,GAC3BA,MAAc,EAAGu9I,GAAiD,EAAG,EAAG,YAAa,EAArFv9I,CAAwF,EAAG09I,GAA4C,EAAG,EAAG,OAAQ,GACrJ19I,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,QACfA,QACAA,MAAc,QAAS4P,EAAOqqH,oBAAsBrqH,EAAOsqH,oBAC3Dl6H,QACAA,MAAc,OAAQ4P,EAAOqqH,mBAAqBrqH,EAAOsqH,mBAC7D,CAAE,CACF,SAAS0jB,GAAmC1vI,EAAIC,GAE9C,GAF8D,EAALD,GACvDlO,MAAa,EAAG,OAAQ,IACjB,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAc,UAAW4P,EAAOiuI,qBAChC79I,MAAe,kBAAmB,sBACtC,CAAE,CACF,SAAS89I,GAAyD5vI,EAAIC,GAAgB,EAALD,GAC7ElO,MAAa,EAAG,eACT,EAALkO,GACFlO,MAAe,kBAAmB,sBACpC,CACF,SAAS+9I,GAA2D7vI,EAAIC,GAAO,CAC/E,SAAS6vI,GAA6C9vI,EAAIC,GAAgB,EAALD,GACjElO,MAAc,EAAG+9I,GAA4D,EAAG,EAAG,cACrF,CACF,SAASE,GAA2C/vI,EAAIC,GAItD,GAJsE,EAALD,IAC/DlO,MAA2B,GAC3BA,MAAc,EAAG89I,GAA0D,EAAG,EAAG,cAAe,EAAhG99I,CAAmG,EAAGg+I,GAA8C,EAAG,EAAG,KAAM,GAChKh+I,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,QAAS4P,EAAOsuI,8BAAgCtuI,EAAOuuI,8BACrEn+I,QACAA,MAAc,mBAAoB4P,EAAOsuI,6BAA+BtuI,EAAOuuI,6BACnF,CAAE,CACF,SAASC,GAAmClwI,EAAIC,GAE9C,GAF8D,EAALD,GACvDlO,MAAa,EAAG,OAAQ,IACjB,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAc,UAAW4P,EAAOyuI,qBAChCr+I,MAAe,kBAAmB,sBACtC,CAAE,CACF,SAASs+I,GAA2DpwI,EAAIC,GAAgB,EAALD,GAC/ElO,MAAa,EAAG,iBACT,EAALkO,GACFlO,MAAe,kBAAmB,sBACpC,CACF,SAASu+I,GAA2DrwI,EAAIC,GAAO,CAC/E,SAASqwI,GAA6CtwI,EAAIC,GAAgB,EAALD,GACjElO,MAAc,EAAGu+I,GAA4D,EAAG,EAAG,cACrF,CACF,SAASE,GAA2CvwI,EAAIC,GAItD,GAJsE,EAALD,IAC/DlO,MAA2B,GAC3BA,MAAc,EAAGs+I,GAA4D,EAAG,EAAG,gBAAiB,EAApGt+I,CAAuG,EAAGw+I,GAA8C,EAAG,EAAG,KAAM,GACpKx+I,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,QAAS4P,EAAO8uI,8BAAgC9uI,EAAO+uI,8BACrE3+I,QACAA,MAAc,mBAAoB4P,EAAO8uI,6BAA+B9uI,EAAO+uI,6BACnF,CAAE,CACF,SAASC,GAA4B1wI,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACxD,MAAMyoE,EAAM32E,QACZA,MAAkB,EAAG,OAAQ,GAA7BA,CAAiC,EAAG,SAAU,IAC9CA,MAAc,YAAa,SAAiEkU,GAAUlU,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOivI,oBAAoB3qI,GAAU,EAA3NlU,CAA8N,UAAW,WAAmEA,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOkvI,oBAAsB,EAAzZ9+I,CAA4Z,aAAc,WAAsEA,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOmvI,uBAAyB,EAAhmB/+I,CAAmmB,UAAW,SAA+DkU,GAAUlU,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOovI,kBAAkB9qI,GAAU,EAA1yBlU,CAA6yB,QAAS,WAAiEA,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOqvI,kBAAoB,GACl+Bj/I,MAAc,EAAG49I,GAAoC,EAAG,EAAG,OAAQ,GAAnE59I,CAAuE,EAAGi+I,GAA4C,EAAG,EAAG,eAAgB,GAC5Ij+I,QACAA,MAAkB,EAAG,SAAU,IAC/BA,MAAc,YAAa,SAAiEkU,GAAUlU,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOsvI,sBAAsBhrI,GAAU,EAA7NlU,CAAgO,UAAW,WAAmEA,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOuvI,sBAAwB,EAA7Zn/I,CAAga,aAAc,WAAsEA,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOwvI,yBAA2B,EAAtmBp/I,CAAymB,UAAW,SAA+DkU,GAAUlU,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOyvI,oBAAoBnrI,GAAU,EAAlzBlU,CAAqzB,QAAS,WAAiEA,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAO0vI,oBAAsB,GAC5+Bt/I,MAAc,EAAGo+I,GAAoC,EAAG,EAAG,OAAQ,GAAnEp+I,CAAuE,EAAGy+I,GAA4C,EAAG,EAAG,eAAgB,GAC5Iz+I,SACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,QACfA,MAAe,kBAAmB,eAClCA,QACAA,MAAc4P,EAAO2vI,sBACrBv/I,MAAc,UAAW4P,EAAO4vI,sBAAhCx/I,CAAuD,WAAY4P,EAAOR,UAC1EpP,MAAe,eAAe,EAA9BA,CAAoC,kBAAmB,mBACvDA,QACAA,MAAc,OAAQ4P,EAAOiuI,qBAC7B79I,QACAA,MAAc,QAAS4P,EAAOiuI,qBAC9B79I,QACAA,MAAc4P,EAAO6vI,sBACrBz/I,MAAc,UAAW4P,EAAO8vI,sBAAhC1/I,CAAuD,WAAY4P,EAAOR,UAC1EpP,MAAe,eAAe,EAA9BA,CAAoC,kBAAmB,mBACvDA,QACAA,MAAc,OAAQ4P,EAAOyuI,qBAC7Br+I,QACAA,MAAc,QAAS4P,EAAOyuI,oBAClC,CAAE,CACF,SAASsB,GAAqCzxI,EAAIC,GAEhD,GAFgE,EAALD,GACzDlO,MAAa,EAAG,OAAQ,IACjB,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAc,UAAW4P,EAAOiuI,qBAChC79I,MAAe,kBAAmB,sBACtC,CAAE,CACF,SAAS4/I,GAA2D1xI,EAAIC,GAAgB,EAALD,GAC/ElO,MAAa,EAAG,eACT,EAALkO,GACFlO,MAAe,kBAAmB,sBACpC,CACF,SAAS6/I,GAA6D3xI,EAAIC,GAAO,CACjF,SAAS2xI,GAA+C5xI,EAAIC,GAAgB,EAALD,GACnElO,MAAc,EAAG6/I,GAA8D,EAAG,EAAG,cACvF,CACF,SAASE,GAA6C7xI,EAAIC,GAIxD,GAJwE,EAALD,IACjElO,MAA2B,GAC3BA,MAAc,EAAG4/I,GAA4D,EAAG,EAAG,cAAe,EAAlG5/I,CAAqG,EAAG8/I,GAAgD,EAAG,EAAG,KAAM,GACpK9/I,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,QAAS4P,EAAOsuI,8BAAgCtuI,EAAOuuI,8BACrEn+I,QACAA,MAAc,mBAAoB4P,EAAOsuI,6BAA+BtuI,EAAOuuI,6BACnF,CAAE,CACF,SAAS6B,GAA8B9xI,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC1D,MAAMmpE,EAAMr3E,QACZA,MAAkB,EAAG,SAAU,IAC/BA,MAAc,YAAa,SAAmEkU,GAAUlU,MAAiBq3E,GAAM,MAAMznE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOivI,oBAAoB3qI,GAAU,EAA7NlU,CAAgO,UAAW,WAAqEA,MAAiBq3E,GAAM,MAAMznE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOkvI,oBAAsB,EAA7Z9+I,CAAga,aAAc,WAAwEA,MAAiBq3E,GAAM,MAAMznE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOmvI,uBAAyB,EAAtmB/+I,CAAymB,UAAW,SAAiEkU,GAAUlU,MAAiBq3E,GAAM,MAAMznE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOovI,kBAAkB9qI,GAAU,EAAlzBlU,CAAqzB,QAAS,WAAmEA,MAAiBq3E,GAAM,MAAMznE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOqvI,kBAAoB,GAC5+Bj/I,MAAc,EAAG2/I,GAAsC,EAAG,EAAG,OAAQ,GAArE3/I,CAAyE,EAAG+/I,GAA8C,EAAG,EAAG,eAAgB,GAChJ//I,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,QACfA,MAAc4P,EAAO2vI,sBACrBv/I,MAAc,UAAW4P,EAAO4vI,sBAAhCx/I,CAAuD,WAAY4P,EAAOR,UAC1EpP,MAAe,eAAe,EAA9BA,CAAoC,kBAAmB,mBACvDA,QACAA,MAAc,OAAQ4P,EAAOiuI,qBAC7B79I,QACAA,MAAc,QAAS4P,EAAOiuI,oBAClC,CAAE,CACF,SAASoC,GAAqC/xI,EAAIC,GAEhD,GAFgE,EAALD,GACzDlO,MAAa,EAAG,OAAQ,IACjB,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAc,UAAW4P,EAAOyuI,qBAChCr+I,MAAe,kBAAmB,sBACtC,CAAE,CACF,SAASkgJ,GAA6DhyI,EAAIC,GAAgB,EAALD,GACjFlO,MAAa,EAAG,iBACT,EAALkO,GACFlO,MAAe,kBAAmB,sBACpC,CACF,SAASmgJ,GAA6DjyI,EAAIC,GAAO,CACjF,SAASiyI,GAA+ClyI,EAAIC,GAAgB,EAALD,GACnElO,MAAc,EAAGmgJ,GAA8D,EAAG,EAAG,cACvF,CACF,SAASE,GAA6CnyI,EAAIC,GAIxD,GAJwE,EAALD,IACjElO,MAA2B,GAC3BA,MAAc,EAAGkgJ,GAA8D,EAAG,EAAG,gBAAiB,EAAtGlgJ,CAAyG,EAAGogJ,GAAgD,EAAG,EAAG,KAAM,GACxKpgJ,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,QAAS4P,EAAO8uI,8BAAgC9uI,EAAO+uI,8BACrE3+I,QACAA,MAAc,mBAAoB4P,EAAO8uI,6BAA+B9uI,EAAO+uI,6BACnF,CAAE,CACF,SAAS2B,GAA8BpyI,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC1D,MAAMgtH,EAAMl7H,QACZA,MAAkB,EAAG,SAAU,IAC/BA,MAAc,YAAa,SAAmEkU,GAAUlU,MAAiBk7H,GAAM,MAAMtrH,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOsvI,sBAAsBhrI,GAAU,EAA/NlU,CAAkO,UAAW,WAAqEA,MAAiBk7H,GAAM,MAAMtrH,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOuvI,sBAAwB,EAAjan/I,CAAoa,aAAc,WAAwEA,MAAiBk7H,GAAM,MAAMtrH,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOwvI,yBAA2B,EAA5mBp/I,CAA+mB,UAAW,SAAiEkU,GAAUlU,MAAiBk7H,GAAM,MAAMtrH,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOyvI,oBAAoBnrI,GAAU,EAA1zBlU,CAA6zB,QAAS,WAAmEA,MAAiBk7H,GAAM,MAAMtrH,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAO0vI,oBAAsB,GACt/Bt/I,MAAc,EAAGigJ,GAAsC,EAAG,EAAG,OAAQ,GAArEjgJ,CAAyE,EAAGqgJ,GAA8C,EAAG,EAAG,eAAgB,GAChJrgJ,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,QACfA,MAAc4P,EAAO6vI,sBACrBz/I,MAAc,UAAW4P,EAAO8vI,sBAAhC1/I,CAAuD,WAAY4P,EAAOR,UAC1EpP,MAAe,eAAe,EAA9BA,CAAoC,kBAAmB,mBACvDA,QACAA,MAAc,OAAQ4P,EAAOyuI,qBAC7Br+I,QACAA,MAAc,QAAS4P,EAAOyuI,oBAClC,CAAE,CACF,MAAMkC,GAA6B,CAC/BloH,QAAS6uG,MACTC,eAAaC,OAAW,IAAMoZ,IAC9B36G,OAAO,GAEX,IAIM26G,GAAW,MAAjB,MAAMA,UAAoBl0I,GACtBgtG,SAKAwjC,aAAc,EAKd/3H,QAAS,EAKTg4H,aAAe,UAKf5gB,QAKAltD,WAKA7oC,MAKA81F,YAKAvgH,KAKAuhI,UAKA7sB,SAKAvvH,MAKAu7H,eAKAjS,UAKAq2B,aAKA9kJ,KAKAygI,SAKA19D,aAKA4lB,IAKAl0C,IAKAmvG,qBAKAE,qBAKA5B,oBAKAQ,oBAKA9D,UAAW,EAKXrqG,KAAO,EAKP2sG,YAAa,EAKbjuH,OAKA8xH,cAKA/uH,KAAO,UAKP9C,SAKA8xH,gBAKAC,aAAc,EAKdtwB,QAAU,WAKVuwB,kBAKAC,kBAKAjpF,OAKAC,OAKA66D,WAKAoJ,gBAKAQ,WAAY,EAKZlU,UAKA,YAAIj5G,GACA,OAAO/V,KAAK0nJ,SAChB,CACA,YAAI3xI,CAASA,GACLA,IACA/V,KAAKkvH,SAAU,GACnBlvH,KAAK0nJ,UAAY3xI,EACb/V,KAAKqZ,OACLrZ,KAAK2nJ,YACb,CAKAh1B,OAAQ,EAMR0G,QAAU,IAAInlH,MAMd4qG,QAAU,IAAI5qG,MAMd6qG,OAAS,IAAI7qG,MAMb0zI,UAAY,IAAI1zI,MAKhB6pG,QAAU,IAAI7pG,MAKd0sH,kBAKAikB,4BAKAQ,4BACAjuB,UACAzmF,MACAkwF,mBACAikB,6BACAQ,6BACA5yI,MACA4/H,cAAgBA,OAChBC,eAAiBA,OACjBrjB,QACA8F,YACA6yB,UAAY,GACZC,WAAa,GACbC,WAAa,GACbC,cACA3uI,MACA4uI,UACAC,SACAC,aACAC,SACAC,aACAC,OACAC,WACAC,UACAC,QACAC,QACAC,OACAjB,UACA1mC,mBAAkBnB,OAAOmkC,IACzB4E,UAAY,KACZ,cAAIC,GACA,OAAO7oJ,KAAKghH,gBAAgB3rG,QAAQi6C,KAAK,CAAE8xD,SAAUphH,MACzD,CACA,YAAIo2H,GAEA,MAAMC,EADgBr2H,KAAKg7D,GAAGya,cACO6gD,QAAQ,WAC7C,OAAOt2H,KAAK2yH,SAAW0D,CAC3B,CACA,yBAAI8vB,GACA,OAAOnmJ,KAAKghH,gBAAgB3rG,QAAQuuI,gBAAgB,CAAExiC,SAAUphH,MACpE,CACA,yBAAIqmJ,GACA,OAAOrmJ,KAAKghH,gBAAgB3rG,QAAQyuI,gBAAgB,CAAE1iC,SAAUphH,MACpE,CACAF,YAAYmgH,GACR9/G,QACAH,KAAKigH,SAAWA,CACpB,CACA3qG,YAAYwzI,GACR3oJ,MAAMmV,YAAYwzI,GACJ,CAAC,SAAU,gBAAiB,OAAQ,WAAY,kBAAmB,cAAe,oBAAqB,oBAAqB,SAAU,UAC1I7oI,KAAMpe,KAAQinJ,EAAajnJ,KACjC7B,KAAK+oJ,uBAEb,CACA,eAAIC,GACA,MAA+B,iBAApBhpJ,KAAK6oJ,WACL7oJ,KAAK6oJ,WAEZprI,MAAMC,QAAQ1d,KAAK6oJ,YACZ7oJ,KAAK6oJ,WAAWx7H,KAAK,KAED,iBAApBrtB,KAAK6oJ,WACLtnJ,OAAO2I,KAAKlK,KAAK6oJ,YACnB56I,OAAQgQ,GAAQje,KAAK6oJ,WAAW5qI,IAChCoP,KAAK,KAEP,EACX,CACAlZ,WACIhU,MAAMgU,WACNnU,KAAK4oJ,UAAY5oJ,KAAKigH,SAASj6G,IAAI47I,MAAW,KAAM,CAAE/nG,UAAU,IAChE75C,KAAKipJ,kBACLjpJ,KAAKg1H,aAAc,CACvB,CACAsC,qBACIt3H,KAAKo3H,UAAU7jH,QAAS1B,IACpB,OAAQA,EAAK0lH,WACT,IAAK,YACDv3H,KAAK6gI,mBAAqBhvH,EAAK+C,SAC/B,MACJ,IAAK,sBACD5U,KAAK8kJ,6BAA+BjzI,EAAK+C,SACzC,MACJ,IAAK,sBACD5U,KAAKslJ,6BAA+BzzI,EAAK+C,SAEjD,EAER,CACAs0I,aACI,MAAO,CACH7B,cAAernJ,KAAKqnJ,cACpBt6G,MAAO/sC,KAAKs4B,KACZ9C,SAAUx1B,KAAKw1B,SACf8xH,gBAAiBtnJ,KAAKsnJ,gBACtBC,YAAavnJ,KAAKunJ,YAClB4B,sBAAuBnpJ,KAAKwnJ,wBAAqBlmJ,EACjD8nJ,sBAAuBppJ,KAAKynJ,wBAAqBnmJ,EAEzD,CACA2nJ,kBACIjpJ,KAAKmoJ,aAAe,IAAIkB,KAAKC,aAAatpJ,KAAKu1B,OAAQv1B,KAAKkpJ,cAC5D,MAAMK,EAAW,IAAI,IAAIF,KAAKC,aAAatpJ,KAAKu1B,OAAQ,CAAEgyH,aAAa,IAAS77H,OAAO,aAAa4hG,UAC9F34F,EAAQ,IAAIlY,IAAI8sI,EAASv9I,IAAI,CAAC8qB,EAAG1rB,IAAM,CAAC0rB,EAAG1rB,KACjDpL,KAAKkoJ,SAAW,IAAIn4G,OAAO,IAAIw5G,EAASl8H,KAAK,OAAQ,KACrDrtB,KAAKsoJ,OAAStoJ,KAAKwpJ,wBACnBxpJ,KAAKuoJ,WAAavoJ,KAAKypJ,yBACvBzpJ,KAAKwoJ,UAAYxoJ,KAAK0pJ,wBACtB1pJ,KAAKooJ,SAAWpoJ,KAAK2pJ,uBACrB3pJ,KAAKqoJ,aAAeroJ,KAAK4pJ,iBACzB5pJ,KAAK0oJ,QAAU1oJ,KAAK6pJ,sBACpB7pJ,KAAKyoJ,QAAUzoJ,KAAK8pJ,sBACpB9pJ,KAAK2oJ,OAAU7xH,GAAMnC,EAAM3uB,IAAI8wB,EACnC,CACAiyH,wBACQ/oJ,KAAKg1H,aACLh1H,KAAKipJ,iBAEb,CACAc,aAAaviJ,GACT,OAAOA,EAAKic,QAAQ,2BAA4B,OACpD,CACAkmI,uBACI,MAAMK,EAAchqJ,KAAK4pJ,iBACzB,OAAO,IAAI75G,OAAO,IAAIi6G,KAAgB,IAC1C,CACAJ,iBAEI,OADkB,IAAIP,KAAKC,aAAatpJ,KAAKu1B,OAAQ,IAAKv1B,KAAKkpJ,aAAc3B,aAAa,IAErF77H,OAAO,KACPjI,QAAQzjB,KAAKwoJ,UAAW,IACxBp1G,OACA3vB,QAAQzjB,KAAKkoJ,SAAU,GAChC,CACAsB,wBACI,MAAMz0C,EAAY,IAAIs0C,KAAKC,aAAatpJ,KAAKu1B,OAAQ,CAAEgyH,aAAa,IACpE,OAAAvnJ,KAAK6nJ,UAAY9yC,EAAUrpF,OAAO,KAAS0nB,OAAO3vB,QAAQzjB,KAAKkoJ,SAAU,IAAIj7G,OAAO,GAC7E,IAAI8C,OAAO,IAAI/vC,KAAK6nJ,aAAc,IAC7C,CACA4B,yBACI,MAAM10C,EAAY,IAAIs0C,KAAKC,aAAatpJ,KAAKu1B,OAAQ,CAAEgyH,aAAa,IACpE,OAAO,IAAIx3G,OAAO,IAAIglE,EAAUrpF,QAAO,GAAI0nB,OAAO3vB,QAAQzjB,KAAKkoJ,SAAU,OAAQ,IACrF,CACAwB,wBACI,GAAI1pJ,KAAKw1B,SAAU,CACf,MAAMu/E,EAAY,IAAIs0C,KAAKC,aAAatpJ,KAAKu1B,OAAQ,CACjDwX,MAAO,WACPvX,SAAUx1B,KAAKw1B,SACf8xH,gBAAiBtnJ,KAAKsnJ,gBACtB6B,sBAAuB,EACvBC,sBAAuB,IAE3B,OAAO,IAAIr5G,OAAO,IAAIglE,EAAUrpF,OAAO,GAAGjI,QAAQ,MAAO,IAAIA,QAAQzjB,KAAKkoJ,SAAU,IAAIzkI,QAAQzjB,KAAKsoJ,OAAQ,OAAQ,IACzH,CACA,OAAO,IAAIv4G,OAAO,KAAM,IAC5B,CACA+5G,sBACI,GAAI9pJ,KAAKw+D,OACLx+D,KAAK8nJ,WAAa9nJ,KAAKw+D,WAEtB,CACD,MAAMu2C,EAAY,IAAIs0C,KAAKC,aAAatpJ,KAAKu1B,OAAQ,CACjDwX,MAAO/sC,KAAKs4B,KACZ9C,SAAUx1B,KAAKw1B,SACf8xH,gBAAiBtnJ,KAAKsnJ,kBAE1BtnJ,KAAK8nJ,WAAa/yC,EAAUrpF,OAAO,GAAGvgB,MAAM,KAAK,EACrD,CACA,OAAO,IAAI4kC,OAAO,GAAG/vC,KAAK+pJ,aAAa/pJ,KAAK8nJ,YAAc,MAAO,IACrE,CACA+B,sBACI,GAAI7pJ,KAAKy+D,OACLz+D,KAAK+nJ,WAAa/nJ,KAAKy+D,WAEtB,CACD,MAAMs2C,EAAY,IAAIs0C,KAAKC,aAAatpJ,KAAKu1B,OAAQ,CACjDwX,MAAO/sC,KAAKs4B,KACZ9C,SAAUx1B,KAAKw1B,SACf8xH,gBAAiBtnJ,KAAKsnJ,gBACtB6B,sBAAuB,EACvBC,sBAAuB,IAE3BppJ,KAAK+nJ,WAAahzC,EAAUrpF,OAAO,GAAGvgB,MAAM,KAAK,EACrD,CACA,OAAO,IAAI4kC,OAAO,GAAG/vC,KAAK+pJ,aAAa/pJ,KAAK+nJ,YAAc,MAAO,IACrE,CACAkC,YAAYv3I,GACR,GAAa,MAATA,EAAe,CACf,GAAc,MAAVA,EAEA,OAAOA,EAEX,GAAI1S,KAAK0rB,OAAQ,CAEb,IAAI6qH,EADY,IAAI8S,KAAKC,aAAatpJ,KAAKu1B,OAAQv1B,KAAKkpJ,cACzBx9H,OAAOhZ,GACtC,OAAI1S,KAAKw+D,QAAU9rD,GAAS1S,KAAKw+D,SAC7B+3E,EAAiBv2I,KAAKw+D,OAAS+3E,GAE/Bv2I,KAAKy+D,QAAU/rD,GAAS1S,KAAKy+D,SAC7B83E,GAAkCv2I,KAAKy+D,QAEpC83E,CACX,CACA,OAAO7jI,EAAMI,UACjB,CACA,MAAO,EACX,CACAo3I,WAAW1iJ,GACP,MAAM2iJ,EAAc,IAAIp6G,OAAO/vC,KAAK0oJ,QAAS,IACvC0B,EAAc,IAAIr6G,OAAO/vC,KAAKyoJ,QAAS,IACvC4B,EAAgB,IAAIt6G,OAAO/vC,KAAKwoJ,UAAW,IACjD,IAAI8B,EAAe9iJ,EACdic,QAAQ0mI,EAAa,IACrB1mI,QAAQ2mI,EAAa,IACrBh3G,OACA3vB,QAAQ,MAAO,IACfA,QAAQ4mI,EAAe,IACvB5mI,QAAQzjB,KAAKsoJ,OAAQ,IACrB7kI,QAAQzjB,KAAKuoJ,WAAY,KACzB9kI,QAAQzjB,KAAKooJ,SAAU,KACvB3kI,QAAQzjB,KAAKkoJ,SAAUloJ,KAAK2oJ,QACjC,GAAI2B,EAAc,CACd,GAAqB,MAAjBA,EAEA,OAAOA,EACX,IAAIC,GAAeD,EACnB,OAAO9+H,MAAM++H,GAAe,KAAOA,CACvC,CACA,OAAO,IACX,CACAhP,OAAOvzI,EAAOkhB,EAAUshI,GACpB,GAAIxqJ,KAAKkhJ,SACL,OAEJ,IAAI91I,EAAI8d,GAAY,IACpBlpB,KAAK2nJ,aACL3nJ,KAAKqZ,MAAQ7D,WAAW,KACpBxV,KAAKu7I,OAAOvzI,EAAO,GAAIwiJ,EAAG,EAC3Bp/I,GACHpL,KAAK6wH,KAAK7oH,EAAOwiJ,EACrB,CACA35B,KAAK7oH,EAAOwiJ,GACR,IAAI3zG,EAAO72C,KAAK62C,KAAO2zG,EACnBxlD,EAAehlG,KAAKkqJ,WAAWlqJ,KAAK2wC,OAAO8kC,cAAc/iE,QAAU,EACnE+3I,EAAWzqJ,KAAK0qJ,cAAc1lD,EAAenuD,GAC7C72C,KAAK6jJ,WAAa7jJ,KAAK6jJ,UAAY7jJ,KAAKiqJ,YAAYQ,GAAUp/I,SAGlErL,KAAK2qJ,YAAYF,EAAU,KAAM,OAAQ,MACzCzqJ,KAAKi2I,YAAYjuI,EAAOyiJ,GACxBzqJ,KAAK4qJ,cAAc5iJ,EAAOg9F,EAAcylD,GAC5C,CACA5kI,QACI7lB,KAAK0S,MAAQ,KACb1S,KAAKsyI,cAActyI,KAAK0S,OACxB1S,KAAK+9G,QAAQ1pG,MACjB,CACAmxI,oBAAoBx9I,GACK,IAAjBA,EAAMq+D,OAILrmE,KAAK+V,WACN/V,KAAK2wC,OAAO8kC,cAAcopC,QAC1B7+G,KAAKu7I,OAAOvzI,EAAO,KAAM,GACzBA,EAAM0S,kBANN1a,KAAK2nJ,YAQb,CACAlC,oBACSzlJ,KAAK+V,UACN/V,KAAK2nJ,YAEb,CACAjC,uBACS1lJ,KAAK+V,UACN/V,KAAK2nJ,YAEb,CACAhC,kBAAkB39I,IACQ,KAAlBA,EAAMwwI,SAAoC,KAAlBxwI,EAAMwwI,UAC9Bx4I,KAAKu7I,OAAOvzI,EAAO,KAAM,EAEjC,CACA49I,kBACS5lJ,KAAK+V,UACN/V,KAAK2nJ,YAEb,CACA9B,sBAAsB79I,GACG,IAAjBA,EAAMq+D,OAILrmE,KAAK+V,WACN/V,KAAK2wC,OAAO8kC,cAAcopC,QAC1B7+G,KAAKu7I,OAAOvzI,EAAO,MAAM,GACzBA,EAAM0S,kBANN1a,KAAK2nJ,YAQb,CACA7B,sBACS9lJ,KAAK+V,UACN/V,KAAK2nJ,YAEb,CACA5B,yBACS/lJ,KAAK+V,UACN/V,KAAK2nJ,YAEb,CACA1B,oBACSjmJ,KAAK+V,UACN/V,KAAK2nJ,YAEb,CACA3B,oBAAoBh+I,IACM,KAAlBA,EAAMwwI,SAAoC,KAAlBxwI,EAAMwwI,UAC9Bx4I,KAAKu7I,OAAOvzI,EAAO,MAAM,EAEjC,CACAw6H,YAAYx6H,GACJhI,KAAKkhJ,WAGLlhJ,KAAKgoJ,gBACLhgJ,EAAMg3C,OAAOtsC,MAAQ1S,KAAKioJ,WAE9BjoJ,KAAKgoJ,eAAgB,EACzB,CACA6C,eAAe7iJ,GACX,GAAIhI,KAAKkhJ,SACL,OAGJ,GADAlhJ,KAAKioJ,UAAYjgJ,EAAMg3C,OAAOtsC,MAC1B1K,EAAMmyI,UAAYnyI,EAAM8iJ,OAExB,YADA9qJ,KAAKgoJ,eAAgB,GAGzB,IAAI+C,EAAiB/iJ,EAAMg3C,OAAO+rG,eAC9BC,EAAehjJ,EAAMg3C,OAAOgsG,aAC5BC,EAAajjJ,EAAMg3C,OAAOtsC,MAC1Bw4I,EAAc,KAIlB,OAHIljJ,EAAM8iJ,QACN9iJ,EAAM0S,iBAEF1S,EAAMiW,KACV,IAAK,UACDje,KAAK6wH,KAAK7oH,EAAO,GACjBA,EAAM0S,iBACN,MACJ,IAAK,YACD1a,KAAK6wH,KAAK7oH,GAAO,GACjBA,EAAM0S,iBACN,MACJ,IAAK,YACD,QAASia,EAAQo2H,EAAgBp2H,GAASs2H,EAAW5/I,OAAQspB,IAEzD,GAAI30B,KAAKmrJ,cAAcF,EAAWh+G,OADE,IAAVtY,EAAc,EAAIA,EAAQ,IACU,CAC1D30B,KAAK2wC,MAAM8kC,cAAc21E,kBAAkBz2H,EAAOA,GAClD,KACJ,CAEJ,MACJ,IAAK,aACD,QAASA,EAAQq2H,EAAcr2H,GAAS,EAAGA,IACvC,GAAI30B,KAAKmrJ,cAAcF,EAAWh+G,OAAOtY,IAAS,CAC9C30B,KAAK2wC,MAAM8kC,cAAc21E,kBAAkBz2H,EAAOA,GAClD,KACJ,CAEJ,MACJ,IAAK,MACL,IAAK,QACDu2H,EAAclrJ,KAAK0qJ,cAAc1qJ,KAAKkqJ,WAAWlqJ,KAAK2wC,MAAM8kC,cAAc/iE,QAC1E1S,KAAK2wC,MAAM8kC,cAAc/iE,MAAQ1S,KAAKiqJ,YAAYiB,GAClDlrJ,KAAK2wC,MAAM8kC,cAAc1a,aAAa,gBAAiBmwF,GACvDlrJ,KAAKi2I,YAAYjuI,EAAOkjJ,GACxB,MACJ,IAAK,YAED,GADAljJ,EAAM0S,iBACFqwI,IAAmBC,EAAc,CACjC,GAAuB,GAAlBD,GAAuB/qJ,KAAKw+D,QAAYusF,GAAkBE,EAAW5/I,QAAUrL,KAAKy+D,OACrF,MAEJ,MAAM4sF,EAAaJ,EAAWh+G,OAAO89G,EAAiB,IAC9CO,mBAAkBC,iCAAkCvrJ,KAAKwrJ,sBAAsBP,GACvF,GAAIjrJ,KAAKmrJ,cAAcE,GAAa,CAChC,MAAMI,EAAgBzrJ,KAAK0rJ,iBAAiBT,GAC5C,GAAIjrJ,KAAKsoJ,OAAO31I,KAAK04I,GACjBrrJ,KAAKsoJ,OAAOn4G,UAAY,EACxB+6G,EAAcD,EAAW5qI,MAAM,EAAG0qI,EAAiB,GAAKE,EAAW5qI,MAAM0qI,EAAiB,QAAC,GAEtF/qJ,KAAKooJ,SAASz1I,KAAK04I,GACxBrrJ,KAAKooJ,SAASj4G,UAAY,EACtBs7G,EACAzrJ,KAAK2wC,OAAO8kC,cAAc21E,kBAAkBL,EAAiB,EAAGA,EAAiB,GAGjFG,EAAcD,EAAW5qI,MAAM,EAAG0qI,EAAiB,GAAKE,EAAW5qI,MAAM0qI,QAAc,GAGtFO,EAAmB,GAAKP,EAAiBO,EAAkB,CAChE,MAAMK,EAAe3rJ,KAAK4rJ,kBAAoB5rJ,KAAKwnJ,mBAAqB,GAAKiE,EAAgB,GAAK,IAClGP,EAAcD,EAAW5qI,MAAM,EAAG0qI,EAAiB,GAAKY,EAAeV,EAAW5qI,MAAM0qI,EAC5F,MAC2C,IAAlCQ,GACLL,EAAcD,EAAW5qI,MAAM,EAAG0qI,EAAiB,GAAK,IAAME,EAAW5qI,MAAM0qI,GAC/EG,EAAclrJ,KAAKkqJ,WAAWgB,GAAe,EAAIA,EAAc,IAG/DA,EAAcD,EAAW5qI,MAAM,EAAG0qI,EAAiB,GAAKE,EAAW5qI,MAAM0qI,EAEjF,KACuB,aAAd/qJ,KAAKs4B,OAA4D,GAArC+yH,EAAW7gI,OAAOxqB,KAAKwoJ,aACxD0C,EAAcD,EAAW5qI,MAAM,IAEnCrgB,KAAK6rJ,YAAY7jJ,EAAOkjJ,EAAa,KAAM,gBAC/C,MAEIA,EAAclrJ,KAAK8rJ,YAAYb,EAAYF,EAAgBC,GAC3DhrJ,KAAK6rJ,YAAY7jJ,EAAOkjJ,EAAa,KAAM,gBAE/C,MAEJ,IAAK,SAED,GADAljJ,EAAM0S,iBACFqwI,IAAmBC,EAAc,CACjC,GAAuB,GAAlBD,GAAuB/qJ,KAAKw+D,QAAYusF,GAAkBE,EAAW5/I,OAAS,GAAKrL,KAAKy+D,OACzF,MAEJ,MAAM4sF,EAAaJ,EAAWh+G,OAAO89G,IAC7BO,mBAAkBC,iCAAkCvrJ,KAAKwrJ,sBAAsBP,GACvF,GAAIjrJ,KAAKmrJ,cAAcE,GAAa,CAChC,MAAMI,EAAgBzrJ,KAAK0rJ,iBAAiBT,GAC5C,GAAIjrJ,KAAKsoJ,OAAO31I,KAAK04I,GACjBrrJ,KAAKsoJ,OAAOn4G,UAAY,EACxB+6G,EAAcD,EAAW5qI,MAAM,EAAG0qI,GAAkBE,EAAW5qI,MAAM0qI,EAAiB,QAAC,GAElF/qJ,KAAKooJ,SAASz1I,KAAK04I,GACxBrrJ,KAAKooJ,SAASj4G,UAAY,EACtBs7G,EACAzrJ,KAAK2wC,OAAO8kC,cAAc21E,kBAAkBL,EAAiB,EAAGA,EAAiB,GAGjFG,EAAcD,EAAW5qI,MAAM,EAAG0qI,GAAkBE,EAAW5qI,MAAM0qI,EAAiB,QAAC,GAGtFO,EAAmB,GAAKP,EAAiBO,EAAkB,CAChE,MAAMK,EAAe3rJ,KAAK4rJ,kBAAoB5rJ,KAAKwnJ,mBAAqB,GAAKiE,EAAgB,GAAK,IAClGP,EAAcD,EAAW5qI,MAAM,EAAG0qI,GAAkBY,EAAeV,EAAW5qI,MAAM0qI,EAAiB,EACzG,MAC2C,IAAlCQ,GACLL,EAAcD,EAAW5qI,MAAM,EAAG0qI,GAAkB,IAAME,EAAW5qI,MAAM0qI,EAAiB,GAC5FG,EAAclrJ,KAAKkqJ,WAAWgB,GAAe,EAAIA,EAAc,IAG/DA,EAAcD,EAAW5qI,MAAM,EAAG0qI,GAAkBE,EAAW5qI,MAAM0qI,EAAiB,EAE9F,CACA/qJ,KAAK6rJ,YAAY7jJ,EAAOkjJ,EAAa,KAAM,qBAC/C,MAEIA,EAAclrJ,KAAK8rJ,YAAYb,EAAYF,EAAgBC,GAC3DhrJ,KAAK6rJ,YAAY7jJ,EAAOkjJ,EAAa,KAAM,gBAE/C,MACJ,IAAK,OACGlrJ,KAAKirF,MACLjrF,KAAKi2I,YAAYjuI,EAAOhI,KAAKirF,KAC7BjjF,EAAM0S,kBAEV,MACJ,IAAK,MACG1a,KAAK+2C,MACL/2C,KAAKi2I,YAAYjuI,EAAOhI,KAAK+2C,KAC7B/uC,EAAM0S,kBAMlB1a,KAAK4nJ,UAAUvzI,KAAKrM,EACxB,CACA+jJ,gBAAgB/jJ,GACZ,GAAIhI,KAAKkhJ,SACL,OAEJ,IAAI9+I,EAAO4F,EAAMqwI,OAASrwI,EAAMwwI,QAC5B7c,EAAOhwG,OAAOqgI,aAAa5pJ,GAC3B6pJ,EAAgBjsJ,KAAKisJ,cAActwB,GACvC,MAAMuwB,EAAclsJ,KAAKksJ,YAAYvwB,GACzB,IAARv5H,GACA4F,EAAM0S,kBAELuxI,GAAgC,kBAAfjkJ,EAAM5F,OACxB6pJ,GAAgB,EAChBtwB,EAAO37H,KAAKqoJ,aACZjmJ,EAAOu5H,EAAKwwB,WAAW,IAE3B,MAAQz5I,QAAOq4I,iBAAgBC,gBAAiBhrJ,KAAK2wC,MAAM8kC,cACrDg1E,EAAWzqJ,KAAKkqJ,WAAWx3I,EAAQipH,GACnCuvB,EAA0B,MAAZT,EAAmBA,EAAS33I,WAAa,GACvDs5I,EAAgB15I,EAAMi5B,UAAUo/G,EAAgBC,GAChDqB,GAAsBrsJ,KAAKkqJ,WAAWkC,GACtCE,GAA0C,MAAvBD,GAA8BA,GAAoBv5I,WAAa,GACpFi4I,IAAmBC,GAAgBsB,GAAiBjhJ,OAAS,EAC7DrL,KAAKusJ,OAAOvkJ,EAAO2zH,EAAM,CAAEswB,gBAAeC,gBAG1ClsJ,KAAK6jJ,WAAaqH,EAAY7/I,OAASrL,KAAK6jJ,YAG3C,IAAMzhJ,GAAQA,GAAQ,IAAO8pJ,GAAeD,IAC7CjsJ,KAAKusJ,OAAOvkJ,EAAO2zH,EAAM,CAAEswB,gBAAeC,eAElD,CACAM,QAAQxkJ,GACJ,IAAKhI,KAAK+V,WAAa/V,KAAKkhJ,SAAU,CAClCl5I,EAAM0S,iBACN,IAAI5R,GAAQd,EAAMykJ,eAAiBzsJ,KAAKiL,SAASgnH,YAAYw6B,eAAkBC,QAAQ,QACvF,GAAI5jJ,EAAM,CACF9I,KAAK6jJ,YACL/6I,EAAOA,EAAKgK,WAAW64B,UAAU,EAAG3rC,KAAK6jJ,YAE7C,IAAI8I,EAAe3sJ,KAAKkqJ,WAAWphJ,GACf,MAAhB6jJ,GACA3sJ,KAAKusJ,OAAOvkJ,EAAO2kJ,EAAa75I,WAExC,CACJ,CACJ,CACA85I,iBACI,OAAmB,MAAZ5sJ,KAAKirF,KAAejrF,KAAKirF,IAAM,CAC1C,CACAihE,YAAYvwB,GACR,SAAI37H,KAAKuoJ,WAAW51I,KAAKgpH,IAAkB,MAATA,IAC9B37H,KAAKuoJ,WAAWp4G,UAAY,EACrB,GAGf,CACA87G,cAActwB,GACV,QAAI37H,KAAKooJ,SAASz1I,KAAKgpH,KACnB37H,KAAKooJ,SAASj4G,UAAY,GACnB,EAGf,CACAy7G,gBACI,MAAqB,YAAd5rJ,KAAKs4B,IAChB,CACAkzH,sBAAsBl8H,GAClB,IAAIg8H,EAAmBh8H,EAAI9E,OAAOxqB,KAAKooJ,UACvCpoJ,KAAKooJ,SAASj4G,UAAY,EAM1B,MAAMo7G,EALcj8H,EACf7L,QAAQzjB,KAAKyoJ,QAAS,IACtBr1G,OACA3vB,QAAQ,MAAO,IACfA,QAAQzjB,KAAKwoJ,UAAW,IACqBh+H,OAAOxqB,KAAKooJ,UAC9D,OAAApoJ,KAAKooJ,SAASj4G,UAAY,EACnB,CAAEm7G,mBAAkBC,gCAC/B,CACAsB,eAAev9H,GACX,MAAMg8H,EAAmBh8H,EAAI9E,OAAOxqB,KAAKooJ,UACzCpoJ,KAAKooJ,SAASj4G,UAAY,EAC1B,MAAM28G,EAAiBx9H,EAAI9E,OAAOxqB,KAAKuoJ,YACvCvoJ,KAAKuoJ,WAAWp4G,UAAY,EAC5B,MAAM48G,EAAkBz9H,EAAI9E,OAAOxqB,KAAK0oJ,SACxC1oJ,KAAK0oJ,QAAQv4G,UAAY,EACzB,MAAM68G,EAAoB19H,EAAI9E,OAAOxqB,KAAKwoJ,WAC1C,OAAAxoJ,KAAKwoJ,UAAUr4G,UAAY,EACpB,CAAEm7G,mBAAkBwB,iBAAgBC,kBAAiBC,oBAChE,CACAT,OAAOvkJ,EAAOR,EAAM42F,EAAO,CAAE6tD,eAAe,EAAOC,aAAa,IAC5D,MAAMe,EAAuBzlJ,EAAKgjB,OAAOxqB,KAAKuoJ,YAE9C,GADAvoJ,KAAKuoJ,WAAWp4G,UAAY,GACvBnwC,KAAK4sJ,mBAA6C,IAAzBK,EAC1B,OAEJ,IAAIlC,EAAiB/qJ,KAAK2wC,OAAO8kC,cAAcs1E,eAC3CC,EAAehrJ,KAAK2wC,OAAO8kC,cAAcu1E,aACzCC,EAAajrJ,KAAK2wC,OAAO8kC,cAAc/iE,MAAM0gC,OACjD,MAAQk4G,mBAAkBwB,iBAAgBC,kBAAiBC,qBAAsBhtJ,KAAK6sJ,eAAe5B,GACrG,IAAIC,GACJ,GAAI9sD,EAAK8tD,YACkB,IAAnBnB,IACAG,GAAcD,IACS,IAAnB6B,GAA0C,IAAjB9B,KACzBE,GAAclrJ,KAAKktJ,WAAWjC,EAAYzjJ,EAAM,EAAGwjJ,IAEvDhrJ,KAAK6rJ,YAAY7jJ,EAAOkjJ,GAAa1jJ,EAAM,gBAAQ,GAGlD42F,EAAK6tD,cACNX,EAAmB,GAAKP,IAAmBO,EAC3CtrJ,KAAK6rJ,YAAY7jJ,EAAOijJ,EAAYzjJ,EAAM,WAErC8jJ,EAAmBP,GAAkBO,EAAmBN,IAInC,IAArBM,GAA2BtrJ,KAAKynJ,qBAHrCyD,GAAclrJ,KAAKktJ,WAAWjC,EAAYzjJ,EAAMujJ,EAAgBC,GAChEhrJ,KAAK6rJ,YAAY7jJ,EAAOkjJ,GAAa1jJ,EAAM,eAO9C,CACD,MAAMigJ,GAAoBznJ,KAAKmoJ,aAAagF,kBAAkB/D,sBACxDgE,GAAYrC,IAAmBC,EAAe,eAAiB,SACrE,GAAIM,EAAmB,GAAKP,EAAiBO,GACzC,GAAIP,EAAiBvjJ,EAAK6D,QAAUigJ,EAAmB,IAAM7D,GAAmB,CAC5E,MAAM4F,GAAYL,GAAqBjC,EAAiBiC,EAAoB,EAAID,GAAmBhC,EAAiBgC,EAAkB9B,EAAW5/I,OACjJ6/I,GAAcD,EAAW5qI,MAAM,EAAG0qI,GAAkBvjJ,EAAOyjJ,EAAW5qI,MAAM0qI,EAAiBvjJ,EAAK6D,OAAQgiJ,IAAapC,EAAW5qI,MAAMgtI,IACxIrtJ,KAAK6rJ,YAAY7jJ,EAAOkjJ,GAAa1jJ,EAAM4lJ,GAC/C,OAGAlC,GAAclrJ,KAAKktJ,WAAWjC,EAAYzjJ,EAAMujJ,EAAgBC,GAChEhrJ,KAAK6rJ,YAAY7jJ,EAAOkjJ,GAAa1jJ,EAAM4lJ,GAEnD,CACJ,CACAF,WAAWx6I,EAAOlL,EAAMs/B,EAAO81B,GAE3B,GAAyB,KADA,MAATp1D,EAAeA,EAAOA,EAAK2D,MAAM,MACnCE,OAAc,CACxB,MAAMigJ,EAAmB54I,EAAM2N,MAAMymB,EAAO81B,GAAKpyC,OAAOxqB,KAAKooJ,UAC7D,OAAApoJ,KAAKooJ,SAASj4G,UAAY,EACnBm7G,EAAmB,EAAI54I,EAAM2N,MAAM,EAAGymB,GAAS9mC,KAAKiqJ,YAAYziJ,GAAQkL,EAAM2N,MAAMu8C,GAAOlqD,GAAS1S,KAAKiqJ,YAAYziJ,EAChI,CACK,OAAIo1D,EAAM91B,IAAUp0B,EAAMrH,OACpBrL,KAAKiqJ,YAAYziJ,GAET,IAAVs/B,EACEt/B,EAAOkL,EAAM2N,MAAMu8C,GAErBA,IAAQlqD,EAAMrH,OACZqH,EAAM2N,MAAM,EAAGymB,GAASt/B,EAGxBkL,EAAM2N,MAAM,EAAGymB,GAASt/B,EAAOkL,EAAM2N,MAAMu8C,EAE1D,CACAkvF,YAAYp5I,EAAOo0B,EAAO81B,GACtB,IAAIsuF,EACJ,OACIA,EADAtuF,EAAM91B,IAAUp0B,EAAMrH,OACR,GACC,IAAVy7B,EACSp0B,EAAM2N,MAAMu8C,GACrBA,IAAQlqD,EAAMrH,OACLqH,EAAM2N,MAAM,EAAGymB,GAEfp0B,EAAM2N,MAAM,EAAGymB,GAASp0B,EAAM2N,MAAMu8C,GAC/CsuF,CACX,CACAoC,aACI,IAAIvC,EAAiB/qJ,KAAK2wC,OAAO8kC,cAAcs1E,eAC3CC,EAAehrJ,KAAK2wC,OAAO8kC,cAAcu1E,aACzCC,EAAajrJ,KAAK2wC,OAAO8kC,cAAc/iE,MACvC66I,EAActC,EAAW5/I,OACzBspB,EAAQ,KAER64H,GAAgBxtJ,KAAK8nJ,YAAc,IAAIz8I,OAC3C4/I,EAAaA,EAAWxnI,QAAQzjB,KAAKyoJ,QAAS,KAG1CsC,IAAmBC,GAAmC,IAAnBD,GAAwBC,EAAewC,KAC1EzC,GAAkByC,GAEtB,IAAI7xB,EAAOsvB,EAAWh+G,OAAO89G,GAC7B,GAAI/qJ,KAAKmrJ,cAAcxvB,GACnB,OAAOovB,EAAiByC,EAG5B,IAAIpiJ,EAAI2/I,EAAiB,EACzB,KAAO3/I,GAAK,GAER,IADAuwH,EAAOsvB,EAAWh+G,OAAO7hC,GACrBpL,KAAKmrJ,cAAcxvB,GAAO,CAC1BhnG,EAAQvpB,EAAIoiJ,EACZ,KACJ,CAEIpiJ,IAGR,GAAc,OAAVupB,EACA30B,KAAK2wC,OAAO8kC,cAAc21E,kBAAkBz2H,EAAQ,EAAGA,EAAQ,OAE9D,CAED,IADAvpB,EAAI2/I,EACG3/I,EAAImiJ,GAEP,IADA5xB,EAAOsvB,EAAWh+G,OAAO7hC,GACrBpL,KAAKmrJ,cAAcxvB,GAAO,CAC1BhnG,EAAQvpB,EAAIoiJ,EACZ,KACJ,CAEIpiJ,IAGM,OAAVupB,GACA30B,KAAK2wC,OAAO8kC,cAAc21E,kBAAkBz2H,EAAOA,EAE3D,CACA,OAAOA,GAAS,CACpB,CACA2tG,eACI,MAAMt9B,EAAehlG,KAAK2wC,OAAO8kC,cAAc/iE,OAC1C1S,KAAKkhJ,UAAYl8C,OAAiB2mB,UACnC3rH,KAAKstJ,YAEb,CACAnC,cAAcxvB,GACV,QAAoB,IAAhBA,EAAKtwH,UAAiBrL,KAAKkoJ,SAASv1I,KAAKgpH,IAAS37H,KAAKooJ,SAASz1I,KAAKgpH,IAAS37H,KAAKsoJ,OAAO31I,KAAKgpH,IAAS37H,KAAKuoJ,WAAW51I,KAAKgpH,MAC7H37H,KAAKytJ,aACE,GAGf,CACAA,aACIztJ,KAAKkoJ,SAAS/3G,UAAY,EAC1BnwC,KAAKooJ,SAASj4G,UAAY,EAC1BnwC,KAAKsoJ,OAAOn4G,UAAY,EACxBnwC,KAAKuoJ,WAAWp4G,UAAY,CAChC,CACA07G,YAAY7jJ,EAAO0lJ,EAAUC,EAAkBP,GAC3C,IAAIpoD,EAAehlG,KAAK2wC,OAAO8kC,cAAc/iE,MACzC+3I,EAAW,KACC,MAAZiD,IACAjD,EAAWzqJ,KAAKkqJ,WAAWwD,GAC3BjD,EAAYA,GAAazqJ,KAAKwjJ,WAAiBiH,EAAJ,EAC3CzqJ,KAAK2qJ,YAAYF,EAAUkD,EAAkBP,EAAWM,GACxD1tJ,KAAK4qJ,cAAc5iJ,EAAOg9F,EAAcylD,GAEhD,CACAG,cAAc5iJ,EAAOg9F,EAAcylD,GAC3BzqJ,KAAK4tJ,eAAe5oD,EAAcylD,KAClCzqJ,KAAK2wC,MAAM8kC,cAAc/iE,MAAQ1S,KAAKiqJ,YAAYQ,GAClDzqJ,KAAK2wC,OAAO8kC,cAAc1a,aAAa,gBAAiB0vF,GACxDzqJ,KAAKi2I,YAAYjuI,EAAOyiJ,GACxBzqJ,KAAKq5H,QAAQhlH,KAAK,CAAE8jI,cAAenwI,EAAO0K,MAAO+3I,EAAUlU,eAAgBvxC,IAEnF,CACA4oD,eAAe5oD,EAAcylD,GACzB,OAAiB,OAAbA,GAAsC,OAAjBzlD,GAGT,MAAZylD,GAEOA,KAD0C,iBAAjBzlD,EAA4BhlG,KAAKkqJ,WAAWllD,GAAgBA,EAIpG,CACA0lD,cAAch4I,GACV,MAAc,MAAVA,GAA0B,MAATA,EACV,KAEK,MAAZ1S,KAAKirF,KAAev4E,EAAQ1S,KAAKirF,IAC1BjrF,KAAKirF,IAEA,MAAZjrF,KAAK+2C,KAAerkC,EAAQ1S,KAAK+2C,IAC1B/2C,KAAK+2C,IAETrkC,CACX,CACAi4I,YAAYj4I,EAAOi7I,EAAkBP,EAAWM,GAC5CC,EAAmBA,GAAoB,GACvC,IAAI1C,EAAajrJ,KAAK2wC,OAAO8kC,cAAc/iE,MACvC+3I,EAAWzqJ,KAAKiqJ,YAAYv3I,GAC5Bm7I,EAAgB5C,EAAW5/I,OAI/B,GAHIo/I,IAAaiD,IACbjD,EAAWzqJ,KAAK8tJ,aAAarD,EAAUiD,IAErB,IAAlBG,EAAqB,CACrB7tJ,KAAK2wC,MAAM8kC,cAAc/iE,MAAQ+3I,EACjCzqJ,KAAK2wC,MAAM8kC,cAAc21E,kBAAkB,EAAG,GAE9C,MAAMJ,EADQhrJ,KAAKstJ,aACUK,EAAiBtiJ,OAC9CrL,KAAK2wC,MAAM8kC,cAAc21E,kBAAkBJ,EAAcA,EAC7D,KACK,CACD,IAAID,EAAiB/qJ,KAAK2wC,MAAM8kC,cAAcs1E,eAC1CC,EAAehrJ,KAAK2wC,MAAM8kC,cAAcu1E,aAM5C,GALIhrJ,KAAK6jJ,WAAa4G,EAASp/I,OAASrL,KAAK6jJ,YACzC4G,EAAWA,EAASpqI,MAAM,EAAGrgB,KAAK6jJ,WAClCkH,EAAiBt+H,KAAKw+D,IAAI8/D,EAAgB/qJ,KAAK6jJ,WAC/CmH,EAAev+H,KAAKw+D,IAAI+/D,EAAchrJ,KAAK6jJ,YAE3C7jJ,KAAK6jJ,WAAa7jJ,KAAK6jJ,UAAY4G,EAASp/I,OAC5C,OAEJrL,KAAK2wC,MAAM8kC,cAAc/iE,MAAQ+3I,EACjC,IAAIsD,EAAYtD,EAASp/I,OACzB,GAAkB,iBAAd+hJ,EAA8B,CAC9B,MAAMY,EAAahuJ,KAAKkqJ,YAAYe,GAAc,IAAI5qI,MAAM,EAAG0qI,IAEzDkD,IAD+B,OAAfD,EAAsBA,EAAWl7I,WAAa,IACpC3H,MAAM,IAAIkiB,KAAK,IAAIrtB,KAAK6nJ,eAClDqG,GAAS,IAAIn+G,OAAOk+G,GAAW,KACrCC,GAAOv7I,KAAK83I,GACZ,MAAM0D,GAAQR,EAAiBxiJ,MAAM,IAAIkiB,KAAK,IAAIrtB,KAAK6nJ,eACjDuG,GAAS,IAAIr+G,OAAOo+G,GAAO,KACjCC,GAAOz7I,KAAK83I,EAASpqI,MAAM6tI,GAAO/9G,YAClC66G,EAAekD,GAAO/9G,UAAYi+G,GAAOj+G,UACzCnwC,KAAK2wC,MAAM8kC,cAAc21E,kBAAkBJ,EAAcA,EAC7D,SACS+C,IAAcF,EACD,WAAdT,GAAwC,uBAAdA,EAC1BptJ,KAAK2wC,MAAM8kC,cAAc21E,kBAAkBJ,EAAe,EAAGA,EAAe,GACzD,kBAAdoC,EACLptJ,KAAK2wC,MAAM8kC,cAAc21E,kBAAkBJ,EAAe,EAAGA,EAAe,IACzD,iBAAdoC,GAA8C,SAAdA,IACrCptJ,KAAK2wC,MAAM8kC,cAAc21E,kBAAkBJ,EAAcA,QAAY,GAEtD,uBAAdoC,EAAoC,CACzC,IAAIiB,EAAWpD,EAAWh+G,OAAO+9G,EAAe,GAC5CsD,GAAWrD,EAAWh+G,OAAO+9G,GAC7B79C,GAAO0gD,EAAgBE,EACvBQ,GAAcvuJ,KAAKsoJ,OAAO31I,KAAK27I,IAC/BC,IAAwB,IAATphD,GACf69C,GAAgB,GAEVuD,IAAevuJ,KAAKmrJ,cAAckD,KACxCrD,IAAgB,EAAK79C,GAAO,GAEhCntG,KAAKsoJ,OAAOn4G,UAAY,EACxBnwC,KAAK2wC,MAAM8kC,cAAc21E,kBAAkBJ,EAAcA,EAC7D,SACwB,MAAfC,GAAoC,WAAdmC,EAAwB,CACnDptJ,KAAK2wC,MAAM8kC,cAAc21E,kBAAkB,EAAG,GAE9C,MAAMJ,GADQhrJ,KAAKstJ,aACUK,EAAiBtiJ,OAAS,EACvDrL,KAAK2wC,MAAM8kC,cAAc21E,kBAAkBJ,GAAcA,GAC7D,MAEIA,GAA+B+C,EAAYF,EAC3C7tJ,KAAK2wC,MAAM8kC,cAAc21E,kBAAkBJ,EAAcA,EAEjE,CACAhrJ,KAAK2wC,MAAM8kC,cAAc1a,aAAa,gBAAiBroD,EAC3D,CACAo7I,aAAaU,EAAMC,GACf,GAAID,GAAQC,EAAM,CACd,IAAInD,EAAmBmD,EAAKjkI,OAAOxqB,KAAKooJ,UAExC,OADApoJ,KAAKooJ,SAASj4G,UAAY,EACtBnwC,KAAK+nJ,YACuB,IAArBuD,EAA0BkD,EAAOA,EAAK/qI,QAAQzjB,KAAK+nJ,WAAY,IAAI58I,MAAMnL,KAAKooJ,UAAU,GAAKqG,EAAKhrI,QAAQzjB,KAAK+nJ,WAAY,IAAI1nI,MAAMirI,GAAoBtrJ,KAAK+nJ,YAGzI,IAArBuD,EAA0BkD,EAAKrjJ,MAAMnL,KAAKooJ,UAAU,GAAKqG,EAAKpuI,MAAMirI,GAAoBkD,CAEvG,CACA,OAAOA,CACX,CACA9C,iBAAiBh5I,GACb,GAAIA,EAAO,CACP,MAAMg8I,EAAah8I,EAAMvH,MAAMnL,KAAKooJ,UACpC,GAA0B,IAAtBsG,EAAWrjJ,OACX,OAAOqjJ,EAAW,GACbjrI,QAAQzjB,KAAK0oJ,QAAS,IACtBt1G,OACA3vB,QAAQ,MAAO,IACfA,QAAQzjB,KAAKwoJ,UAAW,IAAIn9I,MAEzC,CACA,OAAO,CACX,CACA+2H,aAAap6H,GACThI,KAAKkvH,SAAU,EACflvH,KAAK8+G,QAAQzqG,KAAKrM,EACtB,CACAu6H,YAAYv6H,GACRhI,KAAKkvH,SAAU,EACf,MAAMy/B,EAAiB3uJ,KAAK0qJ,cAAc1qJ,KAAKkqJ,WAAWlqJ,KAAK2wC,MAAM8kC,cAAc/iE,QAC7Ek8I,EAAiBD,GAAgB77I,WACvC9S,KAAK2wC,MAAM8kC,cAAc/iE,MAAQ1S,KAAKiqJ,YAAY2E,GAClD5uJ,KAAK2wC,MAAM8kC,cAAc1a,aAAa,gBAAiB6zF,GACvD5uJ,KAAKi2I,YAAYjuI,EAAO2mJ,GACxB3uJ,KAAK++G,OAAO1qG,KAAKrM,EACrB,CACAuuI,iBAEI,OAAOv2I,KAAKiqJ,YADCjqJ,KAAK0S,OAAU1S,KAAKwjJ,WAAiBxjJ,KAAK0S,MAAT,EAElD,CACAujI,YAAYjuI,EAAO0K,GACf,MAAMm8I,EAA2D,SAAtC7uJ,KAAK4oJ,WAAWn2I,SAASq8I,SAChD9uJ,KAAK0S,QAAUA,GACf1S,KAAK0S,MAAQA,EACPm8I,GAAsB7uJ,KAAKkvH,SAC7BlvH,KAAKsyI,cAAc5/H,IAGlBm8I,GACL7uJ,KAAKsyI,cAAc5/H,GAEvB1S,KAAKuyI,gBACT,CACA6K,WAAW1qI,GACP1S,KAAK0S,MAAQA,EACb1S,KAAKmgH,GAAG0zB,cACZ,CACAwJ,iBAAiBz6F,GACb5iD,KAAKsyI,cAAgB1vF,CACzB,CACA06F,kBAAkB16F,GACd5iD,KAAKuyI,eAAiB3vF,CAC1B,CACA26F,iBAAiBjuH,GACbtvB,KAAK+V,SAAWuZ,EAChBtvB,KAAKmgH,GAAG0zB,cACZ,CACA,UAAIlb,GACA,OAAqB,MAAd34H,KAAK0S,OAAiB1S,KAAK0S,MAAMI,WAAWzH,OAAS,CAChE,CACAs8I,aACQ3nJ,KAAKqZ,OACL2pB,cAAchjC,KAAKqZ,MAE3B,CACAsmG,iBAAc,SAA6BvhF,GAAqB,OAAO,IAAKA,GAAqB+oH,GAAaxgJ,MAAqBA,OAAe,EAClJg5G,iBAA4Bh5G,MAAqB,CAAE3D,KAAMmkJ,EAAa7yI,UAAW,CAAC,CAAC,iBAAkB,CAAC,iBAAkB,CAAC,mBAAoBuiH,eAAgB,SAAoChiH,EAAIC,EAAKgiH,GAKpM,GALyN,EAALjiH,IAClNlO,MAAkBmwH,EAAU7hH,EAAK,GACjCtO,MAAkBmwH,EAAU7/G,EAAK,GACjCtQ,MAAkBmwH,EAAUhE,EAAK,GACjCnsH,MAAkBmwH,EAAUa,MAAe,IACpC,EAAL9iH,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAI8rH,kBAAoBhJ,EAAG5yD,OACxEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI+vI,4BAA8BjtB,EAAG5yD,OAClFr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIuwI,4BAA8BztB,EAAG5yD,OAClFr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIsiH,UAAYQ,EACjE,CAAE,EAAG3hH,UAAW,SAA2BpB,EAAIC,GAE7C,GAF6D,EAALD,GACtDlO,MAAeosH,GAAK,GACb,EAALl+G,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAI67B,MAAQinF,EAAG5yD,MAChE,CAAE,EAAGqrD,SAAU,EAAGz1G,aAAc,SAAkC/F,EAAIC,GAAgB,EAALD,IAC7ElO,MAAe,eAAgB,cAA/BA,CAA8C,kBAAmB,QACjEA,MAAcmO,EAAIk0I,aACpB,EAAGz0I,OAAQ,CAAEkvI,YAAa,CAAC,EAAG,cAAe,cAAel0B,OAAmB7jG,OAAQ,CAAC,EAAG,SAAU,SAAU6jG,OAAmBm0B,aAAc,eAAgB5gB,QAAS,UAAWltD,WAAY,aAAc7oC,MAAO,QAAS81F,YAAa,cAAevgH,KAAM,OAAQuhI,UAAW,CAAC,EAAG,YAAa,YAAahsB,OAAkBb,SAAU,CAAC,EAAG,WAAY,WAAYa,OAAkBpwH,MAAO,QAASu7H,eAAgB,iBAAkBjS,UAAW,YAAaq2B,aAAc,CAAC,EAAG,eAAgB,eAAgB73B,OAAmBjtH,KAAM,OAAQygI,SAAU,CAAC,EAAG,WAAY,WAAYxT,OAAmBlqD,aAAc,eAAgB4lB,IAAK,CAAC,EAAG,MAAO,MAAO4sC,OAAkB9gF,IAAK,CAAC,EAAG,MAAO,MAAO8gF,OAAkBquB,qBAAsB,uBAAwBE,qBAAsB,uBAAwB5B,oBAAqB,sBAAuBQ,oBAAqB,sBAAuB9D,SAAU,CAAC,EAAG,WAAY,WAAY3xB,OAAmB14E,KAAM,CAAC,EAAG,OAAQ,OAAQghF,OAAkB2rB,WAAY,CAAC,EAAG,aAAc,aAAcj0B,OAAmBh6F,OAAQ,SAAU8xH,cAAe,gBAAiB/uH,KAAM,OAAQ9C,SAAU,WAAY8xH,gBAAiB,kBAAmBC,YAAa,CAAC,EAAG,cAAe,cAAeh4B,OAAmB0H,QAAS,UAAWuwB,kBAAmB,CAAC,EAAG,oBAAqB,oBAAsB90I,MAAUmlH,OAAgBnlH,EAAO,OAAQ+0I,kBAAmB,CAAC,EAAG,oBAAqB,oBAAsB/0I,MAAUmlH,OAAgBnlH,EAAO,OAAQ8rD,OAAQ,SAAUC,OAAQ,SAAU66D,WAAY,aAAcoJ,gBAAiB,kBAAmBQ,UAAW,CAAC,EAAG,YAAa,YAAa3T,OAAmBP,UAAW,CAAC,EAAG,YAAa,YAAaO,OAAmBx5G,SAAU,WAAY48G,MAAO,CAAC,EAAG,QAAS,QAASpD,QAAqB/6G,QAAS,CAAE6kH,QAAS,UAAWva,QAAS,UAAWC,OAAQ,SAAU6oC,UAAW,YAAa7pC,QAAS,WAAauF,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACugJ,GAA4BlD,KAAoBr9I,MAA6BA,MAA+BA,MAAyBA,OAAyB8N,MAAO,EAAGC,KAAM,GAAIC,OAAQ,CAAC,CAAC,QAAS,IAAK,CAAC,aAAc,GAAI,OAAQ,aAAc,YAAa,UAAW,EAAG,QAAS,UAAW,WAAY,QAAS,QAAS,QAAS,OAAQ,UAAW,UAAW,QAAS,UAAW,WAAY,WAAY,QAAS,aAAc,SAAU,CAAC,EAAG,QAAS,CAAC,QAAS,6BAA8B,EAAG,QAAS,CAAC,OAAQ,SAAU,WAAY,KAAM,EAAG,UAAW,QAAS,WAAY,YAAa,UAAW,aAAc,UAAW,QAAS,EAAG,QAAS,CAAC,EAAG,UAAW,QAAS,EAAG,QAAS,CAAC,QAAS,2BAA4B,EAAG,QAAS,EAAG,QAAS,CAAC,EAAG,QAAS,WAAY,CAAC,EAAG,2BAA4B,EAAG,SAAU,CAAC,EAAG,oBAAqB,CAAC,EAAG,8BAA+B,CAAC,OAAQ,SAAU,WAAY,KAAM,EAAG,YAAa,UAAW,aAAc,UAAW,QAAS,UAAW,YAAa,CAAC,EAAG,UAAW,EAAG,QAAS,CAAC,EAAG,YAAaC,SAAU,SAA8BC,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACl9F,MAAMsB,EAAMxP,QACZA,MAAkB,EAAG,QAAS,EAAG,GACjCA,MAAc,QAAS,SAAqDkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAI0tH,YAAY3nH,GAAU,EAA7JlU,CAAgK,UAAW,SAAuDkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAI+1I,eAAehwI,GAAU,EAAtTlU,CAAyT,WAAY,SAAwDkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAIi3I,gBAAgBlxI,GAAU,EAAldlU,CAAqd,QAAS,SAAqDkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAI03I,QAAQ3xI,GAAU,EAAhmBlU,CAAmmB,QAAS,WAAyDA,aAAiBwP,GAAaxP,MAAemO,EAAIwtH,eAAiB,EAAvuB37H,CAA0uB,QAAS,SAAqDkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAIstH,aAAavnH,GAAU,EAA13BlU,CAA63B,OAAQ,SAAoDkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAIytH,YAAY1nH,GAAU,GAC1gClU,QACAA,MAAc,EAAG29I,GAAqC,EAAG,EAAG,eAAgB,EAA5E39I,CAA+E,EAAG4+I,GAA6B,EAAG,GAAI,OAAQ,EAA9H5+I,CAAiI,EAAGggJ,GAA+B,EAAG,EAAG,SAAU,EAAnLhgJ,CAAsL,EAAGsgJ,GAA+B,EAAG,EAAG,SAAU,EAC5O,CAAW,EAALpyI,IACFlO,MAAcmO,EAAI4tH,iBAClB/7H,MAAc,UAAW,sBAAzBA,CAAgD,UAAWmO,EAAIwkH,WAA/D3yH,CAA2E,QAASmO,EAAIyhI,iBAAxF5vI,CAA0G,UAAWmO,EAAImiH,QAAzHtwH,CAAkI,WAAYmO,EAAIiB,SAAlJpP,CAA4J,WAAYmO,EAAIosI,SAA5Kv6I,CAAsL,QAASmO,EAAIwN,KAAnM3b,CAAyM,aAAcmO,EAAIk6G,UAA3NroH,CAAsO,QAASmO,EAAIshH,UACnPzvH,MAAe,KAAMmO,EAAIguH,QAAzBn8H,CAAkC,gBAAiBmO,EAAIm2E,IAAvDtkF,CAA4D,gBAAiBmO,EAAIiiC,IAAjFpwC,CAAsF,gBAAiBmO,EAAIpC,MAA3G/L,CAAkH,cAAemO,EAAI+tH,YAArIl8H,CAAkJ,aAAcmO,EAAIi8G,UAApKpqH,CAA+K,kBAAmBmO,EAAIkuH,eAAtMr8H,CAAsN,QAASmO,EAAIrN,MAAnOd,CAA0O,OAAQmO,EAAIxS,KAAtPqE,CAA4P,eAAgBmO,EAAIuwD,aAAhR1+D,CAA8R,YAAamO,EAAI+uI,UAA/Sl9I,CAA0T,WAAYmO,EAAIkiH,SAA1UrwH,CAAoV,gBAAiBmO,EAAIsyI,aAAzWzgJ,CAAuX,WAAYmO,EAAIiuH,SAAvYp8H,CAAiZ,MAAOmO,EAAIm2E,IAA5ZtkF,CAAia,MAAOmO,EAAIiiC,IAA5apwC,CAAib,kBAAmB,SACpcA,MAAa,GACbA,MAAc,OAA4B,YAApBmO,EAAI4uI,cAA8B5uI,EAAIouH,WAAapuH,EAAIpC,OAC7E/L,QACAA,MAAc,OAAQmO,EAAI2uI,aAAoC,YAArB3uI,EAAI4uI,cAC7C/8I,QACAA,MAAc,OAAQmO,EAAI2uI,aAAoC,YAArB3uI,EAAI4uI,cAC7C/8I,QACAA,MAAc,OAAQmO,EAAI2uI,aAAoC,YAArB3uI,EAAI4uI,cAC/C,EAAGpzB,aAAc,CAACxxF,MAAcl4B,MAAYA,MAASA,MAAqBA,MAAYmyH,GAAWhK,GAAWwJ,GAAW6qB,GAAaE,GAAexiH,OAAeyvF,cAAe,EAAGC,gBAAiB,IAC9M,OA1sCK22B,CAAW,KAo+CX4H,GAAiB,MAAvB,MAAMA,EACFpvC,iBAAc,SAAmCvhF,GAAqB,OAAO,IAAKA,GAAqB2wH,EAAsB,EAC7HpvC,iBAA4Bh5G,KAAoB,CAAE3D,KAAM+rJ,IACxDpvC,iBAA4Bh5G,MAAoB,CAAE43B,QAAS,CAAC4oH,GAAarmH,MAAcA,SAC1F,OAJKiuH,CAAiB,KCr7DjBC,GAAmB,MAAzB,MAAMA,UAA4Bp+B,GAC9BjR,iBAA6B,MAAQ,IAAIsvC,EAAkC,OAAO,SAAqC7wH,GAAqB,OAAQ6wH,IAAqCA,EAAmCtoJ,MAAyBqoJ,KAAuB5wH,GAAqB4wH,EAAsB,CAAG,EAA7R,GAC7BrvC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMgsJ,EAAqB16I,UAAW,CAAC,CAAC,wBAAyBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,YAAa,UAAW,YAAa,UAAW,IAAK,qnCAAsnC,OAAQ,iBAAkBC,SAAU,SAAsCC,EAAIC,GAAgB,EAALD,IACllDlO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXKy+B,CAAmB,KCAnBE,GAAoB,MAA1B,MAAMA,UAA6Bt+B,GAC/BjR,iBAA6B,MAAQ,IAAIwvC,EAAmC,OAAO,SAAsC/wH,GAAqB,OAAQ+wH,IAAsCA,EAAoCxoJ,MAAyBuoJ,KAAwB9wH,GAAqB8wH,EAAuB,CAAG,EAAnS,GAC7BvvC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMksJ,EAAsB56I,UAAW,CAAC,CAAC,yBAA0BgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,YAAa,UAAW,YAAa,UAAW,IAAK,4qCAA6qC,OAAQ,iBAAkBC,SAAU,SAAuCC,EAAIC,GAAgB,EAALD,IAC5oDlO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXK2+B,CAAoB,KCApBE,GAAa,MAAnB,MAAMA,UAAsBx+B,GACxBjR,iBAA6B,MAAQ,IAAI0vC,EAA4B,OAAO,SAA+BjxH,GAAqB,OAAQixH,IAA+BA,EAA6B1oJ,MAAyByoJ,KAAiBhxH,GAAqBgxH,EAAgB,CAAG,EAAzP,GAC7BzvC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMosJ,EAAe96I,UAAW,CAAC,CAAC,kBAAmBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,4jBAA6jB,OAAQ,iBAAkBC,SAAU,SAAgCC,EAAIC,GAAgB,EAALD,IACv9BlO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXK6+B,CAAa,KCAbE,GAAc,MAApB,MAAMA,UAAuB1+B,GACzBjR,iBAA6B,MAAQ,IAAI4vC,EAA6B,OAAO,SAAgCnxH,GAAqB,OAAQmxH,IAAgCA,EAA8B5oJ,MAAyB2oJ,KAAkBlxH,GAAqBkxH,EAAiB,CAAG,EAA/P,GAC7B3vC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMssJ,EAAgBh7I,UAAW,CAAC,CAAC,mBAAoBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,IAAK,mnBAAonB,OAAQ,iBAAkBC,SAAU,SAAiCC,EAAIC,GAAgB,EAALD,IACjhClO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,SACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACzF,EAAGP,cAAe,IAC3B,OAXK++B,CAAc,KCEpB,MAAM7/B,GAAQA,EAAG9O,QAAS,2JASGA,EAAG,mCACnBA,EAAG,wHAKUA,EAAG,gGAILA,EAAG,iHAIOA,EAAG,kCAAkCA,EAAG,oGAI1CA,EAAG,kCAAkCA,EAAG,0FAIvDA,EAAG,2CACPA,EAAG,4CACFA,EAAG,2DACYA,EAAG,6GAIfA,EAAG,2CACPA,EAAG,4CACFA,EAAG,2DACYA,EAAG,yCAG1BtrG,GAAU,CACZi6C,KAAM,eACR,IACIkgG,GAAc,MAApB,MAAMA,UAAuB9vC,KACzBp9G,KAAO,YACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAI8vC,EAA6B,OAAO,SAAgCrxH,GAAqB,OAAQqxH,IAAgCA,EAA8B9oJ,MAAyB6oJ,KAAkBpxH,GAAqBoxH,EAAiB,CAAG,EAA/P,GAC7B7vC,kBAA6Bh5G,MAAsB,CAAE0e,MAAOmqI,EAAgBroJ,QAASqoJ,EAAepoJ,YACvG,OANKooJ,CAAc,KA2BpB,MAAMv6I,GAAM,CAAC,KACb,IAIMy6I,GAAS,MAAf,MAAMA,UAAkBz8I,GAKpB08I,aAAe,OACf,eAAIC,GACA,OAAO5vJ,KAAK41E,UAChB,CAKAA,WACAorC,mBAAkBnB,OAAO2vC,IACzB7vC,iBAA6B,MAAQ,IAAIkwC,EAAwB,OAAO,SAA2BzxH,GAAqB,OAAQyxH,IAA2BA,EAAyBlpJ,MAAyB+oJ,KAAatxH,GAAqBsxH,EAAY,CAAG,EAAjO,GAC7B/vC,iBAA4Bh5G,MAAqB,CAAE3D,KAAM0sJ,EAAWp7I,UAAW,CAAC,CAAC,eAAgB,CAAC,eAAgB,CAAC,iBAAkB+8G,UAAW,CAAC,EAAG,eAAgBhB,SAAU,EAAGz1G,aAAc,SAAgC/F,EAAIC,GAAgB,EAALD,IACtOlO,MAAcmO,EAAI86I,aAClBjpJ,MAAe,mBAAyC,SAArBmO,EAAI66I,aAAvChpJ,CAAgE,oBAA0C,UAArBmO,EAAI66I,cAC3F,EAAGp7I,OAAQ,CAAEo7I,aAAc,eAAgB/5E,WAAY,cAAgB0tC,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAAC6oJ,KAAkB7oJ,MAA+BA,OAAyBqvE,mBAAoB/gE,GAAKR,MAAO,EAAGC,KAAM,EAAGE,SAAU,SAA4BC,EAAIC,GAAgB,EAALD,IACpSlO,QACAA,MAAgB,GAClB,EAAG2pH,aAAc,CAACxxF,OAAeyxF,cAAe,EAAGC,gBAAiB,IAC7E,OAvBKk/B,CAAS,KCjFTI,GAAS,MAAf,MAAMA,UAAkBl/B,GACpBjR,iBAA6B,MAAQ,IAAIowC,EAAwB,OAAO,SAA2B3xH,GAAqB,OAAQ2xH,IAA2BA,EAAyBppJ,MAAyBmpJ,KAAa1xH,GAAqB0xH,EAAY,CAAG,EAAjO,GAC7BnwC,iBAA4Bh5G,MAAqB,CAAE3D,KAAM8sJ,EAAWx7I,UAAW,CAAC,CAAC,cAAegvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,QAAS,IAAK,SAAU,IAAK,OAAQ,eAAgB,eAAgB,MAAOC,SAAU,SAA4BC,EAAIC,GAAgB,EAALD,IAC3blO,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,OAAQ,GACxBA,QACF,EAAG4pH,cAAe,IAC3B,OARKu/B,CAAS,KCCTE,GAAU,MAAhB,MAAMA,UAAmBp/B,GACrBW,OACAp9G,WACInU,KAAKuxH,OAAS,WAAUrQ,SAAS,GACrC,CACAvB,iBAA6B,MAAQ,IAAIswC,EAAyB,OAAO,SAA4B7xH,GAAqB,OAAQ6xH,IAA4BA,EAA0BtpJ,MAAyBqpJ,KAAc5xH,GAAqB4xH,EAAa,CAAG,EAAvO,GAC7BrwC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMgtJ,EAAY17I,UAAW,CAAC,CAAC,eAAgBgvG,YAAY,EAAMtzB,SAAU,CAACrpF,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,QAAS,KAAM,SAAU,KAAM,UAAW,YAAa,OAAQ,OAAQ,QAAS,8BAA+B,CAAC,YAAa,UAAW,YAAa,UAAW,IAAK,o4CAAq4C,OAAQ,gBAAiB,CAAC,EAAG,MAAO,CAAC,QAAS,KAAM,SAAU,KAAM,OAAQ,UAAWC,SAAU,SAA6BC,EAAIC,GAAgB,EAALD,IACn4DlO,QACAA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,KAClCA,MAAa,EAAG,OAAQ,GACxBA,QACAA,MAAkB,EAAG,OAArBA,CAA6B,EAAG,WAAY,GAC5CA,MAAa,EAAG,OAAQ,GACxBA,aACO,EAALkO,IACFlO,MAAcmO,EAAIq8G,iBAClBxqH,MAAe,aAAcmO,EAAIi8G,UAAjCpqH,CAA4C,cAAemO,EAAIk8G,WAA/DrqH,CAA2E,OAAQmO,EAAIg8G,MACvFnqH,QACAA,MAAe,YAAamO,EAAIy8G,QAChC5qH,MAAa,GACbA,MAAc,KAAMmO,EAAIy8G,QAC1B,EAAGhB,cAAe,IAC3B,OAtBKy/B,CAAU,KCEhB,MAAM36I,GAAU,CACZi6C,KAAM,eACR,IACI4gG,GAAc,MAApB,MAAMA,UAAuBxwC,KACzBp9G,KAAO,YACP+S,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAIwwC,EAA6B,OAAO,SAAgC/xH,GAAqB,OAAQ+xH,IAAgCA,EAA8BxpJ,MAAyBupJ,KAAkB9xH,GAAqB8xH,EAAiB,CAAG,EAA/P,GAC7BvwC,kBAA6Bh5G,MAAsB,CAAE0e,MAAO6qI,EAAgB/oJ,QAAS+oJ,EAAe9oJ,YACvG,OALK8oJ,CAAc,KAUpB,MAAMj7I,GAAM,CAAC,KACb,IAIMm7I,GAAS,MAAf,MAAMA,UAAkBn9I,GAKpB2iE,WACA,eAAIozE,GACA,OAAOhpJ,KAAK41E,UAChB,CACAorC,mBAAkBnB,OAAOqwC,IACzBvwC,iBAA6B,MAAQ,IAAI0wC,EAAwB,OAAO,SAA2BjyH,GAAqB,OAAQiyH,IAA2BA,EAAyB1pJ,MAAyBypJ,KAAahyH,GAAqBgyH,EAAY,CAAG,EAAjO,GAC7BzwC,iBAA4Bh5G,MAAqB,CAAE3D,KAAMotJ,EAAW97I,UAAW,CAAC,CAAC,eAAgB,CAAC,gBAAiB+7G,SAAU,EAAGz1G,aAAc,SAAgC/F,EAAIC,GAAgB,EAALD,IACrLlO,MAAcmO,EAAIk0I,aAClBriJ,MAAe,eAAe,GAChC,EAAG4N,OAAQ,CAAEqhE,WAAY,cAAgB0tC,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACupJ,KAAkBvpJ,MAA+BA,OAAyBqvE,mBAAoB/gE,GAAKR,MAAO,EAAGC,KAAM,EAAGE,SAAU,SAA4BC,EAAIC,GAAgB,EAALD,IACtQlO,QACAA,MAAgB,GAClB,EAAG2pH,aAAc,CAACxxF,MAAcgC,OAAeyvF,cAAe,EAAGC,gBAAiB,IAC3F,OAlBK4/B,CAAS,KCZf,MAAM3gC,GAAQA,MAAY,04CA+ExB,IACI6gC,GAAY,MAAlB,MAAMA,UAAqB5wC,KACvBp9G,KAAO,UACPmtH,MAAQA,GACR9P,iBAA6B,MAAQ,IAAI4wC,EAA2B,OAAO,SAA8BnyH,GAAqB,OAAQmyH,IAA8BA,EAA4B5pJ,MAAyB2pJ,KAAgBlyH,GAAqBkyH,EAAe,CAAG,EAAnP,GAC7B3wC,kBAA6Bh5G,MAAsB,CAAE0e,MAAOirI,EAAcnpJ,QAASmpJ,EAAalpJ,YACnG,OALKkpJ,CAAY,KAUlB,MAAMr7I,GAAM,CAAC,WACPgC,GAAM,CAAC,WACP67G,GAAM,CAAC,KACPC,GAAMA,CAACE,EAAI8M,EAAIywB,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAKC,EAAKC,EAAKC,OAAW,yBAAyB,EAAM,sDAAuDl+B,EAAI,mBAAoB8M,EAAI,gBAAiBywB,EAAI,sBAAuBC,EAAI,oBAAqBC,EAAI,mBAAoBC,EAAI,yBAA0BC,EAAI,uBAAwBC,EAAI,iBAAkBC,EAAI,uBAAwBC,EAAI,qBAAsBC,EAAK,kBAAmBC,EAAK,wBAAyBC,EAAK,sBAAuBC,KAChfn+B,GAAMA,CAACC,EAAI8M,EAAIywB,MAAUxwB,qBAAsB/M,EAAIgN,qBAAsBF,EAAIvgC,UAAWgxD,IACxFzxB,GAAM9L,KAASvgH,MAAO,UAAWu9B,OAAQgjF,IACzC+L,GAAM/L,KAAS36F,KAAM26F,IACrBgM,GAAMhM,KAAS38G,UAAW28G,IAChC,SAASm+B,GAA4Cv8I,EAAIC,GAAgB,EAALD,GAChElO,MAAsB,EACxB,CACF,SAAS0qJ,GAA6Bx8I,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACzD,MAAM6oE,EAAM/2E,QACZA,MAAkB,EAAG,MAAO,EAAG,GAC/BA,MAAc,QAAS,SAA2DkU,GAAUlU,MAAiB+2E,GAAM,MAAMN,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOk0E,sBAAsBz2I,GAAU,EAApNlU,CAAuN,iCAAkC,SAA6FkU,GAAUlU,MAAiB+2E,GAAM,MAAMN,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOm0E,+BAA+B12I,GAAU,EAAjelU,CAAoe,gCAAiC,SAA4FkU,GAAUlU,MAAiB+2E,GAAM,MAAMN,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOo0E,8BAA8B32I,GAAU,GAC3uBlU,MAAgB,GAChBA,MAAc,EAAGyqJ,GAA6C,EAAG,EAAG,eAAgB,GACpFzqJ,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAcy2E,EAAOq0E,mBACrB9qJ,MAAc,UAAWy2E,EAAOs0E,aAAhC/qJ,CAA8C,UAAW,oBAAzDA,CAA8E,2BAA4BA,MAAmB,GAAIo4H,GAAKp4H,MAAmB,EAAGqsH,GAAK51C,EAAOgwD,sBAAuBhwD,EAAOiwD,sBAAuBjwD,EAAOu0E,iBAAiBv0E,EAAOhb,MAAQgb,EAAOw0E,2BAA6B,cACxSjrJ,MAAa,GACbA,MAAc,mBAAoBy2E,EAAO+5C,iBAAmB/5C,EAAOi6C,iBAAnE1wH,CAAqF,0BAA2BA,MAAmB,GAAIs4H,GAAKt4H,MAAmB,GAAIq4H,GAAK5hD,EAAOy0E,cACnL,CAAE,CACF,SAASC,GAAuBj9I,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACnD,MAAMsB,EAAMxP,QACZA,MAAkB,EAAG,MAAO,EAAG,GAC/BA,MAAc,QAAS,WAAyDA,MAAiBwP,GAAM,MAAMinE,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAO6vD,iBAAmB,GAC1LtmI,MAAc,EAAG0qJ,GAA8B,EAAG,GAAI,MAAO,GAC7D1qJ,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,QACfA,MAAcy2E,EAAOxH,YACrBjvE,MAAc,UAAWy2E,EAAOrwC,MAAhCpmC,CAAuC,UAAWA,MAAmB,EAAGosH,GAAK,CAAC31C,EAAOhb,MAAOgb,EAAOhb,OAA+C,WAAtCgb,EAAOw0E,2BAAyCx0E,EAAOhb,OAA+C,QAAtCgb,EAAOw0E,2BAAsCx0E,EAAOhb,OAA+C,cAAtCgb,EAAOw0E,2BAA4Cx0E,EAAOhb,OAA+C,YAAtCgb,EAAOw0E,2BAA0Cx0E,EAAOhb,OAA+C,WAAtCgb,EAAOw0E,2BAAyCx0E,EAAOhb,OAA+C,iBAAtCgb,EAAOw0E,2BAA+Cx0E,EAAOhb,OAA+C,eAAtCgb,EAAOw0E,2BAA6Cx0E,EAAOhb,OAA+C,SAAtCgb,EAAOw0E,2BAAuCx0E,EAAOhb,OAA+C,eAAtCgb,EAAOw0E,2BAA6Cx0E,EAAOhb,OAA+C,aAAtCgb,EAAOw0E,2BAA2Cx0E,EAAOhb,OAA+C,UAAtCgb,EAAOw0E,2BAAwCx0E,EAAOhb,OAA+C,gBAAtCgb,EAAOw0E,2BAA8Cx0E,EAAOhb,OAA+C,cAAtCgb,EAAOw0E,8BACt4BjrJ,MAAa,GACbA,MAAc,OAAQy2E,EAAO2K,QACjC,CAAE,CACF,MAAMgqE,MAA8Bj8G,MAAU,IAAC/I,MAAM,CAAEyyD,UAAW,gBAAiBuoB,QAAS,KAAG,EAAG36E,MAAQ,8BACpG4kH,MAA8Bl8G,MAAU,IAAC1I,MAAQ,8BAA4BL,MAAM,CAAEyyD,UAAW,gBAAiBuoB,QAAS,OAChI,IAIM5oF,GAAO,MAAb,MAAMA,UAAgBlsB,GAClBg7H,eACAzwE,KAMA,WAAIuqB,GACA,OAAO/nF,KAAKiyJ,QAChB,CACA,WAAIlqE,CAAQr1E,GACR1S,KAAKiyJ,SAAWv/I,EACZ1S,KAAKiyJ,WAAajyJ,KAAKkyJ,eACvBlyJ,KAAKkyJ,cAAe,EAE5B,CAMA,QAAI55H,GACA,OAAOt4B,KAAKmyJ,OAASnyJ,KAAKoyJ,gBAAgB95H,IAC9C,CACA,QAAIA,CAAK5lB,GACL1S,KAAKmyJ,MAAQz/I,CACjB,CAMA,SAAIq6B,GACA,OAAO0sF,GAAYgC,MAAMz7H,KAAKqyJ,OAAQryJ,KAAKoiE,MAAQpiE,KAAKsyJ,0BAA0BvlH,MAAQ/sC,KAAKoyJ,gBAAgBrlH,MACnH,CACA,SAAIA,CAAMr6B,GACN1S,KAAKqyJ,OAAS3/I,CAClB,CAMA,cAAIkjE,GACA,OAAO6jD,GAAYgC,MAAMz7H,KAAK4vJ,YAAa5vJ,KAAKoiE,MAAQpiE,KAAKsyJ,0BAA0B18E,WAAa51E,KAAKoyJ,gBAAgBx8E,WAC7H,CACA,cAAIA,CAAWljE,GACX1S,KAAK4vJ,YAAcl9I,CACvB,CAMA,gBAAIg/I,GACA,OAAOj4B,GAAYgC,MAAMz7H,KAAKuyJ,cAAevyJ,KAAKoiE,MAAQpiE,KAAKsyJ,0BAA0BZ,aAAe1xJ,KAAKoyJ,gBAAgBV,aACjI,CACA,gBAAIA,CAAah/I,GACb1S,KAAKuyJ,cAAgB7/I,CACzB,CAMA,qBAAI++I,GACA,OAAOh4B,GAAYgC,MAAMz7H,KAAKwyJ,mBAAoBxyJ,KAAKoiE,MAAQpiE,KAAKsyJ,0BAA0Bb,kBAAoBzxJ,KAAKoyJ,gBAAgBX,kBAC3I,CACA,qBAAIA,CAAkB/+I,GAClB1S,KAAKwyJ,mBAAqB9/I,CAC9B,CAMA,UAAIssC,GACA,MAAMtsC,EAAQ1S,KAAKyyJ,SAAWzyJ,KAAKoyJ,gBAAgBpzG,OACnD,YAAiB19C,IAAVoR,EAAsB,QAAUA,CAC3C,CACA,UAAIssC,CAAOtsC,GACP1S,KAAKyyJ,QAAU//I,CACnB,CAMA,YAAI4xG,GACA,OAAOtkH,KAAK0yJ,WAAa1yJ,KAAKoyJ,gBAAgB9tC,QAClD,CACA,YAAIA,CAAS5xG,GACT1S,KAAK0yJ,UAAYhgJ,CACrB,CAMA,cAAIu8H,GACA,MAAMv8H,EAAQ1S,KAAK2yJ,aAAe3yJ,KAAKoyJ,gBAAgBnjB,WACvD,YAAiB3tI,IAAVoR,GAA6BA,CACxC,CACA,cAAIu8H,CAAWv8H,GACX1S,KAAK2yJ,YAAcjgJ,CACvB,CAMA,cAAIgqH,GACA,MAAMhqH,EAAQ1S,KAAK4yJ,aAAe5yJ,KAAKoyJ,gBAAgB11B,WACvD,YAAiBp7H,IAAVoR,EAAsB,EAAIA,CACrC,CACA,cAAIgqH,CAAWhqH,GACX1S,KAAK4yJ,YAAclgJ,CACvB,CAMA,yBAAI06H,GACA,MAAM16H,EAAQ1S,KAAK6yJ,wBAA0B7yJ,KAAKoyJ,gBAAgBhlB,sBAClE,YAAiB9rI,IAAVoR,EAAsB,kCAAoCA,CACrE,CACA,yBAAI06H,CAAsB16H,GACtB1S,KAAK6yJ,uBAAyBngJ,CAClC,CAMA,yBAAI26H,GACA,MAAM36H,EAAQ1S,KAAK8yJ,wBAA0B9yJ,KAAKoyJ,gBAAgB/kB,sBAClE,YAAiB/rI,IAAVoR,EAAsB,aAAeA,CAChD,CACA,yBAAI26H,CAAsB36H,GACtB1S,KAAK8yJ,uBAAyBpgJ,CAClC,CAMA,YAAIk4C,GACA,OAAO5qD,KAAK+yJ,WAAa/yJ,KAAKoyJ,gBAAgBxnG,QAClD,CACA,YAAIA,CAASl4C,GACT1S,KAAK+yJ,UAAYrgJ,CACrB,CAMA,cAAIsgJ,GACA,OAAOhzJ,KAAKizJ,aAAejzJ,KAAKoyJ,gBAAgBY,UACpD,CACA,cAAIA,CAAW1jI,GACXtvB,KAAKizJ,YAAc3jI,CACvB,CAMA,WAAI5jB,GACA,OAAO1L,KAAKuyB,QAChB,CACA,WAAI7mB,CAAQ4jB,GACRtvB,KAAKuyB,SAAWjD,CACpB,CAMA4jI,cAAgB,IAAIh/I,MAMpBi/I,aAAe,IAAIj/I,MAMnB09H,OAAS,IAAI19H,MAMbk/I,aAAe,IAAIl/I,MAMnBm/I,OAAS,IAAIn/I,MAMbo/I,iBAAmB,IAAIp/I,MAMvBq/I,gBAAkB,IAAIr/I,MACtBs/I,iBACAzhB,iBAKA5a,gBACAC,UACAC,iBACA46B,UAAW,EACXE,MACAE,OACAzC,YACA2C,cACAC,mBACAC,QACAC,UACAC,YACAC,YACAC,uBACAC,uBACAC,UACAE,YACA1gI,SACA2/H,cAAe,EACfuB,kBAAmB,EACnBC,yBAA0B,EAC1BvgB,cACAT,sBACAU,uBACApyB,mBAAkBnB,OAAOywC,IACzBqD,yBACAppI,OACAonI,iBAAmB,CACf/hC,QAAS,cACTnrB,OAAQ,aACRn4B,IAAK,+BACL,YAAa,+BACb,UAAW,+BACXyB,OAAQ,8BACR,eAAgB,8BAChB,aAAc,8BACdF,KAAM,+BACN,aAAc,+BACd,WAAY,+BACZC,MAAO,8BACP,cAAe,8BACf,YAAa,+BAEjB,SAAI1L,GACA,MAAIitD,OAAkBrvH,KAAK8/G,YACvB,MAAqB,UAAd9/G,KAAKs4B,MAAqBt4B,KAAKsyJ,0BAA4BtyJ,KAAKiL,SAASgnH,aAAa2hC,WAAW5zJ,KAAKsyJ,yBAAyBuB,OAAOpwI,QAAQ,SAAU,KAAO,eAAezjB,KAAKsyJ,yBAAyBtT,eAAe3wG,OAE1O,CACA,eAAIwjH,GACA,OAAO7xJ,KAAKs4B,OAASt4B,KAAKoiE,MAAQ,QAAU,UAChD,CACA,kBAAIgwF,GACA,MAAO,IAAKpyJ,KAAKmZ,QAAQi5I,kBAAmBpyJ,KAAK0L,QACrD,CACA,4BAAI4mJ,GACA,MAAO,IAAKtyJ,KAAKoyJ,gBAAgBY,cAAehzJ,KAAKgzJ,WACzD,CACA,8BAAIpB,GACA,OAAO5xJ,KAAKsyJ,0BAA0BhX,WAAa,QACvD,CACA,aAAIwY,GACA,OAAO9zJ,KAAKwzJ,kBAAkB/9E,aAClC,CACA,aAAIukE,GACA,OAAOh6I,KAAK+xI,kBAAkBt8D,aAClC,CACA,YAAIs+E,GACA,SAAOnmC,OAAiB5tH,KAAKg/C,OAAQh/C,KAAKg7D,IAAIya,cAClD,CACA31E,YAAYmuI,EAAgBzwE,GACxBr9D,QACAH,KAAKiuI,eAAiBA,EACtBjuI,KAAKw9D,KAAOA,CAChB,CACA85D,qBACIt3H,KAAKo3H,WAAW7jH,QAAS1B,IACbA,EAAK0lH,UAMLv3H,KAAKq3H,iBAAmBxlH,EAAK+C,QAErC,EAER,CACAoB,KAAKspB,EAAS00H,GAAU,GACpBh0J,KAAKi0J,iBAAgB,GACrBj0J,KAAKk0J,aAAa,SAAU,CAAE50H,QAASA,GAAWt/B,KAAK8zJ,UAAW90G,OAAQh/C,KAAK+zJ,SAAUz7H,KAAMt4B,KAAK6xJ,cACpGmC,MAAWn1C,OAAM7+G,KAAK+zJ,UACtB/zJ,KAAKoiE,UAASpa,OAAShoD,KAAKiL,UAAUvB,KAAM,oBAChD,CACAyqJ,KAAK70H,EAAS00H,GAAU,GACfh0J,KAAK+nF,UAIN/nF,KAAKi0J,iBAAgB,GACrBj0J,KAAKk0J,aAAa,SAAU,CAAE50H,QAASA,GAAWt/B,KAAK8zJ,UAAW90G,OAAQh/C,KAAK+zJ,SAAUz7H,KAAMt4B,KAAK6xJ,cACpGmC,MAAWn1C,OAAM7+G,KAAK+zJ,UACtB/zJ,KAAKoiE,UAAS5Y,OAAYxpD,KAAKiL,UAAUvB,KAAM,qBAEvD,CACA66G,gBACKvkH,KAAKoiE,OAASmhD,GAAWgB,aAAavkH,KAAK8zJ,UAAW9zJ,KAAK+zJ,SAAU/zJ,KAAKskH,SAC/E,CACA2vC,gBAAgBlsE,GACZ/nF,KAAKiyJ,SAAWlqE,EAChB/nF,KAAKkzJ,cAAc7+I,KAAK0zE,EAC5B,CACAklD,iBACIjtI,KAAKyzJ,kBAAmB,CAC5B,CACAnC,sBAAsBtpJ,GAClBhI,KAAKiuI,eAAer4F,IAAI,CACpBuiG,cAAenwI,EACfg3C,OAAQh/C,KAAK+zJ,WAEjB/zJ,KAAK0zJ,yBAA0B,CACnC,CACAnC,+BAA+BvpJ,GAC3B,OAAQA,EAAMmjC,SACV,IAAK,UACDnrC,KAAKk0J,aAAa,eAAgB,CAAE50H,QAASt/B,KAAK8zJ,UAAW90G,OAAQh/C,KAAK+zJ,SAAUz7H,KAAMt4B,KAAK6xJ,cAC3F7xJ,KAAKivI,YACL3S,GAAY13H,IAAI5E,KAAK6xJ,YAAa7xJ,KAAK8zJ,UAAW9zJ,KAAK08H,WAAa18H,KAAKmZ,QAAQsjH,OAAOz8H,KAAK6xJ,cAEjGtuC,GAAWc,cAAcrkH,KAAK8zJ,UAA6B,SAAlB9zJ,KAAKskH,SAAsBtkH,KAAKiL,SAASvB,KAAO1J,KAAKskH,SAAUtkH,KAAKskH,UAC7GtkH,KAAKukH,eACL,MACJ,IAAK,OACDvkH,KAAKk0J,aAAa,eAAgB,CAAE50H,QAASt/B,KAAK8zJ,UAAW90G,OAAQh/C,KAAK+zJ,SAAUz7H,KAAMt4B,KAAK6xJ,cAC/F7xJ,KAAKoiE,UAASpa,OAAShoD,KAAK8zJ,UAAW,wBAG/C9zJ,KAAKk0J,aAAa,mBAAoBlsJ,EAC1C,CACAwpJ,8BAA8BxpJ,GAC1B,MAAMouG,EAAYp2G,KAAK8zJ,WAAa9rJ,EAAMgjC,QAAQ85E,cAClD,OAAQ98G,EAAMmjC,SACV,IAAK,UACDnrC,KAAKgW,KAAKogG,GAAW,GACrBp2G,KAAKo0J,gBACL,MACJ,IAAK,OACDp0J,KAAKm0J,KAAK/9C,GAAW,GACrBp2G,KAAKq0J,kBACL9wC,GAAWc,cAAcrkH,KAAK8zJ,UAAW9zJ,KAAK+zJ,SAAU/zJ,KAAKskH,UAC7DgY,GAAYz2G,MAAMuwF,GAClBp2G,KAAKkyJ,cAAe,EACpBlyJ,KAAKmgH,GAAG0zB,eAGhB7zI,KAAKk0J,aAAa,kBAAmBlsJ,EACzC,CACAksJ,aAAa5xJ,EAAM2tC,GACfjwC,KAAKsC,GAAM+R,KAAK47B,GAChBjwC,KAAK0L,SAAW1L,KAAK0L,QAAQpJ,IAAStC,KAAK0L,QAAQpJ,GAAM2tC,GACzDjwC,KAAKmZ,QAAQi5I,iBAAmBpyJ,KAAKmZ,QAAQi5I,gBAAgB9vJ,KAAUtC,KAAKmZ,QAAQi5I,gBAAgB9vJ,GAAM2tC,EAC9G,CACAmkH,gBACIp0J,KAAK6uH,qBACL7uH,KAAK28I,4BACL38I,KAAK48I,6BACL58I,KAAKs0J,8BACT,CACAD,kBACIr0J,KAAK8uH,uBACL9uH,KAAKq/I,8BACLr/I,KAAKu/I,+BACLv/I,KAAKu0J,gCACT,CACA1lC,qBACS7uH,KAAKmzI,gBACNnzI,KAAKmzI,cAAgB,IAAIvkB,GAA8B5uH,KAAK+zJ,SAAW/rJ,MACrDhI,KAAK4qD,UAAW5qD,KAAK4qD,SAAS5iD,EAAO,CAAEhF,KAAM,SAAUs1B,KAAMt4B,KAAK6xJ,YAAa2C,OAAO,MAC3Fx0J,KAAKm0J,KAAKnsJ,GAAO,EAAI,IAGtChI,KAAKmzI,cAActkB,oBACvB,CACAC,uBACQ9uH,KAAKmzI,eACLnzI,KAAKmzI,cAAcrkB,sBAE3B,CACA6tB,4BACS38I,KAAK0yI,wBACN1yI,KAAK0yI,sBAAwB1yI,KAAKq8D,SAAStW,OAAO/lD,KAAKiL,SAAU,QAAUjD,IAEvE,MAAMo3I,IADkBp/I,KAAK+zJ,WAAa/zJ,KAAK+zJ,SAASvU,WAAWx3I,EAAMg3C,UAAah/C,KAAKyzJ,kBAAoBzzJ,KAAK+zJ,SAAS3lG,SAASpmD,EAAMg3C,UAC9Fh/C,KAAK0zJ,0BACrC1zJ,KAAK4qD,SAAW5qD,KAAK4qD,SAAS5iD,EAAO,CAAEhF,KAAM,UAAWs1B,KAAMt4B,KAAK6xJ,YAAa2C,MAAuB,IAAhBxsJ,EAAMqwI,OAAe+G,IAAsBA,IACvIp/I,KAAKm0J,KAAKnsJ,GACnBhI,KAAKyzJ,iBAAmBzzJ,KAAK0zJ,yBAA0B,IAGnE,CACArU,8BACQr/I,KAAK0yI,wBACL1yI,KAAK0yI,wBACL1yI,KAAK0yI,sBAAwB,KAErC,CACAkK,6BACS58I,KAAKozI,yBACNpzI,KAAKozI,uBAAyBpzI,KAAKq8D,SAAStW,OAAO/lD,KAAKiL,SAASgnH,YAAa,SAAWjqH,KACvEhI,KAAK4qD,SAAW5qD,KAAK4qD,SAAS5iD,EAAO,CAAEhF,KAAM,SAAUs1B,KAAMt4B,KAAK6xJ,YAAa2C,QAAO,EAAC7pC,aAAqB,EAACA,WAClH3qH,KAAKm0J,KAAKnsJ,GAAO,EAAI,GAG1C,CACAu3I,+BACQv/I,KAAKozI,yBACLpzI,KAAKozI,yBACLpzI,KAAKozI,uBAAyB,KAEtC,CACAkhB,+BACQt0J,KAAK2zJ,0BAGT3zJ,KAAKw9D,KAAKX,kBAAkB,KACxB78D,KAAK2zJ,yBAA2B3zJ,KAAKq8D,SAAStW,OAAO/lD,KAAKiL,SAASgnH,YAAa,UAAYjqH,KAC/C,IAArChI,KAAKoyJ,eAAeqC,cAAyC,WAAfzsJ,EAAM5F,OAG1CpC,KAAK4qD,SAAW5qD,KAAK4qD,SAAS5iD,EAAO,CAAEhF,KAAM,UAAWs1B,KAAMt4B,KAAK6xJ,YAAa2C,QAAO,EAAC7pC,aAAqB,EAACA,WAExH3qH,KAAKw9D,KAAKd,IAAI,KACV18D,KAAKm0J,KAAKnsJ,GAAO,EAAI,EACxB,EAER,EAET,CACAusJ,iCACQv0J,KAAK2zJ,2BACL3zJ,KAAK2zJ,2BACL3zJ,KAAK2zJ,yBAA2B,KAExC,CACAn5I,cACIxa,KAAKm0J,KAAKn0J,KAAK8zJ,WAAW,GACtB9zJ,KAAK8zJ,YACLvwC,GAAWc,cAAcrkH,KAAK8zJ,UAAW9zJ,KAAK+zJ,SAAU/zJ,KAAKskH,UAC7DgY,GAAYz2G,MAAM7lB,KAAK8zJ,YAEvB9zJ,KAAKmzI,gBACLnzI,KAAKmzI,cAAcvtF,UACnB5lD,KAAKmzI,cAAgB,MAEzBnzI,KAAKq0J,kBACLl0J,MAAMqa,aACV,CACAmlG,iBAAc,SAAyBvhF,GAAqB,OAAO,IAAKA,GAAqBe,GAASx4B,MAAqBC,OAAoBD,MAAqBA,OAAa,EACjLg5G,iBAA4Bh5G,MAAqB,CAAE3D,KAAMm8B,EAAS7qB,UAAW,CAAC,CAAC,cAAeuiH,eAAgB,SAAgChiH,EAAIC,EAAKgiH,GAGjJ,GAHsK,EAALjiH,IAC/JlO,MAAkBmwH,EAAU7hH,GAAK,GACjCtO,MAAkBmwH,EAAUa,MAAe,IACpC,EAAL9iH,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAIqiH,gBAAkBS,EAAG5yD,OACtEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIsiH,UAAYQ,EACjE,CAAE,EAAG3hH,UAAW,SAAuBpB,EAAIC,GAGzC,GAHyD,EAALD,IAClDlO,MAAesQ,GAAK,GACpBtQ,MAAesO,GAAK,IACb,EAALJ,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAI0+I,iBAAmB57B,EAAG5yD,OACvEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIi9H,iBAAmBna,EAAG5yD,MAC3E,CAAE,EAAGzwD,OAAQ,CAAEwzE,QAAS,UAAWzvD,KAAM,OAAQyU,MAAO,QAAS6oC,WAAY,aAAc87E,aAAc,eAAgBD,kBAAmB,oBAAqBzyG,OAAQ,SAAUslE,SAAU,WAAY2qB,WAAY,aAAcvS,WAAY,aAAc0Q,sBAAuB,wBAAyBC,sBAAuB,wBAAyBziF,SAAU,WAAYooG,WAAY,aAActnJ,QAAS,WAAa8I,QAAS,CAAE0+I,cAAe,gBAAiBC,aAAc,eAAgBvhB,OAAQ,SAAUwhB,aAAc,eAAgBC,OAAQ,SAAUC,iBAAkB,mBAAoBC,gBAAiB,mBAAqBjwC,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAAC2pJ,KAAgB3pJ,MAA+BA,OAAyBqvE,mBAAoB88C,GAAKr+G,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,UAAW,IAAK,CAAC,UAAW,IAAK,CAAC,EAAG,UAAW,QAAS,UAAW,QAAS,EAAG,QAAS,CAAC,EAAG,QAAS,UAAW,WAAY,CAAC,EAAG,mBAAoB,4BAA6BC,SAAU,SAA0BC,EAAIC,GAAgB,EAALD,IAC7gClO,QACAA,MAAc,EAAGmrJ,GAAwB,EAAG,GAAI,MAAO,IAChD,EAALj9I,GACFlO,MAAc,OAAQmO,EAAIo9I,aAC5B,EAAG5hC,aAAc,CAACxxF,MAAcj4B,MAAYA,MAASA,MAAqBA,MAAYi6B,OAAeyvF,cAAe,EAAGznH,KAAM,CAAEgtC,UAAW,IAAC6S,MAAQ,0BAA2B,IAACrT,MAAW,SAAU,IAACo/G,MAAa3C,OAA6B,EAAGz8G,MAAW,SAAU,IAACo/G,MAAa1C,UAAqCxhC,gBAAiB,IACpV,OApfKrxF,CAAO,KCzIb,MAAMswF,GAAQA,EAAG9O,QAAS,ipBAmCRA,EAAG,0DACRA,EAAG,oNAUCA,EAAG,oDACPA,EAAG,qDACFA,EAAG,uNAUf,IACIg0C,GAAa,MAAnB,MAAMA,UAAsBj1C,KACxBp9G,KAAO,kBACPmtH,MAAQA,GACR9P,iBAA6B,MAAQ,IAAIi1C,EAA4B,OAAO,SAA+Bx2H,GAAqB,OAAQw2H,IAA+BA,EAA6BjuJ,MAAyBguJ,KAAiBv2H,GAAqBu2H,EAAgB,CAAG,EAAzP,GAC7Bh1C,kBAA6Bh5G,MAAsB,CAAE0e,MAAOsvI,EAAextJ,QAASwtJ,EAAcvtJ,YACrG,OALKutJ,CAAa,KA0CnB,MAAM1/I,GAAM,CAAC,WACPgC,GAAM,CAAC,QACP67G,GAAM,CAAC,UACPC,GAAM,CAAC,cACPC,GAAM,CAAC,WACP+L,GAAM,CAAC,KACPC,GAAMA,CAAC/L,EAAI8M,EAAIywB,MAAU,qBAAqB,EAAM,2BAA4Bv9B,EAAI,uCAAwC8M,EAAI,mDAAoDywB,IACpLvxB,GAAMA,CAAChM,EAAI8M,MAAUzpH,UAAW28G,EAAIvnH,QAASq0H,IAC7Cb,GAAMjM,KAAS,6BAA8BA,IAC7CkM,GAAMlM,KAAS,gCAAiCA,IAChDmM,GAAOnM,KAAS4hC,QAAS5hC,IACzBoM,GAAOpM,KAASvnH,QAASunH,IACzBqM,GAAOA,MAAS1pD,WAAY,mCAC5B2pD,GAAOA,CAACtM,EAAI8M,MAAU+0B,KAAM7hC,EAAI8hC,QAASh1B,IAC/C,SAASi1B,GAA+DngJ,EAAIC,GAAgB,EAALD,GACnFlO,MAAsB,EACxB,CACF,SAASsuJ,GAAgDpgJ,EAAIC,GAI3D,GAJ2E,EAALD,IACpElO,MAA2B,GAC3BA,MAAc,EAAGquJ,GAAgE,EAAG,EAAG,eAAgB,IACvGruJ,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAO+5C,iBAAmB/5C,EAAOi6C,iBAAnE1wH,CAAqF,0BAA2BA,MAAmB,EAAGs4H,GAAK7hD,EAAO83E,YAAa93E,EAAO+3E,qBAC1K,CAAE,CACF,SAASC,GAA6EvgJ,EAAIC,GAAgB,EAALD,GACjGlO,MAAsB,EACxB,CACF,SAAS0uJ,GAA8DxgJ,EAAIC,GAIzE,GAJyF,EAALD,IAClFlO,MAA2B,GAC3BA,MAAc,EAAGyuJ,GAA8E,EAAG,EAAG,eAAgB,IACrHzuJ,SACO,EAALkO,EAAQ,CACV,MAAMygJ,EAAUxgJ,EAAIwB,UACdi/I,EAAWzgJ,EAAI6f,MACfyoD,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAOo4E,cAAgBp4E,EAAOq4E,cAAhE9uJ,CAA+E,0BAA2BA,MAAmB,EAAGs4H,GAAKq2B,EAASl4E,EAAO8rE,WAAWqM,IACpK,CAAE,CACF,SAASG,GAA+C7gJ,EAAIC,GAI1D,GAJ0E,EAALD,IACnElO,MAAkB,EAAG,MAAO,GAAI,GAChCA,MAAc,EAAG0uJ,GAA+D,EAAG,EAAG,eAAgB,IACtG1uJ,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAc,UAAWA,MAAmB,EAAGu4H,GAAK9hD,EAAOu4E,WAA3DhvJ,CAAuE,UAAWy2E,EAAOs0E,cACzF/qJ,MAAe,kBAAmB,WAClCA,MAAa,GACbA,MAAc,UAAWy2E,EAAO83E,YAAhCvuJ,CAA6C,eAAgBy2E,EAAOw4E,SACxE,CAAE,CACF,SAASC,GAAuChhJ,EAAIC,GAElD,GAFkE,EAALD,GAC3DlO,MAAa,EAAG,MAAO,IAChB,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAc,UAAWy2E,EAAO04E,aAChCnvJ,MAAe,kBAAmB,SACtC,CAAE,CACF,SAASovJ,GAAoFlhJ,EAAIC,GAAgB,EAALD,GACxGlO,MAAsB,EACxB,CACF,SAASqvJ,GAAqEnhJ,EAAIC,GAIhF,GAJgG,EAALD,IACzFlO,MAA2B,GAC3BA,MAAc,EAAGovJ,GAAqF,EAAG,EAAG,eAAgB,IAC5HpvJ,SACO,EAALkO,EAAQ,CACV,MAAMohJ,EAAWnhJ,EAAI6f,MACfyoD,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAO84E,gBAAkB94E,EAAO+4E,gBAAlExvJ,CAAmF,0BAA2BA,MAAmB,EAAG04H,GAAMjiD,EAAOg5E,iBAAiBH,EAAU74E,EAAOi5E,MAAQ1vJ,MAAmB,EAAGy4H,GAAMhiD,EAAOk5E,mBAAmBC,QACrP,CAAE,CACF,SAASC,GAAsD3hJ,EAAIC,GAIjE,GAJiF,EAALD,IAC1ElO,MAA2B,GAC3BA,MAAc,EAAGqvJ,GAAsE,EAAG,EAAG,eAAgB,IAC7GrvJ,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,UAAWy2E,EAAOq5E,UACpC,CAAE,CACF,SAASC,GAAmF7hJ,EAAIC,GAAgB,EAALD,GACvGlO,MAAsB,EACxB,CACF,SAASgwJ,GAAoE9hJ,EAAIC,GAI/E,GAJ+F,EAALD,IACxFlO,MAA2B,GAC3BA,MAAc,EAAG+vJ,GAAoF,EAAG,EAAG,eAAgB,IAC3H/vJ,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAOw5E,oBAAsBx5E,EAAOy5E,oBAAtElwJ,CAA2F,0BAA2BA,MAAmB,EAAG04H,GAAM14H,MAAmB,EAAG24H,KAC5K,CAAE,CACF,SAASw3B,GAAmEjiJ,EAAIC,GAAgB,EAALD,GACvFlO,MAAa,EAAG,cAAe,IACxB,EAALkO,IACFlO,MAAc,aAAc,0CAC5BA,MAAe,kBAAmB,eACpC,CACF,SAASowJ,GAAqDliJ,EAAIC,GAEhE,GAFgF,EAALD,GACzElO,MAAc,EAAGgwJ,GAAqE,EAAG,EAAG,eAAgB,EAA5GhwJ,CAA+G,EAAGmwJ,GAAoE,EAAG,EAAG,cAAe,KAAM,EAAGnwJ,OAC7M,EAALkO,EAAQ,CACV,MAAMmiJ,EAAuBrwJ,MAAe,GACtCy2E,EAASz2E,MAAiB,GAChCA,MAAc,OAAQy2E,EAAOw5E,oBAAsBx5E,EAAOy5E,oBAA1DlwJ,CAA+E,WAAYqwJ,EAC/F,CAAE,CACF,SAASC,GAAuCpiJ,EAAIC,GAIlD,GAJkE,EAALD,IAC3DlO,MAAkB,EAAG,MAAO,IAC5BA,MAAc,EAAG6vJ,GAAuD,EAAG,EAAG,eAAgB,EAA9F7vJ,CAAiG,EAAGowJ,GAAsD,EAAG,EAAG,cAAe,KAAM,EAAGpwJ,OACxLA,SACO,EAALkO,EAAQ,CACV,MAAMqiJ,EAAmBvwJ,MAAe,GAClCy2E,EAASz2E,MAAiB,GAChCA,MAAc,UAAWA,MAAmB,EAAGw4H,IAAM/hD,EAAO84E,iBAC5DvvJ,MAAe,kBAAmB,UAClCA,QACAA,MAAc,OAAQy2E,EAAO84E,gBAAkB94E,EAAO+4E,gBAAtDxvJ,CAAuE,WAAYuwJ,EACvF,CAAE,CACF,SAASC,GAAiCtiJ,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC7D,MAAMsB,EAAMxP,QACZA,MAA2B,GAC3BA,MAAkB,EAAG,MAAO,EAAG,GAC/BA,MAAc,SAAU,SAAgEkU,GAAUlU,MAAiBwP,GAAM,MAAMinE,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAOg6E,kBAAkBv8I,GAAU,GACrNlU,MAAc,EAAGsuJ,GAAiD,EAAG,EAAG,eAAgB,EAAxFtuJ,CAA2F,EAAG+uJ,GAAgD,EAAG,EAAG,cAAe,KAAM,EAAG/uJ,MAA5KA,CAAuM,EAAGkvJ,GAAwC,EAAG,EAAG,MAAO,EAA/PlvJ,CAAkQ,EAAGswJ,GAAwC,EAAG,EAAG,MAAO,GAC1TtwJ,QACAA,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMwiJ,EAAoB1wJ,MAAe,GACnCy2E,EAASz2E,QACfA,QACAA,MAAcy2E,EAAOwyE,aACrBjpJ,MAAc,UAAWy2E,EAAOi1E,OAAhC1rJ,CAAwC,UAAWA,MAAmB,GAAIq4H,GAAK5hD,EAAO+/C,OAAQ//C,EAAOi5E,KAAMj5E,EAAOjS,aAClHxkE,MAAe,KAAMy2E,EAAOk6E,IAA5B3wJ,CAAiC,WAAYy2E,EAAO45C,SAApDrwH,CAA8D,eAAgB,WAA9EA,CAA0F,kBAAmB,QAC7GA,MAAa,GACbA,MAAc,OAAQy2E,EAAO+5C,iBAAmB/5C,EAAOi6C,iBAAvD1wH,CAAyE,WAAY0wJ,GACrF1wJ,MAAa,GACbA,MAAc,OAAQy2E,EAAOm6E,aAC7B5wJ,QACAA,MAAc,QAASy2E,EAAOo6E,gBAAkBp6E,EAAOq6E,aAAer6E,EAAOu4E,UACjF,CAAE,CACF,SAAS+B,GAA8D7iJ,EAAIC,GAAgB,EAALD,GAClFlO,MAAsB,EACxB,CACF,SAASgxJ,GAA+C9iJ,EAAIC,GAI1D,GAJ0E,EAALD,IACnElO,MAA2B,GAC3BA,MAAc,EAAG+wJ,GAA+D,EAAG,EAAG,eAAgB,IACtG/wJ,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAO+5C,iBAAmB/5C,EAAOi6C,iBAAnE1wH,CAAqF,0BAA2BA,MAAmB,EAAGs4H,GAAK7hD,EAAOogC,MAAO72G,MAAmB,EAAG44H,GAAMniD,EAAOw6E,OAAQx6E,EAAOy6E,gBAC/M,CAAE,CACF,SAASC,GAAgCjjJ,EAAIC,GAG3C,GAH2D,EAALD,IACpDlO,MAAgB,GAChBA,MAAc,EAAGgxJ,GAAgD,EAAG,EAAG,eAAgB,KAChF,EAAL9iJ,EAAQ,CACV,MAAMuoE,EAASz2E,QACfA,QACAA,MAAc,OAAQy2E,EAAO+5C,iBAAmB/5C,EAAOi6C,iBAC3D,CAAE,CACF,IAIM0gC,GAAQ,MAAd,MAAMA,UAAiB9kJ,GACnBuqD,KAKA,MAAI7kC,GACA,OAAO34B,KAAKs3J,GAChB,CACA,MAAI3+H,CAAGrJ,GACHtvB,KAAKs3J,IAAMhoI,CACf,CAKA,SAAIyd,GACA,OAAO/sC,KAAKqyJ,MAChB,CACA,SAAItlH,CAAMzd,GACNtvB,KAAKqyJ,OAAS/iI,CAClB,CAKA,cAAIsmD,GACA,OAAO51E,KAAK4vJ,WAChB,CACA,cAAIh6E,CAAWtmD,GACXtvB,KAAK4vJ,YAActgI,CACvB,CAKA,YAAI0nG,GACA,OAAOh3H,KAAKg4J,SAChB,CACA,YAAIhhC,CAAS1nG,GACTtvB,KAAKg4J,UAAY1oI,CACrB,CAKA,SAAIkuF,GACA,OAAOx9G,KAAK43J,MAChB,CACA,SAAIp6C,CAAMluF,GACNtvB,KAAK43J,OAAStoI,CAClB,CAKA,YAAI2oI,GACA,OAAOj4J,KAAKk4J,SAChB,CACA,YAAID,CAAS3oI,GACTtvB,KAAKk4J,UAAY5oI,CACrB,CAKA,gBAAI6oI,GACA,OAAOn4J,KAAKo4J,aAChB,CACA,gBAAID,CAAa7oI,GACbtvB,KAAKo4J,cAAgB9oI,CACzB,CAKA,eAAI+oI,GACA,OAAOr4J,KAAKs4J,YAChB,CACA,eAAID,CAAY/oI,GACZtvB,KAAKs4J,aAAehpI,CACxB,CAKA,eAAIipI,GACA,OAAOv4J,KAAKw4J,YAChB,CACA,eAAID,CAAYjpI,GACZtvB,KAAKw4J,aAAelpI,CACxB,CAKA,QAAIunB,GACA,OAAO72C,KAAKy4J,KAChB,CACA,QAAI5hH,CAAKvnB,GACLtvB,KAAKy4J,MAAQnpI,CACjB,CAKA,SAAI+d,GACA,OAAOrtC,KAAK03D,MAChB,CACA,SAAIrqB,CAAM/d,GACNtvB,KAAK03D,OAASpoC,CAClB,CAKA,eAAIopI,GACA,OAAO14J,KAAK24J,YAChB,CACA,eAAID,CAAYppI,GACZtvB,KAAK24J,aAAerpI,CACxB,CAKA,cAAIspI,GACA,OAAO54J,KAAK64J,WAChB,CACA,cAAID,CAAWtpI,GACXtvB,KAAK64J,YAAcvpI,CACvB,CAKA,UAAI6tG,GACA,OAAOn9H,KAAK84J,OAChB,CACA,UAAI37B,CAAO7tG,GACPtvB,KAAK84J,QAAUxpI,CACnB,CAKA,QAAIypI,GACA,OAAO/4J,KAAKg5J,KAChB,CACA,QAAID,CAAKzpI,GACLtvB,KAAKg5J,MAAQ1pI,CACjB,CAKA,YAAIvZ,GACA,OAAO/V,KAAK0nJ,SAChB,CACA,YAAI3xI,CAASuZ,GACTtvB,KAAK0nJ,UAAYp4H,CACrB,CAKA,kBAAIkoI,GACA,OAAOx3J,KAAKi5J,eAChB,CACA,kBAAIzB,CAAeloI,GACftvB,KAAKi5J,gBAAkB3pI,CAC3B,CAKA,WAAIylI,GACA,OAAO/0J,KAAKk5J,QAChB,CACA,WAAInE,CAAQzlI,GACRtvB,KAAKk5J,SAAW5pI,CACpB,CAKA,cAAI6pI,GACA,OAAOn5J,KAAKu3J,WAChB,CACA,cAAI4B,CAAW7pI,GACXtvB,KAAKu3J,YAAcjoI,CACvB,CAKA,cAAI8pI,GACA,OAAOp5J,KAAKy3J,WAChB,CACA,cAAI2B,CAAW9pI,GACXtvB,KAAKy3J,YAAcnoI,CACvB,CAKA,qBAAI+pI,GACA,OAAOr5J,KAAKs5J,kBAChB,CACA,qBAAID,CAAkB/pI,GAClBtvB,KAAKs5J,mBAAqBhqI,CAC9B,CAKA,WAAI+uF,GACA,OAAOr+G,KAAKq1H,QAChB,CACA,WAAIhX,CAAQ/uF,GACRtvB,KAAKq1H,SAAW/lG,CACpB,CAKA,YAAIiqI,GACA,OAAOv5J,KAAKw5J,SAChB,CACA,YAAID,CAASjqI,GACTtvB,KAAKw5J,UAAYlqI,CACrB,CAKA,WAAImqI,GACA,OAAOz5J,KAAK41J,QAChB,CACA,WAAI6D,CAAQnqI,GACRtvB,KAAK41J,SAAWtmI,CACpB,CAKA,WAAI5jB,GACA,OAAO1L,KAAKuyB,QAChB,CACA,WAAI7mB,CAAQ4jB,GACRtvB,KAAKuyB,SAAWjD,EACZA,GAAsB,iBAARA,GAEd/tB,OAAO2c,QAAQoR,GAAK/b,QAAQ,EAAEnJ,EAAGjI,KAAOnC,KAAK,IAAIoK,OAASjI,IAAMnC,KAAK,IAAIoK,KAAOjI,GAExF,CAMAu3J,WAAa,IAAIxlJ,MAMjBylJ,SAAW,IAAIzlJ,MAMf0lJ,oBAAsB,IAAI1lJ,MAC1B2lJ,iBACA9nB,iBACAulB,IACAjF,OACAzC,YACAoI,UAAY,EACZJ,OACAM,UAAY,EACZE,cACAE,aACAE,aAAe,WACfC,MAAQ,EACR/gG,OAAS,EACTihG,aAAe,GACfE,aAAc,EACdC,SAAU,EACVE,OAAQ,EACRtR,WAAY,EACZuR,iBAAkB,EAClBC,SACA3B,aAAc,EACdE,aAAc,EACd6B,mBACAjkC,SACAmkC,WAAY,EACZ5D,SACArjI,SACAojI,WAAY,EACZmE,oBACA9f,UAKA7iB,gBAKAq+B,aAKAU,eAKAU,mBACAx/B,UACAC,iBACAo+B,cACAU,gBACAU,oBACA7xF,MAAQ,EACRE,KAAO,EACP60F,KAAO,EACPC,gBAAiB,EACjB1D,mBAAqB,EACrB2D,cAAgB,EAChBC,cAAgB,CAAC,EACjBzD,UAAY,GACZX,YAAc,CAAC,EACfpE,aAAe,CAAC,EAChByI,cACAC,cACAplC,aAAc,EACdqlC,qBACAtqI,aACAuqI,cACAC,oBACAC,qBACA,YAAIpvF,GACA,MAA6B,aAAtBprE,KAAKw4J,YAChB,CACA,cAAIrtF,GACA,MAA6B,eAAtBnrE,KAAKw4J,YAChB,CACA,QAAInC,GACA,MAA6B,SAAtBr2J,KAAKw4J,YAChB,CACA,eAAItD,GACA,OAAIl1J,KAAK43J,SAAW53J,KAAK21J,UACjB31J,KAAKq2J,KACEr2J,KAAK43J,OAAOv3I,MAAMrgB,KAAK64J,YAAc,EAAI74J,KAAKglE,MAAM8vF,KAAM90J,KAAKklE,KAAK4vF,MAAM9oJ,IAAK6F,GAAU7R,KAAKk5J,SAAWrnJ,EAAOA,EAAKwO,MAAMrgB,KAAK64J,YAAc,EAAI74J,KAAKglE,MAAMuxF,KAAMv2J,KAAKklE,KAAKqxF,OAC/Kv2J,KAAKmrE,YAAcnrE,KAAKk5J,SACtBl5J,KAAK43J,OAEL53J,KAAK43J,OAAOv3I,MAAMrgB,KAAK64J,YAAc,EAAI74J,KAAKglE,MAAOhlE,KAAKklE,MAElE,EACX,CACA,cAAIu1F,GACA,OAAOz6J,KAAK21J,UAAa31J,KAAKi5J,gBAAkBj5J,KAAKy2J,UAAY,GAAMz2J,KAAKk1J,WAChF,CACA,iBAAI2C,GACA,OAAI73J,KAAKk5J,WAAal5J,KAAKq2J,MAAQr2J,KAAKmrE,YAC7BnrE,KAAK21J,WAAa31J,KAAKi5J,gBAAmBj5J,KAAKq2J,KAAOr2J,KAAKy2J,UAAU,GAAKz2J,KAAKy2J,UAAaz2J,KAAKk5J,SAAS74I,MAAMrgB,KAAKq2J,KAAOr2J,KAAKglE,MAAMuxF,KAAOv2J,KAAKglE,MAAOhlE,KAAKq2J,KAAOr2J,KAAKklE,KAAKqxF,KAAOv2J,KAAKklE,MAEhMllE,KAAKk5J,QAChB,CACAl4C,mBAAkBnB,OAAO80C,IACzB70J,YAAY09D,GACRr9D,QACAH,KAAKw9D,KAAOA,CAChB,CACArpD,WACIhU,MAAMgU,WACNnU,KAAK06J,iBACT,CACAplJ,YAAY6gH,GACRh2H,MAAMmV,YAAY6gH,GAClB,IAAIwkC,GAAmB,EACvB,GAAIxkC,EAAc9X,QAAS,CACvB,MAAQtuD,gBAAei1C,gBAAiBmxB,EAAc9X,QAClDr+G,KAAK+4J,MAAQhpG,IAAkBi1C,GAAgBA,IAAiBhlG,KAAK21J,YACrE31J,KAAK21J,UAAY3wD,EACjB21D,GAAmB,EAE3B,CAIA,GAHIxkC,EAAcoiC,cACdv4J,KAAKi6J,cAAgBj6J,KAAKq2J,KAAO,CAAE/pF,IAAK,EAAGuB,KAAM,GAAM,GAEvDsoD,EAAckjC,kBAAmB,CACjC,MAAQtpG,gBAAei1C,gBAAiBmxB,EAAckjC,kBAClDtpG,IAAkBi1C,GAAgBA,IAAiBhlG,KAAK85J,sBACxD95J,KAAK85J,oBAAsB90D,EAEnC,CACA,GAAImxB,EAAczqH,QAAS,CACvB,MAAQqkD,gBAAei1C,gBAAiBmxB,EAAczqH,QAClD1L,KAAK+4J,MAAQhpG,GAAesuD,UAAYrZ,GAAcqZ,SAAWrZ,GAAcqZ,UAAYr+G,KAAK21J,YAChG31J,KAAK21J,UAAY3wD,EAAaqZ,QAC9Bs8C,GAAmB,GAEnB5qG,GAAespG,oBAAsBr0D,GAAcq0D,mBAAqBr0D,GAAcq0D,oBAAsBr5J,KAAK85J,sBACjH95J,KAAK85J,oBAAsB90D,EAAaq0D,kBAEhD,CACIr5J,KAAKg1H,cACc2lC,IAAqBxkC,EAAc3Y,OAAOztD,eAAe1kD,SAAW8qH,EAAc3Y,OAAOxY,cAAc35F,QAAU8qH,EAAc8hC,UAAY9hC,EAAcgiC,cAAgBhiC,EAAckiC,eAEtMr4J,KAAKsmD,OACLtmD,KAAK46J,oBAGjB,CACAtjC,qBACIt3H,KAAKo3H,UAAU7jH,QAAS1B,IACpB,OAAQA,EAAK0lH,WACT,IAAK,UACDv3H,KAAKq3H,iBAAmBxlH,EAAK+C,SAC7B,MACJ,IAAK,OASL,QACI5U,KAAKy1J,cAAgB5jJ,EAAK+C,SAC1B,MARJ,IAAK,SACD5U,KAAKm2J,gBAAkBtkJ,EAAK+C,SAC5B,MACJ,IAAK,aACD5U,KAAK62J,oBAAsBhlJ,EAAK+C,SAKxC,EAER,CACAi4F,kBACI1sG,MAAM0sG,kBACN5+C,QAAQC,UAAU+jF,KAAK,KACnBjyI,KAAK66J,UAAS,EAEtB,CACAzrC,qBACSpvH,KAAKg1H,aACNh1H,KAAK66J,UAEb,CACArgJ,cACIxa,KAAK86J,uBACL96J,KAAKg6I,UAAY,KACjBh6I,KAAKg1H,aAAc,EACnB70H,MAAMqa,aACV,CACAqgJ,YACI,EAAIxrC,OAAkBrvH,KAAK8/G,cAAgB9/G,KAAKg1H,gBACxCptC,OAAU5nF,KAAK65J,kBAAkBpkF,iBACjCz1E,KAAK06J,kBACL16J,KAAK+6J,aAAa/6J,KAAKg6I,WACvBh6I,KAAKsmD,OACLtmD,KAAK+vB,gBAAey5F,OAASxpH,KAAK65J,kBAAkBpkF,eACpDz1E,KAAKs6J,iBAAgBjxC,OAAUrpH,KAAK65J,kBAAkBpkF,eACtDz1E,KAAKu6J,uBAAsB/wC,OAASxpH,KAAKg6I,WACzCh6I,KAAKw6J,wBAAuBnxC,OAAUrpH,KAAKg6I,WAC3Ch6I,KAAKg1H,aAAc,EAG/B,CACA1uE,OACStmD,KAAK0nJ,YACN1nJ,KAAKg7J,UACLh7J,KAAKi7J,mBACLj7J,KAAKk7J,gBACLl7J,KAAKm7J,qBACLn7J,KAAKmgH,GAAGgZ,gBAEhB,CACA4hC,aAAa//F,GACTh7D,KAAKg6I,UAAYh/E,GAAMh7D,KAAK+xI,kBAAkBt8D,kBAAiBsuC,OAAW/jH,KAAK65J,kBAAkBpkF,cAAe,6BACpH,CACAilF,kBACI16J,KAAKglE,MAAQhlE,KAAKq2J,KAAO,CAAEvB,KAAM,EAAGyB,KAAM,GAAM,EAChDv2J,KAAKklE,KAAOllE,KAAKq2J,KAAO,CAAEvB,KAAM,EAAGyB,KAAM,GAAM,EAC/Cv2J,KAAKs2J,mBAAqBt2J,KAAKq2J,KAAO,CAAEvB,KAAM,EAAGyB,KAAM,GAAM,EAC7Dv2J,KAAKi6J,cAAgBj6J,KAAKq2J,KAAO,CAAE/pF,IAAK,EAAGuB,KAAM,GAAM,EACvD7tE,KAAK21J,UAAY31J,KAAKq1H,WAAY,EAClCr1H,KAAK85J,oBAAsB95J,KAAKs5J,mBAChCt5J,KAAKy2J,UAAY,GACjBz2J,KAAK81J,YAAc,CAAC,EACpB91J,KAAK0xJ,aAAe,CAAC,CACzB,CACA0J,gBACI,OAAOp7J,KAAK65J,gBAChB,CACAwB,eAAer2F,GACX,OAAOv4C,KAAKG,QAAQo4C,GAAShlE,KAAKglE,OAAoC,EAA3BhlE,KAAK85J,sBAA4B95J,KAAKy4J,OAAS,GAC9F,CACA6C,cAAct2F,GACV,OAAOhlE,KAAKy4J,OAAQz4J,KAAK+5J,OAAS/5J,KAAKq7J,eAAer2F,GAAShlE,KAAKglE,MACxE,CACAu2F,SAAS7vJ,GAEL1L,KAAK65J,kBAAkBpkF,eAAe8lF,SAAS7vJ,EACnD,CACA8vJ,cAAc7mI,EAAO8mI,EAAW,QAE5B,GADcz7J,KAAKq2J,KAAO1hI,EAAMsoE,MAAO7xF,GAAMA,GAAI,GAAMupB,GAAQ,EACpD,CACP,MAAMqwC,EAAQhlE,KAAKglE,OACX0iD,YAAY,EAAGc,aAAa,GAAMxoH,KAAK65J,kBAAkBpkF,eACzD4jF,qBAAsBr5J,KAAK07J,oBAC7BC,EAAa37J,KAAK47J,qBAClB3D,EAAWj4J,KAAKi4J,SAChB4D,EAAiBA,CAAClT,GAAS,EAAGmT,KAAWnT,IAAUmT,GAAQ,EAAInT,GAC/DoT,EAAiBA,CAACC,GAAQC,GAAOC,KAAUF,GAASC,GAAQC,GAC5DX,GAAWA,CAAC1tF,GAAO,EAAGvB,GAAM,IAAMtsE,KAAKu7J,SAAS,CAAE1tF,QAAMvB,OAAKmvF,aACnE,IAAIU,GAAWn8J,KAAKq2J,KAAO,CAAEvB,KAAM,EAAGyB,KAAM,GAAM,EAC9CyD,IAAiB,EAAOoC,IAAkB,EAC1Cp8J,KAAKq2J,MACL8F,GAAW,CACPrH,KAAM+G,EAAelnI,EAAM,GAAI0kI,EAAkB,IACjD9C,KAAMsF,EAAelnI,EAAM,GAAI0kI,EAAkB,KAErDkC,GAASQ,EAAeI,GAAS5F,KAAM0B,EAAS,GAAI0D,EAAW9tF,MAAOkuF,EAAeI,GAASrH,KAAMmD,EAAS,GAAI0D,EAAWrvF,MAC5H8vF,GAAkBp8J,KAAKi6J,cAAc3tF,MAAQo7C,GAAa1nH,KAAKi6J,cAAcpsF,OAAS26C,EACtFwxC,GAAiBmC,GAASrH,OAAS9vF,EAAM8vF,MAAQqH,GAAS5F,OAASvxF,EAAMuxF,OAGzE4F,GAAWN,EAAelnI,EAAO0kI,GACjCr5J,KAAKmrE,WAAaowF,GAASQ,EAAeI,GAAUlE,EAAU0D,EAAW9tF,MAAO65C,GAAa6zC,GAAS/yC,EAAYuzC,EAAeI,GAAUlE,EAAU0D,EAAWrvF,MAChK8vF,GAAkBp8J,KAAKi6J,iBAAmBj6J,KAAKmrE,WAAaq9C,EAAad,GACzEsyC,GAAiBmC,KAAan3F,GAElChlE,KAAKg6J,eAAiBA,GACtBoC,KAAoBp8J,KAAKglE,MAAQm3F,GACrC,CACJ,CACA90C,aAAa1yF,EAAOxX,EAAIs+I,EAAW,QAC/B,GAAIt+I,EAAI,CACJ,MAAQ6nD,QAAO2gD,YAAa3lH,KAAKq8J,mBAC3Bd,EAAWA,CAAC1tF,EAAO,EAAGvB,EAAM,IAAMtsE,KAAKu7J,SAAS,CAAE1tF,OAAMvB,MAAKmvF,aAE7Da,EAAiB,WAAPn/I,EAChB,GAFyB,aAAPA,GAGd,GAAInd,KAAKq2J,KACD1wC,EAAS3gD,MAAM8vF,KAAO9vF,EAAM8vF,KAAOngI,EAAM,GACzC4mI,EAAS51C,EAAS3gD,MAAMuxF,KAAOv2J,KAAKk4J,UAAU,IAAKvyC,EAAS3gD,MAAM8vF,KAAO,GAAK90J,KAAKk4J,UAAU,IAExFvyC,EAAS3gD,MAAMuxF,KAAOvxF,EAAMuxF,KAAO5hI,EAAM,IAC9C4mI,GAAU51C,EAAS3gD,MAAMuxF,KAAO,GAAKv2J,KAAKk4J,UAAU,GAAIvyC,EAAS3gD,MAAM8vF,KAAO90J,KAAKk4J,UAAU,SAAE,GAI/FvyC,EAAS3gD,MAAQA,EAAQrwC,EAAO,CAChC,MAAM4nI,GAAO52C,EAAS3gD,MAAQ,GAAKhlE,KAAKk4J,UACxCl4J,KAAKmrE,WAAaowF,EAASgB,EAAK,GAAKhB,EAAS,EAAGgB,EACrD,UAGCD,EACL,GAAIt8J,KAAKq2J,KACD1wC,EAASzgD,KAAK4vF,KAAO9vF,EAAM8vF,MAAQngI,EAAM,GAAK,EAC9C4mI,EAAS51C,EAAS3gD,MAAMuxF,KAAOv2J,KAAKk4J,UAAU,IAAKvyC,EAAS3gD,MAAM8vF,KAAO,GAAK90J,KAAKk4J,UAAU,IAExFvyC,EAASzgD,KAAKqxF,KAAOvxF,EAAMuxF,MAAQ5hI,EAAM,GAAK,GACnD4mI,GAAU51C,EAAS3gD,MAAMuxF,KAAO,GAAKv2J,KAAKk4J,UAAU,GAAIvyC,EAAS3gD,MAAM8vF,KAAO90J,KAAKk4J,UAAU,SAAE,GAI/FvyC,EAASzgD,KAAOF,GAASrwC,EAAQ,EAAG,CACpC,MAAM4nI,GAAO52C,EAAS3gD,MAAQ,GAAKhlE,KAAKk4J,UACxCl4J,KAAKmrE,WAAaowF,EAASgB,EAAK,GAAKhB,EAAS,EAAGgB,EACrD,CAGZ,MAEIv8J,KAAKw7J,cAAc7mI,EAAO8mI,EAElC,CACAY,mBACI,MAAMG,EAA2BA,CAACC,EAAMR,IAAWA,GAASQ,EAAOhwI,KAAKG,MAAM6vI,GAAQR,GAASQ,IAAS,EACxG,IAAIC,EAAkB18J,KAAKglE,MACvB23F,EAAiB,EACrB,GAAI38J,KAAK65J,kBAAkBpkF,cAAe,CACtC,MAAQiyC,YAAWc,cAAexoH,KAAK65J,iBAAiBpkF,cACpDz1E,KAAKq2J,MACLqG,EAAkB,CACd5H,KAAM0H,EAAyB90C,EAAW1nH,KAAKk4J,UAAU,IACzD3B,KAAMiG,EAAyBh0C,EAAYxoH,KAAKk4J,UAAU,KAE9DyE,EAAiB,CACb7H,KAAM4H,EAAgB5H,KAAO90J,KAAKs2J,mBAAmBxB,KACrDyB,KAAMmG,EAAgBnG,KAAOv2J,KAAKs2J,mBAAmBC,QAKzDmG,EAAkBF,EADAx8J,KAAKmrE,WAAaq9C,EAAad,EACK1nH,KAAKk4J,WAC3DyE,EAAiBD,EAAkB18J,KAAKs2J,mBAEhD,CACA,MAAO,CACHtxF,MAAOhlE,KAAKglE,MACZE,KAAMllE,KAAKklE,KACXygD,SAAU,CACN3gD,MAAO03F,EACPx3F,KAAMy3F,GAGlB,CACAjB,oBACI,MAAMC,EAAa37J,KAAK47J,qBAClBgB,GAAgB58J,KAAK65J,kBAAkBpkF,cAAgBz1E,KAAK65J,iBAAiBpkF,cAAcwvC,YAAc02C,EAAW9tF,KAAO,IAAM,EACjIgvF,GAAiB78J,KAAK65J,kBAAkBpkF,cAAgBz1E,KAAK65J,iBAAiBpkF,cAAcyvC,aAAey2C,EAAWrvF,IAAM,IAAM,EAClIwwF,EAA8BA,CAACC,EAAc7E,IAAeA,GAAa6E,EAAetwI,KAAKkzE,KAAKo9D,GAAgB7E,GAAa6E,IAAiB,EAChJC,EAA8BC,GAAcxwI,KAAKkzE,KAAKs9D,EAAY,GAClE3G,EAAqBt2J,KAAKq2J,KAC1B,CACEvB,KAAMgI,EAA4BD,EAAe78J,KAAKk4J,UAAU,IAChE3B,KAAMuG,EAA4BF,EAAc58J,KAAKk4J,UAAU,KAEjE4E,EAA4B98J,KAAKmrE,WAAayxF,EAAeC,EAAe78J,KAAKk4J,WAEvF,MAAO,CAAE5B,qBAAoB+C,kBADHr5J,KAAK85J,sBAAwB95J,KAAKq2J,KAAO,CAAC2G,EAA2B1G,EAAmBxB,MAAOkI,EAA2B1G,EAAmBC,OAASyG,EAA2B1G,IAE/M,CACA2E,mBACI,MAAQ3E,qBAAoB+C,qBAAsBr5J,KAAK07J,oBACjDwB,EAAgBA,CAAClB,EAAQmB,EAAMrB,EAAOsB,GAAU,IAAUp9J,KAAKq9J,QAAQrB,EAASmB,GAAQnB,EAASF,EAAQ,EAAI,GAAKA,EAAOsB,GACzHp4F,EAAQhlE,KAAKglE,MACbE,EAAOllE,KAAKq2J,KACZ,CACEvB,KAAMoI,EAAcl9J,KAAKglE,MAAM8vF,KAAMwB,EAAmBxB,KAAMuE,EAAkB,IAChF9C,KAAM2G,EAAcl9J,KAAKglE,MAAMuxF,KAAMD,EAAmBC,KAAM8C,EAAkB,IAAI,IAEtF6D,EAAcl9J,KAAKglE,MAAOsxF,EAAoB+C,GACpDr5J,KAAKklE,KAAOA,EACZllE,KAAKs2J,mBAAqBA,EAC1Bt2J,KAAK85J,oBAAsBT,EACvBr5J,KAAKo5J,aACLp5J,KAAKy2J,UAAYz2J,KAAKq2J,KAAO54I,MAAMR,KAAK,CAAE5R,OAAQirJ,EAAmBxB,OAAQ9oJ,IAAI,IAAMyR,MAAMR,KAAK,CAAE5R,OAAQirJ,EAAmBC,QAAW94I,MAAMR,KAAK,CAAE5R,OAAQirJ,KAE/Jt2J,KAAKg5J,OACL/qG,QAAQC,UAAU+jF,KAAK,KACnBjyI,KAAKk6J,cAAgB,CACjBl1F,MAAOhlE,KAAKy4J,MAASz4J,KAAKq2J,KAAO,CAAEvB,KAAM,EAAGyB,KAAMvxF,EAAMuxF,MAAS,EAAKvxF,EACtEE,KAAMz4C,KAAKw+D,IAAIjrF,KAAKy4J,MAAQz4J,KAAKy4J,MAAQz4J,KAAKklE,KAAMllE,KAAKw9G,MAAMnyG,SAEnErL,KAAKk0J,aAAa,aAAcl0J,KAAKk6J,cAAa,EAG9D,CACAU,oBACQ56J,KAAKw5J,YAAcx5J,KAAK21J,WACxB1nG,QAAQC,UAAU+jF,KAAK,KACnB,GAAIjyI,KAAKg6I,UAAW,CAChBh6I,KAAKg6I,UAAUjtG,MAAMgnC,UAAY/zE,KAAKg6I,UAAUjtG,MAAM64B,SAAW,OACjE5lE,KAAKg6I,UAAUjtG,MAAM6gC,SAAW,WAChC5tE,KAAK65J,iBAAiBpkF,cAAc1oC,MAAMuwH,QAAU,OACpD,MAAOV,EAAcC,GAAiB,IAACrzC,OAASxpH,KAAKg6I,YAAS,EAAG3wB,OAAUrpH,KAAKg6I,YAChF4iB,IAAiB58J,KAAKu6J,sBAAwBv6J,KAAK65J,iBAAiBpkF,cAAc1oC,MAAMxe,MAAQ,IAChGsuI,IAAkB78J,KAAKw6J,uBAAyBx6J,KAAK65J,iBAAiBpkF,cAAc1oC,MAAMze,OAAS,IACnG,MAAOC,EAAOD,GAAU,IAACk7F,OAASxpH,KAAK65J,iBAAiBpkF,gBAAa,EAAG4zC,OAAUrpH,KAAK65J,iBAAiBpkF,iBACvGz1E,KAAKq2J,MAAQr2J,KAAKmrE,cAAgBnrE,KAAK65J,iBAAiBpkF,cAAc1oC,MAAMxe,MAAQA,EAAQvuB,KAAK+vB,aAAexB,EAAQ,KAAOvuB,KAAKs4J,cAAgBt4J,KAAK+vB,aAAe,OACxK/vB,KAAKq2J,MAAQr2J,KAAKorE,YAAcprE,KAAK65J,iBAAiBpkF,cAAc1oC,MAAMze,OAASA,EAAStuB,KAAKs6J,cAAgBhsI,EAAS,KAAOtuB,KAAKo4J,eAAiBp4J,KAAKs6J,cAAgB,MAC7Kt6J,KAAKg6I,UAAUjtG,MAAMgnC,UAAY/zE,KAAKg6I,UAAUjtG,MAAM64B,SAAW,GACjE5lE,KAAKg6I,UAAUjtG,MAAM6gC,SAAW,GAChC5tE,KAAK65J,iBAAiBpkF,cAAc1oC,MAAMuwH,QAAU,EACxD,GAGZ,CACAD,QAAQn4F,EAAO,EAAGq4F,GAAS,GACvB,OAAOv9J,KAAK43J,OAASnrI,KAAKw+D,IAAIsyE,GAAUv9J,KAAKk5J,UAAYl5J,KAAK43J,OAAO,IAAIvsJ,OAASrL,KAAK43J,OAAOvsJ,OAAQ65D,GAAQ,CAClH,CACA02F,qBACI,GAAI57J,KAAKg6I,UAAW,CAChB,MAAMjtG,EAAQ6F,iBAAiB5yC,KAAKg6I,WAC9BnsE,EAAOtqD,WAAWwpB,EAAMi8E,aAAev8F,KAAKsqB,IAAIxzB,WAAWwpB,EAAM8gC,OAAS,EAAG,GAC7EC,EAAQvqD,WAAWwpB,EAAMk8E,cAAgBx8F,KAAKsqB,IAAIxzB,WAAWwpB,EAAM+gC,QAAU,EAAG,GAChFxB,EAAM/oD,WAAWwpB,EAAMw/B,YAAc9/C,KAAKsqB,IAAIxzB,WAAWwpB,EAAMu/B,MAAQ,EAAG,GAC1EyB,EAASxqD,WAAWwpB,EAAMy/B,eAAiB//C,KAAKsqB,IAAIxzB,WAAWwpB,EAAMghC,SAAW,EAAG,GACzF,MAAO,CAAEF,OAAMC,QAAOxB,MAAKyB,SAAQzgE,EAAGugE,EAAOC,EAAOqM,EAAG7N,EAAMyB,EACjE,CACA,MAAO,CAAEF,KAAM,EAAGC,MAAO,EAAGxB,IAAK,EAAGyB,OAAQ,EAAGzgE,EAAG,EAAG6sE,EAAG,EAC5D,CACA6gF,UACI,GAAIh7J,KAAK65J,kBAAkBpkF,cAAe,CACtC,MAAMqvC,EAAgB9kH,KAAK65J,iBAAiBpkF,cAAcqvC,cAAcA,cAClEv2F,EAAQvuB,KAAKs4J,cAAgB,GAAGt4J,KAAK65J,iBAAiBpkF,cAAcwvC,aAAeH,EAAcG,gBACjG32F,EAAStuB,KAAKo4J,eAAiB,GAAGp4J,KAAK65J,iBAAiBpkF,cAAcyvC,cAAgBJ,EAAcI,iBACpGs4C,EAAUA,CAACj7J,EAAOk7J,IAAYz9J,KAAK65J,iBAAiBpkF,cAAc1oC,MAAMxqC,GAASk7J,EACnFz9J,KAAKq2J,MAAQr2J,KAAKmrE,YAClBqyF,EAAQ,SAAUlvI,GAClBkvI,EAAQ,QAASjvI,IAGjBivI,EAAQ,SAAUlvI,EAE1B,CACJ,CACA4sI,gBACI,GAAIl7J,KAAK43J,OAAQ,CACb,MAAM+D,EAAa37J,KAAK47J,qBAClB4B,EAAUA,CAACj7J,EAAOk7J,EAAQxB,EAAOC,EAAQ,IAAOl8J,KAAK81J,YAAc,IAClE91J,KAAK81J,YACH,CAAC,GAAGvzJ,MAAWk7J,GAAU,IAAIpyJ,OAAS4wJ,EAAQC,EAAQ,MAE3Dl8J,KAAKq2J,MACLmH,EAAQ,SAAUx9J,KAAK43J,OAAQ53J,KAAKk4J,UAAU,GAAIyD,EAAWxhF,GAC7DqjF,EAAQ,QAASx9J,KAAKk5J,UAAYl5J,KAAK43J,OAAO,GAAI53J,KAAKk4J,UAAU,GAAIyD,EAAWruJ,IAGhFtN,KAAKmrE,WAAaqyF,EAAQ,QAASx9J,KAAKk5J,UAAYl5J,KAAK43J,OAAQ53J,KAAKk4J,UAAWyD,EAAWruJ,GAAKkwJ,EAAQ,SAAUx9J,KAAK43J,OAAQ53J,KAAKk4J,UAAWyD,EAAWxhF,EAEnK,CACJ,CACAujF,mBAAmBnB,GACf,GAAIv8J,KAAKg6I,YAAch6I,KAAK64J,YAAa,CACrC,MAAM7zF,EAAQu3F,EAAMA,EAAIv3F,MAAQhlE,KAAKglE,MAC/B24F,EAAwBA,CAAC3B,EAAQC,IAAUD,EAASC,EACpD2B,EAAeA,CAACC,EAAK,EAAGC,EAAK,IAAO99J,KAAK0xJ,aAAe,IAAK1xJ,KAAK0xJ,aAAmBlyD,UAAW,eAAeq+D,QAASC,WAC9H,GAAI99J,KAAKq2J,KACLuH,EAAaD,EAAsB34F,EAAMuxF,KAAMv2J,KAAKk4J,UAAU,IAAKyF,EAAsB34F,EAAM8vF,KAAM90J,KAAKk4J,UAAU,SAEnH,CACD,MAAM6F,EAAeJ,EAAsB34F,EAAOhlE,KAAKk4J,WACvDl4J,KAAKmrE,WAAayyF,EAAaG,EAAc,GAAKH,EAAa,EAAGG,EACtE,CACJ,CACJ,CACAC,uBAAuBh2J,GACnB,MAAMg3C,EAASh3C,EAAMg3C,OACf28G,EAAa37J,KAAK47J,qBAClBqC,EAAqBA,CAACxB,GAAMP,KAAWO,GAAQA,GAAOP,GAAQO,GAAOP,GAAQO,GAAQ,EACrFyB,EAAwBA,CAACzB,GAAMR,KAAWA,IAASQ,GAAOhwI,KAAKG,MAAM6vI,IAAQR,IAASQ,KAAS,EAC/F0B,EAAwBA,CAACC,GAAepC,GAAQqC,GAAOlB,GAAMrB,GAAOwC,KAC/DF,IAAiBtC,GAAQA,GAAQwC,GAAuBD,GAAQlB,GAAOrB,GAAQE,GAASF,GAAQ,EAErGD,EAAiBA,CAACuC,GAAeG,GAAevC,GAAQqC,GAAOlB,GAAMrB,GAAOwC,KAC1EF,IAAiBtC,GACV,EAEArvI,KAAKsqB,IAAI,EAAGunH,GAAwBF,GAAgBG,GAAgBvC,GAASoC,GAAgBtC,GAASsC,GAAgBG,GAAgBvC,GAASoC,GAAgB,EAAItC,IAE5KoB,EAAgBA,CAACkB,GAAepC,GAAQqC,GAAOlB,GAAMrB,GAAOsB,IAAU,KACxE,IAAInV,GAAY+T,GAASmB,GAAO,EAAIrB,GACpC,OAAIsC,IAAiBtC,KACjB7T,IAAa6T,GAAQ,GAElB97J,KAAKq9J,QAAQpV,GAAWmV,GAAO,EAEpC11C,EAAYu2C,EAAmBj/G,EAAO0oE,UAAWi0C,EAAWrvF,KAC5Dk8C,EAAay1C,EAAmBj/G,EAAOwpE,WAAYmzC,EAAW9tF,MACpE,IAAIsuF,EAAWn8J,KAAKq2J,KAAO,CAAEvB,KAAM,EAAGyB,KAAM,GAAM,EAC9CiI,GAAUx+J,KAAKklE,KACf80F,IAAiB,EACjByE,GAAez+J,KAAKi6J,cACxB,GAAIj6J,KAAKq2J,KAAM,CACX,MAAMqI,GAAe1+J,KAAKi6J,cAAc3tF,KAAOo7C,EACzCi3C,GAAgB3+J,KAAKi6J,cAAcpsF,MAAQ26C,EACjD,IAAKxoH,KAAK64J,aAAgB74J,KAAK64J,cAAgB6F,IAAgBC,IAAiB,CAC5E,MAAMC,GAAe,CACjB9J,KAAMoJ,EAAsBx2C,EAAW1nH,KAAKk4J,UAAU,IACtD3B,KAAM2H,EAAsB11C,EAAYxoH,KAAKk4J,UAAU,KAErD2G,GAAe,CACjB/J,KAAMqJ,EAAsBS,GAAa9J,KAAM90J,KAAKglE,MAAM8vF,KAAM90J,KAAKklE,KAAK4vF,KAAM90J,KAAKs2J,mBAAmBxB,KAAM90J,KAAK85J,oBAAoB,GAAI4E,IAC3InI,KAAM4H,EAAsBS,GAAarI,KAAMv2J,KAAKglE,MAAMuxF,KAAMv2J,KAAKklE,KAAKqxF,KAAMv2J,KAAKs2J,mBAAmBC,KAAMv2J,KAAK85J,oBAAoB,GAAI6E,KAE/IxC,EAAW,CACPrH,KAAM+G,EAAe+C,GAAa9J,KAAM+J,GAAa/J,KAAM90J,KAAKglE,MAAM8vF,KAAM90J,EAAgBA,EAA8BA,KAAK85J,oBAAoB,GAAI4E,IACvJnI,KAAMsF,EAAe+C,GAAarI,KAAMsI,GAAatI,KAAMv2J,KAAKglE,MAAMuxF,KAAMv2J,EAAgBA,EAA8BA,KAAK85J,oBAAoB,GAAI6E,KAE3JH,GAAU,CACN1J,KAAMoI,EAAc0B,GAAa9J,KAAMqH,EAASrH,KAAM90J,EAAgBA,KAAKs2J,mBAAmBxB,KAAM90J,KAAK85J,oBAAoB,IAC7HvD,KAAM2G,EAAc0B,GAAarI,KAAM4F,EAAS5F,KAAMv2J,EAAgBA,KAAKs2J,mBAAmBC,KAAMv2J,KAAK85J,oBAAoB,IAAI,IAErIE,GAAiBmC,EAASrH,OAAS90J,KAAKglE,MAAM8vF,MAAQ0J,GAAQ1J,OAAS90J,KAAKklE,KAAK4vF,MAAQqH,EAAS5F,OAASv2J,KAAKglE,MAAMuxF,MAAQiI,GAAQjI,OAASv2J,KAAKklE,KAAKqxF,MAAQv2J,KAAKg6J,eACtKyE,GAAe,CAAEnyF,IAAKo7C,EAAW75C,KAAM26C,EAC3C,CACJ,KACK,CACD,MAAMs2C,GAAY9+J,KAAKmrE,WAAaq9C,EAAad,EAC3Cq3C,GAAsB/+J,KAAKi6J,eAAiB6E,GAClD,IAAK9+J,KAAK64J,aAAgB74J,KAAK64J,aAAekG,GAAsB,CAChE,MAAMH,GAAeV,EAAsBY,GAAW9+J,KAAKk4J,WAE3DiE,EAAWN,EAAe+C,GADLT,EAAsBS,GAAc5+J,KAAKglE,MAAOhlE,KAAKklE,KAAMllE,KAAKs2J,mBAAoBt2J,KAAK85J,oBAAqBiF,IAC7E/+J,KAAKglE,MAAOhlE,EAAWA,EAAyBA,KAAK85J,oBAAqBiF,IAChIP,GAAUtB,EAAc0B,GAAczC,EAAUn8J,EAAWA,KAAKs2J,mBAAoBt2J,KAAK85J,qBACzFE,GAAiBmC,IAAan8J,KAAKglE,OAASw5F,KAAYx+J,KAAKklE,MAAQllE,KAAKg6J,eAC1EyE,GAAeK,EACnB,CACJ,CACA,MAAO,CACH95F,MAAOm3F,EACPj3F,KAAMs5F,GACNxE,kBACA8E,UAAWL,GAEnB,CACAO,eAAeh3J,GACX,MAAQg9D,QAAOE,OAAM80F,iBAAgB8E,aAAc9+J,KAAKg+J,uBAAuBh2J,GAC/E,GAAIgyJ,EAAgB,CAChB,MAAMiF,EAAW,CAAEj6F,QAAOE,QAM1B,GALAllE,KAAK09J,mBAAmBuB,GACxBj/J,KAAKglE,MAAQA,EACbhlE,KAAKklE,KAAOA,EACZllE,KAAKi6J,cAAgB6E,EACrB9+J,KAAKk0J,aAAa,sBAAuB+K,GACrCj/J,KAAKg5J,OAASh5J,KAAKs7J,cAAct2F,GAAQ,CACzC,MAAMk1F,EAAgB,CAClBl1F,MAAOhlE,KAAKy4J,MAAQhsI,KAAKw+D,IAAIjrF,KAAKq7J,eAAer2F,GAAShlE,KAAKy4J,MAAOz4J,KAAKw9G,MAAMnyG,OAASrL,KAAKy4J,OAASzzF,EACxGE,KAAMz4C,KAAKw+D,IAAIjrF,KAAKy4J,OAASz4J,KAAKq7J,eAAer2F,GAAS,GAAKhlE,KAAKy4J,MAAQvzF,EAAMllE,KAAKw9G,MAAMnyG,UAEtErL,KAAKk6J,cAAcl1F,QAAUk1F,EAAcl1F,OAAShlE,KAAKk6J,cAAch1F,OAASg1F,EAAch1F,OACnGllE,KAAKk0J,aAAa,aAAcgG,GACtDl6J,KAAKk6J,cAAgBA,CACzB,CACJ,CACJ,CACA9C,kBAAkBpvJ,GAEd,GADAhI,KAAKk0J,aAAa,WAAY,CAAE/b,cAAenwI,IAC3ChI,KAAK03D,QAAU13D,KAAKs7J,gBAAiB,CAIrC,GAHIt7J,KAAKm6J,eACLt3H,aAAa7iC,KAAKm6J,gBAEjBn6J,KAAK21J,WAAa31J,KAAKo5J,WAAY,CACpC,MAAQY,kBAAmBh6J,KAAKg+J,uBAAuBh2J,IACvCgyJ,GAAmBh6J,KAAKy4J,OAAQz4J,KAAKs7J,mBAEjDt7J,KAAK21J,WAAY,EACjB31J,KAAKmgH,GAAGgZ,gBAEhB,CACAn5H,KAAKm6J,cAAgB3kJ,WAAW,KAC5BxV,KAAKg/J,eAAeh3J,GAChBhI,KAAK21J,WAAa31J,KAAKo5J,cAAgBp5J,KAAKg5J,YAA2B13J,IAAlBtB,KAAKq1H,YAC1Dr1H,KAAK21J,WAAY,EACjB31J,KAAK+5J,KAAO/5J,KAAKq7J,kBAErBr7J,KAAKmgH,GAAGgZ,eAAc,EACvBn5H,KAAK03D,OACZ,MAEK13D,KAAK21J,WAAa31J,KAAKg/J,eAAeh3J,EAE/C,CACAmzJ,sBACI,EAAI9rC,OAAkBrvH,KAAK8/G,cAClB9/G,KAAKq6J,sBACNr6J,KAAKw9D,KAAKX,kBAAkB,KACxB,MAAMtyC,EAASvqB,KAAKiL,SAASgnH,YACvBjqH,KAAQ2iH,SAAkB,oBAAsB,SACtD3qH,KAAKq6J,qBAAuBr6J,KAAKq8D,SAAStW,OAAOx7B,EAAQviB,EAAOhI,KAAKs/I,eAAe55C,KAAK1lG,MAAK,GAI9G,CACA86J,uBACQ96J,KAAKq6J,uBACLr6J,KAAKq6J,uBACLr6J,KAAKq6J,qBAAuB,KAEpC,CACA/a,iBACQt/I,KAAKo6J,eACLv3H,aAAa7iC,KAAKo6J,eAEtBp6J,KAAKo6J,cAAgB5kJ,WAAW,KAC5B,MAAIoyE,OAAU5nF,KAAK65J,kBAAkBpkF,eAAgB,CACjD,MAAOlnD,EAAOD,GAAU,IAACk7F,OAASxpH,KAAK65J,kBAAkBpkF,gBAAa,EAAG4zC,OAAUrpH,KAAK65J,kBAAkBpkF,iBACnGypF,EAAaC,GAAgB,CAAC5wI,IAAUvuB,KAAK+vB,aAAczB,IAAWtuB,KAAKs6J,gBACnEt6J,KAAKq2J,KAAO6I,GAAeC,EAAen/J,KAAKmrE,WAAa+zF,EAAcl/J,KAAKorE,UAAW+zF,IAErGn/J,KAAKw9D,KAAKd,IAAI,KACV18D,KAAK85J,oBAAsB95J,KAAKs5J,mBAChCt5J,KAAK+vB,aAAexB,EACpBvuB,KAAKs6J,cAAgBhsI,EACrBtuB,KAAKu6J,uBAAsB/wC,OAASxpH,KAAKg6I,WACzCh6I,KAAKw6J,wBAAuBnxC,OAAUrpH,KAAKg6I,WAC3Ch6I,KAAKsmD,MAAK,EAEtB,GACDtmD,KAAK24J,aACZ,CACAzE,aAAa5xJ,EAAM2tC,GAEf,OAAOjwC,KAAK0L,SAAW1L,KAAK0L,QAAQpJ,GAAQtC,KAAK0L,QAAQpJ,GAAM2tC,GAAUjwC,KAAKsC,GAAM+R,KAAK47B,EAC7F,CACAklH,oBACI,MAAO,CACH1D,kBAAmB,8BAA6BzxJ,KAAK21J,UAAY,4BAA8B,IAC/Fn4C,MAAOx9G,KAAKk1J,YACZkK,eAAiBzqI,GAAU30B,KAAKkpJ,WAAWv0H,GAC3C0pF,QAASr+G,KAAK21J,UACdS,iBAAkBA,CAACzhI,EAAOjpB,IAAY1L,KAAKo2J,iBAAiBzhI,EAAOjpB,GACnEusJ,SAAUj4J,KAAKk4J,UACfpD,KAAM90J,KAAKy6J,WACX1F,QAAS/0J,KAAK63J,cACd/B,YAAa91J,KAAK81J,YAClBpE,aAAc1xJ,KAAK0xJ,aACnBtmF,SAAUprE,KAAKorE,SACfD,WAAYnrE,KAAKmrE,WACjBkrF,KAAMr2J,KAAKq2J,KAEnB,CACAnN,WAAWmW,GACP,MAAMzrI,GAAS5zB,KAAK43J,QAAU,IAAIvsJ,OAC5BspB,EAAQ30B,KAAKq2J,KAAOr2J,KAAKglE,MAAM8vF,KAAOuK,EAAgBr/J,KAAKglE,MAAQq6F,EACzE,MAAO,CACH1qI,QACAf,QACAoxC,MAAiB,IAAVrwC,EACPuwC,KAAMvwC,IAAUf,EAAQ,EACxB0rI,KAAM3qI,EAAQ,GAAM,EACpB4qI,IAAK5qI,EAAQ,GAAM,EAE3B,CACAyhI,iBAAiBzhI,EAAO6qI,GACpB,MAAM5rI,EAAQ5zB,KAAKy2J,UAAUprJ,OAC7B,MAAO,CACHspB,QACAf,QACAoxC,MAAiB,IAAVrwC,EACPuwC,KAAMvwC,IAAUf,EAAQ,EACxB0rI,KAAM3qI,EAAQ,GAAM,EACpB4qI,IAAK5qI,EAAQ,GAAM,KAChB6qI,EAEX,CACA7/C,iBAAc,SAA0BvhF,GAAqB,OAAO,IAAKA,GAAqB25H,GAAUpxJ,MAAqBA,OAAa,EAC1Ig5G,iBAA4Bh5G,MAAqB,CAAE3D,KAAM+0J,EAAUzjJ,UAAW,CAAC,CAAC,cAAe,CAAC,qBAAsB,CAAC,sBAAuB,CAAC,sBAAuBuiH,eAAgB,SAAiChiH,EAAIC,EAAKgiH,GAM1N,GAN+O,EAALjiH,IACxOlO,MAAkBmwH,EAAU7hH,GAAK,GACjCtO,MAAkBmwH,EAAU7/G,GAAK,GACjCtQ,MAAkBmwH,EAAUhE,GAAK,GACjCnsH,MAAkBmwH,EAAU/D,GAAK,GACjCpsH,MAAkBmwH,EAAUa,MAAe,IACpC,EAAL9iH,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAIqiH,gBAAkBS,EAAG5yD,OACtEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI0gJ,aAAe59B,EAAG5yD,OACnEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIohJ,eAAiBt+B,EAAG5yD,OACrEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI8hJ,mBAAqBh/B,EAAG5yD,OACzEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIsiH,UAAYQ,EACjE,CAAE,EAAG3hH,UAAW,SAAwBpB,EAAIC,GAG1C,GAH0D,EAALD,IACnDlO,MAAeqsH,GAAK,GACpBrsH,MAAesO,GAAK,IACb,EAALJ,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAI+kJ,iBAAmBjiC,EAAG5yD,OACvEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIi9H,iBAAmBna,EAAG5yD,MAC3E,CAAE,EAAGzwD,OAAQ,CAAEokB,GAAI,KAAMoU,MAAO,QAAS6oC,WAAY,aAAcohD,SAAU,WAAYxZ,MAAO,QAASy6C,SAAU,WAAYE,aAAc,eAAgBE,YAAa,cAAeE,YAAa,cAAe1hH,KAAM,OAAQxJ,MAAO,QAASqrH,YAAa,cAAeE,WAAY,aAAcz7B,OAAQ,SAAU47B,KAAM,OAAQhjJ,SAAU,WAAYyhJ,eAAgB,iBAAkBzC,QAAS,UAAWoE,WAAY,aAAcC,WAAY,aAAcC,kBAAmB,oBAAqBh7C,QAAS,UAAWk7C,SAAU,WAAYE,QAAS,UAAW/tJ,QAAS,WAAa8I,QAAS,CAAEklJ,WAAY,aAAcC,SAAU,WAAYC,oBAAqB,uBAAyBt2C,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACguJ,KAAiBhuJ,MAA+BA,MAAyBA,OAAyBqvE,mBAAoB+oD,GAAKtqH,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,oBAAqB,IAAK,CAAC,UAAW,IAAK,CAAC,iBAAkB,IAAK,CAAC,UAAW,IAAK,CAAC,gBAAiB,IAAK,CAAC,oBAAqB,IAAK,CAAC,EAAG,OAAQ,YAAa,CAAC,EAAG,SAAU,UAAW,WAAY,CAAC,QAAS,2BAA4B,EAAG,UAAW,EAAG,QAAS,CAAC,QAAS,2BAA4B,EAAG,UAAW,EAAG,QAAS,CAAC,EAAG,mBAAoB,2BAA4B,CAAC,EAAG,4BAA6B,EAAG,UAAW,WAAY,CAAC,EAAG,QAAS,UAAW,gBAAiB,CAAC,EAAG,2BAA4B,EAAG,WAAY,CAAC,EAAG,2BAA4B,EAAG,WAAY,CAAC,EAAG,QAAS,WAAY,CAAC,EAAG,cAAe,CAAC,EAAG,SAAUC,SAAU,SAA2BC,EAAIC,GAGrhD,GAHqiD,EAALD,IAC9hDlO,QACAA,MAAc,EAAGwwJ,GAAkC,EAAG,GAAI,eAAgB,EAA1ExwJ,CAA6E,EAAGmxJ,GAAiC,EAAG,EAAG,cAAe,KAAM,EAAGnxJ,QACxI,EAALkO,EAAQ,CACV,MAAM4qJ,EAAuB94J,MAAe,GAC5CA,MAAc,QAASmO,EAAI4yI,UAA3B/gJ,CAAsC,WAAY84J,EACtD,CAAE,EAAGnvC,aAAc,CAACxxF,MAAcl4B,MAAYA,MAAYA,MAASA,MAAqBA,MAAY0qH,GAAaxwF,OAAeyvF,cAAe,IACtJ,OAp8BKwnC,CAAQ,KA0lCR2H,GAAc,MAApB,MAAMA,EACF//C,iBAAc,SAAgCvhF,GAAqB,OAAO,IAAKA,GAAqBshI,EAAmB,EACvH//C,iBAA4Bh5G,KAAoB,CAAE3D,KAAM08J,IACxD//C,iBAA4Bh5G,MAAoB,CAAE43B,QAAS,CAACw5H,GAAUj3H,MAAcA,SACvF,OAJK4+H,CAAc,KCn2CpB,MAAMjwC,GAAQA,EAAG9O,QAAS,+EAITA,EAAG,oFAKHA,EAAG,+EAKLA,EAAG,0HAMAA,EAAG,sCACRA,EAAG,mCACDA,EAAG,wCACAA,EAAG,0CACAA,EAAG,yRAeIA,EAAG,0CACXA,EAAG,qBAAqBA,EAAG,qBAAqBA,EAAG,iDAC7CA,EAAG,4HAMDA,EAAG,0CACXA,EAAG,uBAAuBA,EAAG,qBAAqBA,EAAG,8CAChDA,EAAG,8HAMCA,EAAG,0CACZA,EAAG,qBAAqBA,EAAG,uBAAuBA,EAAG,6CACjDA,EAAG,oDACAA,EAAG,8HAMDA,EAAG,4CACVA,EAAG,qBAAqBA,EAAG,qBAAqBA,EAAG,6CACjDA,EAAG,oDACAA,EAAG,8BAGxBtrG,GAAU,CACZi6C,KAAM,wBACNqwG,MAAO,kBACPn4J,KAAM,kBACR,IACIo4J,GAAY,MAAlB,MAAMA,UAAqBlgD,KACvBp9G,KAAO,UACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAIkgD,EAA2B,OAAO,SAA8BzhI,GAAqB,OAAQyhI,IAA8BA,EAA4Bl5J,MAAyBi5J,KAAgBxhI,GAAqBwhI,EAAe,CAAG,EAAnP,GAC7BjgD,kBAA6Bh5G,MAAsB,CAAE0e,MAAOu6I,EAAcz4J,QAASy4J,EAAax4J,YACnG,OANKw4J,CAAY,KAuCZE,GAAO,MAAb,MAAMA,UAAgB7sJ,GAClBuqD,KACAuiG,cAKAC,gBAKAC,aAAe,QAKf37C,SAKA47C,cAKAC,kBAKAC,cAKAC,QAAS,EAKTC,UAKAC,UAKAC,KAKAC,YAKAC,aAKAC,UAAW,EAKXC,YAAa,EAKbnM,cAAe,EAKf5yF,QAMA,YAAI9rD,GACA,OAAO/V,KAAK0nJ,SAChB,CACA,YAAI3xI,CAASuZ,GACTtvB,KAAK0nJ,UAAYp4H,EACjBtvB,KAAK6gK,YACT,CAKAC,eACAC,gBAAkB,CACdC,aAAc,KACdhB,gBAAiB,QACjBC,aAAc,QACd37C,SAAU,OACV47C,cAAe,KACfC,kBAAmB,KACnBC,cAAe,OACfC,QAAQ,EACRtqJ,SAAU,KACVuqJ,UAAW,KACXC,UAAW,KACXE,YAAa,KACbC,aAAc,KACdF,KAAM,KACNG,UAAU,EACVlM,cAAc,EACd97H,MAAIuoF,OAAK,UAAY,YAEzBwmC,UACAtxC,UACAxgC,WACAqyB,YACAzrE,YACAykI,YACAt0F,OACAu0F,mBACAC,mBACAC,4BACAC,cACAC,cACAC,aACAC,uBACAruB,cACAsuB,eACAzgD,mBAAkBnB,OAAO+/C,IACzB8B,uBAAwB,EACxB5hK,YAAY09D,EAAMuiG,GACd5/J,QACAH,KAAKw9D,KAAOA,EACZx9D,KAAK+/J,cAAgBA,CACzB,CACAlzD,kBACI1sG,MAAM0sG,mBAAgB,EAClBwiB,OAAkBrvH,KAAK8/G,aACvB9/G,KAAKw9D,KAAKX,kBAAkB,KACxB,MAAMojG,EAAejgK,KAAK2hK,UAAU,gBASpC,IARqB,UAAjB1B,GAA6C,SAAjBA,KAC5BjgK,KAAKkhK,mBAAqBlhK,KAAKw7E,aAAakqB,KAAK1lG,MACjDA,KAAKmhK,mBAAqBnhK,KAAKy7E,aAAaiqB,KAAK1lG,MACjDA,KAAKqhK,cAAgBrhK,KAAKsiI,aAAa58B,KAAK1lG,MAC5CA,KAAKg7D,GAAGya,cAAcxd,iBAAiB,aAAcj4D,KAAKkhK,oBAC1DlhK,KAAKg7D,GAAGya,cAAcxd,iBAAiB,QAASj4D,KAAKqhK,eACrDrhK,KAAKg7D,GAAGya,cAAcxd,iBAAiB,aAAcj4D,KAAKmhK,qBAEzC,UAAjBlB,GAA6C,SAAjBA,EAAyB,CACrDjgK,KAAKshK,cAAgBthK,KAAK8+G,QAAQpZ,KAAK1lG,MACvCA,KAAKuhK,aAAevhK,KAAK++G,OAAOrZ,KAAK1lG,MACrC,IAAIg/C,EAASh/C,KAAKg7D,GAAGya,cAAc9oC,cAAc,gBAC5CqS,IACDA,EAASh/C,KAAK4hK,UAAU5hK,KAAKg7D,GAAGya,gBAEpCz2B,EAAOiZ,iBAAiB,QAASj4D,KAAKshK,eACtCtiH,EAAOiZ,iBAAiB,OAAQj4D,KAAKuhK,aACzC,GAGZ,CACAjsJ,YAAYwzI,GACR3oJ,MAAMmV,YAAYwzI,GACdA,EAAakX,iBACbhgK,KAAK6hK,UAAU,CAAE7B,gBAAiBlX,EAAakX,gBAAgBh7D,eAE/D8jD,EAAamX,cACbjgK,KAAK6hK,UAAU,CAAE5B,aAAcnX,EAAamX,aAAaj7D,eAEzD8jD,EAAaxkC,UACbtkH,KAAK6hK,UAAU,CAAEv9C,SAAUwkC,EAAaxkC,SAAStf,eAEjD8jD,EAAaoX,eACblgK,KAAK6hK,UAAU,CAAE3B,cAAepX,EAAaoX,cAAcl7D,eAE3D8jD,EAAaqX,mBACbngK,KAAK6hK,UAAU,CAAE1B,kBAAmBrX,EAAaqX,kBAAkBn7D,eAEnE8jD,EAAasX,eACbpgK,KAAK6hK,UAAU,CAAEzB,cAAetX,EAAasX,cAAcp7D,eAE3D8jD,EAAauX,QACbrgK,KAAK6hK,UAAU,CAAExB,OAAQvX,EAAauX,OAAOr7D,eAE7C8jD,EAAawX,WACbtgK,KAAK6hK,UAAU,CAAEvB,UAAWxX,EAAawX,UAAUt7D,eAEnD8jD,EAAayX,WACbvgK,KAAK6hK,UAAU,CAAEtB,UAAWzX,EAAayX,UAAUv7D,eAEnD8jD,EAAa0X,MACbxgK,KAAK6hK,UAAU,CAAErB,KAAM1X,EAAa0X,KAAKx7D,eAEzC8jD,EAAa2X,aACbzgK,KAAK6hK,UAAU,CAAEpB,YAAa3X,EAAa2X,YAAYz7D,eAEvD8jD,EAAa4X,cACb1gK,KAAK6hK,UAAU,CAAEnB,aAAc5X,EAAa4X,aAAa17D,eAEzD8jD,EAAa/yI,UACb/V,KAAK6hK,UAAU,CAAE9rJ,SAAU+yI,EAAa/yI,SAASivF,eAEjD8jD,EAAajnF,UACb7hE,KAAK6hK,UAAU,CAAEb,aAAclY,EAAajnF,QAAQmjC,eAChDhlG,KAAK2sE,SACDm8E,EAAajnF,QAAQmjC,aACjBhlG,KAAKo2G,WAAap2G,KAAKo2G,UAAU4O,cACjChlH,KAAK8hK,aACL9hK,KAAK+hK,SAGL/hK,KAAKgW,OAIThW,KAAKm0J,SAIbrL,EAAa6X,UACb3gK,KAAK6hK,UAAU,CAAElB,SAAU7X,EAAa6X,SAAS37D,eAEjD8jD,EAAanwH,IACb34B,KAAK6hK,UAAU,CAAElpI,GAAImwH,EAAanwH,GAAGqsE,eAErC8jD,EAAagY,iBACb9gK,KAAK+gK,gBAAkB,IAAK/gK,KAAK+gK,mBAAoBjY,EAAagY,eAAe97D,cACjFhlG,KAAK6gK,aACD7gK,KAAK2sE,SACD3sE,KAAK2hK,UAAU,gBACX3hK,KAAKo2G,WAAap2G,KAAKo2G,UAAU4O,cACjChlH,KAAK8hK,aACL9hK,KAAK+hK,SAGL/hK,KAAKgW,OAIThW,KAAKm0J,QAIrB,CACA6N,aACI,OAAOhiK,KAAK2hK,UAAU,WAC1B,CACAnmF,aAAalhE,IACJta,KAAKo2G,YAAcp2G,KAAKw8B,aACzBx8B,KAAKiiK,UAEb,CACAxmF,aAAanhE,IACJta,KAAKgiK,iBAEN,EADcn+C,OAASvpG,EAAE4nJ,cAAe,eAAW,EAAKr+C,OAASvpG,EAAE4nJ,cAAe,oBAAgB,EAAKr+C,OAASvpG,EAAE4nJ,cAAe,sBAIjIliK,KAAK6gK,YAEb,CACA/hD,QAAQxkG,GACJta,KAAKiiK,UACT,CACAljD,OAAOzkG,GACHta,KAAK6gK,YACT,CACAv+B,aAAahoH,GACTta,KAAK6gK,YACT,CACAoB,WACI,IAAKjiK,KAAK0hK,sBAAuB,CAS7B,GARA1hK,KAAK2sE,QAAS,EACd3sE,KAAKmiK,mBACDniK,KAAK2hK,UAAU,aACf3hK,KAAKw8B,YAAchnB,WAAW,KAC1BxV,KAAKgW,MAAK,EACXhW,KAAK2hK,UAAU,cAElB3hK,KAAKgW,OACLhW,KAAK2hK,UAAU,QAAS,CACxB,IAAI3oJ,EAAWhZ,KAAK2hK,UAAU,aAAe3hK,KAAK2hK,UAAU,QAAU3hK,KAAK2hK,UAAU,aAAe3hK,KAAK2hK,UAAU,QACnH3hK,KAAKihK,YAAczrJ,WAAW,KAC1BxV,KAAKm0J,MAAK,EACXn7I,EACP,CACIhZ,KAAK2hK,UAAU,kBACf3hK,KAAKwhK,uBAAyBxhK,KAAKq8D,SAAStW,OAAO,WAAY,iBAAkB,KAC7E/lD,KAAK6gK,aACL7gK,KAAKwhK,wBAAuB,IAGpCxhK,KAAK0hK,uBAAwB,CACjC,CACJ,CACAb,aACI7gK,KAAK0hK,uBAAwB,EAC7B1hK,KAAK2sE,QAAS,EACd3sE,KAAKoiK,mBACDpiK,KAAK2hK,UAAU,cACf3hK,KAAKmiK,mBACLniK,KAAKihK,YAAczrJ,WAAW,KAC1BxV,KAAKm0J,MAAK,EACXn0J,KAAK2hK,UAAU,eAGlB3hK,KAAKm0J,OAELn0J,KAAKwhK,wBACLxhK,KAAKwhK,wBAEb,CACAj8G,SACQvlD,KAAKo2G,YACLp2G,KAAKmiK,mBACLniK,KAAK80D,UAET90D,KAAKo2G,UAAYnrG,SAAS+uD,cAAc,OACxCh6D,KAAKo2G,UAAUr7C,aAAa,KAAM/6D,KAAK2hK,UAAU,OACjD3hK,KAAKo2G,UAAUr7C,aAAa,OAAQ,WACpC,IAAIsnG,EAAep3J,SAAS+uD,cAAc,OAC1CqoG,EAAa9yG,UAAY,kBACzBvvD,KAAKo2G,UAAUh8C,YAAYioG,GAC3BriK,KAAKioG,YAAch9F,SAAS+uD,cAAc,OAC1Ch6D,KAAKioG,YAAY14C,UAAY,iBAC7BvvD,KAAK8hK,aACD9hK,KAAK2hK,UAAU,mBACf3hK,KAAKo2G,UAAUrpE,MAAM6gC,SAAW5tE,KAAK2hK,UAAU,kBAEnD3hK,KAAKo2G,UAAUh8C,YAAYp6D,KAAKioG,aACG,SAA/BjoG,KAAK2hK,UAAU,YACf12J,SAASvB,KAAK0wD,YAAYp6D,KAAKo2G,WACK,WAA/Bp2G,KAAK2hK,UAAU,aAAgB,EACpCvnG,OAAYp6D,KAAKo2G,UAAWp2G,KAAKg7D,GAAGya,gBAAa,EAEjDrb,OAAYp6D,KAAK2hK,UAAU,YAAa3hK,KAAKo2G,WACjDp2G,KAAKo2G,UAAUrpE,MAAMmnB,QAAU,OAC3Bl0D,KAAK4gK,aACL5gK,KAAKo2G,UAAUrpE,MAAMxe,MAAQ,eAE7BvuB,KAAKgiK,aACLhiK,KAAKo2G,UAAUrpE,MAAMu1H,cAAgB,QAGrCtiK,KAAKo2G,UAAUrpE,MAAMu1H,cAAgB,QACrCtiK,KAAKuiK,kCAEb,CACAA,kCACSviK,KAAKohK,8BAENphK,KAAKohK,4BAA8BphK,KAAKq8D,SAAStW,OADhC/lD,KAAKo2G,WAAap2G,KAAKo2G,UAAU3gC,cACgB,aAAen7D,IAC7Eta,KAAK6gK,YAAW,GAG5B,CACA2B,oCACQxiK,KAAKohK,8BACLphK,KAAKuiK,kCACLviK,KAAKohK,4BAA8B,KAE3C,CACAprJ,OACShW,KAAK2hK,UAAU,kBAAmB3hK,KAAK2hK,UAAU,cAGtD3hK,KAAKulD,SACiBvlD,KAAKg7D,GAAGya,cACO6gD,QAAQ,YAEzC9gH,WAAW,KACPxV,KAAKo2G,YAAcp2G,KAAKo2G,UAAUrpE,MAAMmnB,QAAU,gBAClDl0D,KAAKo2G,WAAap2G,KAAK+hK,OAAM,EAC9B,MAGH/hK,KAAKo2G,UAAUrpE,MAAMmnB,QAAU,eAC/Bl0D,KAAK+hK,UAAM,EAEfj6C,OAAO9nH,KAAKo2G,UAAW,KACiB,SAApCp2G,KAAK2hK,UAAU,iBACfrlC,GAAY13H,IAAI,UAAW5E,KAAKo2G,UAAWp2G,KAAKmZ,OAAOsjH,OAAO9mH,SAE9D3V,KAAKo2G,UAAUrpE,MAAM0vF,OAASz8H,KAAK2hK,UAAU,iBACjD3hK,KAAK48I,6BACL58I,KAAK6uH,qBACT,CACAslC,OAC4C,SAApCn0J,KAAK2hK,UAAU,kBACfrlC,GAAYz2G,MAAM7lB,KAAKo2G,WAE3Bp2G,KAAK80D,QACT,CACAgtG,aACI,MAAMjgG,EAAU7hE,KAAK2hK,UAAU,gBAC/B,GAAI9/F,aAAmB4gG,MAAa,CAChC,MAAMC,EAAkB1iK,KAAK+/J,cAAc4C,mBAAmB9gG,GAC9D6gG,EAAgBvpC,gBAChBupC,EAAgBE,UAAUrvJ,QAASw9B,GAAS/wC,KAAKioG,YAAY7tC,YAAYrpB,GAC7E,MACS/wC,KAAK2hK,UAAU,WACpB3hK,KAAKioG,YAAY9d,UAAY,GAC7BnqF,KAAKioG,YAAY7tC,YAAYnvD,SAASurH,eAAe30D,KAGrD7hE,KAAKioG,YAAY9d,UAAYtoB,CAErC,CACAkgG,QACI,IAAIn0F,EAAW5tE,KAAK2hK,UAAU,mBAC9B,MAAMkB,EAAmB,CACrBv2F,IAAK,CAACtsE,KAAK8iK,SAAU9iK,KAAK+iK,YAAa/iK,KAAKgjK,WAAYhjK,KAAKijK,WAC7Dl1F,OAAQ,CAAC/tE,KAAK+iK,YAAa/iK,KAAK8iK,SAAU9iK,KAAKgjK,WAAYhjK,KAAKijK,WAChEp1F,KAAM,CAAC7tE,KAAKijK,UAAWjjK,KAAKgjK,WAAYhjK,KAAK8iK,SAAU9iK,KAAK+iK,aAC5Dj1F,MAAO,CAAC9tE,KAAKgjK,WAAYhjK,KAAKijK,UAAWjjK,KAAK8iK,SAAU9iK,KAAK+iK,cAEjE,QAAUpuI,EAAOuuI,KAAgBL,EAAiBj1F,GAAU1vD,UACxD,GAAc,IAAVyW,EACAuuI,EAAY3uD,KAAKv0G,UAAI,KAChBA,KAAKmjK,gBAGV,MAFAD,EAAY3uD,KAAKv0G,KAEjB,CAEZ,CACAojK,gBACI,GAAmC,SAA/BpjK,KAAK2hK,UAAU,aAAyD,WAA/B3hK,KAAK2hK,UAAU,YAA0B,CAClF,IAAIr1I,EAAStsB,KAAKg7D,GAAGya,cAAc6vC,wBAGnC,MAAO,CAAEz3C,KAFQvhD,EAAOuhD,QAAO63C,SAEJp5C,IADXhgD,EAAOggD,OAAMk5C,SAEjC,CAEI,MAAO,CAAE33C,KAAM,EAAGvB,IAAK,EAE/B,CACA,iBAAIqgD,GACA,OAAO3sH,KAAKg7D,GAAGya,cAAcs1C,SAAShlH,SAAS,OAAI,EAAIg+G,OAAW/jH,KAAKg7D,GAAGya,cAAe,gBAAkBz1E,KAAKg7D,GAAGya,aACvH,CACAutF,aACIhjK,KAAKqjK,SAAS,SACd,MAAMroG,EAAKh7D,KAAK2sH,cACV22C,KAAa7+C,OAAczpD,GAC3BuoG,MAAa17C,OAAe7sD,IAAE,EAAI6sD,OAAe7nH,KAAKo2G,YAAc,EAC1Ep2G,KAAKwjK,aAAaF,EAAYC,EAClC,CACAN,YACIjjK,KAAKqjK,SAAS,QACd,IAAIC,KAAa7+C,OAAczkH,KAAKo2G,WAChCmtD,MAAa17C,OAAe7nH,KAAKg7D,GAAGya,gBAAa,EAAIoyC,OAAe7nH,KAAKo2G,YAAc,EAC3Fp2G,KAAKwjK,cAAcF,EAAYC,EACnC,CACAT,WACI9iK,KAAKqjK,SAAS,OACd,IAAIC,MAAc7+C,OAAczkH,KAAKg7D,GAAGya,gBAAa,EAAIgvC,OAAczkH,KAAKo2G,YAAc,EACtFmtD,KAAY17C,OAAe7nH,KAAKo2G,WACpCp2G,KAAKwjK,aAAaF,GAAaC,EACnC,CACAR,cACI/iK,KAAKqjK,SAAS,UACd,IAAIC,MAAc7+C,OAAczkH,KAAKg7D,GAAGya,gBAAa,EAAIgvC,OAAczkH,KAAKo2G,YAAc,EACtFmtD,KAAY17C,OAAe7nH,KAAKg7D,GAAGya,eACvCz1E,KAAKwjK,aAAaF,EAAYC,EAClC,CACAC,aAAaF,EAAYC,GACrB,IAAIE,EAAazjK,KAAKojK,gBAElB92F,EAAMm3F,EAAWn3F,IAAMi3F,EAC3BvjK,KAAKo2G,UAAUrpE,MAAM8gC,KAFV41F,EAAW51F,KAAOy1F,EAEMtjK,KAAK2hK,UAAU,gBAAkB,KACpE3hK,KAAKo2G,UAAUrpE,MAAMu/B,IAAMA,EAAMtsE,KAAK2hK,UAAU,eAAiB,IACrE,CACAE,UAAUngG,GACN1hE,KAAK+gK,gBAAkB,IAAK/gK,KAAK+gK,mBAAoBr/F,EACzD,CACAigG,UAAUjgG,GACN,OAAO1hE,KAAK+gK,gBAAgBr/F,EAChC,CACAkgG,UAAU5mG,GACN,SAAO6oD,OAAS7oD,EAAI,mBAAgB,EAAI+oD,OAAW/oD,EAAI,SAAWA,CACtE,CACAqoG,SAASz1F,GACL5tE,KAAKo2G,UAAUrpE,MAAM8gC,KAAO,SAC5B7tE,KAAKo2G,UAAUrpE,MAAMu/B,IAAM,SAC3B,IAAIo3F,EAAmB,mCAAqC91F,EAC5D5tE,KAAKo2G,UAAU7mD,UAAYvvD,KAAK2hK,UAAU,qBAAuB+B,EAAmB,IAAM1jK,KAAK2hK,UAAU,qBAAuB+B,CACpI,CACAP,gBACI,IAAI72I,EAAStsB,KAAKo2G,UAAUkP,wBACxBq+C,EAAYr3I,EAAOggD,IACnBs3F,EAAat3I,EAAOuhD,KACpBt/C,KAAQk2F,OAAczkH,KAAKo2G,WAC3B9nF,KAASu5F,OAAe7nH,KAAKo2G,WAC7BuP,KAAWC,SACf,OAAOg+C,EAAar1I,EAAQo3F,EAASp3F,OAASq1I,EAAa,GAAKD,EAAY,GAAKA,EAAYr1I,EAASq3F,EAASr3F,MACnH,CACAgxH,eAAehlI,GACXta,KAAKm0J,MACT,CACAvX,6BACI58I,KAAKw9D,KAAKX,kBAAkB,KACxB78D,KAAKyhK,eAAiBzhK,KAAKs/I,eAAe55C,KAAK1lG,MAC/CuqB,OAAO0tC,iBAAiB,SAAUj4D,KAAKyhK,eAAc,EAE7D,CACAliB,+BACQv/I,KAAKyhK,iBACLl3I,OAAO2tC,oBAAoB,SAAUl4D,KAAKyhK,gBAC1CzhK,KAAKyhK,eAAiB,KAE9B,CACA5yC,qBACS7uH,KAAKmzI,gBACNnzI,KAAKmzI,cAAgB,IAAIvkB,GAA8B5uH,KAAKg7D,GAAGya,cAAe,KACtEz1E,KAAKo2G,WACLp2G,KAAKm0J,MAAK,IAItBn0J,KAAKmzI,cAActkB,oBACvB,CACAC,uBACQ9uH,KAAKmzI,eACLnzI,KAAKmzI,cAAcrkB,sBAE3B,CACA+0C,eACI,MAAM5D,EAAejgK,KAAK2hK,UAAU,gBAMpC,IALqB,UAAjB1B,GAA6C,SAAjBA,KAC5BjgK,KAAKg7D,GAAGya,cAAcvd,oBAAoB,aAAcl4D,KAAKkhK,oBAC7DlhK,KAAKg7D,GAAGya,cAAcvd,oBAAoB,aAAcl4D,KAAKmhK,oBAC7DnhK,KAAKg7D,GAAGya,cAAcvd,oBAAoB,QAASl4D,KAAKqhK,gBAEvC,UAAjBpB,GAA6C,SAAjBA,EAAyB,CACrD,IAAIjhH,EAASh/C,KAAKg7D,GAAGya,cAAc9oC,cAAc,gBAC5CqS,IACDA,EAASh/C,KAAK4hK,UAAU5hK,KAAKg7D,GAAGya,gBAEpCz2B,EAAOkZ,oBAAoB,QAASl4D,KAAKshK,eACzCtiH,EAAOkZ,oBAAoB,OAAQl4D,KAAKuhK,aAC5C,CACAvhK,KAAKu/I,8BACT,CACAzqF,SACQ90D,KAAKo2G,WAAap2G,KAAKo2G,UAAU0O,gBACE,SAA/B9kH,KAAK2hK,UAAU,YACf12J,SAASvB,KAAK8wD,YAAYx6D,KAAKo2G,WACK,WAA/Bp2G,KAAK2hK,UAAU,YACpB3hK,KAAKg7D,GAAGya,cAAcjb,YAAYx6D,KAAKo2G,YAAS,EAEhD57C,OAAYx6D,KAAKo2G,UAAWp2G,KAAK2hK,UAAU,cAEnD3hK,KAAKu/I,+BACLv/I,KAAK8uH,uBACL9uH,KAAKwiK,oCACLxiK,KAAK8jK,gBACL9jK,KAAKo2G,UAAY,KACjBp2G,KAAKmzI,cAAgB,IACzB,CACAivB,mBACQpiK,KAAKw8B,cACLqG,aAAa7iC,KAAKw8B,aAClBx8B,KAAKw8B,YAAc,KAE3B,CACA2lI,mBACQniK,KAAKihK,cACLp+H,aAAa7iC,KAAKihK,aAClBjhK,KAAKihK,YAAc,KAE3B,CACA6C,gBACI9jK,KAAKoiK,mBACLpiK,KAAKmiK,kBACT,CACA3nJ,cACIxa,KAAK6jK,eACL1jK,MAAMqa,cACFxa,KAAKo2G,WACLkmB,GAAYz2G,MAAM7lB,KAAKo2G,WAE3Bp2G,KAAK80D,SACD90D,KAAKmzI,gBACLnzI,KAAKmzI,cAAcvtF,UACnB5lD,KAAKmzI,cAAgB,MAErBnzI,KAAKwhK,wBACLxhK,KAAKwhK,wBAEb,CACA7hD,iBAAc,SAAyBvhF,GAAqB,OAAO,IAAKA,GAAqB0hI,GAASn5J,MAAqBA,OAAYA,MAAqBA,OAAuB,EACnLg5G,iBAA4Bh5G,MAAqB,CAAE3D,KAAM88J,EAASxrJ,UAAW,CAAC,CAAC,GAAI,WAAY,KAAMC,OAAQ,CAAEyrJ,gBAAiB,kBAAmBC,aAAc,eAAgB37C,SAAU,WAAY47C,cAAe,gBAAiBC,kBAAmB,oBAAqBC,cAAe,gBAAiBC,OAAQ,CAAC,EAAG,SAAU,SAAU9wC,OAAmB+wC,UAAW,CAAC,EAAG,YAAa,YAAazoC,OAAkB0oC,UAAW,CAAC,EAAG,YAAa,YAAa1oC,OAAkB2oC,KAAM,CAAC,EAAG,OAAQ,OAAQ3oC,OAAkB4oC,YAAa,CAAC,EAAG,cAAe,cAAe5oC,OAAkB6oC,aAAc,CAAC,EAAG,eAAgB,eAAgB7oC,OAAkB8oC,SAAU,CAAC,EAAG,WAAY,WAAYpxC,OAAmBqxC,WAAY,CAAC,EAAG,aAAc,aAAcrxC,OAAmBklC,aAAc,CAAC,EAAG,eAAgB,eAAgBllC,OAAmB1tD,QAAS,CAAC,EAAG,WAAY,WAAY9rD,SAAU,CAAC,EAAG,kBAAmB,YAAa+qJ,eAAgB,kBAAoBx9C,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACi5J,KAAgBj5J,MAA6BA,MAA+BA,SAChkC,OAtlBKm5J,CAAO,KA8oBPiE,GAAa,MAAnB,MAAMA,EACFpkD,iBAAc,SAA+BvhF,GAAqB,OAAO,IAAKA,GAAqB2lI,EAAkB,EACrHpkD,iBAA4Bh5G,KAAoB,CAAE3D,KAAM+gK,IACxDpkD,iBAA4Bh5G,MAAoB,CAAC,GACpD,OAJKo9J,CAAa,KCrvBnB,MAAMt0C,GAAQA,EAAG9O,QAAS,oIAMRA,EAAG,gDACGA,EAAG,uDACEA,EAAG,wCAAwCA,EAAG,+CAA+CA,EAAG,yDACrGA,EAAG,6CAA6CA,EAAG,sDACtDA,EAAG,8EAENA,EAAG,8EAIDA,EAAG,+FAIHA,EAAG,+FAIHA,EAAG,kDACLA,EAAG,8CACNA,EAAG,8BAA8BA,EAAG,8BAA8BA,EAAG,oDAC9DA,EAAG,oFAIPA,EAAG,2GAIHA,EAAG,kGAIHA,EAAG,qGAKHA,EAAG,6IAORA,EAAG,sDACQA,EAAG,mMASdA,EAAG,yCACHA,EAAG,2DACeA,EAAG,wDACLA,EAAG,6KASjBA,EAAG,uBAAuBA,EAAG,wFAG/BA,EAAG,+IAOHA,EAAG,gHAIHA,EAAG,yIAIsBA,EAAG,kFAI5BA,EAAG,2PAiBEA,EAAG,6CACRA,EAAG,mDACQA,EAAG,uDACNA,EAAG,qDACNA,EAAG,oEAINA,EAAG,mNAcHA,EAAG,oDACAA,EAAG,kDACRA,EAAG,mDACGA,EAAG,yIAOPA,EAAG,qCACPA,EAAG,uRAaCA,EAAG,8DAELA,EAAG,qFAEaA,EAAG,wCAAwCA,EAAG,+CAA+CA,EAAG,0DACpGA,EAAG,gDAAgDA,EAAG,sDAC1DA,EAAG,qIAINA,EAAG,kDACRA,EAAG,oGAIEA,EAAG,qDACRA,EAAG,+GAIEA,EAAG,2DACRA,EAAG,iIAKWA,EAAG,6DACLA,EAAG,+CACfA,EAAG,4EAIDA,EAAG,qIAQDA,EAAG,+CACCA,EAAG,gDACFA,EAAG,2FAIRA,EAAG,uCACPA,EAAG,wCACFA,EAAG,gFAIAA,EAAG,+CACCA,EAAG,gDACFA,EAAG,2FAIRA,EAAG,uCACPA,EAAG,wCACFA,EAAG,+BAGXtrG,GAAU,CACZi6C,KAAMA,EAAG8xD,cAAe,CACpB,sCACA,CACI,aAAcA,EAASrrG,SACvB,mBAAoBqrG,EAAS6V,QAA+B,WAArB7V,EAAS6V,QAAwD,WAAjC7V,EAASjoG,OAAOmgH,aACvF,UAAWlY,EAAS8N,QACpB,6BAAmD5tH,IAA1B8/G,EAAS4iD,cAAwD,OAA1B5iD,EAAS4iD,aACzE,uBAAwB5iD,EAAS8N,SAAW9N,EAAS4b,eACrD,gBAAiB5b,EAAS4b,eAC1B,iBAAkB5b,EAASuR,MAC3B,8BAAiD,UAAlBvR,EAAS9+F,KACxC,8BAAiD,UAAlB8+F,EAAS9+F,OAGhD3O,MAAOA,EAAGytG,WAAU5sD,WAAY,CAC5B,iBACA,CACI,iBAAkBA,EAAMyvG,UAAY7iD,EAASztG,QAAU6gD,EAAMquE,YAC7D,yBAAyBruE,EAAMyvG,UAAa7iD,EAASuO,OAAOj9G,OAAgC,iBAAnB0uG,EAASztG,OAAsD,IAA1BytG,EAASztG,MAAMtI,UAGrI88D,UAAW,sBACX7C,SAAU,oBACV4+F,YAAa,wBACbC,aAAc,yBACd7kI,QAAS,+BACTmiC,OAAQ,kBACR2iG,SAAU,kBACVC,cAAe,0BACfzoJ,KAAM,gBACN+lD,YAAa,wBACb2iG,iBAAkB,8BAClB5iG,OAAQA,EAAG0/C,WAAU5sD,QAAOlK,QAAOoX,SAAQ6iG,mBAAoB,CAC3D,kBACA,CACI,2BAA4BnjD,EAAS3qG,WAAWirD,IAAWlN,EAAMgwG,kBACjE,UAAWl6G,EAAMm6G,qBAAuBF,EACxC,aAAcnjD,EAASsjD,iBAAiBhjG,KAGhDijG,YAAa,wBACbC,gBAAiB,6BACjBC,gBAAiB,6BACjBp/F,aAAc,0BAChB,IACIq/F,GAAW,MAAjB,MAAMA,UAAoBplD,KACtBp9G,KAAO,SACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAIolD,EAA0B,OAAO,SAA6B3mI,GAAqB,OAAQ2mI,IAA6BA,EAA2Bp+J,MAAyBm+J,KAAe1mI,GAAqB0mI,EAAc,CAAG,EAA7O,GAC7BnlD,kBAA6Bh5G,MAAsB,CAAE0e,MAAOy/I,EAAa39J,QAAS29J,EAAY19J,YACjG,OANK09J,CAAW,KA+FjB,MAAM7vJ,GAAMg+G,KAAS3kG,OAAQ2kG,IACvBh8G,GAAMA,CAACg8G,EAAI8M,EAAIywB,MAAU,mBAAmB,EAAM,2BAA4Bv9B,EAAI,aAAc8M,EAAI,UAAWywB,IAC/G19B,GAAMG,KAAS38G,UAAW28G,IAChC,SAAS+xC,GAA+CnwJ,EAAIC,GAAgB,EAALD,GACnElO,MAAa,EAAG,YAAa,EAC/B,CACF,SAASs+J,GAA+CpwJ,EAAIC,GAAgB,EAALD,GACnElO,MAAa,EAAG,YAAa,EAC/B,CACF,SAASu+J,GAAmCrwJ,EAAIC,GAI9C,GAJ8D,EAALD,IACvDlO,MAA2B,GAC3BA,MAAc,EAAGq+J,GAAgD,EAAG,EAAG,YAAa,EAApFr+J,CAAuF,EAAGs+J,GAAgD,EAAG,EAAG,YAAa,GAC7Jt+J,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,QACAA,MAAc,OAAQ8M,EAAO4jI,UAC7B1wI,QACAA,MAAc,QAAS8M,EAAO4jI,SAClC,CAAE,CACF,SAAS8tB,GAA2BtwJ,EAAIC,GAItC,GAJsD,EAALD,IAC/ClO,MAAkB,EAAG,QACrBA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,IAAIuwJ,EACJ,MAAM3xJ,EAAS9M,QACfA,QACAA,MAAkD,QAA5By+J,EAAU3xJ,EAAOE,aAA+BrS,IAAZ8jK,EAAwBA,EAAU,QAChG,CAAE,CACF,SAASC,GAAmCxwJ,EAAIC,GAAgB,EAALD,GACvDlO,MAAsB,EACxB,CACF,MAAMosH,GAAM,CAAC,QACPC,GAAM,CAAC,SACP+L,GAAM,CAAC,UACPC,GAAM,CAAC,gBACPC,GAAM,CAAC,UACPC,GAAM,CAAC,UACPC,GAAM,CAAC,UACPC,GAAO,CAAC,eACRC,GAAO,CAAC,SACRC,GAAO,CAAC,gBACRC,GAAO,CAAC,eACRC,GAAO,CAAC,aACRC,GAAO,CAAC,cACRC,GAAO,CAAC,UACRC,GAAO,CAAC,WACRE,GAAO,CAAC,cACRC,GAAO,CAAC,cACRI,GAAO,CAAC,iBACRC,GAAO,CAAC,SACRC,GAAO,CAAC,YACRC,GAAO,CAAC,WACRC,GAAO,CAAC,0BACRC,GAAO,CAAC,yBACR+kC,GAAOA,MAASpyC,MAAO,wBACvBqyC,GAAOA,MAASryC,MAAO,2BACvBsyC,GAAOvyC,KAASvnH,QAASunH,IACzBwyC,GAAOA,CAACxyC,EAAI8M,MAAUzpH,UAAW28G,EAAIvnH,QAASq0H,IAC9C2lC,GAAOA,MAAQ,GACrB,SAASC,GAAsC9wJ,EAAIC,GAIjD,GAJiE,EAALD,IAC1DlO,MAA2B,GAC3BA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAwC,iBAAnB4P,EAAO5C,QAA6B,OAAW4C,EAAO5C,QAC/E,CAAE,CACF,SAASiyJ,GAAsC/wJ,EAAIC,GAEjD,GAFiE,EAALD,GAC1DlO,MAAsB,EAAG,IAClB,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAc,mBAAoB4P,EAAOsvJ,sBAAwBtvJ,EAAOuvJ,sBAAxEn/J,CAA+F,0BAA2BA,MAAmB,EAAGmsH,GAAKv8G,EAAOwvJ,gBAChK,CAAE,CACF,SAASC,GAA4CnxJ,EAAIC,GAIvD,GAJuE,EAALD,IAChElO,MAAkB,EAAG,QACrBA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAwC,iBAAnB4P,EAAO5C,QAA6B,OAAW4C,EAAO5C,QAC/E,CAAE,CACF,SAASsyJ,GAAqCpxJ,EAAIC,GAEhD,GAFgE,EAALD,GACzDlO,MAAc,EAAGq/J,GAA6C,EAAG,EAAG,OAAQ,IACrE,EAALnxJ,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAc,QAAS4P,EAAOwvJ,eAClC,CAAE,CACF,SAASG,GAAuBrxJ,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACnD,MAAMipG,EAAMn3G,QACZA,MAAkB,EAAG,OAAQ,GAAI,GACjCA,MAAc,QAAS,SAAsDkU,GAAUlU,MAAiBm3G,GAAM,MAAMvnG,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAO6rH,aAAavnH,GAAU,EAArMlU,CAAwM,OAAQ,SAAqDkU,GAAUlU,MAAiBm3G,GAAM,MAAMvnG,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOgsH,YAAY1nH,GAAU,EAA5XlU,CAA+X,UAAW,SAAwDkU,GAAUlU,MAAiBm3G,GAAM,MAAMvnG,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOqxI,UAAU/sI,GAAU,GACvjBlU,MAAc,EAAGg/J,GAAuC,EAAG,EAAG,eAAgB,GAA9Eh/J,CAAkF,EAAGi/J,GAAuC,EAAG,EAAG,eAAgB,GAAlJj/J,CAAsJ,EAAGs/J,GAAsC,EAAG,EAAG,cAAe,KAAM,EAAGt/J,OAC7NA,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,IAAI4tH,EACJ,MAAM0jC,EAAwBx/J,MAAe,GACvC4P,EAAS5P,QACfA,MAAc,UAAW4P,EAAOwqI,WAAhCp6I,CAA4C,WAAY4P,EAAOZ,QAA/DhP,CAAwE,kBAAmB4P,EAAOypJ,gBAAlGr5J,CAAmH,gBAAiB4P,EAAO6vJ,qBAA3Iz/J,CAAiK,oBAAqB4P,EAAO4pJ,kBAA7Lx5J,CAAgN,aAAc4P,EAAOy4G,WACrOroH,MAAe,gBAAiB4P,EAAOR,SAAvCpP,CAAiD,KAAM4P,EAAOusH,QAA9Dn8H,CAAuE,aAAc4P,EAAOw6G,YAAiC,iBAAnBx6G,EAAO5C,aAA6BrS,EAAYiV,EAAO5C,SAAjKhN,CAA2K,kBAAmB4P,EAAOysH,eAArMr8H,CAAqN,gBAAiB,UAAtOA,CAAiP,gBAAwD,QAAtC87H,EAAWlsH,EAAOymH,sBAAyC17H,IAAbmhI,GAAyBA,EAA1U97H,CAA4V,gBAAiB4P,EAAOymH,eAAiBzmH,EAAOoiB,GAAK,QAAU,KAA3ZhyB,CAAia,WAAa4P,EAAOR,UAA6B,EAAlBQ,EAAOygH,SAAvcrwH,CAAsd,wBAAyB4P,EAAO24G,QAAU34G,EAAO8vJ,qBAAkB/kK,EAAzhBqF,CAAoiB,gBAAiB4P,EAAOwsH,SAA5jBp8H,CAAskB,WAAY4P,EAAOwsH,UACzlBp8H,MAAa,GACbA,MAAc,QAAS4P,EAAOsvJ,uBAAyBtvJ,EAAOuvJ,sBAA9Dn/J,CAAqF,WAAYw/J,GACjGx/J,QACAA,MAAc,QAAS4P,EAAOsvJ,sBAAwBtvJ,EAAOuvJ,wBAA0BvvJ,EAAOwvJ,eAClG,CAAE,CACF,SAASO,GAAwBzxJ,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACpD,MAAMyoE,EAAM32E,QACZA,MAAkB,EAAG,QAAS,GAAI,GAClCA,MAAc,QAAS,SAAwDkU,GAAUlU,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOgwJ,gBAAgB1rJ,GAAU,EAA1MlU,CAA6M,UAAW,SAA0DkU,GAAUlU,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOqxI,UAAU/sI,GAAU,EAAvYlU,CAA0Y,QAAS,SAAwDkU,GAAUlU,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAO6rH,aAAavnH,GAAU,EAAnkBlU,CAAskB,OAAQ,SAAuDkU,GAAUlU,MAAiB22E,GAAM,MAAM/mE,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOgsH,YAAY1nH,GAAU,GAC5vBlU,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,QACfA,MAAc,UAAW4P,EAAOwqI,WAAhCp6I,CAA4C,WAAY4P,EAAOR,SAA/DpP,CAAyE,aAAc4P,EAAOy4G,WAC9FroH,MAAe,KAAM4P,EAAOusH,QAA5Bn8H,CAAqC,YAAa4P,EAAOstI,UAAzDl9I,CAAoE,mBAAuCrF,IAAxBiV,EAAOytJ,cAAsD,OAAxBztJ,EAAOytJ,aAAwBztJ,EAAOssH,mBAAgBvhI,EAA9KqF,CAAyL,aAAc4P,EAAOw6G,YAAiC,iBAAnBx6G,EAAO5C,aAA6BrS,EAAYiV,EAAO5C,SAAnRhN,CAA6R,wBAAyB4P,EAAO24G,QAAU34G,EAAO8vJ,qBAAkB/kK,EACpW,CAAE,CACF,SAASklK,GAA2C3xJ,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACvE,MAAMmpE,EAAMr3E,QACZA,MAAkB,EAAG,YAAa,IAClCA,MAAc,QAAS,SAA+EkU,GAAUlU,MAAiBq3E,GAAM,MAAMznE,EAAS5P,MAAiB,GAAI,OAAOA,MAAe4P,EAAOsP,MAAMhL,GAAU,GACxNlU,OACJ,CAAW,EAALkO,GACFlO,MAAe,kBAAmB,YACpC,CACF,SAAS8/J,GAAsD5xJ,EAAIC,GAAO,CAC1E,SAAS4xJ,GAAwC7xJ,EAAIC,GAAgB,EAALD,GAC5DlO,MAAc,EAAG8/J,GAAuD,EAAG,EAAG,cAChF,CACF,SAASE,GAAsC9xJ,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAClE,MAAMgtH,EAAMl7H,QACZA,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,QAAS,SAAqEkU,GAAUlU,MAAiBk7H,GAAM,MAAMtrH,EAAS5P,MAAiB,GAAI,OAAOA,MAAe4P,EAAOsP,MAAMhL,GAAU,GAC9MlU,MAAc,EAAG+/J,GAAyC,EAAG,EAAG,KAAM,IACtE//J,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAe,kBAAmB,aAClCA,QACAA,MAAc,mBAAoB4P,EAAOqqH,mBAAqBrqH,EAAOsqH,mBAArEl6H,CAAyF,0BAA2BA,MAAmB,EAAG2+J,IAC9I,CAAE,CACF,SAASsB,GAA+B/xJ,EAAIC,GAI1C,GAJ0D,EAALD,IACnDlO,MAA2B,GAC3BA,MAAc,EAAG6/J,GAA4C,EAAG,EAAG,YAAa,GAAhF7/J,CAAoF,EAAGggK,GAAuC,EAAG,EAAG,OAAQ,IAC5IhgK,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,QACfA,QACAA,MAAc,QAAS4P,EAAOqqH,oBAAsBrqH,EAAOsqH,oBAC3Dl6H,QACAA,MAAc,OAAQ4P,EAAOqqH,mBAAqBrqH,EAAOsqH,mBAC7D,CAAE,CACF,SAASgmC,GAA6DhyJ,EAAIC,GAAgB,EAALD,GACjFlO,MAAsB,EACxB,CACF,SAASmgK,GAA8CjyJ,EAAIC,GAIzD,GAJyE,EAALD,IAClElO,MAA2B,GAC3BA,MAAc,EAAGkgK,GAA8D,EAAG,EAAG,eAAgB,IACrGlgK,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,mBAAoB4P,EAAOo9G,qBAAuBp9G,EAAOq9G,qBAC3E,CAAE,CACF,SAASmzC,GAAqDlyJ,EAAIC,GAEhE,GAFgF,EAALD,GACzElO,MAAa,EAAG,OAAQ,IACjB,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAc,UAAW,iCAAmC4P,EAAO+zD,YACvE,CAAE,CACF,SAAS08F,GAAqDnyJ,EAAIC,GAAgB,EAALD,GACzElO,MAAa,EAAG,OAAQ,IACjB,EAALkO,GACFlO,MAAc,8CAChB,CACF,SAASsgK,GAA8CpyJ,EAAIC,GAIzD,GAJyE,EAALD,IAClElO,MAA2B,GAC3BA,MAAc,EAAGogK,GAAsD,EAAG,EAAG,OAAQ,GAArFpgK,CAAyF,EAAGqgK,GAAsD,EAAG,EAAG,OAAQ,IAChKrgK,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,OAAQ4P,EAAO+zD,aAC7B3jE,QACAA,MAAc,QAAS4P,EAAO+zD,YAClC,CAAE,CACF,SAAS48F,GAA+BryJ,EAAIC,GAI1C,GAJ0D,EAALD,IACnDlO,MAA2B,GAC3BA,MAAc,EAAGmgK,GAA+C,EAAG,EAAG,eAAgB,GAAtFngK,CAA0F,EAAGsgK,GAA+C,EAAG,EAAG,eAAgB,IAClKtgK,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,QACfA,QACAA,MAAc,OAAQ4P,EAAOo9G,qBAAuBp9G,EAAOq9G,sBAC3DjtH,QACAA,MAAc,QAAS4P,EAAOo9G,sBAAwBp9G,EAAOq9G,qBACjE,CAAE,CACF,SAASuzC,GAAoDtyJ,EAAIC,GAE/D,GAF+E,EAALD,GACxElO,MAAa,EAAG,OAAQ,IACjB,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAc,UAAW4P,EAAO4tJ,aACpC,CAAE,CACF,SAASiD,GAA+DvyJ,EAAIC,GAAgB,EAALD,GACnFlO,MAAa,EAAG,kBAAmB,IAC5B,EAALkO,GACFlO,MAAc,aAAc,yBAC9B,CACF,SAAS0gK,GAA6CxyJ,EAAIC,GAIxD,GAJwE,EAALD,IACjElO,MAA2B,GAC3BA,MAAc,EAAGwgK,GAAqD,EAAG,EAAG,OAAQ,GAApFxgK,CAAwF,EAAGygK,GAAgE,EAAG,EAAG,kBAAmB,IACpLzgK,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,OAAQ4P,EAAO4tJ,cAC7Bx9J,QACAA,MAAc,QAAS4P,EAAO4tJ,aAClC,CAAE,CACF,SAASmD,GAAqDzyJ,EAAIC,GAAO,CACzE,SAASyyJ,GAAuC1yJ,EAAIC,GAAgB,EAALD,GAC3DlO,MAAc,EAAG2gK,GAAsD,EAAG,EAAG,cAC/E,CACF,SAASE,GAAqC3yJ,EAAIC,GAIhD,GAJgE,EAALD,IACzDlO,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,EAAG4gK,GAAwC,EAAG,EAAG,KAAM,IACrE5gK,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,mBAAoB4P,EAAOkxJ,sBAAwBlxJ,EAAOmxJ,sBAAxE/gK,CAA+F,0BAA2BA,MAAmB,EAAG4+J,IACpJ,CAAE,CACF,SAASoC,GAA8B9yJ,EAAIC,GAEzC,GAFyD,EAALD,GAClDlO,MAAc,EAAG0gK,GAA8C,EAAG,EAAG,eAAgB,GAArF1gK,CAAyF,EAAG6gK,GAAsC,EAAG,EAAG,OAAQ,IACzI,EAAL3yJ,EAAQ,CACV,MAAM0B,EAAS5P,QACfA,MAAc,QAAS4P,EAAOkxJ,uBAAyBlxJ,EAAOmxJ,uBAC9D/gK,QACAA,MAAc,OAAQ4P,EAAOkxJ,sBAAwBlxJ,EAAOmxJ,sBAChE,CAAE,CACF,SAASE,GAA6C/yJ,EAAIC,GAAgB,EAALD,GACjElO,MAAsB,EACxB,CACF,SAASkhK,GAAkEhzJ,EAAIC,GAAgB,EAALD,GACtFlO,MAAsB,EACxB,CACF,SAASmhK,GAAmDjzJ,EAAIC,GAI9D,GAJ8E,EAALD,IACvElO,MAA2B,GAC3BA,MAAc,EAAGkhK,GAAmE,EAAG,EAAG,eAAgB,IAC1GlhK,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,mBAAoB4P,EAAOwxJ,gBAAkBxxJ,EAAOyxJ,gBAAlErhK,CAAmF,0BAA2BA,MAAmB,EAAG6+J,GAAMjvJ,EAAO0xJ,eACrJ,CAAE,CACF,SAASC,GAA+DrzJ,EAAIC,GAAgB,EAALD,GACnFlO,MAAa,EAAG,aAClB,CACF,SAASwhK,GAAyEtzJ,EAAIC,GAAO,CAC7F,SAASszJ,GAA2DvzJ,EAAIC,GAAgB,EAALD,GAC/ElO,MAAc,EAAGwhK,GAA0E,EAAG,EAAG,cACnG,CACF,SAASE,GAAyDxzJ,EAAIC,GAIpE,GAJoF,EAALD,IAC7ElO,MAAkB,EAAG,QACrBA,MAAc,EAAGyhK,GAA4D,EAAG,EAAG,KAAM,IACzFzhK,SACO,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,mBAAoB4P,EAAO+xJ,oBAAsB/xJ,EAAOgyJ,oBAC1E,CAAE,CACF,SAASC,GAAkD3zJ,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC9E,MAAMgvH,EAAOl9H,QACbA,MAAkB,EAAG,cAArBA,CAAoC,EAAG,QAAS,GAAI,IACpDA,MAAc,QAAS,SAAkFkU,GAAUlU,MAAiBk9H,GAAO,MAAMttH,EAAS5P,MAAiB,GAAI,OAAOA,MAAe4P,EAAOkyJ,oBAAoB5tJ,GAAU,EAA1OlU,CAA6O,UAAW,SAAoFkU,GAAUlU,MAAiBk9H,GAAO,MAAMttH,EAAS5P,MAAiB,GAAI,OAAOA,MAAe4P,EAAOmyJ,gBAAgB7tJ,GAAU,EAAzclU,CAA4c,OAAQ,SAAiFkU,GAAUlU,MAAiBk9H,GAAO,MAAMttH,EAAS5P,MAAiB,GAAI,OAAOA,MAAe4P,EAAOoyJ,aAAa9tJ,GAAU,GAC/pBlU,QACAA,MAAkB,EAAG,eACrBA,MAAc,EAAGuhK,GAAgE,EAAG,EAAG,aAAc,GAArGvhK,CAAyG,EAAG0hK,GAA0D,EAAG,EAAG,OAAQ,IACpL1hK,SACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,QAAS4P,EAAO+L,KAA9B3b,CAAoC,QAAS4P,EAAOqyJ,gBAAkB,GAAtEjiK,CAA0E,UAAW4P,EAAO0gH,SAC5FtwH,MAAe,cAAe4P,EAAOsyJ,kBAArCliK,CAAwD,YAAa4P,EAAOoiB,GAAK,QAAjFhyB,CAA0F,aAAc4P,EAAOuyJ,gBAA/GniK,CAAgI,wBAAyB4P,EAAO8vJ,iBAChK1/J,MAAa,GACbA,MAAc,QAAS4P,EAAO+xJ,qBAAuB/xJ,EAAOgyJ,qBAC5D5hK,QACAA,MAAc,OAAQ4P,EAAO+xJ,oBAAsB/xJ,EAAOgyJ,oBAC9D,CAAE,CACF,SAASQ,GAAoCl0J,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAChE,MAAMwyH,EAAM1gI,QACZA,MAAkB,EAAG,MAAO,IAC5BA,MAAc,QAAS,SAAkEkU,GAAUlU,aAAiB0gI,GAAa1gI,MAAekU,EAAOF,kBAAoB,GAC3KhU,MAAc,EAAGmhK,GAAoD,EAAG,EAAG,eAAgB,GAA3FnhK,CAA+F,EAAG6hK,GAAmD,EAAG,EAAG,cAAe,KAAM,EAAG7hK,OACnLA,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMm0J,EAA2BriK,MAAe,GAC1C4P,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,OAAQ4P,EAAOwxJ,gBAAkBxxJ,EAAOyxJ,gBAAtDrhK,CAAuE,WAAYqiK,EACvF,CAAE,CACF,SAASC,GAAwEp0J,EAAIC,GAAgB,EAALD,GAC5FlO,MAAsB,EACxB,CACF,SAASuiK,GAAyDr0J,EAAIC,GAEpE,GAFoF,EAALD,GAC7ElO,MAAc,EAAGsiK,GAAyE,EAAG,EAAG,eAAgB,IACzG,EAALp0J,EAAQ,CACV,MAAMs0J,EAAYr0J,EAAIwB,UAChB8yJ,EAAsBt0J,EAAIpJ,QAChC/E,MAAiB,GACjB,MAAM0iK,EAAmB1iK,MAAe,GACxCA,MAAc,mBAAoB0iK,EAAlC1iK,CAAoD,0BAA2BA,MAAmB,EAAG8+J,GAAM0D,EAAWC,GAC1H,CAAE,CACF,SAASE,GAAuFz0J,EAAIC,GAAgB,EAALD,GAC3GlO,MAAsB,EACxB,CACF,SAAS4iK,GAAwE10J,EAAIC,GAEnF,GAFmG,EAALD,GAC5FlO,MAAc,EAAG2iK,GAAwF,EAAG,EAAG,eAAgB,IACxH,EAALz0J,EAAQ,CACV,MAAM20J,EAAsB10J,EAAIpJ,QAC1B6K,EAAS5P,MAAiB,GAChCA,MAAc,mBAAoB4P,EAAO2/I,gBAAkB3/I,EAAO4/I,gBAAlExvJ,CAAmF,0BAA2BA,MAAmB,EAAG6+J,GAAMgE,GAC9I,CAAE,CACF,SAASC,GAA0D50J,EAAIC,GAAgB,EAALD,IAC9ElO,MAA2B,GAC3BA,MAAc,EAAG4iK,GAAyE,EAAG,EAAG,cAAe,KAAM,GAAI5iK,OACzHA,QACF,CACF,SAAS+iK,GAA2C70J,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACvE,MAAMuvH,EAAOz9H,QACbA,MAAkB,EAAG,aAAc,GAAI,IACvCA,MAAc,aAAc,SAAqFkU,GAAUlU,MAAiBy9H,GAAO,MAAM7tH,EAAS5P,MAAiB,GAAI,OAAOA,MAAe4P,EAAOmjJ,WAAWrlJ,KAAKwG,GAAU,GAC9OlU,MAAc,EAAGuiK,GAA0D,EAAG,EAAG,cAAe,KAAM,EAAGviK,MAAzGA,CAAoI,EAAG8iK,GAA2D,EAAG,EAAG,eAAgB,IACxN9iK,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAcA,MAAmB,EAAGsO,GAAKsB,EAAO4hJ,eAChDxxJ,MAAc,QAAS4P,EAAOozJ,iBAA9BhjK,CAAgD,WAAY4P,EAAOqzJ,uBAAyBrzJ,EAAO2hJ,UAAnGvxJ,CAA8G,YAAY,EAA1HA,CAAgI,OAAQ4P,EAAOwiJ,KAA/IpyJ,CAAqJ,UAAW4P,EAAOszJ,sBACvKljK,MAAa,GACbA,MAAc,OAAQ4P,EAAO2/I,gBAAkB3/I,EAAO4/I,gBAC1D,CAAE,CACF,SAAS2T,GAA4Dj1J,EAAIC,GAAgB,EAALD,GAChFlO,MAAsB,EACxB,CACF,SAASojK,GAA6Cl1J,EAAIC,GAIxD,GAJwE,EAALD,IACjElO,MAA2B,GAC3BA,MAAc,EAAGmjK,GAA6D,EAAG,EAAG,eAAgB,IACpGnjK,SACO,EAALkO,EAAQ,CACVlO,QACA,MAAM0iK,EAAmB1iK,MAAe,GAClC4P,EAAS5P,QACfA,QACAA,MAAc,mBAAoB0iK,EAAlC1iK,CAAoD,0BAA2BA,MAAmB,EAAG8+J,GAAMlvJ,EAAOozJ,iBAAkBhjK,MAAmB,EAAG++J,KAC9J,CAAE,CACF,SAASsE,GAAgFn1J,EAAIC,GAI3F,GAJ2G,EAALD,IACpGlO,MAAkB,EAAG,QACrBA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,MAAMo1J,EAAatjK,MAAiB,GAAG2P,UACjCC,EAAS5P,MAAiB,GAChCA,QACAA,MAAqB4P,EAAO2zJ,oBAAoBD,EAAWtoG,aAC/D,CAAE,CACF,SAASwoG,GAAwFt1J,EAAIC,GAAgB,EAALD,GAC5GlO,MAAsB,EACxB,CACF,SAASyjK,GAAyEv1J,EAAIC,GAMpF,GANoG,EAALD,IAC7FlO,MAA2B,GAC3BA,MAAkB,EAAG,KAAM,IAC3BA,MAAc,EAAGqjK,GAAiF,EAAG,EAAG,OAAQ,GAAhHrjK,CAAoH,EAAGwjK,GAAyF,EAAG,EAAG,eAAgB,IACtOxjK,QACAA,SACO,EAALkO,EAAQ,CACV,MAAMw1J,EAAU1jK,QACVsjK,EAAaI,EAAQ/zJ,UACrBg0J,EAAQD,EAAQ11I,MAChB41I,EAAsB5jK,QAAmB+E,QACzC6K,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,UAAWA,MAAmB,EAAGsO,GAAKs1J,EAAoBtS,SAAW,OACnFtxJ,MAAe,KAAM4P,EAAOoiB,GAAK,IAAMpiB,EAAOi0J,eAAeF,EAAOC,IACpE5jK,QACAA,MAAc,QAAS4P,EAAOk0J,gBAAkBl0J,EAAOm0J,gBACvD/jK,QACAA,MAAc,mBAAoB4P,EAAOk0J,eAAiBl0J,EAAOm0J,eAAjE/jK,CAAiF,0BAA2BA,MAAmB,EAAGmsH,GAAKm3C,EAAWtoG,aACtJ,CAAE,CACF,SAASgpG,GAAyE91J,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACrG,MAAM+1J,EAAOjkK,QACbA,MAA2B,GAC3BA,MAAkB,EAAG,eAAgB,IACrCA,MAAc,UAAW,SAAkHkU,GAAUlU,MAAiBikK,GAAO,MAAMX,EAAatjK,QAAmB2P,UAAiBC,EAAS5P,MAAiB,GAAI,OAAOA,MAAe4P,EAAOs0J,eAAehwJ,EAAQovJ,GAAc,EAApUtjK,CAAuU,eAAgB,SAAuHkU,GAAUlU,MAAiBikK,GAAO,MAAMN,EAAQ3jK,QAAmBguB,MAAa41I,EAAsB5jK,QAAmB+E,QAAe6K,EAAS5P,MAAiB,GAAI,OAAOA,MAAe4P,EAAOu0J,mBAAmBjwJ,EAAQtE,EAAOi0J,eAAeF,EAAOC,IAAwB,GACjuB5jK,QACAA,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMw1J,EAAU1jK,QACVsjK,EAAaI,EAAQ/zJ,UACrBg0J,EAAQD,EAAQ11I,MAChB41I,EAAsB5jK,QAAmB+E,QACzC6K,EAAS5P,MAAiB,GAChCA,QACAA,MAAc,KAAM4P,EAAOoiB,GAAK,IAAMpiB,EAAOi0J,eAAeF,EAAOC,GAAnE5jK,CAAyF,SAAUsjK,EAAnGtjK,CAA+G,YAAa4P,EAAOw4D,UAAnIpoE,CAA8I,WAAY4P,EAAOE,WAAWwzJ,GAA5KtjK,CAAyL,QAAS4P,EAAOw0J,eAAed,GAAxNtjK,CAAqO,WAAY4P,EAAOmuJ,iBAAiBuF,GAAzQtjK,CAAsR,WAAY4P,EAAOi/I,cAAgBj/I,EAAOk/I,cAAhU9uJ,CAA+U,UAAW4P,EAAOkuJ,uBAAyBluJ,EAAOi0J,eAAeF,EAAOC,GAAvZ5jK,CAA6a,eAAgB4P,EAAOy0J,gBAAgBz0J,EAAOi0J,eAAeF,EAAOC,IAAjf5jK,CAAwgB,cAAe4P,EAAO00J,YACliB,CAAE,CACF,SAASC,GAA0Dr2J,EAAIC,GAErE,GAFqF,EAALD,GAC9ElO,MAAc,EAAGyjK,GAA0E,EAAG,EAAG,eAAgB,GAAjHzjK,CAAqH,EAAGgkK,GAA0E,EAAG,GAAI,eAAgB,IAClN,EAAL91J,EAAQ,CACV,MAAMo1J,EAAan1J,EAAIwB,UACjBC,EAAS5P,MAAiB,GAChCA,MAAc,OAAQ4P,EAAO40J,cAAclB,IAC3CtjK,QACAA,MAAc,QAAS4P,EAAO40J,cAAclB,GAChD,CAAE,CACF,SAASmB,GAA+Dv2J,EAAIC,GAE1E,GAF0F,EAALD,GACnFlO,MAAU,GACH,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAsB,IAAK4P,EAAO80J,wBAAyB,IAC/D,CAAE,CACF,SAASC,GAA8Ez2J,EAAIC,GAAgB,EAALD,GAClGlO,MAAsB,EAAG,KAAM,GACjC,CACF,SAAS4kK,GAA+D12J,EAAIC,GAE1E,GAF0F,EAALD,GACnFlO,MAAc,EAAG2kK,GAA+E,EAAG,EAAG,eAAgB,IAC/G,EAALz2J,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAc,mBAAoB4P,EAAOi1J,qBAAuBj1J,EAAOk1J,sBAAwBl1J,EAAOm1J,eAAiBn1J,EAAOo1J,eAClI,CAAE,CACF,SAASC,GAAiD/2J,EAAIC,GAI5D,GAJ4E,EAALD,IACrElO,MAAkB,EAAG,KAAM,IAC3BA,MAAc,EAAGykK,GAAgE,EAAG,EAApFzkK,CAAuF,EAAG4kK,GAAgE,EAAG,EAAG,gBAChK5kK,SACO,EAALkO,EAAQ,CACV,MAAM01J,EAAsB5jK,QAAmB+E,QACzC6K,EAAS5P,MAAiB,GAChCA,MAAc,UAAWA,MAAmB,EAAGsO,GAAKs1J,EAAoBtS,SAAW,OACnFtxJ,QACAA,MAAkB4P,EAAOi1J,qBAAwBj1J,EAAOk1J,sBAAyBl1J,EAAOm1J,cAAoB,EAAJ,EAC5G,CAAE,CACF,SAASG,GAA+Dh3J,EAAIC,GAE1E,GAF0F,EAALD,GACnFlO,MAAU,GACH,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAsB,IAAK4P,EAAOu1J,kBAAmB,IACzD,CAAE,CACF,SAASC,GAA8El3J,EAAIC,GAAgB,EAALD,GAClGlO,MAAsB,EAAG,KAAM,GACjC,CACF,SAASqlK,GAA+Dn3J,EAAIC,GAE1E,GAF0F,EAALD,GACnFlO,MAAc,EAAGolK,GAA+E,EAAG,EAAG,eAAgB,IAC/G,EAALl3J,EAAQ,CACV,MAAM0B,EAAS5P,MAAiB,GAChCA,MAAc,mBAAoB4P,EAAOm1J,eAAiBn1J,EAAOo1J,eACrE,CAAE,CACF,SAASM,GAAiDp3J,EAAIC,GAI5D,GAJ4E,EAALD,IACrElO,MAAkB,EAAG,KAAM,IAC3BA,MAAc,EAAGklK,GAAgE,EAAG,EAApFllK,CAAuF,EAAGqlK,GAAgE,EAAG,EAAG,gBAChKrlK,SACO,EAALkO,EAAQ,CACV,MAAM01J,EAAsB5jK,QAAmB+E,QACzC6K,EAAS5P,MAAiB,GAChCA,MAAc,UAAWA,MAAmB,EAAGsO,GAAKs1J,EAAoBtS,SAAW,OACnFtxJ,QACAA,MAAkB4P,EAAOm1J,eAAkBn1J,EAAOo1J,eAAqB,EAAJ,EACvE,CAAE,CACF,SAASO,GAA4Cr3J,EAAIC,GAIvD,GAJuE,EAALD,IAChElO,MAAkB,EAAG,KAAM,GAAI,IAC/BA,MAAc,EAAGukK,GAA2D,EAAG,EAAG,cAAe,GAAjGvkK,CAAqG,EAAGilK,GAAkD,EAAG,EAAG,KAAM,GAAtKjlK,CAA0K,EAAGslK,GAAkD,EAAG,EAAG,KAAM,IAC3OtlK,SACO,EAALkO,EAAQ,CACV,MAAMs3J,EAAYr3J,EAAIwB,UAChBi0J,EAAsBz1J,EAAIpJ,QAC1B6K,EAAS5P,MAAiB,GAChCA,MAAc4jK,EAAoB7Y,cAClC/qJ,MAAc,UAAW4jK,EAAoB9Y,mBAC7C9qJ,MAAe,KAAM4P,EAAOoiB,GAAK,QAAjChyB,CAA0C,aAAc4P,EAAO61J,WAC/DzlK,MAAa,GACbA,MAAc,UAAWwlK,GACzBxlK,QACAA,MAAc,OAAQ4P,EAAO81J,aAAe91J,EAAOihC,WACnD7wC,QACAA,MAAc,QAAS4P,EAAO81J,aAAe91J,EAAOihC,UACxD,CAAE,CACF,SAAS80H,GAA8Cz3J,EAAIC,GAAgB,EAALD,GAClElO,MAAsB,EACxB,CACF,SAAS4lK,GAA8B13J,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC1D,MAAMi4H,EAAMnmI,QACZA,MAAkB,EAAG,MAAO,GAA5BA,CAAgC,EAAG,OAAQ,GAAI,GAC/CA,MAAc,QAAS,SAA6DkU,GAAUlU,MAAiBmmI,GAAM,MAAMv2H,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOi2J,mBAAmB3xJ,GAAU,GAClNlU,QACAA,MAAc,EAAGihK,GAA8C,EAAG,EAAG,eAAgB,GAArFjhK,CAAyF,EAAGoiK,GAAqC,EAAG,EAAG,MAAO,IAC9IpiK,MAAkB,EAAG,MAAO,IAC5BA,MAAc,EAAG+iK,GAA4C,EAAG,GAAI,aAAc,GAAlF/iK,CAAsF,EAAGojK,GAA8C,EAAG,EAAG,eAAgB,GAA7JpjK,CAAiK,EAAGulK,GAA6C,EAAG,EAAG,cAAe,KAAM,EAAGvlK,OAC/OA,QACAA,MAAc,GAAI2lK,GAA+C,EAAG,EAAG,eAAgB,IACvF3lK,MAAkB,GAAI,OAAQ,GAAI,GAClCA,MAAc,QAAS,SAA8DkU,GAAUlU,MAAiBmmI,GAAM,MAAMv2H,EAAS5P,QAAoB,OAAOA,MAAe4P,EAAOk2J,kBAAkB5xJ,GAAU,GAClNlU,SACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAM0B,EAAS5P,QACfA,MAAc4P,EAAO22H,iBACrBvmI,MAAc,UAAW,+BAAzBA,CAAyD,UAAW4P,EAAO42H,YAC3ExmI,QACAA,MAAe,WAAY,EAA3BA,CAA8B,4BAA4B,EAA1DA,CAAgE,2BAA2B,GAC3FA,MAAa,GACbA,MAAc,mBAAoB4P,EAAO+2H,gBAAkB/2H,EAAOg3H,iBAClE5mI,QACAA,MAAc,OAAQ4P,EAAOtI,QAC7BtH,QACAA,MAAe,aAAc4P,EAAOm2J,cAAgB,OAASn2J,EAAO4hJ,cAAgB,QACpFxxJ,QACAA,MAAc,OAAQ4P,EAAOm2J,eAC7B/lK,QACAA,MAAc,QAAS4P,EAAOm2J,eAC9B/lK,MAAa,GACbA,MAAc,mBAAoB4P,EAAOm3H,gBAAkBn3H,EAAOo3H,iBAClEhnI,QACAA,MAAe,WAAY,EAA3BA,CAA8B,4BAA4B,EAA1DA,CAAgE,2BAA2B,EAC/F,CAAE,CACF,MAAMgmK,GAAwB,CAC1B3tI,QAAS6uG,MACTC,eAAaC,OAAW,IAAM6+B,IAC9BpgI,OAAO,GACT,IACIqgI,GAAU,MAAhB,MAAMA,UAAmB55J,GACrB0lB,GACA+oC,OACA21E,SACAnoB,QACAv7G,MACAoC,SACAgyE,QACAkwE,SACA6U,aACA7B,YACAr2J,SACAm6D,UACA36D,QAAU,IAAIF,MACdsnE,aAAe,IAAItnE,MACnB64J,cAAc/kK,GACVhI,KAAKoU,QAAQC,KAAKrM,EACtB,CACA8iK,mBAAmB9iK,GACfhI,KAAKw7E,aAAannE,KAAKrM,EAC3B,CACA23G,iBAA6B,MAAQ,IAAIqtD,EAAyB,OAAO,SAA4B5uI,GAAqB,OAAQ4uI,IAA4BA,EAA0BrmK,MAAyBkmK,KAAczuI,GAAqByuI,EAAa,CAAG,EAAvO,GAC7BltD,iBAA4Bh5G,MAAqB,CAAE3D,KAAM6pK,EAAYv4J,UAAW,CAAC,CAAC,iBAAkBC,OAAQ,CAAEokB,GAAI,KAAM+oC,OAAQ,SAAU21E,SAAU,CAAC,EAAG,WAAY,WAAY9nB,OAAmBL,QAAS,CAAC,EAAG,UAAW,UAAWK,OAAmB57G,MAAO,QAASoC,SAAU,CAAC,EAAG,WAAY,WAAYw5G,OAAmBxnC,QAAS,CAAC,EAAG,UAAW,UAAWwnC,OAAmB0oC,SAAU,CAAC,EAAG,WAAY,WAAYpgC,OAAkBi1C,aAAc,eAAgB7B,YAAa,cAAer2J,SAAU,WAAYm6D,UAAW,CAAC,EAAG,YAAa,YAAawgD,QAAqB/6G,QAAS,CAAEJ,QAAS,UAAWonE,aAAc,gBAAkB8nC,YAAY,EAAMtzB,SAAU,CAACrpF,MAA6BA,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,GAAIC,OAAQ,CAAC,CAAC,OAAQ,SAAU,UAAW,GAAI,EAAG,QAAS,aAAc,KAAM,UAAW,WAAY,CAAC,EAAG,QAAS,CAAC,EAAG,mBAAoB,2BAA4B,CAAC,aAAc,6BAA8B,EAAG,QAAS,CAAC,aAAc,6BAA8B,EAAG,QAAS,CAAC,aAAc,8BAA+B,CAAC,aAAc,+BAAgCC,SAAU,SAA6BC,EAAIC,GAAgB,EAALD,IACnqClO,MAAkB,EAAG,KAAM,GAC3BA,MAAc,QAAS,SAAiDkU,GAAU,OAAO/F,EAAIi4J,cAAclyJ,EAAS,EAApHlU,CAAuH,aAAc,SAAsDkU,GAAU,OAAO/F,EAAIg2J,mBAAmBjwJ,EAAS,GAC5OlU,MAAc,EAAGu+J,GAAoC,EAAG,EAAG,eAAgB,EAA3Ev+J,CAA8E,EAAGw+J,GAA4B,EAAG,EAAG,OAAQ,EAA3Hx+J,CAA8H,EAAG0+J,GAAoC,EAAG,EAAG,eAAgB,GAC3L1+J,SACO,EAALkO,IACFlO,MAAc,KAAMmO,EAAI6jB,GAAxBhyB,CAA4B,UAAWA,MAAmB,GAAIsO,GAAKH,EAAImjJ,SAAW,MAAlFtxJ,CAAyF,UAAWA,MAAmB,GAAIsQ,GAAKnC,EAAIuiI,WAAaviI,EAAIi6D,UAAWj6D,EAAIiB,SAAUjB,EAAIo6G,UAClLvoH,MAAe,aAAcmO,EAAInB,MAAjChN,CAAwC,eAAgBmO,EAAIm2J,YAA5DtkK,CAAyE,gBAAiBmO,EAAIg4J,aAA9FnmK,CAA4G,gBAAiBmO,EAAIuiI,SAAjI1wI,CAA2I,iBAAkBmO,EAAIo6G,QAAjKvoH,CAA0K,mBAAoBmO,EAAIuiI,SAAlM1wI,CAA4M,kBAAmBmO,EAAIiB,UACnOpP,QACAA,MAAc,OAAQmO,EAAIi6D,WAC1BpoE,QACAA,MAAc,QAASmO,EAAIF,UAC3BjO,QACAA,MAAc,mBAAoBmO,EAAIF,SAAtCjO,CAAgD,0BAA2BA,MAAmB,GAAImsH,GAAKh+G,EAAI4sD,SAC7G,EAAG4uD,aAAc,CAACxxF,MAAcl4B,MAAYA,MAASA,MAAqBA,MAAYk6B,MAAc6wF,GAAQguB,GAAWmQ,IAAYv/B,cAAe,IAC3J,OArCKs8C,CAAU,KAmHVD,GAAM,MAAZ,MAAMA,UAAe35J,GACjBuqD,KACAyvG,cAKAt0I,GAKAw/H,aAAe,QAKflqJ,OAKA3L,KAKAyqC,MAKAogG,WAKAv3D,WAKAs3D,gBAKAgU,SAKAne,SAKAkhC,SAKA3/C,SAKA0S,SAAW,EAKX,eAAI6L,CAAYvzG,GACZtvB,KAAKktK,aAAatoK,IAAI0qB,EAC1B,CACA,eAAIuzG,GACA,OAAO7iI,KAAKktK,aAAaC,YAC7B,CAKA7iG,YAKAu+F,kBAKAuE,aAKAn2C,QAAU,WAKV6L,QAKAuqC,QAKAC,SAKAC,aAKAv+C,UAKAw+C,mBAAoB,EAKpBz+F,WAAY,EAKZo1F,aAKA9lD,SAAU,EAKVsmD,YAKA8I,YAKAC,eAKApJ,iBAAmB,QAKnBqJ,oBAAsB,QAMtBC,kBAAmB,EAKnBvpJ,MAKA6+G,UAKA2qC,mBAAqB,GAKrBpoG,aAAe,GAKfszF,MAAO,EAKP2T,cAKA9C,sBAKAC,qBAKAvnJ,KAKA8vI,eAKA0W,gBAKA/3C,UAKAiS,eAKA8qC,gBAAkB,WAKlBjqB,UAKAluI,QAAU,GAKVqqJ,gBAAkB,QAKlBoG,qBAAuB,WAKvBjG,kBAKA4N,cAAe,EAKfC,eAAgB,EAKhBC,iBAAkB,EAKlBC,iBAAkB,EAKlBv7C,MAKA,YAAI58G,GACA,OAAO/V,KAAK0nJ,SAChB,CACA,YAAI3xI,CAAS2xI,GACLA,IACA1nJ,KAAKkvH,SAAU,EACXlvH,KAAKg9H,gBACLh9H,KAAKm0J,QAEbn0J,KAAK0nJ,UAAYA,EACZ1nJ,KAAKmgH,GAAGz0D,WACT1rD,KAAKmgH,GAAGgZ,eAEhB,CAMA,YAAI8+B,GACA,OAAOj4J,KAAKk4J,SAChB,CACA,YAAID,CAAS3oI,GACTtvB,KAAKk4J,UAAY5oI,EACjB/pB,QAAQ6Z,IAAI,mFAChB,CACA84I,UAMA,cAAIjpB,GACA,OAAOjvI,KAAK2yJ,WAChB,CACA,cAAI1jB,CAAW3/G,GACXtvB,KAAK2yJ,YAAcrjI,EACnB/pB,QAAQ6Z,IAAI,4FAChB,CACAuzI,YAMA,cAAIj2B,GACA,OAAO18H,KAAK4yJ,WAChB,CACA,cAAIl2B,CAAWptG,GACXtvB,KAAK4yJ,YAActjI,EACnB/pB,QAAQ6Z,IAAI,4FAChB,CACAwzI,YAMA,yBAAIxlB,GACA,OAAOptI,KAAK6yJ,sBAChB,CACA,yBAAIzlB,CAAsB99G,GACtBtvB,KAAK6yJ,uBAAyBvjI,EAC9B/pB,QAAQ6Z,IAAI,uGAChB,CACAyzI,uBAMA,yBAAIxlB,GACA,OAAOrtI,KAAK8yJ,sBAChB,CACA,yBAAIzlB,CAAsB/9G,GACtBtvB,KAAK8yJ,uBAAyBxjI,EAC9B/pB,QAAQ6Z,IAAI,uGAChB,CACA0zI,uBAKA,eAAIuZ,GACA,OAAOrsK,KAAK4oK,cAChB,CACA,eAAIyD,CAAY/8I,GACZ9Z,WAAW,KACPxV,KAAK4oK,aAAahkK,IAAI0qB,EAAG,EAEjC,CAKA,WAAI5jB,GAEA,OADgB1L,KAAKuyB,UAEzB,CACA,WAAI7mB,CAAQ4jB,IACR,EAAK0sG,OAAW1sG,EAAKtvB,KAAKuyB,aACtBvyB,KAAKuyB,SAAS3tB,IAAI0qB,EAE1B,CAMA+xH,SAAW,IAAIntI,MAMfi6J,SAAW,IAAIj6J,MAMf4qG,QAAU,IAAI5qG,MAMd6qG,OAAS,IAAI7qG,MAMbE,QAAU,IAAIF,MAMd09H,OAAS,IAAI19H,MAMbm/I,OAAS,IAAIn/I,MAMb6pG,QAAU,IAAI7pG,MAMdwlJ,WAAa,IAAIxlJ,MACjB8sG,mBAAkBnB,OAAOilD,IACzBsJ,gBACAC,oBACAC,uBACAC,eACAC,SACAhb,iBACAib,qCACAC,oCAEA,aAAIC,GAcA,OAbgB3uK,KAAKghH,gBAAgB3rG,QAChCi6C,KAAK,CAAE8xD,SAAUphH,OACjBgM,IAAK4iK,GACa,iBAARA,EACAA,EAGArtK,OAAO2I,KAAK0kK,GACd3gK,OAAQgQ,GAAQ2wJ,EAAI3wJ,IACpBoP,KAAK,MAGbA,KAAK,KACO,IAAMrtB,KAAK41E,UAChC,CACA,aAAIi5F,GACA,OAAO7uK,KAAK+sC,KAChB,CACA26G,UACAonB,aAKAtZ,aAKAiV,cAKAvU,eAKA2P,qBAKAv4B,eAKAy6B,eAKAr6B,eAKA89B,oBAKAE,cAKAjE,qBAKA9zC,oBAKAiN,kBAKA0nC,mBAKAyG,eAKAC,gBAKAC,mBACA73C,UACAq+B,cACAqQ,sBACAv4B,gBACAy6B,gBACAr6B,gBACA89B,qBACAE,eACAjB,eACAvU,gBACAuR,sBACA9zC,qBACAiN,mBACA0nC,oBACA2G,oBACAC,gBACAC,iBACAnH,cACA11I,YAAWgvH,OAAO,MAClB2rB,gBAAe3rB,YAAOjgJ,GACtB0iK,cAAaziB,OAAO,MACpB7uI,MACA4/H,cAAgBA,OAChBC,eAAiBA,OACjB88B,MACAngD,QACA8N,eACAsyC,eACA3qG,MACA4qG,kBACAC,YACAC,sBACA7G,gBAAernB,OAAO,MACtBmuB,YACAC,YACAC,cACAC,mBACAC,kBACAC,oBACAtL,sBAAqBljB,QAAO,GAC5ByuB,QACAC,OACAC,WAAU3uB,QAAO,GACjB,qBAAIuqB,GACA,OAAO9rK,KAAKylE,cAAgBzlE,KAAKmZ,OAAOulD,eAAeu1E,MAAgBk8B,cAC3E,CACA,2BAAI9E,GACA,OAAOrrK,KAAK6tK,oBAAsB7tK,KAAKmZ,OAAOulD,eAAeu1E,MAAgBm8B,qBACjF,CACA,sBAAIC,GACA,OAA4B,MAArBrwK,KAAKgkK,cAAwBhkK,KAAKswK,qBAAuBtwK,KAAKkjI,YAAcljI,KAAK+V,QAC5F,CACA,aAAIq2J,GACA,OAAOpsK,KAAKmZ,OAAOulD,eAAeu1E,MAAgBs8B,MAAMnE,SAC5D,CACA,aAAIz4B,GACA,OAAO3zI,KAAKghH,gBAAgB3rG,QAAQi6C,KAAK,CAAE8xD,SAAUphH,MACzD,CACA,cAAI+gJ,GACA,MAAMptI,EAAQ3T,KAAK2T,QACnB,MAAO,CACH,kBAAkB,EAClB,gBAAiB3T,KAAK6iI,eAAiBlvH,IAAU3T,KAAK6iI,cACtD,yBAAyB7iI,KAAKikK,UAAajkK,KAAK6lK,sBAA0D,MAAVlyJ,GAA4B,iBAAVA,GAA6C,IAAjBA,EAAMtI,QAE5J,CACA,cAAI8iB,GACA,MAAO,CACH,gCAAgC,EAChC,iBAA+C,WAA7BnuB,KAAKmZ,OAAOmgH,cAA4D,WAA/Bt5H,KAAKmZ,OAAOogH,eACvE,qBAA8C,IAAzBv5H,KAAKmZ,OAAOg8D,SAEzC,CACA,mBAAIkxF,GACA,OAAqC,IAA9BrmK,KAAKykK,qBAA8B,GAAGzkK,KAAK24B,MAAM34B,KAAKykK,uBAAyB,IAC1F,CACAkF,kBAAiBx5C,OAAS,KACtB,MAAMzkH,EAAU1L,KAAKwwK,oCACrB,GAAIxwK,KAAK4oK,eAAgB,CAErB,MAAM6H,EADYzwK,KAAKstK,UAAYttK,KAAK2kK,aACD3kK,KAAKutK,cAAiBvtK,KAAKytK,YAO5DztK,KAAKitK,cAAch/J,OAAOvC,EAAS1L,KAAK0wK,eAAgB1wK,KAAK4oK,eAAex1H,OAAQpzC,KAAK8tK,gBAAiB9tK,KAAKotK,cAN/GptK,KAAK0L,QAAQuC,OAAQyzD,GACfA,EAAO/tD,OAC4F,IAA5F+tD,EAAO/tD,MAAMb,WAAWqN,cAAc7b,QAAQtE,KAAK4oK,eAAezoJ,cAAcizB,SAEE,IAAtFsuB,EAAO5uD,WAAWqN,cAAc7b,QAAQtE,KAAK4oK,eAAezoJ,cAAcizB,SAGzF,GAAIpzC,KAAKqkB,MAAO,CACZ,MACMssJ,EAAW,GACjBC,OAFqB5wK,KAAK0L,SAAW,IAExB6H,QAAS8Q,IAElB,MAAMwsJ,EADgB7wK,KAAK8wK,uBAAuBzsJ,GACdpW,OAAQ4D,GAAS4+J,EAAgB1qK,SAAS8L,IAC1Eg/J,EAAcxlK,OAAS,GACvBslK,EAASt9J,KAAK,IACPgR,EACH,CAAqC,iBAA7BrkB,KAAK2tK,oBAAmC3tK,KAAK2tK,oBAAsB,SAAU,IAAIkD,IAC5F,GAEF7wK,KAAK+wK,YAAYJ,EAC5B,CACA,OAAOF,CACX,CACA,OAAO/kK,IAEXiI,SAAQw8G,OAAS,KAGb,MAAMzkH,EAAU1L,KAAKwwK,oCAEfQ,EAAsBtlK,EAAQsxE,UAAWtb,GAAW1hE,KAAKixK,8BAA8BvvG,IAC7F,OAA+B,IAAxBsvG,EAA6BhxK,KAAK+qK,eAAer/J,EAAQslK,IAAwBhxK,KAAK6iI,eAAiB,iBAElHlK,UAASxI,OAAS,IACmB,iBAAtBnwH,KAAKgkK,eACHhkK,KAAKgkK,aACM,iBAAjBhkK,KAAK2T,cAAoDrS,IAAtBtB,KAAKgkK,cAAoD,OAAtBhkK,KAAKgkK,cAEtF+B,eACAmL,sBAAqB/gD,OAAS,IAAMnwH,KAAK+qK,eAAe/qK,KAAK+lK,iBAAmB/lK,KAAKgkK,cAAgB,IACrGlkK,YAAY09D,EAAMyvG,GACd9sK,QACAH,KAAKw9D,KAAOA,EACZx9D,KAAKitK,cAAgBA,KACrBn7C,OAAO,KACH,MAAMkyC,EAAahkK,KAAKgkK,aAClB2F,EAAiB3pK,KAAK2pK,iBAC5B,GAAIA,MAAkBj6C,OAAWi6C,GAAiB,CAC9C,MAAMqH,EAAsBhxK,KAAKmxK,4BACL,IAAxBH,QAA6C1vK,IAAf0iK,GAAmD,iBAAfA,GAAiD,IAAtBA,EAAW34J,QAAiBrL,KAAKoxK,sBAAwBpxK,KAAKikK,YAC3JjkK,KAAK+lK,eAAiB4D,EAAeqH,GAE7C,EACA,EAAIx5H,OAAQmyH,UAAmCroK,IAAf0iK,GAA4BhkK,KAAKoxK,wBAAmB,EAAM1hD,OAAW1vH,KAAK+lK,kBACtG/lK,KAAK+lK,eAAiB,WAEPzkK,IAAf0iK,GAA4BhkK,KAAKikK,UACjCjkK,KAAKqxK,sBAETrxK,KAAKmgH,GAAG0zB,cAAa,EAE7B,CACAu9B,qBACI,OAA6B,OAAtBpxK,KAAKgkK,eAA0BhkK,KAAKixK,8BAA8BjxK,KAAK+lK,eAClF,CACAyK,oCACI,OAAOxwK,KAAKqkB,MAAQrkB,KAAK+wK,YAAY/wK,KAAK0L,SAAW1L,KAAK0L,SAAW,EACzE,CACAyI,WACIhU,MAAMgU,WACNnU,KAAK24B,GAAK34B,KAAK24B,OAAMuoF,OAAK,UAC1BlhH,KAAKsxK,kBACDtxK,KAAKstK,WACLttK,KAAKioK,cAAgB,CACjBh6J,OAASyE,GAAU1S,KAAKyoK,oBAAoB/1J,GAC5CyzC,MAAOA,IAAMnmD,KAAKuxK,eAG9B,CACAj6C,qBACIt3H,KAAKo3H,UAAU7jH,QAAS1B,IACpB,OAAQA,EAAK0lH,WACT,IAAK,OAgDL,QACIv3H,KAAKy1J,cAAgB5jJ,EAAK+C,SAC1B,MA/CJ,IAAK,eACD5U,KAAK8lK,sBAAwBj0J,EAAK+C,SAClC,MACJ,IAAK,SACD5U,KAAKutI,gBAAkB17H,EAAK+C,SAC5B,MACJ,IAAK,SACD5U,KAAKgoK,gBAAkBn2J,EAAK+C,SAC5B,MACJ,IAAK,SACD5U,KAAK2tI,gBAAkB97H,EAAK+C,SAC5B,MACJ,IAAK,cACD5U,KAAKyrK,qBAAuB55J,EAAK+C,SACjC,MACJ,IAAK,QACD5U,KAAK2rK,eAAiB95J,EAAK+C,SAC3B,MACJ,IAAK,QACD5U,KAAK0qK,eAAiB74J,EAAK+C,SAC3B,MACJ,IAAK,SACD5U,KAAKm2J,gBAAkBtkJ,EAAK+C,SAC5B,MACJ,IAAK,eACD5U,KAAK0nK,sBAAwB71J,EAAK+C,SAClC,MACJ,IAAK,cACD5U,KAAK4zH,qBAAuB/hH,EAAK+C,SACjC,MACJ,IAAK,YACD5U,KAAK6gI,mBAAqBhvH,EAAK+C,SAC/B,MACJ,IAAK,aACD5U,KAAKuoK,oBAAsB12J,EAAK+C,SAChC,MACJ,IAAK,aACD5U,KAAKkvK,oBAAsBr9J,EAAK+C,SAChC,MACJ,IAAK,SACD5U,KAAKmvK,gBAAkBt9J,EAAK+C,SAC5B,MACJ,IAAK,UACD5U,KAAKovK,iBAAmBv9J,EAAK+C,SAKrC,EAER,CACAw6G,qBAWI,GAVIpvH,KAAKsvK,gBAAkBtvK,KAAKg9H,iBAC5Bh9H,KAAKsvK,gBAAiB,EACtBtvK,KAAKw9D,KAAKX,kBAAkB,KACxBrnD,WAAW,KACHxV,KAAKwzJ,kBACLxzJ,KAAKwzJ,iBAAiBjvC,cAAa,EAExC,EAAC,IAGRvkH,KAAKyvK,uBAAyBzvK,KAAK8uK,aAAc,CACjD,IAAI0C,KAAeztD,OAAW/jH,KAAKwzJ,kBAAkBA,kBAAkB/9E,cAAe,kBAClF+7F,MACAnqD,OAAarnH,KAAK8uK,aAAc0C,GAEpCxxK,KAAKyvK,uBAAwB,CACjC,CACJ,CACAsB,YAAYrlK,GACR,OAAQA,GAAW,IAAI8hF,OAAO,CAACnoF,EAAQq8D,EAAQ/sC,KAC3CtvB,EAAOgO,KAAK,CAAEsuD,YAAaD,EAAQr9C,OAAO,EAAMsQ,UAChD,MAAMg5I,EAAsB3tK,KAAK8wK,uBAAuBpvG,GACxDisG,UAAuBA,EAAoBp6J,QAASykE,GAAM3yE,EAAOgO,KAAK2kE,IAC/D3yE,GACR,GACP,CACAisK,kBAKI,GAJItxK,KAAKguK,eAAiBhuK,KAAKiuK,kBAAoBjuK,KAAKswK,sBACpDtwK,KAAKykK,mBAAmB7/J,IAAI5E,KAAKyxK,+BACjCzxK,KAAK6qK,eAAe,KAAM7qK,KAAK2pK,iBAAiB3pK,KAAKykK,uBAAuB,IAE5EzkK,KAAK4tK,mBAA2C,OAAtB5tK,KAAKgkK,mBAA+C1iK,IAAtBtB,KAAKgkK,gBACxDhkK,KAAK6iI,cAAe,CACrB,MAAM6uC,EAAM1xK,KAAK2xK,uBACjB3xK,KAAK6qK,eAAe,KAAM7qK,KAAK2pK,iBAAiB+H,IAAM,GAAO,EACjE,CAER,CACA7G,eAAe7iK,EAAO05D,EAAQkwG,GAAS,EAAMC,GAAgB,GACzD,IAAK7xK,KAAKyW,WAAWirD,GAAS,CAC1B,MAAMhvD,EAAQ1S,KAAK8xK,eAAepwG,GAClC1hE,KAAKi2I,YAAYvjI,EAAO1K,GACxBhI,KAAKykK,mBAAmB7/J,IAAI5E,KAAKmxK,4BACf,IAAlBU,GAA2B7xK,KAAKqhJ,SAAShtI,KAAK,CAAE8jI,cAAenwI,EAAO0K,MAAOA,GACjF,CACIk/J,GACA5xK,KAAKm0J,MAAK,EAElB,CACA2W,mBAAmB9iK,EAAO2sB,GAClB30B,KAAK+tK,cACL/tK,KAAK+xK,yBAAyB/pK,EAAO2sB,EAE7C,CACAshH,YAAYvjI,EAAO1K,GACfhI,KAAK0S,MAAQA,EACb1S,KAAKsyI,cAAc5/H,GACnB1S,KAAKgkK,WAAWp/J,IAAI8N,GACpB1S,KAAKyvK,uBAAwB,CACjC,CACAryB,WAAW1qI,GACH1S,KAAKiO,QACLjO,KAAKuxK,cAETvxK,KAAK0S,MAAQA,EACb1S,KAAKgyK,oBAAsBhyK,KAAKsyI,cAAc5/H,GAC9C1S,KAAKgkK,WAAWp/J,IAAI5E,KAAK0S,OACzB1S,KAAKqxK,sBACLrxK,KAAKmgH,GAAG0zB,cACZ,CACAm+B,mBACI,OAAOhyK,KAAK4tK,mBAAqB5tK,KAAK6iI,qBAAwCvhI,IAAtBtB,KAAKgkK,cAAoD,OAAtBhkK,KAAKgkK,gBAA2BhkK,KAAKikK,UAAYjkK,KAAK0L,SAAW1L,KAAK0L,QAAQL,MAC7K,CACAoL,WAAWirD,GACP,OAAO1hE,KAAKiyK,cAAcvwG,IAAW1hE,KAAKixK,8BAA8BvvG,EAC5E,CACAuvG,8BAA8BvvG,GAC1B,SAAOi4D,OAAO35H,KAAKgkK,aAAchkK,KAAK8xK,eAAepwG,GAAS1hE,KAAKkyK,cACvE,CACArlE,kBACQ7sG,KAAKikK,UACLjkK,KAAKqxK,sBAETrxK,KAAKmyK,mCACT,CACAA,oCACI,MAAMrtD,EAAgB9kH,KAAKg7D,GAAGya,cAAcqvC,cACtCstD,EAAoBttD,GAAe32D,UAAUC,SAAS,iBAC5D,GAAI02D,GAAiBstD,IAAsBpyK,KAAK+lK,eAAgB,CAC5D,MAAMpyJ,EAAQmxG,EAAcn4E,cAAc,SACtCh5B,GACA3T,KAAKktK,aAAatoK,IAAI+O,EAAM4zF,YAEpC,CACJ,CACA8pE,sBACQrxK,KAAKsuK,yBACLtuK,KAAKsuK,uBAAuB74F,cAAc/iE,MAAQ1S,KAAK+qK,eAAe/qK,KAAK+lK,iBAAmB/lK,KAAKgkK,cAAgB,GAE3H,CACAqO,qBACQryK,KAAKsuK,yBACLtuK,KAAKsuK,uBAAuB74F,cAAc/iE,MAAQ,GAE1D,CACA83J,eAAe71I,EAAO29I,GAClB,OAAOtyK,KAAKuyK,wBAA0B59I,EAAQ29I,GAAmBA,EAAgBlT,eAAezqI,GAAOA,KAC3G,CACAo2I,eAAerpG,GACX,OAAO1hE,WAAK2kK,aAAkD,EAAO5qC,OAAiBr4D,EAAQ1hE,KAAK2kK,aAAejjG,QAA2BpgE,IAAjBogE,EAAO/tD,MAAsB+tD,EAAO/tD,MAAQ+tD,CAC5K,CACAowG,eAAepwG,GACX,OAAO1hE,KAAKytK,aAAoC,OAArBztK,KAAKytK,aAAgB,EAAO1zC,OAAiBr4D,EAAQ1hE,KAAKytK,cAAgBztK,KAAK2kK,aAAejjG,QAA2BpgE,IAAjBogE,EAAOhvD,MAAsBgvD,EAAOhvD,MAAQgvD,CACnL,CACAgjG,iBAAiBhjG,GACb,QAAI1hE,KAAK8xK,eAAe9xK,KAAKgkK,gBAAkBhkK,KAAK8xK,eAAepwG,IAAY1hE,KAAK+qK,eAAe/qK,KAAKgkK,eAAiBhkK,KAAK+qK,eAAerpG,MAAgC,IAApBA,EAAO3rD,YAIrJ/V,KAAK0tK,kBAAiB3zC,OAAiBr4D,EAAQ1hE,KAAK0tK,mBAAkBhsG,QAA8BpgE,IAApBogE,EAAO3rD,WAAyB2rD,EAAO3rD,SAEtI,CACAm0J,oBAAoBvoG,GAChB,OAAO3hE,WAAKskK,kBAA4D,EAAOvqC,OAAiBp4D,EAAa3hE,KAAKskK,kBAAoB3iG,QAAqCrgE,IAAtBqgE,EAAYhuD,MAAsBguD,EAAYhuD,MAAQguD,CAC/M,CACAmvG,uBAAuBnvG,GACnB,OAAO3hE,WAAK2tK,qBAAkE,EAAO5zC,OAAiBp4D,EAAa3hE,KAAK2tK,qBAAuBhsG,EAAY67C,KAC/J,CACAwtD,gBAAgBr2I,GACZ,OAAS30B,KAAKskK,iBACR3vI,EACE30B,KAAK2pK,iBACAtpJ,MAAM,EAAGsU,GACT1mB,OAAQyzD,GAAW1hE,KAAKmrK,cAAczpG,IAASr2D,OACtDspB,GAAS,CACnB,CACA,eAAIs2I,GACA,OAAOjrK,KAAK2pK,iBAAiB17J,OAAQyzD,IAAY1hE,KAAKmrK,cAAczpG,IAASr2D,MACjF,CAKAkmK,cACIvxK,KAAK4oK,aAAahkK,IAAI,MAClB5E,KAAKouK,iBAAmBpuK,KAAKouK,gBAAgB34F,gBAC7Cz1E,KAAKouK,gBAAgB34F,cAAc/iE,MAAQ,GAEnD,CACA2qI,iBAAiBz6F,GACb5iD,KAAKsyI,cAAgB1vF,CACzB,CACA06F,kBAAkB16F,GACd5iD,KAAKuyI,eAAiB3vF,CAC1B,CACA26F,iBAAiBjuH,GACbtvB,KAAK+V,SAAWuZ,EAChBtvB,KAAKmgH,GAAG0zB,cACZ,CACA2+B,iBAAiBxqK,GACThI,KAAK+V,UAAY/V,KAAKkhJ,UAAYlhJ,KAAKq+G,UAG3Cr+G,KAAKquK,qBAAqB54F,cAAcopC,MAAM,CAAE4zD,eAAe,IAClC,UAAzBzqK,EAAMg3C,OAAOq7F,SAAwE,cAAjDryI,EAAMg3C,OAAOm3C,aAAa,qBAAsCnuF,EAAMg3C,OAAOs3E,QAAQ,qCAGnHt2H,KAAKwzJ,mBAAqBxzJ,KAAKwzJ,iBAAiBx4F,GAAGya,cAAcrnB,SAASpmD,EAAMg3C,WACtFh/C,KAAKg9H,eAAiBh9H,KAAKm0J,MAAK,GAAQn0J,KAAKgW,MAAK,IAEtDhW,KAAKoU,QAAQC,KAAKrM,GAClBhI,KAAKkwK,QAAQtrK,KAAI,GACjB5E,KAAKmgH,GAAGgZ,iBACZ,CACA3hF,UACI,OAAQx3C,KAAKuyB,YAAevyB,KAAK2pK,kBAAqD,IAAjC3pK,KAAK2pK,iBAAiBt+J,MAC/E,CACAk7J,gBAAgBv+J,GACZ,MAAM0K,EAAQ1K,EAAMg3C,OAAOtsC,MAC3B1S,KAAK0vK,YAAc,IACH1vK,KAAK0yK,cAAc1qK,EAAO0K,IAC9B1S,KAAKykK,mBAAmB7/J,KAAI,GACxC5E,KAAKsyI,cAAc5/H,GACnB1S,KAAKi2I,YAAYvjI,EAAO1K,GACxBwN,WAAW,KACPxV,KAAKqhJ,SAAShtI,KAAK,CAAE8jI,cAAenwI,EAAO0K,MAAOA,GAAO,EAC1D,IACF1S,KAAKg9H,mBAAkBtN,OAAWh9G,IAAU1S,KAAKgW,MACtD,CAKAA,KAAKg+I,GACDh0J,KAAKg9H,gBAAiB,EACtBh9H,KAAKykK,mBAAmB7/J,KAAkC,IAA9B5E,KAAKykK,qBAA8BzkK,KAAKykK,qBAAuBzkK,KAAKiuK,gBAAkBjuK,KAAKyxK,8BAAgCzxK,KAAKikK,UAAW,EAAKjkK,KAAKmxK,2BAC7Knd,MACAn1C,OAAM7+G,KAAKquK,qBAAqB54F,eAEpCz1E,KAAKmgH,GAAG0zB,cACZ,CACA9G,wBAAwB/kI,GACpB,GAAsB,YAAlBA,EAAMmjC,QAAuB,CAG7B,GAFAnrC,KAAK8uK,gBAAe/qD,OAAW/jH,KAAKwzJ,kBAAkBA,kBAAkB/9E,cAAez1E,KAAK0sK,cAAgB,cAAgB,6BAC5H1sK,KAAK0sK,eAAiB1sK,KAAKwuK,UAAUzT,aAAa/6J,KAAKuuK,gBAAgB94F,eACnEz1E,KAAK0L,SAAW1L,KAAK0L,QAAQL,OAC7B,GAAIrL,KAAK0sK,cAAe,CACpB,MAAMiG,EAAgB3yK,KAAKgkK,aAAehkK,KAAKykK,sBAAuB,GAChD,IAAlBkO,GACA3yK,KAAKwuK,UAAUhT,cAAcmX,EAErC,KACK,CACD,IAAIC,KAAmB7uD,OAAW/jH,KAAK8uK,aAAc,gCACjD8D,GACAA,EAAiBC,eAAe,CAAEC,MAAO,UAAW31C,OAAQ,WAEpE,CAEAn9H,KAAKouK,iBAAmBpuK,KAAKouK,gBAAgB34F,gBAC7Cz1E,KAAK+vK,qBAAsB,EACvB/vK,KAAKkuK,kBAAoBluK,KAAKikK,UAC9BjkK,KAAKouK,gBAAgB34F,cAAcopC,SAG3C7+G,KAAK4xI,OAAOv9H,KAAKrM,EACrB,CACsB,SAAlBA,EAAMmjC,UACNnrC,KAAK8uK,aAAe,KACpB9uK,KAAKuyI,iBACLvyI,KAAKqzJ,OAAOh/I,KAAKrM,GAEzB,CAKAmsJ,KAAKH,GACDh0J,KAAKg9H,gBAAiB,EACtBh9H,KAAKykK,mBAAmB7/J,KAAI,GAC5B5E,KAAKkwK,QAAQtrK,KAAI,GACjB5E,KAAK0vK,YAAc,GACe,UAA9B1vK,KAAKoyJ,gBAAgB95H,OAAS,EAC9B21F,SAEAjuH,KAAKiO,QAAUjO,KAAKwtK,mBACpBxtK,KAAKuxK,cAELvd,IACIh0J,KAAKquK,wBACLxvD,OAAM7+G,KAAKquK,qBAAqB54F,eAEhCz1E,KAAKikK,UAAYjkK,KAAKsuK,2BACtBzvD,OAAM7+G,KAAKsuK,wBAAwB74F,gBAG3Cz1E,KAAKmgH,GAAG0zB,cACZ,CACAzR,aAAap6H,GACT,GAAIhI,KAAK+V,SAEL,OAEJ/V,KAAKkvH,SAAU,EACf,MAAMu1C,GAAmD,IAA9BzkK,KAAKykK,qBAA8BzkK,KAAKykK,qBAAuBzkK,KAAKg9H,gBAAkBh9H,KAAKiuK,gBAAkBjuK,KAAKyxK,+BAAgC,EAC7KzxK,KAAKykK,mBAAmB7/J,IAAI6/J,GAC5BzkK,KAAKg9H,gBAAkBh9H,KAAKqnH,aAAarnH,KAAKykK,sBAC9CzkK,KAAK8+G,QAAQzqG,KAAKrM,EACtB,CACAu6H,YAAYv6H,GACRhI,KAAKkvH,SAAU,EACflvH,KAAK++G,OAAO1qG,KAAKrM,GACZhI,KAAK+vK,qBACN/vK,KAAKuyI,iBAETvyI,KAAK+vK,qBAAsB,CAC/B,CACAnoB,UAAU5/I,EAAOwiB,GAAS,GACtB,KAAIxqB,KAAK+V,UAAY/V,KAAKkhJ,UAAYlhJ,KAAKq+G,SAG3C,QAAQr2G,EAAM5F,MAEV,IAAK,YACDpC,KAAK+yK,eAAe/qK,GACpB,MAEJ,IAAK,UACDhI,KAAKgzK,aAAahrK,EAAOhI,KAAKikK,UAC9B,MACJ,IAAK,YACL,IAAK,aACDjkK,KAAKizK,eAAejrK,EAAOhI,KAAKikK,UAChC,MACJ,IAAK,SACDjkK,KAAKkzK,YAAYlrK,GACjB,MACJ,IAAK,OACDhI,KAAKmzK,UAAUnrK,EAAOhI,KAAKikK,UAC3B,MACJ,IAAK,MACDjkK,KAAKozK,SAASprK,EAAOhI,KAAKikK,UAC1B,MACJ,IAAK,WACDjkK,KAAKqzK,cAAcrrK,GACnB,MACJ,IAAK,SACDhI,KAAKszK,YAAYtrK,GACjB,MAEJ,IAAK,QACDhI,KAAKuzK,WAAWvrK,EAAOwiB,GACvB,MAEJ,IAAK,QACL,IAAK,cACDxqB,KAAKwzK,WAAWxrK,GAChB,MAEJ,IAAK,SACDhI,KAAKyzK,YAAYzrK,GACjB,MACJ,IAAK,MACDhI,KAAK0zK,SAAS1rK,GACd,MACJ,IAAK,YACDhI,KAAK2zK,eAAe3rK,EAAOhI,KAAKikK,UAChC,MACJ,IAAK,YACL,IAAK,aAED,MACJ,SACSj8J,EAAM4rK,YAAWl4C,OAAqB1zH,EAAMiW,QAC5Cje,KAAKg9H,gBAAkBh9H,KAAKgW,QAC5BhW,KAAKikK,UAAYjkK,KAAK0yK,cAAc1qK,EAAOA,EAAMiW,MAI9Dje,KAAKkwK,QAAQtrK,KAAI,EAAK,CAC1B,CACA8jK,gBAAgB1gK,GACZ,OAAQA,EAAM5F,MACV,IAAK,YACDpC,KAAK+yK,eAAe/qK,GACpB,MACJ,IAAK,UACDhI,KAAKgzK,aAAahrK,GAAO,GACzB,MACJ,IAAK,YACL,IAAK,aACDhI,KAAKizK,eAAejrK,GAAO,GAC3B,MACJ,IAAK,OACDhI,KAAKmzK,UAAUnrK,GAAO,GACtB,MACJ,IAAK,MACDhI,KAAKozK,SAASprK,GAAO,GACrB,MACJ,IAAK,QACL,IAAK,cACDhI,KAAKwzK,WAAWxrK,GAAO,GACvB,MACJ,IAAK,SACDhI,KAAKyzK,YAAYzrK,GACjB,MACJ,IAAK,MACDhI,KAAK0zK,SAAS1rK,GAAO,GAKjC,CACA2gK,aAAa3gK,GACThI,KAAKykK,mBAAmB7/J,KAAI,EAChC,CACAmuK,eAAe/qK,GACX,GAAKhI,KAAKg9H,eAIL,CACD,MAAM62C,GAA4C,IAA9B7zK,KAAKykK,qBAA8BzkK,KAAK8zK,oBAAoB9zK,KAAKykK,sBAAwBzkK,KAAKkwK,UAAYlwK,KAAK2xK,uBAAyB3xK,KAAKyxK,8BACjKzxK,KAAK+xK,yBAAyB/pK,EAAO6rK,EACzC,MANI7zK,KAAKgW,OACLhW,KAAKikK,UAAYjkK,KAAK+xK,yBAAyB/pK,EAAOhI,KAAKmxK,2BAS/DnpK,EAAM0S,iBACN1S,EAAM2S,iBACV,CACAo3J,yBAAyB/pK,EAAO2sB,GAC5B,GAAI30B,KAAKykK,uBAAyB9vI,IAC9B30B,KAAKykK,mBAAmB7/J,IAAI+vB,GAC5B30B,KAAKqnH,eACDrnH,KAAKguK,eAAe,CACpB,MAAMtsG,EAAS1hE,KAAK2pK,iBAAiBh1I,GACrC30B,KAAK6qK,eAAe7iK,EAAO05D,GAAQ,EACvC,CAER,CACA,2BAAI6wG,GACA,OAAQvyK,KAAK0sK,aACjB,CACArlD,aAAa1yF,GAAQ,GAEjB,GAAI30B,KAAKuuK,gBAAkBvuK,KAAKuuK,eAAe94F,cAAe,CAC1D,MAAMzqC,KAAU+4E,OAAW/jH,KAAKuuK,eAAe94F,cAAe,WAF7C,IAAV9gD,EAAe,GAAG30B,KAAK24B,MAAMhE,IAAU30B,KAAKqmK,qBAG/Cr7H,EACAA,EAAQ6nI,gBAAkB7nI,EAAQ6nI,eAAe,CAAEC,MAAO,UAAW31C,OAAQ,YAEvEn9H,KAAKuyK,yBACX/8J,WAAW,KACPxV,KAAK0sK,eAAiB1sK,KAAKwuK,UAAUhT,eAAwB,IAAV7mI,EAAeA,EAAQ30B,KAAKykK,qBAAoB,EACpG,EAEX,CACJ,CACA6L,oBACI,YAA6BhvK,IAAtBtB,KAAKgkK,YAChB,CACA+P,sBAAsBryG,GAClB,OAAO1hE,KAAKiyK,cAAcvwG,IAAW1hE,KAAKyW,WAAWirD,EACzD,CACAwwG,cACI,OAAOlyK,KAAKytK,YAAc,KAAOztK,KAAKqtK,OAC1C,CACAoE,8BACI,MAAMkB,EAAgB3yK,KAAKmxK,0BAC3B,OAAOwB,EAAgB,EAAI3yK,KAAK2xK,uBAAyBgB,CAC7D,CACAhB,uBACI,OAAO3xK,KAAK2pK,iBAAiB3sF,UAAWtb,GAAW1hE,KAAKiyK,cAAcvwG,GAC1E,CACAyvG,0BACI,OAAOnxK,KAAKswK,oBAAsBtwK,KAAK2pK,iBAAiB3sF,UAAWtb,GAAW1hE,KAAK+zK,sBAAsBryG,KAAW,CACxH,CACAoyG,oBAAoBn/I,GAChB,MAAMq/I,EAAqBr/I,EAAQ30B,KAAK2pK,iBAAiBt+J,OAAS,EAC5DrL,KAAK2pK,iBACFtpJ,MAAMsU,EAAQ,GACdqoD,UAAWtb,GAAW1hE,KAAKiyK,cAAcvwG,KAC5C,EACN,OAAOsyG,GAAqB,EAAKA,EAAqBr/I,EAAQ,EAAIA,CACtE,CACAs/I,oBAAoBt/I,GAChB,MAAMq/I,EAAqBr/I,EAAQ,KAAIknG,OAAc77H,KAAK2pK,iBAAiBtpJ,MAAM,EAAGsU,GAAS+sC,GAAW1hE,KAAKiyK,cAAcvwG,KAAW,EACtI,OAAOsyG,GAAqB,EAAKA,EAAqBr/I,CAC1D,CACAu/I,sBACI,SAAOr4C,OAAc77H,KAAK2pK,iBAAmBjoG,GAAW1hE,KAAKiyK,cAAcvwG,GAC/E,CACAyyG,6BACI,MAAMxB,EAAgB3yK,KAAKmxK,0BAC3B,OAAOwB,EAAgB,EAAI3yK,KAAKk0K,sBAAwBvB,CAC5D,CACAV,cAAcvwG,GACV,OAA0C,MAAXA,KAAqB1hE,KAAK0kK,iBAAiBhjG,IAAW1hE,KAAKmrK,cAAczpG,GAC5G,CACAypG,cAAczpG,GACV,OAAO1hE,WAAKskK,kBAALtkK,MAAyE0hE,EAAOC,aAA4DD,EAAOr9C,KAC9J,CACA2uJ,aAAahrK,EAAOosK,GAAqB,GACrC,GAAIpsK,EAAM8iJ,SAAWspB,EAAoB,CACrC,IAAkC,IAA9Bp0K,KAAKykK,qBAA6B,CAClC,MAAM/iG,EAAS1hE,KAAK2pK,iBAAiB3pK,KAAKykK,sBAC1CzkK,KAAK6qK,eAAe7iK,EAAO05D,EAC/B,CACA1hE,KAAKg9H,gBAAkBh9H,KAAKm0J,MAChC,KACK,CACD,MAAM0f,GAA4C,IAA9B7zK,KAAKykK,qBAA8BzkK,KAAKi0K,oBAAoBj0K,KAAKykK,sBAAwBzkK,KAAKkwK,UAAYlwK,KAAKk0K,sBAAwBl0K,KAAKm0K,6BAChKn0K,KAAK+xK,yBAAyB/pK,EAAO6rK,IACpC7zK,KAAKg9H,gBAAkBh9H,KAAKgW,MACjC,CACAhO,EAAM0S,iBACN1S,EAAM2S,iBACV,CACAs4J,eAAejrK,EAAOosK,GAAqB,GACvCA,GAAsBp0K,KAAKykK,mBAAmB7/J,KAAI,EACtD,CACAsuK,YAAYlrK,GACJhI,KAAKkjI,YACLljI,KAAK6lB,MAAM7d,GACXA,EAAM0S,iBAEd,CACAy4J,UAAUnrK,EAAOosK,GAAqB,GAClC,GAAIA,EAAoB,CACpB,MAAMp1H,EAASh3C,EAAMsqH,cACjBtqH,EAAMmyI,SACNn7F,EAAOosG,kBAAkB,EAAGpsG,EAAOtsC,MAAMrH,SAGzC2zC,EAAOosG,kBAAkB,EAAG,GAC5BprJ,KAAKykK,mBAAmB7/J,KAAI,GAEpC,MAEI5E,KAAK+xK,yBAAyB/pK,EAAOhI,KAAK2xK,yBACzC3xK,KAAKg9H,gBAAkBh9H,KAAKgW,OAEjChO,EAAM0S,gBACV,CACA04J,SAASprK,EAAOosK,GAAqB,GACjC,GAAIA,EAAoB,CACpB,MAAMp1H,EAASh3C,EAAMsqH,cACrB,GAAItqH,EAAMmyI,SACNn7F,EAAOosG,kBAAkB,EAAGpsG,EAAOtsC,MAAMrH,YAExC,CACD,MAAMyxF,EAAM99C,EAAOtsC,MAAMrH,OACzB2zC,EAAOosG,kBAAkBtuD,EAAKA,GAC9B98F,KAAKykK,mBAAmB7/J,KAAI,EAChC,CACJ,MAEI5E,KAAK+xK,yBAAyB/pK,EAAOhI,KAAKk0K,wBACzCl0K,KAAKg9H,gBAAkBh9H,KAAKgW,OAEjChO,EAAM0S,gBACV,CACA24J,cAAcrrK,GACVhI,KAAKqnH,aAAarnH,KAAK2pK,iBAAiBt+J,OAAS,GACjDrD,EAAM0S,gBACV,CACA44J,YAAYtrK,GACRhI,KAAKqnH,aAAa,GAClBr/G,EAAM0S,gBACV,CACA64J,WAAWvrK,EAAOosK,GAAqB,IAClCp0K,KAAKikK,WAAamQ,GAAsBp0K,KAAKwzK,WAAWxrK,EAC7D,CACAwrK,WAAWxrK,EAAOqsK,GAAiB,GAC/B,GAAKr0K,KAAKg9H,eAIL,CACD,IAAkC,IAA9Bh9H,KAAKykK,qBAA6B,CAClC,MAAM/iG,EAAS1hE,KAAK2pK,iBAAiB3pK,KAAKykK,sBAC1CzkK,KAAK6qK,eAAe7iK,EAAO05D,EAC/B,EACC2yG,GAAkBr0K,KAAKm0J,MAC5B,MATIn0J,KAAKykK,mBAAmB7/J,KAAI,GAC5B5E,KAAK+yK,eAAe/qK,GASxBA,EAAM0S,gBACV,CACA+4J,YAAYzrK,GACRhI,KAAKg9H,gBAAkBh9H,KAAKm0J,MAAK,GACjCnsJ,EAAM0S,gBACV,CACAg5J,SAAS1rK,EAAOosK,GAAqB,GACjC,IAAKA,EACD,GAAIp0K,KAAKg9H,gBAAkBh9H,KAAKs0K,wBAC5Bz1D,SAAM72G,EAAMmyI,SAAWn6I,KAAK0uK,oCAAoCj5F,cAAgBz1E,KAAKyuK,qCAAqCh5F,eAC1HztE,EAAM0S,qBAEL,CACD,IAAkC,IAA9B1a,KAAKykK,sBAA+BzkK,KAAKg9H,eAAgB,CACzD,MAAMt7D,EAAS1hE,KAAK2pK,iBAAiB3pK,KAAKykK,sBAC1CzkK,KAAK6qK,eAAe7iK,EAAO05D,EAC/B,CACA1hE,KAAKg9H,gBAAkBh9H,KAAKm0J,KAAKn0J,KAAKiO,OAC1C,CAEJjG,EAAM2S,iBACV,CACA6xJ,mBAAmBxkK,GACf,MAAMusK,EAAcvsK,EAAMk6J,gBAAkBliK,KAAKquK,qBAAqB54F,iBAAgB03C,OAAyBntH,KAAKwzJ,iBAAiBx4F,IAAIya,cAAe,6BAA+Bz1E,KAAKquK,qBAAqB54F,eACjNopC,SAAM01D,EACV,CACA9H,kBAAkBzkK,GACd,MAAMusK,EAAcvsK,EAAMk6J,gBAAkBliK,KAAKquK,qBAAqB54F,iBAAgB23C,OAAwBptH,KAAKwzJ,kBAAkBA,kBAAkB/9E,cAAe,0CAA4Cz1E,KAAKquK,qBAAqB54F,eAC5OopC,SAAM01D,EACV,CACAD,uBACI,SAAOznD,OAAqB7sH,KAAKwzJ,iBAAiBA,iBAAiB/9E,cAAe,0CAA0CpqE,OAAS,CACzI,CACAsoK,eAAe3rK,EAAOosK,GAAqB,GACnCA,IACCp0K,KAAKg9H,gBAAkBh9H,KAAKgW,MAErC,CACA06J,eACI,OAAO1wK,KAAKstK,UAAUniK,MAAM,MAAQnL,KAAKutK,cAAgB,CAACvtK,KAAK2kK,YACnE,CACA+N,cAAc1qK,EAAO2zH,GACjB37H,KAAK0vK,aAAe1vK,KAAK0vK,aAAe,IAAM/zC,EAC9C,IAAIk4C,GAAc,EACd/+D,GAAU,EACd,OAAkC,IAA9B90G,KAAKykK,sBACLoP,EAAc7zK,KAAK2pK,iBACdtpJ,MAAMrgB,KAAKykK,sBACXznF,UAAWtb,GAAW1hE,KAAKw0K,gBAAgB9yG,IAChDmyG,GACoB,IAAhBA,EACM7zK,KAAK2pK,iBACFtpJ,MAAM,EAAGrgB,KAAKykK,sBACdznF,UAAWtb,GAAW1hE,KAAKw0K,gBAAgB9yG,IAC9CmyG,EAAc7zK,KAAKykK,sBAG7BoP,EAAc7zK,KAAK2pK,iBAAiB3sF,UAAWtb,GAAW1hE,KAAKw0K,gBAAgB9yG,KAE/D,IAAhBmyG,IACA/+D,GAAU,IAEM,IAAhB++D,IAAoD,IAA9B7zK,KAAKykK,uBAC3BoP,EAAc7zK,KAAKyxK,gCAEH,IAAhBoC,GACA7zK,KAAK+xK,yBAAyB/pK,EAAO6rK,GAErC7zK,KAAK4vK,eACL/sI,aAAa7iC,KAAK4vK,eAEtB5vK,KAAK4vK,cAAgBp6J,WAAW,KAC5BxV,KAAK0vK,YAAc,GACnB1vK,KAAK4vK,cAAgB,MACtB,KACI96D,CACX,CACA0/D,gBAAgB9yG,GACZ,OAAO1hE,KAAKiyK,cAAcvwG,IAAW1hE,KAAK+qK,eAAerpG,GAAQ5uD,WAAW2hK,kBAAkBz0K,KAAKotK,cAAchtJ,WAAWpgB,KAAK0vK,YAAY+E,kBAAkBz0K,KAAKotK,cACxK,CACA3E,oBAAoBzgK,GAEhBhI,KAAK4oK,aAAahkK,IADNoD,EAAMg3C,OAAOtsC,OAEzB1S,KAAKykK,mBAAmB7/J,KAAI,GAC5B5E,KAAKmuK,SAAS95J,KAAK,CAAE8jI,cAAenwI,EAAOiG,OAAQjO,KAAK4oK,kBACvD5oK,KAAKuyK,yBAA2BvyK,KAAKwuK,SAAShT,cAAc,GAC7DhmJ,WAAW,KACPxV,KAAKwzJ,iBAAiBjvC,cAAa,GAEvCvkH,KAAKmgH,GAAG0zB,cACZ,CACA6gC,aACQ10K,KAAKikK,YACLlgD,OAAW/jH,KAAKg7D,GAAGya,cAAe,iCAAiCopC,SAAM,EAEzEA,OAAM7+G,KAAKquK,qBAAqB54F,cACxC,CAKAopC,QACI7+G,KAAK00K,YACT,CAKA7uJ,MAAM7d,GACFhI,KAAKi2I,YAAY,KAAMjuI,GACvBhI,KAAKqyK,qBACLryK,KAAKuyI,iBACLvyI,KAAKqhJ,SAAShtI,KAAK,CAAE8jI,cAAenwI,EAAO0K,MAAO1S,KAAK0S,QACvD1S,KAAK+9G,QAAQ1pG,KAAKrM,GAClBhI,KAAKuxK,aACT,CACA5xD,iBAAc,SAAwBvhF,GAAqB,OAAO,IAAKA,GAAqBwuI,GAAQjmK,MAAqBA,OAAYA,MAAqBE,MAAoB,EAC9K84G,iBAA4Bh5G,MAAqB,CAAE3D,KAAM4pK,EAAQt4J,UAAW,CAAC,CAAC,aAAcuiH,eAAgB,SAA+BhiH,EAAIC,EAAKgiH,GAkB9I,GAlBmK,EAALjiH,IAC5JlO,MAAkBmwH,EAAU/D,GAAK,GACjCpsH,MAAkBmwH,EAAU9D,GAAK,GACjCrsH,MAAkBmwH,EAAUiI,GAAK,GACjCp4H,MAAkBmwH,EAAUkI,GAAK,GACjCr4H,MAAkBmwH,EAAUmI,GAAK,GACjCt4H,MAAkBmwH,EAAUoI,GAAK,GACjCv4H,MAAkBmwH,EAAUqI,GAAK,GACjCx4H,MAAkBmwH,EAAUsI,GAAM,GAClCz4H,MAAkBmwH,EAAUuI,GAAM,GAClC14H,MAAkBmwH,EAAUwI,GAAM,GAClC34H,MAAkBmwH,EAAUyI,GAAM,GAClC54H,MAAkBmwH,EAAU0I,GAAM,GAClC74H,MAAkBmwH,EAAU2I,GAAM,GAClC94H,MAAkBmwH,EAAU4I,GAAM,GAClC/4H,MAAkBmwH,EAAU6I,GAAM,GAClCh5H,MAAkBmwH,EAAU+I,GAAM,GAClCl5H,MAAkBmwH,EAAUa,MAAe,IACpC,EAAL9iH,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAI0gJ,aAAe59B,EAAG5yD,OACnEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI21J,cAAgB7yC,EAAG5yD,OACpEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIohJ,eAAiBt+B,EAAG5yD,OACrEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI+wJ,qBAAuBjuC,EAAG5yD,OAC3Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIw4H,eAAiB1V,EAAG5yD,OACrEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIizJ,eAAiBnwC,EAAG5yD,OACrEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI44H,eAAiB9V,EAAG5yD,OACrEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI02J,oBAAsB5zC,EAAG5yD,OAC1Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI42J,cAAgB9zC,EAAG5yD,OACpEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI2yJ,qBAAuB7vC,EAAG5yD,OAC3Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI6+G,oBAAsBiE,EAAG5yD,OAC1Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI8rH,kBAAoBhJ,EAAG5yD,OACxEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIwzJ,mBAAqB1wC,EAAG5yD,OACzEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIi6J,eAAiBn3C,EAAG5yD,OACrEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIk6J,gBAAkBp3C,EAAG5yD,OACtEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIm6J,mBAAqBr3C,EAAG5yD,OACzEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIsiH,UAAYQ,EACjE,CAAE,EAAG3hH,UAAW,SAAsBpB,EAAIC,GASxC,GATwD,EAALD,IACjDlO,MAAeu4H,GAAK,GACpBv4H,MAAem5H,GAAM,GACrBn5H,MAAeu5H,GAAM,GACrBv5H,MAAew5H,GAAM,GACrBx5H,MAAey5H,GAAM,GACrBz5H,MAAe05H,GAAM,GACrB15H,MAAe25H,GAAM,GACrB35H,MAAe45H,GAAM,IACd,EAAL1rH,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAIs5J,gBAAkBx2C,EAAG5yD,OACtEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIu5J,oBAAsBz2C,EAAG5yD,OAC1Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIw5J,uBAAyB12C,EAAG5yD,OAC7Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIy5J,eAAiB32C,EAAG5yD,OACrEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI05J,SAAW52C,EAAG5yD,OAC/Dr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI0+I,iBAAmB57B,EAAG5yD,OACvEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI25J,qCAAuC72C,EAAG5yD,OAC3Fr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI45J,oCAAsC92C,EAAG5yD,MAC9F,CAAE,EAAGqrD,SAAU,EAAGz1G,aAAc,SAA6B/F,EAAIC,GAAgB,EAALD,GACxElO,MAAc,QAAS,SAAyCkU,GAAU,OAAO/F,EAAI09J,iBAAiB33J,EAAS,GACxG,EAALhG,IACFlO,MAAe,KAAMmO,EAAI6jB,IACzBhyB,MAAcmO,EAAI+5J,WAClBloK,MAAcmO,EAAI65J,WACpB,EAAGp6J,OAAQ,CAAEokB,GAAI,KAAMw/H,aAAc,eAAgBlqJ,OAAQ,CAAC,EAAG,SAAU,SAAUshH,OAAmBjtH,KAAM,OAAQyqC,MAAO,QAASogG,WAAY,aAAcv3D,WAAY,aAAcs3D,gBAAiB,kBAAmBgU,SAAU,CAAC,EAAG,WAAY,WAAY3xB,OAAmBwT,SAAU,CAAC,EAAG,WAAY,WAAYxT,OAAmB00C,SAAU,CAAC,EAAG,WAAY,WAAY10C,OAAmBjL,SAAU,WAAY0S,SAAU,CAAC,EAAG,WAAY,WAAYa,OAAkBgL,YAAa,cAAev4D,YAAa,cAAeu+F,kBAAmB,oBAAqBuE,aAAc,eAAgBn2C,QAAS,UAAW6L,QAAS,UAAWuqC,QAAS,UAAWC,SAAU,WAAYC,aAAc,eAAgBv+C,UAAW,CAAC,EAAG,YAAa,YAAaO,OAAmBi+C,kBAAmB,CAAC,EAAG,oBAAqB,oBAAqBj+C,OAAmBxgD,UAAW,CAAC,EAAG,YAAa,YAAawgD,OAAmB40C,aAAc,eAAgB9lD,QAAS,CAAC,EAAG,UAAW,UAAWkR,OAAmBo1C,YAAa,cAAe8I,YAAa,cAAeC,eAAgB,iBAAkBpJ,iBAAkB,mBAAoBqJ,oBAAqB,sBAAuBC,iBAAkB,CAAC,EAAG,mBAAoB,mBAAoBr+C,OAAmBlrG,MAAO,CAAC,EAAG,QAAS,QAASkrG,OAAmB2T,UAAW,CAAC,EAAG,YAAa,YAAa3T,OAAmBs+C,mBAAoB,qBAAsBpoG,aAAc,eAAgBszF,KAAM,CAAC,EAAG,OAAQ,OAAQxpC,OAAmBm9C,cAAe,CAAC,EAAG,gBAAiB,gBAAiBn9C,OAAmBq6C,sBAAuB,CAAC,EAAG,wBAAyB,wBAAyB/xC,OAAkBgyC,qBAAsB,uBAAwBvnJ,KAAM,OAAQ8vI,eAAgB,iBAAkB0W,gBAAiB,kBAAmB/3C,UAAW,YAAaiS,eAAgB,iBAAkB8qC,gBAAiB,kBAAmBjqB,UAAW,CAAC,EAAG,YAAa,YAAahsB,OAAkBliH,QAAS,UAAWqqJ,gBAAiB,kBAAmBoG,qBAAsB,uBAAwBjG,kBAAmB,oBAAqB4N,aAAc,CAAC,EAAG,eAAgB,eAAgBx+C,OAAmBy+C,cAAe,CAAC,EAAG,gBAAiB,gBAAiBz+C,OAAmB0+C,gBAAiB,CAAC,EAAG,kBAAmB,kBAAmB1+C,OAAmB2+C,gBAAiB,CAAC,EAAG,kBAAmB,kBAAmB3+C,OAAmBoD,MAAO,CAAC,EAAG,QAAS,QAASpD,OAAmBx5G,SAAU,WAAYkiJ,SAAU,WAAYhpB,WAAY,aAAcvS,WAAY,aAAc0Q,sBAAuB,wBAAyBC,sBAAuB,wBAAyBg/B,YAAa,cAAe3gK,QAAS,WAAa8I,QAAS,CAAE6sI,SAAU,WAAY8sB,SAAU,WAAYrvD,QAAS,UAAWC,OAAQ,SAAU3qG,QAAS,UAAWw9H,OAAQ,SAAUyhB,OAAQ,SAAUt1C,QAAS,UAAW27C,WAAY,cAAgBp2C,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACgmK,GAAuB7H,KAAen+J,MAA6BA,MAA+BA,OAAyB8N,MAAO,GAAIC,KAAM,GAAIC,OAAQ,CAAC,CAAC,YAAa,IAAK,CAAC,UAAW,IAAK,CAAC,UAAW,IAAK,CAAC,aAAc,IAAK,CAAC,qBAAsB,IAAK,CAAC,gBAAiB,IAAK,CAAC,yBAA0B,IAAK,CAAC,eAAgB,IAAK,CAAC,wBAAyB,IAAK,CAAC,uBAAwB,IAAK,CAAC,SAAU,IAAK,CAAC,WAAY,IAAK,CAAC,SAAU,IAAK,CAAC,QAAS,IAAK,CAAC,cAAe,IAAK,CAAC,QAAS,IAAK,CAAC,OAAQ,WAAY,EAAG,UAAW,WAAY,kBAAmB,gBAAiB,oBAAqB,aAAc,QAAS,OAAQ,UAAW,EAAG,QAAS,CAAC,OAAQ,OAAQ,gBAAiB,UAAW,EAAG,UAAW,WAAY,aAAc,QAAS,UAAW,QAAS,OAAQ,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,OAAQ,SAAU,aAAc,mBAAoB,gBAAiB,UAAW,EAAG,qBAAsB,CAAC,EAAG,OAAQ,YAAa,CAAC,EAAG,gBAAiB,mBAAoB,SAAU,UAAW,UAAW,SAAU,WAAY,aAAc,aAAc,wBAAyB,yBAA0B,CAAC,OAAQ,WAAY,EAAG,QAAS,OAAQ,UAAW,UAAW,WAAY,kBAAmB,gBAAiB,oBAAqB,cAAe,CAAC,EAAG,mBAAoB,0BAA2B,EAAG,QAAS,CAAC,EAAG,mBAAoB,2BAA4B,CAAC,OAAQ,OAAQ,gBAAiB,UAAW,EAAG,QAAS,UAAW,QAAS,OAAQ,UAAW,WAAY,cAAe,CAAC,QAAS,sBAAuB,EAAG,QAAS,EAAG,QAAS,CAAC,EAAG,sBAAuB,EAAG,SAAU,CAAC,EAAG,mBAAoB,2BAA4B,CAAC,EAAG,oBAAqB,CAAC,cAAe,OAAQ,EAAG,UAAW,EAAG,QAAS,CAAC,cAAe,OAAQ,EAAG,QAAS,EAAG,QAAS,CAAC,cAAe,OAAQ,EAAG,WAAY,CAAC,cAAe,QAAS,CAAC,QAAS,yBAA0B,EAAG,QAAS,CAAC,QAAS,yBAA0B,EAAG,UAAW,EAAG,QAAS,CAAC,EAAG,aAAc,EAAG,QAAS,CAAC,EAAG,yBAA0B,EAAG,WAAY,CAAC,EAAG,cAAe,CAAC,EAAG,0BAA2B,CAAC,EAAG,UAAW,WAAY,CAAC,OAAQ,eAAgB,EAAG,sBAAuB,qBAAsB,EAAG,SAAU,CAAC,QAAS,kBAAmB,EAAG,QAAS,EAAG,QAAS,CAAC,EAAG,2BAA4B,CAAC,EAAG,QAAS,QAAS,WAAY,WAAY,OAAQ,UAAW,aAAc,EAAG,QAAS,CAAC,EAAG,kBAAmB,EAAG,SAAU,CAAC,aAAc,GAAI,OAAQ,OAAQ,OAAQ,YAAa,eAAgB,MAAO,EAAG,kBAAmB,EAAG,QAAS,UAAW,OAAQ,QAAS,QAAS,WAAY,CAAC,EAAG,aAAc,QAAS,WAAY,WAAY,OAAQ,WAAY,CAAC,OAAQ,UAAW,EAAG,gBAAiB,EAAG,WAAY,CAAC,QAAS,GAAI,EAAG,WAAY,CAAC,QAAS,yBAA0B,OAAQ,SAAU,EAAG,UAAW,EAAG,QAAS,CAAC,OAAQ,SAAU,EAAG,wBAAyB,EAAG,WAAY,CAAC,EAAG,UAAW,eAAgB,KAAM,SAAU,YAAa,WAAY,QAAS,WAAY,WAAY,UAAW,eAAgB,eAAgB,CAAC,OAAQ,SAAU,EAAG,yBAA0B,EAAG,YAAaC,SAAU,SAAyBC,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC93L,MAAMsB,EAAMxP,QACZA,MAAc,EAAGu/J,GAAwB,EAAG,GAAI,OAAQ,GAAxDv/J,CAA4D,EAAG2/J,GAAyB,EAAG,EAAG,QAAS,GAAvG3/J,CAA2G,EAAGigK,GAAgC,EAAG,EAAG,eAAgB,IACpKjgK,MAAkB,EAAG,MAAO,IAC5BA,MAAc,EAAGugK,GAAgC,EAAG,EAAG,eAAgB,GAAvEvgK,CAA2E,EAAGghK,GAA+B,EAAG,EAAG,cAAe,KAAM,EAAGhhK,OAC3IA,QACAA,MAAkB,EAAG,YAAa,GAAI,GACtCA,MAAoB,gBAAiB,SAA4DkU,GAAUlU,aAAiBwP,GAAMxP,MAAsBmO,EAAIkoH,eAAgBniH,KAAY/F,EAAIkoH,eAAiBniH,GAAgBlU,MAAekU,EAAS,GACrPlU,MAAc,mBAAoB,SAA+DkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAIi4H,wBAAwBlyH,GAAU,EAA9LlU,CAAiM,SAAU,WAAyDA,aAAiBwP,GAAaxP,MAAemO,EAAIq/I,OAAS,GAC9TxtJ,MAAc,EAAG4lK,GAA+B,GAAI,GAAI,cAAe,KAAM,EAAG5lK,OAChFA,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,IAAI4sH,EACJ,MAAMkzC,EAAgBhuK,MAAe,GACrCA,MAAc,QAASmO,EAAImvJ,UAC3Bt9J,QACAA,MAAc,OAAQmO,EAAImvJ,UAC1Bt9J,QACAA,MAAc,OAAQmO,EAAIu7J,oBAC1B1pK,QACAA,MAAe,gBAAoD,QAAlC86H,EAAU3sH,EAAIkoH,sBAAwC17H,IAAZmgI,GAAwBA,EAAnG96H,CAAoH,kBAAmB,WACvIA,QACAA,MAAc,OAAQmO,EAAIupG,QAA1B13G,CAAmC,WAAYguK,GAC/ChuK,MAAa,GACbA,MAAoB,UAAWmO,EAAIkoH,gBACnCr2H,MAAc,UAAWmO,EAAIs9I,eAA7BzrJ,CAA6C,SAAU,UAAvDA,CAAkE,WAAYmO,EAAIwvG,SAAlF39G,CAA4F,aAAcmO,EAAIm6H,WAA9GtoI,CAA0H,aAAcmO,EAAI4nH,WAA5I/1H,CAAwJ,wBAAyBmO,EAAIs4H,sBAArLzmI,CAA4M,wBAAyBmO,EAAIu4H,sBAC7O,CAAE,EAAG/c,aAAc,CAACxxF,MAAcl4B,MAAYA,MAAYA,MAASA,MAAqBA,MAAYimK,GAAY1tI,GAAS2gI,GAAS/wC,GAAWwJ,GAAWF,GAAiB23B,GAAYj3B,GAAW22B,GAAWU,GAAW2H,GAAUj3H,OAAeyvF,cAAe,EAAGC,gBAAiB,IACzR,OAhgDKo8C,CAAM,KAu+DNgI,GAAY,MAAlB,MAAMA,EACFj1D,iBAAc,SAA8BvhF,GAAqB,OAAO,IAAKA,GAAqBw2I,EAAiB,EACnHj1D,iBAA4Bh5G,KAAoB,CAAE3D,KAAM4xK,IACxDj1D,iBAA4Bh5G,MAAoB,CAAE43B,QAAS,CAACquI,GAAQ9rI,MAAcA,SACrF,OAJK8zI,CAAY,KCv9FlB,MAAMnlD,GAAQA,EAAG9O,QAAS,uIAMRA,EAAG,wCACRA,EAAG,qCACDA,EAAG,6CACGA,EAAG,yCACbA,EAAG,8JAQHA,EAAG,ydAwBIA,EAAG,wEAERA,EAAG,kDACCA,EAAG,+CACNA,EAAG,+DACYA,EAAG,2CAA2CA,EAAG,mDAAmDA,EAAG,gDAAgDA,EAAG,yDAClKA,EAAG,6QAUNA,EAAG,4DACNA,EAAG,4CAA4CA,EAAG,4CAA4CA,EAAG,kEAC1FA,EAAG,6TAQPA,EAAG,yDACRA,EAAG,wQAWEA,EAAG,4DACRA,EAAG,oFAIHA,EAAG,8HAMLA,EAAG,iFAIGA,EAAG,kDAGdtrG,GAAU,CACZs7D,UAAWA,EAAGywC,WAAUnjG,SAAU,CAC9B,0BACA,CACI,uBAAwBmjG,EAASyzD,iBACjC,CAAC,eAAe52J,KAAQmjG,EAASyzD,mBAGzChzG,QAAS,sBACTizG,aAAc,4BACdC,WAAY,0BACZ/vG,MAAOA,EAAGo8C,cAAe,CACrB,oBACA,CACI,aAAcA,EAASiN,OAAOt4G,WAGtCi/J,UAAW,yBACX/nG,KAAMA,EAAGm0C,cAAe,CACpB,mBACA,CACI,aAAcA,EAASiN,OAAOt4G,WAGtCk/J,SAAU,wBACVjxK,KAAMA,EAAGo9G,cAAe,CACpB,mBACA,CACI,aAAcA,EAASiN,OAAOt4G,WAGtCm/J,SAAU,wBACVhwG,KAAMA,EAAGk8C,cAAe,CACpB,mBACA,CACI,aAAcA,EAASiN,OAAOt4G,WAGtCo/J,SAAU,wBACVC,MAAO,oBACPrb,KAAMA,EAAGvlG,QAAO6gH,cAAe,CAC3B,mBACA,CACI,4BAA6BA,EAAW,IAAM7gH,EAAMulG,OAG5DziJ,QAAS,sBACTg+J,qBAAsB,2BACtBC,qBAAsB,2BACtBC,kBAAmB,yBACrB,IACIC,GAAc,MAApB,MAAMA,UAAuB/1D,KACzBp9G,KAAO,YACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAI+1D,EAA6B,OAAO,SAAgCt3I,GAAqB,OAAQs3I,IAAgCA,EAA8B/uK,MAAyB8uK,KAAkBr3I,GAAqBq3I,EAAiB,CAAG,EAA/P,GAC7B91D,kBAA6Bh5G,MAAsB,CAAE0e,MAAOowJ,EAAgBtuK,QAASsuK,EAAeruK,YACvG,OANKquK,CAAc,KA2FpB,MAAMxgK,GAAM,CAAC,gBACPgC,GAAM,CAAC,qBACP67G,GAAM,CAAC,wBACPC,GAAM,CAAC,oBACPC,GAAM,CAAC,oBACP+L,GAAM9L,KAAS,aAAcA,IAC7B+L,GAAM/L,KAAS38G,UAAW28G,IAC1BgM,GAAMhM,KAAS,4BAA6BA,IAClD,SAAS0iD,GAA8C9gK,EAAIC,GAAgB,EAALD,GAClElO,MAAsB,EACxB,CACF,SAASivK,GAA+B/gK,EAAIC,GAI1C,GAJ0D,EAALD,IACnDlO,MAAkB,EAAG,MAAO,IAC5BA,MAAc,EAAGgvK,GAA+C,EAAG,EAAG,eAAgB,IACtFhvK,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAe,kBAAmB,SAClCA,QACAA,MAAc,mBAAoBy2E,EAAOy4F,aAAzClvK,CAAuD,0BAA2BA,MAAmB,EAAGq4H,GAAK5hD,EAAO04F,gBACxH,CAAE,CACF,SAASC,GAAgClhK,EAAIC,GAI3C,GAJ2D,EAALD,IACpDlO,MAAkB,EAAG,OAAQ,IAC7BA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAqBy2E,EAAOxM,kBAChC,CAAE,CACF,SAASolG,GAAwDnhK,EAAIC,GAAgB,EAALD,GAC5ElO,MAAa,EAAG,sBAAuB,IAChC,EAALkO,GACFlO,MAAc,aAAc,yBAC9B,CACF,SAASsvK,GAAyDphK,EAAIC,GAAO,CAC7E,SAASohK,GAA2CrhK,EAAIC,GAAgB,EAALD,GAC/DlO,MAAc,EAAGsvK,GAA0D,EAAG,EAAG,cACnF,CACF,SAASE,GAAyCthK,EAAIC,GAIpD,GAJoE,EAALD,IAC7DlO,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,EAAGuvK,GAA4C,EAAG,EAAG,KAAM,IACzEvvK,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAOg5F,2BAA6Bh5F,EAAOi5F,2BACjF,CAAE,CACF,SAASC,GAAkCzhK,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC9D,MAAM6oE,EAAM/2E,QACZA,MAAkB,EAAG,SAAU,IAC/BA,MAAc,QAAS,SAAmEkU,GAAUlU,MAAiB+2E,GAAM,MAAMN,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOm5F,kBAAkB17J,GAAU,GACxNlU,MAAc,EAAGqvK,GAAyD,EAAG,EAAG,sBAAuB,EAAvGrvK,CAA0G,EAAGwvK,GAA0C,EAAG,EAAG,OAAQ,IACrKxvK,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAc,WAAYy2E,EAAOo5F,eAAiBp5F,EAAOwuC,QAAzDjlH,CAAkE,UAAWA,MAAmB,EAAGo4H,GAAK3hD,EAAOo5F,eAAiBp5F,EAAOwuC,UACvIjlH,MAAe,aAAcy2E,EAAOq5F,aAAa,mBACjD9vK,QACAA,MAAc,QAASy2E,EAAOg5F,4BAA8Bh5F,EAAOi5F,4BACnE1vK,QACAA,MAAc,OAAQy2E,EAAOg5F,2BAA6Bh5F,EAAOi5F,2BACrE,CAAE,CACF,SAASK,GAAyC7hK,EAAIC,GAAgB,EAALD,GAC7DlO,MAAa,EAAG,gBAAiB,IAC1B,EAALkO,GACFlO,MAAc,aAAc,wBAC9B,CACF,SAASgwK,GAAgD9hK,EAAIC,GAAO,CACpE,SAAS8hK,GAAkC/hK,EAAIC,GAAgB,EAALD,GACtDlO,MAAc,EAAGgwK,GAAiD,EAAG,EAAG,cAC1E,CACF,SAASE,GAAgChiK,EAAIC,GAI3C,GAJ2D,EAALD,IACpDlO,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,EAAGiwK,GAAmC,EAAG,EAAG,KAAM,IAChEjwK,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAO05F,8BAAgC15F,EAAO25F,8BACpF,CAAE,CACF,SAASC,GAAyCniK,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACrE,MAAMmC,EAAMrQ,QACZA,MAAkB,EAAG,SAAU,IAC/BA,MAAc,QAAS,SAA0EkU,GAAU,MAAMo8J,EAActwK,MAAiBqQ,GAAKV,UAAiB8mE,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO85F,gBAAgBr8J,EAAQo8J,EAAc,GAAK,GAC5QtwK,MAAU,GACVA,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMoiK,EAAcniK,EAAIwB,UAClB8mE,EAASz2E,MAAiB,GAChCA,MAAc,UAAWA,MAAmB,EAAGs4H,GAAKg4C,EAAc,GAAK75F,EAAO+5F,YAC9ExwK,MAAe,aAAcy2E,EAAOg6F,iBAAiBH,GAArDtwK,CAAmE,eAAgBswK,EAAc,GAAK75F,EAAO+5F,UAAY,YAAS71K,GAClIqF,QACAA,MAAsB,IAAKy2E,EAAOi6F,gBAAgBJ,GAAc,IACpE,CAAE,CACF,SAASK,GAAgCziK,EAAIC,GAI3C,GAJ2D,EAALD,IACpDlO,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,EAAGqwK,GAA0C,EAAG,EAAG,SAAU,IAC3ErwK,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,UAAWy2E,EAAOm6F,UACpC,CAAE,CACF,SAASC,GAAkD3iK,EAAIC,GAE7D,GAF6E,EAALD,GACtElO,MAAU,GACH,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAqBy2E,EAAOxM,kBAChC,CAAE,CACF,SAAS6mG,GAAgF5iK,EAAIC,GAAgB,EAALD,GACpGlO,MAAsB,EACxB,CACF,SAAS+wK,GAAiE7iK,EAAIC,GAE5E,GAF4F,EAALD,GACrFlO,MAAc,EAAG8wK,GAAiF,EAAG,EAAG,eAAgB,IACjH,EAAL5iK,EAAQ,CACV,MAAM8iK,EAAU7iK,EAAIwB,UACd8mE,EAASz2E,MAAiB,GAChCA,MAAc,mBAAoBy2E,EAAOw6F,uBAAzCjxK,CAAiE,0BAA2BA,MAAmB,EAAGq4H,GAAK24C,GAC3H,CAAE,CACF,SAASE,GAAmDhjK,EAAIC,GAAgB,EAALD,IACvElO,MAA2B,GAC3BA,MAAc,EAAG+wK,GAAkE,EAAG,EAAG,cAAe,IACxG/wK,QACF,CACF,SAASmxK,GAAmEjjK,EAAIC,GAAgB,EAALD,GACvFlO,MAAsB,EACxB,CACF,SAASoxK,GAAoDljK,EAAIC,GAE/D,GAF+E,EAALD,GACxElO,MAAc,EAAGmxK,GAAoE,EAAG,EAAG,eAAgB,IACpG,EAALjjK,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAc,mBAAoBy2E,EAAOqqF,sBAAwBrqF,EAAOsqF,sBAC5E,CAAE,CACF,SAASsQ,GAAsCnjK,EAAIC,GAAgB,EAALD,GAC1DlO,MAAc,EAAGoxK,GAAqD,EAAG,EAAG,cAAe,GAC7F,CACF,SAASE,GAAoCpjK,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAChE,MAAMmpE,EAAMr3E,QACZA,MAAkB,EAAG,WAAY,IACjCA,MAAc,WAAY,SAA0EkU,GAAUlU,MAAiBq3E,GAAM,MAAMZ,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO86F,qBAAqBr9J,GAAU,GACrOlU,MAAc,EAAG6wK,GAAmD,EAAG,EAAG,cAAe,GAAzF7wK,CAA6F,EAAGkxK,GAAoD,EAAG,EAAG,eAAgB,GAA1KlxK,CAA8K,EAAGqxK,GAAuC,EAAG,EAAG,KAAM,IACpOrxK,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAc,UAAWy2E,EAAO+6F,UAAhCxxK,CAA2C,UAAWy2E,EAAO+5F,UAA7DxwK,CAAwE,WAAYy2E,EAAOwuC,QAA3FjlH,CAAoG,WAAYy2E,EAAOg7F,iBAAvHzxK,CAAyI,eAAgBy2E,EAAOi7F,sBAChK1xK,MAAe,aAAcy2E,EAAOq5F,aAAa,4BACjD9vK,MAAa,GACbA,MAAc,OAAQy2E,EAAOw6F,wBAC7BjxK,QACAA,MAAc,OAAQy2E,EAAOqqF,sBAAwBrqF,EAAOsqF,sBAChE,CAAE,CACF,SAAS4Q,GAA2CzjK,EAAIC,GAAgB,EAALD,GAC/DlO,MAAa,EAAG,iBAAkB,IAC3B,EAALkO,GACFlO,MAAc,aAAc,wBAC9B,CACF,SAAS4xK,GAAiD1jK,EAAIC,GAAO,CACrE,SAAS0jK,GAAmC3jK,EAAIC,GAAgB,EAALD,GACvDlO,MAAc,EAAG4xK,GAAkD,EAAG,EAAG,cAC3E,CACF,SAASE,GAAiC5jK,EAAIC,GAI5C,GAJ4D,EAALD,IACrDlO,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,EAAG6xK,GAAoC,EAAG,EAAG,KAAM,IACjE7xK,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAOs7F,0BAA4Bt7F,EAAOu7F,0BAChF,CAAE,CACF,SAASC,GAA0D/jK,EAAIC,GAAgB,EAALD,GAC9ElO,MAAa,EAAG,uBAAwB,IACjC,EAALkO,GACFlO,MAAc,aAAc,wBAC9B,CACF,SAASkyK,GAA0DhkK,EAAIC,GAAO,CAC9E,SAASgkK,GAA4CjkK,EAAIC,GAAgB,EAALD,GAChElO,MAAc,EAAGkyK,GAA2D,EAAG,EAAG,cACpF,CACF,SAASE,GAA0ClkK,EAAIC,GAIrD,GAJqE,EAALD,IAC9DlO,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,EAAGmyK,GAA6C,EAAG,EAAG,KAAM,IAC1EnyK,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,QACAA,MAAc,mBAAoBy2E,EAAO47F,0BAA4B57F,EAAO67F,0BAChF,CAAE,CACF,SAASC,GAAmCrkK,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC/D,MAAMi4H,EAAMnmI,QACZA,MAAkB,EAAG,SAAU,IAC/BA,MAAc,QAAS,SAAoEkU,GAAUlU,MAAiBmmI,GAAM,MAAM1vD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO+7F,iBAAiBt+J,GAAU,GACxNlU,MAAc,EAAGiyK,GAA2D,EAAG,EAAG,uBAAwB,EAA1GjyK,CAA6G,EAAGoyK,GAA2C,EAAG,EAAG,OAAQ,IACzKpyK,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAc,WAAYy2E,EAAOg8F,cAAgBh8F,EAAOwuC,QAAxDjlH,CAAiE,UAAWA,MAAmB,EAAGo4H,GAAK3hD,EAAOg8F,cAAgBh8F,EAAOwuC,UACrIjlH,MAAe,aAAcy2E,EAAOq5F,aAAa,kBACjD9vK,QACAA,MAAc,QAASy2E,EAAO47F,2BAA6B57F,EAAO67F,2BAClEtyK,QACAA,MAAc,OAAQy2E,EAAO47F,0BAA4B57F,EAAO67F,0BACpE,CAAE,CACF,SAASI,GAA0CxkK,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACtE,MAAMwyH,EAAM1gI,QACZA,MAAkB,EAAG,gBAAiB,IACtCA,MAAc,gBAAiB,SAA0FkU,GAAUlU,MAAiB0gI,GAAM,MAAMjqD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAOk8F,WAAWz+J,EAAS,GAAK,GACpPlU,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAc,UAAWy2E,EAAOm8F,cAAhC5yK,CAA+C,WAAYy2E,EAAOwuC,QACtE,CAAE,CACF,SAAS4tD,GAAiF3kK,EAAIC,GAAgB,EAALD,GACrGlO,MAAsB,EACxB,CACF,SAAS8yK,GAAkE5kK,EAAIC,GAE7E,GAF6F,EAALD,GACtFlO,MAAc,EAAG6yK,GAAkF,EAAG,EAAG,eAAgB,IAClH,EAAL3kK,EAAQ,CACV,MAAM6kK,EAAW5kK,EAAIwB,UACf8mE,EAASz2E,MAAiB,GAChCA,MAAc,mBAAoBy2E,EAAOu8F,qBAAzChzK,CAA+D,0BAA2BA,MAAmB,EAAGq4H,GAAK06C,GACzH,CAAE,CACF,SAASE,GAAoD/kK,EAAIC,GAAgB,EAALD,IACxElO,MAA2B,GAC3BA,MAAc,EAAG8yK,GAAmE,EAAG,EAAG,cAAe,IACzG9yK,QACF,CACF,SAASkzK,GAAoEhlK,EAAIC,GAAgB,EAALD,GACxFlO,MAAsB,EACxB,CACF,SAASmzK,GAAqDjlK,EAAIC,GAEhE,GAFgF,EAALD,GACzElO,MAAc,EAAGkzK,GAAqE,EAAG,EAAG,eAAgB,IACrG,EAALhlK,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAc,mBAAoBy2E,EAAOqqF,sBAAwBrqF,EAAOsqF,sBAC5E,CAAE,CACF,SAASqS,GAAuCllK,EAAIC,GAAgB,EAALD,GAC3DlO,MAAc,EAAGmzK,GAAsD,EAAG,EAAG,cAAe,GAC9F,CACF,SAASE,GAAqCnlK,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACjE,MAAMgvH,EAAOl9H,QACbA,MAAkB,EAAG,WAAY,IACjCA,MAAoB,gBAAiB,SAAgFkU,GAAUlU,MAAiBk9H,GAAO,MAAMzmD,EAASz2E,MAAiB,GAAIA,aAAsBy2E,EAAO03E,KAAMj6I,KAAYuiE,EAAO03E,KAAOj6I,GAAgBlU,MAAekU,EAAS,GAChSlU,MAAc,WAAY,SAA2EkU,GAAUlU,MAAiBk9H,GAAO,MAAMzmD,EAASz2E,MAAiB,GAAI,OAAOA,MAAey2E,EAAO68F,YAAYp/J,GAAU,GAC9NlU,MAAc,EAAGizK,GAAqD,EAAG,EAAG,eAAgB,GAA5FjzK,CAAgG,EAAGozK,GAAwC,EAAG,EAAG,KAAM,IACvJpzK,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAc,UAAWy2E,EAAO88F,kBAChCvzK,MAAoB,UAAWy2E,EAAO03E,MACtCnuJ,MAAc,WAAYy2E,EAAOwuC,QAAjCjlH,CAA0C,WAAYy2E,EAAOg7F,iBAA7DzxK,CAA+E,eAAgBy2E,EAAOi7F,qBAAtG1xK,CAA4H,YAAay2E,EAAOq5F,aAAa,qBAC7J9vK,QACAA,MAAc,OAAQy2E,EAAOu8F,sBAC7BhzK,QACAA,MAAc,OAAQy2E,EAAOqqF,sBAAwBrqF,EAAOsqF,sBAChE,CAAE,CACF,SAASyS,GAA+CtlK,EAAIC,GAAgB,EAALD,GACnElO,MAAsB,EACxB,CACF,SAASyzK,GAAgCvlK,EAAIC,GAI3C,GAJ2D,EAALD,IACpDlO,MAAkB,EAAG,MAAO,IAC5BA,MAAc,EAAGwzK,GAAgD,EAAG,EAAG,eAAgB,IACvFxzK,SACO,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,MAAiB,GAChCA,MAAe,kBAAmB,OAClCA,QACAA,MAAc,mBAAoBy2E,EAAOi9F,cAAzC1zK,CAAwD,0BAA2BA,MAAmB,EAAGq4H,GAAK5hD,EAAO04F,gBACzH,CAAE,CACF,SAASwE,GAAyBzlK,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACrD,MAAMsB,EAAMxP,QACZA,MAAkB,EAAG,MAAO,GAC5BA,MAAc,EAAGivK,GAAgC,EAAG,EAAG,MAAO,EAA9DjvK,CAAiE,EAAGovK,GAAiC,EAAG,EAAG,OAAQ,EAAnHpvK,CAAsH,EAAG2vK,GAAmC,EAAG,EAAG,SAAU,GAC5K3vK,MAAkB,EAAG,SAAU,GAC/BA,MAAc,QAAS,SAA0DkU,GAAUlU,MAAiBwP,GAAM,MAAMinE,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAOm9F,iBAAiB1/J,GAAU,GAC7MlU,MAAc,EAAG+vK,GAA0C,EAAG,EAAG,gBAAiB,EAAlF/vK,CAAqF,EAAGkwK,GAAiC,EAAG,EAAG,OAAQ,GACvIlwK,QACAA,MAAc,EAAG2wK,GAAiC,EAAG,EAAG,OAAQ,EAAhE3wK,CAAmE,EAAGsxK,GAAqC,EAAG,EAAG,WAAY,GAC7HtxK,MAAkB,EAAG,SAAU,IAC/BA,MAAc,QAAS,SAA0DkU,GAAUlU,MAAiBwP,GAAM,MAAMinE,EAASz2E,QAAoB,OAAOA,MAAey2E,EAAOo9F,iBAAiB3/J,GAAU,GAC7MlU,MAAc,GAAI2xK,GAA4C,EAAG,EAAG,iBAAkB,EAAtF3xK,CAAyF,GAAI8xK,GAAkC,EAAG,EAAG,OAAQ,IAC7I9xK,QACAA,MAAc,GAAIuyK,GAAoC,EAAG,EAAG,SAAU,GAAtEvyK,CAA0E,GAAI0yK,GAA2C,EAAG,EAAG,gBAAiB,GAAhJ1yK,CAAoJ,GAAIqzK,GAAsC,EAAG,EAAG,WAAY,GAAhNrzK,CAAoN,GAAIyzK,GAAiC,EAAG,EAAG,MAAO,IACtQzzK,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMuoE,EAASz2E,QACfA,MAAcy2E,EAAOxH,YACrBjvE,MAAc,UAAWy2E,EAAOrwC,MAAhCpmC,CAAuC,UAAW,2BAClDA,MAAe,kBAAmB,YAAlCA,CAA+C,kBAAmB,QAClEA,QACAA,MAAc,OAAQy2E,EAAOy4F,cAC7BlvK,QACAA,MAAc,OAAQy2E,EAAOq9F,uBAC7B9zK,QACAA,MAAc,OAAQy2E,EAAOs9F,mBAC7B/zK,QACAA,MAAc,WAAYy2E,EAAOo5F,eAAiBp5F,EAAOwuC,QAAzDjlH,CAAkE,UAAWA,MAAmB,GAAIo4H,GAAK3hD,EAAOo5F,eAAiBp5F,EAAOwuC,UACxIjlH,MAAe,aAAcy2E,EAAOq5F,aAAa,kBACjD9vK,QACAA,MAAc,QAASy2E,EAAO05F,+BAAiC15F,EAAO25F,+BACtEpwK,QACAA,MAAc,OAAQy2E,EAAO05F,8BAAgC15F,EAAO25F,+BACpEpwK,QACAA,MAAc,OAAQy2E,EAAOu9F,eAC7Bh0K,QACAA,MAAc,OAAQy2E,EAAOw9F,wBAC7Bj0K,QACAA,MAAc,WAAYy2E,EAAOg8F,cAAgBh8F,EAAOwuC,QAAxDjlH,CAAiE,UAAWA,MAAmB,GAAIo4H,GAAK3hD,EAAOg8F,cAAgBh8F,EAAOwuC,UACtIjlH,MAAe,aAAcy2E,EAAOq5F,aAAa,kBACjD9vK,QACAA,MAAc,QAASy2E,EAAOs7F,2BAA6Bt7F,EAAOu7F,2BAClEhyK,QACAA,MAAc,OAAQy2E,EAAOs7F,0BAA4Bt7F,EAAOu7F,2BAChEhyK,QACAA,MAAc,OAAQy2E,EAAOs9F,mBAC7B/zK,QACAA,MAAc,OAAQy2E,EAAOy9F,qBAC7Bl0K,QACAA,MAAc,OAAQy2E,EAAO09F,oBAC7Bn0K,QACAA,MAAc,OAAQy2E,EAAOi9F,cACjC,CAAE,CACF,IAIMU,GAAS,MAAf,MAAMA,UAAkB9nK,GAKpB+nK,aAAe,EAKfjuI,MAKA6oC,WAKAqlG,YAAa,EAKb7C,iBAMAvC,aAMAwE,cAKA/1D,SAKA+zD,qBAAuB,QAKvB6C,0BAA4B,gCAK5BT,sBAKAC,mBAAoB,EAKpBS,aAAe,EAKfrmB,KAAO,EAKPgmB,mBAKAF,uBAKAC,oBAMAjD,uBAKA+C,eAAgB,EAKhBplJ,OAMAokJ,qBAKA,SAAI30G,GACA,OAAOhlE,KAAKg8J,MAChB,CACA,SAAIh3F,CAAM11C,GACNtvB,KAAKg8J,OAAS1sI,CAClB,CAMA8rJ,aAAe,IAAIlnK,MAKnBuzJ,qBAKA2O,0BAKAU,6BAKAkC,yBAKAN,yBACAthD,UACAswC,sBACA2O,2BACAU,8BACAkC,0BACAN,0BACApB,UACAY,UACA+B,iBACApE,eACA9Z,OAAS,EACTqf,MAAQ,EACRr6D,mBAAkBnB,OAAO41D,IACzB31K,cACIK,OACJ,CACAgU,WACIhU,MAAMgU,WACNnU,KAAKs7K,sBACT,CACAhkD,qBACIt3H,KAAKo3H,UAAU7jH,QAAS1B,IACpB,OAAQA,EAAK0lH,WACT,IAAK,eACDv3H,KAAK0nK,sBAAwB71J,EAAK+C,SAClC,MACJ,IAAK,oBACD5U,KAAKq2K,2BAA6BxkK,EAAK+C,SACvC,MACJ,IAAK,uBACD5U,KAAK+2K,8BAAgCllK,EAAK+C,SAC1C,MACJ,IAAK,mBACD5U,KAAKi5K,0BAA4BpnK,EAAK+C,SACtC,MACJ,IAAK,mBACD5U,KAAK24K,0BAA4B9mK,EAAK+C,SAE9C,EAER,CACA6hK,aAAa8E,GACT,OAAOv7K,KAAKmZ,OAAOqiK,YAAYC,KAAOz7K,KAAKmZ,OAAOqiK,YAAYC,KAAKF,QAAaj6K,CACpF,CACA81K,iBAAiB1kK,GACb,OAAO1S,KAAKmZ,OAAOqiK,YAAYC,KAAOz7K,KAAKmZ,OAAOqiK,YAAYC,KAAKC,UAAUj4J,QAAQ,UAAW,GAAG/Q,UAAWpR,CAClH,CACA+1K,gBAAgBsE,GACZ,MAAMpyB,EAAW,IAAI,IAAIF,KAAKC,aAAatpJ,KAAKu1B,OAAQ,CAAEgyH,aAAa,IAAS77H,OAAO,aAAa4hG,UAC9F34F,EAAQ,IAAIlY,IAAI8sI,EAASv9I,IAAI,CAAC8qB,EAAG1rB,IAAM,CAACA,EAAG0rB,KACjD,OAAI6kJ,EAAQ,EACQhwJ,OAAOgwJ,GAAOxwK,MAAM,IACrBa,IAAK4vK,GAAWjnJ,EAAM3uB,IAAIwZ,OAAOo8J,KAAUvuJ,KAAK,IAGxDsH,EAAM3uB,IAAI21K,EAEzB,CACArmK,YAAYwzI,GACR3oJ,MAAMmV,YAAYwzI,GACdA,EAAaqyB,eACbn7K,KAAK67K,kBACL77K,KAAKs7K,uBACLt7K,KAAK87K,cACL97K,KAAK+7K,4BAELjzB,EAAa9jF,QACbhlE,KAAKg8J,OAASlT,EAAa9jF,MAAMggC,aACjChlG,KAAK67K,kBACL77K,KAAKs7K,wBAELxyB,EAAagM,OACb90J,KAAK67K,kBACL77K,KAAKs7K,wBAELxyB,EAAagyB,oBACb96K,KAAK+7K,2BAELjzB,EAAakyB,cACbh7K,KAAK67K,iBAEb,CACAE,2BACI,GAAI/7K,KAAK86K,mBAAoB,CACzB96K,KAAKk6K,iBAAmB,GACxB,QAASvvK,KAAO3K,KAAK86K,mBACC,iBAAPnwK,GAAmBA,EAAIqxK,QAC9Bh8K,KAAKk6K,iBAAiBjtH,QAAQ,CAAEt5C,MAAOhJ,EAAIqxK,QAAYtpK,MAAO1S,KAAKm7K,eAGnEn7K,KAAKk6K,iBAAiB7mK,KAAK,CAAEM,MAAOgY,OAAO3rB,KAAKq3K,gBAAgB1sK,IAAO+H,MAAO/H,GAG1F,CACJ,CACA6rK,cACI,OAA0B,IAAnBx2K,KAAKm3K,SAChB,CACAiC,aACI,OAAOp5K,KAAKm3K,YAAcn3K,KAAKi8K,eAAiB,CACpD,CACAA,eACI,OAAOxvJ,KAAKkzE,KAAK3/F,KAAKm7K,aAAen7K,KAAK80J,KAC9C,CACAonB,8BACI,IAAIC,EAAgBn8K,KAAKi8K,eAAgBG,EAAe3vJ,KAAKw+D,IAAIjrF,KAAKg7K,aAAcmB,GAEhFr1I,EAAQra,KAAKsqB,IAAI,EAAGtqB,KAAKkzE,KAAK3/F,KAAKm3K,UAAYiF,EAAe,IAAKx/G,EAAMnwC,KAAKw+D,IAAIkxF,EAAgB,EAAGr1I,EAAQs1I,EAAe,GAGhIt1I,SAAQra,KAAKsqB,IAAI,EAAGjQ,GADR9mC,KAAKg7K,cAAgBp+G,EAAM91B,EAAQ,KAExC,CAACA,EAAO81B,EACnB,CACAi/G,kBACI77K,KAAKu3K,UAAY,GACjB,IAAI8E,EAAar8K,KAAKk8K,8BAAsDt/G,EAAMy/G,EAAW,GAC7F,QAASjxK,EADoDixK,EAAW,GACpDjxK,GAAKwxD,EAAKxxD,IAC1BpL,KAAKu3K,UAAUlkK,KAAKjI,EAAI,GAE5B,GAAIpL,KAAK46K,uBAAwB,CAC7B56K,KAAKm4K,UAAY,GACjB,QAAS/sK,EAAI,EAAGA,EAAIpL,KAAKi8K,eAAgB7wK,IACrCpL,KAAKm4K,UAAU9kK,KAAK,CAAEM,MAAOgY,OAAOvgB,EAAI,GAAIsH,MAAOtH,GAE3D,CACJ,CACAkuK,WAAWz3K,GACP,IAAIy6K,EAAKt8K,KAAKi8K,eACd,GAAIp6K,GAAK,GAAKA,EAAIy6K,EAAI,CAClBt8K,KAAKg8J,OAASh8J,KAAK80J,KAAOjzJ,EAC1B,IAAIyoD,EAAQ,CACRyvG,KAAMl4J,EACNmjE,MAAOhlE,KAAKglE,MACZ8vF,KAAM90J,KAAK80J,KACXynB,UAAWD,GAEft8K,KAAK67K,kBACL77K,KAAKo7K,aAAa/mK,KAAKi2C,GACvBtqD,KAAKs7K,sBACT,CACJ,CACAQ,cACI,MAAM/hB,EAAO/5J,KAAKm3K,UACdpd,EAAO,GAAK/5J,KAAKm7K,cAAgBn7K,KAAKglE,OAAShlE,KAAKm7K,cACpDltH,QAAQC,QAAQ,MAAM+jF,KAAK,IAAMjyI,KAAKs5K,WAAWvf,EAAO,GAEhE,CACAod,UACI,OAAO1qJ,KAAKG,MAAM5sB,KAAKglE,MAAQhlE,KAAK80J,KACxC,CACAyhB,kBAAkBvuK,GACThI,KAAKw2K,eACNx2K,KAAKs5K,WAAW,GAEpBtxK,EAAM0S,gBACV,CACA6/J,iBAAiBvyK,GACbhI,KAAKs5K,WAAWt5K,KAAKm3K,UAAY,GACjCnvK,EAAM0S,gBACV,CACA8/J,iBAAiBxyK,GACbhI,KAAKs5K,WAAWt5K,KAAKm3K,UAAY,GACjCnvK,EAAM0S,gBACV,CACAy+J,iBAAiBnxK,GACRhI,KAAKo5K,cACNp5K,KAAKs5K,WAAWt5K,KAAKi8K,eAAiB,GAE1Cj0K,EAAM0S,gBACV,CACAw8J,gBAAgBlvK,EAAO+xJ,GACnB/5J,KAAKs5K,WAAWvf,GAChB/xJ,EAAM0S,gBACV,CACAu/J,YAAYjyK,GACRhI,KAAKs5K,WAAWt5K,KAAKm3K,UACzB,CACAe,qBAAqBlwK,GACjBhI,KAAKs5K,WAAWtxK,EAAM0K,MAC1B,CACA4oK,uBACIt7K,KAAK81K,eAAiB,CAClB/b,KAAM/5J,KAAKm3K,UACXoF,UAAWv8K,KAAKi8K,eAChBnnB,KAAM90J,KAAK80J,KACX9vF,MAAOhlE,KAAKglE,MACZm2G,aAAcn7K,KAAKm7K,aAE3B,CACAvvD,QACI,OAA+B,IAAxB5rH,KAAKi8K,cAChB,CACA1C,cACI,OAAOv5K,KAAKi8K,eAAiB,EAAIj8K,KAAKm3K,UAAY,EAAI,CAC1D,CACA,qBAAIvmG,GACA,OAAO5wE,KAAKk7K,0BACPz3J,QAAQ,gBAAiBkI,OAAO3rB,KAAKu5K,gBACrC91J,QAAQ,eAAgBkI,OAAO3rB,KAAKi8K,iBACpCx4J,QAAQ,UAAWkI,OAAO3rB,KAAKm7K,aAAe,EAAIn7K,KAAKg8J,OAAS,EAAI,IACpEv4I,QAAQ,SAAUkI,OAAOc,KAAKw+D,IAAIjrF,KAAKg8J,OAASh8J,KAAK80J,KAAM90J,KAAKm7K,gBAChE13J,QAAQ,SAAUkI,OAAO3rB,KAAK80J,OAC9BrxI,QAAQ,iBAAkBkI,OAAO3rB,KAAKm7K,cAC/C,CACAx7D,iBAAc,SAA2BvhF,GAAqB,OAAO,IAAKA,GAAqB28I,EAAc,EAC7Gp7D,iBAA4Bh5G,MAAqB,CAAE3D,KAAM+3K,EAAWzmK,UAAW,CAAC,CAAC,gBAAiBuiH,eAAgB,SAAkChiH,EAAIC,EAAKgiH,GAOvJ,GAP4K,EAALjiH,IACrKlO,MAAkBmwH,EAAU7hH,GAAK,GACjCtO,MAAkBmwH,EAAU7/G,GAAK,GACjCtQ,MAAkBmwH,EAAUhE,GAAK,GACjCnsH,MAAkBmwH,EAAU/D,GAAK,GACjCpsH,MAAkBmwH,EAAU9D,GAAK,GACjCrsH,MAAkBmwH,EAAUa,MAAe,IACpC,EAAL9iH,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAI2yJ,qBAAuB7vC,EAAG5yD,OAC3Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIshK,0BAA4Bx+C,EAAG5yD,OAChFr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIgiK,6BAA+Bl/C,EAAG5yD,OACnFr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIkkK,yBAA2BphD,EAAG5yD,OAC/Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAI4jK,yBAA2B9gD,EAAG5yD,OAC/Er+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIsiH,UAAYQ,EACjE,CAAE,EAAGrjH,OAAQ,CAAEymK,aAAc,CAAC,EAAG,eAAgB,eAAgBnjD,OAAkB9qF,MAAO,QAAS6oC,WAAY,aAAcqlG,WAAY,CAAC,EAAG,aAAc,aAAc1rD,OAAmB6oD,iBAAkB,mBAAoBvC,aAAc,eAAgBwE,cAAe,gBAAiB/1D,SAAU,WAAY+zD,qBAAsB,uBAAwB6C,0BAA2B,4BAA6BT,sBAAuB,CAAC,EAAG,wBAAyB,wBAAyBlrD,OAAmBmrD,kBAAmB,CAAC,EAAG,oBAAqB,oBAAqBnrD,OAAmB4rD,aAAc,CAAC,EAAG,eAAgB,eAAgBtjD,OAAkBi9B,KAAM,CAAC,EAAG,OAAQ,OAAQj9B,OAAkBijD,mBAAoB,qBAAsBF,uBAAwB,CAAC,EAAG,yBAA0B,yBAA0BrrD,OAAmBsrD,oBAAqB,CAAC,EAAG,sBAAuB,sBAAuBtrD,OAAmBqoD,uBAAwB,yBAA0B+C,cAAe,CAAC,EAAG,gBAAiB,gBAAiBprD,OAAmBh6F,OAAQ,SAAUokJ,qBAAsB,uBAAwB30G,MAAO,SAAWxwD,QAAS,CAAE4mK,aAAc,gBAAkB93D,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAAC8uK,KAAkB9uK,MAA6BA,MAA+BA,MAAyBA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,EAAG,QAAS,UAAW,UAAW,EAAG,QAAS,CAAC,EAAG,UAAW,WAAY,CAAC,QAAS,4BAA6B,EAAG,QAAS,CAAC,QAAS,sBAAuB,EAAG,QAAS,CAAC,OAAQ,SAAU,UAAW,GAAI,QAAS,oBAAqB,EAAG,WAAY,UAAW,QAAS,EAAG,QAAS,CAAC,OAAQ,SAAU,UAAW,GAAI,EAAG,mBAAoB,EAAG,QAAS,WAAY,WAAY,CAAC,EAAG,aAAc,EAAG,QAAS,CAAC,QAAS,wBAAyB,EAAG,QAAS,CAAC,QAAS,oBAAqB,EAAG,QAAS,CAAC,aAAc,2BAA4B,EAAG,UAAW,UAAW,WAAY,WAAY,eAAgB,WAAY,EAAG,QAAS,CAAC,OAAQ,SAAU,UAAW,GAAI,EAAG,mBAAoB,EAAG,QAAS,WAAY,WAAY,CAAC,QAAS,wBAAyB,EAAG,QAAS,CAAC,OAAQ,SAAU,UAAW,GAAI,QAAS,mBAAoB,EAAG,WAAY,UAAW,QAAS,EAAG,QAAS,CAAC,QAAS,wBAAyB,EAAG,UAAW,WAAY,gBAAiB,EAAG,QAAS,CAAC,aAAc,2BAA4B,EAAG,UAAW,UAAW,WAAY,WAAY,eAAgB,YAAa,gBAAiB,WAAY,EAAG,QAAS,CAAC,QAAS,0BAA2B,EAAG,QAAS,CAAC,EAAG,6BAA8B,CAAC,EAAG,mBAAoB,2BAA4B,CAAC,EAAG,uBAAwB,CAAC,OAAQ,SAAU,UAAW,GAAI,EAAG,oBAAqB,EAAG,QAAS,WAAY,WAAY,CAAC,QAAS,yBAA0B,EAAG,QAAS,CAAC,EAAG,cAAe,CAAC,EAAG,0BAA2B,CAAC,EAAG,oBAAqB,CAAC,EAAG,yBAA0B,CAAC,EAAG,qBAAsB,CAAC,OAAQ,SAAU,QAAS,mBAAoB,UAAW,GAAI,EAAG,UAAW,QAAS,EAAG,QAAS,WAAY,CAAC,OAAQ,SAAU,UAAW,GAAI,EAAG,mBAAoB,EAAG,QAAS,WAAY,CAAC,aAAc,2BAA4B,EAAG,WAAY,UAAW,UAAW,WAAY,WAAY,gBAAiB,CAAC,YAAa,gBAAiB,CAAC,EAAG,QAAS,CAAC,YAAa,QAAS,CAAC,YAAa,gBAAiB,CAAC,EAAG,yBAA0B,CAAC,OAAQ,SAAU,UAAW,GAAI,EAAG,mBAAoB,EAAG,QAAS,WAAY,WAAY,CAAC,QAAS,wBAAyB,EAAG,QAAS,CAAC,EAAG,yBAA0B,CAAC,EAAG,wBAAyB,EAAG,gBAAiB,UAAW,YAAa,CAAC,aAAc,2BAA4B,EAAG,gBAAiB,WAAY,UAAW,UAAW,WAAY,WAAY,eAAgB,aAAc,CAAC,EAAG,4BAA6BC,SAAU,SAA4BC,EAAIC,GAAgB,EAALD,GAC9xHlO,MAAc,EAAG2zK,GAA0B,GAAI,GAAI,MAAO,GACnD,EAALzlK,GACFlO,MAAc,SAAQmO,EAAImmK,YAAoBnmK,EAAIyiK,WAAaziK,EAAIyiK,UAAUlsK,OAAS,EACxF,EAAGilH,aAAc,CAACxxF,MAAcl4B,MAAYA,MAAYA,MAASA,MAAqBA,MAAYgmK,GAAQzlB,GAAaq1B,MAAa31K,MAAoBA,MAAY8qH,GAAQq9B,GAAqBE,GAAsBE,GAAeE,GAAgBxuH,MAAch6B,OAAmBypH,cAAe,EAAGC,gBAAiB,IACnU,OAxXKuqD,CAAS,KA2jBT0B,GAAe,MAArB,MAAMA,EACF98D,iBAAc,SAAiCvhF,GAAqB,OAAO,IAAKA,GAAqBq+I,EAAoB,EACzH98D,iBAA4Bh5G,KAAoB,CAAE3D,KAAMy5K,IACxD98D,iBAA4Bh5G,MAAoB,CAAE43B,QAAS,CAACw8I,GAAWj6I,MAAcA,SACxF,OAJK27I,CAAe,KCtnCrB,MAAMhtD,GAAQA,EAAG9O,QAAS,2IAMbA,EAAG,sCACFA,EAAG,wfAyBOA,EAAG,iDACTA,EAAG,0CACRA,EAAG,sCACFA,EAAG,sDACYA,EAAG,6CAA6CA,EAAG,oDAAoDA,EAAG,kDAAkDA,EAAG,qDAAqDA,EAAG,yFAElOA,EAAG,gFAIMA,EAAG,qFAEbA,EAAG,yCACPA,EAAG,0CACFA,EAAG,gPAOGA,EAAG,2GAIHA,EAAG,yDACLA,EAAG,6HAIHA,EAAG,iOAMDA,EAAG,+DACLA,EAAG,kMAIHA,EAAG,kKAIDA,EAAG,uDACLA,EAAG,mDACNA,EAAG,mCAAmCA,EAAG,mCAAmCA,EAAG,yDACxEA,EAAG,mKAILA,EAAG,iIAIHA,EAAG,oHAILA,EAAG,uIAIHA,EAAG,yLAIHA,EAAG,qKAQHA,EAAG,0DACDA,EAAG,mJAILA,EAAG,oHAKRA,EAAG,yCACFA,EAAG,2FAIAA,EAAG,4CACPA,EAAG,6CACFA,EAAG,6GAKJA,EAAG,yCACFA,EAAG,2FAIAA,EAAG,4CACPA,EAAG,6CACFA,EAAG,oCAGXtrG,GAAU,CACZi6C,KAAMA,EAAG8xD,WAAU5sD,WAAY,CAC3B,4BACA,CACI,wBAAyB4sD,EAAS2+B,QAClC,aAAcvrF,EAAMz+C,SACpB,YAAay+C,EAAMokE,QACnB,mBAAoBpkE,EAAMyiE,QAA4B,WAAlBziE,EAAMyiE,QAAsD,WAA/B7V,EAASjoG,OAAOmgH,YAA4D,WAAjClY,EAASjoG,OAAOogH,eAGpIymB,IAAK,oBACLrvG,MAAO,sBACP2zB,KAAM,sBACR,IACIo4G,GAAgB,MAAtB,MAAMA,UAAyBh9D,KAC3Bp9G,KAAO,cACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAIg9D,EAA+B,OAAO,SAAkCv+I,GAAqB,OAAQu+I,IAAkCA,EAAgCh2K,MAAyB+1K,KAAoBt+I,GAAqBs+I,EAAmB,CAAG,EAA3Q,GAC7B/8D,kBAA6Bh5G,MAAsB,CAAE0e,MAAOq3J,EAAkBv1K,QAASu1K,EAAiBt1K,YAC3G,OANKs1K,CAAgB,KAuCtB,MAAMznK,GAAM,CAAC,SACPgC,GAAMA,CAACg8G,EAAI8M,EAAIywB,EAAIC,EAAIC,MAAU,6BAA6B,EAAM,wBAAyBz9B,EAAI,aAAc8M,EAAI,mBAAoBywB,EAAI,mCAAoCC,EAAI,mCAAoCC,IACvNksB,GAAuB,CACzB59I,QAAS6uG,MACTC,eAAaC,OAAW,IAAM8uC,IAC9BrwI,OAAO,GACT,IACIswI,GAAoB,MAA1B,MAAMA,EACFC,UAAY,GACZnnI,IAAInjC,EAASuqK,GACTh9K,KAAK+8K,UAAU1pK,KAAK,CAACZ,EAASuqK,GAClC,CACAloH,OAAOkoH,GACHh9K,KAAK+8K,UAAY/8K,KAAK+8K,UAAU9uK,OAAQytB,GAC7BA,EAAE,KAAOshJ,EAExB,CACA96G,OAAO86G,GACHh9K,KAAK+8K,UAAUxpK,QAASmoB,IAChB17B,KAAKi9K,YAAYvhJ,EAAGshJ,IAAathJ,EAAE,KAAOshJ,GAC1CthJ,EAAE,GAAG0hH,WAAW4/B,EAAStqK,MAAK,EAG1C,CACAuqK,YAAYC,EAAaF,GACrB,QAAKE,EAAY,GAAGzqK,SAGbyqK,EAAY,GAAGzqK,QAAQ68C,OAAS0tH,EAASvqK,QAAQA,QAAQ68C,MAAQ4tH,EAAY,GAAG56K,OAAS06K,EAAS16K,IAC7G,CACAq9G,iBAAc,SAAsCvhF,GAAqB,OAAO,IAAKA,GAAqB0+I,EAAyB,EACnIn9D,kBAA6Bh5G,MAAsB,CAAE0e,MAAOy3J,EAAsB31K,QAAS21K,EAAqB11K,UAAMuU,WAAY,SACrI,OAzBKmhK,CAAoB,KAoCpBD,GAAW,MAAjB,MAAMA,UAAoB5pK,GAKtBP,MAKAyqK,gBAKA76K,KAKAyT,SAKAkhH,QAAU,WAKV30G,KAKA00G,SAKA8L,QAKAE,eAKAjS,UAKAhkF,MAKA6oC,WAKAo5C,UAKA8xB,OAMA1sI,QAAU,IAAIF,MAMd4qG,QAAU,IAAI5qG,MAMd6qG,OAAS,IAAI7qG,MACbotI,eACAhP,cAAgBA,OAChBC,eAAiBA,OACjBwN,QACA7wB,QACAz8G,QACAuuG,mBAAkBnB,OAAO68D,IACzBz8D,YAAWJ,OAAOK,OAClBk9D,YAAWv9D,OAAOi9D,IAClB3oK,WACIhU,MAAMgU,WACNnU,KAAKyS,QAAUzS,KAAKigH,SAASj6G,IAAI47I,OACjC5hJ,KAAKq9K,YACLr9K,KAAKo9K,SAASxnI,IAAI51C,KAAKyS,QAASzS,KACpC,CACAqhJ,SAASr5I,GACAhI,KAAK+V,UACN/V,KAAKkiE,OAAOl6D,EAEpB,CACAk6D,OAAOl6D,GACEhI,KAAK+V,WACN/V,KAAK+/I,SAAU,EACf//I,KAAKsyI,cAActyI,KAAK0S,OACxB1S,KAAKo9K,SAASl7G,OAAOliE,MACrBA,KAAKoU,QAAQC,KAAK,CAAE8jI,cAAenwI,EAAO0K,MAAO1S,KAAK0S,QAE9D,CACA0qI,WAAW1qI,GAKH1S,KAAK+/I,QAJJ//I,KAAK8gJ,SAIWpuI,EAHFA,GAAS1S,KAAK0S,MAK7B1S,KAAKshJ,gBAAkBthJ,KAAKshJ,eAAe7rE,gBAC3Cz1E,KAAKshJ,eAAe7rE,cAAcsqE,QAAU//I,KAAK+/I,SAErD//I,KAAKmgH,GAAG0zB,cACZ,CACAwJ,iBAAiBz6F,GACb5iD,KAAKsyI,cAAgB1vF,CACzB,CACA06F,kBAAkB16F,GACd5iD,KAAKuyI,eAAiB3vF,CAC1B,CACA26F,iBAAiBjuH,GACbtvB,KAAK+V,SAAWuZ,EAChBtvB,KAAKmgH,GAAG0zB,cACZ,CACAzR,aAAap6H,GACThI,KAAKkvH,SAAU,EACflvH,KAAK8+G,QAAQzqG,KAAKrM,EACtB,CACAu6H,YAAYv6H,GACRhI,KAAKkvH,SAAU,EACflvH,KAAKuyI,iBACLvyI,KAAK++G,OAAO1qG,KAAKrM,EACrB,CAKA62G,QACI7+G,KAAKshJ,eAAe7rE,cAAcopC,OACtC,CACArkG,cACIxa,KAAKo9K,SAAStoH,OAAO90D,MACrBG,MAAMqa,aACV,CACA6iK,YACQr9K,KAAKsC,MAAQtC,KAAKm9K,iBAAmBn9K,KAAKsC,OAAStC,KAAKm9K,iBACxDn9K,KAAKs9K,kBAEJt9K,KAAKsC,MAAQtC,KAAKm9K,kBACnBn9K,KAAKsC,KAAOtC,KAAKm9K,gBAEzB,CACAG,iBACI,MAAM,IAAI5gK,MAAM,mNAIpB,CACAijG,iBAA6B,MAAQ,IAAI49D,EAA0B,OAAO,SAA6Bn/I,GAAqB,OAAQm/I,IAA6BA,EAA2B52K,MAAyBk2K,KAAez+I,GAAqBy+I,EAAc,CAAG,EAA7O,GAC7Bl9D,iBAA4Bh5G,MAAqB,CAAE3D,KAAM65K,EAAavoK,UAAW,CAAC,CAAC,iBAAkB,CAAC,iBAAkB,CAAC,mBAAoB2B,UAAW,SAA2BpB,EAAIC,GAEjL,GAFiM,EAALD,GAC1LlO,MAAesO,GAAK,GACb,EAALJ,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAIwsI,eAAiB1pB,EAAG5yD,MACzE,CAAE,EAAGzwD,OAAQ,CAAE7B,MAAO,QAASyqK,gBAAiB,kBAAmB76K,KAAM,OAAQyT,SAAU,CAAC,EAAG,WAAY,WAAYw5G,OAAmB0H,QAAS,UAAW30G,KAAM,OAAQ00G,SAAU,CAAC,EAAG,WAAY,WAAYa,OAAkBiL,QAAS,UAAWE,eAAgB,iBAAkBjS,UAAW,YAAahkF,MAAO,QAAS6oC,WAAY,aAAco5C,UAAW,CAAC,EAAG,YAAa,YAAaO,OAAmBuxB,OAAQ,CAAC,EAAG,SAAU,SAAUvxB,QAAqB/6G,QAAS,CAAEJ,QAAS,UAAW0qG,QAAS,UAAWC,OAAQ,UAAYuE,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAACi2K,GAAsBF,KAAoB/1K,MAA6BA,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,GAAIC,OAAQ,CAAC,CAAC,QAAS,IAAK,CAAC,EAAG,UAAW,WAAY,CAAC,OAAQ,QAAS,EAAG,sBAAuB,EAAG,QAAS,OAAQ,SAAU,UAAW,WAAY,QAAS,cAAe,CAAC,EAAG,qBAAsB,CAAC,EAAG,uBAAwBC,SAAU,SAA8BC,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACx/B,MAAMsB,EAAMxP,QACZA,MAAkB,EAAG,MAAO,EAA5BA,CAA+B,EAAG,QAAS,EAAG,GAC9CA,MAAc,QAAS,SAAqDkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAIstH,aAAavnH,GAAU,EAA9JlU,CAAiK,OAAQ,SAAoDkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAIytH,YAAY1nH,GAAU,EAA9SlU,CAAiT,SAAU,SAAsDkU,GAAUlU,aAAiBwP,GAAaxP,MAAemO,EAAIusI,SAASxmI,GAAU,GAC/blU,QACAA,MAAkB,EAAG,MAAO,GAC5BA,MAAa,EAAG,MAAO,GACvBA,SACJ,CAAW,EAALkO,IACFlO,MAAcmO,EAAI8gE,YAClBjvE,MAAc,UAAWmO,EAAIi4B,MAA7BpmC,CAAoC,UAAWA,MAAmB,GAAIsQ,GAAKnC,EAAIirI,QAASjrI,EAAIiB,SAA0B,WAAhBjB,EAAImiH,SAAoD,WAA5BniH,EAAIqE,OAAOmgH,cAA2D,WAA9BxkH,EAAIqE,OAAOogH,eAA0C,UAAbzkH,EAAIwN,KAA+B,UAAbxN,EAAIwN,OAC5O3b,MAAe,eAAgB,cAA/BA,CAA8C,kBAAmB,QACjEA,QACAA,MAAc,UAAWmO,EAAIirI,QAA7Bp5I,CAAsC,WAAYmO,EAAIiB,SAAtDpP,CAAgE,QAASmO,EAAIpC,MAA7E/L,CAAoF,aAAcmO,EAAIk6G,WACtGroH,MAAe,KAAMmO,EAAIguH,QAAzBn8H,CAAkC,OAAQmO,EAAIxS,KAA9CqE,CAAoD,kBAAmBmO,EAAIkuH,eAA3Er8H,CAA2F,aAAcmO,EAAIi8G,UAA7GpqH,CAAwH,WAAYmO,EAAIkiH,SAAxIrwH,CAAkJ,eAAgBmO,EAAIirI,SACtKp5I,MAAa,GACbA,MAAe,kBAAmB,SAClCA,QACAA,MAAe,kBAAmB,QACpC,EAAG2pH,aAAc,CAACxxF,MAAcl4B,MAAYA,MAAYmoH,GAAWjuF,OAAeyvF,cAAe,EAAGC,gBAAiB,IAC9H,OAvMKqsD,CAAW,KAkSXW,GAAiB,MAAvB,MAAMA,EACF79D,iBAAc,SAAmCvhF,GAAqB,OAAO,IAAKA,GAAqBo/I,EAAsB,EAC7H79D,iBAA4Bh5G,KAAoB,CAAE3D,KAAMw6K,IACxD79D,iBAA4Bh5G,MAAoB,CAAE43B,QAAS,CAACs+I,GAAa/7I,MAAcA,SAC1F,OAJK08I,CAAiB,KC9gBvB,MAAM/tD,GAAQA,EAAG9O,QAAS,oNASbA,EAAG,2CACEA,EAAG,sDACGA,EAAG,+CACZA,EAAG,8IAIWA,EAAG,8CAA8CA,EAAG,qDAAqDA,EAAG,+DACjHA,EAAG,mDAAmDA,EAAG,4DAC5DA,EAAG,qFAELA,EAAG,sLAQXA,EAAG,yOAYeA,EAAG,8CAA8CA,EAAG,qDAAqDA,EAAG,mEAC7GA,EAAG,mDAAmDA,EAAG,0FAE3DA,EAAG,2CAClBA,EAAG,kEACqBA,EAAG,sEACFA,EAAG,sDAClBA,EAAG,0GAINA,EAAG,gEACHA,EAAG,sIAIHA,EAAG,iDACRA,EAAG,gGAIEA,EAAG,0DACDA,EAAG,qDACVA,EAAG,yFAIEA,EAAG,oDACNA,EAAG,oCAAoCA,EAAG,oCAAoCA,EAAG,0DAC1EA,EAAG,2FAILA,EAAG,kIAMLA,EAAG,2DACDA,EAAG,sDACVA,EAAG,4EAIHA,EAAG,0IAIHA,EAAG,qHAIHA,EAAG,yGAIHA,EAAG,iFAIDA,EAAG,+CACDA,EAAG,0EAILA,EAAG,+CACDA,EAAG,kMAUAA,EAAG,6CAGjBtrG,GAAU,CACZi6C,KAAMA,EAAG8xD,eAAS,CACd,8BAA8B,EAC9B,yBAA0BA,EAAS2+B,QACnC,aAAc3+B,EAASrrG,SACvB,oCAAuD,UAAlBqrG,EAAS9+F,KAC9C,oCAAuD,UAAlB8+F,EAAS9+F,OAElDu/C,QAAS,yBACTyC,KAAM,sBACN3wD,MAAO,wBACT,IACI8pK,GAAiB,MAAvB,MAAMA,UAA0B/9D,KAC5Bp9G,KAAO,eACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAI+9D,EAAgC,OAAO,SAAmCt/I,GAAqB,OAAQs/I,IAAmCA,EAAiC/2K,MAAyB82K,KAAqBr/I,GAAqBq/I,EAAoB,CAAG,EAAjR,GAC7B99D,kBAA6Bh5G,MAAsB,CAAE0e,MAAOo4J,EAAmBt2K,QAASs2K,EAAkBr2K,YAC7G,OANKq2K,CAAiB,KAmCvB,MAAMxoK,GAAM,CAAC,QACPgC,GAAM,CAAC,WACP67G,GAAMG,KAAS38G,UAAW28G,IAC1BF,GAAMA,CAACE,EAAI8M,MAAU,uBAAuB,EAAM,2BAA4B9M,EAAI,4BAA6B8M,IACrH,SAAS49C,GAAqC9oK,EAAIC,GAAgB,EAALD,GACzDlO,MAAsB,EACxB,CACF,SAASi3K,GAAgE/oK,EAAIC,GAE3E,GAF2F,EAALD,GACpFlO,MAAa,EAAG,OAAQ,GACjB,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc8M,EAAOssI,QAAUtsI,EAAOoqK,OAASpqK,EAAOqqK,SACtDn3K,MAAc,UAAWA,MAAmB,EAAGosH,GAAwB,SAAnBt/G,EAAO++G,QAAuC,UAAnB/+G,EAAO++G,UACtF7rH,MAAe,kBAAmB,OACtC,CAAE,CACF,SAASo3K,GAAkDlpK,EAAIC,GAE7D,GAF6E,EAALD,GACtElO,MAAc,EAAGi3K,GAAiE,EAAG,EAAG,OAAQ,GACzF,EAAL/oK,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAiB8M,EAAOoqK,QAAUpqK,EAAOqqK,QAAU,GAAI,EAC3D,CAAE,CACF,SAASE,GAAiEnpK,EAAIC,GAAgB,EAALD,GACrFlO,MAAsB,EACxB,CACF,SAASs3K,GAAkDppK,EAAIC,GAE7D,GAF6E,EAALD,GACtElO,MAAc,EAAGq3K,GAAkE,EAAG,EAAG,eAAgB,GAClG,EAALnpK,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,mBAAoB8M,EAAOwgH,cAAgBxgH,EAAOygH,cAAhEvtH,CAA+E,0BAA2BA,MAAmB,EAAGmsH,GAAKr/G,EAAOssI,SAChJ,CAAE,CACF,SAASm+B,GAAoCrpK,EAAIC,GAK/C,GAL+D,EAALD,IACxDlO,MAAc,EAAGo3K,GAAmD,EAAG,EAAvEp3K,CAA0E,EAAGs3K,GAAmD,EAAG,EAAG,gBACtIt3K,MAAkB,EAAG,OAAQ,GAC7BA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,MAAkB8M,EAAOwgH,aAAmB,EAAJ,GACxCttH,MAAa,GACbA,MAAc,UAAW8M,EAAOyvG,GAAG,UACnCv8G,MAAe,kBAAmB,SAClCA,QACAA,MAAqB8M,EAAOssI,QAAUtsI,EAAO0qK,WAAa1qK,EAAO2qK,QAAU,OAAW3qK,EAAO4qK,YAAc5qK,EAAO6qK,SAAW,OACjI,CAAE,CACF,MAAMC,GAA8B,CAChCv/I,QAAS6uG,MACTC,eAAaC,OAAW,IAAMywC,IAC9BhyI,OAAO,GAEX,IAIMgyI,GAAY,MAAlB,MAAMA,UAAqBvrK,GAKvBmrK,QAAU,MAKVE,SAAW,KAKXT,OAKAC,QAKA/sD,UAKAiS,eAKAjtH,SAKAg3B,MAKA6oC,WACA,aAAI+4F,GACA,OAAO3uK,KAAK41E,YAAc,EAC9B,CAKAktD,QAKA9L,SAAW,EAKX10G,KAKAkwG,QAAU,OAKVxD,UAKAw0B,WAMAnC,SAAW,IAAIntI,MAKf+/G,aAKAkD,gBACAC,UACA2oB,SAAU,EACVzN,cAAgBA,OAChBC,eAAiBA,OACjBvxB,mBAAkBnB,OAAO49D,IACzBjhC,OAAOx0I,IACEhI,KAAK+V,YAAkC,IAApB/V,KAAKwjJ,aAAwBxjJ,KAAK+/I,WACtD//I,KAAK+/I,SAAW//I,KAAK+/I,QACrB//I,KAAKsyI,cAActyI,KAAK+/I,SACxB//I,KAAKuyI,iBACLvyI,KAAKqhJ,SAAShtI,KAAK,CACf8jI,cAAenwI,EACf+3I,QAAS//I,KAAK+/I,UAElB//I,KAAKmgH,GAAG0zB,eAEhB,CACA+T,UAAU5/I,GACN,OAAQA,EAAM5F,MACV,IAAK,QAIL,IAAK,QACDpC,KAAKw8I,OAAOx0I,GACZA,EAAM0S,iBAGlB,CACAqkG,SACI/+G,KAAKuyI,gBACT,CACA6K,WAAW1qI,GACP1S,KAAK+/I,QAAUrtI,EACf1S,KAAKmgH,GAAG0zB,cACZ,CACAwJ,iBAAiBz6F,GACb5iD,KAAKsyI,cAAgB1vF,CACzB,CACA06F,kBAAkB16F,GACd5iD,KAAKuyI,eAAiB3vF,CAC1B,CACA26F,iBAAiBjuH,GACbtvB,KAAK+V,SAAWuZ,EAChBtvB,KAAKmgH,GAAG0zB,cACZ,CACA,cAAIsqC,GACA,OAAQn+K,KAAKo+K,SAAWp+K,KAAKo+K,QAAQ/yK,OAAS,CAClD,CACA,eAAIgzK,GACA,OAAQr+K,KAAKo+K,SAAWp+K,KAAKo+K,QAAQ/yK,OAAS,CAClD,CACA,UAAIshE,GACA,OAAwB,IAAjB3sE,KAAK+/I,OAChB,CACA7rB,cACAmD,iBACAC,qBACIt3H,KAAKo3H,UAAU7jH,QAAS1B,IAEX,SADDA,EAAK0lH,UAELv3H,KAAKk0H,cAAgBriH,EAAK+C,SAM1B5U,KAAKq3H,iBAAmBxlH,EAAK+C,QAErC,EAER,CACA+qG,iBAA6B,MAAQ,IAAI8+D,EAA2B,OAAO,SAA8BrgJ,GAAqB,OAAQqgJ,IAA8BA,EAA4B93K,MAAyB63K,KAAgBpgJ,GAAqBogJ,EAAe,CAAG,EAAnP,GAC7B7+D,iBAA4Bh5G,MAAqB,CAAE3D,KAAMw7K,EAAclqK,UAAW,CAAC,CAAC,kBAAmB,CAAC,kBAAmB,CAAC,oBAAqBuiH,eAAgB,SAAqChiH,EAAIC,EAAKgiH,GAIzM,GAJ8N,EAALjiH,IACvNlO,MAAkBmwH,EAAU7hH,GAAK,GACjCtO,MAAkBmwH,EAAU7/G,GAAK,GACjCtQ,MAAkBmwH,EAAUa,MAAe,IACpC,EAAL9iH,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAIm/G,aAAe2D,EAAG5yD,OACnEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIqiH,gBAAkBS,EAAG5yD,OACtEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIsiH,UAAYQ,EACjE,CAAE,EAAGvH,SAAU,EAAGz1G,aAAc,SAAmC/F,EAAIC,GAAgB,EAALD,GAC9ElO,MAAcmO,EAAI65J,UACpB,EAAGp6J,OAAQ,CAAE6pK,QAAS,UAAWE,SAAU,WAAYT,OAAQ,SAAUC,QAAS,UAAW/sD,UAAW,YAAaiS,eAAgB,iBAAkBjtH,SAAU,CAAC,EAAG,WAAY,WAAYw5G,OAAmBxiF,MAAO,QAAS6oC,WAAY,aAAcktD,QAAS,UAAW9L,SAAU,CAAC,EAAG,WAAY,WAAYa,OAAkBv1G,KAAM,OAAQkwG,QAAS,UAAWxD,UAAW,CAAC,EAAG,YAAa,YAAaO,OAAmBi0B,WAAY,cAAgBhvI,QAAS,CAAE6sI,SAAU,YAAc/9B,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAAC43K,GAA6Bd,KAAqB92K,MAA6BA,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,GAAIC,OAAQ,CAAC,CAAC,UAAW,GAAI,OAAQ,SAAU,EAAG,QAAS,UAAW,WAAY,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,mBAAoB,2BAA4B,CAAC,EAAG,QAAS,YAAaC,SAAU,SAA+BC,EAAIC,GAAgB,EAALD,IACj6BlO,MAAkB,EAAG,SAAU,GAC/BA,MAAc,QAAS,SAAuDkU,GAAU,OAAO/F,EAAI0nI,OAAO3hI,EAAS,GACnHlU,MAAkB,EAAG,OAAQ,GAC7BA,MAAc,EAAGg3K,GAAsC,EAAG,EAAG,eAAgB,EAA7Eh3K,CAAgF,EAAGu3K,GAAqC,EAAG,EAAG,OAAQ,GACtIv3K,WACO,EAALkO,IACFlO,MAAcmO,EAAI8gE,YAClBjvE,MAAc,UAAWmO,EAAIouG,GAAG,QAAhCv8G,CAAyC,WAAYmO,EAAIkiH,SAAzDrwH,CAAmE,WAAYmO,EAAIiB,UACnFpP,MAAe,kBAAmBmO,EAAIkuH,eAAtCr8H,CAAsD,eAAgBmO,EAAIirI,QAA1Ep5I,CAAmF,iBAAkBmO,EAAI63D,OAAzGhmE,CAAiH,kBAAmBmO,EAAIiB,UACxIpP,QACAA,MAAc,UAAWmO,EAAIouG,GAAG,YAChCv8G,QACAA,MAAc,mBAAoBmO,EAAIqiH,iBAAmBriH,EAAIuiH,iBAA7D1wH,CAA+E,0BAA2BA,MAAmB,GAAImsH,GAAKh+G,EAAIirI,UAC1Ip5I,QACAA,MAAkBmO,EAAIqiH,iBAAsB,EAAJ,GAC1C,EAAG7G,aAAc,CAACqB,GAAQ7yF,MAAcl4B,MAAYA,MAAqBk6B,OAAeyvF,cAAe,EAAGC,gBAAiB,IACpI,OApMKguD,CAAY,KC1NlB,MAAM/uD,GAAQA,EAAG9O,QAAS,4JAMLA,EAAG,mWAeSA,EAAG,gEACLA,EAAG,iIAIHA,EAAG,8DACLA,EAAG,sGAIPA,EAAG,qEAItBtrG,GAAU,CACZi6C,KAAMA,EAAGkF,WAAY,CACjB,6BACA,CACI,YAAaA,EAAMokE,WAG7B,IACI8lD,GAAiB,MAAvB,MAAMA,UAA0Bh/D,KAC5Bp9G,KAAO,eACPmtH,MAAQA,GACRp6G,QAAUA,GACVsqG,iBAA6B,MAAQ,IAAIg/D,EAAgC,OAAO,SAAmCvgJ,GAAqB,OAAQugJ,IAAmCA,EAAiCh4K,MAAyB+3K,KAAqBtgJ,GAAqBsgJ,EAAoB,CAAG,EAAjR,GAC7B/+D,kBAA6Bh5G,MAAsB,CAAE0e,MAAOq5J,EAAmBv3K,QAASu3K,EAAkBt3K,YAC7G,OANKs3K,CAAiB,KA2BvB,MAAMzpK,GAAM,CAAC,QACPgC,GAAMA,CAACg8G,EAAI8M,MAAUzpH,UAAW28G,EAAIt+F,MAAOorG,IACjD,SAAS6+C,GAAuE/pK,EAAIC,GAAgB,EAALD,GAC3FlO,MAAsB,EACxB,CACF,SAASk4K,GAAwDhqK,EAAIC,GAEnE,GAFmF,EAALD,GAC5ElO,MAAc,EAAGi4K,GAAwE,EAAG,EAAG,eAAgB,GACxG,EAAL/pK,EAAQ,CACV,MAAMiqK,EAASn4K,MAAiB,GAC1Bo4K,EAAYD,EAAOxoK,UACnB0oK,EAAeF,EAAOG,OACtBC,EAASv4K,QACfA,MAAc,mBAAoBu4K,EAAO1pB,cAAgB0pB,EAAOzpB,cAAhE9uJ,CAA+E,0BAA2BA,MAAmB,EAAGsQ,GAAK8nK,EAAWC,GACpJ,CAAE,CACF,SAASG,GAA0CtqK,EAAIC,GAAgB,EAALD,GAC9DlO,MAAc,EAAGk4K,GAAyD,EAAG,EAAG,cAAe,KAAM,EAAGl4K,MAC1G,CACF,SAASy4K,GAA4BvqK,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACxD,MAAMsB,EAAMxP,QACZA,MAAkB,EAAG,iBAAkB,GACvCA,MAAc,WAAY,SAAwEkU,GAAU,MAAMuiE,EAASz2E,MAAiBwP,GAAY4oK,EAAY3hG,EAAO9mE,UAAiB0oK,EAAe5hG,EAAO6hG,OAAcC,EAASv4K,QAAoB,OAAOA,MAAeu4K,EAAOrU,eAAehwJ,EAAQkkK,EAAWC,GAAgB,GAC5Ur4K,MAAc,EAAGw4K,GAA2C,EAAG,GAC/Dx4K,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMkqK,EAAYjqK,EAAIwB,UAChB4oK,EAASv4K,QACfA,MAAc,YAAau4K,EAAOlwD,UAAlCroH,CAA6C,aAAcu4K,EAAOtpG,WAAlEjvE,CAA8E,UAAWu4K,EAAOzoK,WAAWsoK,GAA3Gp4K,CAAuH,UAAWu4K,EAAOnU,eAAegU,GAAxJp4K,CAAoK,WAAYu4K,EAAOnU,eAAegU,GAAtMp4K,CAAkN,WAAYu4K,EAAOnpK,UAAYmpK,EAAOxa,iBAAiBqa,GAAzQp4K,CAAqR,aAAcu4K,EAAO17B,WAA1S78I,CAAsT,OAAQu4K,EAAO58J,MACrU3b,QACAA,MAAiBu4K,EAAO1pB,cAAgB0pB,EAAOzpB,cAAgB,GAAI,EACvE,CAAE,CACF,MAAM4pB,GAA8B,CAChCrgJ,QAAS6uG,MACTC,eAAaC,OAAW,IAAMuxC,IAC9B9yI,OAAO,GAEX,IAIM8yI,GAAY,MAAlB,MAAMA,UAAqBrsK,GAKvBvH,QAKAi5J,YAKA8I,YAKAC,eAKA6R,cAAe,EAKfvoD,SAAW,EAKXwoD,SAKAh8B,YAAa,EAKbz2G,MAKA6oC,WAKAotD,eAKA1gH,KAKAvM,SAKAs3J,QAKAr+C,UAMA+9C,cAAgB,IAAI74J,MAMpBmtI,SAAW,IAAIntI,MAKfshJ,aACAC,cACA,eAAIyc,GACA,OAAOlyK,KAAKytK,YAAc,KAAOztK,KAAKqtK,OAC1C,CACA36J,MACA4/H,cAAgBA,OAChBC,eAAiBA,OACjBhlB,aAAe,EACfvM,mBAAkBnB,OAAO6+D,IACzB3T,eAAerpG,GACX,OAAO1hE,KAAK2kK,eAAc5qC,OAAiBr4D,EAAQ1hE,KAAK2kK,aAA+BrjK,MAAhBogE,EAAO/tD,MAAqB+tD,EAAO/tD,MAAQ+tD,CACtH,CACAowG,eAAepwG,GACX,OAAO1hE,KAAKytK,eAAc1zC,OAAiBr4D,EAAQ1hE,KAAKytK,aAAeztK,KAAK2kK,kBAAgCrjK,IAAjBogE,EAAOhvD,MAAsBgvD,EAASA,EAAOhvD,KAC5I,CACAgyJ,iBAAiBhjG,GACb,OAAO1hE,KAAK0tK,kBAAiB3zC,OAAiBr4D,EAAQ1hE,KAAK0tK,qBAAsCpsK,IAApBogE,EAAO3rD,UAAyB2rD,EAAO3rD,QACxH,CACAqnI,WAAW1qI,GACP1S,KAAK0S,MAAQA,EACb1S,KAAKmgH,GAAG0zB,cACZ,CACAwJ,iBAAiBz6F,GACb5iD,KAAKsyI,cAAgB1vF,CACzB,CACA06F,kBAAkB16F,GACd5iD,KAAKuyI,eAAiB3vF,CAC1B,CACA26F,iBAAiBjuH,GACbtvB,KAAK+V,SAAWuZ,EAChBtvB,KAAKmgH,GAAG0zB,cACZ,CACAg3B,eAAe7iK,EAAO05D,EAAQ/sC,GAC1B,GAAI30B,KAAK+V,UAAY/V,KAAK0kK,iBAAiBhjG,GACvC,OAEJ,IAAI21E,EAAWr3I,KAAKyW,WAAWirD,GAC/B,GAAI21E,GAAYr3I,KAAKu/K,aACjB,OAEJ,IACI90B,EADAgjB,EAAcztK,KAAK8xK,eAAepwG,GAEtC,GAAI1hE,KAAKw/K,SAED/0B,EADApT,EACWr3I,KAAK0S,MAAMzE,OAAQqhB,KAAQ,EAACqqG,OAAOrqG,EAAKm+I,EAAaztK,KAAKkyK,cAE1DlyK,KAAK0S,MAAQ,IAAI1S,KAAK0S,MAAO+6J,GAAe,CAACA,OAE3D,CACD,GAAIp2B,IAAar3I,KAAKwjJ,WAClB,OAEJiH,EAAWpT,EAAW,KAAOo2B,CACjC,CACAztK,KAAKutH,aAAe54F,EACpB30B,KAAK0S,MAAQ+3I,EACbzqJ,KAAKsyI,cAActyI,KAAK0S,OACxB1S,KAAKqhJ,SAAShtI,KAAK,CACf8jI,cAAenwI,EACf0K,MAAO1S,KAAK0S,QAEhB1S,KAAK+sK,cAAc14J,KAAK,CACpB8jI,cAAenwI,EACf05D,OAAQA,EACR/sC,MAAOA,GAEf,CACA8qJ,iBAAiBz3K,EAAOszI,GACpB,IAAIokC,EAAmB/qJ,EACvB,QAASvpB,EAAI,EAAGA,GAAKpL,KAAKg7D,GAAGya,cAAc+Z,SAASnkF,OAAS,EAAGD,IACO,MAA/DpL,KAAKg7D,GAAGya,cAAc+Z,SAASpkF,GAAG+qF,aAAa,cAC/CupF,EAAoB,CAAEhzI,KAAM1sC,KAAKg7D,GAAGya,cAAc+Z,SAASpkF,GAAIupB,MAAOvpB,IAItEupB,EAFU,SAAd2mH,EACgC,IAA5BokC,EAAkB/qJ,MACV30B,KAAKg7D,GAAGya,cAAc+Z,SAASnkF,OAAS,EAExCq0K,EAAkB/qJ,MAAQ,EAGlC+qJ,EAAkB/qJ,QAAU30B,KAAKg7D,GAAGya,cAAc+Z,SAASnkF,OAAS,EAC5D,EAEAq0K,EAAkB/qJ,MAAQ,EAE1C30B,KAAKutH,aAAe54F,EACpB30B,KAAKg7D,GAAGya,cAAc+Z,SAAS76D,GAAOkqF,OAC1C,CACAC,QAAQ92G,EAAO2sB,GACX30B,KAAKutH,aAAe54F,CACxB,CACAoqF,SACI/+G,KAAKuyI,gBACT,CACAotC,aAAaj+G,GACT1hE,KAAK0S,MAAQ1S,KAAK0S,MAAMzE,OAAQqhB,KAAQ,EAACqqG,OAAOrqG,EAAKtvB,KAAK8xK,eAAepwG,GAAS1hE,KAAKqtK,SAC3F,CACA52J,WAAWirD,GACP,IAAI21E,GAAW,EACf,MAAMo2B,EAAcztK,KAAK8xK,eAAepwG,GACxC,GAAI1hE,KAAKw/K,UACL,GAAIx/K,KAAK0S,OAAS+K,MAAMC,QAAQ1d,KAAK0S,OACjC,QAAS4c,KAAOtvB,KAAK0S,MACjB,MAAIinH,OAAOrqG,EAAKm+I,EAAaztK,KAAKqtK,SAAU,CACxCh2B,GAAW,EACX,KACJ,OAKRA,KAAW1d,OAAO35H,KAAK8xK,eAAepwG,GAAS1hE,KAAK0S,MAAO1S,KAAKkyK,aAEpE,OAAO76B,CACX,CACAjgB,UACAE,qBACIt3H,KAAKo3H,UAAU7jH,QAAS1B,IAEX,SADDA,EAAK0lH,YAELv3H,KAAKy1J,cAAgB5jJ,EAAK+C,SAElC,EAER,CACA+qG,iBAA6B,MAAQ,IAAIigE,EAA2B,OAAO,SAA8BxhJ,GAAqB,OAAQwhJ,IAA8BA,EAA4Bj5K,MAAyB24K,KAAgBlhJ,GAAqBkhJ,EAAe,CAAG,EAAnP,GAC7B3/D,iBAA4Bh5G,MAAqB,CAAE3D,KAAMs8K,EAAchrK,UAAW,CAAC,CAAC,kBAAmB,CAAC,kBAAmB,CAAC,oBAAqBuiH,eAAgB,SAAqChiH,EAAIC,EAAKgiH,GAGzM,GAH8N,EAALjiH,IACvNlO,MAAkBmwH,EAAU7hH,GAAK,GACjCtO,MAAkBmwH,EAAUa,MAAe,IACpC,EAAL9iH,EAAQ,CACV,IAAI+iH,EACJjxH,MAAkBixH,EAAKjxH,WAAsBmO,EAAI0gJ,aAAe59B,EAAG5yD,OACnEr+D,MAAkBixH,EAAKjxH,WAAsBmO,EAAIsiH,UAAYQ,EACjE,CAAE,EAAGvH,SAAU,GAAIz1G,aAAc,SAAmC/F,EAAIC,GAAgB,EAALD,IAC/ElO,MAAe,OAAQmO,EAAIuP,MAA3B1d,CAAkC,kBAAmBmO,EAAIkuH,eAAzDr8H,CAAyE,kBAAmB,OAA5FA,CAAoG,eAAgB,gBACpHA,MAAcmO,EAAIi4B,OAClBpmC,MAAe,kBAAkB,EAAjCA,CAAuC,eAAe,GACxD,EAAG4N,OAAQ,CAAE7I,QAAS,UAAWi5J,YAAa,cAAe8I,YAAa,cAAeC,eAAgB,iBAAkB6R,aAAc,CAAC,EAAG,eAAgB,eAAgBhwD,OAAmByH,SAAU,CAAC,EAAG,WAAY,WAAYa,OAAkB2nD,SAAU,CAAC,EAAG,WAAY,WAAYjwD,OAAmBi0B,WAAY,CAAC,EAAG,aAAc,aAAcj0B,OAAmBxiF,MAAO,QAAS6oC,WAAY,aAAcotD,eAAgB,iBAAkB1gH,KAAM,OAAQvM,SAAU,CAAC,EAAG,WAAY,WAAYw5G,OAAmB89C,QAAS,UAAWr+C,UAAW,CAAC,EAAG,YAAa,YAAaO,QAAqB/6G,QAAS,CAAEu4J,cAAe,gBAAiB1rB,SAAU,YAAc/9B,YAAY,EAAMtzB,SAAU,CAACrpF,MAAsB,CAAC04K,GAA6BX,KAAqB/3K,MAA6BA,MAA+BA,OAAyB8N,MAAO,EAAGC,KAAM,EAAGC,OAAQ,CAAC,CAAC,UAAW,IAAK,CAAC,EAAG,YAAa,aAAc,UAAW,UAAW,WAAY,WAAY,aAAc,QAAS,CAAC,EAAG,WAAY,YAAa,aAAc,UAAW,UAAW,WAAY,WAAY,aAAc,QAAS,CAAC,EAAG,mBAAoB,4BAA6BC,SAAU,SAA+BC,EAAIC,GAAgB,EAALD,GAC/rClO,MAAoB,EAAGy4K,GAA6B,EAAG,EAAG,iBAAkB,EAAGz4K,OACxE,EAALkO,GACFlO,MAAcmO,EAAIpJ,QACpB,EAAG4kH,aAAc,CAACkuD,GAAchC,MAAa51K,MAAoBA,MAAYk4B,MAAcj4B,MAAqBi6B,OAAeyvF,cAAe,EAAGC,gBAAiB,IAC3K,OA3OK8uD,CAAY,KAoUZO,GAAkB,MAAxB,MAAMA,EACFlgE,iBAAc,SAAoCvhF,GAAqB,OAAO,IAAKA,GAAqByhJ,EAAuB,EAC/HlgE,iBAA4Bh5G,KAAoB,CAAE3D,KAAM68K,IACxDlgE,iBAA4Bh5G,MAAoB,CAAE43B,QAAS,CAAC+gJ,GAAcx+I,MAAcA,SAC3F,OAJK++I,CAAkB,KChZxB,MAAMpwD,GAAQA,EAAG9O,QAAS,6vBAoCRA,EAAG,wWASHA,EAAG,0RAKHA,EAAG,6oCA2CRA,EAAG,gPAWLA,EAAG,4HAKHA,EAAG,8FAKDA,EAAG,wHAIEA,EAAG,2gBA0BVA,EAAG,+NAUIA,EAAG,8DACRA,EAAG,oEACQA,EAAG,wEACNA,EAAG,sEACNA,EAAG,yNASNA,EAAG,0DACPA,EAAG,iGAICA,EAAG,uDACLA,EAAG,6DACKA,EAAG,mGAEKA,EAAG,2CAA2CA,EAAG,kDAAkDA,EAAG,yDAC9GA,EAAG,sGAINA,EAAG,mEACRA,EAAG,8KAIEA,EAAG,gEACRA,EAAG,2IAKEA,EAAG,gEACRA,EAAG,oJAKEA,EAAG,yEACRA,EAAG,oIAIYA,EAAG,sNASbA,EAAG,+DACRA,EAAG,qEACQA,EAAG,yEACNA,EAAG,uEACNA,EAAG,sFAENA,EAAG,2GAGPA,EAAG,iRAWHA,EAAG,2GAIiBA,EAAG,4sBAmCdA,EAAG,yFAEHA,EAAG,qGAIHA,EAAG,4FAEHA,EAAG,4FAILA,EAAG,+CACRA,EAAG,iDACIA,EAAG,kFAEHA,EAAG,mDACRA,EAAG,6EAIAA,EAAG,+CACRA,EAAG,iDACIA,EAAG,kFAEHA,EAAG,mDACRA,EAAG,mFAIHA,EAAG,sDACAA,EAAG,2DACDA,EAAG,8GAGVA,EAAG,qDACGA,EAAG,8FAEOA,EAAG,2CAA2CA,EAAG,kDAAkDA,EAAG,gEACvGA,EAAG,gDAAgDA,EAAG,yNAW/DA,EAAG,gIAMJA,EAAG,4CACRA,EAAG,uDACaA,EAAG,2CAA2CA,EAAG,kDAAkDA,EAAG,gEACvGA,EAAG,gDAAgDA,EAAG,qHAK9DA,EAAG,8GAGRA,EAAG,gJAIAA,EAAG,kDACRA,EAAG,2GAIEA,EAAG,qDACRA,EAAG,oIAIWA,EAAG,yIAIHA,EAAG,+KAKZA,EAAG,qDACNA,EAAG,qCAAqCA,EAAG,qCAAqCA,EAAG,2DAC5EA,EAAG,kHAKVA,EAAG,wDACEA,EAAG,8GAGVA,EAAG,oDACEA,EAAG,6FAIFA,EAAG,+TAgBTA,EAAG,wDACQA,EAAG,iIAITA,EAAG,0DACRA,EAAG,uJAIHA,EAAG,uHAIEA,EAAG,6DACRA,EAAG,8IAIHA,EAAG,gHAIEA,EAAG,6DACNA,EAAG,6CAA6CA,EAAG,6CAA6CA,EAAG,mEAC5FA,EAAG,gOAQSA,EAAG,sIAIFA,EAAG,oFAIrBA,EAAG,+CACPA,EAAG,gDACFA,EAAG,ypEA4ECA,EAAG,kKAIHA,EAAG,qDACRA,EAAG,wnCAiDHA,EAAG,qDACFA,EAAG,oDACJA,EAAG,sIAIKA,EAAG,6EACKA,EAAG,2CAA2CA,EAAG,kDAAkDA,EAAG,gEACvGA,EAAG,gDAAgDA,EAAG,+JAMrEA,EAAG,gEACEA,EAAG,mKAIHA,EAAG,kEACfA,EAAG,8HAISA,EAAG,mEACNA,EAAG,mDAAmDA,EAAG,mDAAmDA,EAAG,yEACxGA,EAAG,yDAGnBtrG,GAAU,CACZi6C,KAAMA,EAAG8xD,eAAS,CACd,2BAA2B,EAC3B,wBAAyBA,EAAS0+D,UAAY1+D,EAAS2tB,cACvD,wBAAyB3tB,EAAS2+D,iBAClC,4BAA6B3+D,EAAS2+D,kBAAkD,QAA9B3+D,EAAS4+D,iBACnE,yBAA0B5+D,EAAS6+D,WACnC,8BAA+B7+D,EAAS6+D,YAAwC,SAA1B7+D,EAAS+2C,aAC/D,sBAAuB/2C,EAAS8+D,YAChC,wBAAyB9+D,EAAS++D,cAClC,iBAAoC,UAAlB/+D,EAAS9+F,KAC3B,iBAAoC,UAAlB8+F,EAAS9+F,OAE/Bw/C,KAAM,kCACNwI,YAAa,2BACb7I,OAAQ,qBACR2+G,YAAaA,EAAGh/D,cAAe,yBAA2BA,EAASi/D,kBACnEC,eAAgB,8BAChBC,MAAOA,EAAGn/D,eAAS,CACf,qBAAqB,EACrB,+BAAgCA,EAAS6+D,WACzC,8BAA+B7+D,EAAS2+D,iBACxC,kCAAmC3+D,EAAS2+D,kBAAkD,QAA9B3+D,EAAS4+D,mBAE7EQ,MAAO,oBACPC,cAAe,6BACfC,oBAAqB,oCACrB72G,YAAa,2BACbI,aAAc,4BACdI,SAAU,wBACVs2G,YAAa,yBACb1yK,OAAQA,EAAGmzG,eAAS,CAChB,sBAAsB,EACtB,4BAAkD,QAArBA,EAASltD,QACtC,6BAAmD,SAArBktD,EAASltD,UAE3C0sH,uBAAwB,uCACxBC,qBAAsB,mCACtBC,0BAA2B,yCAC3BC,cAAeA,EAAG3/D,eAAS,CACvB,0CAA0C,EAC1C,qCAA2D,SAArBA,EAASltD,UAEnD8sH,qBAAsB,qCACtBC,iBAAkB,gCAClBC,0BAA2B,0CAC3BC,eAAgB,8BAChBC,yBAA0B,uCAC1BC,eAAgB,+BAChBC,WAAY,0BACZC,2BAA4B,yCAC5BC,yBAA0B,wCAC1BC,sBAAuB,qCACvBC,gBAAiB,+BACjBC,oBAAqB,kCACrBC,oBAAqB,kCACrBC,MAAOA,EAAGzgE,eAAS,CACf,qBAAqB,EACrB,2BAA4BA,EAAS0gE,aAAe1gE,EAAS2gE,mBAC7D,4BAA6B3gE,EAASsrD,gBAE1CsV,eAAgB,+BAChBz3G,gBAAiB,gCACjB03G,cAAe,8BACfC,aAAc,4BACdC,eAAgB,+BAChB18G,aAAc,4BACdsE,SAAUA,EAAGq3C,eAAS,CAClB,4BAA6BA,EAASghE,WAAW,YAErDC,qBAAsB,qCACtBC,gBAAiB,8BACjBC,gBAAiB,8BACjBC,kBAAmB,gCACnBC,MAAO,oBACPz4G,WAAYA,EAAGo3C,eAAS,CACpB,4BAA6BA,EAASghE,WAAW,YAErDM,sBAAuB,qCACvBr5G,OAAQ,oBACRs5G,sBAAuB,sCACvBC,sBAAuB,uCACvBC,wBAAyB,0CAEvBx/D,GAAe,CACjBi9D,eAAgBA,EAAGl/D,eAAS,CACxB,aAAcA,EAASsrD,cAAgB,GAAKtrD,EAAS+2C,aACrD2qB,SAAU,SAEdtC,MAAO,CAAE5yG,SAAU,UACnB60G,MAAO,CAAE70G,SAAU,WACrB,IACIm1G,GAAU,MAAhB,MAAMA,UAAmBrjE,KACrBp9G,KAAO,YACPmtH,MAAQA,GACRp6G,QAAUA,GACVguG,aAAeA,GACf1D,iBAA6B,MAAQ,IAAIqjE,EAAyB,OAAO,SAA4B5kJ,GAAqB,OAAQ4kJ,IAA4BA,EAA0Br8K,MAAyBo8K,KAAc3kJ,GAAqB2kJ,EAAa,CAAG,EAAvO,GAC7BpjE,kBAA6Bh5G,MAAsB,CAAE0e,MAAO09J,EAAY57K,QAAS47K,EAAW37K,YAC/F,OAPK27K,CAAU,KAwNhB,MAAM9tK,GAAM,CAAC,UACPgC,GAAM,CAAC,iBACP67G,GAAM,CAAC,QACPC,GAAM,CAAC,eACPC,GAAM,CAAC,WACP+L,GAAM,CAAC,UACPC,GAAM,CAAC,iBACPC,GAAM,CAAC,WACPC,GAAM,CAAC,YACPC,GAAM,CAAC,eACPC,GAAO,CAAC,eACRC,GAAO,CAAC,eACRC,GAAO,CAAC,qBACRC,GAAO,CAAC,gBACRC,GAAO,CAAC,cACRC,GAAO,CAAC,gBACRC,GAAO,CAAC,kBACRC,GAAO,CAAC,gBACRE,GAAO,CAAC,iBACRC,GAAO,CAAC,kBACRI,GAAO,CAAC,yBACRC,GAAO,CAAC,eACRC,GAAO,CAAC,0BACRC,GAAO,CAAC,4BACRC,GAAO,CAAC,YACRC,GAAO,CAAC,gBACR+kC,GAAO,CAAC,sBACRC,GAAO,CAAC,yBACRC,GAAO,CAAC,8BACRC,GAAO,CAAC,6BACRC,GAAO,CAAC,iCACRud,GAAO,CAAC,6BACRC,GAAO,CAAC,aACRC,GAAO,CAAC,gBACRC,GAAO,CAAC,sBACRC,GAAO,CAAC,wBACRC,GAAO,CAAC,WACRC,GAAO,CAAC,SACRC,GAAO,CAAC,SACRC,GAAO,CAAC,SACRC,GAAO,CAAC,YACRC,GAAO1wD,KAAS3kG,OAAQ2kG,IACxB2wD,GAAOA,CAAC3wD,EAAI8M,MAAUzpH,UAAW28G,EAAIvnH,QAASq0H,IAC9C8jD,GAAO5wD,KAAS8hC,QAAS9hC,IACzB6wD,GAAO7wD,KAAS38G,UAAW28G,IACjC,SAAS8wD,GAAyBlvK,EAAIC,GAEpC,GAFoD,EAALD,GAC7ClO,MAAa,EAAG,KACT,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,4BAA8B8M,EAAO62D,YACvD,CAAE,CACF,SAAS05G,GAAkDnvK,EAAIC,GAE7D,GAF6E,EAALD,GACtElO,MAAa,EAAG,cAAe,IACxB,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,QAAQ,EAAtBA,CAA4B,aAAc8M,EAAOyvG,GAAG,eACxD,CAAE,CACF,SAAS+gE,GAA2DpvK,EAAIC,GAAO,CAC/E,SAASovK,GAA6CrvK,EAAIC,GAAgB,EAALD,GACjElO,MAAc,EAAGs9K,GAA4D,EAAG,EAAG,cACrF,CACF,SAASE,GAA2CtvK,EAAIC,GAItD,GAJsE,EAALD,IAC/DlO,MAAkB,EAAG,OAAQ,IAC7BA,MAAc,EAAGu9K,GAA8C,EAAG,EAAG,KAAM,IAC3Ev9K,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,UAAW8M,EAAOyvG,GAAG,gBACnCv8G,QACAA,MAAc,mBAAoB8M,EAAOkgH,qBAAuBlgH,EAAOmgH,qBAC3E,CAAE,CACF,SAASwwD,GAAoCvvK,EAAIC,GAI/C,GAJ+D,EAALD,IACxDlO,MAA2B,GAC3BA,MAAc,EAAGq9K,GAAmD,EAAG,EAAG,cAAe,GAAzFr9K,CAA6F,EAAGw9K,GAA4C,EAAG,EAAG,OAAQ,IAC1Jx9K,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,QACAA,MAAc,QAAS8M,EAAOkgH,sBAAwBlgH,EAAOmgH,sBAC7DjtH,QACAA,MAAc,OAAQ8M,EAAOkgH,qBAAuBlgH,EAAOmgH,qBAC/D,CAAE,CACF,SAASywD,GAAqBxvK,EAAIC,GAIhC,GAJgD,EAALD,IACzClO,MAAkB,EAAG,MAAO,IAC5BA,MAAc,EAAGo9K,GAA0B,EAAG,EAAG,IAAK,GAAtDp9K,CAA0D,EAAGy9K,GAAqC,EAAG,EAAG,eAAgB,IACxHz9K,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,MAAc,UAAW8M,EAAOyvG,GAAG,SACnCv8G,QACAA,MAAc,OAAQ8M,EAAO62D,aAC7B3jE,QACAA,MAAc,QAAS8M,EAAO62D,YAClC,CAAE,CACF,SAASg6G,GAAoCzvK,EAAIC,GAAgB,EAALD,GACxDlO,MAAsB,EACxB,CACF,SAAS49K,GAAqB1vK,EAAIC,GAIhC,GAJgD,EAALD,IACzClO,MAAkB,EAAG,MAAO,IAC5BA,MAAc,EAAG29K,GAAqC,EAAG,EAAG,eAAgB,IAC5E39K,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,MAAc,UAAW8M,EAAOyvG,GAAG,WACnCv8G,QACAA,MAAc,mBAAoB8M,EAAO+wK,iBAAmB/wK,EAAOgxK,iBACvE,CAAE,CACF,SAASC,GAA4D7vK,EAAIC,GAAgB,EAALD,GAChFlO,MAAsB,EACxB,CACF,SAASg+K,GAA6C9vK,EAAIC,GAExD,GAFwE,EAALD,GACjElO,MAAc,EAAG+9K,GAA6D,EAAG,EAAG,eAAgB,IAC7F,EAAL7vK,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,mBAAoB8M,EAAOmxK,+BAAiCnxK,EAAOoxK,+BACrF,CAAE,CACF,SAASC,GAA+BjwK,EAAIC,GAAgB,EAALD,GACnDlO,MAAc,EAAGg+K,GAA8C,EAAG,EAAG,cAAe,GACtF,CACF,SAASI,GAA4DlwK,EAAIC,GAAgB,EAALD,GAChFlO,MAAsB,EACxB,CACF,SAASq+K,GAA6CnwK,EAAIC,GAExD,GAFwE,EAALD,GACjElO,MAAc,EAAGo+K,GAA6D,EAAG,EAAG,eAAgB,IAC7F,EAALlwK,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,mBAAoB8M,EAAOwxK,oCAAsCxxK,EAAOyxK,oCAC1F,CAAE,CACF,SAASC,GAA+BtwK,EAAIC,GAAgB,EAALD,GACnDlO,MAAc,EAAGq+K,GAA8C,EAAG,EAAG,cAAe,GACtF,CACF,SAASI,GAA4DvwK,EAAIC,GAAgB,EAALD,GAChFlO,MAAsB,EACxB,CACF,SAAS0+K,GAA6CxwK,EAAIC,GAExD,GAFwE,EAALD,GACjElO,MAAc,EAAGy+K,GAA6D,EAAG,EAAG,eAAgB,IAC7F,EAALvwK,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,mBAAoB8M,EAAO6xK,uCAAyC7xK,EAAO8xK,uCAC7F,CAAE,CACF,SAASC,GAA+B3wK,EAAIC,GAAgB,EAALD,GACnDlO,MAAc,EAAG0+K,GAA8C,EAAG,EAAG,cAAe,GACtF,CACF,SAASI,GAA4D5wK,EAAIC,GAAgB,EAALD,GAChFlO,MAAsB,EACxB,CACF,SAAS++K,GAA6C7wK,EAAIC,GAExD,GAFwE,EAALD,GACjElO,MAAc,EAAG8+K,GAA6D,EAAG,EAAG,eAAgB,IAC7F,EAAL5wK,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,mBAAoB8M,EAAOkyK,mCAAqClyK,EAAOmyK,mCACzF,CAAE,CACF,SAASC,GAA+BhxK,EAAIC,GAAgB,EAALD,GACnDlO,MAAc,EAAG++K,GAA8C,EAAG,EAAG,cAAe,GACtF,CACF,SAASI,GAA4DjxK,EAAIC,GAAgB,EAALD,GAChFlO,MAAsB,EACxB,CACF,SAASo/K,GAA6ClxK,EAAIC,GAExD,GAFwE,EAALD,GACjElO,MAAc,EAAGm/K,GAA6D,EAAG,EAAG,eAAgB,IAC7F,EAALjxK,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,mBAAoB8M,EAAOuyK,mCAAqCvyK,EAAOwyK,mCACzF,CAAE,CACF,SAASC,GAA+BrxK,EAAIC,GAAgB,EAALD,GACnDlO,MAAc,EAAGo/K,GAA8C,EAAG,EAAG,cAAe,GACtF,CACF,SAASI,GAA6BtxK,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACzD,MAAMipG,EAAMn3G,QACZA,MAAkB,EAAG,cAAe,IACpCA,MAAc,eAAgB,SAA0EkU,GAAUlU,MAAiBm3G,GAAM,MAAMrqG,EAAS9M,QAAoB,OAAOA,MAAe8M,EAAO2nK,aAAavgK,GAAU,GAChOlU,MAAc,EAAGm+K,GAAgC,EAAG,EAAG,KAAM,GAA7Dn+K,CAAiE,EAAGw+K,GAAgC,EAAG,EAAG,KAAM,GAAhHx+K,CAAoH,EAAG6+K,GAAgC,EAAG,EAAG,KAAM,GAAnK7+K,CAAuK,EAAGk/K,GAAgC,EAAG,EAAG,KAAM,GAAtNl/K,CAA0N,EAAGu/K,GAAgC,EAAG,EAAG,KAAM,IACzQv/K,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,MAAc,OAAQ8M,EAAOqhJ,KAA7BnuJ,CAAmC,QAAS8M,EAAOuxD,MAAnDr+D,CAA0D,eAAgB8M,EAAO0nK,aAAjFx0K,CAA+F,eAAgB8M,EAAO8jK,UAAtH5wK,CAAiI,aAAc8M,EAAO2yK,oBAAtJz/K,CAA2K,qBAAsB8M,EAAOqnK,mBAAxMn0K,CAA4N,eAAgB8M,EAAO4yK,sBAAnP1/K,CAA0Q,gBAAiB8M,EAAO6yK,uBAAlS3/K,CAA0T,mBAAoB8M,EAAO8yK,0BAArV5/K,CAAgX,uBAAwB8M,EAAO+yK,8BAA/Y7/K,CAA8a,4BAA6B8M,EAAOynK,0BAAldv0K,CAA6e,oBAAqB8M,EAAOinK,kBAAzgB/zK,CAA4hB,uBAAwB8M,EAAOgzK,+BAAiChzK,EAAOizK,+BAAnmB//K,CAAmoB,wBAAyB8M,EAAOgnK,sBAAnqB9zK,CAA0rB,yBAA0B8M,EAAOmnK,uBAA3tBj0K,CAAmvB,sBAAuB8M,EAAOonK,oBAAjxBl0K,CAAsyB,gBAAiB8M,EAAOknK,cAA9zBh0K,CAA60B,aAAc8M,EAAOyvG,GAAG,eAAiB,IAAMzvG,EAAOkzK,qBAAuBlzK,EAAOkzK,oBAAj6BhgL,CAAs7B,SAAU8M,EAAOmzK,iBACv8BjgL,QACAA,MAAc,OAAQ8M,EAAOmxK,+BAAiCnxK,EAAOoxK,gCACrEl+K,QACAA,MAAc,OAAQ8M,EAAOwxK,oCAAsCxxK,EAAOyxK,qCAC1Ev+K,QACAA,MAAc,OAAQ8M,EAAO6xK,uCAAyC7xK,EAAO8xK,wCAC7E5+K,QACAA,MAAc,OAAQ8M,EAAOkyK,mCAAqClyK,EAAOmyK,oCACzEj/K,QACAA,MAAc,OAAQ8M,EAAOuyK,mCAAqCvyK,EAAOwyK,mCAC7E,CAAE,CACF,SAASY,GAAyDhyK,EAAIC,GAAgB,EAALD,GAC7ElO,MAAsB,EACxB,CACF,SAASmgL,GAA0CjyK,EAAIC,GAErD,GAFqE,EAALD,GAC9DlO,MAAc,EAAGkgL,GAA0D,EAAG,EAAG,eAAgB,IAC1F,EAALhyK,EAAQ,CACV,MAAMkyK,EAAWjyK,EAAIwB,UACf0wK,EAAqBlyK,EAAIpJ,QAC/B/E,MAAiB,GACjB,MAAMsgL,EAAkBtgL,MAAe,IACvCA,MAAc,mBAAoBsgL,EAAlCtgL,CAAmD,0BAA2BA,MAAmB,EAAGi9K,GAAMmD,EAAUC,GACxH,CAAE,CACF,SAASE,GAA4BryK,EAAIC,GAAO,GAAS,EAALD,EAAQ,CACxD,MAAM6oE,EAAM/2E,QACZA,MAAkB,EAAG,aAAc,GAAI,GACvCA,MAAc,aAAc,SAAsEkU,GAAUlU,MAAiB+2E,GAAM,MAAMjqE,EAAS9M,QAAoB,OAAOA,MAAe8M,EAAO0zK,eAAetsK,GAAU,GAC5NlU,MAAc,EAAGmgL,GAA2C,EAAG,EAAG,cAAe,KAAM,EAAGngL,OAC1FA,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,MAAcA,MAAmB,GAAIg9K,GAA8B,SAAxBlwK,EAAO0kJ,aAA0B1kJ,EAAO0kJ,kBAAe72J,IAClGqF,MAAc,QAAS8M,EAAO2zK,cAA9BzgL,CAA6C,UAAW8M,EAAOshJ,QAA/DpuJ,CAAwE,eAAwC,SAAxB8M,EAAO0kJ,kBAA0B72J,EAAY,OAArIqF,CAA6I,WAAY8M,EAAOm2J,uBAAyBn2J,EAAO4zK,kBAAhM1gL,CAAmN,OAAQ8M,EAAOqhJ,KAAlOnuJ,CAAwO,QAAS8M,EAAOslJ,KAAOtlJ,EAAO6zK,mBAAqB,EAA3R3gL,CAA8R,UAAU,EAAxSA,CAA8S,OAAQ8M,EAAOslJ,KAA7TpyJ,CAAmU,kBAAkB,EAArVA,CAA2V,cAAc,EAAzWA,CAAgX,aAAc8M,EAAO8zK,qBAAuB9zK,EAAO+zK,qBAAna7gL,CAAyb,UAAW8M,EAAOo2J,qBAA3cljK,CAAie,YAAY,EACjf,CAAE,CACF,SAAS8gL,GAA6C5yK,EAAIC,GAAgB,EAALD,GACjElO,MAAsB,EACxB,CACF,SAAS+gL,GAA8B7yK,EAAIC,GAIzC,GAJyD,EAALD,IAClDlO,MAA2B,GAC3BA,MAAc,EAAG8gL,GAA8C,EAAG,EAAG,eAAgB,IACrF9gL,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACTsgL,EAAkBtgL,MAAe,IACvCA,QACAA,MAAc,mBAAoBsgL,EAAlCtgL,CAAmD,0BAA2BA,MAAmB,EAAGi9K,GAAMnwK,EAAO2zK,cAAezgL,MAAmB,EAAGk9K,GAAMpwK,EAAOshJ,UACvK,CAAE,CACF,SAAS4yB,GAA4C9yK,EAAIC,GAAgB,EAALD,GAChElO,MAAsB,EACxB,CACF,SAASihL,GAA4C/yK,EAAIC,GAAgB,EAALD,GAChElO,MAAsB,EACxB,CACF,SAASkhL,GAAqChzK,EAAIC,GAEhD,GAFgE,EAALD,GACzDlO,MAAa,EAAG,QAAS,IAClB,EAALkO,EAAQ,CACV,MAAMizK,EAAqBnhL,QAAmB+E,QACxC+H,EAAS9M,QACfA,MAAc,UAAW8M,EAAOyvG,GAAG,SAAnCv8G,CAA6C,QAAS8M,EAAOquK,YAA7Dn7K,CAA0E,cAAc,EAAxFA,CAA8F,aAAcmhL,EAAmB/yB,QAA/HpuJ,CAAwI,qBAAsB8M,EAAOsuK,oBAAsBtuK,EAAOs0K,oBAAlMphL,CAAuN,UAAU,EACrO,CAAE,CACF,SAASqhL,GAAqCnzK,EAAIC,GAEhD,GAFgE,EAALD,GACzDlO,MAAa,EAAG,QAAS,IAClB,EAALkO,EAAQ,CACV,MAAMizK,EAAqBnhL,QAAmB+E,QACxC+H,EAAS9M,QACfA,MAAc,gBAAkBmhL,EAAmBhyB,YAAYxnI,OAAS,MAAQw5J,EAAmBhzB,KAAKzpJ,OAASy8K,EAAmB7vB,SAAW,QAC/ItxJ,MAAc,UAAW8M,EAAOyvG,GAAG,yBACvC,CAAE,CACF,SAAS+kE,GAAoDpzK,EAAIC,GAAgB,EAALD,GACxElO,MAAsB,EACxB,CACF,SAASuhL,GAAqCrzK,EAAIC,GAIhD,GAJgE,EAALD,IACzDlO,MAAkB,EAAG,QAAS,GAAI,GAClCA,MAAc,EAAGshL,GAAqD,EAAG,EAAG,eAAgB,IAC5FthL,SACO,EAALkO,EAAQ,CACV,MAAMizK,EAAqBnhL,QAAmB+E,QACxC+H,EAAS9M,QACfA,MAAc,UAAW8M,EAAOyvG,GAAG,WACnCv8G,MAAa,GACbA,MAAc,mBAAoB8M,EAAO00K,uBAAyB10K,EAAOi6H,gBAAkBj6H,EAAOk6H,iBAAmBl6H,EAAO20K,uBAA5HzhL,CAAoJ,0BAA2BA,MAAmB,EAAGm9K,GAAMgE,EAAmB/yB,SAClO,CAAE,CACF,SAASszB,GAA6BxzK,EAAIC,GAUxC,GAVwD,EAALD,IACjDlO,MAAkB,EAAG,QAAS,GAAI,GAClCA,MAAc,EAAGghL,GAA6C,EAAG,EAAG,eAAgB,IACpFhhL,MAAkB,EAAG,QAAS,GAAI,GAClCA,MAAc,EAAGihL,GAA6C,EAAG,EAAG,eAAgB,IACpFjhL,QACAA,MAAc,EAAGkhL,GAAsC,EAAG,EAAG,QAAS,IACtElhL,MAAa,EAAG,QAAS,IACzBA,MAAc,EAAGqhL,GAAsC,EAAG,EAAG,QAAS,GAAtErhL,CAA0E,EAAGuhL,GAAsC,EAAG,EAAG,QAAS,IAClIvhL,SACO,EAALkO,EAAQ,CACV,MAAMizK,EAAqBhzK,EAAIpJ,QACzB+H,EAAS9M,QACfA,MAAc8M,EAAO60K,YACrB3hL,MAAc8M,EAAO80K,iBACrB5hL,MAAc,UAAW8M,EAAOyvG,GAAG,UACnCv8G,MAAe,KAAM8M,EAAOklB,GAAK,UACjChyB,MAAa,GACbA,MAAc,mBAAoB8M,EAAO+0K,kBAAoB/0K,EAAOg1K,kBAApE9hL,CAAuF,0BAA2BA,MAAmB,GAAIm9K,GAAMgE,EAAmB/yB,UAClKpuJ,QACAA,MAAc,UAAW8M,EAAOyvG,GAAG,SAAnCv8G,CAA6C,UAAW8M,EAAO2vG,GAAG,UAClEz8G,MAAa,GACbA,MAAc,mBAAoB8M,EAAOi1K,uBAAyBj1K,EAAO65H,gBAAkB75H,EAAO85H,gBAAlG5mI,CAAmH,0BAA2BA,MAAmB,GAAIm9K,GAAMgE,EAAmB/yB,UAC9LpuJ,QACAA,MAAc,OAAQ8M,EAAOquK,aAAeruK,EAAOsuK,oBAAsBtuK,EAAOs0K,qBAChFphL,QACAA,MAAcmhL,EAAmBp2B,cACjC/qJ,MAAc,UAAW8M,EAAOyvG,GAAG,QAAS4kE,EAAmBr2B,mBAA/D9qJ,CAAmF,QAAS8M,EAAOk1K,aAAab,EAAmBhzB,MAAnInuJ,CAA0I,aAAcmhL,EAAmB/yB,QAA3KpuJ,CAAoL,qBAAsB8M,EAAOm1K,cAAgBn1K,EAAOo1K,cAAxOliL,CAAuP,kBAAmBmhL,GAC1QnhL,QACAA,MAAc,OAAQmhL,EAAmBhyB,aACzCnvJ,QACAA,MAAc,OAAQ8M,EAAO00K,uBAAyB10K,EAAOi6H,gBAAkBj6H,EAAOk6H,iBAAmBl6H,EAAO20K,uBACpH,CAAE,CACF,SAASU,GAA6Dj0K,EAAIC,GAAgB,EAALD,GACjFlO,MAAsB,EACxB,CACF,SAASoiL,GAA8Cl0K,EAAIC,GAEzD,GAFyE,EAALD,GAClElO,MAAc,EAAGmiL,GAA8D,EAAG,EAAG,eAAgB,IAC9F,EAALj0K,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,mBAAoB8M,EAAOmxK,+BAAiCnxK,EAAOoxK,+BACrF,CAAE,CACF,SAASmE,GAAgCn0K,EAAIC,GAAgB,EAALD,GACpDlO,MAAc,EAAGoiL,GAA+C,EAAG,EAAG,cAAe,GACvF,CACF,SAASE,GAA6Dp0K,EAAIC,GAAgB,EAALD,GACjFlO,MAAsB,EACxB,CACF,SAASuiL,GAA8Cr0K,EAAIC,GAEzD,GAFyE,EAALD,GAClElO,MAAc,EAAGsiL,GAA8D,EAAG,EAAG,eAAgB,IAC9F,EAALp0K,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,mBAAoB8M,EAAOwxK,oCAAsCxxK,EAAOyxK,oCAC1F,CAAE,CACF,SAASiE,GAAgCt0K,EAAIC,GAAgB,EAALD,GACpDlO,MAAc,EAAGuiL,GAA+C,EAAG,EAAG,cAAe,GACvF,CACF,SAASE,GAA6Dv0K,EAAIC,GAAgB,EAALD,GACjFlO,MAAsB,EACxB,CACF,SAAS0iL,GAA8Cx0K,EAAIC,GAEzD,GAFyE,EAALD,GAClElO,MAAc,EAAGyiL,GAA8D,EAAG,EAAG,eAAgB,IAC9F,EAALv0K,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,mBAAoB8M,EAAO6xK,uCAAyC7xK,EAAO8xK,uCAC7F,CAAE,CACF,SAAS+D,GAAgCz0K,EAAIC,GAAgB,EAALD,GACpDlO,MAAc,EAAG0iL,GAA+C,EAAG,EAAG,cAAe,GACvF,CACF,SAASE,GAA6D10K,EAAIC,GAAgB,EAALD,GACjFlO,MAAsB,EACxB,CACF,SAAS6iL,GAA8C30K,EAAIC,GAEzD,GAFyE,EAALD,GAClElO,MAAc,EAAG4iL,GAA8D,EAAG,EAAG,eAAgB,IAC9F,EAAL10K,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,mBAAoB8M,EAAOkyK,mCAAqClyK,EAAOmyK,mCACzF,CAAE,CACF,SAAS6D,GAAgC50K,EAAIC,GAAgB,EAALD,GACpDlO,MAAc,EAAG6iL,GAA+C,EAAG,EAAG,cAAe,GACvF,CACF,SAASE,GAA6D70K,EAAIC,GAAgB,EAALD,GACjFlO,MAAsB,EACxB,CACF,SAASgjL,GAA8C90K,EAAIC,GAEzD,GAFyE,EAALD,GAClElO,MAAc,EAAG+iL,GAA8D,EAAG,EAAG,eAAgB,IAC9F,EAAL70K,EAAQ,CACV,MAAMpB,EAAS9M,MAAiB,GAChCA,MAAc,mBAAoB8M,EAAOuyK,mCAAqCvyK,EAAOwyK,mCACzF,CAAE,CACF,SAAS2D,GAAgC/0K,EAAIC,GAAgB,EAALD,GACpDlO,MAAc,EAAGgjL,GAA+C,EAAG,EAAG,cAAe,GACvF,CACF,SAASE,GAA8Bh1K,EAAIC,GAAO,GAAS,EAALD,EAAQ,CAC1D,MAAMi4H,EAAMnmI,QACZA,MAAkB,EAAG,cAAe,IACpCA,MAAc,eAAgB,SAA2EkU,GAAUlU,MAAiBmmI,GAAM,MAAMr5H,EAAS9M,QAAoB,OAAOA,MAAe8M,EAAO2nK,aAAavgK,GAAU,GACjOlU,MAAc,EAAGqiL,GAAiC,EAAG,EAAG,KAAM,GAA9DriL,CAAkE,EAAGwiL,GAAiC,EAAG,EAAG,KAAM,GAAlHxiL,CAAsH,EAAG2iL,GAAiC,EAAG,EAAG,KAAM,GAAtK3iL,CAA0K,EAAG8iL,GAAiC,EAAG,EAAG,KAAM,GAA1N9iL,CAA8N,EAAGijL,GAAiC,EAAG,EAAG,KAAM,IAC9QjjL,OACJ,CAAE,GAAS,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,MAAc,OAAQ8M,EAAOqhJ,KAA7BnuJ,CAAmC,QAAS8M,EAAOuxD,MAAnDr+D,CAA0D,eAAgB8M,EAAO0nK,aAAjFx0K,CAA+F,eAAgB8M,EAAO8jK,UAAtH5wK,CAAiI,aAAc8M,EAAO2yK,oBAAtJz/K,CAA2K,qBAAsB8M,EAAOqnK,mBAAxMn0K,CAA4N,eAAgB8M,EAAO4yK,uBAAyB5yK,EAAOq2K,uBAAnRnjL,CAA2S,gBAAiB8M,EAAO6yK,wBAA0B7yK,EAAOs2K,wBAApWpjL,CAA6X,mBAAoB8M,EAAO8yK,0BAAxZ5/K,CAAmb,uBAAwB8M,EAAO+yK,8BAAld7/K,CAAif,4BAA6B8M,EAAOynK,0BAArhBv0K,CAAgjB,oBAAqB8M,EAAOinK,kBAA5kB/zK,CAA+lB,uBAAwB8M,EAAOgzK,+BAAiChzK,EAAOizK,+BAAtqB//K,CAAssB,wBAAyB8M,EAAOgnK,sBAAtuB9zK,CAA6vB,yBAA0B8M,EAAOmnK,uBAA9xBj0K,CAAszB,sBAAuB8M,EAAOonK,oBAAp1Bl0K,CAAy2B,gBAAiB8M,EAAOknK,cAAj4Bh0K,CAAg5B,aAAc8M,EAAOyvG,GAAG,eAAiB,IAAMzvG,EAAOkzK,qBAAuBlzK,EAAOkzK,oBAAp+BhgL,CAAy/B,SAAU8M,EAAOmzK,iBAC1gCjgL,QACAA,MAAc,OAAQ8M,EAAOmxK,+BAAiCnxK,EAAOoxK,gCACrEl+K,QACAA,MAAc,OAAQ8M,EAAOwxK,oCAAsCxxK,EAAOyxK,qCAC1Ev+K,QACAA,MAAc,OAAQ8M,EAAO6xK,uCAAyC7xK,EAAO8xK,wCAC7E5+K,QACAA,MAAc,OAAQ8M,EAAOkyK,mCAAqClyK,EAAOmyK,oCACzEj/K,QACAA,MAAc,OAAQ8M,EAAOuyK,mCAAqCvyK,EAAOwyK,mCAC7E,CAAE,CACF,SAAS+D,GAAqCn1K,EAAIC,GAAgB,EAALD,GACzDlO,MAAsB,EACxB,CACF,SAASsjL,GAAsBp1K,EAAIC,GAIjC,GAJiD,EAALD,IAC1ClO,MAAkB,EAAG,MAAO,IAC5BA,MAAc,EAAGqjL,GAAsC,EAAG,EAAG,eAAgB,IAC7ErjL,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,MAAc,UAAW8M,EAAOyvG,GAAG,WACnCv8G,QACAA,MAAc,mBAAoB8M,EAAOy2K,iBAAmBz2K,EAAO02K,iBACvE,CAAE,CACF,SAASC,GAAsBv1K,EAAIC,GAEjC,GAFiD,EAALD,GAC1ClO,MAAa,EAAG,MAAO,GAAI,GACpB,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,MAAc,UAAW8M,EAAOyvG,GAAG,yBACvC,CAAE,CACF,SAASmnE,GAAuCx1K,EAAIC,GAAgB,EAALD,GAC3DlO,MAAa,EAAG,gBAClB,CACF,SAAS2jL,GAAuCz1K,EAAIC,GAAO,CAC3D,SAASy1K,GAAyB11K,EAAIC,GAAgB,EAALD,GAC7ClO,MAAc,EAAG2jL,GAAwC,EAAG,EAAG,cACjE,CACF,SAASE,GAAuB31K,EAAIC,GAIlC,GAJkD,EAALD,IAC3ClO,MAAkB,EAAG,OAAQ,GAAI,GACjCA,MAAc,EAAG0jL,GAAwC,EAAG,EAAG,gBAAiB,GAAhF1jL,CAAoF,EAAG4jL,GAA0B,EAAG,EAAG,KAAM,IAC7H5jL,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,MAAc,UAAW8M,EAAOyvG,GAAG,0BACnCv8G,MAAa,GACbA,MAAc,QAAS8M,EAAOg3K,iCAAmCh3K,EAAOi3K,iCACxE/jL,QACAA,MAAc,mBAAoB8M,EAAOg3K,gCAAkCh3K,EAAOi3K,gCACtF,CAAE,CACF,SAASC,GAAqC91K,EAAIC,GAAgB,EAALD,GACzDlO,MAAa,EAAG,cAClB,CACF,SAASikL,GAAuC/1K,EAAIC,GAAO,CAC3D,SAAS+1K,GAAyBh2K,EAAIC,GAAgB,EAALD,GAC7ClO,MAAc,EAAGikL,GAAwC,EAAG,EAAG,cACjE,CACF,SAASE,GAAuBj2K,EAAIC,GAIlC,GAJkD,EAALD,IAC3ClO,MAAkB,EAAG,OAAQ,GAAI,IACjCA,MAAc,EAAGgkL,GAAsC,EAAG,EAAG,cAAe,GAA5EhkL,CAAgF,EAAGkkL,GAA0B,EAAG,EAAG,KAAM,IACzHlkL,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,MAAc,UAAW8M,EAAOyvG,GAAG,4BACnCv8G,MAAa,GACbA,MAAc,QAAS8M,EAAOs3K,mCAAqCt3K,EAAOu3K,mCAC1ErkL,QACAA,MAAc,mBAAoB8M,EAAOs3K,kCAAoCt3K,EAAOu3K,kCACxF,CAAE,CACF,MAAMC,GAAO,CAAC,aAAc,IACtBC,GAAOA,CAACj4D,EAAI8M,EAAIywB,EAAIC,EAAIC,MAAUp6I,UAAW28G,EAAIk4D,SAAUprD,EAAIg1B,QAASvE,EAAI46B,QAAS36B,EAAI46B,OAAQ36B,IACjG46B,GAAOA,CAACr4D,EAAI8M,EAAIywB,EAAIC,EAAIC,EAAIC,EAAIC,MAAUt6I,UAAW28G,EAAIk4D,SAAUprD,EAAIg1B,QAASvE,EAAI46B,QAAS36B,EAAI46B,OAAQ36B,EAAI66B,SAAU56B,EAAI66B,QAAS56B,IACpI66B,GAAOA,CAACx4D,EAAI8M,EAAIywB,EAAIC,EAAIC,EAAIC,MAAUr6I,UAAW28G,EAAIk4D,SAAUprD,EAAIg1B,QAASvE,EAAIk7B,SAAUj7B,EAAI26B,QAAS16B,EAAI26B,OAAQ16B,IACnHg7B,GAAOA,CAAC14D,EAAI8M,EAAIywB,EAAIC,MAAUn6I,UAAW28G,EAAIk4D,SAAUprD,EAAIg1B,QAASvE,EAAI66B,OAAQ56B,IAChFm7B,GAAOA,CAAC34D,EAAI8M,MAAUzpH,UAAW28G,EAAIo4D,OAAQtrD,IACnD,SAAS8rD,GAA8Eh3K,EAAIC,GAAgB,EAALD,GAClGlO,MAAsB,EACxB,CACF,SAASmlL,GAA+Dj3K,EAAIC,GAI1E,GAJ0F,EAALD,IACnFlO,MAA2B,EAAG,GAC9BA,MAAc,EAAGklL,GAA+E,EAAG,EAAG,eAAgB,GACtHllL,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACTolL,EAAat4K,EAAO6C,UACpB01K,EAAcv4K,EAAOkhB,MACrBs3J,EAAStlL,MAAiB,GAChCA,QACAA,MAAc,mBAAoBslL,EAAOtrE,GAAGurE,qBAAuBD,EAAOtrE,GAAGwrE,qBAA7ExlL,CAAmG,0BAA2BA,MAAmB,EAAGukL,GAAMa,EAAYE,EAAOG,YAAYJ,GAAcC,EAAOl3B,QAAgC,QAAvBk3B,EAAOtrE,GAAG0rE,UAAsBJ,EAAOtrE,GAAG2rE,aAAaP,GAAaE,EAAOZ,QACtS,CAAE,CACF,SAASkB,GAA8E13K,EAAIC,GAAgB,EAALD,GAClGlO,MAAsB,EACxB,CACF,SAAS6lL,GAA+D33K,EAAIC,GAI1E,GAJ0F,EAALD,IACnFlO,MAA2B,GAC3BA,MAAc,EAAG4lL,GAA+E,EAAG,EAAG,eAAgB,GACtH5lL,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACTolL,EAAat4K,EAAO6C,UACpB01K,EAAcv4K,EAAOkhB,MACrBs3J,EAAStlL,MAAiB,GAChCA,QACAA,MAAc,mBAAoBolL,EAAaE,EAAOr3K,SAAWq3K,EAAOtrE,GAAG4mE,qBAAuB0E,EAAOtrE,GAAG6mE,qBAA5G7gL,CAAkI,0BAA2BA,MAAmB,EAAGukL,GAAMa,EAAYE,EAAOG,YAAYJ,GAAcC,EAAOl3B,QAAgC,QAAvBk3B,EAAOtrE,GAAG0rE,UAAsBJ,EAAOtrE,GAAG2rE,aAAaP,GAAaE,EAAOZ,QACrU,CAAE,CACF,SAASoB,GAA8E53K,EAAIC,GAAgB,EAALD,GAClGlO,MAAsB,EACxB,CACF,SAAS+lL,GAA+D73K,EAAIC,GAI1E,GAJ0F,EAALD,IACnFlO,MAA2B,GAC3BA,MAAc,EAAG8lL,GAA+E,EAAG,EAAG,eAAgB,GACtH9lL,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACTolL,EAAat4K,EAAO6C,UACpB01K,EAAcv4K,EAAOkhB,MACrBs3J,EAAStlL,MAAiB,GAChCA,QACAA,MAAc,mBAAoBolL,EAAaE,EAAOr3K,SAAWq3K,EAAOtrE,GAAG4mE,qBAAuB0E,EAAOtrE,GAAG6mE,qBAA5G7gL,CAAkI,0BAA2BA,MAAmB,EAAG2kL,GAAMS,EAAYE,EAAOG,YAAYJ,GAAcC,EAAOl3B,QAAgC,QAAvBk3B,EAAOtrE,GAAG0rE,UAAsBJ,EAAOtrE,GAAG2rE,aAAaP,GAAaE,EAAOZ,OAAQY,EAAOU,oBAAoBV,EAAOv5K,MAAOq5K,EAAYC,GAAcC,EAAOW,sBAAsBX,EAAOv5K,MAAOq5K,EAAYC,IACvc,CAAE,CACF,SAASa,GAA8Eh4K,EAAIC,GAAgB,EAALD,GAClGlO,MAAsB,EACxB,CACF,SAASmmL,GAA+Dj4K,EAAIC,GAI1E,GAJ0F,EAALD,IACnFlO,MAA2B,EAAG,GAC9BA,MAAc,EAAGkmL,GAA+E,EAAG,EAAG,eAAgB,GACtHlmL,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACTolL,EAAat4K,EAAO6C,UACpB01K,EAAcv4K,EAAOkhB,MACrBs3J,EAAStlL,MAAiB,GAChCA,QACAA,MAAc,mBAAoBslL,EAAOtrE,GAAGosE,qBAAuBd,EAAOtrE,GAAGqsE,qBAA7ErmL,CAAmG,0BAA2BA,MAAmB,EAAGukL,GAAMa,EAAYE,EAAOG,YAAYJ,GAAcC,EAAOl3B,QAAgC,QAAvBk3B,EAAOtrE,GAAG0rE,UAAsBJ,EAAOtrE,GAAG2rE,aAAaP,GAAaE,EAAOZ,QACtS,CAAE,CACF,SAAS4B,GAAgDp4K,EAAIC,GAE3D,GAF2E,EAALD,GACpElO,MAAc,EAAGmlL,GAAgE,EAAG,EAAG,eAAgB,EAAvGnlL,CAA0G,EAAG6lL,GAAgE,EAAG,EAAG,eAAgB,EAAnM7lL,CAAsM,EAAG+lL,GAAgE,EAAG,GAAI,eAAgB,EAAhS/lL,CAAmS,EAAGmmL,GAAgE,EAAG,EAAG,eAAgB,GACrX,EAALj4K,EAAQ,CACV,MAAMk3K,EAAaj3K,EAAIwB,UACjB01K,EAAcl3K,EAAI6f,MAClBs3J,EAAStlL,MAAiB,GAChCA,MAAc,QAASslL,EAAOtrE,GAAGurE,qBAAuBD,EAAOtrE,GAAGwrE,wBAA0BF,EAAOtrE,GAAG+rD,eAA4C,cAA3Buf,EAAOtrE,GAAGusE,cAAgCjB,EAAOkB,2BAA2BlB,EAAOv5K,MAAOq5K,EAAYC,IAC7NrlL,QACAA,MAAc,OAAmC,YAA3BslL,EAAOtrE,GAAGusE,cAChCvmL,QACAA,MAAc,OAAmC,YAA3BslL,EAAOtrE,GAAGusE,cAChCvmL,QACAA,MAAc,QAASslL,EAAOtrE,GAAGosE,qBAAuBd,EAAOtrE,GAAGqsE,wBAA0Bf,EAAOtrE,GAAG+rD,eAA4C,cAA3Buf,EAAOtrE,GAAGusE,cAAgCjB,EAAOmB,2BAA2BnB,EAAOv5K,MAAOq5K,EAAYC,GACjO,CAAE,CACF,SAASqB,GAAkCx4K,EAAIC,GAI7C,GAJ6D,EAALD,IACtDlO,MAA2B,GAC3BA,MAAc,EAAGsmL,GAAiD,EAAG,EAAG,cAAe,GACvFtmL,SACO,EAALkO,EAAQ,CACV,MAAMo3K,EAAStlL,QACfA,QACAA,MAAc,UAAWslL,EAAOv5K,MAAhC/L,CAAuC,eAAgBslL,EAAOtrE,GAAG2sE,WACrE,CAAE,CACF,SAASC,GAA8E14K,EAAIC,GAAgB,EAALD,GAClGlO,MAAsB,EACxB,CACF,SAAS6mL,GAA+D34K,EAAIC,GAI1E,GAJ0F,EAALD,IACnFlO,MAA2B,GAC3BA,MAAc,EAAG4mL,GAA+E,EAAG,EAAG,eAAgB,GACtH5mL,SACO,EAALkO,EAAQ,CACV,MAAMqqK,EAASv4K,QACT8mL,EAAavO,EAAO5oK,UACpBo3K,EAAcxO,EAAOvqJ,MACrBs3J,EAAStlL,MAAiB,GAChCA,QACAA,MAAc,mBAAoBslL,EAAOr3K,SAAzCjO,CAAmD,0BAA2BA,MAAmB,EAAG8kL,GAAMgC,EAAYxB,EAAOG,YAAYsB,GAAczB,EAAOl3B,QAASk3B,EAAOtrE,GAAGgtE,cAAcF,GAAoC,QAAvBxB,EAAOtrE,GAAG0rE,UAAsBJ,EAAOtrE,GAAG2rE,aAAamB,GAAaxB,EAAOZ,QAC3R,CAAE,CACF,SAASuC,GAA8E/4K,EAAIC,GAAgB,EAALD,GAClGlO,MAAsB,EACxB,CACF,SAASknL,GAA+Dh5K,EAAIC,GAI1E,GAJ0F,EAALD,IACnFlO,MAA2B,EAAG,GAC9BA,MAAc,EAAGinL,GAA+E,EAAG,EAAG,eAAgB,GACtHjnL,SACO,EAALkO,EAAQ,CACV,MAAMqqK,EAASv4K,QACT8mL,EAAavO,EAAO5oK,UACpBo3K,EAAcxO,EAAOvqJ,MACrBs3J,EAAStlL,MAAiB,GAChCA,QACAA,MAAc,mBAAoBslL,EAAOtrE,GAAGurE,qBAAuBD,EAAOtrE,GAAGwrE,qBAA7ExlL,CAAmG,0BAA2BA,MAAmB,EAAG8kL,GAAMgC,EAAYxB,EAAOG,YAAYsB,GAAczB,EAAOl3B,QAASk3B,EAAOtrE,GAAGgtE,cAAcF,GAAoC,QAAvBxB,EAAOtrE,GAAG0rE,UAAsBJ,EAAOtrE,GAAG2rE,aAAamB,GAAaxB,EAAOZ,QAC3U,CAAE,CACF,SAASyC,GAA8Ej5K,EAAIC,GAAgB,EAALD,GAClGlO,MAAsB,EACxB,CACF,SAASonL,GAA6Fl5K,EAAIC,GAAgB,EAALD,GACjHlO,MAAsB,EACxB,CACF,SAASqnL,GAA8En5K,EAAIC,GAIzF,GAJyG,EAALD,IAClGlO,MAA2B,EAAG,GAC9BA,MAAc,EAAGonL,GAA8F,EAAG,EAAG,eAAgB,GACrIpnL,SACO,EAALkO,EAAQ,CACV,MAAMqqK,EAASv4K,MAAiB,GAC1B8mL,EAAavO,EAAO5oK,UACpBo3K,EAAcxO,EAAOvqJ,MACrBs3J,EAAStlL,MAAiB,GAChCA,QACAA,MAAc,mBAAoBslL,EAAOtrE,GAAGosE,qBAAuBd,EAAOtrE,GAAGqsE,qBAA7ErmL,CAAmG,0BAA2BA,MAAmB,EAAG8kL,GAAMgC,EAAYxB,EAAOG,YAAYsB,GAAczB,EAAOl3B,QAASk3B,EAAOtrE,GAAGgtE,cAAcF,GAAoC,QAAvBxB,EAAOtrE,GAAG0rE,UAAsBJ,EAAOtrE,GAAG2rE,aAAamB,GAAaxB,EAAOZ,QAC3U,CAAE,CACF,SAAS4C,GAA+Dp5K,EAAIC,GAI1E,GAJ0F,EAALD,IACnFlO,MAA2B,GAC3BA,MAAc,EAAGmnL,GAA+E,EAAG,EAAG,eAAgB,EAAtHnnL,CAAyH,EAAGqnL,GAA+E,EAAG,EAAG,eAAgB,GACjOrnL,SACO,EAALkO,EAAQ,CACV,MAAMqqK,EAASv4K,QACT8mL,EAAavO,EAAO5oK,UACpBo3K,EAAcxO,EAAOvqJ,MACrBs3J,EAAStlL,MAAiB,GAChCA,QACAA,MAAc,mBAAoBslL,EAAOtrE,GAAGutE,qBAAuBjC,EAAOtrE,GAAGwtE,qBAA7ExnL,CAAmG,0BAA2BA,MAAmB,EAAGglL,GAAM8B,EAAYxB,EAAOG,YAAYsB,GAAczB,EAAOl3B,QAASk3B,EAAOZ,SAC9N1kL,QACAA,MAAc,QAASslL,EAAOtrE,GAAGosE,qBAAuBd,EAAOtrE,GAAGqsE,uBAAoD,cAA3Bf,EAAOtrE,GAAGusE,cAAgCjB,EAAOmB,2BAA2BnB,EAAOv5K,MAAO+6K,EAAYxB,EAAOG,YAAYsB,IACxN,CAAE,CACF,SAASU,GAAgDv5K,EAAIC,GAE3D,GAF2E,EAALD,GACpElO,MAAc,EAAG6mL,GAAgE,EAAG,EAAG,eAAgB,EAAvG7mL,CAA0G,EAAGknL,GAAgE,EAAG,EAAG,eAAgB,EAAnMlnL,CAAsM,EAAGsnL,GAAgE,EAAG,EAAG,eAAgB,GACxR,EAALp5K,EAAQ,CACV,MAAM44K,EAAa34K,EAAIwB,UACjBo3K,EAAc54K,EAAI6f,MAClBs3J,EAAStlL,MAAiB,GAChCA,MAAc,SAAUslL,EAAOtrE,GAAGurE,qBAAuBD,EAAOtrE,GAAGwrE,uBACnExlL,QACAA,MAAc,QAASslL,EAAOtrE,GAAGurE,qBAAuBD,EAAOtrE,GAAGwrE,uBAAoD,cAA3BF,EAAOtrE,GAAGusE,cAAgCjB,EAAOkB,2BAA2BlB,EAAOv5K,MAAO+6K,EAAYxB,EAAOG,YAAYsB,KACpN/mL,QACAA,MAAc,OAAQslL,EAAOtrE,GAAGgtE,cAAcF,GAClD,CAAE,CACF,SAASY,GAAkCx5K,EAAIC,GAI7C,GAJ6D,EAALD,IACtDlO,MAA2B,GAC3BA,MAAc,EAAGynL,GAAiD,EAAG,EAAG,cAAe,GACvFznL,SACO,EAALkO,EAAQ,CACV,MAAMo3K,EAAStlL,QACfA,QACAA,MAAc,UAAWslL,EAAOv5K,MAAhC/L,CAAuC,eAAgBslL,EAAOtrE,GAAG2sE,WACrE,CAAE,CACF,SAASgB,GAA+Dz5K,EAAIC,GAAgB,EAALD,GACnFlO,MAAsB,EACxB,CACF,SAAS4nL,GAA8E15K,EAAIC,GAAgB,EAALD,GAClGlO,MAAsB,EACxB,CACF,SAAS6nL,GAA+D35K,EAAIC,GAI1E,GAJ0F,EAALD,IACnFlO,MAA2B,GAC3BA,MAAc,EAAG4nL,GAA+E,EAAG,EAAG,eAAgB,GACtH5nL,SACO,EAALkO,EAAQ,CACV,MAAM45K,EAAS9nL,QACT+nL,EAAaD,EAAOn4K,UACpBq4K,EAAeF,EAAO95J,MACtBs3J,EAAStlL,MAAiB,GAChCA,QACAA,MAAc,mBAAoBslL,EAAOtrE,GAAGiuE,2BAA6B3C,EAAOtrE,GAAGkuE,2BAAnFloL,CAA+G,0BAA2BA,MAAmB,EAAGglL,GAAM+C,EAAYzC,EAAOG,YAAYuC,GAAe1C,EAAOl3B,QAASk3B,EAAOZ,QAC/O,CAAE,CACF,SAASyD,GAAgDj6K,EAAIC,GAE3D,GAF2E,EAALD,GACpElO,MAAc,EAAG2nL,GAAgE,EAAG,EAAG,eAAgB,EAAvG3nL,CAA0G,EAAG6nL,GAAgE,EAAG,EAAG,eAAgB,GAC5L,EAAL35K,EAAQ,CACV,MAAM65K,EAAa55K,EAAIwB,UACjBq4K,EAAe75K,EAAI6f,MACnBs3J,EAAStlL,MAAiB,GAChCA,MAAc,mBAAoBslL,EAAOr3K,SAAzCjO,CAAmD,0BAA2BA,MAAmB,EAAG8kL,GAAMiD,EAAYzC,EAAOG,YAAYuC,GAAe1C,EAAOl3B,QAASk3B,EAAOtrE,GAAGgtE,cAAce,GAAoC,QAAvBzC,EAAOtrE,GAAG0rE,UAAsBJ,EAAOtrE,GAAG2rE,aAAaoC,GAAazC,EAAOZ,SACxR1kL,QACAA,MAAc,OAAQslL,EAAOtrE,GAAGgtE,cAAce,GAClD,CAAE,CACF,SAASK,GAAkCl6K,EAAIC,GAI7C,GAJ6D,EAALD,IACtDlO,MAA2B,GAC3BA,MAAc,EAAGmoL,GAAiD,EAAG,GAAI,cAAe,GACxFnoL,SACO,EAALkO,EAAQ,CACV,MAAMo3K,EAAStlL,QACfA,QACAA,MAAc,UAAWslL,EAAOv5K,MAAhC/L,CAAuC,eAAgBslL,EAAOtrE,GAAG2sE,WACrE,CAAE,CACF,SAAS0B,GAAiDn6K,EAAIC,GAAgB,EAALD,GACrElO,MAAsB,EACxB,CACF,SAASsoL,GAAkCp6K,EAAIC,GAI7C,GAJ6D,EAALD,IACtDlO,MAA2B,GAC3BA,MAAc,EAAGqoL,GAAkD,EAAG,EAAG,eAAgB,GACzFroL,SACO,EAALkO,EAAQ,CACV,MAAMo3K,EAAStlL,QACfA,QACAA,MAAc,mBAAoBslL,EAAOtrE,GAAG4mE,qBAAuB0E,EAAOtrE,GAAG6mE,qBAA7E7gL,CAAmG,0BAA2BA,MAAmB,EAAGilL,GAAMK,EAAOl3B,QAASk3B,EAAOZ,QACrL,CAAE,CACF,SAAS6D,GAAiDr6K,EAAIC,GAAgB,EAALD,GACrElO,MAAsB,EACxB,CACF,SAASwoL,GAAkCt6K,EAAIC,GAI7C,GAJ6D,EAALD,IACtDlO,MAA2B,GAC3BA,MAAc,EAAGuoL,GAAkD,EAAG,EAAG,eAAgB,GACzFvoL,SACO,EAALkO,EAAQ,CACV,MAAMo3K,EAAStlL,QACfA,QACAA,MAAc,mBAAoBslL,EAAOtrE,GAAGyuE,sBAAwBnD,EAAOtrE,GAAG0uE,sBAA9E1oL,CAAqG,0BAA2BA,MAAmB,EAAGilL,GAAMK,EAAOl3B,QAASk3B,EAAOZ,QACvL,CAAE,CACF,SAASiE,GAA+Cz6K,EAAIC,GAAgB,EAALD,GACnElO,MAAa,EAAG,cAAe,GACxB,EAALkO,GACFlO,MAAc,aAAc,yBAC9B,CACF,SAAS4oL,GAAuD16K,EAAIC,GAAgB,EAALD,GAC3ElO,MAAa,EAAG,sBAAuB,GAChC,EAALkO,GACFlO,MAAc,aAAc,yBAC9B,CACF,SAAS6oL,GAAsD36K,EAAIC,GAAgB,EAALD,GAC1ElO,MAAa,EAAG,qBAAsB,GAC/B,EAALkO,GACFlO,MAAc,aAAc,yBAC9B,CACF,SAAS8oL,GAAiC56K,EAAIC,GAI5C,GAJ4D,EAALD,IACrDlO,MAA2B,GAC3BA,MAAc,EAAG2oL,GAAgD,EAAG,EAAG,cAAe,EAAtF3oL,CAAyF,EAAG4oL,GAAwD,EAAG,EAAG,sBAAuB,EAAjL5oL,CAAoL,EAAG6oL,GAAuD,EAAG,EAAG,qBAAsB,GAC1Q7oL,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,QACAA,MAAc,OAA6B,IAArB8M,EAAOi8K,WAC7B/oL,QACAA,MAAc,OAA6B,IAArB8M,EAAOi8K,WAC7B/oL,QACAA,MAAc,QAA6B,IAArB8M,EAAOi8K,UACjC,CAAE,CACF,SAASC,GAAyC96K,EAAIC,GAAO,CAC7D,SAAS86K,GAA2B/6K,EAAIC,GAAgB,EAALD,GAC/ClO,MAAc,EAAGgpL,GAA0C,EAAG,EAAG,cACnE,CACF,SAASE,GAAyBh7K,EAAIC,GAIpC,GAJoD,EAALD,IAC7ClO,MAAkB,EAAG,OAAQ,GAC7BA,MAAc,EAAGipL,GAA4B,EAAG,EAAG,KAAM,GACzDjpL,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,QACAA,MAAc,mBAAoB8M,EAAOktG,GAAGmvE,kBAAoBr8K,EAAOktG,GAAGovE,kBAA1EppL,CAA6F,0BAA2BA,MAAmB,EAAGm9K,GAAMrwK,EAAOi8K,WAC/J,CAAE,CACF,SAASM,GAAyBn7K,EAAIC,GAIpC,GAJoD,EAALD,IAC7ClO,MAAkB,EAAG,OAAQ,GAC7BA,MAAU,GACVA,SACO,EAALkO,EAAQ,CACV,MAAMpB,EAAS9M,QACfA,QACAA,MAAqB8M,EAAOw8K,gBAChC,CAAE,CAiYC,IACGC,GAAY,MAAlB,MAAMA,EACFC,WAAa,IAAIhtL,KACjBitL,gBAAkB,IAAIjtL,KACtBktL,kBAAoB,IAAIltL,KACxBmtL,YAAc,IAAIntL,KAClBotL,mBAAqB,IAAIptL,KACzBqtL,cAAgB,IAAIrtL,KACpBstL,YAAczwL,KAAKmwL,WAAWvqL,eAC9B8qL,iBAAmB1wL,KAAKowL,gBAAgBxqL,eACxC+qL,mBAAqB3wL,KAAKqwL,kBAAkBzqL,eAC5CgrL,aAAe5wL,KAAKswL,YAAY1qL,eAChCirL,oBAAsB7wL,KAAKuwL,mBAAmB3qL,eAC9CkrL,eAAiB9wL,KAAKwwL,cAAc5qL,eACpCmrL,OAAOC,GACHhxL,KAAKmwL,WAAWnsL,KAAKgtL,EACzB,CACAC,oBACIjxL,KAAKowL,gBAAgBpsL,KAAK,KAC9B,CACAktL,cAAcpoL,GACV9I,KAAKqwL,kBAAkBrsL,KAAK8E,EAChC,CACAqoL,cAAcz+K,GACV1S,KAAKswL,YAAYtsL,KAAK0O,EAC1B,CACA0+K,qBAAqB1+K,GACjB1S,KAAKuwL,mBAAmBvsL,KAAK0O,EACjC,CACA2+K,gBAAgBt8B,GACZ/0J,KAAKwwL,cAAcxsL,KAAK+wJ,EAC5B,CACAp1C,iBAAc,SAA8BvhF,GAAqB,OAAO,IAAKA,GAAqB8xJ,EAAiB,EACnHvwE,kBAA6Bh5G,MAAsB,CAAE0e,MAAO6qK,EAAc/oL,QAAS+oL,EAAa9oL,YACnG,OAjCK8oL,CAAY,KAyCZoB,GAAK,MAAX,MAAMA,UAAcr+K,GAKhBs+K,cAKAzP,YAKA/0I,MAKA6oC,WAKA0yG,WAKAC,gBAKA53G,UAKA4mG,UAAY,EAKZuD,mBAKAsL,qBAAsB,EAKtB/F,kBAAoB,SAKpBsG,oBAKAJ,0BAKAC,8BAAgC,QAKhCtL,0BAA4B,gCAK5BT,sBAKAG,uBAKAC,oBAKAH,mBAAoB,EAKpBC,eAAgB,EAKhB6W,iBAAmB,EAKnBC,SAAW,SAKXC,iBAAkB,EAKlB3iD,cAKA4iD,kBAKAC,qBAMAC,2BAA6B,IAAI39K,MAKjC49K,yBAA2B,WAK3BzkB,QAKA0kB,kBAAmB,EAKnBC,cAKA1E,WAAaA,CAAC34J,EAAO9iB,IAASA,EAK9BknJ,MAAO,EAKPk5B,gBAAiB,EAKjBC,mBAAqB,aAKrBC,aAAe,IAKfC,eAAiB,WAKjBriL,QAAU,CAAC,EAKXsiL,mBAKAC,YAAc,IAKdllB,aAKAmlB,gBAAkB,CAAC,EAKnBC,eAAiB,CAAC,EAKlBC,cAAgB,WAKhBxS,WAMAyS,gBAAkB,WAKlBxF,aAKA/0B,aAKAuU,cAKA9C,sBAKAC,qBAKAyd,mBAAqB,IAKrBqL,YAMA,cAAI3/B,GACA,OAAOhzJ,KAAKizJ,WAChB,CACA,cAAID,CAAW1jI,GACXtvB,KAAKizJ,YAAc3jI,EACnB/pB,QAAQ6Z,IAAI,4FAChB,CACA6zI,YAKA2/B,YAKA7S,iBAKAC,iBAAmB,MAKnB6S,mBAKAx0E,QAKA/zC,YAKA8uF,YAAa,EAKb0mB,SAKAgT,WAKAC,sBAAuB,EAKvBC,WAKAC,eAKAC,aAKAC,SAKAC,aAAe,UAKf/G,SAAW,OAKXgH,YAKA/wK,KAKA69J,cAKAD,YAKAoT,iBAAmB,EAKnBC,iBAAmB,SAKnBv0C,WAAa,QAKb4nC,gBAKA,SAAIl0K,GACA,OAAO1S,KAAKy9J,MAChB,CACA,SAAI/qJ,CAAM4c,GACNtvB,KAAKy9J,OAASnuI,CAClB,CAKA,WAAIylI,GACA,OAAO/0J,KAAKk5J,QAChB,CACA,WAAInE,CAAQwB,GACRv2J,KAAKk5J,SAAW3C,CACpB,CAKA,SAAIvxF,GACA,OAAOhlE,KAAKg8J,MAChB,CACA,SAAIh3F,CAAM11C,GACNtvB,KAAKg8J,OAAS1sI,CAClB,CAKA,QAAIwlI,GACA,OAAO90J,KAAKwzL,KAChB,CACA,QAAI1+B,CAAKxlI,GACLtvB,KAAKwzL,MAAQlkK,CACjB,CAKA,gBAAI6rJ,GACA,OAAOn7K,KAAKyzL,aAChB,CACA,gBAAItY,CAAa7rJ,GACbtvB,KAAKyzL,cAAgBnkK,EACrBtvB,KAAK0zL,aAAatC,qBAAqBpxL,KAAKyzL,cAChD,CAKA,aAAIE,GACA,OAAO3zL,KAAK4zL,UAChB,CACA,aAAID,CAAUrkK,GACVtvB,KAAK4zL,WAAatkK,CACtB,CAKA,aAAIogK,GACA,OAAO1vL,KAAK6zL,UAChB,CACA,aAAInE,CAAUpgK,GACVtvB,KAAK6zL,WAAavkK,CACtB,CAKA,iBAAIwkK,GACA,OAAO9zL,KAAK+zL,cAChB,CACA,iBAAID,CAAcxkK,GACdtvB,KAAK+zL,eAAiBzkK,CAC1B,CAKA,aAAI28F,GACA,OAAOjsH,KAAKg0L,UAChB,CACA,aAAI/nE,CAAU38F,GACVtvB,KAAKg0L,WAAa1kK,CACtB,CAMA,oBAAI2kK,GACA,OAAOj0L,KAAKqnL,iBAChB,CACA,oBAAI4M,CAAiB3kK,GACjBtvB,KAAKqnL,kBAAoB/3J,EACzB/pB,QAAQ6Z,IAAI,+CAChB,CAKA,aAAI80K,GACA,OAAOl0L,KAAKg0L,UAChB,CACA,aAAIE,CAAU5kK,GACVtvB,KAAKg0L,WAAa1kK,CACtB,CAMA6kK,gBAAkB,IAAIjgL,MAMtBkgL,gBAAkB,IAAIlgL,MAMtBmgL,YAAc,IAAIngL,MAMlBogL,cAAgB,IAAIpgL,MAMpBqgL,OAAS,IAAIrgL,MAMb68K,OAAS,IAAI78K,MAMbi6J,SAAW,IAAIj6J,MAMfwlJ,WAAa,IAAIxlJ,MAMjBsgL,YAAc,IAAItgL,MAMlBugL,cAAgB,IAAIvgL,MAMpBwgL,oBAAsB,IAAIxgL,MAM1BygL,YAAc,IAAIzgL,MAMlB0gL,aAAe,IAAI1gL,MAMnB2gL,aAAe,IAAI3gL,MAMnB4gL,WAAa,IAAI5gL,MAMjB6gL,eAAiB,IAAI7gL,MAMrB8gL,aAAe,IAAI9gL,MAMnB+gL,uBAAyB,IAAI/gL,MAM7BghL,aAAe,IAAIhhL,MAMnBihL,YAAc,IAAIjhL,MAMlBkhL,WAAa,IAAIlhL,MAMjBmhL,YAAc,IAAInhL,MAMlBohL,eAAiB,IAAIphL,MACrB29H,mBACA0jD,sBACAC,4BACAC,8BACAC,iBACAC,eACAC,qBACAC,qBACArnB,SACAsnB,WACAzO,kBAAoB,GACpB5pB,OAAS,GACTvE,SACAu6B,cAAgB,EAChBz3B,OAAS,EACTw3B,MACAuC,cAEAxoD,gBACAD,eACA0oD,uBACAtN,sBACAG,cACAD,aACApB,qBACAD,oBACA9C,iBACAD,gBACA72C,gBACAD,eACA06C,uBACAD,sBACAgC,iBACAD,gBACAzB,kBACAD,iBACA2F,qBACAD,oBACA/B,qBACAD,oBACAc,qBACAD,oBACA8B,2BACAD,0BACAqH,sBACAC,qBACAnO,oBACAhG,mBACAoU,sBACAC,qBACAC,wBACAC,uBACAjH,sBACAD,qBACAtF,uBACAzD,sBACA0D,wBACAzD,uBACAI,+BACAD,8BACA7yD,qBACAD,oBACA+2D,gCACAD,+BACAO,kCACAD,iCACAgF,kBACAD,iBACAruC,sBACAD,qBACA+0C,4BACAC,2BACA3R,+BACAD,8BACAM,oCACAD,mCACAW,mCACAD,kCACAJ,uCACAD,sCACAW,mCACAD,kCACAyQ,cAAgB,CAAC,EACjBC,mBACAC,iBACAC,kBACAC,cACAC,gBACAC,gBACAC,YACAC,aACAC,YACAC,gBACAC,iBACAC,oBACAC,UACAC,qBACAxD,eACAH,WACAC,WAAa,EACb2D,kCACAxD,WACAyD,WAAa,KACbC,eACAC,cACAC,cACA5iE,YACA6iE,WACAC,cACAC,gBACAC,cACAC,yBACAC,kBACAC,gBACAC,oBACAC,oBACAC,gBAAiB,EACjBC,0BAA4B,CAAC,EAC7B5/J,GjClhFJ,SAAS6/J,GAAkBh6H,EAAS,UAChC49D,MACO,GAAG59D,MADV49D,IAEJ,CiC+gFSo8D,GACLC,aACApmD,uBACApE,kBAAiBpuB,OAAO64E,OACxBzrB,iBAAgBptD,OAAO84E,MACvBjF,gBAAe7zE,OAAOqwE,IACtB1yH,QAAOqiD,OAAOliD,OACdqjD,mBAAkBnB,OAAOkjE,IACzB5uK,WACIhU,MAAMgU,WACFnU,KAAK+4J,MAAQ/4J,KAAKiyL,iBACbjyL,KAAK0sK,eACN1sK,KAAK05J,WAAWrlJ,KAAKrU,KAAK44L,0BAE1B54L,KAAK+3L,kBACL/3L,KAAK+3L,iBAAkB,IAGD,UAA1B/3L,KAAKuzL,kBACLvzL,KAAK2wI,wBAET3wI,KAAKg1H,aAAc,CA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,oBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,cACL,IAAK,UACL,IAAK,SACL,IAAK,cACL,IAAK,UACL,IAAK,oBACL,IAAK,kBACL,IAAK,QACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,gBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,YACL,IAAK,oBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,WACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,kBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,yBACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,sBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,aACL,IAAK,iBACL,IAAK,YACL,IAAK,mBACL,IAAK,cACL,IAAK,wBACL,IAAK,kBACL,IAAK,qBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,iBACL,IAAK,uBACL,IAAK,0BACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,cACL,IAAK,mBACL,IAAK,uBACL,IAAK,mBACL,IAAK,kBACL,IAAK,mBACL,IAAK,cACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,eACL,IAAK,oBACL,IAAK,sBACL,IAAK,sBACL,IAAK,mBACL,IAAK,qBACL,IAAK,qBACL,IAAK,gBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,gBACL,IAAK,wBACL,IAAK,qBACL,IAAK,SACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,mBACL,IAAK,oBACL,IAAK,eACL,IAAK,oBACL,IAAK,uBACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,qBACL,IAAK,yBACL,IAAK,mBACL,IAAK,WACL,IAAK,iBACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,mBACL,IAAK,mBACL,IAAK,iBACL,IAAK,kBACL,IAAK,oBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,WACL,IAAK,YACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,oBACL,IAAK,sBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,oBACL,IAAK,eACL,IAAK,gBACL,IAAK,qBAEHJ,GAAO,CACT,EAAG,QACH,EAAG,KACH,EAAG,OACH,EAAG,UACH,EAAG,MACH,EAAG,UACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,SACH,GAAI,KACJ,GAAI,MACJ,GAAI,QACJ,GAAI,SACJ,GAAI,QACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,KACJ,GAAI,OACJ,GAAI,MACJ,GAAI,KACJ,GAAI,QACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,QACJ,GAAI,SACJ,GAAI,QACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,QACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,SACJ,GAAI,OACJ,GAAI,WACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,QACJ,GAAI,SACJ,GAAI,SACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,KACJ,GAAI,KACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UACJ,GAAI,OACJ,GAAI,SACJ,GAAI,SACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UACJ,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,WACJ,GAAI,SACJ,GAAI,YACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,GAAI,WACJ,GAAI,SACJ,GAAI,QACJ,GAAI,UACJ,GAAI,SACJ,GAAI,YACJ,GAAI,cACJ,GAAI,YACJ,GAAI,SACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,cACL,IAAK,WACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,UACL,IAAK,aACL,IAAK,OACL,IAAK,QACL,IAAK,YACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,IACL,IAAK,IACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,gBACL,IAAK,iBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,aACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,aACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,KACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,cACL,IAAK,SACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,MACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,oBACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,QACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,aACL,IAAK,qBACL,IAAK,mBACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,MACL,IAAK,cACL,IAAK,MACL,IAAK,aACL,IAAK,gBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,cAEHD,GAAW,CACb,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,E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sW,cACfuC,QAAQ,GAEV,CACErtX,KAAMme,GAAK4tW,OACXzsX,KAAM8e,GAAK2sW,YACXr7W,MAAOs9W,GACPG,SAAU/uW,GAAK4sW,aACfqC,QAAQ,GAEV,CACErtX,KAAMme,GAAK4tW,OACXzsX,KAAM8e,GAAK6sW,IACXv7W,OAAO,EACPy9W,SAAU/uW,GAAK8sW,MAEjB,CACElrX,KAAMme,GAAK4tW,OACXzsX,KAAM8e,GAAK+sW,IACXz7W,OAAO,EACPy9W,SAAU/uW,GAAKgtW,MAEjB,CACEprX,KAAMme,GAAK4tW,OACXzsX,KAAM8e,GAAKitW,OACX37W,OAAO,EACPy9W,SAAU/uW,GAAKktW,SAEjB,CACEtrX,KAAMme,GAAK6tW,eACX1sX,KAAM8e,GAAK+kC,MACXzzC,MAAO28W,GACPiB,mBAAmB,GAErB,CACEttX,KAAMme,GAAK6tW,eACX1sX,KAAM8e,GAAKmtW,OACX77W,MAAO28W,IAET,CACErsX,KAAMme,GAAK6tW,eACX1sX,KAAM8e,GAAKq5B,OACX/nC,MAAO28W,IAET,CACErsX,KAAMme,GAAK6tW,eACX1sX,KAAM8e,GAAKotW,QACX97W,MAAO28W,IAET,CACErsX,KAAMme,GAAK6tW,eACX1sX,KAAM8e,GAAKo6K,MACX9oL,MAAO28W,IAET,CACErsX,KAAMme,GAAK6tW,eACX1sX,KAAM8e,GAAK0zC,OACXpiD,MAAO28W,IAET,CACErsX,KAAMme,GAAK6tW,eACX1sX,KAAM8e,GAAKqtW,KACX/7W,MAAO28W,IAET,CACErsX,KAAMme,GAAK6tW,eACX1sX,KAAM8e,GAAKmrI,OACX75I,MAAO28W,IAET,CACErsX,KAAMme,GAAK6tW,eACX1sX,KAAM8e,GAAKqC,QACX/Q,MAAO28W,IAET,CACErsX,KAAMme,GAAK6tW,eACX1sX,KAAM8e,GAAKwzP,OACXliQ,MAAO28W,IAET,CACErsX,KAAMme,GAAK6tW,eACX1sX,KAAM8e,GAAK8kC,MACXxzC,MAAO28W,IAET,CACErsX,KAAMme,GAAK6tW,eACX1sX,KAAM8e,GAAKstW,OACXh8W,MAAO28W,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AY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,QAAY,UAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,SACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,YACxC,CAAI,WAAY,WAAY,WAAY,WACpC,SAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,UAAY,UAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,SAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,UAAY,WAAY,WACpC,UAAY,WAAY,SAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,WAAY,UAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,YACxC,CAAI,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,SACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,UAAY,SAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,UAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,QAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,YACxC,CAAI,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,UAAY,SACpC,WAAY,SAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,SAAY,SACpC,WAAY,WAAY,WAAY,WACpC,UAAY,UAAY,WAAY,UACpC,WAAY,WAAY,SAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,SACpC,UAAY,WAAY,UAAY,WACpC,WAAY,UAAY,SAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY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","names":["VehicleTranslate","constructor","translate","this","Vehicle","obj","super","CS","LD","SN","DR","MS","Nm","RN","St","Id","VehicleAngle","MF","BN","DP","DN","RE","SE","ES","SG","undefined","Object","assign","mainFuel","ControlIndicators","fuel","find","p","getEtollStatusHint","instant","CustomError","message","_message","v","code","_code","name","_name","AppNotificationTypes","INFO","ERROR","APP_ERROR","APP_INFO","APP_WARN","APP_SUCCESS","AppNotification","type","HttpProgressInterceptor","$errorSubject","Subject","$timeoutSubject","progressService","location","newNavigationService","$progressService","settingsService","logInApiHttpService","newWebSocketHttpService","authenticationService","errorNotified","intercept","req","next","setLastRequest","JSON","stringify","subject","inProgress","indexOf","method","setState","trySetSessionIdHeader","clone","headers","set","getMachineId","handle","pipe","tap","respone","HttpResponse","setWebSocketRoute","subscribe","result","ErrorCode","console","error","forceStop","notifyOnError","complete","asObservable","httpRequest","url","includes","get","sessionId","isInAuthenticationModule","isInDataSharingModule","TimeoutError","status","toLogout","response","has","route","changeHttpRoute","i0","i1","i2","i3","i4","i5","i6","i7","factory","ɵfac","NotificationService","getSubject","showMessage","text","title","opts","time","Date","driverId","vehicleId","notify","event","ED","Label","Details","TS","autoClose","DI","VI","Data","showSuccess","msg","showError","showWarning","processAppError","data","ProgressService","sub","BehaviorSubject","counter","flag","getStateChange","RemoteDataService","$httpClient","$msg","responseMapper","resp","body","Result","Statuses","ErrorDescription","ErrorData","getOpts","defs","notification","keys","dkeys","k","prepareOptions","Observable","observer","xAuthToken","_headers","SessionId","opt","HttpHeaders","withCredentials","observe","noCredentials","cookies","document","cookie","split","i","length","eqPos","substr","httpDelete","switchMap","options","obserever","delete","catchError","err","notifyHttpError","map","notifyError","throwError","httpGet","httpGetAll","of","httpPost","timeoutRequest","post","timeout","httpPut","put","Status","httpError","WebAccessService","$service","permissionService","baseUrl","environment","hammerApiUrl","AddAreaDetails","area","x","AuthenticateUser","request","Platform","DB","ClientName","CloseUserSession","DeleteAreaDetails","areaId","GetAreaDetails","GetAreaListByFilter","filter","GetDriverIdListForFilter","GetDriverList","GetEcoDrivingList","GetEventActionList","eventType","EventType","GetEventDetails","eventId","GetEventListByFilter","r","GetEventNotification","GetSystemUpdateInfoList","GetProfileContactData","GetProfileUserData","GetRouteAvailableDates","year","month","MyProperty","GetRouteListByFilter","DateFrom","startOfDay","DateTo","endOfDay","VehicalID","VehicleId","GetRouteStatsByFilter","GetSMSListByFilter","GetTagsListByFilter","GetUntaggedAreas","filters","Phrase","GetVehicleIdListByFilter","TachoStatuses","ETollStatuses","SentGeoStatus","GetVehicleList","GetVehicleParamList","ResetEventNotification","resetPassword","email","Email","Prod","production","ResetPasswordConfirm","passwordChange","SendSMS","SetProfileUserPassword","_passwordChange","parse","SetUserEmail","UpdateAreaDetails","SetSendToEToll","sendToEToll","GetSendToEToll","idVehice","UpdateVehicleName","updateVehicleNameRequest","SetLockVehicleState","GetLockVehicleState","item","GetVehicleIgnitionBlockerDetailsList","hasBlockerRead","hasBlockerReadWrite","BlockerInfos","GetIgnitionBlockerAuditTrailForVehicle","GetVehicleFuelCapacity","GetSendToSentGeo","SetSendToSentGeo","GetVehicleRoamingRiskCategory","CustomValidators","passwordStrength","control","value","test","weekPassword","isDate","toString","isNotDate","valueOf","BaseComponent","subscriptions","addToUnsubscribe","subscription","push","unsubscribeAll","forEach","unsubscribe","ctx_r0","innerTextClasses","label","spinnerClasses","ButtonComponent","isLoading","isFullWidth","isActive","click","EventEmitter","ngOnInit","onClick","emit","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ButtonComponent_div_1_Template","ButtonComponent_div_2_Template","_c0","CopyToClipboardComponent","tooltipTimeout","isAutoCopy","classes","ngOnChanges","changes","setTimeout","onCopyLink","matTooltip","tooltip","navigator","clipboard","writeText","disabled","show","viewQuery","MatTooltip","_r1","copyLinkTooltip_r2","lang_r2","$implicit","ctx_r2","onChangeLanguage","isSelected","getIconClass","displayedName","SelectLanguageComponent_ng_container_0_button_1_Template","languageService","supportedLanguages","lang_r5","_r4","_c1","SelectLanguageComponent_ng_template_1_button_1_Template","SelectLanguageComponent","isVerticalDisplay","lang","current","SelectLanguageComponent_ng_container_0_Template","SelectLanguageComponent_ng_template_1_Template","verticalTemp_r6","AuthenticationRoutesNames","authenticationModuleName","welcome","share","handover","login","selectDatabase","createAccount","createAccountConfirmation","resetPasswordConfirmation","setNewPassword","setNewPasswordConfirmation","logout","getFullName","namePart","defaultThrottleConfig","leading","trailing","PreventDoubleClickDirective","throttleTime","throttledClick","clicks","duration","scheduler","asyncScheduler","config","duration$","timer","throttle","durationSelector","operate","source","subscriber","hasValue","sendValue","throttled","isComplete","endThrottling","send","cleanupThrottling","startThrottle","innerFrom","createOperatorSubscriber","closed","e","emitThrottledClick","ngOnDestroy","clickEvent","preventDefault","stopPropagation","hostBindings","$event","AppErrorHandler","$onError","errorDisplayed","handleError","isDevMode","BaseHttpService","BaseService","getUrl","urlEnding","getAuthUrl","nostromoAuthApiUrl","getNewApiUrl","genesisApiUrl","providedIn","list","EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError","globalThis","DOMException","AssertionError","SystemError","Boolean","error_constructors","Map","Error","commonProperties","property","enumerable","toJsonWasCalled","Symbol","destroyCircular","from","seen","to","forceEnumerable","maxDepth","depth","useToJSON","serialize","Array","isArray","isErrorLike","errorConstructors","getErrorConstructor","toJSON","json","continueDestroyCircular","key","entries","Buffer","isBuffer","defineProperty","configurable","writable","LogInApiHttpService","httpClient","userHttpService","deviceDetectorService","version","packageJson","errorKeyLength","sessionErrors","logMethodUrl","lastRequest","logInformation","information","log","logError","errorString","serializeError","Number","POSITIVE_INFINITY","errorKey","getErrorKey","isKnowError","serializedRequest","finalInformation","getFinalInformation","Information","some","known","toLowerCase","startsWith","slice","client","currentClient","user","userViewModel","machineId","device","browser","browser_version","path","NewVehiclesHttpService","webAccessService","vehiclesBlockerInfos","groups","Type","Name","Desc","Param","Group","Values","desc","convertVehicleInfosToMap","array","OutName","getRouteDetailsList","routeIds","Routes","getById","getVehicleFromGetByIdResponse","getVehiclesWithIndicators","loadOnlyVehicles","mergeMap","res","size","blockerParametrId","ParameterId","blockerParametrIdOut2","vehicles","setVehicleLocation","getAndSetIndicators","setVehiclesIndicators","vehicle","indicators","Indicators","warn","indicator","findIndicatorGroup","Tp","LL","lat","parseFloat","Lt","replace","lng","Ln","LV","V","T","LastUpdated","LT","LastUpdatedFrom","Lat","Lon","paramType","group","UserViewModel","initials","FirstName","LastName","toUpperCase","Phone","UserHttpService","cachedUser","getClone","userData$","setUserPassword","getProfileUserData","setUserData","RememberMeToken","RememberMeTokenStore","token","_token","localStorage","getItem","tokenLSKey","save","newToken","setItem","clear","removeItem","AuthenticationHttpService","authenticateUser","applicationAndVersion","authResponse","AddUserLog","authenticateByToken","platform","closeUserSession","keepSession","AuthenticationService","isAuthenticated$","isAuthenticatedBS","canSelectDatabase","tokenStore","clients","isAuthenticatedWithoutDatabase","validTo","now","parseISO","isAfter","isSessionActive","removeToken","isTekomUser","getLoggedUserEmail","isLoggedByToken","_isLoggedByToken","authenticationHttpService","TokenStore","rememberMeTokenStore","subToIsAuthenticatedBS","isShareLink","isHandoverView","hasModule","module","modules","hasUserRight","userRight","userRights","getDatabases","sort","a","b","localeCompare","authenticateWithDb","databaseName","Login","firstStepRequest","Password","RememberMeEnabled","authenticate","startKeepSessionInterval","interval","differenceInMinutes","extendTokenValidTo","setSkipChooseLoginMethod","saveToken","rememberMeToken","isClientSelected","closeSession","authenticateWithRememberMeToken","processIsAuthenticated","isAuthenticated","shareLinkIdValue","getShareLinkIdValueFromWindowURL","toShare","getWindowPathName","handoverToken","toHandoverAuthView","toMainPanel","isPasswordResetConfirmView","toLogin","URLSearchParams","window","search","pathname","saveInLS","object","getTokenModel","newTokenClone","tokenModel","packageName","formatISO","date","_options$format","_options$representati","requiredArgs","arguments","originalDate","toDate","isNaN","getTime","format","String","representation","tzOffset","dateDelimiter","timeDelimiter","day","addLeadingZeros","getDate","getMonth","getFullYear","concat","offset","getTimezoneOffset","absoluteOffset","Math","abs","hourOffset","floor","minuteOffset","separator","hour","getHours","minute","getMinutes","second","getSeconds","join","addMinutes","dirtyDate","dirtyAmount","amount","toInteger","addMilliseconds","saveInLocalStorage","DialogService","matDialog","open","component","model","disableClose","panelClass","maxWidth","maxHeight","height","width","autoFocus","u","pt","AUD","BYN","JPY","PHP","PTE","RON","SYP","THB","TWD","USD","plural","val","parseInt","formatLong","buildFormatLongFn","formats","full","long","medium","short","defaultWidth","dateTime","en_GB","formatDistance","formatRelative","localize","match","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","pt_lib_formatLong","formatRelativeLocale","lastWeek","weekday","getUTCDay","yesterday","today","tomorrow","nextWeek","_lib_localize","ordinalNumber","dirtyNumber","_options","era","buildLocalizeFn","values","narrow","abbreviated","wide","quarter","argumentCallback","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","formattingValues","defaultFormattingWidth","locale_pt","count","tokenValue","addSuffix","comparison","_baseDate","buildMatchPatternFn","matchPattern","parsePattern","valueCallback","buildMatchFn","matchPatterns","defaultMatchWidth","parsePatterns","any","defaultParseWidth","index","LanguageService","_current","initLanguage","currentLanguageViewModel","l","_supportedLanguages","localeVariableDateFns","pl","enGB","translateService","primeNgConfig","locale","currency","registerLocaleData","localePt","use","setLanguageDisplayedName","initPrimeNgTranslate","t","setTranslation","NewDataStoreService","driversLoaded","onDriversLoaded","vehiclesLoaded","onVehiclesLoaded","vehiclesDict","driversDict","driversElectronicIdToDriverIdDict","saveVehicles","addOrUpdateVehicle","getVehicles","getVehicleById","saveDrivers","drivers","d","EI","getDrivers","getDriverById","getDriverByElectronicId","electronicId","NewNavigationService","router","tawkToChatService","toAuthentication","navigate","toWelcome","toSelectDatabase","toCreateAccount","toCreateAccountConfirmation","toResetPassword","toResetPasswordConfirmation","toSetNewPasswordConfirmation","toHandoverView","toMainPanelWithShareLink","shareLinkId","queryParams","shareId","toVehiclesList","mode","toEventsList","toWorkersList","toWorkerDetails","workerId","id","toDataSharing","toHelp","toProfile","hideChat","toHandover","toVehicleFullList","toWorkerForm","workerData","PermissionService","hasEToll","hasClientSelection","hasDataSharing","hasDataSharingAdmin","hasAreasManagement","hasTrackAreasFormClientAreasMap","hasVehicleRoutes","hasAlarms_RAZ_PO","hasStdReports_FUELALL_POL","hasStdReports_ROK_SP","hasCardFiles_FPersonals","hasCardFiles_FCardCars","hasStatus_FormStatusMap","hasStatus_FormStatusTab","hasHandover","SettingsService","skipWelcomeLSKey","previouslySelectedDatabaseLSKey","machineIdLSKey","mapLayerLSKey","loggedUserEmailLSKey","showPopupsLSKey","setLoggedUserEmail","isSkipChooseLoginMethod","getPreviouslySelectedDatabase","setPreviouslySelectedDatabase","database","setMachineId","getGuid","setMapLayer","mapLayer","getMapLayer","isShowPopups","setShowPopups","isShown","d2","performance","c","random","ErrorDialogComponent","onSubmit","MAT_DIALOG_DATA","ErrorDialogComponent_div_12_Template","ShowErrorModalService","dialogService","showModal","isAlwaysShown","ServerTimeoutDialogComponent","TimeoutDialogComponent","ShowTimeoutModalService","apiUrl","showTimeout","dialog","hideModal","close","TawkToChatService","API_TAWK_TO_KEY","Tawk_API","minimize","hideWidget","showWidgetAndChat","maximize","onStatusChange","onLoad","onLoadUserData","initAttributesUser","setAttributes","phone","hash","hashInBase64","userId","CryptoJS","Hex","UserId","DateTimePickerModule","NgxMatDatetimePickerModule","NgxMatTimepickerModule","NgxMatNativeDateModule","MatButtonToggleModule","__ngFactoryType__","ɵmod","ɵinj","imports","MatCommonModule","MatRippleModule","MatDividerModule","MatListModule","MatLineModule","MatPseudoCheckboxModule","CommonModule","MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER","provide","InjectionToken","deps","Overlay","useFactory","MAT_MENU_SCROLL_STRATEGY_FACTORY","overlay","scrollStrategies","reposition","MatMenuModule","providers","OverlayModule","CdkScrollableModule","MaterialModule","CdkTableModule","MatAutocompleteModule","MatButtonModule","MatCheckboxModule","MatDatepickerModule","MatDialogModule","MatIconModule","MatInputModule","MatNativeDateModule","MatProgressSpinnerModule","MatSlideToggleModule","MatSortModule","MatTableModule","MatTabsModule","MatTooltipModule","ScrollingModule","SharedModule","TranslateModule","WebSocketWrapper","keepAliveMessage","DataType","debugAll","urlPath","urlParams","httpRoute","protocols","debug","receiveMessageInterval","keepAliveInterval","firstConnectInterval","reconnectInterval","timeoutInterval","forcedClose","timedOut","onopen","onclose","onconnecting","onmessage","onerror","readyState","WebSocket","CONNECTING","connect","newHttpRoute","reconnectAttempt","ws","localWs","clearTimeout","OPEN","initKeepAliveMessages","clearInterval","receiveMessageTimer","keepAliveTimer","CLOSED","heartbeat","setInterval","reconnect","args","WebSocketDataTypes","geo","tacho","speedLimit","EventDataProcessor","getEvent","Start","ST","ID","De","Location","SL","DT","ifLockChanging","VehicleIndicatorsProcessor","updatedData","driverElectronicIdToDriverIdDict","LP","LastPositionLat","LastPositionLon","setVehiclePosition","driver","LastDriver","Pr","updatedIndicator","lon","VehicleLocationProcessor","setVehiclesLocation","geoIndicator","City","Cr","Ct","Ds","Hs","Rd","Zp","VehicleTachoProcessor","setVehiclesTacho","Tacho","NewWebSocketHttpService","eventNotification","onEventSubject","eventChangeVehicleData","onEventSubjectData","updatedVehicles","onVehicleChangedSubject","newVehiclesService","newDataStoreService","updatedVehiclesList","isLoggedInByLink","eventDataProcessor","vehicleIndicatorsProcessor","vehicleLocationProcessor","vehicleTachoProcessor","start","createEventsWS","initializeDictionaries","setDriversInVehicles","saveDictionariesInDataStore","startVehicleWS","startEventWS","setIntervalForOnVehicleChangedSubject","vehicleWS","eventsWS","routeName","wsEventServiceUrl","newEventDataHandler","wsVehicleDataChangeServiceUrl","newVehicleDataHandler","observable","updateVehicle","newData","IdVehicle","messageEvent","prepareEventDataForNotify","O","isSuccessChanging","TranslateService","env","logosApiUrl","isChristmasEvent","hotjarId","invalidTimingValue","exp","ɵRuntimeError","ngDevMode","optimizeGroupPlayer","players","NoopAnimationPlayer","ɵAnimationGroupPlayer","normalizeKeyframes$1","normalizer","keyframes","preStyles","postStyles","errors","normalizedKeyframes","previousOffset","previousKeyframe","kf","isSameOffset","normalizedKeyframe","prop","normalizedProp","normalizedValue","normalizePropertyName","ɵPRE_STYLE","AUTO_STYLE","normalizeStyleValue","animationFailed","listenOnPlayer","player","eventName","callback","onStart","copyAnimationEvent","onDone","onDestroy","phaseName","makeAnimationEvent","element","triggerName","fromState","toState","totalTime","_data","getOrSetDefaultValue","defaultValue","parseTimelineCommand","command","separatorPos","substring","documentElement","getParentElement","parent","parentNode","host","_CACHED_BODY","_IS_WEBKIT","containsElement","elm1","elm2","invokeQuery","selector","multi","querySelectorAll","elem","querySelector","NoopAnimationDriver","validateStyleProperty","getBodyNode","style","containsVendorPrefix","charAt","query","computeStyle","animate","delay","easing","previousPlayers","scrubberAccessRequested","ɵprov","AnimationDriver","NOOP","AnimationStyleNormalizer","ONE_SECOND","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","matches","_convertTimeValueToMS","unit","resolveTiming","timings","allowNegativeValues","hasOwnProperty","parseTimeExpression","delayMatch","easingVal","containsErrors","startIndex","negativeStepValue","negativeDelayValue","splice","setStyles","styles","formerStyles","camelProp","dashCaseToCamelCase","eraseStyles","_","normalizeAnimationEntry","steps","sequence","PARAM_REGEX","RegExp","extractStyleParams","params","exec","lastIndex","interpolateParams","original","str","varName","localVal","invalidParamValue","DASH_CASE_REGEXP","input","m","visitDslNode","visitor","node","context","AnimationMetadataType","Trigger","visitTrigger","State","visitState","Transition","visitTransition","Sequence","visitSequence","visitGroup","Animate","visitAnimate","Keyframes","visitKeyframes","Style","visitStyle","Reference","visitReference","AnimateChild","visitAnimateChild","AnimateRef","visitAnimateRef","Query","visitQuery","Stagger","visitStagger","invalidNodeType","getComputedStyle","DIMENSIONAL_PROP_SET","Set","WebAnimationsStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","strVal","trim","valAndSuffixMatch","invalidCssUnitValue","ANY_STATE","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","makeLambdaFromStates","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","metadata","warnings","AnimationAstBuilderVisitor","build","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","currentTime","queryCount","depCount","states","transitions","invalidTrigger","definitions","def","stateDef","n","transition","invalidDefinition","styleAst","astParams","containsDynamicStyles","missingSubs","add","invalidState","animation","matchers","parseTransitionExpr","transitionValue","expressions","parseInnerTransitionStr","eventStr","parseAnimationAlias","alias","invalidTransitionAlias","invalidExpression","expr","normalizeAnimationOptions","s","furthestTime","step","innerAst","max","timingAst","constructTimingAst","makeTimingAst","strValue","ast","dynamic","currentAnimateTimings","styleMetadata","isEmpty","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","metadataStyles","styleTuple","collectedEasing","styleData","endTime","startTime","tuple","collectedEntry","updateCollectedStyle","invalidParallelAnimation","validateStyleParams","invalidStyleParams","invalidKeyframes","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","invalidOffset","keyframeOffsetsOutOfOrder","generatedOffset","keyframesMissingOffsets","limit","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","normalizeSelector","hasAmpersand","optional","originalSelector","invalidStagger","currentTransition","unsupportedCSSPropertiesFound","normalizeParams","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","append","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","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","incrementTime","hasCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","currentQueryIndex","parentContext","tl","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","_copyOptions","oldParams","newTime","target","fork","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","results","elements","invalidQuery","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_localTimelineStyles","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","flattenStyles","allStyles","allProperties","getFinalKeyframe","properties","details1","details0","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","decimalPoints","mult","pow","round","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","oneOrMoreTransitionsMatch","matchFns","fn","buildStyles","stateName","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","elm","userParams","defaults","AnimationStateStyles","defaultParams","combinedParams","AnimationTrigger","_normalizer","transitionFactories","balanceProperties","fallbackTransition","createFallbackTransition","containsQueries","matchTransition","f","matchStyles","stateMap","key1","key2","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","bodyNode","_animations","_playersById","register","registerFailed","_buildPlayer","create","autoStylesMap","inst","missingOrDestroyedAnimation","createAnimationFailed","destroy","_getPlayer","missingPlayer","listen","baseEvent","play","pause","reset","restart","finish","init","setPosition","QUEUED_CLASSNAME","DISABLED_CLASSNAME","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","isObj","normalizeTriggerValue","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","hostElement","_engine","_triggers","_queue","_elementListeners","_hostClassName","addClass","phase","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","listeners","triggersWithStates","statesByElement","afterFlush","_getTrigger","trigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","k1","k2","reportError","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","removeClass","deregister","entry","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","previousTriggersValues","state","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","listener","removeNode","engine","childElementCount","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","removalFlag","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","destroyed","markedForDestroy","d0","d1","TransitionAnimationEngine","onRemovalComplete","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","queuedPlayers","createNamespace","_balanceNamespaceList","collectEnterElement","namespaceList","found","ancestor","ancestorNs","unshift","registerTrigger","_fetchNamespace","stateValue","isElementNode","insertBefore","details","markElementAsDisabled","hostNS","_buildInstruction","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","whenRenderingDone","Promise","resolve","classList","contains","flush","cleanupFns","_flushAnimations","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","nodes","root","className","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","j","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","callbacks","triggerCallback","_queueEvent","hasStarted","getPosition","nodeType","cloakElement","oldValue","display","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","props","roots","rootMap","nodeSet","localRootMap","getRoot","remove","postEntry","preEntry","AnimationEngine","doc","_triggerCache","_transitionEngine","_timelineEngine","componentId","cacheKey","triggerBuildFailed","buildTrigger","onInsert","onRemove","disableAnimations","disable","process","action","eventPhase","cb","SpecialCasedStyles","initialStylesByElement","WeakMap","_element","_startStyles","_endStyles","_state","initialStyles","_initialStyles","filterNonAnimatableStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","_onDoneFns","_onStartFns","_onDestroyFns","_initialized","_finished","_started","_destroyed","_originalOnDoneFns","_originalOnStartFns","currentSnapshot","_duration","_delay","_onFinish","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","onFinish","addEventListener","removeEventListener","_resetDomPlayerState","_convertKeyframesToObject","kfs","frame","fromEntries","cancel","methods","WebAnimationsDriver","validateAnimatableStyleProperty","playerOptions","fill","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","normalizeKeyframes","balancePreviousStylesIntoKeyframes","startingKeyframe","missingStyleProps","specialStyles","packageNonAnimatableStyles","startStyles","endStyles","DISABLE_ANIMATIONS_FLAG","BaseAnimationRenderer","delegate","_onDestroy","ɵtype","destroyNode","queueMicrotask","createElement","namespace","createComment","createText","appendChild","newChild","refChild","isMove","removeChild","oldChild","isHostElement","selectRootElement","selectorOrNode","preserveContent","nextSibling","setAttribute","el","removeAttribute","setStyle","flags","removeStyle","setProperty","setValue","AnimationRenderer","resolveElementFromTarget","parseTriggerCallbackName","dotIndex","scheduleListenerCallback","AnimationRendererFactory","_zone","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","createRenderer","cache","renderer","onRendererDestroy","animationTriggers","begin","_scheduleCountTask","run","animationCallbacksBuffer","end","runOutsideAngular","SHARED_ANIMATION_PROVIDERS","ɵAnimationStyleNormalizer","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","ɵAnimationEngine","useClass","InjectableAnimationEngine","DOCUMENT","RendererFactory2","instantiateRendererFactory","zone","ɵAnimationRendererFactory","ɵDomRendererFactory2","NgZone","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","ANIMATION_MODULE_TYPE","useValue","BROWSER_NOOP_ANIMATIONS_PROVIDERS","BrowserAnimationsModule","withConfig","ngModule","BrowserModule","RedZoomModule","TranslateHttpLoader","http","prefix","suffix","getTranslation","aura_default","primitive","borderRadius","none","xs","sm","md","lg","xl","emerald","green","lime","red","orange","amber","yellow","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose","slate","gray","zinc","neutral","stone","semantic","transitionDuration","focusRing","color","shadow","disabledOpacity","iconSize","anchorGutter","primary","formField","paddingX","paddingY","fontSize","padding","gap","header","option","optionGroup","fontWeight","content","mask","navigation","submenuLabel","submenuIcon","select","popover","modal","colorScheme","light","surface","contrastColor","hoverColor","activeColor","highlight","background","focusBackground","focusColor","disabledBackground","filledBackground","filledHoverBackground","filledFocusBackground","borderColor","hoverBorderColor","focusBorderColor","invalidBorderColor","disabledColor","placeholderColor","invalidPlaceholderColor","floatLabelColor","floatLabelFocusColor","floatLabelActiveColor","floatLabelInvalidColor","iconColor","mutedColor","hoverMutedColor","hoverBackground","selectedBackground","selectedFocusBackground","selectedColor","selectedFocusColor","icon","activeBackground","dark","components","accordion","panel","borderWidth","activeHoverBackground","toggleIcon","activeHoverColor","first","topBorderRadius","last","bottomBorderRadius","activeBottomBorderRadius","autocomplete","dropdown","activeBorderColor","chip","emptyMessage","avatar","badge","minWidth","dot","secondary","success","info","danger","contrast","blockui","breadcrumb","button","roundedBorderRadius","iconOnlyWidth","raisedShadow","badgeSize","help","outlined","plain","link","datepicker","inputIcon","selectMonth","selectYear","dayView","margin","weekDay","rangeSelectedBackground","rangeSelectedColor","monthView","yearView","buttonbar","timePicker","buttonGap","card","caption","subtitle","carousel","indicatorList","cascadeselect","mobileIndent","clearIcon","checkbox","checkedBackground","checkedHoverBackground","checkedBorderColor","checkedHoverBorderColor","checkedFocusBorderColor","checkedDisabledBorderColor","checkedColor","checkedHoverColor","image","removeIcon","colorpicker","preview","confirmdialog","confirmpopup","gutter","arrowOffset","footer","contextmenu","submenu","dataview","paginatorTop","paginatorBottom","datatable","headerCell","columnTitle","row","bodyCell","footerCell","columnFooter","dropPoint","columnResizerWidth","resizeIndicator","sortIcon","loadingIcon","rowToggleButton","selectedHoverBackground","selectedHoverColor","inlineGap","overlaySelect","overlayPopover","rule","constraintList","constraint","stripedBackground","selectedBorderColor","divider","horizontal","vertical","dock","drawer","editor","toolbar","toolbarItem","overlayOption","fieldset","legend","fileupload","highlightBorderColor","file","fileList","progressbar","basic","iftalabel","invalidColor","positionX","top","paddingTop","paddingBottom","floatlabel","positionY","active","over","in","on","galleria","navButton","prev","navIcon","thumbnailsContent","thumbnailNavButton","thumbnailNavButtonIcon","indicatorButton","insetIndicatorList","insetIndicatorButton","closeButton","closeButtonIcon","iconfield","position","left","right","bottom","blur","imagecompare","hoverSize","inlinemessage","inplace","inputchips","inputgroup","addon","inputnumber","verticalPadding","inputotp","inputtext","knob","range","listbox","checkmark","gutterStart","gutterEnd","megamenu","verticalOrientation","horizontalOrientation","baseItem","mobileButton","menu","menubar","closeIcon","simple","metergroup","meters","labelMarker","labelIcon","labelList","verticalGap","horizontalGap","multiselect","orderlist","controls","organizationchart","toggleablePadding","nodeToggleButton","connector","overlaybadge","outline","paginator","currentPageReport","jumpToPageInput","password","meter","strength","weakBackground","mediumBackground","strongBackground","toggleableHeader","panelmenu","indent","picklist","progressspinner","radiobutton","rating","scrollpanel","bar","selectbutton","skeleton","animationBackground","slider","track","contentBackground","speeddial","splitter","splitbutton","stepper","stepHeader","stepTitle","stepNumber","steppanels","steppanel","itemLink","itemLabel","itemNumber","tabmenu","tablist","itemIcon","activeBar","tabs","tab","tabpanel","tabview","tabList","tabPanel","textarea","tieredmenu","tag","terminal","prompt","commandResponse","minHeight","eventContent","eventMarker","insetShadow","eventConnector","togglebutton","disabledBorderColor","checkedShadow","toggleswitch","slideDuration","tree","nodeIcon","treeselect","treetable","toast","summary","detail","detailColor","virtualscroller","loader","ripple","ErrorLoggerProxy","AuthGuard","canActivate","InProgressDirective","disableProgress","nativeElement","bContent","onClickEvent","styleClass","isInProgress","ngStyleClass","tabIdx","ngContentSelectors","BokComponent","navigationService","onNavigateToLogin","NotFoundComponent","LoadingInitialDataComponent","MapActionType","Areas","AdType","Fuel","Tech5G","FilesDDD","Serwis","NewOrders","VehicelesAfter2025","End2gNew5g","Tech5gBussiness","PanelNavigationService","visiblityChangeSubject","change","prepareMessage","subsites","subsite","getVisibilitySubject","EventService","$webAccess","eventListAlarmSubject","eventListFuelSubject","eventListAreaSubject","filterRequestSubject","take","initialize","o","EL","events","getEventListAlarm$","getEventListFuel$","getEventListArea$","getEventFilterRequest$","filterEventList","findEvent","getEventDetails","resetEventNotification","getEventActionForAlarm","VehicleService","followVehicleSubject","listFilterSubject","listFilterCountSubject","listFilterRequestSubject","sendVehicleChangeUpdate$","initDataFlow","currentFilter","responses","vehicleIds","currentFilterResult","getList$","sortMergeJoin","getFollowVehicleSubject","setFollowVehicleStatus","findVehicle","getCurrentDriver$","getDetails$","getListFilteredCount$","getListFiltered$","refreshListFiltered","getParameterList$","getVehicleControlIndicatorTypeList$","y","joined","setSendToEToll","getSendToEToll","idVehicle","SendToEToll","updateVehicleName","vehicleFromDb","SurveyHttpService","sendSurvey","surveyDetails","createSurveyInDb","SurveySentComponent","onClose","onCloseAfterSent","description","StarComponent","isHovered","onSelected","onHoverd","iconClasses","onMouseEnter","onMouseLeave","StarComponent_div_1_Template","i_r2","onStarSelected","description_r4","isStarHoverd","isStarSelected","RatingComponent","ratingChanged","ratingDescriptions","hoverdIndex","fillRatingDescriptions","starIndex","isHoverd","RatingComponent_surveym_star_1_Template","onReasonClick","isReasonSelected","reasons","ReasonsListComponent","selectedReasonsChanged","selectedReasons","setReasons","tagIndex","findIndex","setSelectedReasons","getSelectedReasons","ReasonsListComponent_button_4_Template","ctx_r1","onSelectedReasonsChanged","_r5","review","onSend","reviewPlaceholder","_r3","onRatingChanged","SurveyComponent_ng_container_4_surveym_reasons_list_8_Template","SurveyComponent_ng_container_4_ng_container_9_Template","isLowRatingReasonsVisible","isRatingSelected","_r6","SurveyComponent","afterPositiveReviewMessage","afterNegativeReviewMessage","dialogRef","surveyHttpService","surveyDisplayService","surveySent","firstTimeSendJustRating","surveyClosed","getSendSurveyRequest","afterSendSurvey","fakeRating","getFullReview","saveSurveySentDate","fullReview","SurveyComponent_div_2_Template","SurveyComponent_ng_container_4_Template","SurveyComponent_surveym_survey_sent_5_Template","SurveyDisplayService","surveyCounterLSKey","surveySentDateLSKey","tryShowSurvey","currentDate","surveyShownDateRaw","isFirstTimeShow","surveyShownDate","whenShowSurvey","setFullYear","openDialog","MapPanelService","isMapPanelVisibleSubject","forceDrawRouteSubject","mainMapZoomLevelOffsetChanged","NewDriversHttpService","AppInitializationService","newDriversService","vehicleService","vehiclesWithIndicators","afterVehiclesWithIndicatorsLoaded","isLoggedByLink","MapEventsService","vehicleClicked","onVehicleClickedSubject","emmitVehicleClicked","PackageName","Basic","Business","AdsControlService","adsList","adsListBussiness","adsListBasic","STORAGE_KEY","showNextAd","getLastAdIndex","setLastAdIndex","showAd","currentAdVisible","argsOrArgArray","combineLatest","resultSelector","popResultSelector","mapOneOrManyArgs","combineLatestInit","mapTypeEventTypes","VehicleStatusEnum","None","Moving","Parked","NoGPS","NoGSM","Disconnected","Towed","GroupMarkerColorsEnum","Red","Green","Blue","TachoStatusWorker","Driving","Work","Rest","Free","Unkown","Consts","EventFuelAll","EventFuelRefuelling","EventFuelLoss","EventAreaAll","EventAreaEnter","EventAreaExit","InitDataFlow","VehicleDataLoaded","DriverDataLoaded","DriverChanges","VehicleChanges","Driver","VehiclesIndicatorDataLoaded","VehicleControlIndicator","VehicleOnTheMapClicked","driverDisplayFields","driverStatuses","vehicleStatuses","checkboxColor","vehicleTachoStatuses","vehicleIndicatorTypes","getVehicleIndicatorDisplayName","fieldTypes","alarmEventActionType","fuelEventActionType","areaEventActionType","getVehicleIndicatorName","vehicleIndicatorType","MapPadding","binaryIndicators","VehicleSettingsByStatusMap","groupMarkerColor","markerNumber","statusPopupMapIconUrl","statusIconUrl","statusClass","ETollStatusToIconMapping","iconUrl","MapLayerType","emapa","osm","googleRoadmap","googleHybrid","MapLayers","emapaLayer","TileLayer","minZoom","maxZoom","osmLayer","googleStreetsLayer","L","googleMutant","googleHybridLayer","MapConfigService","showPopups","showPopupsChangeSubject","currentVehicleIdChangeSubject","getShowPopupsFlag","setShowPopupsFlag","showPopupsChange","getCurrentVehicleId","currentVehicleId","setCurrentVehicleId","currentVehicleIdChange","PopupRendererService","activeRoute","mapConfigService","renderPopups","_Popup","Popup","extend","clusterId","isVisible","markers","clusters","visible","popups","eachLayer","visibleKeys","clusterKeys","marker","isPopupVisible","isCurrentVehicle","cluster","CLUSTERS","popup","keepInView","autoPan","setLatLng","getLatLng","renderHtmlForPopup","setContent","addTo","isOpenByEvent","removeLayer","getClassPopupByStatusVehicle","points","VehicleName","point","selectedPopupIdRoute","snapshot","isSelectedVehicle","googleMapsUrl","vehicleNameHTML","getSelectedVehiclePopup","onClickPopup","getElementById","ev","streetColumHTMLValue","clusterPopup","clusterPopupStreetValueCoords","innerHTML","defaultContentStreet","getElementsByClassName","getIconForStatus","vehSettings","VehicleStatus","sortKD","ids","coords","nodeSize","inc","z","sd","sqrt","min","swapItem","swap","arr","tmp","sqDist","ax","ay","bx","by","dx","dy","defaultGetX","defaultGetY","KDBush","getX","getY","ArrayType","Float64Array","IndexArrayType","Uint16Array","Uint32Array","minX","minY","maxX","maxY","stack","axis","pop","nextAxis","within","qx","qy","r2","defaultOptions","minPoints","radius","extent","generateId","reduce","fround","Float32Array","Supercluster","trees","load","timerId","geometry","createPointCluster","timeEnd","_cluster","getClusters","bbox","zoom","minLng","minLat","maxLng","maxLat","easternHem","westernHem","_limitZoom","lngX","latY","numPoints","getClusterJSON","getChildren","originId","_getOriginId","originZoom","_getOriginZoom","errorMsg","origin","children","parentId","getLeaves","leaves","_appendLeaves","getTile","z2","tile","features","_addTileFeatures","getClusterExpansionZoom","expansionZoom","cluster_id","skipped","child","point_count","isCluster","tags","px","py","getClusterProperties","coordinates","neighborIds","numPointsOrigin","neighborId","wx","wy","clusterProperties","numPoints2","createCluster","Infinity","xLng","yLat","abbrev","point_count_abbreviated","sin","PI","y2","atan","dest","src","Point","Cluster","pointCount","getClusterPK","ClusterService","mapModelPointsToGeoJsonFeatures","bounds","getWest","getSouth","getEast","getNorth","_c","mapGeoJsonClustersToModelClusters","mapGeoJsonFeaturesToModelPoints","feature","MappingService","mapRemoteToVehicleControlIndicator","remote","types","VehicalControlIndicatorId","convertDriverStatus","convertTachoStatus","tekomStatus","mapVehiclesToPoints","ClusterDrawerService","$mapConfig","markerEvents","isDrawed","draw","FeatureGroup","halo","properClusters","currentVehicleCluster","vehiclePoint","trimmedCluster","trackedVehicleCluster","drawVehicleCluster","drawVehicle","getMarkerEventsStream","colorsBits","getStatusColour","sum","elementId","iconHtml","numIcon","DivIcon","html","number_marker","Marker","pointProperties","vehicle_marker","angle","getRotatableIcon","keyboard","riseOnHover","setZIndexOffset","isSelectedClass","getStatusMarker","JavascriptInjectorService","injectToHtmlHead","script","getElementsByTagName","downloadAndRunExternalScript","scriptsUrls","isFound","scripts","getAttribute","async","defer","charset","VehicleUIEventsService","isRoutesTabSelected$","MapService","mapEvent$","mapEventSubject","currentMapLayerType","_currentMapLayerType","mapLayerChanged","mapLayerChangedSubject","mapReady$","mapReadySub$","popupRendererService","clusterService","mappingService","mapEventsService","clusterDrawerService","ngZone","activatedRoute","mapPanelService","javascriptInjectorService","vehicleUIEventsService","onClickParkStopIcon$","onClickEventList$","isVisibleVehicleList$","mapLayers","firstLoad","centerMapRequestSubject","movementEndSubject","isRoutesTab","googleMapScriptsLoaded","mainMapZoomLevelOffset","selectedVehicleZoom","isVehicleSelected","isVisibleMapLoader$","routes","areas","subToGetMarkerEventsStream","subToMapLayerChanged","subToIsRoutesTab","subToChangeMinimapZoom","subToCurrentVehicleIdChange","onMapReady","bindEvents","bindMapWithLayerGroups","initStreams","setSavedMapLayer","getMaxZoom","subToMapZoomend","setMapLoaderState","changeZoom","setZoom","getZoom","centerMap","unsubscribeAllStreams","mapEventSub","clustersSub","centerMapRequestSub","showPointWithZoom","lastCords","setView","resizeMap","invalidateSize","mapLayerType","addMapLayer","fitMapBoundsToVehicles","lats","lngs","fitMapToBounds","markerEventsSub","markerClick","markerMouseOver","markerMouseOut","LatLng","latlngs","getAllChildren","latMin","latMax","lngMin","lngMax","fitBounds","alreadyExists","popupTimeout","_html","getAdjustedCoordsForPopup","mouseover","mouseout","openVehicleFromPopup","__el","getElement","savedMapLayer","mapEventType","group_name","clearLayers","$filtered","getMinZoom","startWith","getBounds","hasLayer","_newGroup","_p","_routerState","withLatestFrom","project","len","otherValues","ready","every","identity","noop","mapEvent","onMovementEnd","LatLngBounds","ts","getMilliseconds","latlng","itemsHeight","itemHeight","containerHeight","maxContainerHeight","border","yOffset","latLngToContainerPoint","mapWidth","getPixelBounds","getSize","sign","containerWidth","xRightOffset","containerPointToLatLng","injectGoogleMapsScript","newMapLayerType","newZoom","i8","i9","i10","i11","i12","i13","MapControlService","resizeSub","getResizeSubject","resize","StatusTimeFormatPipe","formatZeros","num","transform","seconds","minutes","ceil","years","rest","months","weeks","days","hours","mins","pure","FullAddressPipe","address","appendToAddress","Br","addressPart","MinimapService","isMinimapVisible","isMinimapVisibleLSKey","mapService","miniMapLayers","defaultZoomOffset","selectedVehicleZoomOffset","miniMapOptions","zoomLevelOffset","toggleDisplay","minimized","aimingRectOptions","weight","minimapVisibleChangedSub$","saveSettings","zoomIn","selectedVehicleZoomIn","defaultZoomIn","zoomOut","selectedVehicleZoomOut","defaultZoomOut","recreateMinimap","changeLayer","miniMap","removeControl","MiniMap","subToMinimapToggle","CountryCodeService","$http","codes","loadCodes","getCode","country","LeafletUtil","mapToArray","toReturn","handleEvent","eventEmitter","observers","LeafletDirective","DEFAULT_ZOOM","DEFAULT_CENTER","latLng","DEFAULT_FPZ_OPTIONS","fitBoundsOptions","panOptions","zoomOptions","zoomPanOptions","mapReady","zoomChange","centerChange","onDoubleClick","onMouseDown","onMouseUp","onMouseMove","onMouseOver","onMouseOut","onMapMove","onMapMoveStart","onMapMoveEnd","onMapZoom","onMapZoomStart","onMapZoomEnd","addMapEventListeners","center","setFitBounds","maxBounds","setMaxBounds","setMinZoom","setMaxZoom","doResize","currentValue","setCenter","getMap","onResize","delayResize","registerEventHandler","handler","outputUpdateHandler","getCenter","resizeTimer","bind","panTo","latLngBounds","ɵdir","LeafletModule","MapMainLayerComponent","minimapService","statusTimeFormatPipe","countryCodeService","layers","zoomControl","attributionControl","closePopupOnClick","$fullAddressPipe","ComponentSubsc","Subscription","PopupSubsc","onChangeSelectedVehicle","onChangeVehicleDataSubsc","currentSelectedVehicle","hideDetailsPopupSelectedVehicle","showDetailsPopupSelectedVehicle","onChangeVehicleData","dataVehicle","updateVehicleDataPopupMarker","streetElement","dateElement","popupSelectedVehicleListeners","streetValue","textContent","paramPosition","lastPositionTime","currentSelectedVehicleButtonCoords","buttonCopyCoords","PopupDrawerService","$map","$popup","toggleClusterPopupsVisibility","getIconClasses","tooltipText","inactiveTooltip","IconComponent_div_2_div_2_Template","IconComponent_div_2_div_3_Template","showToolTipOnInactive","IconComponent","isActiveIcon","containerClasses","isMatIcon","isTooltipVisible","isActiveOnHover","showToolTipOnActive","onHover","getContainerClasses","IconComponent_div_1_Template","IconComponent_div_2_Template","onOpenAreasPanel","isAreasPanelActive","onTracking","followVehicleStatus","MapControlsComponent","isEmapaSelected","isOpenStreetSelected","isGoogleSelected","isWindowTheSameSizeAsScreen","innerHeight","screen","innerWidth","popupDrawerService","onClickModule$","clientName","isFullScreenActive","isCenterMapActive","isShowPopupActive","isMapPanelVisible","isTrackingVisible","isInFullScreen","onSwitchMap","subToIsMapPanelVisible","onShowPopups","subToGetFollowVehicleSubject","subToMouseDownWhenMapReady","onZoomIn","onMainMapIncreaseZoom","onZoomOut","onMainMapDecreaseZoom","onToggleFullScreen","exitFullscreen","enterFullscreen","onCenterMap","isFollowed","isReady","_Element","Element","requestFullScreen","mozRequestFullScreen","webkitRequestFullScreen","ALLOW_KEYBOARD_INPUT","msRequestFullscreen","_document","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","msExitFullscreen","fullScreenElement","msFullscreenElement","mozFullScreen","webkitIsFullScreen","MapControlsComponent_mapm_icon_10_Template","MapControlsComponent_mapm_icon_12_Template","MapControlsComponent_span_16_Template","MapControlsComponent_span_17_Template","MapControlsComponent_span_18_Template","hasAccessToAreas","MinimapControlsComponent","areButtonsVisible","ngAfterViewInit","MinimapControlsComponent_div_0_Template","_typeof","iterator","prototype","startOfUTCISOWeek","diff","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getUTCWeekYear","_ref","_ref2","_ref3","_options$firstWeekCon","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","getDefaultOptions","firstWeekOfNextYear","startOfUTCWeek","firstWeekOfThisYear","lightFormatters","signedYear","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","formatTimezoneShort","dirtyDelimiter","absOffset","delimiter","formatTimezoneWithOptionalMinutes","formatTimezone","format_formatters","G","Y","signedWeekYear","weekYear","R","isoWeekYear","Q","q","M","w","week","getUTCWeek","startOfUTCWeekYear","firstWeek","I","isoWeek","getUTCISOWeek","startOfUTCISOWeekYear","fourthOfJanuary","D","dayOfYear","getUTCDayOfYear","timestamp","setUTCMonth","startOfYearTimestamp","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","B","h","H","K","S","X","_localize","timezoneOffset","_originalDate","dateLongFormatter","pattern","timeLongFormatter","format_longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","getTimezoneOffsetInMilliseconds","utcDate","UTC","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","_lib_formatLong","defaultLocale","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$weekStartsOn","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","isValid","call","subMilliseconds","formatterOptions","firstCharacter","longFormatter","longFormatters","cleanEscapedString","matched","formatter","formatters","useAdditionalWeekYearTokens","isProtectedWeekYearToken","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","ModalWithParkInformationComponent","fullAddressPipe","onClickParkIcon","onChangeClickedVehicle","onClickParkIconSubsc","onChangeClickedVehicleSubsc","onClickEventModalSubsc","onClickHideModal","copyCords","clickedVehicle","formattedDate","formatEventDates","formattedStreet","onFormattedStreet","dataStreet","container","En","startDate","endDate","formatString","calculateDetails","LoaderMapComponent","EventTypeEnum","Alarm","Area","translationsKeys","Paliwo","TranslateByTextPipe","currentLang","VALUE_SIGN","valueLFuel","eventData","Dc","ModalEventInformationComponent","defaultVehicleName","defaultDriverName","EVENT_TYPE_ENUM","langauge","onChangeModalVisible","onChangeModalVisibleSubsc","onClickParkStopIconSubsc","EA","eventMode","getVehicleData","getFuelData","ModalEventInformationComponent_ng_container_3_Template","ModalEventInformationComponent_span_4_Template","ModalEventInformationComponent_ng_container_5_Template","ModalEventInformationComponent_span_18_Template","ModalEventInformationComponent_span_19_Template","ModalEventInformationComponent_span_20_Template","ModalEventInformationComponent_span_21_Template","ModalEventInformationComponent_span_22_Template","FN","LN","ParameterTypeEnum","Speed","EngineSpeed","Temperature","Voltage","Binary","Analog","Digital","Pulse","Pressure","Humidity","ElectricCurrent","Ignition","Distance","Move","MoveBinary","Direction","VisibleSatellites","GSMLevel","RFID","Acceleration","Crash","FuelUsage","WorkTime","GPSData","EcoDriving","VirtualDirection","VirtualJoinedTemperatures","VirtualETollStatus","FilterVehicleType","Blocking","TachoStatus","FilterLockType","Unblock","Lock","findVehicleSpeedParamValue","isVehicleBlocked","controlOut2","DriverFullNamePipe","fullName","calculateVehicleTimeInCurrentState","cValue","theDay","diffMs","VehicleFullColumnId","speed","adress","etoll","sent","gps","gsm","rpm","sensor","numberId","lock","networkType","getConfigSavedListSortColumns","addDays","NaN","setDate","setDay","dirtyDay","currentDay","getDay","delta","TranslateHelperService","setTranslations","firstLetterToUppercase","word","getFullMonthName","monthIndex","setMonth","toLocaleString","getAllFullMonthsNames","getWeekDaysFirstLetterNames","translateOptionItems","items","firstLetterToUpper","SearchThemeEnum","Normal","Dark","Light","_r2","onClear","SearchComponent_ng_template_2_div_0_button_1_Template","SearchComponent_ng_template_2_div_0_Template","themeType","searchThemeEnum","SearchComponent","loading","onEnterEvent","onFocusEvent","onClearEvent","hasFocus","onEnter","setFocus","inputField","focus","onFocus","onBlur","SearchComponent_span_1_Template","SearchComponent_ng_template_2_Template","searching_r4","TkSlicePipe","maxLength","VehicleLocationComponent","formatAddress","$countryCodeService","newAddress","BaseComponentStyle","BaseStyle","static","ɵBaseComponentStyle_BaseFactory","inject","platformId","PLATFORM_ID","ElementRef","injector","Injector","cd","ChangeDetectorRef","Renderer2","PrimeNG","baseComponentStyle","baseStyle","scopedStyleEl","rootEl","dt","styleOptions","nonce","csp","componentStyle","_componentStyle","attrSelector","uuid","_getHostInstance","instance","hostName","parentInstance","_getOptionValue","getKeyValue","_loadStyles","isPlatformServer","_loadScopedThemeStyles","_themeChangeListener","_unloadScopedThemeStyles","_load","Base","isStyleNameLoaded","loadCSS","setLoadedStyleName","_loadThemeStyles","_loadCoreStyles","Theme","global","getCommonTheme","css","loadTheme","getComponentTheme","layerOrder","getLayerOrderThemeCSS","preset","getPresetTheme","scopedStyle","clearLoadedStyleNames","ThemeService","cx","arg","sx","inlineStyles","standalone","DomHandler","addMultipleClasses","removeMultipleClasses","classNames","flat","cNames","hasClass","siblings","findSingle","isElement","childNodes","indexWithinGroup","attributeName","attributes","appendOverlay","appendTo","alignOverlay","calculateMinWidth","getOuterWidth","relativePosition","absolutePosition","getClosestRelativeElement","getPropertyValue","parentElement","elementDimensions","offsetParent","offsetWidth","offsetHeight","getHiddenElementDimensions","targetHeight","targetOffset","getBoundingClientRect","windowScrollTop","getWindowScrollTop","windowScrollLeft","getWindowScrollLeft","viewport","getViewport","relativeElementOffset","transformOrigin","horizontalOverflow","marginTop","elementOuterHeight","elementOuterWidth","targetOuterHeight","targetOuterWidth","getParents","parents","getScrollableParents","scrollableParents","overflowRegex","overflowCheck","styleDeclaration","scrollSelectors","dataset","scrollselectors","getHiddenElementOuterHeight","visibility","elementHeight","getHiddenElementOuterWidth","elementWidth","dimensions","scrollInView","borderTopValue","borderTop","paddingTopValue","containerRect","scrollTop","scroll","clientHeight","getOuterHeight","fadeIn","opacity","tick","requestAnimationFrame","fadeOut","ms","fading","pageYOffset","clientTop","pageXOffset","scrollLeft","clientLeft","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","marginLeft","marginRight","getHorizontalPadding","paddingLeft","paddingRight","getHorizontalMargin","getInnerHeight","marginBottom","getHeight","borderTopWidth","borderBottomWidth","getWidth","borderLeftWidth","borderRightWidth","win","g","clientWidth","getOffset","rect","replaceElementWith","replacementElement","replaceChild","getUserAgent","isClient","userAgent","isIE","ua","isIOS","MSStream","isAndroid","isTouchDevice","maxTouchPoints","removeElement","HTMLElement","nodeName","calculateScrollbarWidth","calculatedScrollbarWidth","scrollDiv","scrollbarWidth","calculateScrollbarHeight","calculatedScrollbarHeight","scrollbarHeight","invokeElementMethod","methodName","apply","clearSelection","getSelection","empty","removeAllRanges","rangeCount","getRangeAt","getClientRects","selection","getBrowser","resolveUserAgent","chrome","webkit","safari","isInteger","isFinite","isHidden","isExist","activeElement","getFocusableSelectorString","getFocusableElements","focusableElements","visibleFocusableElements","focusableElement","computedStyle","getFocusableElement","getFirstFocusableElement","getLastFocusableElement","getNextFocusableElement","reverse","focusedIndex","ownerDocument","generateZIndex","zindex","createRange","getTargetElement","nextElementSibling","previousElementSibling","calculateBodyScrollbarWidth","blockBodyScroll","unblockBodyScroll","removeProperty","attribute","computedStyles","$attrs","cv","_cv","_k","_v","matchedEvent","isFocusableElement","ConnectedOverlayScrollHandler","bindScrollListener","unbindScrollListener","AutoFocus","autofocus","_autofocus","focused","ngAfterContentChecked","ngAfterViewChecked","isPlatformBrowser","ɵAutoFocus_BaseFactory","booleanAttribute","AutoFocusModule","theme","isNotEmpty","$slots","default","severity","BadgeStyle","ɵBadgeStyle_BaseFactory","Badge","badgeDisabled","containerClass","computed","ɵBadge_BaseFactory","hostVars","dependencies","encapsulation","changeDetection","BadgeModule","BaseIconStyle","ɵBaseIconStyle_BaseFactory","BaseIcon","spin","role","ariaLabel","ariaHidden","getAttributes","isLabelEmpty","getClassNames","ɵBaseIcon_BaseFactory","hostAttrs","SpinnerIcon","pathId","ɵSpinnerIcon_BaseFactory","RippleStyle","ɵRippleStyle_BaseFactory","Ripple","animationListener","mouseDownListener","effect","ink","getInk","defaultView","pageX","pageY","resetInk","onAnimationEnd","currentTarget","hasIcon","iconPos","raised","rounded","fluid","ButtonStyle","ɵButtonStyle_BaseFactory","_c2","_c3","_c4","a0","class","Button_ng_container_2_Template","Button_ng_container_3_ng_container_1_span_1_Template","iconClass","Button_ng_container_3_ng_container_1_SpinnerIcon_2_Template","spinnerIconClass","Button_ng_container_3_ng_container_1_Template","Button_ng_container_3_2_ng_template_0_Template","Button_ng_container_3_2_Template","loadingIconTemplate","_loadingIconTemplate","Button_ng_container_3_Template","Button_ng_container_4_span_1_Template","Button_ng_container_4_2_ng_template_0_Template","Button_ng_container_4_2_Template","iconTemplate","_iconTemplate","Button_ng_container_4_Template","Button_span_5_Template","Button_p_badge_6_Template","badgeSeverity","INTERNAL_BUTTON_CLASSES","iconOnly","labelOnly","ButtonLabel","ɵButtonLabel_BaseFactory","ButtonIcon","ɵButtonIcon_BaseFactory","ButtonDirective","_label","initialized","updateLabel","updateIcon","setStyleClass","_icon","_loading","_buttonProps","iconSignal","contentChild","labelSignal","isIconOnly","buttonProps","htmlElement","_internalClasses","isTextButton","spinnerIcon","getStyleClass","createIcon","createLabel","simpleChanges","hasFluid","fluidComponent","closest","labelElement","createTextNode","iconElement","iconPosClass","firstChild","ɵButtonDirective_BaseFactory","contentQueries","dirIndex","Button","tabindex","variant","badgeClass","contentTemplate","templates","_contentTemplate","ngAfterContentInit","getType","acc","buttonClass","ɵButton_BaseFactory","PrimeTemplate","_t","numberAttribute","ButtonModule","ChevronLeftIcon","ɵChevronLeftIcon_BaseFactory","ChevronRightIcon","ɵChevronRightIcon_BaseFactory","ChevronUpIcon","ɵChevronUpIcon_BaseFactory","ChevronDownIcon","ɵChevronDownIcon_BaseFactory","TimesIcon","ɵTimesIcon_BaseFactory","CalendarIcon","ɵCalendarIcon_BaseFactory","filled","invalid","InputTextStyle","ɵInputTextStyle_BaseFactory","InputText","ngModel","pSize","updateFilledState","detectChanges","ngDoCheck","onInput","inputStyle","inputVariant","InputTextModule","ObjectUtils","isObject","equals","obj1","obj2","field","resolveFieldData","equalsByValue","arrA","arrB","dateA","dateB","regexpA","regexpB","isFunction","fields","reorderArray","insertIntoOrderedArray","sourceArr","injected","findIndexInList","removeAccents","normalize","compare","value1","value2","order","emptyValue1","emptyValue2","numeric","nullSortOrder","finalSortOrder","merge","isPrintableCharacter","char","getItemValue","findLastIndex","lastIndexOf","findLast","deepEquals","minifyCSS","toFlatCase","isString","lastId","zindexutils","ZIndexUtils","zIndexes","getZIndex","zIndex","baseZIndex","lastZIndex","newZIndex","revertZIndex","getCurrent","transformToBoolean","overlayVisible","pcInput","inputIconContainer","inline","timeOnly","calendarContainer","calendar","pcPrevButton","decade","pcNextButton","weekHeader","weekNumber","weekLabelContainer","weekDayCell","dayCell","otherMonth","selectedDayClass","isRangeSelection","selectable","isMonthSelected","isYearSelected","hourPicker","pcIncrementButton","pcDecrementButton","minutePicker","secondPicker","ampmPicker","pcTodayButton","pcClearButton","DatePickerStyle","ɵDatePickerStyle_BaseFactory","_c5","_c6","_c7","_c8","_c9","_c10","_c11","_c12","_c13","_c14","_c15","_c16","_c17","clickCallBack","_c18","_c19","a1","showTransitionParams","hideTransitionParams","_c20","_c21","_c22","_c23","_c24","_c25","DatePicker_ng_template_2_ng_container_2_TimesIcon_1_Template","DatePicker_ng_template_2_ng_container_2_span_2_1_ng_template_0_Template","DatePicker_ng_template_2_ng_container_2_span_2_1_Template","DatePicker_ng_template_2_ng_container_2_span_2_Template","clearIconTemplate","_clearIconTemplate","DatePicker_ng_template_2_ng_container_2_Template","DatePicker_ng_template_2_button_3_span_1_Template","DatePicker_ng_template_2_button_3_ng_container_2_CalendarIcon_1_Template","DatePicker_ng_template_2_button_3_ng_container_2_2_ng_template_0_Template","DatePicker_ng_template_2_button_3_ng_container_2_2_Template","DatePicker_ng_template_2_button_3_ng_container_2_Template","triggerIconTemplate","_triggerIconTemplate","DatePicker_ng_template_2_button_3_Template","inputfield_r6","onButtonClick","tmp_6_0","iconButtonAriaLabel","panelId","DatePicker_ng_template_2_ng_container_4_CalendarIcon_2_Template","_r7","showOnFocus","DatePicker_ng_template_2_ng_container_4_ng_container_3_Template","DatePicker_ng_template_2_ng_container_4_Template","inputIconTemplate","_inputIconTemplate","DatePicker_ng_template_2_Template","onInputFocus","onInputKeydown","onInputClick","onInputBlur","onUserInput","tmp_17_0","inputStyleClass","inputFieldValue","readonlyInput","placeholder","inputId","required","ariaLabelledBy","touchUI","showClear","showIcon","iconDisplay","DatePicker_div_3_ng_container_3_Template","DatePicker_div_3_ng_container_4_div_2_ChevronLeftIcon_3_Template","DatePicker_div_3_ng_container_4_div_2_span_4_1_ng_template_0_Template","DatePicker_div_3_ng_container_4_div_2_span_4_1_Template","DatePicker_div_3_ng_container_4_div_2_span_4_Template","previousIconTemplate","_previousIconTemplate","DatePicker_div_3_ng_container_4_div_2_button_6_Template","_r10","switchToMonthView","onContainerButtonKeydown","month_r11","switchViewButtonDisabled","getMonthName","DatePicker_div_3_ng_container_4_div_2_button_7_Template","_r12","switchToYearView","getYear","DatePicker_div_3_ng_container_4_div_2_span_8_ng_container_1_Template","yearPickerValues","DatePicker_div_3_ng_container_4_div_2_span_8_ng_container_2_Template","DatePicker_div_3_ng_container_4_div_2_span_8_Template","decadeTemplate","_decadeTemplate","DatePicker_div_3_ng_container_4_div_2_ChevronRightIcon_10_Template","DatePicker_div_3_ng_container_4_div_2_span_11_1_ng_template_0_Template","DatePicker_div_3_ng_container_4_div_2_span_11_1_Template","DatePicker_div_3_ng_container_4_div_2_span_11_Template","nextIconTemplate","_nextIconTemplate","DatePicker_div_3_ng_container_4_div_2_table_12_th_3_Template","DatePicker_div_3_ng_container_4_div_2_table_12_th_4_Template","weekDay_r13","DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_1_Template","j_r14","weekNumbers","DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_2_Template","date_r16","DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_3_ng_container_1_Template","DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_3_Template","dateTemplate","_dateTemplate","DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_4_ng_container_1_Template","DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_4_Template","disabledDateTemplate","_disabledDateTemplate","DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_div_5_Template","DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_Template","_r15","onDateSelect","i_r17","onDateCellKeydown","dayClass","formatDateKey","formatDateMetaToDate","DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_Template","showOtherMonths","DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_Template","week_r18","showWeek","DatePicker_div_3_ng_container_4_div_2_table_12_Template","weekDays","dates","DatePicker_div_3_ng_container_4_div_2_Template","_r9","onPrevButtonClick","onNextButtonClick","prevIconAriaLabel","currentView","nextIconAriaLabel","DatePicker_div_3_ng_container_4_div_3_span_1_div_2_Template","m_r21","DatePicker_div_3_ng_container_4_div_3_span_1_Template","_r19","i_r20","onMonthSelect","onMonthCellKeydown","isMonthDisabled","DatePicker_div_3_ng_container_4_div_3_Template","monthPickerValues","DatePicker_div_3_ng_container_4_div_4_span_1_div_2_Template","y_r23","DatePicker_div_3_ng_container_4_div_4_span_1_Template","_r22","onYearSelect","onYearCellKeydown","isYearDisabled","DatePicker_div_3_ng_container_4_div_4_Template","DatePicker_div_3_ng_container_4_Template","DatePicker_div_3_div_5_ChevronUpIcon_3_Template","DatePicker_div_3_div_5_4_ng_template_0_Template","DatePicker_div_3_div_5_4_Template","DatePicker_div_3_div_5_ng_container_6_Template","DatePicker_div_3_div_5_ChevronDownIcon_9_Template","DatePicker_div_3_div_5_10_ng_template_0_Template","DatePicker_div_3_div_5_10_Template","DatePicker_div_3_div_5_ChevronUpIcon_16_Template","DatePicker_div_3_div_5_17_ng_template_0_Template","DatePicker_div_3_div_5_17_Template","DatePicker_div_3_div_5_ng_container_19_Template","DatePicker_div_3_div_5_ChevronDownIcon_22_Template","DatePicker_div_3_div_5_ng_container_23_1_ng_template_0_Template","DatePicker_div_3_div_5_ng_container_23_1_Template","DatePicker_div_3_div_5_ng_container_23_Template","decrementIconTemplate","_decrementIconTemplate","DatePicker_div_3_div_5_div_24_Template","timeSeparator","DatePicker_div_3_div_5_div_25_ChevronUpIcon_2_Template","DatePicker_div_3_div_5_div_25_3_ng_template_0_Template","DatePicker_div_3_div_5_div_25_3_Template","DatePicker_div_3_div_5_div_25_ng_container_5_Template","DatePicker_div_3_div_5_div_25_ChevronDownIcon_8_Template","DatePicker_div_3_div_5_div_25_9_ng_template_0_Template","DatePicker_div_3_div_5_div_25_9_Template","DatePicker_div_3_div_5_div_25_Template","_r25","incrementSecond","onTimePickerElementMouseDown","onTimePickerElementMouseUp","onTimePickerElementMouseLeave","decrementSecond","incrementIconTemplate","_incrementIconTemplate","currentSecond","DatePicker_div_3_div_5_div_26_Template","DatePicker_div_3_div_5_div_27_ChevronUpIcon_2_Template","DatePicker_div_3_div_5_div_27_3_ng_template_0_Template","DatePicker_div_3_div_5_div_27_3_Template","DatePicker_div_3_div_5_div_27_ChevronDownIcon_7_Template","DatePicker_div_3_div_5_div_27_8_ng_template_0_Template","DatePicker_div_3_div_5_div_27_8_Template","DatePicker_div_3_div_5_div_27_Template","_r26","toggleAMPM","DatePicker_div_3_div_5_Template","_r24","incrementHour","decrementHour","incrementMinute","decrementMinute","currentHour","currentMinute","showSeconds","hourFormat","DatePicker_div_3_div_6_Template","_r27","onTodayButtonClick","onClearButtonClick","todayButtonStyleClass","clearButtonStyleClass","DatePicker_div_3_ng_container_8_Template","DatePicker_div_3_Template","_r8","onOverlayAnimationStart","onOverlayAnimationDone","onOverlayClick","panelStyleClass","panelStyle","showTransitionOptions","hideTransitionOptions","headerTemplate","_headerTemplate","showTime","showButtonBar","footerTemplate","_footerTemplate","DATEPICKER_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","useExisting","forwardRef","DatePicker","overlayService","iconAriaLabel","dateFormat","multipleSeparator","rangeSeparator","selectOtherMonths","shortYearCutoff","monthNavigator","yearNavigator","stepHour","stepMinute","stepSecond","startWeekFromFirstDayOfYear","dataType","selectionMode","maxDateCount","autoZIndex","keepInvalid","hideOnDateTimeSelect","focusTrap","minDate","_minDate","currentMonth","currentYear","createMonths","maxDate","_maxDate","disabledDates","_disabledDates","disabledDays","_disabledDays","yearRange","_yearRange","yearStart","yearEnd","populateYearOptions","_showTime","initTime","updateInputfield","responsiveOptions","_responsiveOptions","destroyResponsiveStyleElement","createResponsiveStyle","numberOfMonths","_numberOfMonths","firstDayOfWeek","_firstDayOfWeek","createWeekDays","newLocale","view","_view","defaultDate","_defaultDate","onSelect","onTodayClick","onClearClick","onMonthChange","onYearChange","onClickOutside","onShow","containerViewChild","inputfieldViewChild","contentViewChild","isMonthNavigate","then","updateFocus","initFocusableCell","maskClickListener","responsiveStyleElement","onModelChange","onModelTouched","calendarElement","timePickerTimer","documentClickListener","animationEndListener","ticksTo1970","yearOptions","isKeydown","preventDocumentListener","selectElement","todayElement","focusElement","scrollHandler","documentResizeListener","navigationState","translationSubscription","_locale","attributeSelector","preventFocus","_focusKey","rootClass","translationObserver","markForCheck","dayIndex","getFirstDateOfWeek","dayLabels","TranslationKeys","DAY_NAMES_MIN","base","createMonth","getWeekNumber","checkDate","firstDay","getFirstDayOfMonthIndex","daysLength","getDaysCountInMonth","prevMonthDaysLength","getDaysCountInPrevMonth","dayNo","monthRows","getPreviousMonthAndYear","isToday","isSelectable","remainingDaysLength","getNextMonthAndYear","setCurrentHourPM","navBackward","decrementYear","decrementDecade","navForward","incrementYear","incrementDecade","_yearOptions","difference","setCurrentView","dateMeta","isMultipleSelection","isDateEquals","updateModel","shouldSelectDate","selectDate","isSingleSelection","hideOverlay","disableModality","formattedValue","formatDateTime","isDateValid","isValidDateForTimeConstraints","isValidDate","formatTime","formatDate","getDateFormat","setHours","setMinutes","setSeconds","stringArrValue","getSundayIndex","daylightSavingAdjust","selected","isDateBetween","isComparable","yearToCheck","validMin","validMax","validDate","validDay","isDateDisabled","isDayDisabled","disabledDate","weekdayNumber","showOverlay","inputfield","originalEvent","backward","which","trapFocus","headerElements","keyCode","tabIndex","groupIndex","cellContent","cell","cellIndex","getIndex","nextRow","prevRow","focusCell","prevCell","navigateToMonth","nextCell","dateToFocus","focusKey","firstDayDate","firstDayDateKey","firstDayCell","lastDayDate","lastDayDateKey","lastDayCell","cells","prevMonthContainer","nextMonthContainer","contentEl","selectedCell","todayCell","shiftKey","spanIndex","tagName","onMonthDropdownChange","onYearDropdownChange","convertTo24Hour","constrainTime","minHoursExceeds12","returnTimeTriple","convertedHour","isRange","isMultiple","valueDateString","toDateString","isMinDate","isMaxDate","newHour","newPM","toggleAMPMIfNotMinDate","direction","repeat","clearTimePickerTimer","updateTime","newMinute","newSecond","parseValueFromString","isValidSelection","updateUI","parseDateTime","tokens","parts","populateTime","ampm","timeString","parseDate","parseTime","propValue","toggle","addStyle","onOverlayHide","bindDocumentClickListener","bindDocumentResizeListener","restoreOverlayAppend","enableModality","destroyMask","hasBlockerMasks","bodyChildren","unbindAnimationEndListener","unbindMaskClickListener","writeValue","registerOnChange","registerOnTouched","setDisabledState","FIRST_DAY_OF_WEEK","iFormat","lookAhead","formatNumber","formatName","shortNames","longNames","output","literal","DAY_NAMES_SHORT","DAY_NAMES","MONTH_NAMES_SHORT","MONTH_NAMES","dim","extra","iValue","doy","getNumber","isDoubled","digits","getName","names","checkLiteral","selectedDate","breakpoint","numMonths","o1","o2","isOutsideClicked","unbindDocumentClickListener","onWindowResize","unbindDocumentResizeListener","isSameNode","isNavIconClicked","DatePickerModule","CheckIcon","ɵCheckIcon_BaseFactory","MinusIcon","ɵMinusIcon_BaseFactory","checked","box","CheckboxStyle","ɵCheckboxStyle_BaseFactory","Checkbox_ng_container_4_ng_container_1_span_1_Template","checkboxIcon","Checkbox_ng_container_4_ng_container_1_CheckIcon_2_Template","Checkbox_ng_container_4_ng_container_1_Template","Checkbox_ng_container_4_MinusIcon_2_Template","Checkbox_ng_container_4_Template","_indeterminate","Checkbox_5_ng_template_0_Template","Checkbox_5_Template","CHECKBOX_VALUE_ACCESSOR","Checkbox","binary","inputClass","indeterminate","formControl","readonly","trueValue","falseValue","onChange","inputViewChild","signal","checkboxIconTemplate","_checkboxIconTemplate","newModelValue","selfControl","NgControl","self","currentModelValue","handleChange","ɵCheckbox_BaseFactory","CheckboxModule","ArrowDownIcon","ɵArrowDownIcon_BaseFactory","ArrowUpIcon","ɵArrowUpIcon_BaseFactory","FilterIcon","ɵFilterIcon_BaseFactory","FilterSlashIcon","ɵFilterSlashIcon_BaseFactory","PlusIcon","ɵPlusIcon_BaseFactory","SortAltIcon","ɵSortAltIcon_BaseFactory","SortAmountDownIcon","ɵSortAmountDownIcon_BaseFactory","SortAmountUpAltIcon","ɵSortAmountUpAltIcon_BaseFactory","TrashIcon","ɵTrashIcon_BaseFactory","AngleUpIcon","ɵAngleUpIcon_BaseFactory","AngleDownIcon","ɵAngleDownIcon_BaseFactory","allowEmpty","showButtons","buttonLayout","buttonGroup","incrementButton","maxlength","decrementButton","minlength","InputNumberStyle","ɵInputNumberStyle_BaseFactory","InputNumber_ng_container_2_TimesIcon_1_Template","InputNumber_ng_container_2_span_2_1_ng_template_0_Template","InputNumber_ng_container_2_span_2_1_Template","InputNumber_ng_container_2_span_2_Template","InputNumber_ng_container_2_Template","InputNumber_span_3_span_2_Template","incrementButtonIcon","InputNumber_span_3_ng_container_3_AngleUpIcon_1_Template","InputNumber_span_3_ng_container_3_2_ng_template_0_Template","InputNumber_span_3_ng_container_3_2_Template","InputNumber_span_3_ng_container_3_Template","incrementButtonIconTemplate","_incrementButtonIconTemplate","InputNumber_span_3_span_5_Template","decrementButtonIcon","InputNumber_span_3_ng_container_6_AngleDownIcon_1_Template","InputNumber_span_3_ng_container_6_2_ng_template_0_Template","InputNumber_span_3_ng_container_6_2_Template","InputNumber_span_3_ng_container_6_Template","decrementButtonIconTemplate","_decrementButtonIconTemplate","InputNumber_span_3_Template","onUpButtonMouseDown","onUpButtonMouseUp","onUpButtonMouseLeave","onUpButtonKeyDown","onUpButtonKeyUp","onDownButtonMouseDown","onDownButtonMouseUp","onDownButtonMouseLeave","onDownButtonKeyDown","onDownButtonKeyUp","incrementButtonClass","_incrementButtonClass","decrementButtonClass","_decrementButtonClass","InputNumber_button_4_span_1_Template","InputNumber_button_4_ng_container_2_AngleUpIcon_1_Template","InputNumber_button_4_ng_container_2_2_ng_template_0_Template","InputNumber_button_4_ng_container_2_2_Template","InputNumber_button_4_ng_container_2_Template","InputNumber_button_4_Template","InputNumber_button_5_span_1_Template","InputNumber_button_5_ng_container_2_AngleDownIcon_1_Template","InputNumber_button_5_ng_container_2_2_ng_template_0_Template","InputNumber_button_5_ng_container_2_2_Template","InputNumber_button_5_ng_container_2_Template","InputNumber_button_5_Template","INPUTNUMBER_VALUE_ACCESSOR","InputNumber","ariaRequired","localeMatcher","currencyDisplay","useGrouping","minFractionDigits","maxFractionDigits","_disabled","clearTimer","onKeyDown","groupChar","prefixChar","suffixChar","isSpecialChar","lastValue","_numeral","numberFormat","_decimal","_decimalChar","_group","_minusSign","_currency","_prefix","_suffix","_index","ngControl","_rootClass","simpleChange","updateConstructParser","hostClasses","constructParser","getOptions","minimumFractionDigits","maximumFractionDigits","Intl","NumberFormat","numerals","getGroupingExpression","getMinusSignExpression","getCurrencyExpression","getDecimalExpression","getDecimalChar","getSuffixExpression","getPrefixExpression","escapeRegExp","decimalChar","formatValue","parseValue","suffixRegex","prefixRegex","currencyRegex","filteredText","parsedValue","dir","newValue","validateValue","updateInput","handleOnInput","onInputKeyDown","altKey","selectionStart","selectionEnd","inputValue","newValueStr","isNumeralChar","setSelectionRange","deleteChar","decimalCharIndex","decimalCharIndexWithoutPrefix","getDecimalCharIndexes","decimalLength","getDecimalLength","insertedText","isDecimalMode","updateValue","deleteRange","onInputKeyPress","fromCharCode","isDecimalSign","isMinusSign","charCodeAt","selectedValue","selectedValueParsed","selectedValueStr","insert","onPaste","clipboardData","getData","filteredData","allowMinusSign","getCharIndexes","minusCharIndex","suffixCharIndex","currencyCharIndex","minusCharIndexOnText","insertText","resolvedOptions","operation","charIndex","initCursor","valueLength","prefixLength","resetRegex","valueStr","insertedValueStr","isValueChanged","currentLength","concatValues","newLength","startValue","startExpr","sRegex","tExpr","tRegex","prevChar","nextChar","isGroupChar","val1","val2","valueSplit","newValueNumber","newValueString","isBlurUpdateOnMode","updateOn","InputNumberModule","AngleDoubleLeftIcon","ɵAngleDoubleLeftIcon_BaseFactory","AngleDoubleRightIcon","ɵAngleDoubleRightIcon_BaseFactory","AngleLeftIcon","ɵAngleLeftIcon_BaseFactory","AngleRightIcon","ɵAngleRightIcon_BaseFactory","IconFieldStyle","ɵIconFieldStyle_BaseFactory","IconField","iconPosition","_styleClass","ɵIconField_BaseFactory","BlankIcon","ɵBlankIcon_BaseFactory","SearchIcon","ɵSearchIcon_BaseFactory","InputIconStyle","ɵInputIconStyle_BaseFactory","InputIcon","ɵInputIcon_BaseFactory","OverlayStyle","ɵOverlayStyle_BaseFactory","a2","a3","a4","a5","a6","a7","a8","a9","a10","a11","a12","a13","Overlay_div_0_div_2_ng_container_3_Template","Overlay_div_0_div_2_Template","onOverlayContentClick","onOverlayContentAnimationStart","onOverlayContentAnimationDone","contentStyleClass","contentStyle","transformOptions","overlayResponsiveDirection","overlayMode","Overlay_div_0_Template","showOverlayContentAnimation","hideOverlayContentAnimation","_visible","modalVisible","_mode","overlayOptions","_style","overlayResponsiveOptions","_contentStyle","_contentStyleClass","_target","_appendTo","_autoZIndex","_baseZIndex","_showTransitionOptions","_hideTransitionOptions","_listener","responsive","_responsive","visibleChange","onBeforeShow","onBeforeHide","onHide","onAnimationStart","onAnimationDone","overlayViewChild","isOverlayClicked","isOverlayContentClicked","documentKeyboardListener","matchMedia","media","overlayEl","targetEl","isFocus","onVisibleChange","handleEvents","hide","bindListeners","unbindListeners","bindDocumentKeyboardListener","unbindDocumentKeyboardListener","valid","hideOnEscape","useAnimation","ScrollerStyle","ɵScrollerStyle_BaseFactory","numCols","rows","columns","Scroller_ng_container_0_ng_container_3_ng_container_1_Template","Scroller_ng_container_0_ng_container_3_Template","loadedItems","getContentOptions","Scroller_ng_container_0_ng_template_4_ng_container_2_ng_container_1_Template","Scroller_ng_container_0_ng_template_4_ng_container_2_Template","item_r3","index_r4","itemTemplate","_itemTemplate","Scroller_ng_container_0_ng_template_4_Template","d_loading","_trackBy","Scroller_ng_container_0_div_6_Template","spacerStyle","Scroller_ng_container_0_div_7_ng_container_1_ng_container_1_ng_container_1_Template","Scroller_ng_container_0_div_7_ng_container_1_ng_container_1_Template","index_r5","loaderTemplate","_loaderTemplate","getLoaderOptions","both","numItemsInViewport","cols","Scroller_ng_container_0_div_7_ng_container_1_Template","loaderArr","Scroller_ng_container_0_div_7_ng_template_2_ng_container_0_ng_container_1_Template","Scroller_ng_container_0_div_7_ng_template_2_ng_container_0_Template","loaderIconTemplate","_loaderIconTemplate","Scroller_ng_container_0_div_7_ng_template_2_ng_template_1_Template","Scroller_ng_container_0_div_7_ng_template_2_Template","buildInLoaderIcon_r6","Scroller_ng_container_0_div_7_Template","buildInLoader_r7","Scroller_ng_container_0_Template","onContainerScroll","buildInContent_r8","_id","_showSpacer","loaderDisabled","_showLoader","Scroller_ng_template_1_ng_container_1_ng_container_1_Template","Scroller_ng_template_1_ng_container_1_Template","_items","loadedColumns","Scroller_ng_template_1_Template","Scroller","_tabindex","itemSize","_itemSize","scrollHeight","_scrollHeight","scrollWidth","_scrollWidth","orientation","_orientation","_step","resizeDelay","_resizeDelay","appendOnly","_appendOnly","_inline","lazy","_lazy","_loaderDisabled","_columns","showSpacer","showLoader","numToleratedItems","_numToleratedItems","autoSize","_autoSize","trackBy","onLazyLoad","onScroll","onScrollIndexChange","elementViewChild","d_numToleratedItems","page","isRangeChanged","lastScrollPos","lazyLoadState","scrollTimeout","resizeTimeout","windowResizeListener","defaultHeight","defaultContentWidth","defaultContentHeight","loadedRows","setInitialState","isLoadingChanged","calculateAutoSize","viewInit","unbindResizeListener","setContentEl","setSize","calculateOptions","setSpacerSize","bindResizeListener","getElementRef","getPageByFirst","isPageChanged","scrollTo","scrollToIndex","behavior","calculateNumItems","contentPos","getContentPosition","calculateFirst","_numT","calculateCoord","_first","_size","_cpos","newFirst","isScrollChanged","getRenderedRange","isToEnd","pos","calculateFirstInViewport","_pos","firstInViewport","lastInViewport","contentWidth","contentHeight","calculateNumItemsInViewport","_contentSize","calculateNumToleratedItems","_numItems","calculateLast","_num","_isCols","getLast","contain","isCols","setProp","_value","setContentPosition","calculateTranslateVal","setTransform","_x","_y","translateVal","onScrollPositionChange","calculateScrollPos","calculateCurrentIndex","calculateTriggerIndex","_currentIndex","_last","_isScrollDownOrRight","_triggerIndex","newLast","newScrollPos","isScrollDown","isScrollRight","currentIndex","triggerIndex","scrollPos","isScrollDownOrRight","onScrollChange","newState","isDiffWidth","isDiffHeight","getItemOptions","renderedIndex","even","odd","extOptions","disabledContainer_r9","ScrollerModule","arrow","TooltipStyle","ɵTooltipStyle_BaseFactory","Tooltip","viewContainer","tooltipPosition","tooltipEvent","positionStyle","tooltipStyleClass","tooltipZIndex","escape","showDelay","hideDelay","life","positionTop","positionLeft","autoHide","fitContent","deactivate","tooltipOptions","_tooltipOptions","tooltipLabel","hideTimeout","mouseEnterListener","mouseLeaveListener","containerMouseleaveListener","clickListener","focusListener","blurListener","documentEscapeListener","resizeListener","interactionInProgress","getOption","getTarget","setOption","updateText","align","isAutoHide","activate","relatedTarget","clearHideTimeout","clearShowTimeout","tooltipArrow","pointerEvents","bindContainerMouseleaveListener","unbindContainerMouseleaveListener","TemplateRef","embeddedViewRef","createEmbeddedView","rootNodes","positionPriority","alignTop","alignBottom","alignRight","alignLeft","alignmentFn","isOutOfBounds","getHostOffset","preAlign","offsetLeft","offsetTop","alignTooltip","hostOffset","defaultClassName","targetTop","targetLeft","unbindEvents","clearTimeouts","TooltipModule","modelValue","editable","loadingicon","dropdownIcon","pcFilter","listContainer","optionGroupLabel","focusedOption","highlightOnSelect","focusedOptionIndex","isOptionDisabled","optionLabel","optionCheckIcon","optionBlankIcon","SelectStyle","ɵSelectStyle_BaseFactory","SelectItem_ng_container_1_CheckIcon_1_Template","SelectItem_ng_container_1_BlankIcon_2_Template","SelectItem_ng_container_1_Template","SelectItem_span_2_Template","tmp_1_0","SelectItem_ng_container_3_Template","_c26","_c27","_c28","_c29","_c30","Select_span_0_ng_container_2_Template","Select_span_0_ng_container_3_Template","selectedItemTemplate","_selectedItemTemplate","selectedOption","Select_span_0_ng_template_4_span_0_Template","Select_span_0_ng_template_4_Template","Select_span_0_Template","defaultPlaceholder_r4","tooltipPositionStyle","focusedOptionId","Select_input_1_Template","onEditableInput","Select_ng_container_2_TimesIcon_1_Template","Select_ng_container_2_span_2_1_ng_template_0_Template","Select_ng_container_2_span_2_1_Template","Select_ng_container_2_span_2_Template","Select_ng_container_2_Template","Select_ng_container_4_ng_container_1_ng_container_1_Template","Select_ng_container_4_ng_container_1_Template","Select_ng_container_4_ng_container_2_span_1_Template","Select_ng_container_4_ng_container_2_span_2_Template","Select_ng_container_4_ng_container_2_Template","Select_ng_container_4_Template","Select_ng_template_5_ng_container_0_span_1_Template","Select_ng_template_5_ng_container_0_ChevronDownIcon_2_Template","Select_ng_template_5_ng_container_0_Template","Select_ng_template_5_span_1_1_ng_template_0_Template","Select_ng_template_5_span_1_1_Template","Select_ng_template_5_span_1_Template","dropdownIconTemplate","_dropdownIconTemplate","Select_ng_template_5_Template","Select_ng_template_9_ng_container_3_Template","Select_ng_template_9_div_4_ng_container_1_ng_container_1_Template","Select_ng_template_9_div_4_ng_container_1_Template","filterTemplate","_filterTemplate","filterOptions","Select_ng_template_9_div_4_ng_template_2_SearchIcon_4_Template","Select_ng_template_9_div_4_ng_template_2_span_5_1_ng_template_0_Template","Select_ng_template_9_div_4_ng_template_2_span_5_1_Template","Select_ng_template_9_div_4_ng_template_2_span_5_Template","filterIconTemplate","_filterIconTemplate","Select_ng_template_9_div_4_ng_template_2_Template","onFilterInputChange","onFilterKeyDown","onFilterBlur","_filterValue","filterPlaceholder","ariaFilterLabel","Select_ng_template_9_div_4_Template","builtInFilterElement_r11","Select_ng_template_9_p_scroller_6_ng_template_2_ng_container_0_Template","Select_ng_template_9_p_scroller_6_ng_template_2_Template","items_r13","scrollerOptions_r14","buildInItems_r15","Select_ng_template_9_p_scroller_6_ng_container_4_ng_template_1_ng_container_0_Template","Select_ng_template_9_p_scroller_6_ng_container_4_ng_template_1_Template","scrollerOptions_r16","Select_ng_template_9_p_scroller_6_ng_container_4_Template","Select_ng_template_9_p_scroller_6_Template","visibleOptions","virtualScrollItemSize","virtualScrollOptions","Select_ng_template_9_ng_container_7_ng_container_1_Template","Select_ng_template_9_ng_container_7_Template","Select_ng_template_9_ng_template_8_ng_template_2_ng_container_0_span_2_Template","option_r17","getOptionGroupLabel","Select_ng_template_9_ng_template_8_ng_template_2_ng_container_0_ng_container_3_Template","Select_ng_template_9_ng_template_8_ng_template_2_ng_container_0_Template","ctx_r17","i_r19","scrollerOptions_r20","getOptionIndex","groupTemplate","_groupTemplate","Select_ng_template_9_ng_template_8_ng_template_2_ng_container_1_Template","_r21","onOptionSelect","onOptionMouseEnter","getOptionLabel","getAriaPosInset","ariaSetSize","Select_ng_template_9_ng_template_8_ng_template_2_Template","isOptionGroup","Select_ng_template_9_ng_template_8_li_3_Conditional_1_Template","emptyFilterMessageLabel","Select_ng_template_9_ng_template_8_li_3_Conditional_2_ng_container_0_Template","Select_ng_template_9_ng_template_8_li_3_Conditional_2_Template","emptyFilterTemplate","_emptyFilterTemplate","emptyTemplate","_emptyTemplate","Select_ng_template_9_ng_template_8_li_3_Template","Select_ng_template_9_ng_template_8_li_4_Conditional_1_Template","emptyMessageLabel","Select_ng_template_9_ng_template_8_li_4_Conditional_2_ng_container_0_Template","Select_ng_template_9_ng_template_8_li_4_Conditional_2_Template","Select_ng_template_9_ng_template_8_li_4_Template","Select_ng_template_9_ng_template_8_Template","items_r22","listLabel","filterValue","Select_ng_template_9_ng_container_10_Template","Select_ng_template_9_Template","onFirstHiddenFocus","onLastHiddenFocus","virtualScroll","SELECT_VALUE_ACCESSOR","Select","SelectItem","ariaPosInset","onOptionClick","ɵSelectItem_BaseFactory","filterService","_placeholder","asReadonly","filterLocale","dataKey","filterBy","filterFields","resetFilterOnHide","optionValue","optionDisabled","optionGroupChildren","autoDisplayFirst","emptyFilterMessage","filterMatchMode","focusOnHover","selectOnFocus","autoOptionFocus","autofocusFilter","onFilter","filterViewChild","focusInputViewChild","editableInputViewChild","itemsViewChild","scroller","firstHiddenFocusableElementOnOverlay","lastHiddenFocusableElementOnOverlay","hostClass","cls","hostStyle","itemsWrapper","onIconTemplate","offIconTemplate","cancelIconTemplate","_cancelIconTemplate","_onIconTemplate","_offIconTemplate","hover","optionsChanged","dimensionsUpdated","hoveredItem","selectedOptionUpdated","searchValue","searchIndex","searchTimeout","previousSearchChar","currentSearchChar","preventModelTouched","labelId","listId","clicked","EMPTY_MESSAGE","EMPTY_FILTER_MESSAGE","isVisibleClearIcon","hasSelectedOption","ARIA","getAllVisibleAndNonVisibleOptions","filteredOptions","searchFields","filtered","optionGroups","filteredItems","getOptionGroupChildren","flatOptions","selectedOptionIndex","isOptionValueEqualsModelValue","editableInputValue","findSelectedOptionIndex","isModelValueNotSet","updateEditableLabel","autoUpdateModel","resetFilter","selectedItem","findFirstFocusedOptionIndex","ind","findFirstOptionIndex","isHide","preventChange","getOptionValue","changeFocusedOptionIndex","allowModelChange","isValidOption","equalityKey","updatePlaceHolderForFloatingLabel","isInFloatingLabel","clearEditableLabel","scrollerOptions","virtualScrollerDisabled","onContainerClick","preventScroll","searchOptions","selectedIndex","selectedListItem","scrollIntoView","block","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onDeleteKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","onBackspaceKey","metaKey","optionIndex","findNextOptionIndex","isValidSelectedOption","matchedOptionIndex","findPrevOptionIndex","findLastOptionIndex","findLastFocusedOptionIndex","pressedInInputText","pressedInInput","hasFocusableElements","focusableEl","isOptionMatched","toLocaleLowerCase","applyFocus","elseBlock_r23","SelectModule","hasBreakpoints","contentStart","contentEnd","firstIcon","prevIcon","nextIcon","lastIcon","pages","pageLink","pcRowPerPageDropdown","pcJumpToPageDropdown","pcJumpToPageInput","PaginatorStyle","ɵPaginatorStyle_BaseFactory","Paginator_div_0_div_1_ng_container_1_Template","Paginator_div_0_div_1_Template","templateLeft","paginatorState","Paginator_div_0_span_2_Template","Paginator_div_0_button_3_AngleDoubleLeftIcon_1_Template","Paginator_div_0_button_3_span_2_1_ng_template_0_Template","Paginator_div_0_button_3_span_2_1_Template","Paginator_div_0_button_3_span_2_Template","firstPageLinkIconTemplate","_firstPageLinkIconTemplate","Paginator_div_0_button_3_Template","changePageToFirst","isFirstPage","getAriaLabel","Paginator_div_0_AngleLeftIcon_5_Template","Paginator_div_0_span_6_1_ng_template_0_Template","Paginator_div_0_span_6_1_Template","Paginator_div_0_span_6_Template","previousPageLinkIconTemplate","_previousPageLinkIconTemplate","Paginator_div_0_span_7_button_1_Template","pageLink_r5","onPageLinkClick","getPage","getPageAriaLabel","getLocalization","Paginator_div_0_span_7_Template","pageLinks","Paginator_div_0_p_select_8_ng_template_1_Template","Paginator_div_0_p_select_8_ng_container_2_ng_template_1_ng_container_0_Template","Paginator_div_0_p_select_8_ng_container_2_ng_template_1_Template","item_r7","jumpToPageItemTemplate","Paginator_div_0_p_select_8_ng_container_2_Template","Paginator_div_0_p_select_8_3_ng_template_0_ng_container_0_Template","Paginator_div_0_p_select_8_3_ng_template_0_Template","Paginator_div_0_p_select_8_3_Template","Paginator_div_0_p_select_8_Template","onPageDropdownChange","pageItems","dropdownAppendTo","dropdownScrollHeight","Paginator_div_0_AngleRightIcon_10_Template","Paginator_div_0_span_11_1_ng_template_0_Template","Paginator_div_0_span_11_1_Template","Paginator_div_0_span_11_Template","nextPageLinkIconTemplate","_nextPageLinkIconTemplate","Paginator_div_0_button_12_AngleDoubleRightIcon_1_Template","Paginator_div_0_button_12_span_2_1_ng_template_0_Template","Paginator_div_0_button_12_span_2_1_Template","Paginator_div_0_button_12_span_2_Template","lastPageLinkIconTemplate","_lastPageLinkIconTemplate","Paginator_div_0_button_12_Template","changePageToLast","isLastPage","Paginator_div_0_p_inputnumber_13_Template","changePage","currentPage","Paginator_div_0_p_select_14_ng_container_1_ng_template_1_ng_container_0_Template","Paginator_div_0_p_select_14_ng_container_1_ng_template_1_Template","item_r11","dropdownItemTemplate","Paginator_div_0_p_select_14_ng_container_1_Template","Paginator_div_0_p_select_14_2_ng_template_0_ng_container_0_Template","Paginator_div_0_p_select_14_2_ng_template_0_Template","Paginator_div_0_p_select_14_2_Template","Paginator_div_0_p_select_14_Template","onRppChange","rowsPerPageItems","Paginator_div_0_div_15_ng_container_1_Template","Paginator_div_0_div_15_Template","templateRight","Paginator_div_0_Template","changePageToPrev","changePageToNext","showCurrentPageReport","showFirstLastIcon","showPageLinks","showJumpToPageDropdown","showJumpToPageInput","rowsPerPageOptions","Paginator","pageLinkSize","alwaysShow","currentPageReportTemplate","totalRecords","onPageChange","_page","updatePaginatorState","labelType","translation","aria","pageLabel","digit","number","updatePageLinks","updateFirst","updateRowsPerPageOptions","showAll","getPageCount","calculatePageLinkBoundaries","numberOfPages","visiblePages","boundaries","pc","pageCount","FormsModule","PaginatorModule","RadioButtonStyle","ɵRadioButtonStyle_BaseFactory","RADIO_VALUE_ACCESSOR","RadioButton","RadioControlRegistry","accessors","accessor","isSameGroup","controlPair","formControlName","registry","checkName","throwNameError","ɵRadioButton_BaseFactory","RadioButtonModule","ToggleButtonStyle","ɵToggleButtonStyle_BaseFactory","ToggleButton_ng_container_2_Template","ToggleButton_Conditional_3_Conditional_0_Conditional_0_Template","onIcon","offIcon","ToggleButton_Conditional_3_Conditional_0_Template","ToggleButton_Conditional_3_Conditional_1_ng_container_0_Template","ToggleButton_Conditional_3_Conditional_1_Template","ToggleButton_Conditional_3_Template","hasOnLabel","onLabel","hasOffLabel","offLabel","TOGGLEBUTTON_VALUE_ACCESSOR","ToggleButton","ɵToggleButton_BaseFactory","SelectButtonStyle","ɵSelectButtonStyle_BaseFactory","SelectButton_For_1_Conditional_1_ng_template_0_ng_container_0_Template","SelectButton_For_1_Conditional_1_ng_template_0_Template","ctx_r5","option_r3","ɵ$index_1_r4","$index","ctx_r4","SelectButton_For_1_Conditional_1_Template","SelectButton_For_1_Template","SELECTBUTTON_VALUE_ACCESSOR","SelectButton","unselectable","multiple","changeTabIndexes","firstTabableChild","removeOption","ɵSelectButton_BaseFactory","SelectButtonModule","rowHover","resizableColumns","columnResizeMode","scrollable","stripedRows","showGridlines","pcPaginator","paginatorPosition","tableContainer","table","thead","columnResizer","columnHeaderContent","pcSortBadge","filterElementContainer","pcColumnFilterButton","pcColumnFilterClearButton","filterOverlay","filterConstraintList","filterConstraint","filterConstraintSeparator","filterOperator","pcFilterOperatorDropdown","filterRuleList","filterRule","pcFilterConstraintDropdown","pcFilterRemoveRuleButton","pcFilterAddRuleButton","filterButtonbar","pcFilterClearButton","pcFilterApplyButton","tbody","frozenValue","frozenBodyTemplate","rowGroupHeader","rowToggleIcon","rowExpansion","rowGroupFooter","columnProp","reorderableRowHandle","pcRowEditorInit","pcRowEditorSave","pcRowEditorCancel","tfoot","virtualScrollerSpacer","columnResizeIndicator","rowReorderIndicatorUp","rowReorderIndicatorDown","overflow","TableStyle","ɵTableStyle_BaseFactory","_c31","_c32","_c33","_c34","_c35","_c36","_c37","_c38","_c39","_c40","_c41","_c42","_c43","_c44","Table_div_2_i_1_Template","Table_div_2_ng_container_2_SpinnerIcon_1_Template","Table_div_2_ng_container_2_span_2_1_ng_template_0_Template","Table_div_2_ng_container_2_span_2_1_Template","Table_div_2_ng_container_2_span_2_Template","Table_div_2_ng_container_2_Template","Table_div_2_Template","Table_div_3_ng_container_1_Template","Table_div_3_Template","captionTemplate","_captionTemplate","Table_p_paginator_4_1_ng_template_0_ng_container_0_Template","Table_p_paginator_4_1_ng_template_0_Template","paginatorDropdownIconTemplate","_paginatorDropdownIconTemplate","Table_p_paginator_4_1_Template","Table_p_paginator_4_2_ng_template_0_ng_container_0_Template","Table_p_paginator_4_2_ng_template_0_Template","paginatorFirstPageLinkIconTemplate","_paginatorFirstPageLinkIconTemplate","Table_p_paginator_4_2_Template","Table_p_paginator_4_3_ng_template_0_ng_container_0_Template","Table_p_paginator_4_3_ng_template_0_Template","paginatorPreviousPageLinkIconTemplate","_paginatorPreviousPageLinkIconTemplate","Table_p_paginator_4_3_Template","Table_p_paginator_4_4_ng_template_0_ng_container_0_Template","Table_p_paginator_4_4_ng_template_0_Template","paginatorLastPageLinkIconTemplate","_paginatorLastPageLinkIconTemplate","Table_p_paginator_4_4_Template","Table_p_paginator_4_5_ng_template_0_ng_container_0_Template","Table_p_paginator_4_5_ng_template_0_Template","paginatorNextPageLinkIconTemplate","_paginatorNextPageLinkIconTemplate","Table_p_paginator_4_5_Template","Table_p_paginator_4_Template","alwaysShowPaginator","paginatorLeftTemplate","paginatorRightTemplate","paginatorDropdownAppendTo","paginatorDropdownScrollHeight","paginatorDropdownItemTemplate","_paginatorDropdownItemTemplate","paginatorStyleClass","paginatorLocale","Table_p_scroller_7_ng_template_2_ng_container_0_Template","Table_p_scroller_7_ng_template_2_Template","items_r4","scrollerOptions_r5","buildInTable_r6","Table_p_scroller_7_Template","onLazyItemLoad","processedData","_virtualRowHeight","virtualScrollDelay","loadingBodyTemplate","_loadingBodyTemplate","Table_ng_container_8_ng_container_1_Template","Table_ng_container_8_Template","Table_ng_template_9_ng_container_2_Template","Table_ng_template_9_ng_container_5_Template","Table_ng_template_9_tbody_6_Template","scrollerOptions_r7","_frozenBodyTemplate","Table_ng_template_9_tbody_8_Template","Table_ng_template_9_tfoot_9_ng_container_2_Template","Table_ng_template_9_tfoot_9_Template","footerGroupedTemplate","_footerGroupedTemplate","Table_ng_template_9_Template","tableStyle","tableStyleClass","colGroupTemplate","_colGroupTemplate","headerGroupedTemplate","dataToRender","bodyTemplate","_bodyTemplate","Table_p_paginator_11_1_ng_template_0_ng_container_0_Template","Table_p_paginator_11_1_ng_template_0_Template","Table_p_paginator_11_1_Template","Table_p_paginator_11_2_ng_template_0_ng_container_0_Template","Table_p_paginator_11_2_ng_template_0_Template","Table_p_paginator_11_2_Template","Table_p_paginator_11_3_ng_template_0_ng_container_0_Template","Table_p_paginator_11_3_ng_template_0_Template","Table_p_paginator_11_3_Template","Table_p_paginator_11_4_ng_template_0_ng_container_0_Template","Table_p_paginator_11_4_ng_template_0_Template","Table_p_paginator_11_4_Template","Table_p_paginator_11_5_ng_template_0_ng_container_0_Template","Table_p_paginator_11_5_ng_template_0_Template","Table_p_paginator_11_5_Template","Table_p_paginator_11_Template","_paginatorLeftTemplate","_paginatorRightTemplate","Table_div_12_ng_container_1_Template","Table_div_12_Template","summaryTemplate","_summaryTemplate","Table_div_13_Template","Table_span_14_ArrowDownIcon_2_Template","Table_span_14_3_ng_template_0_Template","Table_span_14_3_Template","Table_span_14_Template","reorderIndicatorUpIconTemplate","_reorderIndicatorUpIconTemplate","Table_span_15_ArrowUpIcon_2_Template","Table_span_15_3_ng_template_0_Template","Table_span_15_3_Template","Table_span_15_Template","reorderIndicatorDownIconTemplate","_reorderIndicatorDownIconTemplate","_c45","_c46","rowIndex","editing","frozen","_c47","rowgroup","rowspan","_c48","expanded","_c49","_c50","TableBody_ng_container_0_ng_template_1_ng_container_0_ng_container_1_Template","TableBody_ng_container_0_ng_template_1_ng_container_0_Template","rowData_r2","rowIndex_r3","ctx_r3","groupHeaderTemplate","_groupHeaderTemplate","getRowIndex","editMode","isRowEditing","TableBody_ng_container_0_ng_template_1_ng_container_1_ng_container_1_Template","TableBody_ng_container_0_ng_template_1_ng_container_1_Template","TableBody_ng_container_0_ng_template_1_ng_container_2_ng_container_1_Template","TableBody_ng_container_0_ng_template_1_ng_container_2_Template","shouldRenderRowspan","calculateRowGroupSize","TableBody_ng_container_0_ng_template_1_ng_container_3_ng_container_1_Template","TableBody_ng_container_0_ng_template_1_ng_container_3_Template","groupFooterTemplate","_groupFooterTemplate","TableBody_ng_container_0_ng_template_1_Template","rowGroupMode","shouldRenderRowGroupHeader","shouldRenderRowGroupFooter","TableBody_ng_container_0_Template","rowTrackBy","TableBody_ng_container_1_ng_template_1_ng_container_0_ng_container_1_Template","TableBody_ng_container_1_ng_template_1_ng_container_0_Template","rowData_r6","rowIndex_r7","isRowExpanded","TableBody_ng_container_1_ng_template_1_ng_container_1_ng_container_1_Template","TableBody_ng_container_1_ng_template_1_ng_container_1_Template","TableBody_ng_container_1_ng_template_1_ng_container_2_ng_container_1_Template","TableBody_ng_container_1_ng_template_1_ng_container_2_ng_container_2_ng_container_1_Template","TableBody_ng_container_1_ng_template_1_ng_container_2_ng_container_2_Template","TableBody_ng_container_1_ng_template_1_ng_container_2_Template","expandedRowTemplate","_expandedRowTemplate","TableBody_ng_container_1_ng_template_1_Template","TableBody_ng_container_1_Template","TableBody_ng_container_2_ng_template_1_ng_container_0_Template","TableBody_ng_container_2_ng_template_1_ng_container_1_ng_container_1_Template","TableBody_ng_container_2_ng_template_1_ng_container_1_Template","ctx_r7","rowData_r9","rowIndex_r10","frozenExpandedRowTemplate","_frozenExpandedRowTemplate","TableBody_ng_container_2_ng_template_1_Template","TableBody_ng_container_2_Template","TableBody_ng_container_3_ng_container_1_Template","TableBody_ng_container_3_Template","TableBody_ng_container_4_ng_container_1_Template","TableBody_ng_container_4_Template","emptyMessageTemplate","_emptyMessageTemplate","SortIcon_ng_container_0_SortAltIcon_1_Template","SortIcon_ng_container_0_SortAmountUpAltIcon_2_Template","SortIcon_ng_container_0_SortAmountDownIcon_3_Template","SortIcon_ng_container_0_Template","sortOrder","SortIcon_span_1_1_ng_template_0_Template","SortIcon_span_1_1_Template","SortIcon_span_1_Template","sortIconTemplate","_sortIconTemplate","SortIcon_span_2_Template","getBadgeValue","TableService","sortSource","selectionSource","contextMenuSource","valueSource","totalRecordsSource","columnsSource","sortSource$","selectionSource$","contextMenuSource$","valueSource$","totalRecordsSource$","columnsSource$","onSort","sortMeta","onSelectionChange","onContextMenu","onValueChange","onTotalRecordsChange","onColumnsChange","Table","frozenColumns","defaultSortOrder","sortMode","resetPageOnSort","selectionPageOnly","contextMenuSelection","contextMenuSelectionChange","contextMenuSelectionMode","metaKeySelection","rowSelectable","lazyLoadOnInit","compareSelectionBy","csvSeparator","exportFilename","globalFilterFields","filterDelay","expandedRowKeys","editingRowKeys","rowExpandMode","scrollDirection","frozenWidth","contextMenu","reorderableColumns","customSort","showInitialSortBadge","autoLayout","exportFunction","exportHeader","stateKey","stateStorage","groupRowsBy","groupRowsByOrder","responsiveLayout","_rows","_totalRecords","tableService","sortField","_sortField","_sortOrder","multiSortMeta","_multiSortMeta","_selection","virtualRowHeight","selectAll","selectAllChange","selectionChange","onRowSelect","onRowUnselect","onPage","onRowExpand","onRowCollapse","onContextMenuSelect","onColResize","onColReorder","onRowReorder","onEditInit","onEditComplete","onEditCancel","onHeaderCheckboxToggle","sortFunction","firstChange","rowsChange","onStateSave","onStateRestore","resizeHelperViewChild","reorderIndicatorUpViewChild","reorderIndicatorDownViewChild","wrapperViewChild","tableViewChild","tableHeaderViewChild","tableFooterViewChild","_templates","filteredValue","_headerGroupedTemplate","_frozenHeaderTemplate","frozenHeaderTemplate","_frozenFooterTemplate","frozenFooterTemplate","_frozenColGroupTemplate","frozenColGroupTemplate","_headerCheckboxIconTemplate","headerCheckboxIconTemplate","selectionKeys","lastResizerHelperX","reorderIconWidth","reorderIconHeight","draggedColumn","draggedRowIndex","droppedRowIndex","rowDragging","dropPosition","editingCell","editingCellData","editingCellField","editingCellRowIndex","selfClick","documentEditListener","preventSelectionSetterPropagation","_selectAll","anchorRowIndex","rangeRowIndex","filterTimeout","rowTouched","restoringSort","restoringFilter","stateRestored","columnOrderStateRestored","columnWidthsState","tableWidthState","overlaySubscription","resizeColumnElement","columnResizing","rowGroupHeaderStyleObject","UniqueComponentId","styleElement","OverlayService","FilterService","createLazyLoadMetadata","isStateful","restoreColumnWidths","restoreState","sortSingle","sortMultiple","hasFilter","_filter","restoreColumnOrder","updateSelectionKeys","saveState","_initialColWidths","resetScrollTop","ctrlKey","getSortMeta","getGroupRowsMeta","data1","data2","multisortField","multisortmeta","compareValuesOnSort","isSorted","sorted","handleRowClick","targetNode","rowData","isMultipleSelectionMode","clearSelectionRange","selectRange","isRowSelectable","metaSelection","dataKeyValue","isSingleSelectionMode","selectionIndex","findIndexInSelection","handleRowTouchEnd","handleRowRightClick","rangeStart","rangeEnd","rangeRowsData","rangeRowData","toggleRowWithRadio","toggleRowWithCheckbox","toggleRowsWithCheckbox","check","matchMode","isFilterBlank","filterGlobal","globalFilterFieldsArray","localMatch","globalMatch","localFiltered","filterField","filterMeta","meta","executeLocalFilter","operator","FilterOperator","OR","AND","FilterMatchMode","STARTS_WITH","dataFieldValue","globalFilter","forceUpdate","clearFilterValues","filterMetadata","getExportHeader","column","exportCSV","csv","selectionOnly","allValues","exportableColumns","exportable","record","cellData","blob","Blob","Uint8Array","download","URL","createObjectURL","encodeURI","scrollToVirtualIndex","updateEditingCell","bindDocumentEditListener","isEditingCellValid","unbindDocumentEditListener","initRowEdit","saveRowEdit","rowElement","cancelRowEdit","toggleRow","onColumnResizeBegin","containerLeft","changedTouches","clientX","onColumnResize","onColumnResizeEnd","newColumnWidth","nextColumnWidth","resizeTableCells","_totalTableWidth","setResizeTableWidth","widths","tableHead","onColumnDragStart","columnElement","dataTransfer","setData","onColumnDragEnter","dropHeader","containerOffset","dropHeaderOffset","columnCenter","dropEffect","onColumnDragLeave","onColumnDrop","dropColumn","dragIndex","dropIndex","allowDrop","updateStyleElement","draggable","colIndex","destroyStyleElement","createStyleElement","colWidth","onRowDragStart","onRowDragOver","rowY","rowMidY","prevRowElement","onRowDragLeave","onRowDragEnd","onRowDrop","getBlockableElement","getStorage","sessionStorage","storage","saveColumnWidths","saveColumnOrder","clearState","stateString","columnWidths","tableWidth","columnOrder","reorderedColumns","col","findColumnByKey","head","destroyResponsiveStyle","ɵTable_BaseFactory","TableBody","frozenRows","updateFrozenRowStickyPosition","updateFrozenRowGroupHeaderStickyPosition","currentRowFieldData","prevRowData","nextRowData","nextRowFieldData","groupRowSpan","tableHeaderHeight","getScrollerOption","attrs","SortableColumn","pSortableColumnDisabled","isEnabled","updateSortState","isFilterElement","isFilterElementIconOrButton","SortIcon","getMultiSortMetaIndex","isMultiSorted","TableModule","shape","SkeletonStyle","ɵSkeletonStyle_BaseFactory","Skeleton","containerStyle","ɵSkeleton_BaseFactory","SkeletonModule","PopoverStyle","ɵPopoverStyle_BaseFactory","OverlayPanel_div_0_ng_container_3_Template","OverlayPanel_div_0_Template","onContentClick","OverlayPanel","dismissable","showCloseIcon","ariaCloseLabel","focusOnShow","render","isOverlayAnimationInProgress","willHide","closeIconTemplate","destroyCallback","overlayEventListener","documentEvent","hasTargetChanged","targetElement","offsetX","offsetY","appendContainer","restoreAppend","arrowLeft","clickObservable","onContainerDestroy","focusable","onCloseClick","onEscapeKeydown","OverlayPanelModule","PipesModule","DirectivesModule","FilterArrByPropValuePipe","propName","RadioCheckboCustomColorDirective","viewRef","checkboxRef","setColors","colorCheckbox","optionsSelectedCount","searchInputValue$","FilterControlComponent_ng_container_0_ng_container_13_div_2_div_1_Template","statusModeControl_r8","controlFilterData_r6","filterLabel","index_r7","FilterControlComponent_ng_container_0_ng_container_13_div_3_div_1_Template","groupModeControl_r9","FilterControlComponent_ng_container_0_ng_container_13_div_4_div_1_Template","FilterControlComponent_ng_container_0_ng_container_13_div_5_div_1_Template","FilterControlComponent_ng_container_0_ng_container_13_div_2_Template","FilterControlComponent_ng_container_0_ng_container_13_div_3_Template","FilterControlComponent_ng_container_0_ng_container_13_div_4_Template","FilterControlComponent_ng_container_0_ng_container_13_div_5_Template","FILTER_VEHICLE_TYPE","_selectedControlValue","filterLabel_r12","index_r13","data_r11","_r14","filterLabel_r16","index_r17","data_r15","op_r2","FilterControlComponent_ng_container_0_button_4_Template","FilterControlComponent_ng_container_0_div_5_Template","onShowDropdown","FilterControlComponent_ng_container_0_div_11_Template","FilterControlComponent_ng_container_0_ng_container_13_Template","submit","clearFilters","FilterControlComponent_ng_container_0_ng_template_21_Template","FilterControlComponent_ng_container_0_ng_template_23_Template","dropdownLabel","isVisibleSearchInput","searchValuePipe","FilterControlComponent","selectedControlValue","isEqual","setControls","onSubmitFilters$","checkboxValues","onChangeSearchInputValue","checkboxValue","clearFiltersValue","clearCheckboxValues","debounceTime","FilterControlComponent_ng_container_0_Template","ReactiveFormsModule","CalculateTimeComponent","calculate","CalculateSpeedComponent","maxSpeed","ETollStatusComponent","isSentGeo","determinate","ProgressBarStyle","ɵProgressBarStyle_BaseFactory","ProgressBar_div_1_div_2_Template","ProgressBar_div_1_ng_container_3_Template","ProgressBar_div_1_Template","valueStyleClass","showValue","ProgressBar_div_2_Template","ProgressBar","ɵProgressBar_BaseFactory","ProgressBarModule","SingalStatusComponent","parameterType","calculatePercentge","scaleMax","total","FuelStatusComponent","fuelState","copyValue","isCopyActive","VehicleTextValueControlComponent","isParamValue","paramPathToDisplay","VehicleTextValueControlComponent_ng_container_1_Template","VehicleTextValueControlComponent_ng_template_2_Template","noParamValue_r3","ControlsStatusComponent_ng_container_1_ng_container_1_ng_container_1_Template","control_r2","param_r1","ControlsStatusComponent_ng_container_1_ng_container_2_ng_container_1_Template","ControlsStatusComponent_ng_container_1_ng_container_3_ng_container_1_Template","ControlsStatusComponent_ng_container_1_ng_container_4_ng_container_1_Template","ControlsStatusComponent_ng_container_1_ng_container_1_Template","ControlsStatusComponent_ng_container_1_ng_container_2_Template","ControlsStatusComponent_ng_container_1_ng_container_3_Template","ControlsStatusComponent_ng_container_1_ng_container_4_Template","ControlsStatusComponent_ng_container_2_ng_container_1_Template","hiddenControlCount","count_r6","param_r5","ControlsStatusComponent","getControls","param","filterBinaryParams","ControlsStatusComponent_ng_container_1_Template","ControlsStatusComponent_ng_container_2_Template","ControlsStatusComponent_ng_template_3_Template","LockStatusComponent","setStatus","isBlocked","LockStatusComponent_div_1_Template","HoursTimeFormatPipe","activeSlotData","DD","DW","DRd","TachoStatusFullListComponent_ng_container_3_ng_container_1_Template","TachoStatusFullListComponent_ng_container_3_ng_container_2_Template","TachoStatusFullListComponent_ng_container_3_ng_container_3_Template","TachoStatusFullListComponent_ng_container_3_ng_container_4_Template","currentStateTacho","TachoStatusFullListComponent","TC","setTachoData","isNoDriver","changeDetRef","slotData","getActiveTachoSlot","S1","S2","setActiveSlot","TachoStatusFullListComponent_mat_spinner_1_Template","TachoStatusFullListComponent_ng_container_2_Template","TachoStatusFullListComponent_ng_container_3_Template","TachoStatusFullListComponent_span_4_Template","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","defineProperties","_extends","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","off","getParentOrHost","includeCTX","_throttleTimeout","R_SPACE","toggleClass","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","includeDragEl","currentChild","Sortable","ghost","dragged","lastChild","lastElementChild","getRelativeScrollOffset","winScroller","gotSelf","elemCSS","overflowX","overflowY","isRectEqual","rect1","rect2","scrollBy","Polymer","$","jQuery","Zepto","dom","cloneNode","getChildContainingRectFromElement","ghostEl","_rect$left","_rect$top","_rect$right","_rect$bottom","animated","childRect","expando","plugins","initializeByDefault","PluginManager","mount","plugin","pluginName","pluginEvent","sortable","evt","_this","eventCanceled","eventNameGlobal","initializePlugins","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","dragEl","parentEl","nextEl","lastDownEl","cloneEl","cloneHidden","dragStarted","moved","putSortable","activeSortable","oldIndex","oldDraggableIndex","newIndex","newDraggableIndex","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","dispatchEvent","toEl","fromEl","extraEventProperties","onName","CustomEvent","createEvent","initEvent","bubbles","cancelable","pullMode","lastPutMode","allEventProperties","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","cssText","_detectDirection","elCSS","elWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","secondChildWidth","flexDirection","gridTemplateColumns","float","_prepareGroup","toFn","pull","otherGroup","originalGroup","checkPull","checkPut","revertClone","stopImmediatePropagation","nearestEmptyInsertDetectEvent","nearest","ret","threshold","emptyInsertThreshold","_detectNearestEmptySortable","touches","clientY","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","store","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","indexOfObject","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animationResetTimer","currentRect","translateX","translateY","animatingX","animatingY","forRepaintDummy","repaint","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","href","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","_saveInputCheckedState","idx","isContentEditable","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","lastElRect","childContainingRect","changed","_ghostIsFirst","firstElRect","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","targetS1Opp","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","after","moveVector","insertion","_showClone","_offMoveEvents","_offUpEvents","_globalDragOver","toArray","utils","is","dst","nextTick","cancelNextTick","detectDirection","_len","_key","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scrollCustomFn","sens","scrollSensitivity","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","onSpill","Revert","Remove","dragStart","parentSortable","AutoScrollPlugin","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","cancelThrottle","nulling","ogElemScroller","newElem","sortable_esm","sortByOrderId","orderArray","itemsArray","sortBy","InputSwitchStyle","ɵInputSwitchStyle_BaseFactory","INPUTSWITCH_VALUE_ACCESSOR","InputSwitch","ɵInputSwitch_BaseFactory","InputSwitchModule","ListFullVehicleColumnConfigComponent_button_17_ng_container_6_Template","ListFullVehicleColumnConfigComponent_button_17_ng_container_7_Template","ListFullVehicleColumnConfigComponent_button_17_ng_container_8_Template","ListFullVehicleColumnConfigComponent_button_17_ng_container_9_Template","ListFullVehicleColumnConfigComponent_button_17_ng_container_10_Template","ListFullVehicleColumnConfigComponent_button_17_ng_container_11_Template","COLUMN_ID","ListFullVehicleColumnConfigComponent","onSave$","onHide$","DEFAULT_COLUMNS_SORT","columnsSort","initList","draggableInit","restoreDefaultConfig","defaultConfig","getSortedColumns","savedConfig","columnInSavedConfig","listRef","draggedElement","ListFullVehicleColumnConfigComponent_button_17_Template","SortVehicleFullListColumnsPipe","filterHiddenCols","configColumn","onSubmitFilters","filtersStatusConfig","filtersStatusCurrentFilters","form","filtersGroupConfig","filtersGroupCurrentFilters","Tags","filtersLockConfig","filtersLockCurrentFilters","IgnitionBlockerState","ListVehicleBottomComponent_div_19_p_skeleton_1_Template","col_r7","ListVehicleBottomComponent_div_20_p_table_1_ng_template_2_th_1_p_sortIcon_2_Template","columnsWidth","sortableColumns","ListVehicleBottomComponent_div_20_p_table_1_ng_template_2_th_1_Template","columns_r8","rowData_r10","col_r11","PARAMETER_TYPE","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_1_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_2_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_3_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_4_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_5_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_6_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_7_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_8_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_9_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_10_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_11_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_12_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_13_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_14_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_15_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_16_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_17_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_ng_container_18_Template","onClickVehicle","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_td_1_Template","columns_r12","setColumnSorted","ListVehicleBottomComponent_div_20_p_table_1_ng_template_2_Template","ListVehicleBottomComponent_div_20_p_table_1_ng_template_3_Template","configListSortColumns","ListVehicleBottomComponent_div_20_p_table_1_Template","isVisibleList","_r13","prepareListToDisplayWithConfigSort","isVisibleConfigColumnPanel","ListVehicleBottomComponent","fb","translateHelperService","webAccess","driverFullNamePipe","renderer2","componentSubsc","initialY","cars","getVehicleListHeightLocalStorage","onChangePanelHeight$","filteredStatuses","filterType","statuses","vehicleName","deviceID","sentGeoID","Field","setDefaultConfigColumnsList","checkIfUserCanVisibleBlockerInfo","onChangeRoutePage","onChangeVisibleList","onChangeFiltersFormValue","onChangePanelHeight","resizeInit","setInitContainerHeight","mouseMoveSubscription","onChangeVehicleFollowSubsc","hasBlockerReadPermissionUser","goToVehicleLocation","vehicleData","getVehicleCoords","_lat","_lng","followVehicle","NavigationEnd","distinctUntilChanged","showContainer","containerRef","getVehiclesList","setPositionMapBottomControls","defaultPositionMapBottomControls","zoomControlsMapRef","mapContentRef","listHeight","getContainerListHeightPx","newMapHeight","onHideModal","handleOnSelectedTags","selectedTags","getVehicleControlNumberByGroupId","groupId","sortVehicles","aField","bField","aData","bData","SentGeoId","aLock","bLock","filterData","tagData","valueChanges","isVisibleLoader","isNumber","mouseDown$","fromEvent","resizeElement","mouseMove$","mouseUp$","startY","onChangeingPanelHeight","moveEvent","pairwise","previousY","currentY","takeUntil","currentHeight","getCurrentListWrapperHeight","listWrapper","setListHeight","setVehicleListHeightLocalStorage","setFiltersConfig","filtersStatusOptions","getGroups","TagType","addPxToHeight","ListVehicleBottomComponent_app_filter_control_9_Template","ListVehicleBottomComponent_app_filter_control_10_Template","ListVehicleBottomComponent_app_filter_control_11_Template","ListVehicleBottomComponent_div_19_Template","ListVehicleBottomComponent_div_20_Template","ListVehicleBottomComponent_app_list_full_vehicle_column_config_21_Template","MapComponent","mapContentClasses","visibleSegments","panelNavigationService","mapControlService","panelHeight","subToVisibilitySub","subToMapControlSizeChange","subToMapPanelVisibilityService","onChangeLoaderState","onAnimationFinished","isVisibleMapLoader","prevPanelHeight","isResizeTimeout","MapComponent_app_loader_map_2_Template","CloseButtonComponent","getClass","ArrowLeftButtonComponent","img","colorText","ProfileDataComponent","userInitials","isPasswordChanged","onPasswordChange","onRedirectToAccountData","menuList","onNavigateToPasswordChange","ProfileDataComponent_span_12_Template","ProfileDataComponent_div_14_Template","EyeSlashIcon","ɵEyeSlashIcon_BaseFactory","EyeIcon","ɵEyeIcon_BaseFactory","maskIcon","unmaskIcon","meterLabel","meterText","PasswordStyle","ɵPasswordStyle_BaseFactory","Password_ng_container_5_TimesIcon_1_Template","Password_ng_container_5_3_ng_template_0_Template","Password_ng_container_5_3_Template","Password_ng_container_5_Template","Password_ng_container_6_ng_container_1_EyeSlashIcon_1_Template","onMaskToggle","Password_ng_container_6_ng_container_1_span_2_1_ng_template_0_Template","Password_ng_container_6_ng_container_1_span_2_1_Template","Password_ng_container_6_ng_container_1_span_2_Template","hideIconTemplate","_hideIconTemplate","Password_ng_container_6_ng_container_1_Template","Password_ng_container_6_ng_container_2_EyeIcon_1_Template","Password_ng_container_6_ng_container_2_span_2_1_ng_template_0_Template","Password_ng_container_6_ng_container_2_span_2_1_Template","Password_ng_container_6_ng_container_2_span_2_Template","showIconTemplate","_showIconTemplate","Password_ng_container_6_ng_container_2_Template","Password_ng_container_6_Template","unmasked","Password_div_7_ng_container_2_Template","Password_div_7_ng_container_3_ng_container_1_Template","Password_div_7_ng_container_3_Template","Password_div_7_ng_template_4_Template","strengthClass","infoText","Password_div_7_ng_container_6_Template","Password_div_7_Template","content_r10","MapperPipe","mapper","Password_VALUE_ACCESSOR","promptLabel","mediumRegex","strongRegex","weakLabel","mediumLabel","strongLabel","feedback","toggleMask","mediumCheckRegExp","strongCheckRegExp","promptText","onKeyUp","testStrength","weakText","mediumText","strongText","level","inputFieldClass","PASSWORD_PROMPT","WEAK","MEDIUM","STRONG","inputType","ɵPassword_BaseFactory","PasswordModule","getErrorMessageElementId","newPasswordCtrl","getErrorMessage","newPasswordRepeatCtrl","ChangePasswordComponent","formBuilder","passwordChanged","oldPasswordIncorrectErrorCode","requiredErrorKey","weekPasswordErrorKey","passwordsNotEqualErrorKey","oldPasswordIncorrectErrorKey","fieldIsRequiredErrorMessage","passwordRequirementsErrorMessage","passwordsNotEqualErrorMessage","oldPasswordErrorMessage","oldPasswordError","oldPasswordCtrl","FormControl","Validators","compose","oldPasswordValidator","passwordsEqualValidator","createForm","subscribeToFormValueChanges","subscribeToKeyboardEnter","controlName","errorName","hasError","onSave","markAllAsTouched","updateValueAndValidity","getSetPasswordRequest","afterChangePasswordError","afterChangePassword","OldPassword","NewPassword","setErrors","oldPasswordIncorrect","emitEvent","passwordsNotEqual","arePasswordsNotEqual","notEqual","oldPassword","newPassword","newPasswordRepeat","ChangePasswordComponent_mat_error_14_Template","ChangePasswordComponent_mat_error_18_Template","dirty","pristine","AccountDataFormComponent","FormGroup","firstName","lastName","patchValue","onNavigateToMain","isAccountDataVisible","messageIntervalWidthPercent","wasPasswordChanged","onPasswordChanged","ProfileComponent_div_0_div_1_Template","ProfileComponent_div_0_div_2_Template","ProfileComponent_div_0_div_3_Template","ProfileComponent_div_0_div_4_Template","ProfileComponent_div_0_app_profile_data_5_Template","ProfileComponent_div_0_ng_container_6_Template","ProfileComponent_div_0_app_account_data_form_7_Template","isPasswordChangeVisible","ProfileComponent","onLogout","runMessageInterval","ProfileComponent_div_0_Template","HelpComponent","onKnowledgeDatabase","onRemoteHelp","isBefore","dirtyDateToCompare","dateToCompare","LinkViewModel","isAfterEndDate","isBeforeStartDate","getLinkBeginning","fullVehicles","getVehicleShortName","AddedLinkModalComponent","matDialogRef","alwaysTrans","fromTrans","toTrans","line1","line2","line3","allDataAsText","TitleCasePipe","AddedLinkModalComponent_span_16_Template","AddedLinkModalComponent_ng_template_17_Template","alwaysTemp_r3","DataSharingHttpService","getAll","linksIds","patch","linkId","nameExists","ButtonTransparentComponent","ButtonTransparentComponent_mat_icon_1_Template","ButtonTransparentComponent_mat_icon_2_Template","row_r4","selectionModel","item_r5","onSelectAll","VehiclesListComponent_ng_template_2_th_13_Template","VehiclesListComponent_ng_template_2_td_14_Template","VehiclesListComponent_ng_template_2_th_16_Template","VehiclesListComponent_ng_template_2_td_17_Template","VehiclesListComponent_ng_template_2_tr_18_Template","VehiclesListComponent_ng_template_2_tr_19_Template","VehiclesListComponent_ng_template_2_tr_20_Template","dataSource","displayedColumns","VehiclesListComponent","searchCtrl","selectedVehicles","selectionChanged","allVehicles","isSelectedAllCtrl","SelectionModel","MatTableDataSource","isSelectedAll","filterPredicate","subToSelectedVehiclesChanges","subToSearchValueChanges","loadVehicles","matchedFullVehicles","sv","VehiclesListComponent_div_1_Template","VehiclesListComponent_ng_template_2_Template","loadedTemp_r6","onRemoveAll","vehicle_r4","onRemoveVehicle","SelectedVehiclesComponent_ng_template_2_ng_template_9_div_1_span_3_Template","isViewMode","vehiclesAboveLimitCount","SelectedVehiclesComponent_ng_template_2_ng_template_9_div_1_Template","SelectedVehiclesComponent_ng_template_2_ng_template_9_span_2_Template","displayedFullVehicles","isVehiclesLimitExceeded","SelectedVehiclesComponent_ng_template_2_div_6_Template","SelectedVehiclesComponent_ng_template_2_span_8_Template","SelectedVehiclesComponent_ng_template_2_ng_template_9_Template","selectedVehiclesCount","isAnyVehicleSelected","selectedVehicles_r5","SelectedVehiclesComponent","inputVehiclesIds","vehicleLimitCount","allFullVehicles","onTouched","displayVehicles","fullVehiclesToDisplay","SelectedVehiclesComponent_div_1_Template","SelectedVehiclesComponent_ng_template_2_Template","loadedVehiclesTemp_r6","nameCtrl","LinkNameComponent","minLengthErrorKey","maxLengthErrorKey","minLengthErrorMessage","maxLengthErrorMessage","minLength","validate","NG_VALIDATORS","LinkNameComponent_mat_error_12_Template","dirtySeconds","onAlways","isAlwaysSelected","onDateRangeSelected","isDateRangeButtonSelected","startDateCtrl","endDateCtrl","LinkActivityComponent_div_8_mat_error_6_Template","LinkActivityComponent_div_8_ng_template_11_Template","LinkActivityComponent_div_8_mat_error_17_Template","LinkActivityComponent_div_8_ng_template_22_Template","startDatePicker_r4","pickerEndDate_r5","LinkActivityComponent","dateChanged","startDateAfterEndDateErrorKey","endDateBeforeStartDateErrorKey","endOfNextDay","isAlwaysButtonVisible","isDateRangeButtonVisible","startDateAfterEndDateMessage","endDateBeforeStartDateMessage","startDateAfterEndDateValidator","endDateBeforeStartDateValidator","subToFormsValueChanges","emitDateRangeDateChanged","setViewMode","dateRangeModel","isAlways","readonlyDateRange","newDate","onStartDateChanged","onEndDateChanged","onlySelf","startDateAfterEndDate","endDateBeforeStartDate","LinkActivityComponent_div_6_Template","LinkActivityComponent_div_7_Template","LinkActivityComponent_div_8_Template","onVehiclesSelected","vehiclesCtrl","formError","LinkViewComponent_div_11_div_1_Template","onCancel","isFormValid","LinkViewComponent","inputLinkViewModel","createNewLinkTrans","dataSharingHttpService","linkAdded","fullSelectedVehicles","isAlwaysValid","noWorkerErrorMessage","nameAlreadyUsed","initViewMode","onBackToList","onDateRangeChanged","newDateRange","beforeSave","onSaveError","saveLink","newLink","getNewDataSharingLink","savedLink","toISOString","existingLinkDateRange","LinkViewComponent_dsm_vehicles_list_6_Template","LinkViewComponent_dsm_link_name_8_Template","LinkViewComponent_div_11_Template","model_r1","ConfirmLinksRemovalModalComponent","models","questionTrans","ConfirmLinksRemovalModalComponent_div_5_Template","MatTableHelperService","isAllSelected","selectionModelLength","filteredDataLength","isAllChecked","isIndeterminateChecked","item_r6","LinksListTableComponent_td_11_span_6_ng_container_1_Template","LinksListTableComponent_td_11_span_6_ng_template_2_Template","alwaysTemp_r7","LinksListTableComponent_td_11_span_6_Template","activeTranslation","inactiveTranslation","item_r9","vehicle_r8","LinksListTableComponent_td_14_ng_template_3_span_0_Template","showVehiclesCount","LinksListTableComponent_td_14_div_2_Template","LinksListTableComponent_td_14_ng_template_3_Template","LinksListTableComponent_td_14_span_5_Template","isFullVehiclesLoading","vehiclesTemp_r10","_r11","item_r12","onOpenLink","row_r14","onRowSelected","LinksListTableComponent_tr_20_span_3_Template","LinksListTableComponent_tr_20_ng_template_4_Template","noDataTemp_r15","LinksListTableComponent","setMatSort","matSort","isRemoveActive","selectedLength","matTableHelperService","viewLink","reloadList","sortData","setLinksVehicles","linkViewModel","selectedRow","afterClosed","lv","comparatorResult","sortEndDate","MatSort","LinksListTableComponent_th_4_Template","LinksListTableComponent_td_5_Template","LinksListTableComponent_th_7_Template","LinksListTableComponent_td_8_Template","LinksListTableComponent_th_10_Template","LinksListTableComponent_td_11_Template","LinksListTableComponent_th_13_Template","LinksListTableComponent_td_14_Template","LinksListTableComponent_th_16_Template","LinksListTableComponent_td_17_Template","LinksListTableComponent_tr_18_Template","LinksListTableComponent_tr_19_Template","LinksListTableComponent_tr_20_Template","SearchInputComponent","searchChanged","onAddLink","onSearchChanged","onViewLink","onReloadList","onLinkAdded","linkToView","LinksListComponent","isListVisible","isAddLinkVisible","loadLinks","links","LinksListComponent_ng_container_0_Template","LinksListComponent_dsm_link_view_1_Template","onOpenWebsite","getSrc","IntegrationsComponent","allIntegrations","IntegrationsComponent_div_26_Template","IntegrationsComponent_div_27_Template","RootRouteComponent","RootRouteComponent_ng_template_7_Template","RootRouteComponent_ng_template_10_Template","onSetGoogleRoadmap","onSetGoogleHybrid","isGoogleMapsSelected","isGoogleSatelliteSelected","onClosePanel","onSetEmapa","MapPanelComponent_div_0_ng_container_12_Template","onSetOpenStreet","isGoogleMapsVisible","MapPanelComponent","setIsGoogleMapsVisible","isFinished","MapPanelComponent_div_0_Template","HandoverNotificationsService","filterTextChangeSubject$","filterStatusChangeSubject$","selectedVehicleChanged$","isWorkerStatementVisible$","selectedHandoverChanged$","handoverImagesLoaded$","FilterType","All","Available","Given","GetHandoverResponseMapper","mapToHandoverModel","isGiven","driverFullName","WN","WS","WP","statement","WST","isCreatedOnDesktop","BG","QR","HE","setClientData","givenRaw","givenId","HID","returnRaw","returnId","mapRawHandoverToHandoverModel","setAllImagesCount","clientData","rawHandover","uniqueNumber","NR","place","PL","DA","createDate","DAC","workerIdNumber","WC","NM","FL","mileage","OV","equipmentItems","EQ","NA","transferringPerson","SS","setGeneralSection","setDamagesSection","setCommentsSection","setSignatureSection","section","PG","TP","HandoverGalleryType","comment","comments","IMG","DS","imageUrls","PIC","getImageSrc","ESI","damage","damages","general","signature","driverSignatureUrl","handoverId","imageId","allImagesCount","GetVehicleResponseMapper","mapToVehicleListItem","isAvailable","GetVehicleHandoversResponseMapper","mapToHandoverListItem","givenItem","setHandoverItemCommonData","isReturn","HD","tokenQR","returnItem","handoverReturnId","handoverGivenId","HandoverHttpService","getHandoverResponseMapper","getVehicleResponseMapper","getVehicleHandoversResponseMapper","getVehicleHandovers","getStatement","setStatement","getHandover","mapGiven","getHandoverByToken","VehicleItemComponent","VehicleItemComponent_div_7_Template","VehicleItemComponent_ng_template_8_Template","noEmailTemp_r2","vehicle_r2","isItemSelected","VehiclesListComponent_ng_template_1_cdk_virtual_scroll_viewport_0_div_1_Template","filteredVehicles","VehiclesListComponent_ng_template_1_ng_template_1_div_0_Template","VehiclesListComponent_ng_template_1_cdk_virtual_scroll_viewport_0_Template","VehiclesListComponent_ng_template_1_ng_template_1_Template","emptyListTemp_r4","handoverHttpService","handoverNotificationsService","filterText","filterStatus","vehiclesIds","subToFilterChanged","getVehiclesSubsc","getHandoversVehicle","setVehiclesNames","setVehiclesDrivers","selectedVehicleId","filterList","textFilter","statusFilter","VehiclesListComponent_div_0_Template","VehiclesListComponent_ng_template_1_Template","loadedTemp_r5","VehiclesFilterComponent","statues","isFilterSelected","onFilterSelected","onClean","HandoverLimitedAccessModalComponent","onContact","HandoversListItemComponent","handover_r2","VehicleHandoversListComponent","selectedVehicle","handovers","VehicleHandoversListComponent_div_7_Template","SecureImagePipe","sanitizer","responseType","bypassSecurityTrustUrl","ImageModalComponent","imageUrl","domSanitizer","imageAsBase64","onImageLoaded","image_r3","openImage","HandoverSectionComponent_div_4_img_1_Template","images","HandoverSectionComponent","isImagesVisible","HandoverSectionComponent_div_1_Template","HandoverSectionComponent_ng_template_2_Template","HandoverSectionComponent_div_4_Template","descTemp_r4","item_r1","HandoverDamagesComponent_ng_template_5_handoverm_handover_section_0_Template","HandoverDamagesComponent","HandoverDamagesComponent_div_4_Template","HandoverDamagesComponent_ng_template_5_Template","damagesTemp_r3","HandoverGeneralComponent","hasDescOrImages","HandoverGeneralComponent_div_4_Template","HandoverGeneralComponent_ng_template_5_Template","noGeneralSection_r2","comment_r1","HandoverCommentsComponent_div_4_handoverm_handover_section_1_Template","HandoverCommentsComponent","HandoverCommentsComponent_div_4_Template","HandoverCommentsComponent_ng_template_5_Template","elseTemp_r3","HandoverEquipmentComponent_div_4_mat_checkbox_1_Template","HandoverEquipmentComponent","hasEquipment","HandoverEquipmentComponent_div_4_Template","HandoverEquipmentComponent_ng_template_5_Template","noDataTemp_r3","HandoverHeaderComponent","fromOrToDriverTrans","HandoverHeaderComponent_span_11_Template","HandoverHeaderComponent_span_16_Template","HandoverHeaderComponent_span_26_Template","HandoverHeaderComponent_span_31_Template","HandoverHeaderComponent_ng_template_32_Template","noDataTemp_r2","HandoverTopLabelComponent_div_7_div_1_Template","HandoverTopLabelComponent","HandoverTopLabelComponent_div_7_Template","HandoverTopLabelComponent_ng_template_8_Template","HandoverTopLabelComponent_div_10_Template","HandoverTopLabelComponent_ng_template_11_Template","noClientDataTemp_r3","noPlaceTemp_r4","HandoverStatementComponent","hasStatement","HandoverStatementComponent_pre_3_Template","HandoverStatementComponent_ng_template_4_Template","noStatementTemp_r2","HandoverSignatureComponent","HandoverSignatureComponent_img_7_Template","HandoverBottomLabelComponent","HandoverMenuComponent","getHanoverUrl","onPrint","HandoverComponent_ng_template_1_handoverm_handover_menu_1_Template","isPrintMode","HandoverComponent","changeDetectorRef","fromDriverTrans","toDriverTrans","paramMap","getHandoverByGivenId","subToSelectedHandoverIdChanged","loadingInitialDataComponentRef","handoverModel","afterHandoverLoaded","subToHandoverImagesLoaded","print","returnAsNumber","trans","handoverListItem","HandoverComponent_div_0_Template","HandoverComponent_ng_template_1_Template","handoverTemp_r2","RightPanelComponent_ng_template_2_div_0_Template","RightPanelComponent_ng_template_2_div_1_Template","RightPanelComponent_ng_template_2_handovermod_vehicle_handovers_list_2_Template","RightPanelComponent_ng_template_2_div_3_Template","hasAnyHandovers","isSelectProtocolInfoVisible","isHandoverVisible","RightPanelComponent","subToSelectedVehicleChanged","loadHandoversForVehicle","RightPanelComponent_div_1_Template","RightPanelComponent_ng_template_2_Template","loadedTemp_r2","maxLengthRegulations","isSaving","WorkerStatementComponent","notificationService","isValidRegulationText","alert","onSuccessSaveRegulations","onGoToList","WorkerStatementComponent_div_7_Template","WorkerStatementComponent_ng_template_8_Template","WorkerStatementComponent_sm_button_transparent_14_Template","loadedTemp_r4","sendEmail","HandoverAddComponent","msgBody","emailIsSended","HandoverAddComponent_ng_container_3_Template","HandoverAddComponent_div_4_Template","onShowStatement","MainRouteComponent_div_1_span_4_Template","hasAccessToHandover","MainRouteComponent_ng_container_4_handovermod_worker_statement_1_Template","MainRouteComponent_ng_container_4_div_2_Template","MainRouteComponent_ng_container_4_handovermod_right_panel_3_Template","isStatementVisible","MainRouteComponent","setPermissions","MainRouteComponent_div_1_Template","MainRouteComponent_app_handover_add_3_Template","MainRouteComponent_ng_container_4_Template","AreaPanelViewMode","List","Form","AreaTypeEnum","Polygon","Circle","Line","Default","CircleOrigin","CircleRadiusInit","CircleRadius","CircleDone","PolygonFirstVertex","PolygonSecondVertexInit","PolygonSecondVertex","PolygonDone","LineFirstPoint","LineSecondPointInit","LineSecondPoint","LineDone","CreatorMarker","AreaDrawerService","drawnArea$","drawnAreaSubject","areaDrawerState","$zone","selectedAreaSubject","drawingDoneSubject","IS_SLIDER_FIXED","CIRCLE_DEFAULT_THICKNESS","LINE_DEFAULT_THICKNESS","POLYGON_DEFAULT_THICKNESS","AREA_COLOR","AREA_COLOR_OPACITY","onClickEditTooltipArea$","onClickDeleteTooltipArea$","customPopupArea","square","areaData","onClickEditSubsc","onClickDeleteSubsc","mouseMoveSubsc","onClickEdit","onClickDelete","bindPopup","customPopupStructureHTML","htmlElementUnderMouse","animVal","closePopup","openPopup","getPopup","creatorMovementHandler","mouse","creator","getCreatorMarker","addLayer","creatorClickHandler","addVertexToArea","setArea","inEdition","nothing","removeCreatorEventHandlers","Coords","pointOnCircle","pointLat_","pointLon_","convertToLatLng","originPro","eventPro","yDiff","distance","pointPro","_point","unproject","v1","v2","v3","v4","addCreatorEventHandlers","dragging","DomUtil","getContainer","Cl","drawCircle","drawPolygon","drawLine","enable","fitBoundsToVisibleArea","calculateProperPoint","asin","cos","atan2","aLat","aLng","bLat","bLng","_cLat","cLat","cLng","getWeightInPixels","circle","fillOpacity","pointForMarker","properpoint","mousemoveSlider","originLng","newLat","newLng","_origin","_pointOnCircle","_radius","setRadius","bindEventsToShape","dashArray","polygon","convertToLatLngs","buildMarkers","line","Polyline","Th","bindEditPopupTo","getAreaEditPopupHtml","DomEvent","addListener","_latLng","getTooltip","removeListener","latLngs","mousemove","moveShape","mousePrev","latDiff","lngDiff","setLatLngs","unbindTooltip","bindTooltip","bindDeletePointPopupTo","bindEventsToMarker","moveMarker","lastMouseDown","getDeletePointPopupHtml","removeVertexFromArea","segment","getClosestAreaSegment","segmentPro","orthoPro","LineUtil","closestPointOnSegment","ortho","isNearAreaVertex","segments","segmentsPro","closestAPro","closestBPro","closestA","closestB","distB","verticesPro","vertexPro","arePointsNear","p1","p2","limitRadius","vertex","fresh","showArea","AreaService","areaListSubject","getAreaList$","findArea$","getAreaDetails$","objectToModel","notifyDrawingChanges$","prepareAreaDetails$","deleteAreaDetails$","saveAreaDetails$","areaType","AreaName","AreaPoints","AreaTags","Tg","AreaThickness","AreaType","Color","AreaId","_area","AccordionStyle","ɵAccordionStyle_BaseFactory","AccordionHeader_Conditional_1_0_ng_template_0_Template","AccordionHeader_Conditional_1_0_Template","AccordionHeader_Conditional_1_Template","toggleicon","AccordionHeader_Conditional_2_ng_container_0_span_1_Template","pcAccordion","collapseIcon","AccordionHeader_Conditional_2_ng_container_0_ChevronDownIcon_2_Template","AccordionHeader_Conditional_2_ng_container_0_Template","AccordionHeader_Conditional_2_ng_container_1_span_1_Template","expandIcon","AccordionHeader_Conditional_2_ng_container_1_ChevronUpIcon_2_Template","AccordionHeader_Conditional_2_ng_container_1_Template","AccordionHeader_Conditional_2_Template","transitionParams","AccordionTab_Conditional_1_Template","AccordionTab_Conditional_2_Conditional_0_ng_container_0_Template","AccordionTab_Conditional_2_Conditional_0_Template","AccordionTab_Conditional_2_Conditional_1_Template","AccordionTab_Conditional_2_Template","headerFacet","AccordionTab_Conditional_3_0_ng_template_0_Template","AccordionTab_Conditional_3_0_Template","AccordionTab_Conditional_3_Template","AccordionTab_Conditional_4_ng_container_0_span_1_Template","AccordionTab_Conditional_4_ng_container_0_ChevronDownIcon_2_Template","AccordionTab_Conditional_4_ng_container_0_Template","AccordionTab_Conditional_4_ng_container_1_span_1_Template","AccordionTab_Conditional_4_ng_container_1_ChevronUpIcon_2_Template","AccordionTab_Conditional_4_ng_container_1_Template","AccordionTab_Conditional_4_Template","AccordionTab_ng_container_8_ng_container_1_Template","AccordionTab_ng_container_8_Template","AccordionPanel","Accordion","valueEquals","ɵAccordionPanel_BaseFactory","AccordionHeader","pcAccordionPanel","ariaControls","changeActiveValue","onKeydown","arrowDownKey","arrowUpKey","findPanel","headerElement","findHeader","panelElement","findNextPanel","selfCheck","findPrevPanel","findFirstPanel","firstElementChild","findLastPanel","changeFocusedPanel","nextPanel","prevPanel","firstPanel","lastPanel","ɵAccordionHeader_BaseFactory","AccordionContent","ariaLabelledby","ɵAccordionContent_BaseFactory","transitionOptions","AccordionTab","tabStyleClass","tabStyle","headerStyle","headerStyleClass","_selected","loaded","headerAriaLevel","selectedChange","findTabIndex","onOpen","updateActiveIndex","getTabHeaderActionId","tabId","getTabContentId","ɵAccordionTab_BaseFactory","Header","activeIndex","_activeIndex","preventActiveIndexPropagation","updateSelectionState","activeIndexChange","_headerAriaLevel","tabListSubscription","onTabArrowDownKey","onTabArrowUpKey","onTabHomeKey","onTabEndKey","nextHeaderAction","findNextHeaderAction","changeFocusedTab","prevHeaderAction","findPrevHeaderAction","firstHeaderAction","findFirstHeaderAction","tabElement","findLastHeaderAction","lastHeaderAction","initTabs","isTabActive","getTabProp","ɵAccordion_BaseFactory","AccordionModule","ProgressSpinnerStyle","ɵProgressSpinnerStyle_BaseFactory","ProgressSpinner","strokeWidth","animationDuration","ɵProgressSpinner_BaseFactory","ProgressSpinnerModule","AreaTypeImgPipe","AreaItemListComponent","onClick$","onClickName$","onEdit$","onDelete$","onTouch","AreasListComponent_ng_container_17_p_skeleton_2_Template","index_r6","accordion_r2","onToggleAccordion","AreasListComponent_div_18_p_accordion_panel_3_ng_template_2_Conditional_1_Template","AreasListComponent_div_18_p_accordion_panel_3_ng_template_2_Conditional_2_Template","active_r7","area_r11","item_r8","onChangeCheckedStateArea","onEditArea","areaIndex_r12","deleteAreaInGroup","isChecked","AreasListComponent_div_18_p_accordion_panel_3_ng_container_11_app_area_item_list_1_Template","trackByAreas","AreasListComponent_div_18_p_accordion_panel_3_ng_template_2_Template","AreasListComponent_div_18_p_accordion_panel_3_p_progressSpinner_5_Template","ctx_r8","onToggleAllGroupAreasInMap","AreasListComponent_div_18_p_accordion_panel_3_ng_container_11_Template","isLoadingAreas","area_r14","onChangeCheckedStateUntaggedArea","deleteUntaggedArea","AreasListComponent_div_18_p_accordion_panel_3_Template","AreasListComponent_div_18_app_area_item_list_5_Template","activeGroups","trackByGroups","untaggedAreas","AreasListComponent","areaDrawerService","areaService","addArea$","close$","isLoadingGroups","areasInMapActiveIds","numberOfMarkedAreasOnTheMap","onChangeSearchValue$","MAX_SELECTED_AREAS_IN_MAP","getListData","onChangeSearchValue","onClickEditOnTooltip","onClickDeleteOnTooltip","groupsIds","groupData","indexArea","removeUntaggedAreaFromMap","deleteUntaggedAreaFromList","deleteArea","areaIndex","removeAreaFromMap","deleteAreaFromGroupList","areaIndexInGroup","onClickClose","clearAllAreasFromMap","addOneNumberMarkedAreas","removeOneNumberMarkedAreas","isErrorMax500AreasVisible","withOutRemove","areaMapLayerRef","withOutCenter","isUntaggedArea","addUntaggedNewAreaRefToList","addNewAreaRefToList","layerMapRef","removeAllAreaRefs","removeAllAreasSelectedGroup","groupAreasRef","areasGroup","areaRefIndex","showAreas","getGroupDataByIndex","showAllAreasGroupInMap","removeAreaFromUntagged","C","setLoadingAreasStateForGroup","getAreasGroup","accordionRef","indexGroup","addActiveGroup","reject","setAreasInGroup","setAreaCoords","coord","setAreaTp","getTags","getUntaggedAreas","forkJoin","setTags","setUntaggedAreas","AreasListComponent_div_15_Template","AreasListComponent_div_16_Template","AreasListComponent_ng_container_17_Template","AreasListComponent_div_18_Template","AREA_COORDS_VALIDATOR","invalid_area_coords","TimesCircleIcon","ɵTimesCircleIcon_BaseFactory","ChipStyle","ɵChipStyle_BaseFactory","Chip_img_1_Template","imageError","alt","Chip_ng_template_2_span_0_Template","Chip_ng_template_2_Template","Chip_div_4_Template","Chip_ng_container_5_ng_container_1_span_1_Template","removeAriaLabel","Chip_ng_container_5_ng_container_1_TimesCircleIcon_2_Template","Chip_ng_container_5_ng_container_1_Template","Chip_ng_container_5_span_2_1_ng_template_0_Template","Chip_ng_container_5_span_2_1_Template","Chip_ng_container_5_span_2_Template","removeIconTemplate","_removeIconTemplate","Chip_ng_container_5_Template","Chip","removable","onImageError","removeLabel","chipProps","_chipProps","ɵChip_BaseFactory","iconTemplate_r6","labelContainer","defaultLabel","chipItem","pcChip","chipIcon","pcFilterContainer","MultiSelectStyle","ɵMultiSelectStyle_BaseFactory","MultiSelectItem_ng_container_2_ng_template_1_0_ng_template_0_Template","MultiSelectItem_ng_container_2_ng_template_1_0_Template","MultiSelectItem_ng_container_2_ng_template_1_Template","klass_r1","itemCheckboxIconTemplate","MultiSelectItem_ng_container_2_Template","MultiSelectItem_span_3_Template","MultiSelectItem_ng_container_4_Template","removeChip","partialSelected","MultiSelect_ng_container_5_ng_container_1_Template","MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_ng_container_0_span_1_ng_container_1_Template","MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_ng_container_0_span_1_Template","item_r4","chipIconTemplate","_chipIconTemplate","removeTokenIconTemplate","_removeTokenIconTemplate","MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_ng_container_0_Template","MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_Template","MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_Template","MultiSelect_ng_container_5_ng_container_2_div_1_Template","getLabelByValue","MultiSelect_ng_container_5_ng_container_2_ng_container_2_Template","MultiSelect_ng_container_5_ng_container_2_Template","chipSelectedItems","MultiSelect_ng_container_5_Template","MultiSelect_ng_container_6_Template","MultiSelect_ng_container_7_TimesIcon_1_Template","MultiSelect_ng_container_7_span_2_1_ng_template_0_Template","MultiSelect_ng_container_7_span_2_1_Template","MultiSelect_ng_container_7_span_2_Template","MultiSelect_ng_container_7_Template","MultiSelect_ng_container_9_ng_container_1_ng_container_1_Template","MultiSelect_ng_container_9_ng_container_1_Template","MultiSelect_ng_container_9_ng_container_2_span_1_Template","MultiSelect_ng_container_9_ng_container_2_span_2_Template","MultiSelect_ng_container_9_ng_container_2_Template","MultiSelect_ng_container_9_Template","MultiSelect_ng_template_10_ng_container_0_span_1_Template","MultiSelect_ng_template_10_ng_container_0_ChevronDownIcon_2_Template","MultiSelect_ng_template_10_ng_container_0_Template","MultiSelect_ng_template_10_span_1_1_ng_template_0_Template","MultiSelect_ng_template_10_span_1_1_Template","MultiSelect_ng_template_10_span_1_Template","MultiSelect_ng_template_10_Template","MultiSelect_ng_template_14_ng_container_3_Template","MultiSelect_ng_template_14_div_4_ng_container_2_ng_container_1_Template","MultiSelect_ng_template_14_div_4_ng_container_2_Template","MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_ng_template_2_CheckIcon_0_Template","klass_r10","MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_ng_template_2_1_ng_template_0_Template","MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_ng_template_2_1_Template","MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_ng_template_2_Template","allSelected","MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_Template","onToggleAll","MultiSelect_ng_template_14_div_4_ng_template_3_div_1_SearchIcon_5_Template","MultiSelect_ng_template_14_div_4_ng_template_3_div_1_span_6_1_ng_template_0_Template","MultiSelect_ng_template_14_div_4_ng_template_3_div_1_span_6_1_Template","MultiSelect_ng_template_14_div_4_ng_template_3_div_1_span_6_Template","MultiSelect_ng_template_14_div_4_ng_template_3_div_1_Template","filterPlaceHolder","MultiSelect_ng_template_14_div_4_ng_template_3_Template","showToggleAll","selectionLimit","MultiSelect_ng_template_14_div_4_Template","builtInFilterElement_r12","MultiSelect_ng_template_14_p_scroller_6_ng_template_2_ng_container_0_Template","MultiSelect_ng_template_14_p_scroller_6_ng_template_2_Template","items_r14","scrollerOptions_r15","buildInItems_r16","MultiSelect_ng_template_14_p_scroller_6_ng_container_4_ng_template_1_ng_container_0_Template","MultiSelect_ng_template_14_p_scroller_6_ng_container_4_ng_template_1_Template","scrollerOptions_r17","MultiSelect_ng_template_14_p_scroller_6_ng_container_4_Template","MultiSelect_ng_template_14_p_scroller_6_Template","MultiSelect_ng_template_14_ng_container_7_ng_container_1_Template","MultiSelect_ng_template_14_ng_container_7_Template","MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_0_span_2_Template","option_r18","MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_0_ng_container_3_Template","MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_0_Template","ctx_r18","scrollerOptions_r21","MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_1_Template","checkIconTemplate","_checkIconTemplate","_itemCheckboxIconTemplate","MultiSelect_ng_template_14_ng_template_8_ng_template_2_Template","MultiSelect_ng_template_14_ng_template_8_li_3_Conditional_1_Template","MultiSelect_ng_template_14_ng_template_8_li_3_Conditional_2_ng_container_0_Template","MultiSelect_ng_template_14_ng_template_8_li_3_Conditional_2_Template","MultiSelect_ng_template_14_ng_template_8_li_3_Template","MultiSelect_ng_template_14_ng_template_8_li_4_Conditional_1_Template","MultiSelect_ng_template_14_ng_template_8_li_4_Conditional_2_ng_container_0_Template","MultiSelect_ng_template_14_ng_template_8_li_4_Conditional_2_Template","MultiSelect_ng_template_14_ng_template_8_li_4_Template","MultiSelect_ng_template_14_ng_template_8_Template","items_r23","MultiSelect_ng_template_14_div_10_ng_container_2_Template","MultiSelect_ng_template_14_div_10_Template","MultiSelect_ng_template_14_Template","showHeader","footerFacet","MULTISELECT_VALUE_ACCESSOR","MultiSelect","MultiSelectItem","ɵMultiSelectItem_BaseFactory","displaySelectedLabel","_displaySelectedLabel","maxSelectedLabels","_maxSelectedLabels","selectedItemsLabel","_defaultLabel","onPanelShow","onPanelHide","onSelectAllChange","filterInputChild","headerCheckboxViewChild","_selectionLimit","_disableTooltip","_filteredOptions","valuesAsString","selectedItemsTemplate","_selectedItemsTemplate","headerCheckboxFocus","preventDocumentDefault","startRangeIndex","selectedOptions","clickInProgress","labelClass","toggleAllAriaLabel","closeAriaLabel","isArrayOfObjects","getSelectedItemsLabel","maxSelectionLimitReached","itemValue","onOptionSelectRange","findNearestSelectedOptionIndex","firstCheckUp","findPrevSelectedOptionIndex","findNextSelectedOptionIndex","findFirstSelectedOptionIndex","matchedOption","SELECTION_MESSAGE","onShiftKey","onHeaderCheckboxKeyDown","onHeaderCheckboxFocus","onHeaderCheckboxBlur","optionValues","labelContainerMouseLeave","removed","findNextItem","nextItem","findPrevItem","prevItem","findLastSelectedOptionIndex","activateFilter","filteredGroups","optgroup","filteredSubOptions","Footer","tmp_15_0","elseBlock_r24","MultiSelectModule","colorSelector","colorBackground","colorHandle","hue","hueHandle","ColorPickerStyle","ɵColorPickerStyle_BaseFactory","ColorPicker_input_2_Template","inputBgColor","ColorPicker_div_3_Template","onOverlayAnimationEnd","onColorDragStart","onDrag","onDragEnd","onColorMousedown","onHueMousedown","onHueDragStart","COLORPICKER_VALUE_ACCESSOR","ColorPicker","shown","defaultColor","documentMousemoveListener","documentMouseupListener","documentHueMoveListener","colorDragging","hueDragging","colorSelectorViewChild","colorHandleViewChild","hueViewChild","hueHandleViewChild","SELECT_COLOR","bindDocumentMousemoveListener","bindDocumentMouseupListener","pickHue","pickColor","validateHSB","updateColorSelector","getValueToUpdate","unbindDocumentMousemoveListener","unbindDocumentMouseupListener","saturation","brightness","HSBtoHEX","HSBtoRGB","HEXtoHSB","RGBtoHSB","hsb","backgroundColor","togglePanel","validateRGB","rgb","validateHEX","hex","HEXtoRGB","hexValue","t1","t2","t3","RGBtoHEX","ColorPickerModule","AreaFormComponent_ng_container_11_span_4_Template","setAreaType","touched","addNewGroup","removeGroup","AreaFormComponent","areaDrawer","back$","onSelectAreaType$","isLoadingTags","selectedGroups","MINIMAL_THICKNESS_IN_METERS","defaultAreaColor","onChangeDrawnArea","showEditAreaInMap","drawArea","AreaDrawerState","multiSelectFilterValue","addNewGroupToList","multiSelectGroupsRef","newGroup","onFilterTags","isErrorVisible","saveArea","onChangeSelectedTagsValue","isSavingForm","onSuccessSaveArea","onErrorSaveArea","markAsDirty","LastUsed","Index","selectGroupsOnInit","isEditMode","selectedGroupsName","groupsToSelected","AreaFormComponent_ng_container_11_Template","AreaFormComponent_span_15_Template","AreaFormComponent_ng_template_24_Template","AreaFormComponent_ng_template_25_Template","AreaFormComponent_div_27_Template","onClickAddArea","onClickBackInForm","onSelectAreaType","editArea","AreasComponent_ng_container_1_app_areas_list_1_Template","AreasComponent_ng_container_1_app_area_form_2_Template","activeViewMode","AreasComponent","_isVisible","areaListComp","selectedAreaTypeInForm","AreasComponent_ng_container_1_Template","AreasComponent_div_2_Template","DigitalDisplayDirective","convertToDigitalDisplay","innerText","AdFuelSavingComponent","AdTypicalUiComponent","AD_TYPE","AdTypicalUiComponent_ng_container_2_Template","AdTypicalUiComponent_ng_container_3_Template","AdTypicalUiComponent_ng_container_4_Template","AdTypicalUiComponent_ng_container_5_Template","AdTypicalUiComponent_ng_container_6_Template","AdTypicalUiComponent_ng_container_7_Template","AdTypicalUiComponent_ng_container_8_Template","NewsRssService","rssUrl","posts","itemsPerPage","fetchPosts","parseXML","xml","DOMParser","parseFromString","stripHtml","extractImage","pubDate","div","getPostsByPage","paginatedPosts","getTotalPages","NewsComponent_ng_container_1_div_9_Template","loadPage","trackByPosts","totalPages","NewsComponent","newsRssService","NewsComponent_ng_container_1_Template","DropdownHoverDirective","showDropdown","hideDropdown","findDropdown","dropdownVisible","DropdownMenuComponent","setOptions","bypassSecurityTrustHtml","TabMenuStyle","ɵTabMenuStyle_BaseFactory","exact","TabMenu_button_2_ChevronLeftIcon_2_Template","TabMenu_button_2_3_ng_template_0_Template","TabMenu_button_2_3_Template","TabMenu_button_2_Template","TabMenu_li_7_a_2_span_3_Template","iconStyle","TabMenu_li_7_a_2_span_4_Template","getItemProp","TabMenu_li_7_a_2_ng_template_5_Template","TabMenu_li_7_a_2_p_badge_7_Template","badgeStyleClass","TabMenu_li_7_a_2_Template","htmlLabel_r8","TabMenu_li_7_a_3_span_3_Template","TabMenu_li_7_a_3_span_4_Template","TabMenu_li_7_a_3_ng_template_5_Template","TabMenu_li_7_a_3_p_badge_7_Template","TabMenu_li_7_a_3_Template","htmlRouteLabel_r9","routerLink","routerLinkActiveOptions","fragment","queryParamsHandling","preserveFragment","skipLocationChange","replaceUrl","TabMenu_li_7_ng_container_4_Template","TabMenu_li_7_Template","itemClick","i_r7","onKeydownItem","onMenuItemFocus","focusedItemInfo","TabMenu_button_10_ChevronRightIcon_2_Template","TabMenu_button_10_3_ng_template_0_Template","TabMenu_button_10_3_Template","TabMenu_button_10_Template","TabMenu","_model","_focusableItems","activeItem","_activeItem","activeItemChange","tabChanged","navbar","inkbar","prevBtn","nextBtn","tabLink","backwardIsDisabled","forwardIsDisabled","timerIdForInitialAutoScroll","Router","ActivatedRoute","focusableItems","updateInkBar","initAutoScrollForActiveItem","initButtonState","clearAutoScrollHandler","createUrlTree","relativeTo","foundElement","onTabKeyDown","tabLinks","tabHeader","getVisibleButtonWidths","updateButtonState","updateScrollBar","lastPos","menuItem","RouterModule","TabMenuModule","WorkerHttpService","worker","Worker","WorkerId","update","archive","listOfWorkerToArchive","IdsToArchive","unarchive","getArchivedWorkers","ArchivedWorkers","ViewWorkers","Active","Archive","WorkerService","workerHttpService","archivedDrivers","allWorkers","archivedWorkerSubject","unArchivedWorkerSubject","workerAddedSubject","workerUpdatedSubject","workerDetailsPanelClosedSub$","getAllFilteredList","lastFilteredWorkersSnapshot","pagination","listData","pageIndex","filterWorkersList","totalRecordsInList","lowerCaseSearchTerm","Em","CN","archiveWorkers","listWorkersToArchive","archivedWorkersIds","restoreWorkers","listOfWorkersToRestore","restoreWorkersIds","requests","addNewWorkerTolist","updateWorker","indexInList","XLSX","current_codepage","current_ansi","VALID_ANSI","CS2CP","set_ansi","cp","set_cp","$cptable","_getchar","_getansi","DENSE","Base64_map","Base64_encode","c1","c2","c3","e1","e2","e3","e4","Base64_decode","has_buf","versions","Buffer_from","nbfs","buf","enc","new_raw_buf","alloc","new_unsafe_buf","allocUnsafe","s2a","s2ab","ArrayBuffer","a2s","bconcat","bufs","maxlen","chr0","chr1","_strrev","pad0","pad_","rpad_","p2_32","pad0r","pad0r1","pad0r2","SSF_isgeneral","table_fmt","SSF_default_map","SSF_default_str","SSF_frac","mixed","sgn","P_2","P_1","Q_2","Q_1","A","SSF_parse_date_code","b2","dow","dout","out","date1904","SSF_fix_hijri","SSFbasedate","SSFdnthresh","SSFbase1904","datenum_local","epoch","SSF_strip_decimal","SSF_general","SSF_general_num","LOG10E","toPrecision","SSF_small_exp","toFixed","toExponential","SSF_large_exp","SSF_normalize_exp","SSF_format","SSF_write_date","fmt","ss0","ss","tt","outl","commaify","pct1","write_num_exp","period","ee","fakee","$$","$1","$2","$3","frac1","dec1","closeparen","hashq","cc","rnd","dd","dec","_frac","write_num_flt","ffmt","write_num_cm","write_num","write_num_pct","sfmt","mul","ri","ff","aval","write_num_f1","den","rr","myn","myd","carry","oa","lres","rres","flr","write_num_exp2","write_num_int","write_num_cm2","write_num_pct2","write_num_f2","SSF_abstime","fmt_is_date","cfregex2","chkcond","thresh","dateNF","choose_fmt","SSF_split_fmt","in_str","m1","m2","eval_fmt","flen","lst","hr","ssm","bt","jj","nstr","myv","ostr","vv","decpt","lasti","retval","SSF_load","SSF_load_table","tbl","make_ssf","SSF_init_table","dateNFregex","CRC32","T0","signed_crc_table","Int32Array","TT","slice_by_16_tables","subarray","T1","T2","T3","T4","T5","T6","T7","T8","T9","Ta","Tb","Tc","Td","Te","Tf","bstr","crc32_bstr","seed","crc32_buf","crc32_str","CFB","fs","exports","dirname","filename","write_dos_date","hms","write_shift","ymd","parse_extra_field","prep_blob","read_shift","sz","tgt","mtime","atime","ctime","mt","get_fs","parse_zip","parse_mad","di","mboundary","boundary","FileIndex","FullPaths","init_cfb","start_di","fcnt","parse_mime","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","check_get_mver","chk","HEADER_SIGNATURE","check_shifts","shift","dir_cnt","sectors","sectorify","nsectors","sleuth_fat","sector_list","make_sector_list","sl","chkd","buf_chain","modulus","addr","__readInt32LE","__toBuffer","ENDOFCHAIN","Paths","read_directory","files","mini","minifat_store","sector","namelen","__utf16le","clsid","ct","read_date","get_sector_list","get_mfat_entry","build_full_paths","FI","FP","dad","raw","payload","MSSZ","new_buf","cnt","__readUInt32LE","cfb","CLSID","seed_cfb","nm","rebuild_cfb","gc","_file","fullPaths","HEADER_CLSID","namecmp","Z","elt","_write","_opts","fileType","write_mad","fp","fi","ca","cstr","dispcnt","csl","qp","get_content_type","write_quoted_printable","write_base64_76","write_zip","cdirs","compression","start_cd","crcs","sz_cd","namebuf","outbuf","_deflateRawSync","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","DIFSECT","FATSECT","_nm","copy","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","read_bits_3","read_bits_5","read_bits_7","read_bits_n","write_bits_3","write_bits_1","write_bits_8","write_bits_16","realloc","zero_fill_array","build_tree","clens","cmap","MAX","ccode","bl_count","ctree","cleni","fix_lmap","fix_dmap","dlens","_deflateRaw","DST_LN_RE","LEN_LN_RE","write_stored","boff","write_huff_fixed","addrs","mlen","len_eb","dst_eb","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","next_code","hcodes","h1","h2","_inflate","usz","inflate","woff","OL","max_len_1","max_len_2","bits","warn_or_throw","wrn","csz","efsz","fcsz","EF","parse_local_file","meth","parse_dos_date","setMilliseconds","_csz","_usz","ef","_inflateRawSync","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","cfb_add","unsafe","ContentTypeMap","htm","gif","jpg","png","mso","thmx","sh33tj5","ctype","ext","encoded","si","fdata","fname","cte","parse_quoted_printable","oi","fpath","cfb_gc","UCFullPaths","UCPaths","UCPath","read","read_file","readFileSync","write","writeFileSync","writeFile","write_file","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","_fs","blobify","a2u","write_dl","Deno","TextEncoder","encode","utf8write","IE_SaveFile","msSaveBlob","saveAs","downloads","revokeObjectURL","File","Folder","encoding","ks","evert_key","evert","evert_num","basedate","datenum","dnthresh","refdate","refoffset","numdate","setTime","good_pd_date_1","good_pd_date","good_pd","fixdate","cc2str","debomit","utf16beread","TextDecoder","decode","dup","fuzzynum","wt","lower_months","fuzzydate","lower","zip_add_file","zip","utf8decode","widx","ridx","zip_new","XML_HEADER","rencoding","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","utf8reada","orig","utf8readb","ww","utf8readc","utf8corpus","utf8read","htmldecode","entities","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","XMLNS","CORE_PROPS","CUST_PROPS","EXT_PROPS","CT","RELS","TCMNT","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","XMLNS_main","XLMLNS","___toBuffer","___utf16le","__readUInt16LE","___hexlify","__hexlify","___utf8","__readUInt8","__utf8","___lpstr","__lpstr","___cpstr","__cpstr","___lpwstr","__lpwstr","___lpp4","__lpp4","___8lpp4","__8lpp4","___double","read_double_le","__double","is_buf","readUInt32LE","readDoubleLE","cpdoit","__readInt16LE","__readInt32BE","oI","oR","loc","oo","lens","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cppayload","write_double_le","bs","av","LN2","hexstr","fld","parsenoop","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","ba","XLSBRecordEnum","shift_cell_xls","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","unfix_row","decode_col","colstr","unfix_col","decode_cell","decode_range","encode_range","cs","ce","safe_decode_range","format_cell","BErr","safe_format_cell","XF","numFmtId","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","_R","_C","_range","__R","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","parse_BrtCommentText","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBShortCell","write_XLSBShortCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","write_RfX","parse_Xnum","write_Xnum","write_BrtColor","auto","nTS","tint","DocSummaryPIDDSI","SummaryPIDSI","rgbify","XLSIcv","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","charts","dialogs","macros","write_ct","type2ct","evert_arr","xmlns","Extension","ContentType","f1","PartName","bookType","f2","f3","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","CMNT","SST","STY","THEME","CHART","CHARTEX","DRAW","XLMETA","PEOPLE","VBA","get_rels_path","write_rels","rels","rid","add_rels","rId","relobj","targetmode","Target","TargetMode","write_rdf_type","write_rdf_has","write_meta_ods","cp_doit","write_core_props","Props","CreatedDate","WTF","ModifiedDate","PseudoPropsPairs","write_ext_props","W","Application","Worksheets","baseType","write_cust_props","write_vt","fmtid","XLMLDocPropsMap","Title","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","write_TypedPropertyValue","write_FILETIME","XLSPSSkip","guess_property_type","write_PropertySet","PIDSI","hdr","piao","pr","pio","pinfo","write_PropertySetStream","entries2","clsid2","ps0","ps1","writebool","parseuint16","writeuint16","write_Bes","parse_ShortXLUnicodeString","cch","write_XLUnicodeRichExtendedString","xlstr","otext","write_XLUnicodeString","write_HyperlinkString","write_Hyperlink","hl","hashidx","F","Pretarget","write_XLSCell","ixfe","parse_XTI","parse_Ref8U","rwFirst","rwLast","write_Ref8U","write_BOF","wb","write_BoundSheet8","hs","write_Format","b5","write_XF","ixfeP","write_HLink","ref","write_HLinkTooltip","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","dbf_to_aoa","ft","memo","vfp","l7","nrow","fpos","rlen","current_cp","codepage","hend","sheetRows","wch","_RLEN","to_workbook","dbf_to_workbook","to_sheet","from_sheet","sheet_to_dbf","aoa","sheet_to_json","hcnt","coltypes","colwidths","coldecimals","guess","_guess","hf","_f","hb","rout","_n","_s","SYLK","sylk_escapes","AA","BA","CA","HA","JA","AE","BE","CE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","Dn","Hy","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa_str","records","rj","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","rc_to_a1","shrbase","shift_formula_str","F_seen","hidden","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","sylk_to_workbook","sheet_to_sylk","preamble","RS","write_ws_cols_sylk","rec","wpx","width2px","px2char","write_ws_rows_sylk","px2pt","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","dif_to_workbook","push_field","topic","push_value","ETH","eth_to_sheet","eth_to_aoa","sep","sheet_to_eth_data","eth_to_workbook","sheet_to_eth","PRN","set_text_arr","guess_seps","guess_sep_weights","guess_sep","instr","prn_to_sheet_str","FS","dsv_to_sheet_str","sepcc","startcc","_re","dateNF_regex","finish_cell","fuzzyfmla","dateNF_fix","datestr","timestr","cellText","cellNF","outer","prn_to_aoa_str","lines","prn_to_sheet","bytes","firstbyte","prn_to_workbook","sheet_to_prn","WK_","lotushopper","Enum","WK1Enum","RT","lotus_to_workbook_buf","next_n","sidx","snames","realnames","refguess","vers","qpro","tmpcell","WK3Enum","osheets","rnames","parse_cell","parse_LABEL","write_LABEL","write_INTEGER","write_NUMBER","wk1_parse_rc","rel","FuncTab","BinOpTab","parse_cell_3","write_LABEL_16","wsidx","parse_NUMBER_17","write_NUMBER_17","log2","parse_NUMBER_27","parse_SHEETNAMECS","write_XFORMAT_SHEETNAME","parse_RANGE","parse_INTEGER","parse_NUMBER","parse_FORMULA","wk1_fmla_to_csf","argc","argL","argR","parse_SHEETNAMELP","parse_LABEL_16","parse_NUMBER_18","parse_FORMULA_19","parse_XFORMAT","parse_NUMBER_25","parse_FORMULA_28","parse_SHEETINFOQP","sheet_to_wk1","write_biff_rec","write_BOF_WK1","write_RANGE","max_R","book_to_wk3","write_BOF_WK3","wscnt","lotus_to_workbook","straywsregex","write_sst_xml","sst","bookSST","Count","uniqueCount","Unique","sitag","write_BrtSSTItem","write_RichStr","write_sst_bin","write_BrtBeginSst","crypto_CreatePasswordVerifier_Method1","PasswordArray","Verifier","PasswordDecoded","_JS2ANSI","RTF","rtf_to_sheet","rtf_to_sheet_str","rowtf","rtfre","last_index","rtf_to_workbook","sheet_to_rtf","rgb2Hex","MDW","char2width","chr","coll","customWidth","PPI","write_sty_xml","SSF","write_numFmts","NF","formatCode","write_cellXfs","cellXfs","write_BrtFmt","rev_XLSBFillPTNames","XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","patternType","write_BrtXF","write_Blxf","parse_BrtBorder","write_sty_bin","write_FMTS_bin","write_FONTS_bin","write_BrtFont","font","write_FontFlags","italic","strike","condense","bold","sss","vertAlign","underline","family","scheme","write_FILLS_bin","write_BORDERS_bin","write_BrtBorder","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","write_STYLES_bin","write_BrtStyle","xfId","builtinId","write_DXFS_bin","write_TABLESTYLES_bin","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","write_theme","Themes","themeXLSX","write_xlmeta_bin","write_BrtMdtinfo","write_BrtBeginEsfmd","write_BrtBeginEsmdb","cm","write_BrtMdb","mdb","write_xlmeta_xml","_shapeid","write_comments_vml","csize","joinstyle","gradientshapeok","coordsize","fillopts","color2","fillparm","fillxml","fillcolor","strokecolor","obscured","write_comments_xml","iauthor","lastauthor","write_tcmnt_xml","people","carr","rootid","tcopts","tcid","personId","parse_BrtCommentAuthor","write_comments_bin","write_BrtCommentAuthor","write_BrtBeginComment","write_BrtCommentText","write_StrRun","VBAFMTS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrBaxcel","bitSemi","parse_PtgAttrSpaceType","parse_SerAr","parsebool","parse_XLUnicodeString2","parse_XLUnicodeString","parse_XLUnicodeStringNoCch","fHighByte","parse_PtgExtraMem","cce","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfLel","PtgListRT","PtgTypes","parse_PtgExp","parse_PtgStr","parse_PtgSheet","parse_PtgEndSheet","parse_PtgErr","parse_PtgBool","parse_PtgInt","parse_PtgNum","parse_PtgArray","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","parsetab","Cetab","parse_PtgName","nameindex","parse_PtgRef","parse_PtgArea","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgAreaErr","parse_PtgRefN","parse_RgceLocRel","parse_RgceLocRel_BIFF2","rl","cl","parse_PtgAreaN","parse_RgceAreaRel","parse_PtgMemAreaN","parse_PtgMemNoMemN","parse_PtgNameX","parse_PtgNameX_BIFF5","ixti","parse_PtgRef3d","parse_PtgArea3d","parse_PtgRefErr3d","parse_PtgAreaErr3d","PtgDupes","Ptg18","parse_PtgList","coltype","rt","parse_PtgSxName","Ptg19","parse_PtgAttrNoop","parse_PtgAttrSemi","parse_PtgAttrIf","bitIf","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrSum","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgAttrIfError","parse_RgbExtra","rgce","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","get_ixti_raw","supbooks","XTI","SID","get_ixti","ixtiraw","formula_quote_sheet_name","sname","stringify_formula","nameidx","last_sp","sp","fflen","func","lbl","xlfn","externbook","bookidx","itab","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","parse_XLSBParsedFormula","parse_Rgce","ptgs","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","csf_to_ods_formula","csf_to_ods_3D","browser_has_Map","get_sst_id","revarr","col_obj_w","outlineLevel","default_margins","margins","get_cell_style","revssf","ssf","applyNumberFormat","check_ws","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_cell","oldt","oldv","os","Strings","revStrings","write_ws_xml","rdata","_drawing","write_ws_xml_sheetpr","needed","vbaraw","cname","Workbook","CodeName","codeName","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetviews","sview","workbookViewId","Views","rightToLeft","RTL","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","write_ws_xml_cols","write_ws_xml_data","_cell","ht","customHeight","write_ws_xml_protection","write_ws_xml_autofilter","Names","Sheet","Ref","write_ws_xml_merges","merges","relc","write_ws_xml_margins","ignoreEC","numberStoredAsText","sqref","write_row_header","write_BrtRowHdr","miyRw","ncolspan","lcs","caddr","parse_BrtWsDim","write_BrtWsDim","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","last_seen","write_BrtShortIsst","ncell","write_BrtCellIsst","write_BrtShortSt","write_BrtCellSt","write_BrtShortRk","write_BrtCellRk","write_BrtShortReal","write_BrtCellReal","write_BrtShortBool","write_BrtCellBool","write_BrtShortError","write_BrtCellError","write_BrtShortBlank","write_BrtCellBlank","write_ws_bin","write_BrtWsProp","write_WSVIEWS2","write_BrtBeginWsView","write_COLINFOS","write_BrtColInfo","write_CELLTABLE","cap","write_SHEETPROTECT","write_BrtSheetProtection","write_AUTOFILTER","write_MERGECELLS","write_BrtBeginMergeCells","write_HLINKS","write_BrtHLink","locidx","write_BrtMargins","write_IGNOREECS","write_BrtCellIgnoreEC","write_LEGACYDRAWING","WBPropsDef","badchars","check_ws_name","safe","_good","write_wb_xml","write_names","workbookPr","WBProps","Hidden","sheetId","Comment","localSheetId","write_BrtBundleSh","iTabID","strRelID","write_wb_bin","write_BrtFileVersion","write_BrtWbProp","filterPrivacy","write_BOOKVIEWS","vistab","write_BrtBookView","write_BUNDLESHS","write_ws","write_cmnt","write_name_xlml","write_ws_xlml_cell","attr","marr","mi","escapexlml","write_ws_xlml_comment","xlml_unfixstr","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","write_ws_xlml_table","skip","write_ws_xlml_wsopts","objects","scenarios","selectLockedCells","selectUnlockedCells","write_xlml","General","write_props_xlml","xlml_write_docprops","Custprops","xlml_write_custprops","BLACKLIST","write_sty_xlml","xf","write_names_xlml","PSCLSID","SI","DSI","UDI","parse_BrtRowHdr","parse_BrtCellBlank","parse_BrtCellRk","parse_BrtCellError","parse_BrtCellBool","parse_BrtCellReal","parse_BrtCellSt","parse_BrtCellIsst","parse_BrtFmlaString","cellFormula","parse_BrtFmlaNum","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtShortBlank","parse_BrtShortRk","parse_BrtShortError","parse_BrtShortBool","parse_BrtShortReal","parse_BrtShortSt","parse_BrtShortIsst","parse_BrtName","Ptg","parse_BrtFont","grbit","parse_FontFlags","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","bCharSet","parse_BrtColor","xColorType","bR","bG","bB","icv","parse_BrtFmt","parse_BrtXF","ixfeParent","ifmt","parse_Int32LE","parse_BrtMdb","parse_ColInfo","cellStyles","colFirst","colLast","coldx","parse_BrtCellRString","parse_BrtCalcChainItem$","parse_BrtDVal","parse_BrtBeginWsView","parse_BrtWsProp","parse_BrtPane","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","parse_BrtBundleSh","parse_BrtBeginSst","parse_BrtMdtinfo","parse_BrtBeginEsmdb","parse_ExternSheet","parse_BIFF5ExternSheet","parse_BrtArrFmla","rfx","fAlwaysCalc","parse_BrtShrFmla","parse_BrtMargins","parse_BrtWsFmtInfo","parse_BrtHLink","relId","parse_BrtBeginComment","parse_BrtCsProp","parse_BrtDVal14","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2INT","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff8_cell","bf","write_Formula","write_FormulaValue","o3","write_Number","write_BoolErr","write_LabelSst","write_Label","b8","write_ws_biff8","_WB","_sheet","MAX_ROWS","write_Guts","guts","write_ws_cols_biff8","write_ColInfo","write_Dimensions","write_Window2","write_MergeCells","write_ws_biff8_hlinks","HL","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","parsexmlbool","write_FONTS_biff8","write_Font","write_FMTS_biff8","write_CELLXFS_biff8","write_Country","write_biff_continue","write_SST","blen","write_biff_buf","write_biff8_buf","fix_write_opts","write_biff2_buf","write_ws_biff2","make_html_row","colspan","HTML_BEGIN","HTML_END","sheet_to_html","make_html_preamble","sheet_add_dom","or_R","or_C","midx","is_dom_element_hidden","elts","hasAttribute","Aelts","Aelti","parse_dom_table","get_computed_style","get_get_computed_style_function","write_styles_ods","master_styles","write_content_ods","write_text_p","null_cell_xml","ods","ROWS","textp","_Fref","text_p","_tgt","fods","cidx","colobj","write_automatic_styles_ods","write_ods","manifest","rdf","write_rdf","write_manifest","u8_to_dataview","DataView","buffer","byteOffset","byteLength","stru8","u8concat","u8a","u8","parse_varint49","ptr","varint","write_varint49","varint_to_i32","i32","parse_shallow","write_shallow","proto","parse_iwa_file","_a","ai","messages","fl","write_iwa_file","ias","ia","midata","aipayload","mid","parse_snappy_chunk","chunks","decompress_iwa_file","compress_iwa_file","write_new_storage","dv","writeDecimal128LE","mantissa","setFloat64","setUint32","write_old_storage","parse_TSP_Reference","write_tile_row","tri","_b","_d","last_offset","cell_storage","_dv","_last_offset","_cell_storage","celload","_celload","setUint16","fix_opts_func","write_numbers_iwa","numbers","trunc","dependents","indices","packet2","x2","indices_varint","ivi","mess","u8contains","docroot","xi","packet","sheetrootref","pb","cruidsref","oldbucket","cruids","row_header_ref","base_bucket","_bucket","col_header_ref","sstref","sstroot","sentry","sxi","sstdata","newsst","raw32","tileref","tileroot","tentry","tx","tiledata","rowload","R2","tilerow","raw3","write_zip_xlsxb","wbrels","foo","wbext","vbafmt","threadedcomments","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","_sn","_i","wsrels","need_vml","cf","rId1","write_sst","write_wb","write_sty","write_xlmeta","write_zip_xlsx","needtc","write_people_xml","person","displayName","providerId","write_cfb_ctr","write_string_type","bom","write_binary_type","writeSync","reset_cp","reset_ansi","check_wb","check_wb_names","N","cn","write_stxt_type","sheet_to_txt","sheet_to_csv","write_cfb_type","write_xlscfb","wbpath","write_xls_props","Keys","DSEntries","SEntries","CEntries","DocSummaryRE","SummaryRE","CEntries2","fill_vba_xls","newpath","write_zip_type","write_zip_denouement","oopts","ftype","nodebuffer","string","generate","encrypt_agile","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","header_cnt","skipHidden","blankrows","qreg","make_csv_row","rs","txt","forceQuotes","endregex","strip","sheet_add_json","js","skipHeader","JS","ws_get_cell_stub","RC","cell_set_hyperlink","split_cell","json_to_sheet","table_to_sheet","table_to_book","sheet_to_formulae","cmds","sheet_to_row_object_array","sheet_get_cell","book_new","book_append_sheet","roll","book_set_sheet_visibility","sh","vis","wb_sheet_idx","cell_set_number_format","cell_set_internal_link","cell_add_comment","author","sheet_set_array_formula","rng","rngstr","SHEET_VISIBLE","SHEET_HIDDEN","SHEET_VERY_HIDDEN","activeView","VIEW","onWorkersArchived","onWorkersRestore","countCheckedRow","onChangeValueCheckedAll","isCheckedAll","openWorkerForm","U","WorkersComponent_ng_template_30_ng_template_3_Template","WorkersComponent_ng_template_30_ng_template_4_Template","data_r7","WorkersComponent","workerService","tabMenu","onChangeView","activeTabOption","rowsPerPage","totalRecordsDisplayedList","searchWorkersValue$","currentListPageData","filteredAllWorkersList","updateCurrentPageData","exportFiles","listWorkers","exportToXLS","fileName","formattedData","Nazwisko","worksheet","workbook","resolve_book_type","xls","slk","socialcalc","Sh33tJS","onChangePaginate","searchWorkersValue","containerListRef","paginatorRef","listToArchive","listToRestore","WorkersComponent_ng_container_23_Template","WorkersComponent_ng_container_26_Template","WorkersComponent_ng_template_30_Template","tableTemplate_r8","archiveWorker","editedWorkerData","WorkersAddFormComponent","workerDataPassed","onClickBack$","isAddNewWorker","initFormData","back","prepareDataWorker","workerToDriver","addWorkerToDb","updateWorkerToDb","workerID","afterAddWorkerToDb","onError","afterUpdateWorker","PhoneNumber","CellphoneNumber","FourDriverAccess","OrganizationalUnitId","JobPositionId","AssignedVehicle","Pn","WorkersAddFormComponent_div_28_Template","selectedOptionValue","LOCAL_STORAGEV_CONFIG_VALULE","VehicleListTypeDataVisible","Mileage","Turnover","Etoll","ConfiguratorListVehicleComponent","VEHICLE_LIST_TYPE_DATA","MOCK_VEHICLE_DATA","onSubmit$","ConfiguratorListVehicleComponent_div_17_Template","CacheService","setCache","getCache","SortTagsPipe","orginalItems","phrase","_phrase","_ai","_bi","showEntry","TagPickerComponent_div_8_a_2_Template","TagPickerComponent_div_8_span_3_Template","entryControlText","TagPickerComponent_div_9_ng_container_5_ng_container_2_span_7_Template","tag_r5","selectTag","TagPickerComponent_div_9_ng_container_5_ng_container_3_div_1_ng_container_5_li_1_span_3_Template","availableTagIndex","TagPickerComponent_div_9_ng_container_5_ng_container_3_div_1_ng_container_5_li_1_Template","TagPickerComponent_div_9_ng_container_5_ng_container_3_div_1_ng_container_5_Template","lastUsedTags","tag_r7","TagPickerComponent_div_9_ng_container_5_ng_container_3_ng_container_7_li_1_span_3_Template","TagPickerComponent_div_9_ng_container_5_ng_container_3_ng_container_7_li_1_Template","TagPickerComponent_div_9_ng_container_5_ng_container_3_div_1_Template","TagPickerComponent_div_9_ng_container_5_ng_container_3_ng_container_7_Template","lastUsed","filteredTags","TagPickerComponent_div_9_ng_container_5_ng_container_2_Template","TagPickerComponent_div_9_ng_container_5_ng_container_3_Template","tagListHeight","availableTags","clearAndCloseEntry","TagPickerComponent_div_9_ng_container_5_Template","entryControl","removeAllTags","i_r10","removeTag","tag_r11","TagPickerComponent_div_10_ng_container_5_li_1_Template","TagPickerComponent_div_10_div_2_Template","TagPickerComponent_div_10_ng_container_5_Template","TagPickerComponent","$fb","$element","onHeightChanged","numTagsToShow","numberOfTagsInUsed","onSelectedTags","allTags","isEntryVisible","isEntryVisibleStream","isFocusOutBlocked","areTagsLoaded","unselectedTags","emitHeightChange","loadTags","tagType","isEntryVisibleSub","entryRef","tagsSub","onFocusOut","closeEntry","blockFocusOut","clearHistory","TagId","clearEntry","selectedIdx","bb","getLastUsed","getToSelect","TagPickerComponent_div_3_Template","TagPickerComponent_div_4_Template","TagPickerComponent_div_8_Template","TagPickerComponent_div_9_Template","TagPickerComponent_div_10_Template","UUID","S4","onSearchEnter","onSearchClear","onSearchFocus","filterControl","selectItem","SelectComponent_ng_container_10_div_1_ng_template_1_Template","SelectComponent_ng_container_10_div_1_Template","SelectComponent","_optionValue","_onChange","onlyValue","markAsPristine","searchPhrase","_onTouched","isDisabled","toggleShowList","showList","showSearchInput","searchComponent","selectButton","onArrowBlur","closeInterval","searchInputHasFocus","clearable","SelectComponent_ng_template_4_Template","SelectComponent_div_8_Template","SelectComponent_ng_container_10_Template","VehicleListFilterComponent_div_0_ng_template_6_span_0_Template","filtersStatusTachoConfig","tachoFilters","selectedStatus","VehicleListFilterComponent_div_0_ng_container_9_app_filter_control_1_Template","VehicleListFilterComponent_div_0_ng_container_10_app_filter_control_1_Template","clearAllFilters","onClearEnter","VehicleListFilterComponent_div_0_ng_template_6_Template","VehicleListFilterComponent_div_0_ng_container_9_Template","VehicleListFilterComponent_div_0_ng_container_10_Template","VehicleListFilterComponent_div_0_app_filter_control_11_Template","VehicleListFilterComponent_div_0_app_filter_control_12_Template","VehicleListFilterComponent_div_0_button_13_Template","inputHasFocus","isTacho","isVisibleLockFilter","item_r10","VehicleListFilterComponent_div_1_ng_template_6_span_0_Template","VehicleListFilterComponent_div_1_ng_template_10_div_1_Template","VehicleListFilterComponent_div_1_ng_template_6_Template","VehicleListFilterComponent_div_1_ng_template_10_Template","VehicleListFilterComponent_div_1_div_12_Template","VehicleListFilterComponent","$vehicle","$cache","columnKey","onHandleOnHeightChanged","onFilterChanged","onFilterTachoChanged","onDisplayFieldChanged","currentTotal","displayFieldControl","saveDisplayedColumn","getRawValue","filteredVehiclesSub","nums","filteredStatus","_vehicles","_item","filterRequestSub","additional","additionalParams","BinaryParamName","BinaryParamState","CurrentTotal","setDisplayedColumn","checkPermissionLock","savedFilter","filterControlsQuery","filtersStatusTachoOptions","isEtoll","eTollColumn","itemLS","baseHeight","filterBlock","handleOnHeightChanged","setFilters","setLockValue","blockerState","isBoolean","VehicleListFilterComponent_div_0_Template","VehicleListFilterComponent_div_1_Template","NetworkType","G2","G4","G5","NetworkTypeMarkerComponent","NETWORK_TYPE","IconService","IMG_FOLDER_DIR","getIconStatusUrlForVehicle","vehicleSettings","getClassStatusUrlForVehicle","getETollStatusIconForVehicle","getETollStatusIconForStatus","TimeComponent","TimeComponent_span_1_Template","VehicleControlIndicatorSignalValueComponent","signalValue","getForGSM","getForGPS","VehicleIndicatorTypeUnitPipe","VehicleControlIndicatorValueTypeComponent","VehicleControlIndicatorValueTypeComponent_span_0_Template","VehicleControlIndicatorValueTypeComponent_span_1_Template","VehicleControlIndicatorValueTypeComponent_span_2_Template","VehicleControlIndicatorValueTypeComponent_span_3_Template","p_r2","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_3_span_2_Template","indicatorsTitle","indicatorsList","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_4_span_1_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_1_span_1_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_1_span_2_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_2_span_1_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_2_span_2_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_3_span_1_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_3_span_2_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_4_span_1_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_4_span_2_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_5_span_1_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_5_span_2_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_1_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_2_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_3_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_4_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_ng_container_5_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_1_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_2_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_3_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_4_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_5_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_6_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_7_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_8_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_9_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_10_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_11_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_12_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_13_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_14_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_15_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_16_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_17_Template","VehicleControlIndicatorValueComponent_ng_container_3_ng_container_18_Template","VehicleControlIndicatorValueComponent","$icon","formatData","cType","diffMins","getBinaryIndicators","driving","working","resting","free","actual","category","getTitleForTachoKey","indicatorStatus","indicatorValue","VehicleControlIndicatorValueComponent_span_1_Template","VehicleControlIndicatorValueComponent_span_2_Template","VehicleControlIndicatorValueComponent_ng_container_3_Template","vehicleValue","listDataTypeVisible","ListVehicleItemComponent_button_0_div_12_div_4_ng_container_1_Template","etollParam_r2","ListVehicleItemComponent_button_0_div_12_div_1_Template","ListVehicleItemComponent_button_0_div_12_tk_vehicle_control_indicator_value_3_Template","ListVehicleItemComponent_button_0_div_12_div_4_Template","ListVehicleItemComponent_button_0_tk_vehicle_control_indicator_value_5_Template","ListVehicleItemComponent_button_0_span_7_Template","ListVehicleItemComponent_button_0_span_8_Template","ListVehicleItemComponent_button_0_div_12_Template","vehicleAngle","ListVehicleItemComponent","checkBlockerStatus","updateVehicleAngle","ListVehicleItemComponent_button_0_Template","ListVehicleItemComponent_ng_template_1_Template","ListVehicleTachoItemComponent_ng_container_7_ng_container_1_Template","ListVehicleTachoItemComponent_ng_container_7_ng_container_2_Template","ListVehicleTachoItemComponent_ng_container_7_ng_container_3_Template","ListVehicleTachoItemComponent_ng_container_7_ng_container_4_Template","ListVehicleTachoItemComponent","getDriverData","whenNoDriverData","isDriver","ListVehicleTachoItemComponent_ng_container_3_Template","ListVehicleTachoItemComponent_div_4_Template","ListVehicleTachoItemComponent_ng_container_6_Template","ListVehicleTachoItemComponent_ng_container_7_Template","ListVehicleTachoItemComponent_ng_container_12_Template","ListVehicleTachoItemComponent_div_16_Template","VehicleListComponent_div_2_p_skeleton_1_Template","vehicle_r3","_selectedVehicleId","VehicleListComponent_ng_container_5_cdk_virtual_scroll_viewport_1_div_1_app_list_vehicle_tacho_item_1_Template","VehicleListComponent_ng_container_5_cdk_virtual_scroll_viewport_1_div_1_ng_template_2_Template","isTachoView","noTachoView_r5","VehicleListComponent_ng_container_5_cdk_virtual_scroll_viewport_1_div_1_Template","VehicleListComponent_ng_container_5_cdk_virtual_scroll_viewport_1_Template","VehicleListComponent","_currentFilter","filtersComponent","scrollToSelectedItem","onChangeFilters$","onChangeTachoFilters$","filterHeight","vehicleToScroll","CdkVirtualScrollViewport","VehicleListComponent_div_2_Template","VehicleListComponent_div_3_Template","VehicleListComponent_div_4_Template","VehicleListComponent_ng_container_5_Template","FilterTachoListPipe","getTachoStatus","getDriverId","checkStatusItem","tachoStatus","tachoDriverID","filterFnc","onSubmitConfigForm","isVisibleConfigForm","tachoVehicles","etollVehicles","VehiclePanelLiteComponent_div_0_div_10_Template","onSelectedIndexChange","VehiclePanelLiteComponent_div_0_ng_template_13_Template","onChangeFilters","VehiclePanelLiteComponent_div_0_ng_template_17_Template","onChangeTachoFilters","VehiclePanelLiteComponent_div_0_ng_template_22_Template","filtersSelectedTachoList","VehiclePanelLiteComponent","$nav","$route","isOpen","eTollPanelSize","subToGetVisibilitySubject","firstRefresh","initListDataType","getBlockedStatusVehiclesList","vehiclesSub","isTheSame","queryParamMap","navSub","originalVisibility","vehicleFilteredSub","onEtollExpanded","setHeightForCdkVehicleScroll","etollPanelHeight","cdkVirtualScroll","VehiclePanelLiteComponent_div_0_Template","Config","VehicleFullListColumns","VehicleFullListColumnsOrder","ConfigurationService","configLSKey","getConfig","itemsLS","configFromLS","saveConfig","ScrollBarService","subjectDelta","subjectOptions","subjectScrollDelta","setDelta","setScrollDelta","getDelta","getScrollDelta","parentMarginTop","itemTemp","currentStartIndex","ScrolledListComponent","showElements","sortedItems","_visibleItems","itemsCount","_parentMarginTop","parentHeight","visibleItems","processScroll","deltaY","move","moveRation","scrollDown","scrollUp","parentWidth","showScrollBar","scrollOffset","areaWidth","$scrollBar","factor","parentFullHeight","onWheel","deltaX","resultChange","areaHeight","selectedId","idFieldName","sortFieldName","autoSort","_sorted","_currentStartIndex","scale","$renderer","isScrolling","scrollDeltaSub","ScrolledListComponent_ng_container_3_Template","CheckboxComponent","isCheckboxOn","toggleValue","ngValue","CheckboxComponent_a_1_Template","CheckboxComponent_a_2_Template","CheckboxComponent_label_3_Template","indicatorType_r2","moveUp","moveDown","VehicleListFullConfigComponent_div_12_div_1_div_4_Template","VehicleListFullConfigComponent_div_12_div_1_div_5_Template","tmp_5_0","VehicleListFullConfigComponent_div_12_div_1_Template","indicatorTypeGroup_r5","VehicleListFullConfigComponent","$vehicleService","$configService","indicatorTypeGroups","Selected","Level","selectAllControl","at","s1","s2","indicatorTypes","bi","indicatorType","First","Last","SelectedValue","Item","groupBy","indicatorTypeGroup","groupCount","removeAt","VehicleListFullConfigComponent_div_12_Template","isIndictorColumnFullOn","indictorColumnFullMinWidth","indictorColumnFullLeft","VehicleListFullItemComponent_div_0_ng_container_2_ng_container_15_div_1_Template","VehicleListFullItemComponent_div_0_ng_container_2_ng_container_15_div_2_Template","VehicleListFullItemComponent_div_0_ng_container_2_ng_container_15_div_3_Template","VehicleListFullItemComponent_div_0_ng_container_2_ng_container_15_div_4_Template","VehicleListFullItemComponent_div_0_ng_container_2_ng_container_15_div_5_Template","showTachoColumn","VehicleListFullItemComponent_div_0_ng_container_2_div_1_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_2_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_3_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_4_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_5_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_6_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_7_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_8_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_9_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_10_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_11_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_12_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_13_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_14_Template","VehicleListFullItemComponent_div_0_ng_container_2_ng_container_15_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_16_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_17_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_18_Template","VehicleListFullItemComponent_div_0_ng_container_2_div_19_Template","showColumn","type_r2","VehicleListFullItemComponent_div_0_ng_container_2_Template","VehicleListFullItemComponent","onItemDataChange","isFirstZoom","selVehicleId","vehicleChangeSub","tachoValue","VehicleListFullItemComponent_div_0_Template","showPanel","VehicleListFullIndicatorStatusHeaderComponent","onStatusChanged","isPanelVisible","timeOut","VehicleListFullIndicatorStatusHeaderComponent_div_3_Template","VehicleListFullIndicatorValueHeaderComponent_div_4_li_8_Template","VehicleListFullIndicatorValueHeaderComponent","onValueChanged","setItems","closeShowList","VehicleListFullIndicatorValueHeaderComponent_div_4_Template","resetValue","VehicleListFullTachoHeaderComponent","$el","VehicleListFullTachoHeaderComponent_div_4_Template","VehicleListFullExpandComponent","onPointerDown","onPointerMove","$mapControlService","dragMove","onPointerUp","dragEnd","VehicleListFullInidicatorColumnFullComponent","onSwitchChange","toggel","setSortColumn","getSortColumnDir","temperatureUnit","onIndicatorStatusFilterChanged","onIndicatorValueFilterChanged","onIndictorColumnFullChange","indicatorColumnTitle","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_ng_container_14_div_2_Template","_r16","onTachoValueFilterChanged","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_ng_container_14_div_4_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_ng_container_14_div_5_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_ng_container_14_div_6_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_ng_container_14_div_7_Template","_r17","_r18","_r20","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_1_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_2_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_3_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_4_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_5_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_6_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_7_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_8_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_9_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_10_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_11_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_12_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_13_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_ng_container_14_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_15_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_16_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_17_Template","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_div_18_Template","type_r21","VehicleListFullComponent_div_0_div_13_div_2_ng_container_1_Template","item_r23","onVehicleUpdate","idx_r24","indictorColumnFullLength","VehicleListFullComponent_div_0_div_13_ng_container_4_ng_template_3_Template","VehicleListFullComponent_div_0_div_13_div_2_Template","VehicleListFullComponent_div_0_div_13_ng_container_3_Template","VehicleListFullComponent_div_0_div_13_ng_container_4_Template","onConfigureTableClose","configureTable","switchToVehicleListLite","VehicleListFullComponent_div_0_div_12_Template","VehicleListFullComponent_div_0_div_13_Template","VehicleListFullComponent_div_0_tk_vehicle_list_config_14_Template","isConfigVisible","VehicleListFullComponent","filedLenghts","fileds","a19","a14","a15","a17","a16","a18","$router","indictorColumnFullCount","$driverFullNamePipe","Dir","receivedVehicles","sortByColumn","isThisFirstRefresh","updateTableWidth","isResizingTimeout","sortedVehicles","controlIndicatorsA","controlIndicatorsB","displayedAddressA","displayedAddressB","compareStrings","compareControlIndicatorGroupTime","displayedDriverA","displayedDriverB","compareControlIndicatorGroupValue","controlIndicatorA","controlIndicatorB","getLastControlIndicatorValueOrDefault","valueA","valueB","getLastControlIndicatorTimeInMilliseconds","updateInidicatorFieldPosition","isFilterEmpty","VehicleListFullComponent_div_0_Template","RiskCategory","Unknown","AtRiskAbroad","AtRiskNotAbroad","NotAtRisk","NetworkWarrningComponent","RISK_CATEGORY","risk","NetworkWarrningComponent_ng_container_3_Template","TankFillPercentagePipe","currentLiters","maxLiters","maxSpeedStreet","_vehicle","maxFuelValue","Capacity","VehicleDetailsParamsTabComponent_div_58_div_9_Template","param_r2","param_r3","VehicleDetailsParamsTabComponent_div_62_div_1_Template","binaryParams","riskCategory","VehicleDetailsParamsTabComponent","onChangeVehicle","setVehicleParams","cloneDeep","getVehicleMaxFuelValue","getVehicleRoamingRiskCategory","analogParams","analogTypes","filterAnalogParams","vehicleValueChangeSubject","gpsLevelPercent","gsmLevelPercent","setLastUpdateDate","setSpeedVehicle","setGSM","setVoltage","setGPS","setFuelState","openGoogleMaps","copyCoords","getSpeedVehicle","createVehicleControlIndicator","voltage","lastUpdated","lastUpdatedFrom","VehicleDetailsParamsTabComponent_div_10_Template","VehicleDetailsParamsTabComponent_ng_container_45_Template","VehicleDetailsParamsTabComponent_ng_container_46_Template","VehicleDetailsParamsTabComponent_ng_container_50_Template","VehicleDetailsParamsTabComponent_ng_container_51_Template","VehicleDetailsParamsTabComponent_div_58_Template","VehicleDetailsParamsTabComponent_div_60_Template","VehicleDetailsParamsTabComponent_div_62_Template","VehicleDetailsParamsTabComponent_app_network_warrning_74_Template","MILLISECONDS_IN_DAY","compareLocalAsc","dateLeft","dateRight","differenceInDays","dirtyDateLeft","dirtyDateRight","differenceInCalendarDays","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","RouteService","getRouteForDate$","getRouteStats$","getRouteAvailableDates$","pointUpdateRequired","RouteElementTypeEnum","Segment","Stop","AreaStop","UnfinishedSegment","RouteDrawerService","datePipe","routeData$","selectedRoutePointsMarker","onChangeRouteDataSubsc","removeAllRouteMarkersDraw","selectedSegment","drawRouteEvents","onClickSegmentRoute","currentValueRouteData","onClickPartOfRoute","setRoute","ifSelectedMoreThen2DaysRange","ifShowModalPark","selectedRoute","resetRoute","routeEvents","deleteCurrentDisplayPointsMarker","withOutZoom","listenToMapEvents","routeEvent","drawRouteEvent","preventFitBounds","fitBoundsMap","addPointsToRoute","Points","routePointSizeByZoom","isSegmentSelected","__webpack_require__","tu","batchMarkers","routePointStyle","onMouseOutTooltip","leafletPopup","popupContent","getNamedItem","postMessage","sendBack","convertRoutePointToLatLng","polyline","definePolyLineOptions","bringToBack","convertVehicleLocationToLatLng","getPupupHTML","Description2","Description","DistancePipe","localeId","LOCALE_ID","formater","DecimalPipe","compareAsc","addMonths","dayOfMonth","endOfDesiredMonth","dateWithMonths","dateWithDays","msToAdd","endOfMonth","intervalToDuration","differenceInYears","differenceInCalendarYears","isLastYearNotFull","remainingMonths","differenceInMonths","differenceInCalendarMonths","isLastMonthNotFull","isLastDayOfMonth","remainingDays","remainingHours","differenceInHours","differenceInMilliseconds","millisecondsInHour","getRoundingMethod","roundingMethod","remainingMinutes","remainingSeconds","differenceInSeconds","subDays","TimeDifferencePipe","timeDifference","EndDateTime","StartDateTime","currentDateISO","VehicleDetailsRouteItemComponent_ng_container_0_div_2_Template","VehicleDetailsRouteItemComponent_ng_container_0_div_3_Template","VehicleDetailsRouteItemComponent_ng_container_0_div_5_Template","VehicleDetailsRouteItemComponent_ng_container_0_div_6_Template","VehicleDetailsRouteItemComponent_ng_container_0_div_7_Template","VehicleDetailsRouteItemComponent","$injector","drivingDescriptionTranslation","$routeService","$routeDrawer","onRouteEventDetailUpdate","showRoute","routePoint","RouteEventId","Duration","VehicleDetailsRouteItemComponent_ng_container_0_Template","item_r2","onClickSwitchDateValue","SwitchDatesRange","Month","Week","Day","VehicleDetailsRoutesCalendarComponent","onHideCalendar","onSubmitCalendar","maxDateValue","switchDatesRange","rangeDate","emitData","resetSelectedDate","onSelectDate","isLeft","setDayRange","setWeekRange","setMonthRange","subMonths","startMonth","startOfMonth","endMonth","ifEndDayIsBiggerOrEqualMaxDate","startDay","endDay","VehicleDetailsRoutesCalendarComponent_div_12_Template","FuelPipe","startLocationRoute","endLocationRoute","VehicleDetailsRouteSummaryDataComponent_ng_template_13_tk_vehicle_location_0_Template","fuelPer100","VehicleDetailsRouteSummaryDataComponent","setRoutes","setStreets","routesStreet","getFirstAndLastRouteStreet","VehicleDetailsRouteSummaryDataComponent_tk_vehicle_location_6_Template","VehicleDetailsRouteSummaryDataComponent_ng_container_12_Template","VehicleDetailsRouteSummaryDataComponent_ng_template_13_Template","VehicleDetailsRouteSummaryDataComponent_div_15_Template","VehicleDetailsRouteSummaryDataComponent_div_16_Template","noDriving_r2","isSameDay","dateLeftStartOfDay","dateRightStartOfDay","_selectedDateCalendar","VehicleDetailsRoutesDaysSwitchComponent_ng_container_5_ng_container_5_Template","ifDateDayIsSame","initialDate","VehicleDetailsRoutesDaysSwitchComponent","setSelectedDateCalendar","onShowCalendar","onChangeDate","getSelectedDate","rangeDateFrom","rangeDateTo","setPreviousDate","findClosestDateBefore","setNextDate","findClosestDateAfter","VehicleDetailsRoutesDaysSwitchComponent_ng_container_5_Template","VehicleDetailsRoutesDaysSwitchComponent_ng_template_6_Template","noSelectedDateInCalendar_r3","GroupRoutesByDatePipe","sortRoutesByDate","curr","currentDateRoute","VehicleDetailsRoutesTabComponent_div_4_p_skeleton_1_Template","route_r2","selectSegment","first_r5","last_r4","selectedRouteEventId","VehicleDetailsRoutesTabComponent_ng_container_5_ng_container_2_div_1_Template","dayRoutes_r6","trackByRoute","VehicleDetailsRoutesTabComponent_ng_container_5_ng_container_2_Template","trackByDayRoute","VehicleDetailsRoutesTabComponent","newVehiclesHttpService","initialDateCalendar","selectedDatesInCalendar","onChangeDayCalendar$","lastUpdate","vehicleUpdate","vehiclesList","posParam","utc","local","getInitialData","onChangeDayCalendar","getRoutesForDate","routeSub","onSelectDaysInCalendar","getRoutesSubscriptions","getRouteForDateSubsc","showPointInMapSubsc","loadPointsForRouteSubsc","routeData","routeStats","loadPointsForRoute","vehicleRouteStatistics","responseRoute","isVisibleCalendar","VehicleDetailsRoutesTabComponent_div_4_Template","VehicleDetailsRoutesTabComponent_ng_container_5_Template","VehicleDetailsRoutesTabComponent_ng_container_6_Template","TachoTypeData","Availability","FormatSecondsToHumanizePipe","formattedDuration","TachoService","getTachoSlotsForDriver$","mockData","SlotId","Card","StatValue1","StatValue2","StatValue3","StatValue4","Subjects","MaxHours","CurrentHours","DriverService","getDriverScoringForPeriod","Stats","index_r2","onClickSlot","activeSlotIndex","VehicleTachoSlotsComponent","Time","setLastUpdated","onChangeSlot$","slots","VehicleTachoSlotsComponent_button_8_Template","DriverTachoComponent","setSlotData","_slotData","copyCardNumber","TachoSummaryDataComponent","CurrentState","TachoDataDetailsComponent","TACHO_TYPE_DATA","TachoDataDetailsComponent_ng_container_9_Template","TachoDataDetailsComponent_ng_container_10_Template","TachoDataDetailsComponent_ng_container_11_Template","TachoDataDetailsComponent_ng_container_12_Template","TachoDataDetailsComponent_div_16_Template","TachoEmptyStateComponent","activeSlotIdx","sectionDataActiveSlot","Drive","activeSlot","VehicleDetailsTachoTabComponent_ng_container_1_ng_container_2_app_tacho_data_details_29_Template","VehicleDetailsTachoTabComponent_ng_container_1_ng_container_2_app_tacho_data_details_30_Template","VehicleDetailsTachoTabComponent_ng_container_1_ng_container_2_app_tacho_data_details_31_Template","StartDay","Recommended_Rest9h","Recommended_Rest11h","VehicleDetailsTachoTabComponent_ng_container_1_app_vehicle_tacho_slots_1_Template","VehicleDetailsTachoTabComponent_ng_container_1_ng_container_2_Template","VehicleDetailsTachoTabComponent_div_3_p_skeleton_1_Template","VehicleDetailsTachoTabComponent_div_3_p_skeleton_3_Template","VehicleDetailsTachoTabComponent","setItemData","tachoChangeSubject","isLoadingData","prepareTachoDataToDisplay","driveDataList","workDataList","restDatList","paramsWithCustomFormatValue","getFilterList","listName","customFormatValueForSelectedParams","paramName","convertSecondsToHoursAndMinutes","addSeconds","tabParams","filterParams","$tacho","$driver","formatSecondsToHumanizePipe","cName_45h","cDesc_45h","ccMax_45h","cName_DayMax9h","cDesc_DayMax9h","ccMax_DayMax9h","cName_DayMax10h","cDesc_DayMax10h","ccMax_DayMax10h","cName_DaysOver9h","cDesc_DaysOver9h","ccMax_DaysOver9h","cName_2Weeks","cDesc_2Weeks","ccMax_2Weeks","cName_Work6h","cDesc_Work6h","cMax_Work6h","cName_Work13h","cDesc_Work13h","cMax_Work13h","cName_Work15h","cDesc_Work15h","cMax_Work15h","cName_WorkInWeek","cDesc_WorkInWeek","cMax_WorkInWeek","cName_Rest45","cDesc_Rest45","cMax_Rest45","cName_Rest9hToday","cDesc_Rest9hToday","cMax_Rest9hToday","cName_Rest11hToday","cDesc_Rest11hToday","cMax_Rest11hToday","cName_RestWeek","cDesc_RestWeek","cMax_RestWeek","cName_RestPrevWeek","cDesc_RestPrevWeek","cMax_RestPrevWeek","cName_Rest2Weeks","cDesc_Rest2Weeks","cMax_Rest2Weeks","hideDriverInfo","slotsSub","slot","getSlotData","SD","RR9","RR11","Act_2Weeks","A2W","Act_45h","A45","Act_DayMax10h","AM10","Act_DayMax9h","AM9","Act_DaysInWeek","ADW","Act_DaysOver9h","AO9","Act_2Weeks_Rest","Act_45h_Rest","Act_DayMax10h_Rest","Act_DayMax9h_Rest","Act_DaysInWeek_Rest","Act_DaysOver9h_Rest","Max_Act_2Weeks","Max_Act_45h","Max_Act_DayMax10h","Max_Act_DayMax9h","Max_Act_DaysOver9h","Work_6h","W6","Work_13h","W13","Work_15h","W15","Work_Weekly","WW","Work_6h_Rest","Work_13h_Rest","Work_15h_Rest","Work_Weekly_Rest","Max_Work_6h","Max_Work_13h","Max_Work_15h","Max_Work_Weekly","Rest_11hToday","R11","Rest_2Weeks","R2W","Rest_45min","R45","Rest_9hToday","R9","Rest_PrevWeek","RP","Rest_Week","RW","Rest_11hToday_Rest","Rest_2Weeks_Rest","Rest_45min_Rest","Rest_9hToday_Rest","Rest_PrevWeek_Rest","Rest_Week_Rest","Max_Rest_11hToday","Max_Rest_2Weeks","Max_Rest_45min","Max_Rest_9hToday","Max_Rest_PrevWeek","Max_Rest_Week","VehicleDetailsTachoTabComponent_ng_container_1_Template","VehicleDetailsTachoTabComponent_app_tacho_empty_state_2_Template","VehicleDetailsTachoTabComponent_div_3_Template","EtollStatusHttpService","noEtollDataForVehicleErrorCode","isEtollDataAvailableSub","cacheBalanceDetails","getBalance","cachedBalance","getBalanceDetails","cached","ETollDisableModalComponent","VehicleBusinessNumberPinComponent","copyText","copyAll","ToggleChanged","etollBalance","gotToSupport","VehicleDetailsETollTabComponent_div_1_div_5_Template","VehicleDetailsETollTabComponent_div_1_div_6_Template","VehicleDetailsETollTabComponent_div_1_div_7_Template","VehicleDetailsETollTabComponent_div_1_div_8_Template","VehicleDetailsETollTabComponent_div_1_div_9_Template","VehicleDetailsETollTabComponent_div_1_p_inputSwitch_10_Template","VehicleDetailsETollTabComponent_div_1_div_11_Template","VehicleDetailsETollTabComponent_div_1_div_12_Template","readyToShow","isETollPanelVisible","VehicleDetailsETollTabComponent","eTollStatusService","buttonTurnOffEtollTitle","buttonTurnOnEtollTitle","supportUrl","subToIsEtollDataAvailable","trySetLastEtollBalanceFrom","SaveSendToEToll","CopyAllData","CopyValue","selBox","execCommand","CopyBusinessNumber","CopyPin","ShowOverlay","ConfirmEtollDisabling","CancelEtollDisabling","showModalConfirmLock","VehicleDetailsETollTabComponent_div_1_Template","VehicleDetailsETollTabComponent_div_2_Template","VehicleLock","OUT1","OUT2","VehicleHistoryLockType","FailedToTurnOn","SuccessToTurnOn","FailedToTurnOff","SuccessToTurnOff","VehicleBlockerValue","Off","On","ChangePending","Value","ModalWrapperComponent_ng_container_8_span_3_Template","ModalWrapperComponent","isError","changeVehicleLockState","ModalWrapperComponent_ng_container_4_Template","ModalWrapperComponent_ng_container_5_Template","ModalWrapperComponent_ng_container_7_Template","ModalWrapperComponent_ng_container_8_Template","ModalWrapperComponent_app_button_14_Template","blockedOutFirst","onChangeOutFirst","userCanChangeStateBlocker","ThVehicleDetailsLocksTabComponent_ng_container_2_div_1_ng_container_16_p_progressSpinner_1_Template","ThVehicleDetailsLocksTabComponent_ng_container_2_div_1_ng_container_16_p_inputSwitch_2_Template","isChaningOUT1Lock","ThVehicleDetailsLocksTabComponent_ng_container_2_div_1_ng_container_14_Template","ThVehicleDetailsLocksTabComponent_ng_container_2_div_1_ng_container_15_Template","ThVehicleDetailsLocksTabComponent_ng_container_2_div_1_ng_container_16_Template","blockedOutFirstConfirmValue","blockedOutSecond","onChangeOutSecond","ThVehicleDetailsLocksTabComponent_ng_container_2_div_2_ng_container_16_p_progressSpinner_1_Template","ThVehicleDetailsLocksTabComponent_ng_container_2_div_2_ng_container_16_p_inputSwitch_2_Template","isChaningOUT2Lock","ThVehicleDetailsLocksTabComponent_ng_container_2_div_2_ng_container_14_Template","ThVehicleDetailsLocksTabComponent_ng_container_2_div_2_ng_container_15_Template","ThVehicleDetailsLocksTabComponent_ng_container_2_div_2_ng_container_16_Template","blockedOutSecondConfirmValue","EntryType","UserName","Timestamp","ThVehicleDetailsLocksTabComponent_ng_container_2_div_1_Template","ThVehicleDetailsLocksTabComponent_ng_container_2_div_2_Template","ThVehicleDetailsLocksTabComponent_ng_container_2_div_13_Template","ThVehicleDetailsLocksTabComponent_ng_container_2_div_14_Template","isHiddenFirstLock","isHiddenSecondLock","historyLock","isLoadingHistoryLock","ThVehicleDetailsLocksTabComponent","onChangeLockStateWebSocketSubsc","checkIfUserCanChangeStateBlocker","getStateVehicleLock","onChangeVehicleLockState","getHistoryVehicleLock","onChangeLockStateVehicle","setLockOnEventChangeVehicleData","outName","blockerValueOut1","blockerValueOut2","onGetVehicleLockState","getTitleTranslate","Entries","outFirstValue","outSecondValue","BlockerValue","subFirst","subSecond","ThVehicleDetailsLocksTabComponent_mat_spinner_1_Template","ThVehicleDetailsLocksTabComponent_ng_container_2_Template","Waiting","Inactive","SentDisableModalComponent","SentTabNoActiveServiceComponent","SentTabComponent_ng_container_2_ng_container_1_ng_container_4_ng_container_1_Template","SentTabComponent_ng_container_2_ng_container_1_ng_container_4_ng_container_2_Template","isSending","showModalConfirmUnLock","onSwitchChangeValue","SentTabComponent_ng_container_2_ng_container_1_div_8_button_5_Template","SentGeoCurrentState","SENT_GEO_STATUS","SentTabComponent_ng_container_2_ng_container_1_ng_container_4_Template","SentTabComponent_ng_container_2_ng_container_1_ng_container_5_Template","SentTabComponent_ng_container_2_ng_container_1_ng_container_6_Template","SentTabComponent_ng_container_2_ng_container_1_div_8_Template","SentTabComponent_ng_container_2_ng_container_1_p_progressSpinner_9_Template","SentTabComponent_ng_container_2_ng_container_1_div_10_Template","SentTabComponent_ng_container_2_ng_container_1_span_11_Template","isTheProcessOfSwitchingOn","_vehicleData","SentTabComponent_ng_container_2_ng_container_1_Template","SentTabComponent_ng_container_2_app_sent_tab_no_active_service_2_Template","isActiveSENTGeo","SentTabComponent","setVehicleData","setVirtualSentGeoStatus","setServiceSENTStatus","isFirstInit","getSENTGeoSendingStatus","virtualSentGeoStatus","isLoadingSENTGeoActiveStatus","changeSwitchLoading","onSetNewSendingValue","SendToSentGeo","calculateDateLastUpdate","setServiceAsOff","SentTabComponent_mat_spinner_1_Template","SentTabComponent_ng_container_2_Template","selectTab","VehicleDetailsTabsComponent_div_0_div_6_Template","VehicleDetailsTabsComponent_div_0_div_10_Template","VehicleDetailsTabsComponent_div_0_div_14_Template","VehicleDetailsTabsComponent_div_0_div_17_Template","VehicleDetailsTabsComponent_div_0_div_18_Template","VehicleDetailsTabsComponent_div_0_div_19_Template","VehicleDetailsTabsComponent_div_0_div_20_Template","VehicleDetailsTabsComponent_div_0_div_21_Template","VehicleDetailsTabsComponent_div_0_div_22_Template","topPosition","isRoutesEnabled","isETollEnabled","isVisibleBlockTab","VehicleDetailsTabsComponent","checkBlockerInfo","setCurrentTabNameInUrl","onTabSelected","_tab","newTabName","oldTabName","go","setTop","blockerInfo","VehicleDetailsTabsComponent_div_0_Template","CommonPlaceholderComponent","VehicleIndicatorTypeEnum","RPM","GPS","GSM","CANFuel","Power","Lifter","Cap","setEditMode","VehicleDetailsHeaderComponent_div_0_div_2_div_4_Template","hasPermissionToEditVehicleName","vehicleName_r4","saveVehicleName","closeEditVehicleName","editValue","closeClick","VehicleDetailsHeaderComponent_div_0_div_2_Template","VehicleDetailsHeaderComponent_div_0_div_3_Template","VehicleDetailsHeaderComponent_div_0_div_4_Template","VehicleDetailsHeaderComponent","saveByKeyboard","inputRef","leaveEdit","selectDotIndex","selectedDotIndex","paramTypesToShow","VehicleIndicatorType","paramsSub","engineSpeed","getSpeedIndicatorValue","newVehicleName","VehicleDetailsHeaderComponent_div_0_Template","VehicleDetailsComponent_div_0_div_2_ng_container_1_Template","VehicleDetailsComponent_div_0_tk_common_placeholder_1_Template","VehicleDetailsComponent_div_0_div_2_Template","VehicleDetailsComponent","$activatedRoute","vid","subscribeForChanges","adjustContentHeight","followSub","tabsElement","vehicleDetailsHeader","VehicleDetailsComponent_div_0_Template","StringService","truncate","DriverListItemComponent_div_0_span_10_Template","DriverListItemComponent_div_0_ng_template_11_Template","DriverListItemComponent_div_0_span_15_Template","DriverListItemComponent_div_0_ng_template_16_Template","noPhoneTemp_r2","noEmailTemp_r3","DriverListItemComponent","stringService","DriverListItemComponent_div_0_Template","DriverListItemComponent_div_1_Template","IsArchive","driversCount","onAddDriver","DriverListLiteComponent_div_0_div_17_app_button_1_Template","DriverListLiteComponent_div_0_div_17_div_2_Template","isNewDriverButtonVisible","DriverListLiteComponent_div_0_ng_template_19_div_0_Template","hasAnyDrivers","driver_r5","archiveWorkersCount","DriverListLiteComponent_div_0_ng_template_27_div_0_Template","hasAnyArchiveDrivers","driver_r7","onSelectedTabChanged","DriverListLiteComponent_div_0_ng_template_15_Template","DriverListLiteComponent_div_0_div_17_Template","DriverListLiteComponent_div_0_div_18_Template","DriverListLiteComponent_div_0_ng_template_19_Template","DriverListLiteComponent_div_0_div_22_Template","DriverListLiteComponent_div_0_ng_template_24_Template","DriverListLiteComponent_div_0_div_26_Template","DriverListLiteComponent_div_0_ng_template_27_Template","DriverListLiteComponent_div_0_div_30_Template","isLoadingWorkers","addDriverTemp_r8","displayedDrivers","isLoadingArchiveDrivers","noArchiveDriversTemp_r9","displayedArchiveWorkers","DriverListLiteComponent","setWorkersList","workersList","isSubToWorkersListViewChange","subToWorkersListViewChange","newUnsavedDriver","allDrivers","allArchiveWorkers","driverHttpService","loadWorkers","subToVisibility","subToWorkerAdded","subToWorkerUpdated","subToWorkerArchived","subToWorkerUnarchived","subToWorkerDetailsPanelClosed","selectedDriverId","newDriver","refreshListAfterDriverAdd","removeNewWorker","viewChange","loadArchiveDrivers","convertWorkerModelToDriver","displayWorkers","workers","sortDrivers","displayArchiveWorkers","addedDriver","matchedDriver","copyDriverToDriver","updatedDriver","copyId","CdkVirtualForOf","DriverListLiteComponent_div_0_Template","DriverDetailsHeaderComponent","DriverDetailsHeaderComponent_div_0_Template","DriverDeactivationModalComponent","onDeactivate","DriverUnarchiveModalComponent","finalIcon","spinnerStrokeWidth","spinnerDiameter","SecondaryButtonComponent","textClasses","SecondaryButtonComponent_mat_icon_2_Template","SecondaryButtonComponent_div_3_Template","isLoadingOrSaving","onChangeIsArchive","isChangingArchiveStatus","DriverDetailsDataTabComponent_div_35_sm_secondary_button_2_Template","DriverDetailsDataTabComponent_div_35_sm_secondary_button_3_Template","DriverDetailsDataTabComponent","isArchiveDriverVisible","is4DriveAuthorized","firstNameCtrl","lastNameCtrl","mobilePhoneCtrl","phoneCtrl","emailCtrl","mobilePhone","load4DriverStatus","subToDatabaseValueChanges","isAdd","getWorker","isForAdd","unArchive","beforeClosed","isConfirmed","DriverDetailsDataTabComponent_mat_error_7_Template","DriverDetailsDataTabComponent_mat_error_14_Template","DriverDetailsDataTabComponent_mat_error_33_Template","DriverDetailsDataTabComponent_app_button_34_Template","DriverDetailsDataTabComponent_div_35_Template","DriverDetailsTabsComponent_div_0_wm_driver_details_data_tab_6_Template","DriverDetailsTabsComponent","DriverDetailsTabsComponent_div_0_Template","DriverDetailsComponent_div_0_div_1_Template","DriverDetailsComponent_div_0_div_2_Template","DriverDetailsComponent","driverIdChangeSubject","visibility$","wsSystemEventSub","driverSub","DriverDetailsComponent_div_0_Template","driverName","openVehicle","NotificationComponent_div_0_ng_container_6_span_1_Template","NotificationComponent_div_0_ng_container_6_ng_template_2_Template","NotificationComponent_div_0_ng_container_6_span_5_Template","noDriver_r4","closeMessage","NotificationComponent_div_0_ng_container_6_Template","NotificationComponent_div_0_ng_template_7_Template","MESSAGE_TYPE","lineWidth","otherTypeNotification_r5","NotificationComponent","timoutInSeconds","timeLineSubsc","currentTimeout","countDownVisibleStatus","resetLineTime","isFirstEmission","interval$","takeWhile","predicate","inclusive","NotificationComponent_div_0_Template","EventDrawerService","drawEvent","pinIcon","removeAll","fitBoundsToVisibleEvents","_a$4","_a$3","_b$2","_c$1","_a$2","_b$1","_e","_g","_h","_j","_l","_m","AdapterNoParams","Reactive","initialValue","e_1","emitEqual","__values","done","__read","e_1_1","return","emitOnSubscribe","once","dispose","AdapterPropName","mock","augmented","init$","packageInfo","bufferInfo","isLoading$","loopPending","loopPending$","firstVisible","firstVisible$","lastVisible","lastVisible$","bof","bof$","eof","eof$","paused","paused$","reload","prepend","clip","resume","fix","relax","showLog","AdapterPropType","Scalar","WorkflowRunner","Function","methodPreResult","immediate","methodPausedResult","noopWF","emptyPackageInfo","core","consumer","bufferInfoDefault","firstIndex","minIndex","maxIndex","absMinIndex","absMaxIndex","defaultSize","EMPTY_ITEM","getDefaultAdapterProps","permanent","reactive","onDemand","wanted","allowedWhenPaused","reactiveConfigStorage","wantedUtils","Wanted","wantedStorage","a$","b$","instanceCount$1","AdapterContext","conf","reactivePropsStore","__assign","react","DatasourceGeneric","datasource","settings","devSettings","adapterContext","adapter","makeDatasource","_super","class_1","__extends","Datasource","forward","SizeStrategy","Average","Constant","Frequent","ValidatorType","integer","integerUnlimited","moreOrEqual","itemList","boolean","function","funcOfxArguments","funcOfxAndMoreArguments","funcOfXToYArguments","oneOfCan","oneOfMust","or","enum","getError","onNumber","isSet","onMoreOrEqual","onFunction","onFunctionWithXArguments","argsCount","onFunctionWithXAndMoreArguments","onFunctionWithXToYArguments","onOneOf","must","noOneIsPresent","isAnotherPresent","onOr","validators","validator","onEnum","VALIDATORS","NUMBER","INTEGER","INTEGER_UNLIMITED","MORE_OR_EQUAL","BOOLEAN","OBJECT","ITEM_LIST","ELEMENT","Document","FUNC","FUNC_WITH_X_ARGUMENTS","FUNC_WITH_X_AND_MORE_ARGUMENTS","FUNC_WITH_X_TO_Y_ARGUMENTS","ONE_OF_CAN","ONE_OF_MUST","ENUM","ValidatedData","contextErrors","setContext","isValidContext","setCommonError","setValidity","__spreadArray","setParam","showErrors","runValidator","_errors","getDefault","mandatory","validateOne","OBJECT$2","FUNC_WITH_X_AND_MORE_ARGUMENTS$1","DatasourceProps","DATASOURCE","INTEGER$1","INTEGER_UNLIMITED$1","BOOLEAN$1","ELEMENT$1","FUNC$1","OR$1","Settings$1","Settings","bufferSize","infinite","windowViewport","viewportElement","inverse","onBeforeClip","sizeStrategy","DevSettings","immediateLog","logProcessRun","logTime","initDelay","initWindowDelay","cacheData","cacheOnReload","dismissOverflowAnchor","directionPriority","MIN","SETTINGS","DEV_SETTINGS","CommonProcess","preFetch","fetch","postFetch","preClip","adjust","AdapterProcess","ProcessStatus","OBJECT$1","FUNC_WITH_X_ARGUMENTS$1","_a$1","NO_METHOD_PARAMS","RESET_METHOD_PARAMS","AdapterReloadParams","reloadIndex","RELOAD_METHOD_PARAMS","AdapterPrependParams","increase","PREPEND_METHOD_PARAMS","AdapterAppendParams","decrease","APPEND_METHOD_PARAMS","AdapterRemoveParams","indexes","REMOVE_METHOD_PARAMS","AdapterClipParams","backwardOnly","forwardOnly","CLIP_METHOD_PARAMS","AdapterInsertParams","before","beforeIndex","afterIndex","INSERT_METHOD_PARAMS","AdapterReplaceParams","fixRight","REPLACE_METHOD_PARAMS","AdapterUpdateParams","UPDATE_METHOD_PARAMS","AdapterFixParams","scrollPosition","updater","scrollToItem","scrollToItemOpt","FIX_METHOD_PARAMS","AdapterMethods","ADAPTER_METHODS","WorkflowProps","Routines","WORKFLOW","instanceIndex","parseInput","initializeDelay","getInitializeDelay","history","BaseProcessFactory","BaseProcess","BaseAdapterProcessFactory","BaseAdapterProcess","ignoreErrors","_process","logger","workflow","initProcesses","Init","isInitial","logCycle","startWorkflowCycle","Scroll","onSynthetic","onThrottle","synthPos","syntheticPosition","syntheticFulfill","getScrollEvent","previous","timeDiff","shouldDelay","alreadyDelayed","scrollTimer","cycle","busy","Reset","paddings","data_1","constructed_1","finalize","interrupter","Reload","routines","nodeId","invisible","toRemove","toInsert","preSize","makeVisible","makeElementVisible","hideElement","argument","updateIndex","Update","shouldUpdate","doUpdate","getEdgeVisibleItem","firstItem","firstItemDiff","updateItems","trackedIndex","trackedItem","getSizeByIndex","checkDefaultSize","toRender","Insert","shouldInsert","doInsert","insertEmpty","insertInBuffer","insertVirtually","fillEmpty","indexToInsert","getIndexToInsert","isBackward","simulate","Append","shouldAppend","doAppend","opposite","Check","cacheItem","indexBuffer","stat","shouldRemove","doRemove","removeBufferedItems","shouldBuffered","diffLeft_1","diffRight_1","shouldVirtual","removeVirtualItems","newPredicate","indexesToRemove","finiteAbsMinIndex","finiteAbsMaxIndex","removeVirtually","shiftFirstVisibleIndex","listToRemove","UserClip","forceForward","forceBackward","Replace","shouldReplace","doReplace","Pause","FixParams","Fix","runByType","methodData","setScrollPosition","setMinIndex","setMaxIndex","getScrollableSize","updateReference","startInnerLoop","PreFetch","setPositionsAndIndexes","skipBufferedItems","checkBufferGaps","checkFetchPackSize","setFetchDirection","getStatus","initiator","setPositions","setFirstIndex","setLastIndex","positions","paddingDelta","getBufferPadding","startDelta","getStartDelta","relative","firstIndexPosition","innerLoop","packs","pack","hasAnotherPack","fetchFirst","bufferLast","bufferFirst","fetchLast","shouldFetch","newLastIndex","newFirstIndex","direction_1","Fetch","newItemsData","fail","scroll_1","fetch_1","positionBeforeAsync","immediateData","immediateError","getResult","_get","sub_1","_resolve","_reject","PostFetch","setBufferLimits","hasNewItems","fetchIndex","Render","doRender","noSize","positionBefore","isCheck","sizeBefore","processElement","sizeAfter","findItemElementById","End","calculateParams","interrupted","isInterrupted","shouldContinueRun","endInnerLoop","setFirstOrLastVisible","Adjust","positionBeforeAdjust","setPaddings","positionAfterAdjust","calculatePosition","setAdditionalForwardPadding","getFirstVisibleItem","lastItem","getLastVisibleItem","bwdSize","fwdSize","scrollSize","viewportSizeDiff","shouldCheckPreSizeExpectation_1","shouldCheckPreSizeExpectation","getMaxScrollPosition","hasPositionChanged","cancelAnimation","inertiaDiff","diffLog","PreClip","prepareClip","doClip","shouldNotClip","prepareClipByDirection","isForward","force","edgeIndex","removeDirection","Clip","callCount","itemsToRemove","byDirection","Logger","logs","logAdapterMethod","getStat","getVisibleItemsCount","getFetchRange","getLoopId","loopId","getLoopIdNext","loopIdNext","getWorkflowCycleData","getScrollPosition","HTMLDocument","logStyles_1","_text_1","logStyles_2","prepareForLog","Event","logProcess","loopLog","parent_1","logData","logStyles","logStyles_3","logForce","logArgs","getViewportElement","onInit","checkElement","scrollRestoration","overflowAnchor","findElementBySelector","findPaddingElement","findItemElement","findItemChildBySelector","scrollY","scrollX","getElementParams","getWindowParams","getScrollerSize","getViewportSize","getSizeStyle","setSizeStyle","getEdge","getViewportEdge","timeoutId","animationFrameId","cancelAnimationFrame","eventReceiver","Padding","Paddings","viewportSize","positive","getPositiveSize","negative","getNegativeSize","positiveSize","negativeSize","Viewport","setOffset","bwd","viewportEdge","SizesRecalculation","newItems","oldItems","DefaultSize","sizeMap","recalculation","constantSize","frequentSize","averageSize","averageSizeFloat","recalculateAverageSize","cacheSize","oldSize","newSize","removedSize","recalculateFrequentSize","oldFrequentSizeCount","mostFrequentCount","listEqual","recalculate","setExisted","setNew","setRemoved","ItemCache","saveData","changeIndex","Cache","getDefaultSize","recalculateDefaultSize","itemCache","insertItems","removeItems","updateSubset","leftDiff","rightDiff","minB","maxB","shiftIndexes","CheckBufferCall","insertVirtual","onDataChanged","changeItems","checkCall","startIndexUser","minIndexUser","maxIndexUser","setCurrentStartIndex","newStartIndex","checkBOF","checkEOF","_absMinIndex","_absMaxIndex","shiftExtremum","shifted","_loop_1","this_1","generator","indexToTrack","beforeMap","updateArray","_loop_2","this_2","toRemove_1","newItem","itemsBefore","getFirstVisibleItemIndex","getLastVisibleItemIndex","InnerLoopModel","WorkflowCycleModel","cycleCount","loopCount","forever","Positions","FirstVisible","FetchModel","_newItemsData","lastBufferedIndex","lastFetched","startSimulate","stopSimulate","ClipModel","RenderModel","ScrollModel","stop","endWorkflowCycle","ADAPTER_PROPS_STUB","ALLOWED_METHODS_WHEN_PAUSED","_has","convertAppendArgs","Adapter","getWorkflow","demand","relax$","relaxRun","reloadCounter","contextId","adapterProps","reactiveProp","processWanted","getWorkflowRunnerMethod","nonPermanentScalar","externalContext","getPromisifiedMethod","adapterRun$","relax$_1","unSubRelax","resetContext","getOwnPropertyNames","disposed","reactiveStore","reloadId","convertRemoveArgs","relaxUnchained","runCallback","instanceCount","CustomRoutines","__Routines_1","__Routines","initDatasource","constructed","mockAdapter","Workflow","validationResult","isInitialized","initTimer","cyclesDone","interruptionCount","offScroll","propagateChanges","stateMachineMethods","runProcess","interrupt","getUpdater","callWorkflow","processSubject","runStateMachine","loop","logger_1","reInit","UiScrollComponent_div_1_ng_template_1_Template","UiScrollComponent_div_1_Template","UiScrollComponent","changeDetector","elementRef","ɵcmp","UiScrollDirective","templateRef","uiScrollOf","uiScrollRoutines","componentRef","createComponent","UiScrollModule","getBooleanSubjectPropConfig","getItemBehaviorSubjectPropConfig","AngularDatasource","getAdapterConfig","EventListItemInfoComponent","EventListItemInfoComponent_span_1_Template","EventListItemInfoComponent_span_2_Template","EventListItemInfoComponent_span_5_Template","EventListItemInfoComponent_span_6_Template","EventItemComponent","FuelItemComponent","IV","invoiceDiff","AreaItemComponent","onClickArea$","EVENT_TYPE","onClickItemList","EventListComponent_div_1_ng_template_2_app_event_item_2_Template","EventListComponent_div_1_ng_template_2_app_fuel_item_3_Template","EventListComponent_div_1_ng_template_2_app_area_item_4_Template","selectedItemList","listEventType","EventListComponent_div_1_ng_container_1_Template","EventListComponent_div_1_ng_template_2_Template","isGroup","itemTemplate_r4","EventListComponent","eventDrawer","onClickArea","onClickFuelOrAlarm","getDataSlice","EventListComponent_div_1_Template","filterTypeAlarmConfig","selectedTab","EventActionTypeAlarm","filtersAlarmTypesCurrentFilters","onSubmitFiltersEventTypeFuel","filterEventTypeFuelConfig","EventActionTypeFuel","filtersEventTypeFuelCurrentFilters","onSubmitFiltersEventTypeArea","filterEventTypeAreaConfig","EventActionTypeArea","filterEventTypeAreaCurrentFilters","FiltersEventsComponent_ng_container_10_ng_container_3_Template","FiltersEventsComponent","eventService","toogleDatePicker$","isVisibleDatepicker","FiltersEventsComponent_app_filter_control_3_Template","FiltersEventsComponent_app_filter_control_4_Template","FiltersEventsComponent_app_filter_control_5_Template","FiltersEventsComponent_ng_container_10_Template","goToTab","getStyleClassForTab","EventListLiteComponent_div_0_div_13_p_skeleton_1_Template","eventsList","EventListLiteComponent_div_0_ng_template_14_app_event_list_0_Template","EventListLiteComponent_div_0_ng_template_14_app_event_list_1_Template","EventListLiteComponent_div_0_ng_template_14_app_event_list_2_Template","EventListLiteComponent_div_0_div_7_Template","EventListLiteComponent_div_0_div_8_Template","EventListLiteComponent_div_0_div_9_Template","EventListLiteComponent_div_0_div_13_Template","EventListLiteComponent_div_0_ng_template_14_Template","EventListLiteComponent_div_0_div_16_Template","isAlarmsTabEnabled","isFuelTabEnabled","isAreasTabEnabled","formFilters","dataListLoaded_r7","EventListLiteComponent","$eventDrawer","unreadTypes","firstFilterRequest","Dates","isAlarmsPermitted","isFuelPermitted","isAreasPermitted","getEvents","onChangeAlarmFiltersData","GetEventsSubsc","unreadEventCountSub","markTabAsRead","getEventsAdSubsc","alarmFiltersRequestBody","transformData","sortEventsByDate","EventActionType","getEventTypeParamFormName","flatData","currentGroup","getDateGroupTitle","itemDate","groupTitle","EventListLiteComponent_div_0_Template","selectedAreaId","AreaListLiteComponent_div_0_div_13_ng_container_3_ng_template_2_Template","AreaListLiteComponent_div_0_div_13_div_1_Template","AreaListLiteComponent_div_0_div_13_div_2_Template","AreaListLiteComponent_div_0_div_13_ng_container_3_Template","onDelete","selectedArea","selectedAreaTypeSubject","AreaListLiteComponent_div_0_div_13_Template","AreaListLiteComponent_div_0_div_14_Template","viewMode","ViewMode","AreaListLiteComponent","$area","$areaDrawer","areaSub","selectedAreaSub","selectedAreaTypeSub","savingDoneSub","selectArea","AreaListLiteComponent_div_0_Template","FullPanelContainerComponent_div_0_ng_container_1_Template","currentTemplate","FullPanelContainerComponent","FullPanelContainerComponent_div_0_Template","ActivateETollComponent","etollSelectedBalance","onChangeSelectedBalance","IdETollBalance","Balance","BalanceDate","EtollDropdownBalanceComponent_ng_container_1_div_9_Template","LOCAL_STORAGE_SELECTED_BALANCE_ID","EtollDropdownBalanceComponent","pinnedBalanceAccId","onSelectedBalance$","isETollRegistered","loadETollData","getBalanceById","balance","processETollData","selectPinnedBalanceInit","selectedBalance","firstBalance","EtollDropdownBalanceComponent_ng_container_1_Template","EtollDropdownBalanceComponent_app_activate_etoll_2_Template","RightPanelContainerComponent_div_0_ng_container_1_Template","RightPanelContainerComponent","RightPanelContainerComponent_div_0_Template","selectedEtollBalance","adControlService","PanelComponent_ng_container_10_app_ad_fuel_saving_1_Template","PanelComponent_ng_container_10_ng_template_2_Template","otherTypeAdVisible_r4","showChat","showNewsPanel","onShowHelp","onButtonMouseOver","onButtonMouseOut","onShowProfile","isProfilePanelOpened","chrismatHatConfigLottie","onOpenVehiclesPanel","isVehiclesButtonActive","isVehiclePanelOpened","onClickVehicleFullListModule","isVehicleFullListOpened","unreadEventsCount","onOpenEventsPanel","PanelComponent_div_20_div_2_Template","isEventsButtonActive","isEventsPanelOpened","onOpenDataSharingPanel","isDataSharingButtonActive","isDataSharingPanelOpened","onOpenHandoverPanel","isHandoverButtonActive","isHandoverPanelOpened","onOpenWorkerPanel","directoriesDropdownOptions","isWorkerPanelOpened","isWorkerAddFormPanelOpened","PanelComponent_app_right_panel_container_39_ng_template_1_app_help_0_Template","isCurrentActive","PanelComponent_app_right_panel_container_39_ng_template_1_Template","sidePanelTemp_r12","PanelComponent_ng_template_41_dsm_root_route_0_Template","PanelComponent_ng_template_52_handovermod_main_route_0_Template","PanelComponent_ng_template_55_app_workers_0_Template","PanelComponent_ng_template_58_app_workers_add_form_0_Template","appRoutesModule","redirectTo","pathMatch","loadChildren","AuthenticationModule","PanelComponent","isVehiclesHovered","isEventsHovered","isWorkerButtonActive","isWorkerHovered","isDataSharingHovered","isHelpButtonActive","isHelpPanelOpened","isHelpHovered","isAreaButtonActive","isAreasPanelOpened","isAreaHovered","isHandoverHovered","titleService","appInitializationService","hasPermissionToWorkers","hasPermissionToVehicles","hasPermissionToVehiclesList","hasPermissionToEvents","hasAccessToDataSharing","logErrorInApi","subscribeToParamMap","subscribeToQueryParamMap","setControlsVisibility","subToMapPanelVisibility","afterAuthenticationFinished","refreshUrlParams","checkMonthlyTask","onSelectedBalance","onChangeMapModule","mapModule","isVisibleAreasModule","hideSwitchMapPanelOnChangeModule","hideAreasModule","hideNewsModule","isVisibleNewsModule","hideRightPanelsWhenOpenLeftPanels","markEventsAsRead","elementName","setHoveredState","onOpenTekomWebsite","vehicleOnMapClicked","currentNavInfo","allClosed","isLiteOpen","isFullOpen","subscriptionsAfterInitialDataLoaded","subToEventsCountChange","setUnreadEventsNum","setVisibleSegment","isEventsPermitted","setTitle","updateClientIdInRouteQueryParams","setPermissionsToPanelOptions","isAreasManagementPermitted","hasModuleAreasManagement","lastRunDateStr","lastRunDate","isMonthPassedSineShowNewsPanel","oneMonthInMs","i14","i15","i16","i17","i18","i19","i20","PanelComponent_span_5_Template","PanelComponent_ng_container_10_Template","PanelComponent_ng_container_12_Template","PanelComponent_ng_lottie_16_Template","PanelComponent_div_18_Template","PanelComponent_div_19_Template","PanelComponent_div_20_Template","PanelComponent_div_21_Template","PanelComponent_div_22_Template","PanelComponent_app_dropdown_menu_23_Template","PanelComponent_am_select_language_30_Template","PanelComponent_tk_event_list_lite_35_Template","PanelComponent_tk_vehicle_panel_lite_36_Template","PanelComponent_tk_vehicle_list_full_37_Template","PanelComponent_tk_vehicle_details_38_Template","PanelComponent_app_right_panel_container_39_Template","PanelComponent_ng_template_41_Template","PanelComponent_tk_area_list_lite_45_Template","PanelComponent_tk_notification_50_Template","PanelComponent_ng_template_52_Template","PanelComponent_ng_template_55_Template","PanelComponent_ng_template_58_Template","fullPanelTemp_r14","handoverTemp_r15","workersTemp_r16","workersFormTemp_r17","AppRoutesModule","forRoot","ng","common","locales","CAD","CNY","GBP","HKD","ILS","INR","KRW","MXN","NZD","PLN","VND","OfflineDialogComponent","listOfAddressesWhichIsAvailableInMobileDevice","IfAddressIsAvailableOnThePhonePipe","HotjarService","tryInject","getHotjarScript","AppComponent","hotjarService","ifAddressIsAvailableOnThePhonePipe","isMobile","isVisibleNotSupportedMobileOsMessage","onRouterChange$","initLibraries","onChangeRoute","dectectOfflineMode","subscribeToGoogleAnalytics","urlAfterRedirects","openMobileStore","setDateFnsDefaultOptions","setDefaultOptions","_property","setInternalDefaultOptions","showOffline","ga","osName","AppComponent_div_0_Template","AppComponent_div_3_Template","tmp_0_0","ScrollBarModule","NgFormsModule","isBusy","_worker","terminate","ScrollService","DEBOUNCE_TIME","SCROLL_SPEED_IN_PERCENT","getObjectsToShow$","objects$","scroll$","start$","getStartIndex$","initial","ratio","numObjects","scan","lo","DataListService","currentResultSet","currentResultStream","currentStartChunk","chunkSize","stepSize","GetNextChunk","SendChunk","GetPrevChunk","IsFirstChunk","SetResultSet","chunk","GetResultSet","VehicleFullListService","inidicatorValueSubject","ServicesModule","DatePipe","CommonsModule","MapModule","AreaListFilterComponent","formValueChangesSub","AreaListFilterComponent_div_5_Template","addArea","Step","TypeSelection","Definition","AreaCreateComponent","goToDefinition","stepSubject","stepSub","selectAreaType","AreaCreateComponent_div_12_Template","AreaCreateComponent_div_13_Template","AreaListItemComponent","$areaService","ClearOnForcusDirective","onFocusChanged","newAreaNamePlaceHolder","AreaFormInputComponent","getAreaIconTypeClass","AreaFormInputComponent_span_7_Template","confirm","deny","AreaDeleteComponent","showDeleteModal","confirmationTrans","AreaDeleteComponent_div_2_Template","subThickness","addThickness","onDeleteDone","isSavingEnabled","THICKNESS_INTERVAL_IN_METERS","drawnAreaSub","AreaFormComponent_div_2_Template","AreaFormComponent_tk_area_delete_10_Template","UserProfileModule","HelpModule","CalendarStyle","ɵCalendarStyle_BaseFactory","Calendar_ng_template_2_ng_container_2_TimesIcon_1_Template","Calendar_ng_template_2_ng_container_2_span_2_1_ng_template_0_Template","Calendar_ng_template_2_ng_container_2_span_2_1_Template","Calendar_ng_template_2_ng_container_2_span_2_Template","Calendar_ng_template_2_ng_container_2_Template","Calendar_ng_template_2_button_3_span_1_Template","Calendar_ng_template_2_button_3_ng_container_2_CalendarIcon_1_Template","Calendar_ng_template_2_button_3_ng_container_2_2_ng_template_0_Template","Calendar_ng_template_2_button_3_ng_container_2_2_Template","Calendar_ng_template_2_button_3_ng_container_2_Template","Calendar_ng_template_2_button_3_Template","Calendar_ng_template_2_ng_container_4_CalendarIcon_2_Template","Calendar_ng_template_2_ng_container_4_ng_container_3_Template","Calendar_ng_template_2_ng_container_4_Template","Calendar_ng_template_2_Template","Calendar_div_3_ng_container_3_Template","Calendar_div_3_ng_container_4_div_2_ChevronLeftIcon_3_Template","Calendar_div_3_ng_container_4_div_2_span_4_1_ng_template_0_Template","Calendar_div_3_ng_container_4_div_2_span_4_1_Template","Calendar_div_3_ng_container_4_div_2_span_4_Template","Calendar_div_3_ng_container_4_div_2_button_6_Template","Calendar_div_3_ng_container_4_div_2_button_7_Template","Calendar_div_3_ng_container_4_div_2_span_8_ng_container_1_Template","Calendar_div_3_ng_container_4_div_2_span_8_ng_container_2_Template","Calendar_div_3_ng_container_4_div_2_span_8_Template","Calendar_div_3_ng_container_4_div_2_ChevronRightIcon_10_Template","Calendar_div_3_ng_container_4_div_2_span_11_1_ng_template_0_Template","Calendar_div_3_ng_container_4_div_2_span_11_1_Template","Calendar_div_3_ng_container_4_div_2_span_11_Template","Calendar_div_3_ng_container_4_div_2_table_12_th_3_Template","Calendar_div_3_ng_container_4_div_2_table_12_th_4_Template","Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_1_Template","Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_2_Template","Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_3_ng_container_1_Template","Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_3_Template","Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_4_ng_container_1_Template","Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_4_Template","Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_div_5_Template","Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_Template","Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_Template","Calendar_div_3_ng_container_4_div_2_table_12_tr_6_Template","Calendar_div_3_ng_container_4_div_2_table_12_Template","Calendar_div_3_ng_container_4_div_2_Template","Calendar_div_3_ng_container_4_div_3_span_1_div_2_Template","Calendar_div_3_ng_container_4_div_3_span_1_Template","Calendar_div_3_ng_container_4_div_3_Template","Calendar_div_3_ng_container_4_div_4_span_1_div_2_Template","Calendar_div_3_ng_container_4_div_4_span_1_Template","Calendar_div_3_ng_container_4_div_4_Template","Calendar_div_3_ng_container_4_Template","Calendar_div_3_div_5_ChevronUpIcon_3_Template","Calendar_div_3_div_5_4_ng_template_0_Template","Calendar_div_3_div_5_4_Template","Calendar_div_3_div_5_ng_container_6_Template","Calendar_div_3_div_5_ChevronDownIcon_9_Template","Calendar_div_3_div_5_10_ng_template_0_Template","Calendar_div_3_div_5_10_Template","Calendar_div_3_div_5_ChevronUpIcon_16_Template","Calendar_div_3_div_5_17_ng_template_0_Template","Calendar_div_3_div_5_17_Template","Calendar_div_3_div_5_ng_container_19_Template","Calendar_div_3_div_5_ChevronDownIcon_22_Template","Calendar_div_3_div_5_ng_container_23_1_ng_template_0_Template","Calendar_div_3_div_5_ng_container_23_1_Template","Calendar_div_3_div_5_ng_container_23_Template","Calendar_div_3_div_5_div_24_Template","Calendar_div_3_div_5_div_25_ChevronUpIcon_2_Template","Calendar_div_3_div_5_div_25_3_ng_template_0_Template","Calendar_div_3_div_5_div_25_3_Template","Calendar_div_3_div_5_div_25_ng_container_5_Template","Calendar_div_3_div_5_div_25_ChevronDownIcon_8_Template","Calendar_div_3_div_5_div_25_9_ng_template_0_Template","Calendar_div_3_div_5_div_25_9_Template","Calendar_div_3_div_5_div_25_Template","Calendar_div_3_div_5_div_26_Template","Calendar_div_3_div_5_div_27_ChevronUpIcon_2_Template","Calendar_div_3_div_5_div_27_3_ng_template_0_Template","Calendar_div_3_div_5_div_27_3_Template","Calendar_div_3_div_5_div_27_ChevronDownIcon_7_Template","Calendar_div_3_div_5_div_27_8_ng_template_0_Template","Calendar_div_3_div_5_div_27_8_Template","Calendar_div_3_div_5_div_27_Template","Calendar_div_3_div_5_Template","Calendar_div_3_div_6_Template","Calendar_div_3_ng_container_8_Template","Calendar_div_3_Template","CALENDAR_VALUE_ACCESSOR","Calendar","CalendarModule","DataSharingModule","showTimeoutModalService","showErrorModalService","subscribeToError","subscribeToHttpProgressInterceptorEvents","MapPanelModule","HandoverModule","AreasModule","AdsModule","NewsModule","itemScrollTrackTop","itemScrollTrackHeight","ScrolledBarComponent","scrollTrackVisible","isDragged","isDraggedTop","isDraggedClientTop","itemScrollTrackHeightDiff","itemsScrollHeight","deltaSub","optionsSub","calculateTrackHeight","layerY","cancelBubble","returnValue","ScrolledBarComponent_div_0_Template","LayoutModule","LottieComponent","SurveyModule","HttpLoaderFactory","AppModule","bootstrap","ErrorHandler","service","DEFAULT_CURRENCY_CODE","HTTP_INTERCEPTORS","providePrimeNG","Aura","darkModeSelector","provideLottieOptions","HttpClientModule","defaultLanguage","TranslateLoader","HttpClient","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch","require","BlockCipher","lib","C_algo","algo","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","x4","x8","RCON","AES","_doReset","_nRounds","_keyPriorReset","keyWords","words","keySize","sigBytes","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","encryptBlock","_doCryptBlock","decryptBlock","nRounds","s0","s3","t0","_createHelper","ORIG_P","ORIG_S","BLOWFISH_CTX","pbox","sbox","BlowFish_Encrypt","temp","Xl","Xr","Blowfish","BlowFishInit","keysize","Row","Col","keyIndex","Data1","Data2","BlowFish_Decrypt","blockSize","ivSize","C_lib","WordArray","BufferedBlockAlgorithm","C_enc","Base64","EvpKDF","Cipher","C_mode","BlockCipherMode","CBC","Pkcs7","CipherParams","OpenSSLFormatter","SerializableCipher","OpenSSLKdf","PasswordBasedCipher","cfg","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","dataUpdate","_append","_doFinalize","selectCipherStrategy","cipher","encrypt","decrypt","ciphertext","StreamCipher","iv","Encryptor","Decryptor","_cipher","_iv","xorBlock","_prevBlock","processBlock","thisBlock","pad","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","unpad","modeCreator","_minBufferSize","__creator","_doProcessBlock","finalProcessedBlocks","cipherParams","mixIn","OpenSSL","salt","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","kdf","execute","hasher","compute","derivedParams","crypto","msCrypto","cryptoSecureRandomInt","getRandomValues","randomBytes","readInt32LE","subtype","overrides","$super","encoder","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","nBytes","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","decodeURIComponent","utf8Str","unescape","encodeURIComponent","_nDataBytes","doFlush","processedWords","dataWords","dataSigBytes","nBlocksReady","nWordsReady","nBytesReady","Hasher","messageUpdate","_createHmacHelper","HMAC","base64Chars","triplet","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","parseLoop","bits1","bits2","Base64url","urlSafe","_safe_map","swapEndian","Utf16","Utf16BE","utf16Chars","utf16Str","utf16StrLength","Utf16LE","codePoint","MD5","iterations","derivedKey","derivedKeyWords","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","superInit","subInit","typedArray","Int8Array","Uint8ClampedArray","Int16Array","typedArrayByteLength","_hash","offset_i","M_offset_i","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","HmacMD5","generateKeystreamAndEncrypt","keystream","CTRGladman","incWord","b1","b3","_counter","incCounter","CTR","ECB","OFB","_keystream","AnsiX923","lastBytePos","Ansix923","Iso10126","Iso97971","ZeroPadding","NoPadding","PBKDF2","SHA256","hmac","blockIndex","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","C_","RabbitLegacy","_X","IV_0","IV_1","gx","gb","Rabbit","RC4","keySigBytes","_S","keyByteIndex","generateKeystreamWord","keystreamWord","RC4Drop","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","al","dl","ar","br","cr","dr","er","zl","zr","sr","f4","f5","rotl","HmacRIPEMD160","SHA1","HmacSHA1","SHA224","HmacSHA224","isPrime","sqrtN","getFractionalBits","nPrime","gamma0x","gamma1x","maj","HmacSHA256","X64Word","x64","Word","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","nBlockSizeLanes","M2i","M2i1","lane","high","low","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","C_x64","X64WordArray","SHA512","SHA384","HmacSHA384","X64Word_create","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","bh","ch","dh","eh","fh","gh","gl","hh","Wil","Wih","Wi","gamma0xh","gamma0xl","gamma0l","gamma1xh","gamma1xl","gamma1l","Wi7","Wi16","Wi16l","t1l","chh","chl","majh","sigma0l","Ki","Kil","t1h","t2l","toX32","HmacSHA512","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","TripleDES","key3","_des1","_des2","_des3","X32WordArray","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","roundingMap","defaultRoundingMethod","millisecondsInMinute","dirtyIndex","valuesArray","_defaultWidth","_width","matchedString","findKey","parseResult","__WEBPACK_DEFAULT_EXPORT__","_date","rem100","regular","past","future","twoFour","declension","declensionGroup","rem10","adjectivesLastWeek","masculine","feminine","adjectivesThisWeek","adjectivesNextWeek","dayGrammaticalGender","dayAndTimeWithAdjective","baseDate","adjectives","isSameUTCWeek","dateLeftStartOfWeek","dateRightStartOfWeek","_options$additionalDi","additionalDigits","dateStrings","splitDateString","dateString","patterns","dateTimeDelimiter","timeZoneDelimiter","timezone","parseYearResult","parseYear","regex","captures","restDateString","century","dateRegex","isWeekDate","parseDateUnit","validateWeekDate","_year","dayOfISOWeekYear","validateDate","daysInMonths","isLeapYearIndex","validateDayOfYearDate","timeRegex","parseTimeUnit","validateTime","parseTimezone","timezoneString","timezoneRegex","validateTimezone","_hours","argStr","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","Control","Evented","Mixin","Events","zoomLevelFixed","centerFixed","zoomAnimation","autoToggleDisplay","collapsedWidth","collapsedHeight","clickable","shadowRectOptions","strings","hideText","showText","mapOptions","Util","_layer","onAdd","_mainMap","_container","disableClickPropagation","touchZoom","_isZoomLevelFixed","scrollWheelZoom","doubleClickZoom","boxZoom","crs","_miniMap","_mainMapMoving","_miniMapMoving","_userToggledDisplay","_minimized","_addToggleButton","whenReady","_aimingRect","rectangle","_shadowRect","_onMainMapMoved","_onMainMapMoving","_onMiniMapMoveStarted","_onMiniMapMoving","_onMiniMapMoved","_decideZoom","_setDisplay","_toggleDisplayButton","_createButton","_toggleButtonInitialTitleText","_toggleDisplayButtonClicked","_restore","_minimize","_onToggle","_decideMinimized","setBounds","lastAimingRect","sw","getSouthWest","ne","getNorthEast","_lastAimingRectPosition","_isDefined","_isInteger","fromMaintoMini","toRet","currentDiff","proposedZoom","_lastMiniMapZoom","requestAnimFrame","_fireToggleEvents","Browser","any3d","fire","mergeOptions","miniMapControl","addInitHook","define","minimap","NEWER","OLDER","LRUMap","oldest","newest","_keymap","Entry","EntryIterator","oldestEntry","KeyIterator","ValueIterator","_markEntryAsUsed","MAX_VALUE","it","itv","fun","thisObj","ent","GridLayer","GoogleMutant","maxNativeZoom","_tileCallbacks","_lru","_imagesPerTile","_boundOnMutatedImage","_onMutatedImage","this$1","_initMutantContainer","_logoContainer","_controlCorners","bottomleft","_attributionContainer","bottomright","waitForAPI","checkCounter","intervalId","google","maps","_initMutant","addListenerOnce","_mutant","_checkZoomLevels","_mutantIsReady","_observer","disconnect","_mutantContainer","clearListeners","addGoogleLayer","googleLayerName","_subLayers","googleLayer","Constructor","setMap","removeGoogleLayer","stamp","setOpacity","zoomSnap","_attachObserver","tilt","mapTypeId","disableDefaultUI","keyboardShortcuts","disableDoubleClickZoom","scrollwheel","_update","mapObject","_waitControls","_setupAttribution","MutationObserver","_onMutations","childList","subtree","layoutManager","__gm","Node","ControlPosition","ctr","BOTTOM_RIGHT","BOTTOM_LEFT","mutations","mutation","addedNodes","HTMLImageElement","_roadRegexp","_satRegexp","_staticRegExp","imgNode","sublayer","tileKey","_tileCoordsToKey","createTile","tileContainer","textAlign","pending","_clone","clonedImgNode","zoomLevel","gMapZoomLevel","_setMaxNativeZoom","_resetView","_center","mutantZoom","gridLayer","create$2","_leaflet_id","wrapperFn","later","wrapNum","includeMax","falseFn","formatNum","precision","splitWords","getParamString","existingUrl","uppercase","templateRe","emptyImageUrl","getPrefixed","lastTime","timeoutDefer","timeToCall","requestFn","cancelFn","cancelAnimFrame","__proto__","Class","NewClass","callInitHooks","parentProto","__super__","statics","checkDeprecatedMixinEvents","_initHooks","_initHooksCalled","include","parentOptions","_on","_events","_off","typeListeners","newListener","_firingCount","propagate","listens","sourceTarget","_propagateEvent","_eventParents","addEventParent","removeEventParent","propagatedFrom","clearAllEventListeners","addOneTimeEventListener","fireEvent","hasEventListeners","toPoint","Bounds","toBounds","corner1","corner2","toLatLngBounds","toLatLng","_add","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","scaleBy","unscaleBy","_round","_floor","_ceil","_trunc","distanceTo","getBottomLeft","getTopRight","getTopLeft","getBottomRight","intersects","min2","max2","overlaps","sw2","ne2","_southWest","_northEast","bufferRatio","heightBuffer","widthBuffer","getNorthWest","getSouthEast","toBBoxString","maxMargin","Earth","wrap","wrapLatLng","sizeInMeters","latAccuracy","lngAccuracy","CRS","latLngToPoint","projectedPoint","projection","transformation","_transform","pointToLatLng","untransformedPoint","untransform","getProjectedBounds","wrapLng","wrapLat","wrapLatLngBounds","newCenter","latShift","lngShift","latlng1","latlng2","rad","lat1","lat2","sinDLat","sinDLon","SphericalMercator","MAX_LATITUDE","Transformation","toTransformation","EPSG3857","EPSG900913","svgCreate","createElementNS","pointsToPath","rings","len2","svg","ie","ielt9","edge","userAgentContains","android","android23","webkitVer","androidStock","opera","gecko","phantom","opera12","ie3d","webkit3d","gecko3d","L_DISABLE_3D","mobile","mobileWebkit","mobileWebkit3d","msPointer","PointerEvent","MSPointerEvent","pointer","touchNative","TouchEvent","L_NO_TOUCH","mobileOpera","mobileGecko","retina","deviceXDPI","logicalXDPI","passiveEvents","supportsPassiveOption","canvas$1","getContext","svg$1","createSVGRect","inlineSvg","namespaceURI","vml","adj","canvas","POINTER_DOWN","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","pEvent","touchstart","touchmove","touchend","touchcancel","_onPointerStart","MSPOINTER_TYPE_TOUCH","_handlePointer","_pointers","_pointerDocListener","addPointerListener","_addPointerDocListener","_globalPointerDown","_globalPointerMove","_globalPointerUp","pointerId","MSPOINTER_TYPE_MOUSE","disableTextSelection","enableTextSelection","_userSelect","_outlineElement","_outlineStyle","TRANSFORM","testProp","TRANSITION","TRANSITION_END","getStyle","create$1","toFront","toBack","setClass","baseVal","correspondingElement","_setOpacityIE","filterName","Enabled","Opacity","_leaflet_pos","userSelectProperty","disableImageDrag","enableImageDrag","preventOutline","restoreOutline","getSizedParentNode","getScale","boundingClientRect","addOne","eventsKey","batchRemove","removeOne","filterFn","mouseSubst","mouseenter","mouseleave","wheel","originalHandler","addDoubleTapListener","simDblclick","sourceCapabilities","firesTouchEvents","makeDblclick","newEvent","isTrusted","_simulated","dblclick","isExternalTarget","attachEvent","removePointerListener","removeDoubleTapListener","handlers","detachEvent","_stopped","disableScrollPropagation","_leaflet_disable_click","getMousePosition","wheelPxFactor","getWheelDelta","wheelDeltaY","deltaMode","deltaZ","wheelDelta","PosAnimation","newPos","easeLinearity","_el","_inProgress","_easeOutPower","_startPos","_offset","_startTime","_animate","_complete","_animId","elapsed","_runFrame","_easeOut","progress","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","transform3DLimit","zoomDelta","trackResize","_handlers","_layers","_zoomBoundLayers","_sizeChanged","_initContainer","_initLayout","_onResize","_initEvents","_zoom","_zoomAnimated","_createAnimProxy","_proxy","_catchTransitionEnd","_addLayers","_limitCenter","_stop","_loaded","pan","_tryAnimatedZoom","_tryAnimatedPan","_sizeTimer","setZoomAround","getZoomScale","viewHalf","centerOffset","_getBoundsCenterZoom","paddingTL","paddingTopLeft","paddingBR","paddingBottomRight","getBoundsZoom","paddingOffset","swPoint","nePoint","fitWorld","panBy","_panAnim","_onPanTransitionStep","_onPanTransitionEnd","noMoveStart","_mapPane","_getMapPanePos","_rawPanBy","flyTo","targetCenter","targetZoom","startZoom","w0","w1","u1","rho","rho2","sq","sinh","cosh","r0","tanh","_moveStart","easeOut","_flyToFrame","_move","getScaleZoom","_moveEnd","flyToBounds","_panInsideMaxBounds","oldZoom","panInsideBounds","_enforcingBounds","panInside","pixelCenter","pixelPoint","pixelBounds","paddedBounds","paddedSize","_lastCenter","oldCenter","debounceMoveend","locate","_locateOptions","watch","_handleGeolocationError","onResponse","_handleGeolocationResponse","_locationWatchId","geolocation","watchPosition","getCurrentPosition","stopLocate","clearWatch","latitude","longitude","accuracy","addHandler","HandlerClass","_containerId","_clearControlPos","_resizeRequest","_clearHandlers","_panes","_renderer","createPane","pane","_checkIfLoaded","_moved","layerPointToLatLng","_getCenterLayerPoint","_layersMinZoom","_layersMaxZoom","inside","nw","se","boundsSize","snap","scalex","scaley","topLeftPoint","_getTopLeftPoint","getPixelOrigin","_pixelOrigin","getPixelWorldBounds","getPane","getPanes","toZoom","fromZoom","latLngToLayerPoint","containerPointToLayerPoint","layerPointToContainerPoint","layerPoint","mouseEventToContainerPoint","mouseEventToLayerPoint","mouseEventToLatLng","_onScroll","_fadeAnimated","_initPanes","_initControlPos","panes","_paneRenderers","markerPane","shadowPane","zoomChanged","supressEvent","_getNewPixelOrigin","pinch","_getZoomSpan","_targets","onOff","_handleDOMEvent","_onMoveEnd","_findEventTargets","targets","isHover","srcElement","_draggableMoved","_isClickDisabled","_leaflet_disable_events","_fireDOMEvent","_mouseEvents","canvasTargets","synth","isMarker","containerPoint","bubblingMouseEvents","enabled","_latLngToNewLayerPoint","topLeft","_latLngBoundsToNewLayerBounds","_getCenterOffset","centerPoint","viewBounds","_getBoundsOffset","_limitOffset","newBounds","pxBounds","projectedMaxBounds","minOffset","maxOffset","_rebound","proxy","mapPane","_animatingZoom","_onZoomTransitionEnd","_animMoveEnd","_destroyAnimProxy","_nothingToAnimate","_animateZoom","startAnim","noUpdate","_animateToCenter","_animateToZoom","_tempFireZoomEvent","addControl","corner","_refocusOnMap","screenX","screenY","corners","_controlContainer","createCorner","vSide","hSide","Layers","collapsed","hideSingleBase","sortLayers","layerA","layerB","nameA","nameB","baseLayers","overlays","_layerControlInputs","_lastZIndex","_handlingClick","_addLayer","_checkDisabledLayers","_onLayerChange","_expandIfNotCollapsed","addBaseLayer","addOverlay","_getLayer","expand","_section","acceptableHeight","collapse","_layersLink","_baseLayersList","_separator","_overlaysList","setZIndex","baseLayersPresent","overlaysPresent","baseLayersCount","_addItem","_createRadioElement","radioHtml","radioFragment","defaultChecked","layerId","_onInputClick","holder","addedLayers","removedLayers","Zoom","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","zoomName","_zoomInButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","Scale","metric","imperial","_addScales","updateWhenIdle","_mScale","_iScale","maxMeters","_updateScales","_updateMetric","_updateImperial","_getRoundNum","_updateScale","maxMiles","miles","feet","maxFeet","pow10","Attribution","ukrainianFlag","_attributions","getAttribution","addAttribution","_addAttribution","removeAttribution","setPrefix","attribs","prefixAndAttribs","attribution","Handler","_enabled","addHooks","removeHooks","_lastCode","START","Draggable","clickTolerance","dragStartTarget","_dragStartTarget","_preventOutline","_onDown","_dragging","finishDrag","_moving","sizedParent","_startPoint","_parentScale","mouseevent","_onUp","_lastTarget","SVGElementInstance","correspondingUseElement","_newPos","_lastEvent","_updatePosition","noInertia","simplify","tolerance","sqTolerance","_simplifyDP","_simplifyDPStep","newPoints","_reducePoints","reducedPoints","_sqDist","pointToSegmentDistance","_sqClosestPointOnSegment","maxSqDist","clipSegment","useLastCode","codeOut","newCode","codeA","_getBitCode","codeB","_getEdgeIntersection","isFlat","_flat","clipPolygon","clippedPoints","edges","PolyUtil","LonLat","Mercator","R_MINOR","con","tan","phi","dphi","EPSG3395","EPSG4326","Simple","Layer","removeFrom","_mapToAdd","addInteractiveTarget","removeInteractiveTarget","_layerAdd","beforeAdd","_addZoomLimit","_updateZoomLevels","_removeZoomLimit","oldZoomSpan","LayerGroup","getLayerId","invoke","getLayer","getLayers","bringToFront","Icon","popupAnchor","tooltipAnchor","crossOrigin","oldIcon","_createIcon","createShadow","_getIconUrl","_createImg","_setIconStyles","sizeOption","anchor","shadowAnchor","iconAnchor","IconDefault","iconRetinaUrl","shadowUrl","shadowSize","imagePath","_detectIconPath","_stripUrl","re","MarkerDrag","_marker","_draggable","dragstart","predrag","_onPreDrag","drag","_onDrag","dragend","_onDragEnd","_adjustPan","autoPanSpeed","autoPanPadding","panBounds","movement","_panRequest","_oldLatLng","_shadow","_latlng","oldLatLng","interactive","zIndexOffset","riseOffset","autoPanOnFocus","_initIcon","_removeIcon","_removeShadow","viewreset","getIcon","setIcon","_popup","_setPos","classToAdd","addIcon","_bringToFront","_resetZIndex","_panOnFocus","newShadow","addShadow","_updateOpacity","_initInteraction","_zIndex","_updateZIndex","iconOpts","_getPopupAnchor","_getTooltipAnchor","Path","stroke","lineCap","lineJoin","dashOffset","fillColor","fillRule","getRenderer","_initPath","_reset","_addPath","_removePath","redraw","_updatePath","_updateBounds","_bringToBack","_path","_project","_clickTolerance","CircleMarker","getRadius","_radiusY","_pxBounds","_updateCircle","_empty","_bounds","_containsPoint","legacyOptions","_mRadius","half","latR","lngR","acos","smoothFactor","noClip","_setLatLngs","getLatLngs","_latlngs","closestLayerPoint","minDistance","minPoint","jLen","_parts","halfDist","segDist","dist","_rings","addLatLng","_defaultShape","_convertLatLngs","_projectLatlngs","_rawPxBounds","projectedBounds","ring","_clipPoints","_simplifyPoints","_updatePoly","part","clipped","GeoJSON","geojson","addData","geometries","geometryToLayer","asFeature","resetStyle","onEachFeature","_setLayerStyle","pointToLayer","_coordsToLatLng","coordsToLatLng","_pointToLayer","coordsToLatLngs","pointToLayerFn","markersInheritOptions","levelsDeep","latLngToCoords","latLngsToCoords","getFeature","newGeometry","PointToGeoJSON","toGeoJSON","geoJSON","holes","toMultiPoint","isGeometryCollection","jsons","geoJson","ImageOverlay","errorOverlayUrl","_url","_image","_initImage","styleOpts","setUrl","zoomanim","wasElementSupplied","onselectstart","onmousemove","onload","_overlayOnError","errorUrl","VideoOverlay","autoplay","keepAspectRatio","muted","playsInline","onloadeddata","sourceElements","sources","objectFit","SVGOverlay","DivOverlay","_source","openOn","_prepareOpen","_removeTimeout","getContent","_content","_updateContent","_updateLayout","_contentNode","hasChildNodes","_getAnchor","_containerBottom","_containerLeft","_containerWidth","_initOverlay","OverlayClass","old","autoPanPaddingTopLeft","autoPanPaddingBottomRight","closeOnEscapeKey","closeOnClick","preclick","moveend","wrapper","_wrapper","_tipContainer","_tip","_closeButton","whiteSpace","scrolledClass","layerPos","containerPos","_popupHandlersAdded","_openPopup","keypress","_onKeyPress","_movePopup","unbindPopup","togglePopup","isPopupOpen","setPopupContent","sticky","_setPosition","subX","subY","tooltipPoint","tooltipWidth","tooltipHeight","openTooltip","closeTooltip","_tooltip","isTooltipOpen","_initTooltipInteractions","_tooltipHandlersAdded","_moveTooltip","_openTooltip","toggleTooltip","setTooltipContent","moving","bgPos","backgroundPosition","tileSize","updateWhenZooming","updateInterval","minNativeZoom","noWrap","keepBuffer","_levels","_tiles","_removeAllTiles","_tileZoom","_setAutoZIndex","tileZoom","_clampZoom","_updateLevels","viewprereset","_invalidateAll","getTileSize","edgeZIndex","nextFrame","willPrune","fade","_onOpaqueTile","_noPrune","_pruneTiles","_fadeFrame","_onUpdateLevel","_removeTilesAtZoom","_onRemoveLevel","_setZoomTransform","_onCreateLevel","_level","retain","_retainParent","_retainChildren","_removeTile","coords2","_setView","noPrune","_abortLoading","_resetGrid","_setZoomTransforms","_tileSize","_globalTileRange","_pxBoundsToTileRange","_wrapX","_wrapY","_getTiledPixelBounds","mapZoom","halfSize","tileRange","tileCenter","queue","noPruneRange","_isValidTile","createDocumentFragment","_addTile","tileBounds","_tileCoordsToBounds","_keyToBounds","_keyToTileCoords","_tileCoordsToNwSe","nwPoint","sePoint","bp","_initTile","tilePos","_getTilePos","_wrapCoords","_tileReady","_noTilesToLoad","newCoords","subdomains","errorTileUrl","zoomOffset","tms","zoomReverse","detectRetina","referrerPolicy","_onTileRemove","noRedraw","_tileOnLoad","_tileOnError","getTileUrl","_getSubdomain","_getZoomForUrl","invertedY","tilePoint","tileLayer","TileLayerWMS","defaultWmsParams","transparent","wmsParams","realRetina","_crs","_wmsVersion","setParams","WMS","wms","tileLayerWMS","Renderer","_updatePaths","_destroyContainer","_onZoom","zoomend","_onZoomEnd","_onAnimZoom","_updateTransform","currentCenterPoint","topLeftOffset","Canvas","_onViewPreReset","_postponeUpdatePaths","_draw","_onMouseMove","_onClick","_handleMouseOut","_ctx","_redrawRequest","_redrawBounds","_redraw","_updateDashArray","_order","_drawLast","_drawFirst","_requestRedraw","_extendRedrawBounds","dashValue","_dashArray","_clear","clearRect","restore","beginPath","closePath","_fillStroke","arc","globalAlpha","fillStyle","setLineDash","strokeStyle","clickedLayer","_fireEvent","_handleMouseHover","_hoveredLayer","_mouseHoverThrottled","candidateHoveredLayer","vmlCreate","vmlMixin","_stroke","_fill","stroked","dashStyle","endcap","_setPath","SVG","_rootGroup","_svgSize","_getPaneRenderer","_createRenderer","preferCanvas","Rectangle","_boundsToLatLngs","BoxZoom","_pane","overlayPane","_resetStateTimeout","_destroy","_onMouseDown","_resetState","_clearDeferredResetState","mouseup","_onMouseUp","keydown","_onKeyDown","_box","_finish","boxZoomBounds","DoubleClickZoom","_onDoubleClick","inertia","inertiaDeceleration","inertiaMaxSpeed","worldCopyJump","maxBoundsViscosity","Drag","_onPreDragLimit","_onPreDragWrap","_positions","_times","_offsetLimit","_viscosity","_lastTime","_lastPos","_absPos","_prunePositions","pxCenter","pxWorldCenter","_initialWorldOffset","_worldWidth","_viscousLimit","worldWidth","halfWidth","newX1","newX2","newX","ease","speedVector","limitedSpeed","limitedSpeedVector","decelerationDuration","keyboardPanDelta","Keyboard","keyCodes","down","up","_setPanDelta","_setZoomDelta","_onFocus","_onBlur","mousedown","_addHooks","_removeHooks","_focused","docEl","panDelta","_panKeys","_zoomKeys","wheelDebounceTime","wheelPxPerZoomLevel","ScrollWheelZoom","_onWheelScroll","_delta","debounce","_lastMousePos","_timer","_performZoom","d3","d4","tapHold","tapTolerance","TapHold","_holdTimeout","_cancel","_isTapValid","_cancelClickPrevent","_simulateEvent","cancelClickPrevent","simulatedEvent","MouseEvent","bounceAtZoomLimits","TouchZoom","_onTouchStart","_zooming","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","_startZoom","_onTouchEnd","_animRequest","moveFn","Projection","circleMarker","divIcon","featureGroup","imageOverlay","layerGroup","createMap","svgOverlay","videoOverlay","video","oldL","noConflict","FUNC_ERROR_TEXT","HASH_UNDEFINED","PLACEHOLDER","INFINITY","MAX_SAFE_INTEGER","MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboRange","rsComboMarksRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsVarRange","rsBreakRange","rsMathOpRange","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsModifier","rsOptVar","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","stringEscapes","freeParseFloat","freeParseInt","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","binding","nodeIsArrayBuffer","isArrayBuffer","nodeIsDate","nodeIsMap","isMap","nodeIsRegExp","isRegExp","nodeIsSet","nodeIsTypedArray","isTypedArray","thisArg","arrayAggregator","setter","iteratee","accumulator","arrayEach","arrayEachRight","arrayEvery","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","baseFindKey","collection","eachFunc","baseFindIndex","fromIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseTimes","baseTrim","trimmedEndIndex","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","deburrLetter","escapeHtmlChar","escapeStringChar","hasUnicode","overArg","replaceHolders","setToArray","stringSize","unicodeSize","stringToArray","unicodeToArray","asciiToArray","unescapeHtmlChar","runInContext","uid","pick","arrayProto","objectProto","coreJsData","funcToString","idCounter","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","oldDash","reIsNative","getPrototype","getPrototypeOf","objectCreate","spreadableSymbol","isConcatSpreadable","symIterator","symToStringTag","toStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","isObjectLike","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","Hash","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","copyArray","baseClamp","arrayShuffle","assignMergeValue","eq","baseAssignValue","assignValue","objValue","assocIndexOf","baseAggregator","baseEach","baseAssign","copyObject","baseAt","paths","upper","baseClone","bitmask","customizer","isDeep","isFull","initCloneArray","getTag","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","getSymbolsIn","baseAssignIn","keysIn","copySymbols","getSymbols","initCloneByTag","Ctor","cloneArrayBuffer","cloneDataView","dataView","cloneTypedArray","cloneRegExp","regexp","cloneSymbol","symbol","stacked","subValue","getAllKeysIn","getAllKeys","baseConformsTo","baseDelay","wait","baseDifference","isCommon","valuesLength","valuesIndex","templateSettings","evaluate","interpolate","variable","hashClear","hashDelete","hashGet","hashHas","hashSet","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","setCacheAdd","setCacheHas","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFilter","baseFlatten","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","baseGet","castPath","toKey","baseGetAllKeys","keysFunc","symbolsFunc","baseGetTag","getRawTag","isOwn","objectToString","baseGt","baseHas","baseHasIn","baseIntersection","arrays","othLength","othIndex","caches","baseInvoke","baseIsArguments","baseIsEqual","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","convert","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","isPartial","objProps","objLength","objStacked","othStacked","skipCtor","othValue","compared","objCtor","othCtor","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","baseIsNative","isMasked","baseIteratee","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","baseMergeDeep","mergeFunc","safeGet","isTyped","isArrayLikeObject","isPlainObject","toPlainObject","baseNth","baseOrderBy","iteratees","orders","getIteratee","baseSortBy","comparer","compareMultiple","objCriteria","othCriteria","ordersLength","compareAscending","basePickBy","baseSet","basePullAll","basePullAt","baseUnset","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","constant","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","baseWhile","isDrop","baseWrapperValue","actions","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","arrayBuffer","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","createAggregator","initializer","createAssigner","assigner","guard","isIterateeCall","iterable","createCaseFirst","createCompounder","deburr","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","getFuncName","funcName","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","arity","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","countHolders","newHolders","createRecurry","reorder","arrLength","oldArray","createInverter","toIteratee","baseInverter","createMathOperation","createOver","arrayFunc","createPadding","chars","charsLength","toFinite","baseRange","createRelationalOperation","toNumber","wrapFunc","isCurry","setWrapToString","createRound","pair","createToPairs","setToPairs","baseToPairs","createWrap","mergeData","srcBitmask","newBitmask","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","arrStacked","arrValue","flatten","otherFunc","isKeyable","getValue","stubArray","hasPath","hasFunc","isLength","ctorString","isMaskable","stubFalse","otherArgs","shortOut","reference","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","remaining","rand","memoizeCapped","memoize","quote","subString","differenceBy","differenceWith","intersection","mapped","intersectionBy","intersectionWith","pullAll","pullAt","union","unionBy","unionWith","unzip","unzipWith","without","xor","xorBy","xorWith","zipWith","chain","interceptor","wrapperAt","countBy","forEachRight","invokeMap","keyBy","partition","bindKey","WRAP_BIND_FLAG","lastArgs","lastThis","maxWait","lastCallTime","lastInvokeTime","maxing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","timeWaiting","debounced","isInvoking","leadingEdge","resolver","memoized","negate","overArgs","transforms","funcsLength","partial","partialRight","rearg","gt","gte","baseIsArrayBuffer","baseIsDate","baseIsMap","baseIsRegExp","baseIsSet","baseIsTypedArray","lt","lte","iteratorToArray","remainder","toLength","isBinary","assignIn","assignInWith","assignWith","propsIndex","propsLength","defaultsDeep","mergeWith","invertBy","baseKeysIn","nativeKeysIn","isProto","omit","CLONE_DEEP_FLAG","basePick","pickBy","toPairs","toPairsIn","camelCase","capitalize","upperFirst","kebabCase","lowerCase","lowerFirst","snakeCase","startCase","upperCase","hasUnicodeWord","unicodeWords","asciiWords","attempt","bindAll","methodNames","flow","flowRight","methodOf","mixin","overEvery","overSome","basePropertyDeep","rangeRight","augend","addend","divide","dividend","divisor","multiply","multiplier","multiplicand","minuend","subtrahend","castArray","compact","cond","conforms","baseConforms","curry","curryRight","dropRight","dropRightWhile","dropWhile","baseFill","flatMap","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","flip","fromPairs","functions","functionsIn","mapKeys","mapValues","matchesProperty","nthArg","omitBy","orderBy","propertyOf","pullAllBy","pullAllWith","sampleSize","setWith","shuffle","sortedUniq","sortedUniqBy","spread","tail","takeRight","takeRightWhile","toPath","isArrLike","unary","uniq","uniqBy","uniqWith","unset","updateWith","valuesIn","zipObject","zipObjectDeep","entriesIn","extendWith","cloneDeepWith","cloneWith","conformsTo","defaultTo","endsWith","findLastKey","forIn","forInRight","forOwn","forOwnRight","inRange","baseInRange","isEqualWith","isMatch","isMatchWith","isNative","isNil","isNull","isSafeInteger","isUndefined","isWeakMap","isWeakSet","strictLastIndexOf","maxBy","mean","meanBy","minBy","stubObject","stubString","stubTrue","nth","strLength","padEnd","padStart","radix","floating","reduceRight","sample","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sumBy","isEscaping","isEvaluating","importsKeys","importsValues","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","times","toLower","toSafeInteger","toUpper","trimEnd","trimStart","omission","newEnd","uniqueId","each","eachRight","VERSION","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isUnwrapped","onlyLazy","chainName","lazyClone","lazyReverse","lazyValue","isRight","getView","iterLength","takeCount","iterIndex","wrapperChain","commit","wrapperCommit","wrapperNext","wrapperPlant","wrapperReverse","wrapped","wrapperValue","wrapperToIterator","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","destination","sourcePrototype","getDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","createTypedArrayFactory","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","_shouldRoundValues","bmPow","bmSqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","absArr","defaultCurveSegments","degToRads","roundCorner","roundValues","bmRnd","styleDiv","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","_workerSelf","setupWorker","createWorker","dataFunctionManager","completeLayers","comps","layerData","kLen","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","comp","findComp","__used","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","iterateLayers","animationData","assets","checkChars","charData","ip","op","st","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","moduleOb","completeData","__complete","completeChars","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseText","loadAsset","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","onComplete","createProcess","loadAnimation","processId","loadData","completeAnimation","anim","ImagePreloader","proxyImage","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","testImageLoaded","getBBox","_imageLoaded","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","createImageData","setAttributeNS","_elementHelper","setCacheType","elementHelper","BaseEvent","triggerEvent","_cbs","markerParser","parsePayloadLines","keysCount","_markers","markerData","tm","ProjectInterface","registerComposition","compositions","_thisProjectFunction","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","animType","RendererClass","rendererSettings","globalData","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","wrapperAttributes","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","updateContainerSize","setSubframe","renderFrame","resetFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","goToAndStop","isFrame","numValue","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","setLoop","isLooping","getPath","getAssetData","getDuration","updateDocumentData","documentData","getElementByPath","animationManager","registeredAnimations","playingAnimationsNum","_isFrozen","animItem","subtractPlayingCount","registerAnimation","addPlayingCount","nowTime","elapsedTime","searchAnimations","animElements","lenAnims","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","getBezierEasing","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","newtonRaphsonIterate","aGuessT","currentSlope","binarySubdivide","aA","aB","currentX","currentT","pooling","double","_double","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","BezierData","segmentLength","PointData","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","u0","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","frameNum","caching","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","iterationIndex","keyframesMetadata","fnc","endValue","nextKeyTime","keyTime","ti","__fnct","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","keyValue","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","az","aw","bz","bw","quat","qz","qw","heading","attitude","bank","getValueAtCurrentTime","renderedFrame","_caching","renderResult","setVValue","multipliedValue","_mdf","processEffectsSequence","frameId","effectsSequence","_isFirstFrame","finalValue","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","shapePool","shapePath","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","keyPropS","keyPropE","isHold","interpolateShapeCurrentTime","resetShape","localShapeCollection","shapesEqual","shape1","shape2","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","_cw","StarShapeProperty","StarShapePropertyFactory","sy","ir","convertToPath","convertStarToPath","convertPolygonToPath","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","getShapeProp","getConstructorFunction","getKeyframedConstructorFunction","Matrix","_cos","_sin","_tan","_rnd","rotate","mCos","mSin","rotateX","rotateY","rotateZ","shear","skew","skewFromAxis","tz","g2","j2","l2","n2","_identityCalculated","g1","j1","l1","n1","matrixProps","isIdentity","_identity","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","setSubframeRendering","setQuality","inBrowser","installPlugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","queryString","useWebWorker","setIDPrefix","__getFactory","myScript","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","releasePathsData","processShapes","shapePaths","totalShapeLength","shapeS","shapeE","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","processPath","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","appliedTransformations","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","boundingBox","cy","splitData","boxIntersect","intersectsImpl","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","miterLimit","angleOut","tangentAngle","angleIn","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styleName","fStyle","fWeight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","elemsData","_currentCopies","_elements","_groups","resetElements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","ix","reloadShapes","elems","offsetModulo","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","newPosPerc","derivative","denom","tcusp","p10","p11","p20","p21","shapeSegmentInverted","pointsType","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","combinedCharacters","BLACK_FLAG_CODE_POINT","surrogateModifiers","setUpNode","fontFamily","fontVariant","fontStyle","letterSpacing","trimFontOptions","familyArray","enabledFamilies","createHelper","helper","fontProps","tHelper","fFamily","fClass","tCanvasHelper","OffscreenCanvas","measureText","measure","getComputedTextLength","getCodePoint","isRegionalCode","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","monoCase","sansCase","fPath","fOrigin","sc","getCharData","_char","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","SlotManager","slotFactory","RenderableElement","initRenderable","isInRange","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","effectsManager","prepareProperties","_isParent","getBaseElement","FootageInterface","getFootageData","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","expansor","feMorph","currentMasks","maskType","maskRef","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","localOp","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","createFilter","filId","skipCoordinates","fil","createAlphaToLuminanceFilter","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","Effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","layerElementParent","td","matteMasks","gg","ln","hd","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","ost","buildShapeString","_o","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","itemData","renderNoop","renderPath","pathStringTransformed","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","maxLineWidth","trackingOffset","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","animatorData","letterData","animators","based","rn","totalChars","newInd","currentInd","dData","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","getMult","textProperty","easer","tot","smoothness","newCharsFlag","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentPoint","pointInd","segmentInd","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","titleElement","titleId","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","filterSize","runExpressions","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","buildShapeData","shapeItem","usesGlyphs","tSpan","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","timeRemapped","setElements","getElements","destroyElements","addTransformSequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","loadLuma","createLumaSvgFilter","_svg","getLuma","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","moveTo","lineTo","bezierCurveTo","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","CVContextData","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","clearCanvas","dpr","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","showElement","prepareLayer","bufferCtx","drawImage","currentTransform","getTransform","exitLayer","forceRealStack","transformHelper","dashResetter","preTransforms","co","wi","da","do","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","coOp","grd","lineDashOffset","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","actionFlag","mozTransformOrigin","isDashed","elementRel","animationRel","fillType","duplicate","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","textPath","svgTransform","setup","perspectiveStyle","perspective","perspectiveElem","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","nodecrypto","rngname","startdenom","significance","ARC4","keylen","me","typ","mixkey","smear","stringseed","tostring","seedrandom","shortseed","entropy","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","propTypes","SHAPE","_typeof$1","ExpressionManager","frames","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","_tMin","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","lookAt","elem1","elem2","fVec","pitch","applyEase","easeIn","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","randSeed","posterizeTime","framesPerSecond","velocity","textIndex","textTotal","selectorValue","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","anchor_point","_registerMaskInterface","_registerEffectsInterface","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","_propertyGroup","createGroupInterface","groupInterface","mn","createValueInterface","numProperties","np","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","contentsInterfaceFactory","interfaces","transformInterfaceFactory","cix","startPoint","endPoint","_dashPropertyGroup","dashOb","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","parentGroupWrapper","_sourceText","sourceText","stringValue","dataInterface","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterfaceFactory","footage","getInterface","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","lastKeyFrame","initV","endV","repeats","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","rotationZ","rotationY","rotationX","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","KeyframedShapePropertyConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","getShapeValueAtTime","shapeValue","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","pathMasker","dasharrayValue","getTotalLength","units","color1","color3","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","outputDelta","inputDelta","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","sigma","forceFrame","scaleHeight","scaleWidth","_subscribe","thrownError","_throwIfClosed","lift","observerOrNext","isSubscriber","Subscriber","isObserver","isSubscription","SafeSubscriber","errorContext","_trySubscribe","sink","promiseCtor","getPromiseCtor","Symbol_observable","operations","pipeFromArray","toPromise","ObjectUnsubscribedError","createErrorClass","currentObservers","isStopped","AnonymousSubject","observed","_checkFinalizedStatuses","_innerSubscribe","EMPTY_SUBSCRIPTION","arrRemove","COMPLETE_NOTIFICATION","createNotification","kind","EMPTY_OBSERVER","handleStoppedNotification","nextNotification","_next","errorNotification","_error","_bind","ConsumerObserver","partialObserver","handleUnhandledError","useDeprecatedNextContext","useDeprecatedSynchronousErrorHandling","captureError","reportUnhandledError","onStoppedNotification","timeoutProvider","defaultErrorHandler","UnsubscriptionError","initialTeardown","_parentage","_finalizers","initialFinalizer","finalizer","execFinalizer","teardown","_hasParent","_addParent","_removeParent","EMPTY","onUnhandledError","ConnectableObservable","subjectFactory","_subject","_refCount","_connection","hasLift","_teardown","connection","refCount","higherOrderRefCount","popScheduler","observables","argsArgArrayOrObject","createObject","valueTransform","maybeSchedule","remainingFirstValues","hasFirstValue","executeSchedule","concatAll","mergeAll","observableFactory","remainingCompletions","remainingEmissions","sourceIndex","observeOn","subscribeOn","schedule","scheduleAsyncIterable","asyncIterator","scheduled","isInteropObservable","scheduleObservable","scheduleArray","isPromise","schedulePromise","isAsyncIterable","isIterable","scheduleIterable","Symbol_iterator","isReadableStreamLike","scheduleReadableStreamLike","readableStreamLikeToAsyncGenerator","createInvalidObservableTypeError","nodeEventEmitterMethods","eventTargetMethods","jqueryMethods","isEventTarget","isNodeStyleEventEmitter","toCommonHandlerRegistry","isJQueryStyleEventEmitter","subTarget","fromInteropObservable","obs","fromArrayLike","fromPromise","promise","fromAsyncIterable","fromIterable","fromReadableStreamLike","readableStream","asyncIterable","asyncIterable_1","asyncIterable_1_1","__awaiter","__asyncValues","concurrent","popNumber","errorOrErrorFactory","errorFactory","dueTime","intervalOrScheduler","intervalDuration","isScheduler","due","onNext","onFinalize","OperatorSubscriber","shouldUnsubscribe","handledResult","innerSub","syncUnsub","concatMap","activeTask","emitWhenIdle","targetTime","keySelector","defaultCompare","previousKey","currentKey","mapTo","ii","mergeInternals","onBeforeNext","innerSubScheduler","additionalFinalizer","checkComplete","outerNext","doInnerSub","innerComplete","innerValue","bufferedValue","hasPrev","refCounter","sharedConnection","conn","scanInternals","hasSeed","emitOnNext","emitBeforeComplete","hasState","resetOnError","resetOnComplete","resetOnRefCountZero","wrapperSource","resetConnection","hasCompleted","hasErrored","cancelReset","resetAndUnsubscribe","handleReset","ReplaySubject","_bufferSize","_windowTime","_timestampProvider","dateTimestampProvider","_buffer","_infiniteTimeWindow","_trimBuffer","adjustedBufferSize","shareReplay","configOrBufferSize","windowTime","innerSubscriber","innerIndex","outerIndex","notifier","tapObserver","isUnsub","schedulerArg","with","_with","timeoutErrorFactory","originalSourceSubscription","timerSubscription","startTimer","Action","work","intervalProvider","AsyncAction","recycleAsyncId","requestAsyncId","_scheduler","_execute","errorValue","errored","Scheduler","schedulerActionCtor","AsyncScheduler","SchedulerAction","_active","_scheduled","getSymbolIterator","getKeys","isPOJO","createImpl","ctorFunc","isRoot","errorThrown","parentSubscription","scheduleSubscription","isObservable","__asyncGenerator","reader","getReader","__await","releaseLock","liftedSource","callOrApply","fns","extendStatics","setPrototypeOf","__","_arguments","fulfilled","rejected","throw","adopt","verb","fulfill","settle","NgxMatCalendarBody_tr_0_Template","_cellPadding","NgxMatCalendarBody_tr_1_td_1_Template","_firstRowOffset","labelMinRequiredCells","NgxMatCalendarBody_tr_1_td_2_Template","_cellClicked","colIndex_r4","rowIndex_r5","_cellWidth","_isActiveCell","_isRangeStart","compareValue","_isRangeEnd","_isInRange","_isComparisonBridgeStart","_isComparisonBridgeEnd","_isComparisonStart","_isComparisonEnd","_isInComparisonRange","_isPreviewStart","_isPreviewEnd","_isInPreview","cssClasses","_isSelected","todayValue","displayValue","NgxMatCalendarBody_tr_1_Template","row_r6","NgxMatMonthView_th_3_Template","day_r1","NgxMatCalendar_ng_template_0_Template","NgxMatCalendar_ngx_mat_month_view_2_Template","activeDate","_dateSelected","_userSelected","dateFilter","dateClass","NgxMatCalendar_ngx_mat_year_view_3_Template","_monthSelectedInYearView","_goToDateInView","NgxMatCalendar_ngx_mat_multi_year_view_4_Template","_yearSelectedInMultiYearView","NgxMatTimepickerComponent_tr_3_td_11_Template","disableMinute","NgxMatTimepickerComponent_tr_3_td_12_Template","NgxMatTimepickerComponent_tr_3_td_13_Template","NgxMatTimepickerComponent_tr_3_Template","enableMeridian","NgxMatTimepickerComponent_td_13_Template","NgxMatTimepickerComponent_td_14_Template","formatInput","NgxMatTimepickerComponent_td_15_Template","NgxMatTimepickerComponent_td_16_Template","toggleMeridian","meridian","NgxMatTimepickerComponent_tr_17_td_10_Template","NgxMatTimepickerComponent_tr_17_td_11_Template","NgxMatTimepickerComponent_tr_17_td_12_Template","NgxMatTimepickerComponent_tr_17_td_13_Template","NgxMatTimepickerComponent_tr_17_Template","NgxMatDatetimeContent_ng_container_1_div_1_Template","_showSeconds","_showSpinners","_stepHour","_stepMinute","_stepSecond","_color","_enableMeridian","_disableMinute","NgxMatDatetimeContent_ng_container_1_mat_icon_4_Template","NgxMatDatetimeContent_ng_container_1_ng_template_5_Template","NgxMatDatetimeContent_ng_container_1_Template","ok","_hideTime","_customIcon","_templateCustomIconPortal","NGX_MAT_DATE_FORMATS","NgxMatCalendarCell","rawValue","NgxMatCalendarBody","_elementRef","_ngZone","activeCell","cellAspectRatio","previewStart","previewEnd","selectedValueChange","previewChange","_enterHandler","_skipNextFocus","_getCellFromElement","_leaveHandler","isTableCell","columnChanges","cellNumber","_focusActiveCell","movePreview","onStable","isStart","isEnd","comparisonStart","comparisonEnd","previousCell","previousRow","exportAs","rangeEnabled","NgxMatDateAdapter","DateAdapter","isSameTime","getHour","getMinute","getSecond","copyTime","fromDate","setHour","setMinute","setSecond","compareDateWithTime","compareDate","setTimeByDefaultValues","defaultTime","NGX_MAT_DATE_RANGE_SELECTION_STRATEGY","DefaultNgxMatCalendarRangeStrategy","_dateAdapter","selectionFinished","currentRange","DateRange","createPreview","LIMIT_TIMES","minHour","maxHour","minMinute","maxMinute","minSecond","maxSecond","NUMERIC_REGEX","PATTERN_INPUT_HOUR","PATTERN_INPUT_MINUTE","PATTERN_INPUT_SECOND","formatTwoDigitTimeValue","createMissingDateImplError","provider","NgxMatMonthView","_changeDetectorRef","_dateFormats","_dir","_rangeStrategy","_rerenderSubscription","_userSelection","activeDateChange","_activeDate","oldActiveDate","_getValidDateOrNull","deserialize","clampDate","_hasSameMonthAndYear","_init","_setRanges","localeChanges","selectedYear","selectedMonth","rangeStartDate","rangeEndDate","_getDateInCurrentMonth","_handleCalendarBodyKeydown","isRtl","_isRtl","LEFT_ARROW","addCalendarDays","RIGHT_ARROW","UP_ARROW","DOWN_ARROW","HOME","END","getNumDaysInMonth","PAGE_UP","addCalendarYears","addCalendarMonths","PAGE_DOWN","ENTER","SPACE","ESCAPE","_previewEnd","_previewStart","_todayDate","_getCellCompareValue","_monthLabel","getMonthNames","toLocaleUpperCase","firstOfMonth","_firstWeekOffset","getDayOfWeek","getFirstDayOfWeek","_initWeekdays","_createWeekCells","_matCalendarBody","_previewChanged","previewRange","narrowWeekdays","getDayOfWeekNames","weekdays","_weekdays","daysInMonth","dateNames","getDateNames","_weeks","_shouldEnableDate","dateA11yLabel","cellClasses","isDateInstance","_rangeStart","_rangeEnd","_isRange","_comparisonRangeStart","_comparisonRangeEnd","yearsPerPage","NgxMatMultiYearView","yearSelected","isSameMultiYearView","_setSelectedYear","_todayYear","minYearOfPage","getActiveOffset","_years","_createCellForYear","_yearSelected","_getActiveCell","yearName","getYearName","_shouldEnableYear","_selectedYear","dateAdapter","date1","date2","year1","year2","startingYear","getStartingYear","euclideanModulo","NgxMatYearView","monthSelected","_setSelectedMonth","_monthSelected","normalizedDate","_todayMonth","_getMonthInCurrentYear","_yearLabel","monthNames","_months","_createCellForMonth","monthName","monthYearA11yLabel","_shouldEnableMonth","activeYear","_isYearAndMonthAfterMaxDate","_isYearAndMonthBeforeMinDate","maxYear","maxMonth","minYear","minMonth","_selectedMonth","NgxMatCalendarHeader","_intl","stateChanges","periodButtonText","monthYearLabel","maxYearOfPage","formatYearRange","periodButtonLabel","switchToMultiYearViewLabel","switchToMonthViewLabel","prevButtonLabel","prevMonthLabel","prevYearLabel","prevMultiYearLabel","nextButtonLabel","nextMonthLabel","nextYearLabel","nextMultiYearLabel","currentPeriodClicked","previousClicked","nextClicked","previousEnabled","_isSameView","nextEnabled","i1$1","NgxMatCalendar","_moveFocusOnNextTick","startView","_intlChanges","startAt","_startAt","_clampedActiveDate","_currentView","_calendarHeaderPortal","ComponentPortal","headerComponent","focusActiveCell","_getCurrentViewComponent","updateTodaysDate","multiYearView","sameDate","normalizedYear","normalizedMonth","NgxMatTimepickerComponent","showSpinners","_updateModel","_setDisableStates","_updateHourMinuteSecond","_getNextValueByProp","_hour","_minute","_second","keyProp","i2$1","i2$2","i5$1","datepickerUid","_MatDatetimepickerContentBase","mixinColor","NgxMatDatetimeContent","_viewContainerRef","hideTime","_timePicker","isViewMonth","_calendar","TemplatePortal","touchUi","_selectYear","_selectMonth","_dateFilter","calendarHeaderComponent","matDatepickerAnimations","transformPanel","fadeInCalendar","NgxMatDatetimePicker","_dialog","_overlay","scrollStrategy","_defaultColor","_touchUi","openedStream","closedStream","_opened","_hasBackdrop","_validSelected","_focusedElementBeforeOpen","_inputSubscription","_selectedChanged","_minValidator","matDatetimePickerMin","_maxValidator","matDatetimePickerMax","_scrollStrategy","datepickerInput","_getThemePalette","coerceBooleanProperty","opened","_defaultTime","minValidators","maxValidators","_popupRef","_popupComponentRef","_rawValue","_registerInput","_valueChange","_openAsDialog","_openAsPopup","hasAttached","detach","_dialogRef","_calendarPortal","isAttached","completeClose","viewContainerRef","hasBackdrop","componentInstance","_setColor","_createPopup","attach","updatePosition","overlayConfig","OverlayConfig","positionStrategy","_createPopupPositionStrategy","backdropClass","overlayElement","backdropClick","detachments","keydownEvents","flexibleConnectedTo","getConnectedOverlayOrigin","withTransformOriginOn","withFlexibleDimensions","withViewportMargin","withLockedPosition","withPositions","originX","originY","overlayX","overlayY","MAT_DATEPICKER_SCROLL_STRATEGY","MAT_DATEPICKER_VALUE_ACCESSOR","NgxMatDatetimeInput","MAT_DATEPICKER_VALIDATORS","MatDatetimePickerInputEvent","SUPPORTS_INTL_API","_formField","dateChange","dateInput","_cvaOnChange","_validatorOnChange","_datepickerSubscription","_localeSubscription","_parseValidator","_lastValueValid","matDatetimePickerParse","controlValue","_datepicker","_filterValidator","matDatetimePickerFilter","_validator","ngxMatDatetimePicker","ngxMatDatetimePickerFilter","oldDate","_formatValue","_min","_max","registerOnValidatorChange","getPopupConnectionElementRef","_onKeydown","readOnly","_onInput","lastValueWasValid","toIso8601","MAT_INPUT_VALUE_ACCESSOR","MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER","PortalModule","DEFAULT_MONTH_NAMES","DEFAULT_DATE_NAMES","DEFAULT_DAY_OF_WEEK_NAMES","ISO_8601_REGEX","valueFunction","NgxMatNativeDateAdapter","matDateLocale","useUtcForDisplay","setLocale","TRIDENT","_clampDate","EDGE","dtf","DateTimeFormat","timeZone","_stripDirectionalityCharacters","_format","_createDateWithOverflow","displayFormat","_2digit","MAT_DATE_LOCALE","i1$2","DEFAULT_DATE_INPUT","hour12","NGX_MAT_NATIVE_DATE_FORMATS","NgxNativeDateModule","PlatformModule","stateChangeExpr","animateChild","_position","_onStart","triggerMicrotask","AnimationGroupPlayer","_players","doneCount","destroyCount","startCount","timeAtPosition","longestPlayer","longestSoFar","getAriaReferenceIds","CDK_DESCRIBEDBY_ID_PREFIX","CDK_DESCRIBEDBY_HOST_ATTRIBUTE","nextId","AriaDescriber","_platform","_messageRegistry","_messagesContainer","APP_ID","describe","_canBeDescribed","getKey","setMessageId","messageElement","referenceCount","_createMessageElement","_isElementDescribedByMessage","_addMessageReference","removeDescription","_isElementNode","_removeMessageReference","registeredMessage","_deleteMessageElement","describedElements","_removeCdkDescribedByReferenceIds","_createMessagesContainer","containerClassName","serverContainers","messagesContainer","isBrowser","originalReferenceIds","addAriaReferencedId","existingId","removeAriaReferencedId","filteredIds","referenceIds","messageId","trimmedMessage","ELEMENT_NODE","serviceId","ListKeyManager","_activeItemIndex","_wrap","_letterKeyStream","_typeaheadSubscription","_vertical","_allowedModifierKeys","_homeAndEnd","_skipPredicateFn","_pressedLetters","tabOut","QueryList","skipPredicate","withWrap","shouldWrap","withVerticalOrientation","withHorizontalOrientation","_horizontal","withAllowedModifierKeys","withTypeAhead","debounceInterval","letter","inputString","_getItemsArray","getLabel","setActiveItem","withHomeAndEnd","previousActiveItem","updateActiveItem","isModifierAllowed","TAB","setNextItemActive","setPreviousItemActive","setFirstItemActive","setLastItemActive","hasModifierKey","ZERO","NINE","activeItemIndex","isTyping","_setActiveItemByIndex","_setActiveItemByDelta","itemArray","_setActiveInWrapMode","_setActiveInDefaultMode","fallbackDelta","ActiveDescendantKeyManager","setInactiveStyles","setActiveStyles","FocusKeyManager","setFocusOrigin","InteractivityChecker","hasGeometry","isTabbable","frameElement","getFrameElement","getWindow","getTabIndexValue","tabIndexValue","WEBKIT","isPotentiallyTabbableIOS","FIREFOX","isFocusable","isPotentiallyFocusable","isHiddenInput","isInputElement","isNativeFormElement","isAnchorWithHref","isAnchorElement","hasValidTabIndex","ignoreVisibility","FocusTrap","_checker","deferAnchors","_hasAttached","startAnchorListener","focusLastTabbableElement","endAnchorListener","focusFirstTabbableElement","attachAnchors","_startAnchor","_endAnchor","_toggleAnchorTabIndex","startAnchor","endAnchor","_createAnchor","focusInitialElementWhenReady","_executeOnStable","focusInitialElement","focusFirstTabbableElementWhenReady","focusLastTabbableElementWhenReady","_getRegionBoundary","bound","_getFirstTabbableElement","_getLastTabbableElement","redirectToElement","focusableChild","tabbableChild","toggleAnchors","isStable","FocusTrapFactory","deferCaptureElements","isFakeMousedownFromScreenReader","buttons","isFakeTouchstartFromScreenReader","identifier","radiusX","radiusY","INPUT_MODALITY_DETECTOR_OPTIONS","INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS","ignoreKeys","ALT","CONTROL","MAC_META","META","SHIFT","modalityEventListenerOptions","normalizePassiveListenerOptions","InputModalityDetector","_mostRecentTarget","_modality","_lastTouchMs","_getEventTarget","_onMousedown","_onTouchstart","modalityDetected","modalityChanged","mostRecentModality","FOCUS_MONITOR_DEFAULT_OPTIONS","captureEventListenerOptions","FocusMonitor","_inputModalityDetector","_windowFocused","_originFromTouchInteraction","_elementInfo","_monitoredElementCount","_rootNodeFocusListenerCount","_windowFocusListener","_windowFocusTimeoutId","_stopInputModalityDetector","_rootNodeFocusAndBlurListener","_detectionMode","detectionMode","monitor","checkChildren","coerceElement","rootNode","_getShadowRoot","_getDocument","cachedInfo","_registerGlobalListeners","stopMonitoring","elementInfo","_setClasses","_removeGlobalListeners","focusVia","_getClosestElementsInfo","currentElement","_originChanged","_setOrigin","_info","_getWindow","_getFocusOrigin","focusEventTarget","_shouldBeAttributedToTouch","_lastFocusOrigin","_isLastInteractionFromInputLabel","isFromInteraction","_originTimeoutId","_emitOrigin","rootNodeFocusListeners","modality","mostRecentTarget","labels","CdkMonitorFocus","_focusMonitor","_focusOrigin","cdkFocusChange","focusOrigin","_monitorSubscription","BLACK_ON_WHITE_CSS_CLASS","WHITE_ON_BLACK_CSS_CLASS","HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS","HighContrastModeDetector","_breakpointSubscription","BreakpointObserver","_hasCheckedHighContrastMode","_applyBodyHighContrastModeCssClasses","getHighContrastMode","testElement","documentWindow","computedColor","bodyClasses","A11yModule","highContrastModeDetector","ObserversModule","DIR_DOCUMENT","DIR_DOCUMENT_FACTORY","RTL_LOCALE_PATTERN","Directionality","_resolveDirectionality","language","BidiModule","coerceNumberProperty","fallbackValue","_isNumberValue","coerceArray","coerceCssPixelValue","elementOrRef","coerceStringArray","sourceValues","sourceValue","trimmedString","DataSource","isDataSource","ArrayDataSource","_DisposeViewRepeaterStrategy","applyChanges","itemContextFactory","itemValueResolver","itemViewChanged","forEachOperation","adjustedPreviousIndex","previousIndex","insertContext","_RecycleViewRepeaterStrategy","viewCacheSize","_viewCache","_insertView","viewArgsFactory","_detachAndCacheView","_moveView","cachedView","_insertViewFromCache","viewArgs","detachedView","_maybeCacheView","_multiple","initiallySelectedValues","_emitChanges","compareWith","_deselectedToEmit","_selectedToEmit","_markSelected","_verifyValueAssignment","_hasQueuedChanges","_emitChangeEvent","deselect","_unmarkSelected","setSelection","oldValues","newSelectedSet","flushEvent","_unmarkAll","otherValue","added","_VIEW_REPEATER_STRATEGY","mediaQueriesForWebkitCompatibility","mediaQueryStyleNode","MediaMatcher","_matchMedia","noopMatchMedia","BLINK","createEmptyStyleRule","insertRule","_mediaMatcher","_queries","_destroySubject","isMatched","splitQueries","mediaQuery","_registerQuery","mql","stateObservable","breakpointStates","breakpoints","queries","Breakpoints","XSmall","Small","Medium","Large","XLarge","Handset","Tablet","Web","HandsetPortrait","TabletPortrait","WebPortrait","HandsetLandscape","TabletLandscape","WebLandscape","MutationObserverFactory","ContentObserver","_mutationObserverFactory","_observedElements","_cleanupObserver","_observeElement","_unobserveElement","stream","characterData","CdkObserveContent","_contentObserver","_currentSubscription","_unsubscribe","_debounce","scrollBehaviorSupported","supportsScrollBehavior","BlockScrollStrategy","_viewportRuler","_previousHTMLStyles","_isEnabled","_canBeEnabled","_previousScrollPosition","getViewportScrollPosition","htmlStyle","bodyStyle","previousHtmlScrollBehavior","scrollBehavior","previousBodyScrollBehavior","CloseScrollStrategy","_scrollDispatcher","_config","_scrollSubscription","_detach","_overlayRef","overlayRef","scrolled","_initialScrollPosition","NoopScrollStrategy","isElementScrolledOutsideView","scrollContainers","containerBounds","isElementClippedByScrolling","scrollContainerRect","RepositionScrollStrategy","scrollThrottle","overlayRect","ScrollStrategyOptions","disposeOnNavigation","configKeys","ConnectedOverlayPositionChange","connectionPair","scrollableViewProperties","BaseOverlayDispatcher","_attachedOverlays","OverlayKeyboardDispatcher","_keydownListener","_keydownEvents","_isAttached","OverlayOutsideClickDispatcher","_cursorStyleIsSet","_pointerDownListener","_pointerDownEventTarget","_clickListener","_outsidePointerEvents","outsidePointerEvents","_addEventListeners","_cursorOriginalValue","cursor","OverlayContainer","_containerElement","getContainerElement","_createContainer","_isTestEnvironment","oppositePlatformContainers","OverlayRef","_portalOutlet","_host","_keyboardDispatcher","_location","_outsideClickDispatcher","_animationsDisabled","_backdropElement","_backdropClick","_attachments","_detachments","_locationChanges","_backdropClickHandler","_backdropTransitionendHandler","_disposeBackdrop","_positionStrategy","backdropElement","portal","_previousHostParent","attachResult","_updateStackingOrder","_updateElementSize","_updateElementDirection","_togglePointerEvents","_attachBackdrop","_toggleClasses","detachBackdrop","detachmentResult","_detachContentWhenStable","_disposeScrollStrategy","attachments","updatePositionStrategy","strategy","updateSize","sizeConfig","addPanelClass","removePanelClass","getDirection","updateScrollStrategy","enablePointer","showingClass","backdropToDetach","_backdropTimeout","backdrop","boundingBoxClass","cssUnitPattern","FlexibleConnectedPositionStrategy","connectedTo","_overlayContainer","_lastBoundingBoxSize","_isPushed","_canPush","_growAfterOpen","_hasFlexibleDimensions","_positionLocked","_viewportMargin","_scrollables","_preferredPositions","_positionChanges","_resizeSubscription","_offsetX","_offsetY","_appliedPanelClasses","positionChanges","setOrigin","_validatePositions","_boundingBox","_isDisposed","_isInitialRender","_lastPosition","reapplyLastPosition","_clearPanelClasses","_resetOverlayElementStyles","_resetBoundingBoxStyles","_viewportRect","_getNarrowedViewportRect","_originRect","_getOriginRect","_overlayRect","_containerRect","originRect","viewportRect","flexibleFits","originPoint","_getOriginPoint","overlayPoint","_getOverlayPoint","overlayFit","_getOverlayFit","isCompletelyWithinViewport","_applyPosition","_canFitWithFlexibleDimensions","boundingBoxRect","_calculateBoundingBoxRect","visibleArea","bestFit","bestScore","fit","score","_previousPushAmount","extendStyles","alignItems","justifyContent","lastPosition","withScrollableContainers","scrollables","flexibleDimensions","withGrowAfterOpen","growAfterOpen","withPush","canPush","isLocked","withDefaultOffsetX","withDefaultOffsetY","_transformOriginSelector","startX","endX","overlayStartX","overlayStartY","rawOverlayRect","getRoundedBoundingClientRect","_getOffset","topOverflow","bottomOverflow","visibleWidth","_subtractOverflows","visibleHeight","fitsInViewportVertically","fitsInViewportHorizontally","availableHeight","availableWidth","getPixelValue","_pushOverlayOnScreen","overflowRight","overflowBottom","overflowTop","overflowLeft","pushX","pushY","_setTransformOrigin","_setOverlayElementStyles","_setBoundingBoxStyles","_addPanelClasses","_getScrollVisibility","changeEvent","xOrigin","yOrigin","smallestDistanceToViewportEdge","previousHeight","previousWidth","_hasExactPosition","hasExactPosition","hasFlexibleDimensions","_getExactOverlayY","_getExactOverlayX","transformString","horizontalStyleProperty","originBounds","overlayBounds","scrollContainerBounds","isOriginClipped","isOriginOutsideView","isOverlayClipped","isOverlayOutsideView","overflows","currentOverflow","cssClass","clientRect","wrapperClass","GlobalPositionStrategy","_cssPosition","_topOffset","_bottomOffset","_alignItems","_xPosition","_xOffset","_height","centerHorizontally","centerVertically","parentStyles","shouldBeFlushHorizontally","shouldBeFlushVertically","xOffset","OverlayPositionBuilder","nextUniqueId","_componentFactoryResolver","_positionBuilder","_injector","_directionality","_animationsModuleType","_createHostElement","_createPaneElement","portalOutlet","_createPortalOutlet","_appRef","ApplicationRef","DomPortalOutlet","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY","hasV8BreakIterator","v8BreakIterator","supportedInputTypes","_platformId","CSS","ANDROID","SAFARI","candidateInputTypes","getSupportedInputTypes","featureTestInput","supportsPassiveEvents","rtlScrollAxisType","shadowDomIsSupported","supportsPassiveEventListeners","scrollToFunction","getRtlScrollAxisType","scrollContainer","_supportsShadowDom","createShadowRoot","attachShadow","getRootNode","ShadowRoot","_getFocusedElementPierceShadowDom","newActiveElement","__karma__","jasmine","jest","Mocha","Portal","_attachedHost","setAttachedHost","componentFactoryResolver","DomPortal","BasePortalOutlet","attachDomPortal","_attachedPortal","attachComponentPortal","attachTemplatePortal","_invokeDisposeFn","setDisposeFn","_disposeFn","outletElement","_defaultInjector","anchorNode","componentFactory","resolveComponentFactory","NULL","attachView","hostView","viewCount","detachView","_getComponentRootNode","CdkPortal","CdkPortalOutlet","_isInitialized","attached","_getRootNode","attachedRef","_attachedRef","animationFrameProvider","animationFrameScheduler","AnimationFrameScheduler","flushId","AnimationFrameAction","resolved","nextHandle","activeHandles","findAndClearHandle","Immediate","setImmediate","clearImmediate","immediateProvider","asapScheduler","AsapScheduler","AsapAction","auditTime","audit","durationSubscriber","endDuration","cleanupDuration","VIRTUAL_SCROLL_STRATEGY","FixedSizeVirtualScrollStrategy","minBufferPx","maxBufferPx","_scrolledIndexChange","scrolledIndexChange","_viewport","_minBufferPx","_maxBufferPx","_updateTotalContentSize","_updateRenderedRange","updateItemAndBufferSize","onContentScrolled","onDataLengthChanged","onContentRendered","onRenderedOffsetChanged","scrollToOffset","setTotalContentSize","getDataLength","renderedRange","newRange","dataLength","measureScrollOffset","firstVisibleIndex","maxVisibleItems","newVisibleIndex","startBuffer","expandStart","endBuffer","expandEnd","setRenderedRange","setRenderedContentOffset","_fixedSizeVirtualScrollStrategyFactory","fixedSizeDir","CdkFixedSizeVirtualScroll","ScrollDispatcher","_scrolled","_globalSubscription","_scrolledCount","elementScrolled","scrollableReference","auditTimeInMs","_addGlobalListener","_removeGlobalListener","ancestorScrolled","elementOrElementRef","ancestors","getAncestorScrollContainers","scrollingContainers","_subscription","_scrollableContainsElement","scrollableElement","CdkScrollable","scrollDispatcher","_elementScrolled","_applyScrollToOptions","LEFT","ViewportRuler","_change","_changeListener","_viewportSize","_updateViewportSize","getViewportRect","documentRect","VIRTUAL_SCROLLABLE","CdkVirtualScrollable","measureViewportSize","viewportEl","SCROLL_SCHEDULER","viewportRuler","_detachedSubject","_renderedRangeSubject","renderedRangeStream","_totalContentSize","_totalContentWidth","_totalContentHeight","_renderedRange","_dataLength","_renderedContentOffset","_renderedContentOffsetNeedsRewrite","_isChangeDetectionPending","_runAfterChangeDetection","_viewportChanges","checkViewportSize","_calculateSpacerSize","_measureViewportSize","_markChangeDetectionNeeded","forOf","_forOf","dataStream","_doChangeDetection","measureBoundingClientRectWithScrollOffset","rangesEqual","r1","getOffsetToRenderedContentStart","isHorizontal","_renderedContentTransform","measureRenderedContentSize","_from","measureViewportOffset","scrollerClientRect","_contentWrapper","measureRangeSize","runAfter","runAfterChangeDetection","virtualScrollable","_template","_differs","_viewRepeater","_dataSourceChanges","_changeDataSource","_differ","_needsUpdate","_onRenderedDataChange","cdkVirtualForOf","_cdkVirtualForOf","cdkVirtualForTrackBy","_cdkVirtualForTrackBy","cdkVirtualForTemplate","cdkVirtualForTemplateCacheSize","renderedStartIndex","rangeLen","firstNode","lastNode","_renderedItems","_applyChanges","_updateContext","oldDs","newDs","_updateComputedContextProperties","_adjustedPreviousIndex","_getEmbeddedViewArgs","forEachIdentityChange","CdkTextColumn_th_1_Template","headerText","CdkTextColumn_td_2_Template","data_r2","dataAccessor","mixinHasStickyInput","_sticky","_hasStickyChanged","prevValue","hasStickyChanged","resetStickyChanged","CDK_TABLE","TEXT_COLUMN_OPTIONS","CdkCellDef","CdkHeaderCellDef","CdkFooterCellDef","CdkColumnDefBase","_CdkColumnDefBase","CdkColumnDef","_table","_stickyEnd","_setNameInput","stickyEnd","_updateColumnCssClassName","_columnCssClassName","cssClassFriendlyName","BaseCdkCell","columnDef","CdkHeaderCell","CdkFooterCell","tableRole","CdkCell","_Schedule","tasks","endTasks","_COALESCED_STYLE_SCHEDULER","_CoalescedStyleScheduler","_currentSchedule","task","_createScheduleIfNeeded","scheduleEnd","_getScheduleObservable","BaseRowDef","_columnsDiffer","getColumnsDiff","extractCellTemplate","CdkHeaderRowDef","CdkFooterRowDef","CdkHeaderRowDefBase","_CdkHeaderRowDefBase","CdkFooterRowDefBase","_CdkFooterRowDefBase","CdkRowDef","when","CdkCellOutlet","_viewContainer","mostRecentCellOutlet","CdkHeaderRow","CdkFooterRow","CdkRow","CdkNoDataRow","_contentClassName","STICKY_DIRECTIONS","StickyStyler","_isNativeHtmlTable","_stickCellCss","_coalescedStyleScheduler","_isBrowser","_needsPositionStickyOnElement","_positionListener","_cachedCellWidths","_borderCellCss","clearStickyPositioning","stickyDirections","elementsToClear","_removeStickyStyle","updateStickyColumns","stickyStartStates","stickyEndStates","recalculateCellWidths","stickyColumnsUpdated","sizes","stickyEndColumnsUpdated","firstRow","numCells","cellWidths","_getCellWidths","startPositions","_getStickyStartColumnPositions","endPositions","_getStickyEndColumnPositions","lastStickyStart","firstStickyEnd","_addStickyStyle","stickRows","rowsToStick","stickyStates","stickyOffsets","stickyCellHeights","elementsToStick","stickyOffset","borderedRowIndex","isBorderedRowIndex","stickyHeaderRowsUpdated","stickyFooterRowsUpdated","updateStickyFooterContainer","tableElement","_getCalculatedZIndex","dirValue","isBorderElement","zIndexIncrements","firstRowCells","nextPosition","STICKY_POSITIONING_LISTENER","DataRowOutlet","HeaderRowOutlet","FooterRowOutlet","NoDataRowOutlet","CdkTable","_stickyPositioningListener","_columnDefsByName","_customColumnDefs","_customRowDefs","_customHeaderRowDefs","_customFooterRowDefs","_headerRowDefChanged","_footerRowDefChanged","_stickyColumnStylesNeedReset","_forceRecalculateCellWidths","_cachedRenderRowsMap","stickyCssClass","needsPositionStickyOnElement","_isShowingNoDataRow","_multiTemplateDataRows","_fixedLayout","contentChanged","_trackByFn","_dataSource","_switchDataSource","multiTemplateDataRows","_rowOutlet","_forceRenderDataRows","updateStickyColumnStyles","fixedLayout","_setupStickyStyler","_applyNativeTableSections","_dataDiffer","dataRow","dataIndex","_cacheRowDefs","_cacheColumnDefs","rowDefsChanged","_renderUpdatedColumns","_forceRenderHeaderRows","_forceRenderFooterRows","_rowDefs","_renderChangeSubscription","_observeRenderChanges","_checkStickyStates","_headerRowOutlet","_footerRowOutlet","_headerRowDefs","_footerRowDefs","_defaultRowDef","renderRows","_renderRows","_getAllRenderRows","_updateNoDataRow","_renderCellTemplateForItem","rowDef","_updateRowIndexContext","isInAngularZone","addColumnDef","removeColumnDef","addRowDef","removeRowDef","addHeaderRowDef","headerRowDef","removeHeaderRowDef","addFooterRowDef","footerRowDef","removeFooterRowDef","setNoDataRow","noDataRow","_customNoDataRow","updateStickyHeaderRowStyles","headerRows","_getRenderedRows","_stickyStyler","updateStickyFooterRowStyles","footerRows","dataRows","headerRow","_addStickyColumnStyles","footerRow","prevCachedRenderRows","renderRowsForData","_getRenderRowsForData","renderRow","_getRowDefs","cachedRenderRows","mergeArrayAndSet","_getOwnDefs","_contentColumnDefs","_contentHeaderRowDefs","_contentFooterRowDefs","_contentRowDefs","defaultRowDefs","columnsDiffReducer","dataColumnsChanged","headerColumnsChanged","footerColumnsChanged","_renderRow","columnDefs","columnName","rowOutlet","renderedRows","rowDefs","outlet","cellTemplate","_getCellTemplates","renderIndex","columnId","documentFragment","sections","outlets","_noDataRowOutlet","stickyCheckReducer","_noDataRow","shouldShow","CdkTextColumn","_syncColumnDefName","_createDefaultHeaderText","defaultDataAccessor","defaultHeaderTextTransform","_DOM","getDOM","setRootDomAdapter","DomAdapter","PlatformLocation","historyGo","BrowserPlatformLocation","LOCATION_INITIALIZED","_doc","_history","getBaseHrefFromDOM","getBaseHref","onPopState","getGlobalEventTarget","onHashChange","protocol","hostname","port","pushState","replaceState","getState","joinWithSlash","slashes","stripTrailingSlash","pathEndIdx","normalizeQueryParams","LocationStrategy","PathLocationStrategy","APP_BASE_HREF","_platformLocation","_removeListenerFns","_baseHref","prepareExternalUrl","internal","includeHash","externalUrl","HashLocationStrategy","locationStrategy","_urlChangeListeners","_urlChangeSubscription","_locationStrategy","baseHref","_basePath","_stripOrigin","_stripIndexHtml","isCurrentPathEqualTo","_stripBasePath","basePath","strippedUrl","_notifyUrlChangeListeners","onUrlChange","fnIndex","onThrow","onReturn","createLocation","ɵɵinject","CURRENCIES_EN","ADP","AFN","ALL","AMD","AOA","ARS","AZN","BAM","BBD","BDT","BHD","BIF","BMD","BND","BOB","BRL","BSD","BWP","BYR","BZD","CHF","CLF","CLP","COP","CRC","CUC","CUP","CZK","DJF","DKK","DOP","EGP","ESP","EUR","FJD","FKP","GEL","GHS","GIP","GNF","GTQ","GYD","HNL","HRK","HUF","IDR","IQD","IRR","ISK","ITL","JMD","JOD","KHR","KMF","KPW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LTL","LUF","LVL","LYD","MGA","MGF","MMK","MNT","MRO","MUR","MYR","NAD","NGN","NIO","NOK","NPR","OMR","PKR","PYG","RSD","RUB","RWF","SBD","SEK","SGD","SHP","SLE","SLL","SOS","SRD","SSP","STD","STN","TMM","TND","TOP","TRL","TRY","TTD","TZS","UAH","UGX","UYI","UYU","UYW","UZS","VEF","VUV","XAF","XCD","XOF","XPF","XXX","YER","ZAR","ZMK","ZMW","ZWD","NumberFormatStyle","Decimal","Percent","Currency","Scientific","FormStyle","Format","Standalone","TranslationWidth","Narrow","Abbreviated","Wide","Short","FormatWidth","Long","Full","NumberSymbol","PercentSign","PlusSign","MinusSign","Exponential","SuperscriptingExponent","PerMille","TimeSeparator","CurrencyDecimal","CurrencyGroup","getLocaleDateFormat","getLastDefinedValue","ɵfindLocaleData","ɵLocaleDataIndex","DateFormat","getLocaleTimeFormat","TimeFormat","getLocaleDateTimeFormat","dateTimeFormatData","getLocaleNumberSymbol","NumberSymbols","getLocaleNumberFormat","NumberFormats","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","parsedNb","isoStringToDate","tzHour","tzMin","dateSetter","timeSetter","getNamedFormat","dateTimezoneOffset","timezoneToOffset","convertTimezoneToLocal","reverseValue","addDateMinutes","dateFormatter","getDateFormatter","DATE_FORMATS","dateStrGetter","dateGetter","weekNumberingYearGetter","weekGetter","timeZoneGetter","getLocaleId","shortTime","shortDate","mediumTime","mediumDate","longTime","longDate","fullTime","fullDate","opt_values","padNumber","minusSign","negWrap","neg","strNum","getDatePart","formatFractionalSeconds","localeMinus","extended","getDateTranslation","getLocaleMonthNames","formStyle","MonthsFormat","MonthsStandalone","getLocaleDayNames","DaysFormat","DaysStandalone","currentHours","currentMinutes","rules","getLocaleExtraDayPeriodRules","dayPeriods","getLocaleExtraDayPeriods","afterFrom","beforeTo","getLocaleDayPeriods","amPm","DayPeriodsFormat","DayPeriodsStandalone","getLocaleEraNames","erasData","JANUARY","THURSDAY","getThursdayThisIsoWeek","datetime","deltaToThursday","monthBased","nbDaysBefore1stDayOfMonth","thisThurs","firstThurs","getFirstThursdayOfYear","firstDayOfYear","requestedTimezoneOffset","NUMBER_FORMAT_REGEXP","MAX_DIGITS","DECIMAL_SEP","ZERO_CHAR","PATTERN_SEP","GROUP_SEP","DIGIT_CHAR","formatNumberToLocaleString","groupSymbol","decimalSymbol","digitsInfo","isPercent","formattedText","isZero","parsedNumber","parseNumber","integerLen","zeros","numStr","exponent","toPercent","fractionLen","minInt","minFraction","minFrac","maxFraction","maxFrac","minIntPart","minFractionPart","maxFractionPart","parseIntAutoRadix","roundNumber","fractionSize","roundAt","dropTrailingZeros","minLen","decimals","lgSize","gSize","negPre","negSuf","posPre","posSuf","parseNumberFormat","patternParts","positiveParts","fraction","trunkLen","extraData","ɵregisterLocaleData","parseCookieValue","cookieStr","eqIndex","cookieName","cookieValue","WS_REGEXP","EMPTY_ARRAY","NgClass","_ngEl","initialClasses","klass","ngClass","rawClass","_updateState","_applyStateDiff","stateEntry","_toggleClass","NgForOfContext","ngForOf","NgForOf","_ngForOf","_ngForOfDirty","ngForTrackBy","ngForTemplate","applyViewChange","ilen","ngTemplateContextGuard","NgIf","_context","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","condition","_updateView","ngIfThen","assertTemplate","ngIfElse","ɵstringify","SwitchView","_templateRef","_created","enforceState","created","NgSwitch","_defaultViews","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","ngSwitch","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_matchCase","useDefault","NgSwitchCase","ngSwitchCase","NgSwitchDefault","NgStyle","_ngStyle","ngStyle","_setStyle","nameAndUnit","RendererStyleFlags2","DashCase","forEachRemovedItem","forEachAddedItem","forEachChangedItem","NgTemplateOutlet","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","ngTemplateOutletInjector","_shouldRecreateView","viewContext","_createContextForwardProxy","Proxy","Reflect","receiver","invalidPipeArgumentError","SubscribableStrategy","createSubscription","updateLatestValue","untracked","PromiseStrategy","_promiseStrategy","_subscribableStrategy","AsyncPipe","_latestValue","markForCheckOnValueUpdate","_obj","_strategy","_dispose","_selectStrategy","_updateLatestValue","ɵisPromise","ɵisSubscribable","ɵpipe","unicodeWordMatch","UpperCasePipe","DATE_PIPE_DEFAULT_TIMEZONE","DATE_PIPE_DEFAULT_OPTIONS","defaultTimezone","isValue","strToNumber","CurrencyPipe","_defaultCurrencyCode","currencyCode","getCurrencySymbol","getLocaleCurrencies","Currencies","symbolNarrow","formatCurrency","getNumberOfCurrencyDigits","SlicePipe","supports","PLATFORM_BROWSER_ID","PLATFORM_SERVER_ID","ViewportScroller","ɵɵdefineInjectable","BrowserViewportScroller","NullViewportScroller","scrollToPosition","scrollToAnchor","elSelected","findAnchorFromDocument","documentResult","getElementsByName","createTreeWalker","treeWalker","NodeFilter","SHOW_ELEMENT","currentNode","nextNode","scrollToElement","setHistoryScrollRestoration","XhrFactory","asyncGeneratorStep","_asyncToGenerator","_throw","HttpHandler","HttpBackend","normalizedNames","lazyUpdate","lazyInit","maybeSetNormalizedName","Headers","setHeaderEntries","lcName","copyFrom","applyUpdate","toDelete","existing","headerValues","HttpUrlEncodingCodec","encodeKey","standardEncoding","encodeValue","decodeKey","decodeValue","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","valueToString","HttpParams","updates","cloneFrom","fromString","fromObject","paramParser","rawParams","codec","eqIdx","appendAll","eKey","HttpContext","isBlob","isFormData","FormData","HttpRequest","third","fourth","reportProgress","mightHaveBody","transferCache","urlWithParams","qIdx","serializeBody","isUrlSearchParams","detectContentTypeHeader","setHeaders","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","Response","User","HttpResponseBase","defaultStatus","defaultStatusText","statusText","HttpHeaderResponse","HttpErrorResponse","addBody","events$","res$","jsonp","callbackParam","XSSI_PREFIX$1","getResponseUrl$1","xRequestUrl","FetchBackend","fetchImpl","FetchFactory","aborter","AbortController","doRequest","abort","createRequestInit","fetchPromise","silenceSuperfluousUnhandledPromiseRejection","contentLength","decoder","partialText","receivedLength","reqZone","Zone","chunksAll","concatChunks","contentType","parseBody","binContent","credentials","Accept","detectedType","interceptorChainEndFn","finalHandlerFn","adaptLegacyInterceptorToChain","chainTailFn","initialRequest","downstreamRequest","HTTP_INTERCEPTOR_FNS","HTTP_ROOT_INTERCEPTOR_FNS","REQUESTS_CONTRIBUTE_TO_STABILITY","legacyInterceptorFnFactory","pendingTasks","ɵPendingTasks","taskId","HttpInterceptorHandler","backend","contributeToStability","dedupedInterceptorFns","nextSequencedFn","interceptorFn","chainedInterceptorFn","runInInjectionContext","XSSI_PREFIX","HttpXhrBackend","xhrFactory","ɵloadImpl","setRequestHeader","reqBody","headerResponse","partialFromXhr","getAllResponseHeaders","getResponseUrl","responseURL","originalBody","sentHeaders","onDownProgress","progressEvent","lengthComputable","onUpProgress","upload","DONE","XSRF_ENABLED","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","lastCookieString","lastToken","parseCount","getToken","cookieString","ɵparseCookieValue","xsrfInterceptorFn","lcUrl","headerName","HttpFeatureKind","Interceptors","LegacyInterceptors","CustomXsrfConfiguration","NoXsrfProtection","JsonpSupport","RequestsMadeViaParent","makeHttpFeature","ɵkind","ɵproviders","provideHttpClient","makeEnvironmentProviders","LEGACY_INTERCEPTOR_FN","defaultEquals","activeConsumer","inNotificationPhase","SIGNAL","setActiveConsumer","REACTIVE_NODE","lastCleanEpoch","producerNode","producerLastReadVersion","producerIndexOfThis","nextProducerIndex","liveConsumerNode","liveConsumerIndexOfThis","consumerAllowSignalWrites","consumerIsAlwaysLive","producerMustRecompute","producerRecomputeValue","consumerMarkedDirty","consumerOnSignalRead","producerAccessed","assertConsumerNode","consumerIsLive","producerRemoveLiveConsumerAtIndex","producerAddLiveConsumer","producerUpdateValueVersion","consumerPollProducersForChange","producerNotifyConsumers","consumerMarkDirty","producerUpdatesAllowed","consumerBeforeComputation","consumerAfterComputation","prevConsumer","producer","seenVersion","consumerDestroy","indexOfThis","assertProducerNode","isConsumerNode","lastIdx","idxProducer","createComputed","computation","COMPUTED_NODE","ERRORED","UNSET","COMPUTING","equal","throwInvalidWriteToSignalErrorFn","defaultThrowError","throwInvalidWriteToSignalError","postSignalSetFn","signalSetFn","signalValueChanged","producerIncrementEpoch","SIGNAL_NODE","NOOP_CLEANUP_FN","WATCH_NODE","hasRun","cleanupFn","XSS_SECURITY_URL","RuntimeError","formatRuntimeError","REQUIRED_UNSET_VALUE","INPUT_SIGNAL_NODE","SIGNAL_NODE$1","transformFn","applyValueToInputSignal","signalSetFn$1","createInputSignal","inputValueFn","producerAccessed$1","SIGNAL$1","noSideEffects","PARAMETERS","makeParamDecorator","parentClass","metaCtor","makeMetadataCtor","ParamDecoratorFactory","annotationInstance","ParamDecorator","annotation","unusedKey","parameters","ngMetadataName","annotationCls","_global","getClosureSafeProperty","objWithPropertyToExtract","fillProperties","overriddenName","newLineIndex","concatStringsWithSpace","__forward_ref__","forwardRefFn","resolveForwardRef","isForwardRef","ɵɵdefineInjector","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","isInjectable","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ngInjectableDef","ngInjectorDef","_desc","__NG_ELEMENT_ID__","isEnvironmentProviders","NG_COMP_DEF","NG_DIR_DEF","NG_PIPE_DEF","NG_MOD_DEF","NG_FACTORY_DEF","NG_ELEMENT_ID","NG_ENV_ID","__NG_ENV_ID__","renderStringify","stringifyForError","throwProviderNotFoundError","injectorName","errorMessage","InjectFlags","Host","Self","SkipSelf","Optional","_injectImplementation","getInjectImplementation","setInjectImplementation","impl","injectRootLimpMode","notFoundValue","injectableDef","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","SOURCE","_currentInjector","setCurrentInjector","former","injectInjectorOnly","convertToBitFlags","skipSelf","injectArgs","getInjectFlag","attachInjectFlag","decorator","getFactoryDef","throwNotFound","deepForEach","addToArray","removeFromArray","keyValueArraySet","keyValueArray","keyValueArrayIndexOf","arrayInsert2","keyValueArrayGet","_arrayIndexOfSorted","middle","EMPTY_OBJ","ENVIRONMENT_INITIALIZER","INJECTOR$1","INJECTOR_DEF_TYPES","NullInjector","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","ViewEncapsulation","Emulated","ShadowDom","InputFlags","SignalBased","HasDecoratorInputTransform","classIndexOf","classToSearch","startingIndex","foundIndex","setUpAttributes","native","attrName","attrVal","isAnimationProp","isNameOnlyAttributeMarker","mergeHostAttrs","srcMarker","mergeHostAttribute","markerInsertPosition","dstValue","NG_TEMPLATE_SELECTOR","isCssClassMatching","tNode","cssClassToMatch","isProjectionMode","isInlineTemplate","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","isPositive","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","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","extractDirectiveDef","getComponentDef","getDirectiveDef","nonNull","ɵɵdefineNgModule","declarations","transitiveCompileScopes","parseAndConvertBindingsForDefinition","declaredInputs","newLookup","minifiedKey","publicName","declaredName","inputFlags","ɵɵdefineDirective","directiveDefinition","ɵɵdefinePipe","pipeDef","getPipeDef$1","isStandalone","getNgModuleDef","ngModuleDef","providersResolver","inputTransforms","inputConfig","setInput","findHostDirectiveDefs","hostDirectives","debugInfo","definition","defExtractor","dep","importProvidersFrom","internalImportProvidersFrom","ɵfromNgModule","checkForStandaloneCmp","providersOut","dedup","injectorTypesWithProviders","collectProviders","internalSource","walkProviderTree","processInjectorTypesWithProviders","typesWithProviders","deepForEachProvider","defType","injDef","cmpDef","isDuplicate","importTypesWithProviders","imported","defProviders","injectorType","USE_VALUE$1","isValueProvider","isTypeProvider","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR","getNullInjector","EnvironmentInjector","R3Injector","scopes","_ngOnDestroyHooks","_onDestroyHooks","forEachSingleProvider","processProvider","makeRecord","injectorDefTypes","assertNotDestroyed","setActiveConsumer$1","onDestroyHooks","hook","removeOnDestroy","previousInjector","previousInjectImplementation","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","catchInjectorError","injectorErrorName","tokenPath","formatError","resolveInjectorInitializers","initializers","providerToRecord","providerToFactory","multiRecord","hasOnDestroy","destroyCBIdx","getUndecoratedInjectableFactory","inheritedInjectableDef","getInheritedInjectableDef","ngModuleType","unwrappedProvider","isFactoryProvider","isExistingProvider","classRef","hasDeps","prevInjector","isInInjectionContext","getCurrentInjector","assertInInjectionContext","debugFn","HOST","TVIEW","FLAGS","PARENT","NEXT","T_HOST","HYDRATION","CLEANUP","CONTEXT","INJECTOR","ENVIRONMENT","RENDERER","CHILD_HEAD","CHILD_TAIL","DECLARATION_VIEW","DECLARATION_COMPONENT_VIEW","DECLARATION_LCONTAINER","PREORDER_HOOK_FLAGS","QUERIES","EMBEDDED_VIEW_INJECTOR","ON_DESTROY_HOOKS","EFFECTS_TO_SCHEDULE","REACTIVE_TEMPLATE_CONSUMER","HEADER_OFFSET","TYPE","NATIVE","MOVED_VIEWS","CONTAINER_HEADER_OFFSET","LContainerFlags","HasTransplantedViews","isLView","isLContainer","isContentQueryHost","isComponentHost","componentOffset","isDirectiveHost","isComponentDef","isRootView","SimpleChange","isFirstChange","applyValueToInputField","inputSignalNode","privateName","ɵɵNgOnChangesFeature","NgOnChangesFeatureImpl","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","setSimpleChangesStore","SIMPLE_CHANGES_STORE","previousChange","ngInherit","profiler","hookOrListener","SVG_NAMESPACE","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","getComponentLViewByIndex","nodeIndex","slotValue","viewAttachedToChangeDetector","getConstant","resetPreOrderHookFlags","markViewForRefresh","markAncestorsForTraversal","requiresRefreshOrTraversal","updateAncestorTraversalFlagsOnAttach","changeDetectionScheduler","getLViewParent","storeLViewOnDestroy","onDestroyCallback","instructionState","lFrame","createLFrame","bindingsEnabled","skipHydrationRootTNode","_isRefreshingViews","getBindingsEnabled","isInSkipHydrationBlock$1","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","ɵɵresetView","getCurrentTNode","currentTNode","getCurrentTNodePlaceholderOk","setCurrentTNode","isParent","isCurrentTNodeParent","setCurrentTNodeAsNotParent","isRefreshingViews","setIsRefreshingViews","getBindingRoot","bindingRootIndex","bindingStartIndex","getBindingIndex","bindingIndex","nextBindingIndex","incrementBindingIndex","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentDirectiveDef","tData","getCurrentQueryIndex","setCurrentQueryIndex","getDeclarationTNode","declTNode","enterDI","parentTNode","parentLView","allocLFrame","enterView","newView","newLFrame","inI18n","currentLFrame","childLFrame","elementDepthCount","currentNamespace","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","ɵɵnamespaceSVG","ɵɵnamespaceHTML","namespaceHTMLInternal","_wasLastNodeCreated","wasLastNodeCreated","lastNodeWasCreated","registerPostOrderHooks","directiveStart","directiveEnd","lifecycleHooks","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","hooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","callHookInternal","directive","isInitHook","NO_PARENT_INJECTOR","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","ChainedInjector","parentInjector","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorView","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","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","previousIncludeViewProviders","registerPreOrderHooks","directiveIndex","directiveDef","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","injectorView","isFirstHostTNode","NodeInjector","_tNode","_lView","ɵɵgetInheritedFactory","ownConstructor","ownFactory","getFactoryOf","objectPrototype","tViewType","ɵɵinjectAttribute","attrNameToInject","injectAttributeImpl","attrsLength","createInjector","additionalProviders","createInjectorWithoutInjectorInstances","getOriginalError","SCHEDULE_IN_ROOT_ZONE_DEFAULT","DestroyRef","injectDestroyRef","NodeInjectorDestroyRef","removeLViewOnDestroy","PendingTasks","hasPendingTasks","_hasPendingTasks","EventEmitter_","isAsync","destroyRef","__isAsync","nextFn","errorFn","completeFn","wrapInTimeout","scheduleCallbackWithRafRace","cleanup","scheduleCallbackWithMicrotask","isAngularZoneProperty","angularZoneInstanceIdProperty","ngZoneInstanceId","hasPendingMacrotasks","hasPendingMicrotasks","onUnstable","onMicrotaskEmpty","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","scheduleInRootZone","assertZonePatched","_nesting","_outer","_inner","TaskTrackingZoneSpec","longStackTraceZoneSpec","callbackScheduled","forkInnerZoneWithAngularBehavior","delayChangeDetectionForEventsDelegate","delayChangeDetectionForEvents","scheduleCheckStable","updateMicroTaskStatus","isCheckStableRunning","checkStable","instanceId","gm","Hg","onInvokeTask","applyThis","applyArgs","shouldBeIgnoredByZone","hasApplyArgsData","invokeTask","onLeave","onInvoke","isSchedulerTick","onHasTask","hasTaskState","hasTask","_hasPendingMicrotasks","microTask","macroTask","onHandleError","assertInAngularZone","assertNotInAngularZone","runTask","scheduleEventTask","EMPTY_PAYLOAD","cancelTask","runGuarded","NoopNgZone","_console","originalError","_findOriginalError","INTERNAL_APPLICATION_ERROR_HANDLER","userErrorHandler","OutputEmitterRef","errorHandler","previousConsumer","listenerFn","inputFunction","inputRequiredFunction","injectElementRef","createElementRef","unwrapElementRef","symbolIterator","_results","_changes","_emitDistinctChangesOnly","_onDirty","_changesDetected","resultsTree","identityAccessor","newResultFlat","arrayEquals","notifyOnChanges","onDirty","setDirty","hasInSkipHydrationBlockFlag","TRACKED_LVIEWS","uniqueIdCounter","unregisterLView","MONKEY_PATCH_KEY_NAME","attachPatchData","registerLView","getFirstLContainer","getNearestLContainer","getNextLContainer","viewOrContainer","setDocument","getDocument","DEFAULT_APP_ID","PLATFORM_INITIALIZER","CSP_NONCE","_retrieveHydrationInfoImpl","retrieveHydrationInfo","rNode","PRESERVE_HOST_CONTENT","policy$1","policy","getPolicy$1","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","trustedHTMLFromString","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","DOMParserHelper","inertDocumentHelper","getInertBodyElement","InertDocumentHelper","defaultDoc","inertDocument","implementation","createHTMLDocument","templateEl","SAFE_URL_PATTERN","_sanitizeUrl","tagSet","sets","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","parentNodes","startElement","TEXT_NODE","nodeValue","getFirstChild","endElement","getNextSibling","getNodeName","elAttrs","elAttr","encodeEntities","previousSibling","clobberedElementError","isClobberedElement","childNode","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","outerHTML","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","_sanitizeHtml","unsafeHtmlInput","inertBodyElement","getInertBodyHelper","isDOMParserAvailable","unsafeHtml","mXSSAttempts","parsedHtml","getTemplateContent","isTemplateElement","SecurityContext","NONE","HTML","STYLE","SCRIPT","RESOURCE_URL","ɵɵsanitizeHtml","getSanitizer","sanitize","ɵɵsanitizeUrl","unsafeUrl","ɵɵsanitizeResourceUrl","unsafeResourceUrl","ɵɵtrustConstantResourceUrl","trustedScriptURLFromString","ɵɵsanitizeUrlOrResourceUrl","getUrlSanitizer","COMMENT_DISALLOWED","COMMENT_DELIMITER","COMMENT_DELIMITER_ESCAPED","ɵɵresolveWindow","ɵɵresolveDocument","maybeUnwrapFn","Important","_icuContainerIterate","icuContainerIterate","tIcuContainerNode","applyToElementOrContainer","lNodeToHandle","beforeNode","lContainer","isComponent","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","applyContainer","parentRElement","applyView","createCommentNode","escapeCommentText","createElementNode","detachViewFromDOM","trackMovedView","declarationContainer","movedViews","detachMovedView","declarationViewIndex","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","removeViewFromDOM","lQueries","destroyLView","destroyViewTree","rootView","lViewOrLContainer","cleanUpView","firstView","consumerDestroy$1","executeOnDestroys","toCall","callContext","processCleanups","tCleanup","lCleanup","targetIdx","destroyHooksFn","getParentRElement","getClosestRElement","nativeAppendOrInsertBefore","nativeParentNode","getInsertInFrontOfRNode","_getInsertInFrontOfRNodeWithI18n","_processI18nInsertBefore","getInsertInFrontOfRNodeWithNoI18n","childRNode","childTNode","parentRNode","getFirstNativeNode","tNodeType","getBeforeNodeForView","elIcuContainerChild","rNodeOrLContainer","projectionNodes","getProjectionNodes","viewIndexInContainer","nextViewIndex","firstTNodeOfView","applyNodes","isProjection","rawSlotValue","nextRNode","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","nodeToProject","projectedComponentLView","writeDirectClass","setupStaticAttributes","mergedAttrs","writeDirectStyle","NO_CHANGE","ɵɵadvance","selectIndexInternal","checkNoChangesMode","ɵɵdirectiveInject","ɵɵinvalidFactory","writeToDirectiveInput","createLView","tHostNode","hydrationInfo","getUniqueLViewId","getOrCreateTNode","createTNodeAtIndex","createTNode","insertBeforeIndex","directiveStylingLast","propertyBindings","localNames","initialInputs","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","isInI18nBlock","getCurrentParentTNode","allocExpando","numSlotsToAlloc","allocIdx","executeTemplate","templateFn","prevSelectedIndex","isUpdatePhase","executeContentQueries","createDirectivesInstances","instantiateAllDirectives","addComponentLogic","hostTNode","getOrCreateComponentTView","lViewFlags","componentView","addToViewTree","rendererFactory","setInputsFromAttrs","invokeDirectivesHostBindings","saveResolvedLocalsInData","localRefExtractor","localIndex","incompleteFirstPass","createTView","directives","pipes","constsOrFactory","ssrId","initialViewLength","createViewBlueprint","expandoStartIndex","hostBindingOpCodes","firstUpdatePass","staticViewQueries","staticContentQueries","directiveRegistry","pipeRegistry","_applyRootElementTransformImpl","captureNodeBindings","aliasMap","bindingsResult","hostDirectiveAliasMap","internalName","finalPublicName","addPropertyBinding","bindings","elementPropertyInternal","nativeOnly","dataValue","inputData","setInputsForProperty","markDirtyIfOnPush","viewIndex","childComponentLView","mapPropName","resolveDirectives","localRefs","exportsMap","findDirectiveDefMatches","hostDirectiveDefs","hostDirectiveMatches","markAsComponentHost","initializeDirectives","cacheMatchingLocalNames","initTNodeFlags","numberOfDirectives","preOrderHooksFound","preOrderCheckHooksFound","directiveIdx","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","initializeInputAndOutputAliases","hostDirectiveDefinitionMap","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","aliasData","aliasedOutputs","generateInitialInputs","getCurrentDirectiveIndex","invokeHostBindingsInCreationMode","directiveFactory","nodeInjectorFactory","registerHostBindingOpCodes","directiveVarsIdx","elementIndx","lastSelectedElementIdx","elementAttributeInternal","setElementAttribute","initialInputData","inputsToStore","createLContainer","hostNative","refreshContentQueries","directiveDefIdx","executeViewQueryFn","viewQueryFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","loadComponentRenderer","currentDef","unwrapLView","textBindingInternal","updateTextNode","renderComponent","hostLView","componentHostIdx","componentTView","syncViewWithBlueprint","hostRNode","renderView","finishViewCreation","renderChildComponents","createAndRenderEmbeddedLView","declarationLView","templateTNode","embeddedTView","embeddedLView","dehydratedView","declarationViewLQueries","getLViewFromLContainer","adjustedIndex","shouldAddViewToDom","addLViewToLContainer","addToDOM","insertView","containerLength","addViewToDOM","parentNativeNode","removeLViewFromLContainer","collectNativeNodes","lNode","collectNativeNodesInLContainer","nodesInSlot","lViewInAContainer","lViewFirstChildTNode","freeConsumers","REACTIVE_LVIEW_CONSUMER_NODE","REACTIVE_NODE$1","TEMPORARY_CONSUMER_NODE","viewShouldHaveReactiveConsumer","MAXIMUM_REFRESH_RERUNS$1","detectChangesInternal","notifyErrorHandler","detectChangesInViewWhileDirty","lastIsRefreshingViewsValue","detectChangesInView","retries","inlineEffectRunner","refreshView","returnConsumerToPool","currentConsumer","getOrBorrowReactiveLViewConsumer","borrowReactiveLViewConsumer","consumerBeforeComputation$1","getActiveConsumer","getActiveConsumer$1","getOrCreateTemporaryConsumer","setBindingIndex","hooksInitPhaseCompleted","markTransplantedViewsForRefresh","detectChangesInEmbeddedViews","processHostBindingOpCodes","opCode","bindingRootIndx","hostBindingFn","detectChangesInChildComponents","notifyEffect","consumerAfterComputation$1","maybeReturnReactiveLViewConsumer","detectChangesInViewIfAttached","detectChangesInComponent","shouldRefreshView","consumerPollProducersForChange$1","markViewDirty","dirtyBitsToUse","ViewRef$1","_cdRefInjectingView","_attachedToViewContainer","viewRefs","reattach","checkNoChanges","attachToViewContainerRef","detachFromAppRef","attachToAppRef","appRef","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","createEmbeddedViewImpl","createTemplateRef","_findMatchingDehydratedViewImpl","findMatchingDehydratedView","ChangeDetectionScheduler","ZONELESS_ENABLED","ZONELESS_SCHEDULER_DISABLED","SCHEDULE_IN_ROOT_ZONE","ComponentRef$1","ComponentFactory$1","_NullComponentFactoryResolver","noComponentFactoryError","ComponentFactoryResolver$1","injectRenderer2","nodeAtIndex","Sanitizer","isModuleWithProviders","isNgModule","isPipe","isDirective","verifyStandaloneImport","depType","importingType","getDependencyTypeForError","DepsTracker","ownerNgModule","ngModulesWithSomeUnresolvedDecls","ngModulesScopeCache","standaloneComponentsScopeCache","resolveNgModulesDecls","moduleType","decl","getComponentDependencies","rawImports","scope","getStandaloneComponentScope","compilation","isPoisoned","ngModules","getNgModuleScope","registerNgModule","scopeInfo","clearScopeCacheFor","computeNgModuleScope","exported","importedScope","addSet","exportedScope","ans","computeStandaloneComponentScope","rawImport","isOrphanComponent","cmp","sourceSet","targetSet","depsTracker","computeStaticStyling","writeToHost","ComponentFactoryResolver","ComponentFactory","toRefArray","isInputMap","templateName","isSignal","refArray","componentType","stringifyCSSSelectorList","selectorList","isBoundToModule","projectableNodes","rootSelectorOrNode","environmentInjector","realEnvironmentInjector","rootViewInjector","hostRenderer","locateHostElement","elementOrSelector","applyRootElementTransform","getNamespace","rootFlags","rootTView","rootLView","tElementNode","rootComponentDef","rootDirectives","createRootComponentTNode","createRootComponentView","applyRootComponentStyling","viewRenderer","setRootNodeAttributes","extractAttrsAndClassesFromSelector","projectNodes","nodesforSlot","createRootComponent","hostFeatures","rootTNode","LifecycleHooksFeature","ComponentRef","_rootLView","previousInputValues","ViewContainerRef","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","indexOrOptions","insertImpl","componentFactoryOrType","isComponentFactory","ngModuleRef","contextInjector","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","getOrCreateViewRefs","viewRefsArr","_locateOrCreateAnchorNode","createAnchorNode","commentNode","insertAnchorNode","nativeNextSibling","_populateDehydratedViewsInLContainer","LQuery_","queryList","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","splitQueryMultiSelectors","locator","TQueries_","elementStart","elementEnd","queriesForTemplateRef","childQueryIndex","tqueryClone","tquery","TQuery_","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","tNodeIdx","matchIdx","createResultForNode","matchingIdx","createResultByTNodeType","createSpecialToken","materializeViewResults","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","collectQueryResults","lViewResults","embeddedLViews","loadQueryInternal","createLQuery","storeCleanupWithContext","createContentQuery","createTQuery","saveContentQueryAndDirectiveIndex","tViewContentQueries","getQueryResults","markedFeatures","performanceMarkFeature","mark","signalFn","createSignal","getter","createSignal$1","updateFn","signalUpdateFn","signalUpdateFn$1","signalAsReadonlyFn","readonlyFn","isWritableSignal","createQuerySignalFn","firstOnly","createComputed$1","_dirtyCounter","refreshSignalQuery","_queryIndex","_flatValue","contentChildFn","createSingleResultOptionalQuerySignalFn","contentChildRequiredFn","createSingleResultRequiredQuerySignalFn","createModelSignal","emitterRef","assertModelSet","modelFunction","modelRequiredFunction","ɵɵInheritDefinitionFeature","superType","getSuperType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","mergeInputsWithTransforms","defData","mergeHostAttrsAcrossInheritance","minifiedName","prevViewQuery","prevContentQueries","prevHostBindings","ɵɵHostDirectivesFeature","rawHostDirectives","isEager","createHostDirectiveDef","matchedDefs","configOrFn","trackHostDirectiveDef","hostDirectiveDef","patchDeclaredInputs","exposedInputs","bindingArrayToMap","ɵɵInputTransformsFeature","NgModuleRef$1","NgModuleFactory$1","createNgModule","NgModuleRef","_parent","runInjectorInitializers","_bootstrapComponents","destroyCbs","_r3Injector","NgModuleFactory","EnvironmentNgModuleRefAdapter","debugName","runEnvironmentInitializers","createEnvironmentInjector","isListLikeIterable","isJsObject","updateBinding","getBinding","bindingUpdated","bindingUpdated2","exp1","exp2","different","bindingUpdated3","exp3","bindingUpdated4","exp4","declareTemplate","declarationTView","localRefsIndex","templateFirstCreatePass","tViewConsts","_locateOrCreateContainerAnchor","populateDehydratedViewsInLContainer","ɵɵtemplate","attrsIndex","createContainerAnchorImpl","AfterRenderPhase","EarlyRead","Write","MixedReadWrite","Read","AfterRenderManager","AfterRenderImpl","deferredRegistrations","executing","PHASES","erroredOrDestroyed","pipelinedValue","afterRun","unregister","AfterRenderSequence","unregisterOnDestroy","afterNextRender","callbackOrSpec","afterRenderImpl","manager","manualCleanup","getHooks","earlyRead","mixedReadWrite","NOOP_AFTER_RENDER_REF","ɵɵattribute","interpolation1","interpolation2","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","markDuplicates","tStylingKey","isPrevDir","tStylingAtIndex","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","getLastParsedKey","getLastParsedValue","parseClassNameNext","consumeClassToken","consumeWhitespace","parseStyleNext","consumeStyleKey","consumeSeparator","consumeStyleValue","ch1","ch2","ch3","lastChIndex","consumeQuotedText","resetParserState","quoteCharCode","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","ɵɵstyleProp","checkStylingProperty","ɵɵclassProp","ɵɵstyleMap","checkStylingMap","styleKeyValueArraySet","styleStringParser","parseStyle","ɵɵclassMap","classKeyValueArraySet","classStringParser","parseClassName","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","updateStylingMap","oldKeyValueArray","newKeyValueArray","oldKey","newKey","setKey","toStylingKeyValueArray","styleKeyValueArray","unwrappedValue","isHostBindings","wrapInStaticStylingKey","stylingKey","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","insertTStylingBinding","tStylingKeyWithStatic","isHostBinding","isClassBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","setTStylingRangePrev","markDuplicateOfResidualStyling","currentDirective","desiredMarker","currentMarker","stringKey","tRange","higherPriorityValue","getTStylingRangeNextDuplicate","findStylingValue","isStylingValuePresent","getTStylingRangePrevDuplicate","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","ɵɵclassMapInterpolate1","LiveCollection","index1","index2","startIdx","endIdx","endItem","startItem","newIdx","valuesMatching","liveIdx","liveValue","attachPreviouslyDetached","prevCollection","detachedItems","createOrAttach","liveCollection","trackByFn","initLiveItemsInTheFuture","UniqueValueMultiKeyMap","kvMap","_vMap","vMap","ɵɵconditional","matchingTemplateIndex","contextValue","prevMatchingTemplateIndex","prevContainer","getLContainer","nextLContainerIndex","nextContainer","getExistingTNode","RepeaterContext","$count","ɵɵrepeaterTrackByIdentity","RepeaterMetadata","hasEmptyBlock","ɵɵrepeaterCreate","trackByUsesComponentInstance","emptyTemplateFn","emptyDecls","emptyVars","emptyTagName","emptyAttrsIndex","boundTrackBy","LiveCollectionLContainerImpl","operationsCounter","needsIndexUpdate","detachExistingView","recordCreate","recordDestroy","updateIndexes","getExistingLViewFromLContainer","ɵɵrepeater","metadataSlotIdx","hostTView","containerIndex","itemTemplateTNode","reconcile","newCollection","liveKeysInTheFuture","liveStartIdx","liveEndIdx","newEndIdx","liveStartValue","newStartValue","isStartMatching","liveEndValue","newEndValue","isEndMatching","liveStartKey","liveEndKey","newStartKey","newEndKey","newCollectionIterator","newIterationResult","liveKey","isCollectionEmpty","emptyTemplateIndex","lContainerForEmpty","emptyTemplateTNode","ɵɵelementStart","elementStartFirstCreatePass","_locateOrCreateElementNode","hasDirectives","isDetachedByI18n","getElementDepthCount","increaseElementDepthCount","ɵɵelementEnd","isSkipHydrationRootTNode","leaveSkipHydrationBlock","decreaseElementDepthCount","hasClassInput","hasStyleInput","ɵɵelement","getNamespace$1","ɵɵelementContainerStart","elementContainerStartFirstCreatePass","_locateOrCreateElementContainerNode","ɵɵelementContainerEnd","ɵɵelementContainer","ɵɵgetCurrentView","ɵɵhostProperty","ɵɵsyntheticHostProperty","localeEn","LOCALE_DATA","LocaleDataIndex","findLocaleData","normalizedLocale","normalizeLocale","getLocaleData","parentLocale","getLocalePluralCase","PluralCase","FirstDayOfWeek","WeekendRange","CurrencyCode","CurrencySymbol","CurrencyName","DEFAULT_LOCALE_ID","LOCALE_ID$1","stashEventListener","ɵɵlistener","useCapture","eventTargetResolver","listenerInternal","ɵɵsyntheticHostListener","isTNodeDirectiveHost","processOutputs","lCleanupIndex","idxOrTargetGetter","existingListener","findExistingListener","cleanupEventName","listenerIdxInLCleanup","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","executeListenerWithErrorHandling","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","ɵɵnextContext","nextContextImpl","walkUpViews","nestingLevel","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","getProjectAsAttrValue","ngProjectAsAttrIdx","ɵɵprojectionDef","componentNode","projectionHeads","newArray","tails","componentChild","slotIndex","ɵɵprojection","selectorIndex","fallbackTemplateFn","fallbackDecls","fallbackVars","fallbackIndex","isNodeCreationMode","insertFallbackContent","fallbackTNode","fallbackLContainer","applyProjection","ɵɵpropertyInterpolate","ɵɵpropertyInterpolate1","interpolatedValue","ɵɵpropertyInterpolate2","ɵɵcontentQuery","ɵɵviewQuery","createViewQuery","ɵɵqueryRefresh","isCreationMode","ɵɵloadQuery","ɵɵcontentQuerySignal","bindQueryToSignal","_queryList","ɵɵqueryAdvance","indexOffset","ɵɵreference","getContextLView","ɵɵtext","textNative","_locateOrCreateTextNode","ɵɵtextInterpolate","ɵɵtextInterpolate1","interpolated","ɵɵtextInterpolate2","ɵɵtextInterpolate3","interpolation3","ɵɵtextInterpolate4","interpolation4","ɵɵtwoWayProperty","ɵɵtwoWayBindingSet","canWrite","ɵɵtwoWayListener","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","StandaloneService","cachedInjectors","getOrCreateStandaloneInjector","standaloneInjector","ɵɵStandaloneFeature","ɵɵsetComponentScope","ɵɵsetNgModuleScope","convertToTypeArray","flattenValues","maybeUnwrapModuleWithProviders","ɵɵpureFunction0","slotOffset","pureFn","ɵɵpureFunction1","pureFunction1Internal","ɵɵpureFunction2","pureFunction2Internal","ɵɵpureFunction3","pureFunction3Internal","ɵɵpureFunction4","pureFunction4Internal","ɵɵpureFunction5","exp5","ɵɵpureFunction6","exp6","ɵɵpureFunction7","exp7","ɵɵpureFunctionV","exps","pureFunctionVInternal","bindingRoot","getPureFunctionReturnValue","returnValueIndex","lastReturnValue","ɵɵpipe","pipeName","getPipeDef","pipeFactory","pipeInstance","ɵɵpipeBind1","isPure","ɵɵpipeBind2","ɵɵpipeBind3","ɵɵpipeBind4","ɵɵtemplateRefExtractor","Version","major","minor","Console","TESTABILITY","TESTABILITY_GETTER","_testabilityGetter","Testability","testabilityGetter","_isZoneStable","_callbacks","taskTrackingZone","setTestabilityGetter","addToWindow","_watchAngularEvents","_runCallbacksIfReady","doneCb","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","whenStable","registerApplication","unregisterApplication","findProviders","using","exactMatch","TestabilityRegistry","_applications","testability","unregisterAllApplications","getTestability","getAllTestabilities","getAllRootElements","findTestabilityInTree","findInAncestors","isSubscribable","APP_INITIALIZER","ApplicationInitStatus","donePromise","rej","appInits","runInitializers","asyncInitPromises","initResult","observableAsPromise","all","APP_BOOTSTRAP_LISTENER","optionsReducer","objs","_bootstrapListeners","_runningTick","_destroyListeners","_views","internalErrorHandler","afterRenderManager","zonelessEnabled","dirtyFlags","deferredDirtyFlags","externalTestViews","beforeRender","afterTick","componentTypes","allViews","stable","finally","componentOrFactory","compRef","_loadComponent","_tick","synchronize","runs","synchronizeOnce","useGlobalCheck","detectChangesInViewIfRequired","syncDirtyFlagsWithViews","warnIfDestroyed","isFirstPass","ModuleWithComponentFactories","ngModuleFactory","componentFactories","Compiler","compileModuleSync","compileModuleAsync","compileModuleAndAllComponentsSync","declaration","compileModuleAndAllComponentsAsync","clearCache","clearCacheFor","getModuleId","NgZoneChangeDetectionScheduler","applicationRef","_onMicrotaskEmptySubscription","runningTick","internalProvideZoneChangeDetection","ngZoneFactory","ignoreChangesOutsideZone","getNgZoneOptions","ngZoneChangeDetectionScheduler","ZoneStablePendingTask","eventCoalescing","runCoalescing","ChangeDetectionSchedulerImpl","taskService","disableScheduling","zoneIsDefined","schedulerTickApplyArgs","__scheduler_tick__","angularZoneId","cancelScheduledCallback","useMicrotaskScheduler","pendingRenderTaskId","shouldScheduleTick","scheduleCallback","getGlobalLocale","$localize","PLATFORM_DESTROY_LISTENERS","isApplicationBootstrapConfig","moduleRef","PlatformRef","_modules","bootstrapModuleFactory","moduleFactory","allAppProviders","getNgZone","ngZoneToUse","ngZoneEventCoalescing","ngZoneRunCoalescing","createNgModuleRefWithProviders","envInjector","r3Injector","exceptionHandler","onErrorSubscription","destroyListener","onPlatformDestroyListeners","platformInjector","allPlatformModules","_callAndReportToErrorHandler","initStatus","setLocaleId","rootComponent","moduleDoBootstrap","ngDoBootstrap","compilerOptions","compileNgModuleFactory","destroyListeners","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","createPlatformFactory","parentPlatformFactory","extraProviders","getPlatform","platformProviders","createPlatform","publishSignalConfiguration","setThrowInvalidWriteToSignalError","setThrowInvalidWriteToSignalError$1","runPlatformInitializers","createPlatformInjector","assertPlatform","injectChangeDetectorRef","createViewRef","DefaultIterableDifferFactory","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","isDirty","previousRecord","_prev","_remove","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","toIndex","_prevDup","_nextDup","_DuplicateItemRecordList","_head","_tail","atOrAfterIndex","duplicates","recordList","moveOffset","DefaultKeyValueDifferFactory","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","defaultIterableDiffersFactory","IterableDiffers","copied","defaultKeyValueDiffersFactory","KeyValueDiffers","kv","platformCore","ApplicationModule","nonReactiveReadsFn","APP_EFFECT_SCHEDULER","EffectScheduler","ZoneAwareEffectScheduler","queuedEffectCount","queues","scheduleEffect","enqueue","creationZone","flushQueue","EffectHandle","effectFn","allowSignalWrites","watcher","createWatch","registerOnCleanup","isInNotificationPhase","destroyWatchNode","isWatchNodeDestroyed","createWatch$1","onCleanup","runEffect","cdr","reflectComponentType","BaseControlValueAccessor","BuiltInControlValueAccessor","ɵBuiltInControlValueAccessor_BaseFactory","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","_isAndroid","ɵgetDOM","_handleInput","_compositionStart","_compositionEnd","isEmptyInputValue","hasValidLength","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","minValidator","maxValidator","requiredValidator","requiredTrue","requiredTrueValidator","emailValidator","minLengthValidator","requiredLength","actualLength","maxLengthValidator","patternValidator","nullValidator","regexStr","requiredPattern","actualValue","composeAsync","isPresent","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","errorCode","ControlContainer","formDirective","valueAccessor","AbstractControlStatus","_cd","isTouched","_touched","isUntouched","isPristine","_pristine","_status","isInvalid","isPending","isSubmitted","_submitted","submitted","NgControlStatus","NgControlStatusGroup","VALID","INVALID","PENDING","DISABLED","ControlEvent","ValueChangeEvent","PristineChangeEvent","TouchedChangeEvent","StatusChangeEvent","FormSubmittedEvent","FormResetEvent","pickValidators","validatorOrOpts","isOptionsObj","pickAsyncValidators","asyncValidators","assertControlPresent","assertAllValuesPresent","_forEachChild","AbstractControl","_pendingDirty","_hasOwnPendingAsyncValidator","_pendingTouched","_onCollectionChange","statusReactive","pristineReactive","touchedReactive","_onDisabledChange","_assignValidators","_assignAsyncValidators","validatorFn","asyncValidatorFn","_updateOn","setValidators","setAsyncValidators","addAsyncValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","markAsTouched","sourceControl","markAsUntouched","_updateTouched","_updatePristine","markAsPending","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","setParent","_setInitialStatus","shouldHaveEmitted","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","ctrl","_allControlsDisabled","_asyncValidationSubscription","_updateControlsErrors","currPath","_find","changedControl","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","newPristine","_registerOnCollectionChange","_setUpdateStrategy","coerceToValidator","coerceToAsyncValidator","_setUpControls","registerControl","setControl","_reduceChildren","_syncPendingControls","subtreeUpdated","_reduceValue","initValue","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","onValidatorChange","isControlUpdated","updatedValidators","updatedAsyncValidators","emitModelToViewChange","setUpFormContainer","isPropertyUpdated","viewModel","syncPendingControls","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","isBuiltInAccessor","formDirectiveProvider$1","NgForm","resolvedPromise$1","submittedReactive","_directives","ngSubmit","_findContainer","getControl","addFormGroup","removeFormGroup","getFormGroup","onReset","resetForm","removeListItem","isFormControlState","formState","_applyFormState","nonNullable","initialValueIsDefault","emitViewToModelChange","formControlBinding$1","NgModel","resolvedPromise","_registered","_checkForErrors","_checkName","oldName","_getPath","_setUpControl","_isStandalone","_setUpStandalone","_checkParentType","disabledValue","ɵNgNoValidate","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding","FormControlDirective","_ngModelWarningSentOnce","_ngModelWarningConfig","_ngModelWarningSent","_isControlChanged","previousForm","formDirectiveProvider","FormGroupDirective","_submittedReactive","_updateDomValue","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","removeListItem$1","_setUpFormContainer","_cleanUpFormContainer","addFormArray","removeFormArray","getFormArray","oldCtrl","newCtrl","isFormControl","cleanUpFormContainer","controlNameBinding","FormControlName","_added","AbstractValidatorDirective","inputName","normalizeInput","createValidator","REQUIRED_VALIDATOR","RequiredValidator","CHECKBOX_REQUIRED_VALIDATOR","CheckboxRequiredValidator","ɵRequiredValidator_BaseFactory","ɵCheckboxRequiredValidator_BaseFactory","MAX_LENGTH_VALIDATOR","MaxLengthValidator","ɵMaxLengthValidator_BaseFactory","ɵInternalFormsSharedModule","FormArray","_registerControl","isAbstractControlOptions","FormBuilder","useNonNullable","nnfb","reducedControls","_reduceControls","createdControls","_createControl","warnOnNgModelWithFormControl","delayWhen","delayDurationSelector","subscriptionDelay","ignoreElements","MatAutocomplete_ng_template_0_Template","formFieldId_r1","_classList","_getPanelAriaLabelledby","_uniqueAutocompleteIdCounter","MatAutocompleteSelectedEvent","_MatAutocompleteMixinBase","mixinDisableRipple","MAT_AUTOCOMPLETE_DEFAULT_OPTIONS","MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY","autoActiveFirstOption","autoSelectActiveOption","_MatAutocompleteBase","_activeOptionChanges","_isOpen","displayWith","optionSelected","optionActivated","inertGroups","_autoActiveFirstOption","_autoSelectActiveOption","_setVisibilityClasses","_keyManager","_setVisibility","_setScrollTop","_getScrollTop","_emitSelectEvent","_visibleClass","_hiddenClass","panelWidth","MatAutocomplete","ɵMatAutocomplete_BaseFactory","MAT_OPTGROUP","MatOption","disableRipple","MAT_OPTION_PARENT_COMPONENT","MAT_AUTOCOMPLETE_SCROLL_STRATEGY","MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER","MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY","MAT_AUTOCOMPLETE_VALUE_ACCESSOR","MatAutocompleteTrigger","_MatAutocompleteTriggerBase","_defaults","_componentDestroyed","_autocompleteDisabled","_manuallyFloatingLabel","_viewportSubscription","_canOpenOnNextFocus","_closeKeyEventStream","_windowBlurHandler","panelOpen","autocompleteAttribute","_overlayAttached","optionSelections","autocompleteDisabled","_setStrategyPositions","_destroyPanel","openPanel","_attachOverlay","_floatLabel","closePanel","_resetLabel","_pendingAutoselectedOption","_closingActionsSubscription","panelClosingActions","_getOutsideClickStream","MatOptionSelectionChange","activeOption","clickTarget","customOrigin","_assignOptionValue","_handleKeydown","hasModifier","_selectViaInteraction","_resetActiveItem","prevActiveItem","isArrowKey","_canOpen","_scrollToOption","_valueBeforeAutoSelection","_previousValue","_handleFocus","_handleClick","shouldAnimate","floatLabel","_animateAndLockLabel","_subscribeToClosingActions","firstStable","optionChanges","wasOpen","_setValueAndClose","toDisplay","_updateNativeInputValue","_control","toSelect","_clearPreviousSelectedOption","_getConnectedElement","_getPanelWidth","_portal","getLabelId","_getOverlayConfig","_handleOverlayEvents","_getOverlayPosition","overlayPanelClass","belowPositions","_aboveClass","abovePositions","_getHostWidth","labelCount","_countGroupLabelsBeforeOption","_getHostElement","newScrollPosition","_getOptionScrollPosition","MAT_FORM_FIELD","ɵMatAutocompleteTrigger_BaseFactory","MatOptionModule","BUTTON_HOST_ATTRIBUTES","_MatButtonBase","mixinDisabled","MatButton","_animationMode","isRoundButton","_hasHostAttributes","isIconButton","_isRippleDisabled","MatRipple","enterDuration","MAT_CHECKBOX_DEFAULT_OPTIONS","MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY","clickAction","MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR","MatCheckbox","MatCheckboxChange","_MatCheckboxMixinBase","mixinTabIndex","_MatCheckboxBase","labelPosition","indeterminateChange","_currentAnimationClass","_currentCheckState","_controlValueAccessorChangeFn","_checked","_uniqueId","_required","_syncIndeterminate","_transitionCheckState","_onLabelTextChange","_getAriaChecked","oldState","_getAnimationTargetElement","_getAnimationClassForCheckStateTransition","animationClass","_createChangeEvent","_inputElement","_handleInputClick","_onInteractionEvent","_animationClasses","uncheckedToChecked","checkedToIndeterminate","uncheckedToIndeterminate","checkedToUnchecked","indeterminateToChecked","indeterminateToUnchecked","nativeCheckbox","_labelElement","ariaDescribedby","animationMode","label_r2","checkboxLabel_r3","_MatCheckboxRequiredValidatorModule","MatOption_mat_pseudo_checkbox_0_Template","MatOption_span_3_Template","AnimationCurves","STANDARD_CURVE","DECELERATION_CURVE","ACCELERATION_CURVE","SHARP_CURVE","AnimationDurations","COMPLEX","ENTERING","EXITING","MATERIAL_SANITY_CHECKS","MATERIAL_SANITY_CHECKS_FACTORY","_sanityChecks","_hasDoneGlobalChecks","_checkIsEnabled","colorPalette","_disableRipple","defaultTabIndex","_tabIndex","mixinErrorState","errorState","updateErrorState","errorStateMatcher","_defaultErrorStateMatcher","isErrorState","_parentFormGroup","_parentForm","mixinInitialized","_pendingSubscribers","_notifySubscriber","_markInitialized","MAT_DATE_LOCALE_FACTORY","_localeChanges","getValidDateOrNull","firstValid","secondValid","MAT_DATE_FORMATS","NativeDateAdapter","parseFormat","MAT_NATIVE_DATE_FORMATS","NativeDateModule","ErrorStateMatcher","MatLine","setLines","RippleRef","_animationForciblyDisabledThroughCss","fadeOutRipple","defaultRippleAnimationConfig","exitDuration","passiveEventOptions","pointerDownEvents","pointerUpEvents","RippleRenderer","_isPointerDown","_activeRipples","_pointerUpEventsRegistered","fadeInRipple","animationConfig","centered","distanceToFurthestCorner","distX","distY","userTransitionDuration","animationForciblyDisabledThroughCss","transitionProperty","rippleRef","persistent","_mostRecentTransientRipple","eventListeners","onTransitionEnd","_finishRippleTransition","onTransitionCancel","_destroyRipple","rippleEl","fadeOutAll","_getActiveRipples","fadeOutAllNonPersistent","setupTriggerEvents","_triggerElement","_removeTriggerEvents","_registerEvents","_onPointerUp","_startFadeOutTransition","isMostRecentTransientRipple","isFakeMousedown","isSyntheticEvent","_lastTouchStartEvent","rippleDisabled","rippleConfig","terminateOnPointerUp","eventTypes","MAT_RIPPLE_GLOBAL_OPTIONS","globalOptions","_globalOptions","_rippleRenderer","_setupTriggerEventsIfEnabled","_trigger","launch","configOrX","unbounded","MatPseudoCheckbox","_uniqueIdCounter","isUserInput","_MatOptionBase","_mostRecentViewValue","_stateChanges","viewValue","_emitSelectionChangeEvent","_getAriaSelected","_getTabIndex","_inert","optionsArray","groupCounter","optionOffset","optionHeight","currentScrollPosition","MatDatepickerToggle__svg_svg_2_Template","MatDatepickerIntl","calendarLabel","openCalendarLabel","closeCalendarLabel","startDateLabel","endDateLabel","formatYearRangeLabel","MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY","MatDatepickerToggleIcon","MatDatepickerToggle","parsedTabIndex","_watchStateChanges","_open","datepickerStateChanged","inputStateChanged","datepickerToggled","_button","CdkDialogContainer_ng_template_0_Template","DialogConfig","ariaDescribedBy","ariaModal","restoreFocus","closeOnNavigation","closeOnDestroy","CdkDialogContainer","_focusTrapFactory","_interactivityChecker","_elementFocusedBeforeDialogWasOpened","_closeInteractionType","_contentAttached","_ariaLabelledBy","_initializeFocusTrap","_handleBackdropClicks","_captureInitialFocus","_trapFocus","_restoreFocus","_recaptureFocus","_containsFocus","_forceFocus","_focusByCssSelector","elementToFocus","_focusTrap","focusedSuccessfully","_focusDialogContainer","focusConfig","focusTargetElement","DialogRef","containerInstance","closedSubject","DIALOG_SCROLL_STRATEGY","DIALOG_DATA","DEFAULT_DIALOG_CONFIG","DIALOG_SCROLL_STRATEGY_PROVIDER","DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY","Dialog","_defaultOptions","_parentDialog","_openDialogsAtThisLevel","_afterAllClosedAtThisLevel","_afterOpenedAtThisLevel","_ariaHiddenElements","afterAllClosed","openDialogs","_getAfterAllClosed","afterOpened","componentOrTemplateRef","getDialogById","dialogContainer","_attachContainer","_attachDialogContent","_hideNonDialogContentFromAssistiveTechnology","_removeOpenDialog","closeAll","reverseForEach","userInjector","containerType","containerPortal","_createInjector","templateContext","contentRef","fallbackInjector","overlayContainer","DialogModule","MatDialogContainer_ng_template_0_Template","enterAnimationDuration","exitAnimationDuration","matDialogAnimations","MatDialogConfig","delayFocusTrap","_MatDialogContainerBase","focusTrapFactory","dialogConfig","interactivityChecker","focusMonitor","_animationStateChanged","_openAnimationDone","MatDialogContainer","checker","_onAnimationDone","_onAnimationStart","_startExitAnimation","_getAnimationState","MatDialogRef","_containerInstance","_afterOpened","_beforeClosed","_closeFallbackTimeout","_finishDialogClose","_result","_closeDialogVia","interactionType","dialogResult","MAT_DIALOG_DEFAULT_OPTIONS","MAT_DIALOG_SCROLL_STRATEGY","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY","_MatDialogBase","_dialogRefConstructor","_dialogContainerType","_dialogDataToken","_idPrefix","cdkRef","cdkConfig","_closeDialogs","MatDialog","parentDialog","MatDialogContent","MatDialogActions","MatFormField_ng_container_3_Template","MatFormField_div_4_Template","updateOutlineGap","appearance","MatFormField_label_9_ng_container_2_Template","MatFormField_label_9_ng_content_3_Template","MatFormField_label_9_span_4_Template","MatFormField_label_9_Template","_shouldAlwaysFloat","_labelId","_hasLabel","hideRequiredMarker","MatFormField_div_10_Template","MatFormField_div_11_Template","MatFormField_div_13_Template","_subscriptAnimationState","MatFormField_div_14_div_1_Template","_hintLabelId","hintLabel","MatFormField_div_14_Template","nextUniqueId$2","MAT_ERROR","MatError","ariaLive","matFormFieldAnimations","transitionMessages","MatFormFieldControl","_MAT_HINT","MatLabel","MatPlaceholder","MAT_PREFIX","MatPrefix","MAT_SUFFIX","MatSuffix","_MatFormFieldBase","MAT_FORM_FIELD_DEFAULT_OPTIONS","MatFormField","_outlineGapCalculationNeededImmediately","_outlineGapCalculationNeededOnStable","_hideRequiredMarker","_showAlwaysAnimate","_hintLabel","_getDefaultFloatLabelState","_animationsEnabled","_appearance","_canLabelFloat","_processHints","_explicitFormFieldControl","_controlNonStatic","_controlStatic","_hasFloatingLabel","_connectionContainerRef","_validateControlChild","controlType","_validatePlaceholders","_syncDescribedByIds","_prefixChildren","_suffixChildren","_hintChildren","_errorChildren","_shouldForward","_hasPlaceholder","_placeholderChild","_labelChildNonStatic","_labelChildStatic","_shouldLabelFloat","shouldLabelFloat","_hideControlPlaceholder","_getDisplayedMessages","_validateHints","userAriaDescribedBy","startHint","hint","endHint","setDescribedByIds","labelEl","outlineStartSelector","outlineGapSelector","gapElements","_isAttachedToDOM","startWidth","gapWidth","startEls","gapEls","containerStart","_getStartEnd","labelChildren","labelStart","labelWidth","outlineGapPadding","_inputContainerRef","autofilled","MatFormFieldModule","ttWindow","getMatIconNameNotFoundError","iconName","getMatIconFailedToSanitizeUrlError","getMatIconFailedToSanitizeLiteralError","SvgIconConfig","svgText","MatIconRegistry","_httpClient","_sanitizer","_errorHandler","_svgIconConfigs","_iconSetConfigs","_cachedIconsByUrl","_inProgressUrlFetches","_fontCssClassesByAlias","_resolvers","_defaultFontSetClass","addSvgIcon","addSvgIconInNamespace","addSvgIconLiteral","addSvgIconLiteralInNamespace","_addSvgIconConfig","addSvgIconResolver","cleanLiteral","trustedLiteral","addSvgIconSet","addSvgIconSetInNamespace","addSvgIconSetLiteral","addSvgIconSetLiteralInNamespace","_addSvgIconSetConfig","registerFontClassAlias","classNameForFontAlias","setDefaultFontSetClass","getDefaultFontSetClass","getSvgIconFromUrl","safeUrl","cachedIcon","cloneSvg","_loadSvgIconFromConfig","getNamedSvgIcon","iconKey","_getSvgFromConfig","_getIconConfigFromResolvers","iconSetConfigs","_getSvgFromIconSetConfigs","_svgElementFromConfig","namedIcon","_extractIconWithNameFromAnySet","iconSetFetchRequests","iconSetConfig","_loadSvgIconSetFromConfig","foundIcon","_extractSvgIconFromSet","_fetchIcon","iconSet","iconSource","_setSvgAttributes","_toSvgElement","_svgElementFromString","viewBox","iconConfig","getMatIconNoHttpProviderError","inProgressFetch","configNamespace","isSafeUrlWithOptions","_MatIconBase","MAT_ICON_DEFAULT_OPTIONS","MAT_ICON_LOCATION","MAT_ICON_LOCATION_FACTORY","getPathname","funcIriAttributes","funcIriAttributeSelector","funcIriPattern","MatIcon","_iconRegistry","_previousFontSetClass","_currentIconFetch","fontSet","svgIcon","_svgIcon","_updateSvgIcon","_clearSvgElement","_fontSet","_cleanupFontValue","_updateFontIconClasses","fontIcon","_fontIcon","_splitIconName","cachedElements","_elementsWithExternalReferences","_previousPath","_prependPathToReferences","_usingFontIcon","_setSvgElement","_cacheChildrenWithExternalReferences","layoutElement","childCount","fontSetClasses","_previousFontIconClass","elementsWithFuncIri","elementWithReference","rawName","_svgNamespace","_svgName","listenerOptions","AutofillMonitor","_monitoredElements","animationName","isAutofilled","unlisten","TextFieldModule","MAT_INPUT_INVALID_TYPES","_MatInputBase","MatInput","inputValueAccessor","_autofillMonitor","_uid","_type","_readonly","_neverEmptyInputTypes","_iOSKeyupListener","_inputValueAccessor","_previousNativeValue","_isServer","_isNativeSelect","_isTextarea","_isInFormField","_validateType","_dirtyCheckNativeValue","_dirtyCheckPlaceholder","_focusChanged","isFocused","_previousPlaceholder","_isNeverEmpty","_isBadInput","validity","badInput","firstOption","_isInlineSelect","MatProgressSpinner__svg_circle_2_Template","svg_r2","_spinnerAnimationLabel","_getStrokeDashOffset","_getStrokeCircumference","_getCircleStrokeWidth","_getCircleTransformOrigin","_getCircleRadius","MatProgressSpinner__svg_circle_3_Template","_MatProgressSpinnerBase","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY","diameter","MatProgressSpinner","_diameter","trackedDiameters","_diameters","_getSpinnerAnimationLabel","_noopAnimations","_forceAnimations","_styleRoot","_attachStyleNode","_strokeWidth","_getViewBox","currentScale","styleRoot","currentDiameter","diameters","diametersForElement","styleTag","_getAnimationText","strokeCircumference","MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS","disableToggleValue","MAT_SLIDE_TOGGLE_VALUE_ACCESSOR","MatSlideToggle","MatSlideToggleChange","_MatSlideToggleMixinBase","_MatSlideToggleBase","toggleChange","_onChangeEvent","labelContent_r3","_MatSlideToggleRequiredValidatorModule","MatSortHeader_div_3_Template","_disableViewStateAnimation","_getArrowViewState","_getArrowDirectionState","MAT_SORT_DEFAULT_OPTIONS","_MatSortBase","_direction","sortChange","disableClear","_disableClear","getNextSortDirection","sortDirectionCycle","getSortDirectionCycle","nextDirectionIndex","SORT_ANIMATION_TRANSITION","matSortAnimations","leftPointer","rightPointer","arrowOpacity","arrowPosition","allowChildren","MatSortHeaderIntl","MAT_SORT_HEADER_INTL_PROVIDER","MAT_SORT_HEADER_INTL_PROVIDER_FACTORY","parentIntl","_MatSortHeaderBase","MatSortHeader","_sort","_columnDef","_ariaDescriber","_showIndicatorHint","_viewState","_arrowDirection","_sortActionDescription","_handleStateChanges","sortActionDescription","_updateSortActionDescription","_updateArrowDirection","_setAnimationTransitionState","_isSorted","_sortButton","_setIndicatorHintVisible","_isDisabled","viewState","_toggleOnInteraction","_getAriaSortAttribute","_renderArrow","newDescription","MatRecycleRows","MatTable","ɵMatTable_BaseFactory","MatCellDef","ɵMatCellDef_BaseFactory","MatHeaderCellDef","ɵMatHeaderCellDef_BaseFactory","MatColumnDef","ɵMatColumnDef_BaseFactory","MatHeaderCell","ɵMatHeaderCell_BaseFactory","MatCell","ɵMatCell_BaseFactory","MatHeaderRowDef","ɵMatHeaderRowDef_BaseFactory","MatRowDef","ɵMatRowDef_BaseFactory","MatHeaderRow","ɵMatHeaderRow_BaseFactory","MatRow","ɵMatRow_BaseFactory","MatNoDataRow","ɵMatNoDataRow_BaseFactory","_MatTableDataSource","initialData","_renderData","_internalPageChanges","_renderChangesSubscription","sortingDataAccessor","sortHeaderId","numberValue","valueAType","valueBType","dataStr","currentTerm","transformedFilter","_updateChangeSubscription","_filterData","_paginator","pageChange","orderedData","_orderData","paginatedData","_pageData","_updatePaginator","pageSize","lastPageIndex","newPageIndex","MatTab_ng_template_0_Template","MatTabBody_ng_template_2_Template","MatTabGroup_div_2_ng_template_2_ng_template_0_Template","MatTabGroup_div_2_ng_template_2_Template","tab_r4","templateLabel","MatTabGroup_div_2_ng_template_3_Template","textLabel","MatTabGroup_div_2_Template","i_r5","tabHeader_r7","_tabFocusChanged","tabTextLabel_r8","_getTabLabelId","_tabs","_getTabContentId","MatTabGroup_mat_tab_body_5_Template","_removeTabBodyWrapperHeight","_setTabBodyWrapperHeight","tab_r10","i_r11","bodyClass","contentTabIndex","_MAT_INK_BAR_POSITIONER","_MAT_INK_BAR_POSITIONER_FACTORY","MatInkBar","_inkBarPositioner","alignToElement","inkBar","MAT_TAB_CONTENT","MAT_TAB_LABEL","MAT_TAB","MatTabLabel","_closestTab","_MatTabBase","MAT_TAB_GROUP","MatTab","_closestTabGroup","_contentPortal","_templateLabel","_setTemplateLabelInput","_explicitContent","_implicitContent","matTabsAnimations","translateTab","MatTabBodyPortal","_centeringSub","_leavingSub","_beforeCentering","_isCenterPosition","isCentering","_afterLeavingCenter","MatTabBody","_MatTabBodyBase","_dirChangeSubscription","_translateTabComplete","_onCentering","_onCentered","_computePositionAnimationState","_positionIndex","_computePositionFromOrigin","_onTranslateTabStarted","_getLayoutDirection","_portalHost","MAT_TABS_CONFIG","_MatTabLabelWrapperBase","MatTabLabelWrapper","getOffsetLeft","getOffsetWidth","passiveEventListenerOptions","MatPaginatedTabHeader","_scrollDistance","_selectedIndexChanged","_showPaginationControls","_disableScrollAfter","_disableScrollBefore","_stopScrolling","_disablePagination","_selectedIndex","selectFocusedIndex","indexFocused","_stopInterval","disablePagination","_previousPaginator","_handlePaginatorPress","_nextPaginator","dirChange","realign","updatePagination","_alignInkBarToSelectedTab","_itemsResized","_getMaxScrollDistance","newFocusIndex","_setTabFocus","ResizeObserver","tabItems","resizeObserver","_tabLabelCount","_scrollToLabel","_checkScrollingControls","_scrollDistanceChanged","_updateTabScrollPosition","focusIndex","_itemSelected","_onContentChanges","_currentTextContent","_checkPaginationEnabled","_isValidIndex","containerEl","_tabListContainer","scrollDistance","_tabList","_scrollTo","_scrollHeader","_handlePaginatorClick","labelIndex","selectedLabel","viewLength","labelBeforePos","labelAfterPos","_tabListInner","beforeVisiblePos","afterVisiblePos","selectedLabelWrapper","_inkBar","mouseEvent","maxScrollDistance","_MatTabHeaderBase","MatTabHeader","MatTabChangeEvent","_MatTabGroupMixinBase","_MatTabGroupBase","_indexToSelect","_lastFocusedTabIndex","_tabBodyWrapperHeight","_tabsSubscription","_tabLabelSubscription","_dynamicHeight","headerPosition","_preserveContent","selectedIndexChange","focusChange","animationDone","selectedTabChange","_groupId","dynamicHeight","_animationDuration","_contentTabIndex","_backgroundColor","indexToSelect","_clampTabIndex","isFirstRun","_tabBodyWrapper","_subscribeToAllTabChanges","_subscribeToTabLabels","_allTabs","realignInkBar","_tabHeader","focusTab","tabHeight","MatTabGroup","PANEL_CLASS","passiveListenerOptions","MAT_TOOLTIP_SCROLL_STRATEGY","MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER","MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY","MAT_TOOLTIP_DEFAULT_OPTIONS","MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY","touchendHideDelay","_MatTooltipBase","_viewInitialized","_pointerExitEventsInitialized","_cssClassPrefix","_showDelay","_hideDelay","touchGestures","_passiveListeners","_tooltipInstance","_setupPointerEnterEventsIfNeeded","_mouseLeaveHideDelay","_isTooltipVisible","_updateTooltipMessage","tooltipClass","_tooltipClass","_setTooltipClass","_touchstartTimeout","_cancelPendingAnimations","_createOverlay","_tooltipComponent","afterHidden","scrollableAncestors","_updateCurrentPositionClass","_handleBodyInteraction","disableTooltipInteractivity","_getOrigin","_addOffset","main","isLtr","originPosition","_invertPosition","overlayPosition","_markForCheck","newPosition","_currentPosition","classPrefix","_platformSupportsMouseEvents","_setupPointerExitEventsIfNeeded","_disableNativeGesturesIfNecessary","_addListeners","exitListeners","newTarget","_wheelListener","touchendListener","elementUnderPointer","gestures","userSelect","msUserSelect","webkitUserSelect","MozUserSelect","webkitUserDrag","touchAction","webkitTapHighlightColor","ariaDescriber","TooltipComponent","_TooltipComponentBase","_closeOnInteraction","_onHide","_hideTimeoutId","_showTimeoutId","_toggleVisibility","_handleMouseLeave","_finalizeAnimation","_onShow","_handleAnimationEnd","_showAnimation","_hideAnimation","toVisible","showClass","hideClass","_breakpointObserver","_isHandset","GenericBrowserDomAdapter","ɵDomAdapter","supportsDOMEvents","BrowserDomAdapter","makeCurrent","ɵsetRootDomAdapter","onAndCancel","getDefaultDocument","createHtmlDocument","isShadowRoot","DocumentFragment","getBaseElementHref","relativePath","baseURI","resetBaseElement","getCookie","BrowserXhr","EVENT_MANAGER_PLUGINS","EventManager","_eventNameToPlugin","_plugins","_findPluginFor","getZone","EventManagerPlugin","APP_ID_ATTRIBUTE_NAME","SharedStylesHost","appId","styleRef","hostNodes","styleNodesInDOM","collectServerRenderedStyles","platformIsServer","resetHostNodes","addStyles","changeUsageCount","onStyleAdded","removeStyles","onStyleRemoved","getAllStyles","addHost","hostNode","addStyleToHost","removeHost","styleMap","styleRefValue","usage","getStyleElement","styleEl","styleElRef","NAMESPACE_URIS","xhtml","xlink","COMPONENT_REGEX","COMPONENT_VARIABLE","HOST_ATTR","CONTENT_ATTR","REMOVE_STYLES_ON_COMPONENT_DESTROY","shimStylesContent","compId","DomRendererFactory2","eventManager","sharedStylesHost","removeStylesOnCompDestroy","rendererByCompId","defaultRenderer","DefaultDomRenderer2","getOrCreateRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","NoneEncapsulationDomRenderer","applyStyles","ShadowDomRenderer","throwOnSyntheticProps","isTemplateNode","namespaceUri","removeAttributeNS","decoratePreventDefault","eventHandler","hostEl","nodeOrShadowRoot","contentAttr","shimContentAttribute","componentShortId","hostAttr","shimHostAttribute","DomEventsPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Left","Right","Up","Down","Menu","Win","MODIFIER_KEY_GETTERS","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","fullKey","domEventName","_normalizeKey","codeIX","modifierName","matchEventFullKeyCode","fullKeyCode","keycode","modifierGetter","keyName","platformBrowser","ɵPLATFORM_BROWSER_ID","initDomAdapter","ɵsetDocument","BROWSER_MODULE_PROVIDERS_MARKER","TESTABILITY_PROVIDERS","ɵTESTABILITY_GETTER","BrowserGetTestability","ɵglobal","getAngularTestability","getAllAngularTestabilities","getAllAngularRootElements","frameworkStabilizers","testabilities","decrement","ɵTESTABILITY","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","providersAlreadyPresent","withServerTransition","getTitle","newTitle","DomSanitizer","__ngConditionalFactory__","DomSanitizerImpl","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","ɵ_sanitizeUrl","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","ɵbypassSanitizationTrustScript","ɵbypassSanitizationTrustUrl","bypassSecurityTrustResourceUrl","ɵbypassSanitizationTrustResourceUrl","EmptyError","defaultIfEmpty","throwIfEmpty","defaultErrorFactory","hasDefaultValue","takeLast","PRIMARY_OUTLET","RouteTitleKey","ParamsAsMap","convertToParamMap","defaultUrlMatcher","segmentGroup","hasChildren","posParams","consumed","shallowEqual","getDataKeys","equalArraysOrString","aSorted","bSorted","wrapIntoObservable","pathCompareMap","equalSegmentGroups","containee","matrixParams","equalPath","matrixParamsMatch","numberOfChildren","subset","containsSegmentGroup","paramCompareMap","equalParams","containsParams","ignored","containsTree","containsSegmentGroupHelper","containeePaths","containerPaths","containeeSegment","UrlTree","UrlSegmentGroup","_queryParamMap","DEFAULT_SERIALIZER","serializePaths","UrlSegment","parameterMap","_parameterMap","serializePath","as","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","squashSegmentGroup","newChildren","childCandidate","grandChildOutlet","grandChild","mergeTrivialChildren","isUrlTree","createSegmentGroupFromRoute","targetGroup","rootSegmentGroup","createSegmentGroupFromRouteRecursive","currentRoute","childOutlets","childSnapshot","createUrlTreeFromSegmentGroup","nav","computeNavigation","Navigation","numberOfDoubleDots","isAbsolute","cmd","cmdIdx","urlPart","partIndex","toRoot","findStartingPositionForTargetGroup","Position","isMatrixParams","createPositionApplyingDoubleDots","ci","newSegmentGroup","processChildren","updateSegmentGroupChildren","updateSegmentGroup","isCommandWithOutlets","oldRoot","oldSegmentGroup","replaceSegment","newRoot","oldSegment","newSegment","cmdWithOutlet","prefixedWith","currentCommandIndex","currentPathIndex","noMatch","pathIndex","commandIndex","slicedCommands","createNewSegmentGroup","getOutlets","childrenOfEmptyChild","createNewSegmentChildren","IMPERATIVE_NAVIGATION","NavigationStart","NavigationCancel","NavigationError","RoutesRecognized","ResolveStart","ResolveEnd","GuardsCheckStart","GuardsCheckEnd","RouteConfigLoadStart","RouteConfigLoadEnd","ChildActivationStart","ChildActivationEnd","ActivationStart","ActivationEnd","NavigationSkipped","RouterEvent","navigationTrigger","restoredState","NavigationCancellationCode","Redirect","SupersededByNewNavigation","NoDataFromResolver","GuardRejected","NavigationSkippedCode","IgnoredSameUrlNavigation","IgnoredByUrlHandlingStrategy","reason","shouldActivate","routeConfig","routerEvent","BeforeActivateRoutes","RedirectRequest","navigationBehaviorOptions","getOutlet","getClosestRouteInjector","_loadedInjector","OutletContext","rootInjector","ChildrenOutletContexts","attachRef","contexts","onChildOutletCreated","childName","getOrCreateContext","onChildOutletDestroyed","onOutletDeactivated","onOutletReAttached","Tree","_root","pathFromRoot","findNode","findPath","TreeNode","nodeChildrenAsMap","RouterState","setRouterState","createEmptyState","createEmptyStateSnapshot","activated","ActivatedRouteSnapshot","RouterStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","urlSubject","paramsSubject","queryParamsSubject","fragmentSubject","dataSubject","futureSnapshot","_futureSnapshot","_paramMap","getInherited","paramsInheritanceStrategy","loadComponent","_resolvedData","hasStaticTitle","serializeNode","advanceActivatedRoute","nextSnapshot","shallowEqualArrays","equalParamsAndUrlSegments","equalUrlParams","equalSegments","RouterOutlet","_activatedRoute","activateEvents","deactivateEvents","attachEvents","detachEvents","parentContexts","inputBinder","INPUT_BINDER","supportsBindingToComponentInputs","activatedComponentRef","isTrackedInParentContexts","initializeOutletWithName","unsubscribeFromRouteData","activateWith","isActivated","activatedRouteData","bindActivatedRouteToOutletComponent","childContexts","OutletInjector","__ngOutletInjector","RoutedComponentInputBinder","outletDataSubscriptions","subscribeToRouteData","dataSubscription","mirror","createNode","routeReuseStrategy","prevState","shouldReuseRoute","createOrReuseChildren","shouldAttach","detachedRouteHandle","retrieve","createActivatedRoute","RedirectCommand","NAVIGATION_CANCELING_ERROR","redirectingNavigationError","urlSerializer","redirect","navigationCancelingError","cancellationCode","isNavigationCancelingError","ActivateRoutes","futureState","currState","forwardEvent","inputBindingEnabled","futureRoot","currRoot","deactivateChildRoutes","activateChildRoutes","futureNode","currNode","futureChild","childOutletName","deactivateRoutes","deactivateRouteAndItsChildren","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","treeNode","activateRoutes","stored","CanActivate","CanDeactivate","getAllRouteGuards","getChildRouteGuards","getTokenOrFunctionIdentity","tokenOrFunction","ɵisInjectable","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","getRouteGuards","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","isEmptyError","INITIAL_VALUE","prioritizedGuardValue","isRedirect","redirectIfUrlTree","NoMatch","AbsoluteRedirect","urlTree","noMatch$1","ApplyRedirects","lineralizeSegments","applyRedirectCommands","redirectToFn","newRedirect","newTree","applyRedirectCreateUrlTree","createSegmentGroup","createQueryParams","redirectToParams","actualParams","sourceName","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","consumedSegments","remainingSegments","positionalParamSegments","matchWithChecks","getOrCreateRouteInjectorIfNeeded","currentInjector","runCanMatchGuards","canMatch","canMatchObservables","injectionToken","isCanMatch","createWildcardMatchResult","matcher","slicedSegments","containsEmptyPathMatchesWithNamedOutlets","emptyPathMatch","createChildrenForEmptyPaths","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","primarySegment","NoLeftoversInUrl","Recognizer","configLoader","rootComponentType","applyRedirects","absoluteRedirectCount","allowRedirects","noMatchError","recognize","rootSnapshot","routeState","createUrlTreeFromSnapshot","processSegmentGroup","parentRoute","processSegment","sortedConfig","sortByMatchingOutlets","outletChildren","last$1","mergedChildren","mergeEmptyPathMatches","sortActivatedRouteSnapshots","processSegmentAgainstRoute","noLeftoversInUrl","rawSegment","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","_loadedComponent","getResolve","newSegments","getChildConfig","childConfig","childInjector","matchedOnOutlet","_loadedRoutes","runCanLoadGuards","canLoad","canLoadObservables","isCanLoad","shouldLoadResult","canLoadFails","hasEmptyPathConfig","mergedNodes","duplicateEmptyPathNode","resultNode","mergedNode","flattenRouteTree","descendants","switchTap","nextResult","TitleStrategy","buildTitle","pageTitle","getResolvedTitleForRoute","DefaultTitleStrategy","updateTitle","ROUTER_CONFIGURATION","ɵEmptyOutletComponent","standardizeConfig","ROUTES","RouterConfigLoader","componentLoaders","childrenLoaders","compiler","onLoadStartListener","loadRunner","maybeUnwrapDefaultExport","onLoadEndListener","factoryOrRoutes","rawRoutes","requireStandaloneComponents","isWrappedDefaultExport","UrlHandlingStrategy","DefaultUrlHandlingStrategy","shouldProcessUrl","extract","newUrlPart","wholeUrl","CREATE_VIEW_TRANSITION","VIEW_TRANSITION_OPTIONS","createViewTransition","startViewTransition","skipNextTransition","resolveViewTransitionStarted","viewTransitionStarted","createRenderPromise","onViewTransitionCreated","NAVIGATION_ERROR_HANDLER","NavigationTransitions","hasRequestedNavigation","navigationId","currentNavigation","lastSuccessfulNavigation","transitionAbortSubject","rootContexts","titleStrategy","urlHandlingStrategy","navigationErrorHandler","afterPreactivation","handleNavigationRequest","setupNavigations","initialUrlTree","initialRouterState","currentUrlTree","currentRawUrl","extractedUrl","rawUrl","extras","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","overallTransitionState","cancelNavigationTransition","initialUrl","targetBrowserUrl","browserUrl","previousNavigation","urlTransition","navigated","isUpdatingInternalState","isUpdatedBrowserUrl","onSameUrlNavigation","serializer","recognize$1","finalUrl","routesRecognized","navStart","guardsStart","checkGuards","runCanDeactivateChecks","futureRSS","currRSS","runCanDeactivate","currARS","canDeactivate","canDeactivateObservables","closestInjector","isCanDeactivate","runCanActivateChecks","fireChildActivationStart","fireActivationStart","runCanActivateChild","futureARS","canActivateChildGuardsMapped","getCanActivateChild","canActivateChild","guardsMapped","isCanActivateChild","runCanActivate","canActivateObservables","isCanActivate","guardsEnd","resolveStart","dataResolved","resolveData","routesWithResolversToRun","routesNeedingDataUpdates","newRoute","routesProcessed","runResolve","resolveNode","getResolver","resolvedData","resolveEnd","loadComponents","loaders","loadedComponent","createRouterState","isRedirectingNavigationCancelingError","navigationError","navigationErrorHandlerResult","errorHandlerResult","resolveNavigationPromiseOnError","navCancel","currentBrowserUrl","isBrowserTriggeredNavigation","RouteReuseStrategy","DefaultRouteReuseStrategy","BaseRouteReuseStrategy","detachedTree","ɵDefaultRouteReuseStrategy_BaseFactory","StateManager","HistoryStateManager","canceledNavigationResolution","urlUpdateStrategy","rawUrlTree","currentPageId","lastSuccessfulId","routerState","stateMemento","createStateMemento","getCurrentUrlTree","getRawUrlTree","browserPageId","ɵrouterPageId","getRouterState","registerNonRouterCurrentEntryChangeListener","handleRouterEvent","setBrowserUrl","restoreHistory","generateNgRouterState","restoringFromCaughtError","targetPagePosition","resetState","resetUrlToCurrentUrlTree","routerPageId","ɵHistoryStateManager_BaseFactory","NavigationResult","COMPLETE","FAILED","REDIRECTING","afterNextNavigation","exactMatchOptions","subsetMatchOptions","stateManager","ɵConsole","navigationTransitions","componentInputBindingEnabled","eventsSubscription","resetConfig","subscribeToNavigationEvents","mergedTree","scheduleNavigation","isPublicRouterEvent","resetRootComponentType","initialNavigation","setUpLocationChangeListener","navigateToSyncWithBrowser","nonRouterCurrentEntryChangeSubscription","stateCopy","parseUrl","serializeUrl","getCurrentNavigation","navigationExtras","relativeToUrlSegmentGroup","defaultQueryParamsHandling","removeEmptyProps","navigateByUrl","validateCommands","matchOptions","priorPromise","RouterLink","tabIndexAttribute","onChanges","routerLinkInput","updateHref","setTabIndexIfNotOnNativeEl","newTabIndex","applyAttributeValue","commandsOrUrlTree","sanitizedValue","RouterLinkActive","_isActive","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","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","scheduleScrollEvent","routerFeature","getBootstrapListener","bootstrappedComponentRef","bootstrapDone","BOOTSTRAP_DONE","INITIAL_NAVIGATION","ROUTER_PRELOADER","withPreloading","withViewTransitions","skipInitialTransition","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","rootRoute","provideForRootGuard","useHash","provideInitialNavigation","bindToComponentInputs","enableViewTransitions","ROUTER_INITIALIZER","forChild","locationInitialized","TranslateFakeLoader","ɵTranslateFakeLoader_BaseFactory","MissingTranslationHandler","FakeMissingTranslationHandler","keySet","isDefined","mergeDeep","Xe","TranslateParser","TranslateDefaultParser","templateMatcher","interpolateString","interpolateFunction","ɵTranslateDefaultParser_BaseFactory","TranslateCompiler","TranslateFakeCompiler","compile","compileTranslations","translations","ɵTranslateFakeCompiler_BaseFactory","TranslateStore","defaultLang","langs","onTranslationChange","onLangChange","onDefaultLangChange","USE_STORE","USE_DEFAULT_LANG","DEFAULT_LANGUAGE","USE_EXTEND","currentLoader","parser","missingTranslationHandler","useDefaultLang","isolate","_onTranslationChange","_onLangChange","_onDefaultLangChange","_langs","_translations","_translationRequests","setDefaultLang","_defaultLang","_currentLang","retrieveTranslations","changeDefaultLang","getDefaultLang","changeLang","loadingTranslations","updateLangs","shouldMerge","getLangs","addLangs","getParsedResult","getStreamOnTranslationChange","reloadLang","resetLang","getBrowserLang","browserLang","languages","browserLanguage","userLanguage","getBrowserCultureLang","browserCultureLang","TranslatePipe","lastKey","lastParams","onTranslation","validArgs","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","__objRest","exclude","service_default","EventBus","allHandlers","toNormalizeVariable","toNormalizePrefix","replaceAll","getVariableName","getVariableValue","excludedKeyRegexes","hasOddBraces","matchRegex","_val","_r","toKebabCase","calculationRegex","getRule","dtwt","config_default","getTheme","VARIABLE","OPTIONS","matchRegex2","getTokenValue","excludedKeyRegex","themeUtils_default","system","custom","_toVariables","toVariables_default","_theme","matchRegex3","toKebabCase2","toValue","isObject2","variables","variables2","tokens2","getCommon","primitive_css","primitive_tokens","semantic_css","semantic_tokens","global_css","global_tokens","isNotEmpty2","sRest","eColorScheme","eRest","csRest","eDark","ecsRest","prim_var","sRest_var","csRest_var","csDark_var","eRest_var","ecsRest_var","ecsDark_var","prim_css","prim_tokens","sRest_css","sRest_tokens","csRest_css","csRest_tokens","csDark_css","csDark_tokens","eRest_css","eRest_tokens","ecsRest_css","ecsRest_tokens","ecsDark_css","ecsDark_tokens","transformCSS","resolve2","getPreset","p_css","p_tokens","p_style","css2","vRest","evRest","ecsDark","vRest_var","Jt","vRest_css","vRest_tokens","getPresetC","cPreset","getPresetD","dName","dPreset","applyDarkColorScheme","getColorSchemeOption","getLayerOrder","cssLayer","getCommonStyleSheet","_props","_css","getStyleSheet","preset_css","createTokens","parentKey","parentPath","matchRegex4","toTokenKey2","currentPath","isObject3","tokenPathMap","computedValue","isArray2","isEmpty2","computedValues","_a2","getSelectorRule","selector1","selector2","colorSchemeOption","type2","_selector","layerOptions","layerNames","_layerNames","_loadedStyleNames","_loadingStyles","_tokens","newValues","setTheme","setPreset","getLayerNames","setLayerNames","layerName","getLoadedStyleNames","deleteLoadedStyleName","getComponent","getDirective","getCustomPreset","getLayerOrderCSS","onStyleMounted","onStyleUpdated","onStyleLoaded","_className","_classNames","getCSSVariableByRegex","variableRegex","styleSheets","cssRules","variableData","toElement","getParentNode","msMaxTouchPoints","lastIds","getLastZIndex","_deepEquals","visited","WeakSet","arrObj1","arrObj2","dateObj1","dateObj2","regexpObj1","regexpObj2","fKeys","fKey","accentsMap","IJ","J","OE","ae","ij","oe","toTokenKey","GENERAL","UKNOWN","BROWSERS","CHROME","OPERA","IE","MS_EDGE","MS_EDGE_CHROMIUM","FB_MESSANGER","SAMSUNG","UCBROWSER","UNKNOWN","MOBILES_RE","HTC","NEXUS_PHONE","DELL","MOTOROLA","LG","SONY","ASUS","NOKIA_LUMIA","MICROMAX","PALM","VERTU","PANTECH","FLY","WIKO","I_MOBILE","SIMVALLEY","WOLFGANG","ALCATEL","NINTENDO","AMOI","INQ","VITA","BLACKBERRY","FIREFOX_OS","IPHONE","iPod","WINDOWS_PHONE","GENERIC_PHONE","TABLETS_RE","iPad","NexusTablet","GoogleTablet","SamsungTablet","Kindle","SurfaceTablet","HPTablet","AsusTablet","BlackBerryTablet","HTCtablet","MotorolaTablet","NookTablet","AcerTablet","ToshibaTablet","LGTablet","FujitsuTablet","PrestigioTablet","LenovoTablet","DellTablet","YarvikTablet","MedionTablet","ArnovaTablet","IntensoTablet","IRUTablet","MegafonTablet","EbodaTablet","AllViewTablet","ArchosTablet","AinolTablet","NokiaLumiaTablet","SonyTablet","PhilipsTablet","CubeTablet","CobyTablet","MIDTablet","MSITablet","SMiTTablet","RockChipTablet","FlyTablet","bqTablet","HuaweiTablet","NecTablet","PantechTablet","BronchoTablet","VersusTablet","ZyncTablet","PositivoTablet","NabiTablet","KoboTablet","DanewTablet","TexetTablet","PlaystationTablet","TrekstorTablet","PyleAudioTablet","AdvanTablet","DanyTechTablet","GalapadTablet","MicromaxTablet","KarbonnTablet","AllFineTablet","PROSCANTablet","YONESTablet","ChangJiaTablet","GUTablet","PointOfViewTablet","OvermaxTablet","HCLTablet","DPSTablet","VistureTablet","CrestaTablet","MediatekTablet","ConcordeTablet","GoCleverTablet","ModecomTablet","VoninoTablet","ECSTablet","StorexTablet","VodafoneTablet","EssentielBTablet","RossMoorTablet","iMobileTablet","TolinoTablet","AudioSonicTablet","AMPETablet","SkkTablet","TecnoTablet","JXDTablet","iJoyTablet","FX2Tablet","XoroTablet","ViewsonicTablet","VerizonTablet","OdysTablet","CaptivaTablet","IconbitTablet","TeclastTablet","OndaTablet","JaytechTablet","BlaupunktTablet","DigmaTablet","EvolioTablet","LavaTablet","AocTablet","MpmanTablet","CelkonTablet","WolderTablet","MediacomTablet","MiTablet","NibiruTablet","NexoTablet","LeaderTablet","UbislateTablet","PocketBookTablet","KocasoTablet","HisenseTablet","Hudl","TelstraTablet","Honeywell","GenericTablet","DEVICES","CHROME_BOOK","PS4","MAC","CHROMECAST","APPLE_TV","GOOGLE_TV","Tesla","HONEYWELL","MI_SE_9","DESKTOP_DEVICES","OS","WINDOWS","LINUX","UNIX","CHROME_OS","OS_VERSIONS","WINDOWS_3_11","WINDOWS_95","WINDOWS_ME","WINDOWS_98","WINDOWS_CE","WINDOWS_2000","WINDOWS_XP","WINDOWS_SERVER_2003","WINDOWS_VISTA","WINDOWS_7","WINDOWS_8_1","WINDOWS_8","WINDOWS_10","WINDOWS_PHONE_7_5","WINDOWS_PHONE_8_1","WINDOWS_PHONE_10","WINDOWS_NT_4_0","MACOSX_11_0","MACOSX_16","MACOSX_15","MACOSX_14","MACOSX_13","MACOSX_12","MACOSX_11","MACOSX_10","MACOSX_9","MACOSX_8","MACOSX_7","MACOSX_6","MACOSX_5","MACOSX_4","MACOSX_3","MACOSX_2","MACOSX","iOS","ANDROID_9","OS_RE","and","not","DEVICES_RE","OS_VERSIONS_RE_MAP","BROWSER_VERSIONS_RE_MAP","OS_VERSIONS_RE","BROWSER_VERSIONS_RE","Constants","BROWSERS_RE","ReTree","DeviceType","Mobile","Desktop","OrientationType","Portrait","Landscape","DeviceDetectorService","os_version","reTree","deviceType","setDeviceInfo","mappings","const","mapping","isTablet","isDesktop","getDeviceInfo","takeUntilDestroyed","destroyed$","LOTTIE_OPTIONS","AnimationLoader","player$","convertPlayerOrLoaderToObservable","playerOrLoader","_isPromise","raf$","requestId","createAnimationItem","resolveOptions","BaseDirective","animationCreated","getAnimationItem","awaitAnimationItemAndStartListening","loopComplete","enterFrame","segmentStart","configReady","dataReady","domLoaded","animationLoader","loadAnimation$","animationItem$","setupLoadAnimationListener","destroyAnimation","ɵLottieComponent_BaseFactory","fieldValue","notContains","notEquals","between","isNot","dateIs","dateIsNot","dateBefore","dateAfter","clickSource","UseStyle","cssRef","manual","isConnected","HEAD","useStyle","getDirectiveTheme","extendedCSS","getCommonThemeStyleSheet","getThemeStyleSheet","ThemeProvider","isThemeChanged","newTheme","themeValue","onThemeChange","loadCommonTheme","setThemeConfig","filterMatchModeOptions","CONTAINS","NOT_CONTAINS","ENDS_WITH","EQUALS","NOT_EQUALS","LESS_THAN","LESS_THAN_OR_EQUAL_TO","GREATER_THAN","GREATER_THAN_OR_EQUAL_TO","DATE_IS","DATE_IS_NOT","DATE_BEFORE","DATE_AFTER","noFilter","matchAll","matchAny","addRule","removeRule","accept","choose","fileSizeTypes","dayNames","dayNamesShort","dayNamesMin","monthNamesShort","chooseYear","chooseMonth","chooseDate","prevDecade","nextDecade","prevYear","nextYear","prevMonth","nextMonth","prevHour","nextHour","prevMinute","nextMinute","prevSecond","nextSecond","weak","strong","passwordPrompt","searchMessage","selectionMessage","emptySelectionMessage","emptySearchMessage","fileChosenMessage","noFileChosenMessage","trueLabel","falseLabel","nullLabel","star","stars","unselectAll","moveTop","moveBottom","moveToTarget","moveToSource","moveAllToTarget","moveAllToSource","firstPageLabel","lastPageLabel","nextPageLabel","prevPageLabel","rowsPerPageLabel","previousPageLabel","jumpToPageDropdownLabel","jumpToPageInputLabel","selectRow","unselectRow","expandRow","collapseRow","showFilterMenu","hideFilterMenu","editRow","saveEdit","cancelEdit","listView","gridView","slide","slideNumber","zoomImage","rotateRight","rotateLeft","selectColor","browseFiles","maximizeLabel","translationSource","setConfig","ɵPrimeNG_BaseFactory","PRIME_NG_CONFIG","PrimeNGConfig"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/commons/models/domain/Vehicle.ts","./src/app/commons/models/other/CustomError.model.ts","./src/app/commons/models/other/app-notification.model.ts","./src/app/commons/services/http.interceptor/http-progress-interceptor.service.ts","./src/app/commons/services/notification/notification.service.ts","./src/app/commons/services/progress/progress.service.ts","./src/app/commons/services/remote.data/remote-data.service.ts","./src/app/commons/services/web.access/web-access.service.ts","./src/app/commons/validators/validators.ts","./src/app/shared/components/base-component.ts","./src/app/shared/components/button/button.component.html","./src/app/shared/components/button/button.component.ts","./src/app/shared/components/copy-to-clipboard/copy-to-clipboard.component.ts","./src/app/shared/components/copy-to-clipboard/copy-to-clipboard.component.html","./src/app/shared/components/select-language/select-language.component.html","./src/app/shared/components/select-language/select-language.component.ts","./src/app/shared/constans/authentication-routes-names.constans.ts","./node_modules/rxjs/dist/esm/internal/operators/throttle.js","./src/app/shared/directives/prevent-double-click.directive.ts","./node_modules/rxjs/dist/esm/internal/operators/throttleTime.js","./src/app/shared/error-handler.ts","./src/app/shared/services-http/base-http.service.ts","./node_modules/serialize-error/error-constructors.js","./node_modules/serialize-error/index.js","./src/app/shared/services-http/log-in-api-http.service.ts","./src/app/shared/services-http/new-vehicles-http.service.ts","./src/app/shared/view-models/user.viewmodel.ts","./src/app/shared/services-http/user-http.service.ts","./src/app/commons/models/domain/RememberMeToken.ts","./src/app/shared/services/authentication/remember-me-token.store.ts","./src/app/shared/services-http/authentication-http.service.ts","./src/app/shared/services/authentication/authentication.service.ts","./src/app/shared/services/authentication/token.store.ts","./node_modules/date-fns/esm/formatISO/index.js","./node_modules/date-fns/esm/addMinutes/index.js","./src/app/shared/services/base.service.ts","./src/app/shared/services/dialog.service.ts","./node_modules/@angular/common/locales/pt.mjs","./node_modules/date-fns/esm/locale/en-GB/_lib/formatLong/index.js","./node_modules/date-fns/esm/locale/en-GB/index.js","./node_modules/date-fns/esm/locale/pt/_lib/formatDistance/index.js","./node_modules/date-fns/esm/locale/pt/_lib/formatLong/index.js","./node_modules/date-fns/esm/locale/pt/_lib/formatRelative/index.js","./node_modules/date-fns/esm/locale/pt/_lib/localize/index.js","./node_modules/date-fns/esm/locale/pt/index.js","./node_modules/date-fns/esm/locale/pt/_lib/match/index.js","./src/app/shared/services/language.service.ts","./src/app/shared/services/new-data-store.service.ts","./src/app/shared/services/new-navigation.service.ts","./src/app/shared/services/permission.service.ts","./src/app/shared/services/settings.service.ts","./src/app/shared/components/error-dialog/error-dialog.component.html","./src/app/shared/components/error-dialog/error-dialog.component.ts","./src/app/shared/services/show-error-modal.service.ts","./src/app/shared/components/server-timeout-dialog/server-timeout-dialog.component.ts","./src/app/shared/components/server-timeout-dialog/server-timeout-dialog.component.html","./src/app/shared/components/timeout-dialog/timeout-dialog.component.ts","./src/app/shared/components/timeout-dialog/timeout-dialog.component.html","./src/app/shared/services/show-timeout-modal.service.ts","./src/app/shared/services/tawk-to-chat.service.ts","./src/app/shared/modules/material/datetime-picker.module.ts","./node_modules/@angular/material/fesm2020/button-toggle.mjs","./node_modules/@angular/material/fesm2020/divider.mjs","./node_modules/@angular/material/fesm2020/list.mjs","./node_modules/@angular/material/fesm2020/menu.mjs","./src/app/shared/modules/material/material.module.ts","./src/app/shared/shared.module.ts","./src/app/commons/models/other/web-socket-wrapper.ts","./src/app/shared/websocket/models/web-socket-data-types.ts","./src/app/shared/websocket/processors/event-data-processor.ts","./src/app/shared/websocket/processors/vehicle-indicators-processor.ts","./src/app/shared/websocket/processors/vehicle-location-processor.ts","./src/app/shared/websocket/processors/vehicle-tacho-processor.ts","./src/app/shared/websocket/new-web-socket-http.service.ts","./src/environments/environment.prod.ts","./node_modules/@angular/animations/fesm2022/browser.mjs","./node_modules/@angular/platform-browser/fesm2022/animations.mjs","./node_modules/ngx-red-zoom/fesm2020/ngx-red-zoom.mjs","./node_modules/@ngx-translate/http-loader/fesm2020/ngx-translate-http-loader.mjs","./node_modules/@primeng/themes/aura/index.mjs","./node_modules/@primeng/themes/aura/base/index.mjs","./node_modules/@primeng/themes/aura/accordion/index.mjs","./node_modules/@primeng/themes/aura/autocomplete/index.mjs","./node_modules/@primeng/themes/aura/avatar/index.mjs","./node_modules/@primeng/themes/aura/badge/index.mjs","./node_modules/@primeng/themes/aura/blockui/index.mjs","./node_modules/@primeng/themes/aura/breadcrumb/index.mjs","./node_modules/@primeng/themes/aura/button/index.mjs","./node_modules/@primeng/themes/aura/datepicker/index.mjs","./node_modules/@primeng/themes/aura/card/index.mjs","./node_modules/@primeng/themes/aura/carousel/index.mjs","./node_modules/@primeng/themes/aura/cascadeselect/index.mjs","./node_modules/@primeng/themes/aura/checkbox/index.mjs","./node_modules/@primeng/themes/aura/chip/index.mjs","./node_modules/@primeng/themes/aura/colorpicker/index.mjs","./node_modules/@primeng/themes/aura/confirmdialog/index.mjs","./node_modules/@primeng/themes/aura/confirmpopup/index.mjs","./node_modules/@primeng/themes/aura/contextmenu/index.mjs","./node_modules/@primeng/themes/aura/dataview/index.mjs","./node_modules/@primeng/themes/aura/datatable/index.mjs","./node_modules/@primeng/themes/aura/dialog/index.mjs","./node_modules/@primeng/themes/aura/divider/index.mjs","./node_modules/@primeng/themes/aura/dock/index.mjs","./node_modules/@primeng/themes/aura/drawer/index.mjs","./node_modules/@primeng/themes/aura/editor/index.mjs","./node_modules/@primeng/themes/aura/fieldset/index.mjs","./node_modules/@primeng/themes/aura/fileupload/index.mjs","./node_modules/@primeng/themes/aura/iftalabel/index.mjs","./node_modules/@primeng/themes/aura/floatlabel/index.mjs","./node_modules/@primeng/themes/aura/galleria/index.mjs","./node_modules/@primeng/themes/aura/iconfield/index.mjs","./node_modules/@primeng/themes/aura/image/index.mjs","./node_modules/@primeng/themes/aura/imagecompare/index.mjs","./node_modules/@primeng/themes/aura/inlinemessage/index.mjs","./node_modules/@primeng/themes/aura/inplace/index.mjs","./node_modules/@primeng/themes/aura/inputchips/index.mjs","./node_modules/@primeng/themes/aura/inputgroup/index.mjs","./node_modules/@primeng/themes/aura/inputnumber/index.mjs","./node_modules/@primeng/themes/aura/inputotp/index.mjs","./node_modules/@primeng/themes/aura/inputtext/index.mjs","./node_modules/@primeng/themes/aura/knob/index.mjs","./node_modules/@primeng/themes/aura/listbox/index.mjs","./node_modules/@primeng/themes/aura/megamenu/index.mjs","./node_modules/@primeng/themes/aura/menu/index.mjs","./node_modules/@primeng/themes/aura/menubar/index.mjs","./node_modules/@primeng/themes/aura/message/index.mjs","./node_modules/@primeng/themes/aura/metergroup/index.mjs","./node_modules/@primeng/themes/aura/multiselect/index.mjs","./node_modules/@primeng/themes/aura/orderlist/index.mjs","./node_modules/@primeng/themes/aura/organizationchart/index.mjs","./node_modules/@primeng/themes/aura/overlaybadge/index.mjs","./node_modules/@primeng/themes/aura/popover/index.mjs","./node_modules/@primeng/themes/aura/paginator/index.mjs","./node_modules/@primeng/themes/aura/password/index.mjs","./node_modules/@primeng/themes/aura/panel/index.mjs","./node_modules/@primeng/themes/aura/panelmenu/index.mjs","./node_modules/@primeng/themes/aura/picklist/index.mjs","./node_modules/@primeng/themes/aura/progressbar/index.mjs","./node_modules/@primeng/themes/aura/progressspinner/index.mjs","./node_modules/@primeng/themes/aura/radiobutton/index.mjs","./node_modules/@primeng/themes/aura/rating/index.mjs","./node_modules/@primeng/themes/aura/scrollpanel/index.mjs","./node_modules/@primeng/themes/aura/select/index.mjs","./node_modules/@primeng/themes/aura/selectbutton/index.mjs","./node_modules/@primeng/themes/aura/skeleton/index.mjs","./node_modules/@primeng/themes/aura/slider/index.mjs","./node_modules/@primeng/themes/aura/speeddial/index.mjs","./node_modules/@primeng/themes/aura/splitter/index.mjs","./node_modules/@primeng/themes/aura/splitbutton/index.mjs","./node_modules/@primeng/themes/aura/stepper/index.mjs","./node_modules/@primeng/themes/aura/steps/index.mjs","./node_modules/@primeng/themes/aura/tabmenu/index.mjs","./node_modules/@primeng/themes/aura/tabs/index.mjs","./node_modules/@primeng/themes/aura/tabview/index.mjs","./node_modules/@primeng/themes/aura/textarea/index.mjs","./node_modules/@primeng/themes/aura/tieredmenu/index.mjs","./node_modules/@primeng/themes/aura/tag/index.mjs","./node_modules/@primeng/themes/aura/terminal/index.mjs","./node_modules/@primeng/themes/aura/timeline/index.mjs","./node_modules/@primeng/themes/aura/togglebutton/index.mjs","./node_modules/@primeng/themes/aura/toggleswitch/index.mjs","./node_modules/@primeng/themes/aura/tree/index.mjs","./node_modules/@primeng/themes/aura/treeselect/index.mjs","./node_modules/@primeng/themes/aura/treetable/index.mjs","./node_modules/@primeng/themes/aura/toast/index.mjs","./node_modules/@primeng/themes/aura/toolbar/index.mjs","./node_modules/@primeng/themes/aura/virtualscroller/index.mjs","./node_modules/@primeng/themes/aura/tooltip/index.mjs","./node_modules/@primeng/themes/aura/ripple/index.mjs","./src/app/shared/error-logger-proxy.ts","./src/app/shared/guards/auth-guard.service.ts","./src/app/commons/directives/in.progress/in-progress.directive.ts","./src/app/commons/forms/button/button.component.ts","./src/app/commons/forms/button/button.component.html","./src/app/layout/bok/bok.component.ts","./src/app/layout/bok/bok.component.html","./src/app/layout/notfound/not-found.component.ts","./src/app/layout/notfound/not-found.component.html","./src/app/layout/panel/components/loading-initial-data/loading-initial-data.component.ts","./src/app/layout/panel/components/loading-initial-data/loading-initial-data.component.html","./src/app/enum/map.enum.ts","./src/app/enum/ad-type.enum.ts","./src/app/commons/services/navigation/panel-navigation.service.ts","./src/app/commons/services/event/event.service.ts","./src/app/commons/services/vehicle/vehicle.service.ts","./src/app/survey/services/survey-http.service.ts","./src/app/survey/components/survey-sent/survey-sent.component.ts","./src/app/survey/components/survey-sent/survey-sent.component.html","./src/app/survey/components/star/star.component.html","./src/app/survey/components/star/star.component.ts","./src/app/survey/components/rating/rating.component.html","./src/app/survey/components/rating/rating.component.ts","./src/app/survey/components/reasons-list/reasons-list.component.html","./src/app/survey/components/reasons-list/reasons-list.component.ts","./src/app/survey/components/survey/survey.component.html","./src/app/survey/components/survey/survey.component.ts","./src/app/survey/services/survey-display.service.ts","./src/app/map-panel/services/map-panel.service.ts","./src/app/shared/services-http/new-drivers-http.service.ts","./src/app/shared/services/app-initialization.service.ts","./src/app/commons/services/map/map-events.service.ts","./src/app/enum/package-nane.enum.ts","./src/app/shared/services/ads-control.service.ts","./node_modules/rxjs/dist/esm/internal/util/argsOrArgArray.js","./node_modules/rxjs/dist/esm/internal/operators/combineLatest.js","./src/app/commons/consts/mouse-type-events.ts","./src/app/commons/models/domain/VehicleStatusEnum.ts","./src/app/commons/enums/group-marker-colors.enum.ts","./src/app/commons/enums/tacho.enum.ts","./src/app/commons/consts/consts.ts","./src/app/map/map-layers.ts","./src/app/commons/services/map/config/map-config.service.ts","./src/app/commons/services/map/renderer/popup-renderer.service.ts","./node_modules/kdbush/src/sort.js","./node_modules/kdbush/src/within.js","./node_modules/kdbush/src/index.js","./node_modules/kdbush/src/range.js","./node_modules/supercluster/index.js","./src/app/commons/models/map/point.model.ts","./src/app/commons/models/map/Cluster.ts","./src/app/commons/services/map/cluster/cluster.service.ts","./src/app/commons/services/mapping/mapping.service.ts","./src/app/commons/services/map/drawer/cluster/cluster-drawer.service.ts","./src/app/shared/services/external-scripts/javascript-injector.service.ts","./src/app/layout/vehicle/services/vehicle-uievents.service.ts","./src/app/commons/services/map/map/map.service.ts","./node_modules/rxjs/dist/esm/internal/operators/withLatestFrom.js","./src/app/commons/services/map/control/map-control.serivce.ts","./src/app/commons/pipes/status-time-format.pipe.ts","./src/app/commons/pipes/full-address.pipe.ts","./src/app/map/services/minimap.service.ts","./src/app/commons/services/country.code/country-code.service.ts","./node_modules/@asymmetrik/ngx-leaflet/fesm2020/asymmetrik-ngx-leaflet.mjs","./src/app/map/main-layer/map-main-layer.component.ts","./src/app/map/main-layer/map-main-layer.component.html","./src/app/commons/services/map/drawer/popup/popup-drawer.service.ts","./src/app/map/icon/icon.component.html","./src/app/map/icon/icon.component.ts","./src/app/map/controls/map-controls.component.html","./src/app/map/controls/map-controls.component.ts","./src/app/map/minimap-controls/minimap-controls.component.html","./src/app/map/minimap-controls/minimap-controls.component.ts","./node_modules/date-fns/esm/isDate/index.js","./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","./node_modules/date-fns/esm/_lib/format/formatters/index.js","./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","./node_modules/date-fns/esm/_lib/protectedTokens/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","./node_modules/date-fns/esm/_lib/defaultLocale/index.js","./node_modules/date-fns/esm/locale/en-US/index.js","./node_modules/date-fns/esm/format/index.js","./node_modules/date-fns/esm/isValid/index.js","./node_modules/date-fns/esm/subMilliseconds/index.js","./src/app/map/components/modal-with-park-information/modal-with-park-information.component.ts","./src/app/map/components/modal-with-park-information/modal-with-park-information.component.html","./src/app/map/components/loader-map/loader-map.component.ts","./src/app/map/components/loader-map/loader-map.component.html","./src/app/commons/enums/event-type.enum.ts","./src/app/commons/pipes/translate-by-text.pipe.ts","./src/app/map/components/modal-event-information/modal-event-information.component.html","./src/app/map/components/modal-event-information/modal-event-information.component.ts","./src/app/commons/enums/parameter-type.enum.ts","./src/app/enum/filters-vehicle.enum.ts","./src/app/utils/params-binary-vehicle.ts","./src/app/commons/pipes/driver-full-name.pipe.ts","./src/app/utils/vehicle-fncs.ts","./src/app/enum/vehicle-full.enum.ts","./src/app/utils/vehicle-list-fncs.ts","./src/app/utils/localstorage.ts","./node_modules/date-fns/esm/addDays/index.js","./node_modules/date-fns/esm/setDay/index.js","./src/app/shared/services/translate-helper.service.ts","./src/app/commons/enums/search-theme.enum.ts","./src/app/commons/forms/search/search.component.html","./src/app/commons/forms/search/search.component.ts","./src/app/shared/pipes/tk-slice.pipe.ts","./src/app/shared/components/location/vehicle-location.component.ts","./src/app/shared/components/location/vehicle-location.component.html","./node_modules/primeng/fesm2022/primeng-basecomponent.mjs","./node_modules/primeng/fesm2022/primeng-dom.mjs","./node_modules/primeng/fesm2022/primeng-autofocus.mjs","./node_modules/primeng/fesm2022/primeng-badge.mjs","./node_modules/primeng/fesm2022/primeng-icons-baseicon.mjs","./node_modules/primeng/fesm2022/primeng-icons-spinner.mjs","./node_modules/primeng/fesm2022/primeng-ripple.mjs","./node_modules/primeng/fesm2022/primeng-button.mjs","./node_modules/primeng/fesm2022/primeng-icons-chevronleft.mjs","./node_modules/primeng/fesm2022/primeng-icons-chevronright.mjs","./node_modules/primeng/fesm2022/primeng-icons-chevronup.mjs","./node_modules/primeng/fesm2022/primeng-icons-chevrondown.mjs","./node_modules/primeng/fesm2022/primeng-icons-times.mjs","./node_modules/primeng/fesm2022/primeng-icons-calendar.mjs","./node_modules/primeng/fesm2022/primeng-inputtext.mjs","./node_modules/primeng/fesm2022/primeng-utils.mjs","./node_modules/primeng/fesm2022/primeng-datepicker.mjs","./node_modules/primeng/fesm2022/primeng-icons-check.mjs","./node_modules/primeng/fesm2022/primeng-icons-minus.mjs","./node_modules/primeng/fesm2022/primeng-checkbox.mjs","./node_modules/primeng/fesm2022/primeng-icons-arrowdown.mjs","./node_modules/primeng/fesm2022/primeng-icons-arrowup.mjs","./node_modules/primeng/fesm2022/primeng-icons-filter.mjs","./node_modules/primeng/fesm2022/primeng-icons-filterslash.mjs","./node_modules/primeng/fesm2022/primeng-icons-plus.mjs","./node_modules/primeng/fesm2022/primeng-icons-sortalt.mjs","./node_modules/primeng/fesm2022/primeng-icons-sortamountdown.mjs","./node_modules/primeng/fesm2022/primeng-icons-sortamountupalt.mjs","./node_modules/primeng/fesm2022/primeng-icons-trash.mjs","./node_modules/primeng/fesm2022/primeng-icons-angleup.mjs","./node_modules/primeng/fesm2022/primeng-icons-angledown.mjs","./node_modules/primeng/fesm2022/primeng-inputnumber.mjs","./node_modules/primeng/fesm2022/primeng-icons-angledoubleleft.mjs","./node_modules/primeng/fesm2022/primeng-icons-angledoubleright.mjs","./node_modules/primeng/fesm2022/primeng-icons-angleleft.mjs","./node_modules/primeng/fesm2022/primeng-icons-angleright.mjs","./node_modules/primeng/fesm2022/primeng-iconfield.mjs","./node_modules/primeng/fesm2022/primeng-icons-blank.mjs","./node_modules/primeng/fesm2022/primeng-icons-search.mjs","./node_modules/primeng/fesm2022/primeng-inputicon.mjs","./node_modules/primeng/fesm2022/primeng-overlay.mjs","./node_modules/primeng/fesm2022/primeng-scroller.mjs","./node_modules/primeng/fesm2022/primeng-tooltip.mjs","./node_modules/primeng/fesm2022/primeng-select.mjs","./node_modules/primeng/fesm2022/primeng-paginator.mjs","./node_modules/primeng/fesm2022/primeng-radiobutton.mjs","./node_modules/primeng/fesm2022/primeng-togglebutton.mjs","./node_modules/primeng/fesm2022/primeng-selectbutton.mjs","./node_modules/primeng/fesm2022/primeng-table.mjs","./node_modules/primeng/fesm2022/primeng-skeleton.mjs","./node_modules/primeng/fesm2022/primeng-overlaypanel.mjs","./src/app/commons/pipes/pipes.module.ts","./src/app/commons/directives/directives.module.ts","./src/app/commons/pipes/filter-arr-by-prop-value.pipe.ts","./src/app/commons/directives/radio-checkbo-custom-color.directive.ts","./src/app/shared/components/vehicle-list/filter-control/filter-control.component.html","./src/app/shared/components/vehicle-list/filter-control/filter-control.component.ts","./src/app/map/components/list-vehicle-bottom/calculate-time/calculate-time.component.ts","./src/app/map/components/list-vehicle-bottom/calculate-time/calculate-time.component.html","./src/app/map/components/list-vehicle-bottom/calculate-speed/calculate-speed.component.ts","./src/app/map/components/list-vehicle-bottom/calculate-speed/calculate-speed.component.html","./src/app/map/components/list-vehicle-bottom/e-toll-status/e-toll-status.component.ts","./src/app/map/components/list-vehicle-bottom/e-toll-status/e-toll-status.component.html","./node_modules/primeng/fesm2022/primeng-progressbar.mjs","./src/app/map/components/list-vehicle-bottom/gps-status/gps-status.component.ts","./src/app/map/components/list-vehicle-bottom/gps-status/gps-status.component.html","./src/app/map/components/list-vehicle-bottom/fuel-status/fuel-status.component.ts","./src/app/map/components/list-vehicle-bottom/fuel-status/fuel-status.component.html","./src/app/map/components/list-vehicle-bottom/vehicle-text-value-control/vehicle-text-value-control.component.html","./src/app/map/components/list-vehicle-bottom/vehicle-text-value-control/vehicle-text-value-control.component.ts","./src/app/map/components/list-vehicle-bottom/controls-status/controls-status.component.html","./src/app/map/components/list-vehicle-bottom/controls-status/controls-status.component.ts","./src/app/map/components/list-vehicle-bottom/lock-status/lock-status.component.html","./src/app/map/components/list-vehicle-bottom/lock-status/lock-status.component.ts","./src/app/commons/pipes/hours-time-format.pipe.ts","./src/app/map/components/list-vehicle-bottom/tacho-status-full-list/tacho-status-full-list.component.html","./src/app/map/components/list-vehicle-bottom/tacho-status-full-list/tacho-status-full-list.component.ts","./node_modules/sortablejs/modular/sortable.esm.js","./src/app/utils/common-fncs.ts","./node_modules/primeng/fesm2022/primeng-inputswitch.mjs","./src/app/map/components/list-vehicle-bottom/list-full-vehicle-column-config/list-full-vehicle-column-config.component.html","./src/app/map/components/list-vehicle-bottom/list-full-vehicle-column-config/list-full-vehicle-column-config.component.ts","./src/app/shared/pipes/sort-vehicle-full-list-columns.pipe.ts","./src/app/map/components/list-vehicle-bottom/list-vehicle-bottom.component.html","./src/app/map/components/list-vehicle-bottom/list-vehicle-bottom.component.ts","./src/app/map/map.component.html","./src/app/map/map.component.ts","./src/app/shared/components/close-button/close-button.component.ts","./src/app/shared/components/close-button/close-button.component.html","./src/app/shared/components/arrow-left-button/arrow-left-button.component.ts","./src/app/shared/components/arrow-left-button/arrow-left-button.component.html","./src/app/user-profile/components/profile-data/profile-data.component.html","./src/app/user-profile/components/profile-data/profile-data.component.ts","./node_modules/primeng/fesm2022/primeng-icons-eyeslash.mjs","./node_modules/primeng/fesm2022/primeng-icons-eye.mjs","./node_modules/primeng/fesm2022/primeng-password.mjs","./src/app/user-profile/components/change-password/change-password.component.html","./src/app/user-profile/components/change-password/change-password.component.ts","./src/app/user-profile/components/account-data-form/account-data-form.component.ts","./src/app/user-profile/components/account-data-form/account-data-form.component.html","./src/app/user-profile/routes/profile/profile.component.html","./src/app/user-profile/routes/profile/profile.component.ts","./src/app/help/routes/help/help.component.ts","./src/app/help/routes/help/help.component.html","./node_modules/date-fns/esm/isBefore/index.js","./src/app/data-sharing/view-models/link-view-model.ts","./src/app/data-sharing/routes/links-list/components/added-link-modal/added-link-modal.component.html","./src/app/data-sharing/routes/links-list/components/added-link-modal/added-link-modal.component.ts","./src/app/data-sharing/http-services/data-sharing-http.service.ts","./src/app/shared/components/button-transparent/button-transparent.component.html","./src/app/shared/components/button-transparent/button-transparent.component.ts","./src/app/data-sharing/routes/link-view/components/vehicles-list/vehicles-list.component.html","./src/app/data-sharing/routes/link-view/components/vehicles-list/vehicles-list.component.ts","./src/app/data-sharing/routes/link-view/components/selected-vehicles/selected-vehicles.component.html","./src/app/data-sharing/routes/link-view/components/selected-vehicles/selected-vehicles.component.ts","./src/app/data-sharing/routes/link-view/components/link-name/link-name.component.html","./src/app/data-sharing/routes/link-view/components/link-name/link-name.component.ts","./node_modules/date-fns/esm/setSeconds/index.js","./src/app/data-sharing/routes/link-view/components/link-activity/link-activity.component.html","./src/app/data-sharing/routes/link-view/components/link-activity/link-activity.component.ts","./src/app/data-sharing/routes/link-view/link-view.component.html","./src/app/data-sharing/routes/link-view/link-view.component.ts","./src/app/data-sharing/routes/links-list/components/confirm-links-removal-modal/confirm-links-removal-modal.component.html","./src/app/data-sharing/routes/links-list/components/confirm-links-removal-modal/confirm-links-removal-modal.component.ts","./src/app/shared/modules/material/mat-table-helper.service.ts","./src/app/data-sharing/routes/links-list/components/links-list-table/links-list-table.component.html","./src/app/data-sharing/routes/links-list/components/links-list-table/links-list-table.component.ts","./src/app/data-sharing/routes/links-list/components/search-input/search-input.component.ts","./src/app/data-sharing/routes/links-list/components/search-input/search-input.component.html","./src/app/data-sharing/routes/links-list/links-list.component.html","./src/app/data-sharing/routes/links-list/links-list.component.ts","./src/app/data-sharing/routes/integrations/integrations.component.html","./src/app/data-sharing/routes/integrations/integrations.component.ts","./src/app/data-sharing/routes/root-route/root-route.component.html","./src/app/data-sharing/routes/root-route/root-route.component.ts","./src/app/map-panel/routes/map-panel/map-panel.component.html","./src/app/map-panel/routes/map-panel/map-panel.component.ts","./src/app/handover/routes/main-route/services/handover-notifications.service.ts","./src/app/handover/http-services/mappers/get-handover-response-mapper.ts","./src/app/handover/http-services/mappers/get-vehicle-response-mapper.ts","./src/app/handover/http-services/mappers/get-vehicle-handovers-response-mapper.ts","./src/app/handover/http-services/handover-http.service.ts","./src/app/handover/routes/main-route/components/vehicles-list/components/vehicle-item/vehicle-item.component.html","./src/app/handover/routes/main-route/components/vehicles-list/components/vehicle-item/vehicle-item.component.ts","./src/app/handover/routes/main-route/components/vehicles-list/vehicles-list.component.html","./src/app/handover/routes/main-route/components/vehicles-list/vehicles-list.component.ts","./src/app/handover/routes/main-route/components/vehicles-filter/vehicles-filter.component.ts","./src/app/handover/routes/main-route/components/vehicles-filter/vehicles-filter.component.html","./src/app/handover/routes/main-route/components/vehicle-handovers-list/components/handover-limited-access-modal/handover-limited-access-modal.component.ts","./src/app/handover/routes/main-route/components/vehicle-handovers-list/components/handover-limited-access-modal/handover-limited-access-modal.component.html","./src/app/handover/routes/main-route/components/vehicle-handovers-list/components/handovers-list-item/handovers-list-item.component.ts","./src/app/handover/routes/main-route/components/vehicle-handovers-list/components/handovers-list-item/handovers-list-item.component.html","./src/app/handover/routes/main-route/components/vehicle-handovers-list/vehicle-handovers-list.component.html","./src/app/handover/routes/main-route/components/vehicle-handovers-list/vehicle-handovers-list.component.ts","./src/app/shared/pipes/secure-image.pipe.ts","./src/app/shared/components/image-modal/image-modal.component.ts","./src/app/shared/components/image-modal/image-modal.component.html","./src/app/handover/routes/main-route/components/handover/components/handover-section/handover-section.component.html","./src/app/handover/routes/main-route/components/handover/components/handover-section/handover-section.component.ts","./src/app/handover/routes/main-route/components/handover/components/handover-damages/handover-damages.component.html","./src/app/handover/routes/main-route/components/handover/components/handover-damages/handover-damages.component.ts","./src/app/handover/routes/main-route/components/handover/components/handover-general/handover-general.component.html","./src/app/handover/routes/main-route/components/handover/components/handover-general/handover-general.component.ts","./src/app/handover/routes/main-route/components/handover/components/handover-comments/handover-comments.component.html","./src/app/handover/routes/main-route/components/handover/components/handover-comments/handover-comments.component.ts","./src/app/handover/routes/main-route/components/handover/components/handover-equipment/handover-equipment.component.html","./src/app/handover/routes/main-route/components/handover/components/handover-equipment/handover-equipment.component.ts","./src/app/handover/routes/main-route/components/handover/components/handover-header/handover-header.component.html","./src/app/handover/routes/main-route/components/handover/components/handover-header/handover-header.component.ts","./src/app/handover/routes/main-route/components/handover/components/handover-top-label/handover-top-label.component.html","./src/app/handover/routes/main-route/components/handover/components/handover-top-label/handover-top-label.component.ts","./src/app/handover/routes/main-route/components/handover/components/handover-statement/handover-statement.component.html","./src/app/handover/routes/main-route/components/handover/components/handover-statement/handover-statement.component.ts","./src/app/handover/routes/main-route/components/handover/components/handover-signature/handover-signature.component.html","./src/app/handover/routes/main-route/components/handover/components/handover-signature/handover-signature.component.ts","./src/app/handover/routes/main-route/components/handover/components/handover-bottom-label/handover-bottom-label.component.ts","./src/app/handover/routes/main-route/components/handover/components/handover-bottom-label/handover-bottom-label.component.html","./src/app/handover/routes/main-route/components/handover/components/handover-menu/handover-menu.component.ts","./src/app/handover/routes/main-route/components/handover/components/handover-menu/handover-menu.component.html","./src/app/handover/routes/main-route/components/handover/handover.component.html","./src/app/handover/routes/main-route/components/handover/handover.component.ts","./src/app/handover/routes/main-route/components/right-panel/right-panel.component.html","./src/app/handover/routes/main-route/components/right-panel/right-panel.component.ts","./src/app/handover/routes/main-route/components/worker-statment/worker-statement.component.html","./src/app/handover/routes/main-route/components/worker-statment/worker-statement.component.ts","./src/app/handover/routes/main-route/components/handover-add/handover-add.component.html","./src/app/handover/routes/main-route/components/handover-add/handover-add.component.ts","./src/app/handover/routes/main-route/main-route.component.html","./src/app/handover/routes/main-route/main-route.component.ts","./src/app/enum/area.enum.ts","./src/app/commons/enums/area-type.enum.ts","./src/app/commons/services/map/drawer/area/area-drawer.service.ts","./src/app/commons/services/area/area.service.ts","./node_modules/primeng/fesm2022/primeng-accordion.mjs","./node_modules/primeng/fesm2022/primeng-progressspinner.mjs","./src/app/commons/pipes/area-type-img.pipe.ts","./src/app/layout/areas/areas-list/area-item-list/area-item-list.component.ts","./src/app/layout/areas/areas-list/area-item-list/area-item-list.component.html","./src/app/layout/areas/areas-list/areas-list.component.html","./src/app/layout/areas/areas-list/areas-list.component.ts","./src/app/commons/forms/validators/area-coords-validator.function.ts","./node_modules/primeng/fesm2022/primeng-icons-timescircle.mjs","./node_modules/primeng/fesm2022/primeng-chip.mjs","./node_modules/primeng/fesm2022/primeng-multiselect.mjs","./node_modules/primeng/fesm2022/primeng-colorpicker.mjs","./src/app/layout/areas/area-form/area-form.component.html","./src/app/layout/areas/area-form/area-form.component.ts","./src/app/layout/areas/areas.component.html","./src/app/layout/areas/areas.component.ts","./src/app/shared/components/ads/digital-display.directive.ts","./src/app/shared/components/ads/ad-fuel-saving/ad-fuel-saving.component.ts","./src/app/shared/components/ads/ad-fuel-saving/ad-fuel-saving.component.html","./src/app/shared/components/ads/ad-typical-ui/ad-typical-ui.component.html","./src/app/shared/components/ads/ad-typical-ui/ad-typical-ui.component.ts","./src/app/layout/news/news-rss.service.ts","./src/app/layout/news/news.component.html","./src/app/layout/news/news.component.ts","./src/app/commons/directives/dropdown-hover.directive.ts","./src/app/shared/standalone/dropdown-menu/dropdown-menu.component.ts","./src/app/shared/standalone/dropdown-menu/dropdown-menu.component.html","./node_modules/primeng/fesm2022/primeng-tabmenu.mjs","./src/app/layout/driver/http-services/worker-http.service.ts","./src/app/layout/driver/services/worker.service.ts","./node_modules/xlsx/xlsx.mjs","./src/app/directories/workers/workers.component.html","./src/app/directories/workers/workers.component.ts","./src/app/utils/export-files.ts","./src/app/directories/workers/workers-add-form/workers-add-form.component.html","./src/app/directories/workers/workers-add-form/workers-add-form.component.ts","./src/app/layout/vehicle/components/configurator-list-vehicle/configurator-list-vehicle.component.html","./src/app/layout/vehicle/components/configurator-list-vehicle/configurator-list-vehicle.component.ts","./src/app/layout/vehicle/filter/filter-control/filter-control.component.html","./src/app/layout/vehicle/filter/filter-control/filter-control.component.ts","./src/app/commons/services/cache/cache.service.ts","./src/app/commons/forms/tag-picker/pipes/sort-tags.pipe.ts","./src/app/commons/forms/tag-picker/tag-picker.component.html","./src/app/commons/forms/tag-picker/tag-picker.component.ts","./src/app/commons/models/other/UUID.ts","./src/app/commons/forms/select/select.component.html","./src/app/commons/forms/select/select.component.ts","./src/app/layout/vehicle/filter/vehicle-list-filter.component.html","./src/app/layout/vehicle/filter/vehicle-list-filter.component.ts","./src/app/enum/network.enum.ts","./src/app/standalone-components/network-type-marker/network-type-marker.component.ts","./src/app/standalone-components/network-type-marker/network-type-marker.component.html","./src/app/commons/services/icon/icon.service.ts","./src/app/commons/forms/time/time.component.html","./src/app/commons/forms/time/time.component.ts","./src/app/layout/vehicle/control-value/singnal-value/vehicle-control-indicator-signal-value.component.ts","./src/app/layout/vehicle/control-value/singnal-value/vehicle-control-indicator-signal-value.component.html","./src/app/commons/pipes/vehicle-indicator-type-unit.pipe.ts","./src/app/layout/vehicle/control-value/control-value-type/vehicle-control-indicator-value-type.component.html","./src/app/layout/vehicle/control-value/control-value-type/vehicle-control-indicator-value-type.component.ts","./src/app/layout/vehicle/control-value/vehicle-control-indicator-value.component.html","./src/app/layout/vehicle/control-value/vehicle-control-indicator-value.component.ts","./src/app/layout/vehicle/location/vehicle-location.component.ts","./src/app/layout/vehicle/location/vehicle-location.component.html","./src/app/layout/vehicle/components/list-vehicle-item/list-vehicle-item.component.html","./src/app/layout/vehicle/components/list-vehicle-item/list-vehicle-item.component.ts","./src/app/layout/vehicle/list-lite/list-vehicle-tacho-item/list-vehicle-tacho-item.component.html","./src/app/layout/vehicle/list-lite/list-vehicle-tacho-item/list-vehicle-tacho-item.component.ts","./src/app/layout/vehicle/list-lite/vehicle-list/vehicle-list.component.html","./src/app/layout/vehicle/list-lite/vehicle-list/vehicle-list.component.ts","./src/app/commons/pipes/filter-tacho-list.pipe.ts","./src/app/layout/vehicle/list-lite/vehicle-panel-lite.component.html","./src/app/layout/vehicle/list-lite/vehicle-panel-lite.component.ts","./src/app/commons/models/domain/Config.ts","./src/app/commons/services/configuration/configuration.service.ts","./src/app/commons/forms/scroll-bar/scroll-bar.service.ts","./src/app/commons/forms/scrolled-list/scrolled-list.component.html","./src/app/commons/forms/scrolled-list/scrolled-list.component.ts","./src/app/commons/forms/checkbox/checkbox.component.html","./src/app/commons/forms/checkbox/checkbox.component.ts","./src/app/layout/vehicle/list-full/config/vehicle-list-full-config.component.html","./src/app/layout/vehicle/list-full/config/vehicle-list-full-config.component.ts","./src/app/layout/vehicle/list-full/item/vehicle-list-full-item.component.html","./src/app/layout/vehicle/list-full/item/vehicle-list-full-item.component.ts","./src/app/layout/vehicle/list-full/headers/indicator-status/vehicle-list-full-indicator-status-header.component.html","./src/app/layout/vehicle/list-full/headers/indicator-status/vehicle-list-full-indicator-status-header.component.ts","./src/app/layout/vehicle/list-full/headers/indicator-value/vehicle-list-full-indicator-value-header.component.html","./src/app/layout/vehicle/list-full/headers/indicator-value/vehicle-list-full-indicator-value-header.component.ts","./src/app/layout/vehicle/list-full/headers/tacho/vehicle-list-full-tacho-header.component.html","./src/app/layout/vehicle/list-full/headers/tacho/vehicle-list-full-tacho-header.component.ts","./src/app/layout/vehicle/list-full/expand/vehicle-list-full-expand.component.ts","./src/app/layout/vehicle/list-full/expand/vehicle-list-full-expand.component.html","./src/app/layout/vehicle/list-full/headers/indicator-column-full/vehicle-list-full-inidicator-column-full.component.ts","./src/app/layout/vehicle/list-full/vehicle-list-full.component.html","./src/app/layout/vehicle/list-full/vehicle-list-full.component.ts","./src/app/commons/enums/vehicle.enum.ts","./src/app/standalone-components/network-warrning/network-warrning.component.html","./src/app/standalone-components/network-warrning/network-warrning.component.ts","./src/app/shared/pipes/tank-fill-percentage.pipe.ts","./src/app/layout/vehicle/details/tabs/params/vehicle-details-params-tab.component.html","./src/app/layout/vehicle/details/tabs/params/vehicle-details-params-tab.component.ts","./node_modules/date-fns/esm/differenceInCalendarDays/index.js","./node_modules/date-fns/esm/differenceInDays/index.js","./src/app/commons/services/route/route.service.ts","./src/app/commons/enums/route-element-type.enum.ts","./src/app/commons/services/map/drawer/route/route-drawer.service.ts","./src/app/layout/vehicle/details/tabs/routes/stats/pipes/distance.pipe.ts","./node_modules/date-fns/esm/compareAsc/index.js","./node_modules/date-fns/esm/addMonths/index.js","./node_modules/date-fns/esm/add/index.js","./node_modules/date-fns/esm/endOfMonth/index.js","./node_modules/date-fns/esm/intervalToDuration/index.js","./node_modules/date-fns/esm/differenceInYears/index.js","./node_modules/date-fns/esm/differenceInCalendarYears/index.js","./node_modules/date-fns/esm/differenceInMonths/index.js","./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","./node_modules/date-fns/esm/isLastDayOfMonth/index.js","./node_modules/date-fns/esm/differenceInHours/index.js","./node_modules/date-fns/esm/differenceInSeconds/index.js","./node_modules/date-fns/esm/subDays/index.js","./src/app/commons/pipes/time-difference.pipe.ts","./src/app/utils/date.ts","./src/app/layout/vehicle/details/tabs/routes/item/vehicle-details-route-item.component.html","./src/app/layout/vehicle/details/tabs/routes/item/vehicle-details-route-item.component.ts","./src/app/layout/vehicle/details/tabs/routes/vehicle-details-routes-calendar/vehicle-details-routes-calendar.component.html","./src/app/layout/vehicle/details/tabs/routes/vehicle-details-routes-calendar/vehicle-details-routes-calendar.component.ts","./node_modules/date-fns/esm/subMonths/index.js","./node_modules/date-fns/esm/startOfMonth/index.js","./src/app/layout/vehicle/details/tabs/routes/stats/pipes/fuel.pipe.ts","./src/app/layout/vehicle/details/tabs/routes/vehicle-details-route-summary-data/vehicle-details-route-summary-data.component.html","./src/app/layout/vehicle/details/tabs/routes/vehicle-details-route-summary-data/vehicle-details-route-summary-data.component.ts","./node_modules/date-fns/esm/isSameDay/index.js","./src/app/layout/vehicle/details/tabs/routes/vehicle-details-routes-days-switch/vehicle-details-routes-days-switch.component.html","./src/app/layout/vehicle/details/tabs/routes/vehicle-details-routes-days-switch/vehicle-details-routes-days-switch.component.ts","./src/app/shared/pipes/group-routes-by-date.pipe.ts","./src/app/layout/vehicle/details/tabs/routes/vehicle-details-routes-tab.component.html","./src/app/layout/vehicle/details/tabs/routes/vehicle-details-routes-tab.component.ts","./src/app/enum/tacho.enum.ts","./src/app/commons/pipes/format-seconds-to-humanize.pipe.ts","./src/app/commons/services/tacho/tacho.service.ts","./src/app/commons/services/driver/driver.service.ts","./src/app/layout/vehicle/details/tabs/tacho/vehicle-tacho-slots/vehicle-tacho-slots.component.html","./src/app/layout/vehicle/details/tabs/tacho/vehicle-tacho-slots/vehicle-tacho-slots.component.ts","./src/app/layout/vehicle/details/tabs/tacho/driver-tacho/driver-tacho.component.ts","./src/app/layout/vehicle/details/tabs/tacho/driver-tacho/driver-tacho.component.html","./src/app/layout/vehicle/details/tabs/tacho/tacho-summary-data/tacho-summary-data.component.ts","./src/app/layout/vehicle/details/tabs/tacho/tacho-summary-data/tacho-summary-data.component.html","./src/app/layout/vehicle/details/tabs/tacho/tacho-data-details/tacho-data-details.component.html","./src/app/layout/vehicle/details/tabs/tacho/tacho-data-details/tacho-data-details.component.ts","./src/app/layout/vehicle/details/tabs/tacho/tacho-empty-state/tacho-empty-state.component.ts","./src/app/layout/vehicle/details/tabs/tacho/tacho-empty-state/tacho-empty-state.component.html","./src/app/layout/vehicle/details/tabs/tacho/vehicle-details-tacho-tab.component.html","./src/app/layout/vehicle/details/tabs/tacho/vehicle-details-tacho-tab.component.ts","./src/app/utils/tacho-fncs.ts","./node_modules/date-fns/esm/addSeconds/index.js","./src/app/layout/vehicle/http-services/etoll-status-http.service.ts","./src/app/layout/vehicle/details/tabs/e-toll/e-toll-disable-modal/e-toll-disable-modal.component.ts","./src/app/layout/vehicle/details/tabs/e-toll/e-toll-disable-modal/e-toll-disable-modal.component.html","./src/app/standalone-components/vehicle-business-number-pin/vehicle-business-number-pin.component.ts","./src/app/standalone-components/vehicle-business-number-pin/vehicle-business-number-pin.component.html","./src/app/layout/vehicle/details/tabs/e-toll/vehicle-details-etoll-tab.component.html","./src/app/layout/vehicle/details/tabs/e-toll/vehicle-details-etoll-tab.component.ts","./src/app/commons/models/remote.request/VehicleLock.ts","./src/app/shared/components/modal-wrapper/modal-wrapper.component.html","./src/app/shared/components/modal-wrapper/modal-wrapper.component.ts","./src/app/layout/vehicle/details/tabs/th-vehicle-details-locks-tab/th-vehicle-details-locks-tab.component.html","./src/app/layout/vehicle/details/tabs/th-vehicle-details-locks-tab/th-vehicle-details-locks-tab.component.ts","./src/app/commons/enums/sent-geo-status.enum.ts","./src/app/layout/vehicle/details/tabs/sent-tab/sent-disable-modal/sent-disable-modal.component.ts","./src/app/layout/vehicle/details/tabs/sent-tab/sent-disable-modal/sent-disable-modal.component.html","./src/app/layout/vehicle/details/tabs/sent-tab/sent-tab-no-active-service/sent-tab-no-active-service.component.ts","./src/app/layout/vehicle/details/tabs/sent-tab/sent-tab-no-active-service/sent-tab-no-active-service.component.html","./src/app/layout/vehicle/details/tabs/sent-tab/sent-tab.component.html","./src/app/layout/vehicle/details/tabs/sent-tab/sent-tab.component.ts","./src/app/utils/last-update.ts","./src/app/layout/vehicle/details/tabs/vehicle-details-tabs.component.html","./src/app/layout/vehicle/details/tabs/vehicle-details-tabs.component.ts","./src/app/layout/placeholders/common/common-placeholder.component.ts","./src/app/layout/placeholders/common/common-placeholder.component.html","./src/app/commons/enums/vehicle-indicator-type.enum.ts","./src/app/layout/vehicle/details/header/vehicle-details-header.component.html","./src/app/layout/vehicle/details/header/vehicle-details-header.component.ts","./src/app/layout/vehicle/details/vehicle-details.component.html","./src/app/layout/vehicle/details/vehicle-details.component.ts","./src/app/shared/services/string.service.ts","./src/app/layout/driver/list-lite/driver-list-item/driver-list-item.component.html","./src/app/layout/driver/list-lite/driver-list-item/driver-list-item.component.ts","./src/app/layout/driver/list-lite/driver-list-lite.component.html","./src/app/layout/driver/list-lite/driver-list-lite.component.ts","./src/app/layout/driver/details/header/driver-details-header.component.html","./src/app/layout/driver/details/header/driver-details-header.component.ts","./src/app/layout/driver/details/tabs/driver-details-data-tab/driver-deactivation-modal/driver-deactivation-modal.component.ts","./src/app/layout/driver/details/tabs/driver-details-data-tab/driver-deactivation-modal/driver-deactivation-modal.component.html","./src/app/layout/driver/details/tabs/driver-details-data-tab/driver-unarchive-modal/driver-unarchive-modal.component.ts","./src/app/layout/driver/details/tabs/driver-details-data-tab/driver-unarchive-modal/driver-unarchive-modal.component.html","./src/app/shared/components/secondary-button/secondary-button.component.html","./src/app/shared/components/secondary-button/secondary-button.component.ts","./src/app/layout/driver/details/tabs/driver-details-data-tab/driver-details-data-tab.component.html","./src/app/layout/driver/details/tabs/driver-details-data-tab/driver-details-data-tab.component.ts","./src/app/layout/driver/details/tabs/driver-details-tabs.component.html","./src/app/layout/driver/details/tabs/driver-details-tabs.component.ts","./src/app/layout/driver/details/driver-details.component.html","./src/app/layout/driver/details/driver-details.component.ts","./src/app/layout/notification/notification.component.html","./src/app/layout/notification/notification.component.ts","./node_modules/rxjs/dist/esm/internal/operators/takeWhile.js","./src/app/commons/services/map/drawer/event/event-drawer.service.ts","./node_modules/vscroll/dist/bundles/vscroll.esm5.js","./node_modules/ngx-ui-scroll/fesm2015/ngx-ui-scroll.js","./src/app/layout/event/list-lite/event-list/info/event-list-item-info.component.html","./src/app/layout/event/list-lite/event-list/info/event-list-item-info.component.ts","./src/app/layout/event/list-lite/event-list/alarm-item/event-item.component.ts","./src/app/layout/event/list-lite/event-list/alarm-item/event-item.component.html","./src/app/layout/event/list-lite/event-list/fuel-item/fuel-item.component.ts","./src/app/layout/event/list-lite/event-list/fuel-item/fuel-item.component.html","./src/app/layout/event/list-lite/event-list/area-item/area-item.component.ts","./src/app/layout/event/list-lite/event-list/area-item/area-item.component.html","./src/app/layout/event/list-lite/event-list/event-list.component.html","./src/app/layout/event/list-lite/event-list/event-list.component.ts","./src/app/layout/event/list-lite/filters/filters-events/filters-events.component.html","./src/app/layout/event/list-lite/filters/filters-events/filters-events.component.ts","./src/app/layout/event/list-lite/event-list-lite.component.html","./src/app/layout/event/list-lite/event-list-lite.component.ts","./src/app/layout/area/list-lite/area-list-lite.component.html","./src/app/layout/area/list-lite/area-list-lite.component.ts","./src/app/layout/full-panel-container/full-panel-container.component.html","./src/app/layout/full-panel-container/full-panel-container.component.ts","./src/app/layout/vehicle/list-lite/etoll-panel/activate-etoll/activate-e-toll.component.ts","./src/app/layout/vehicle/list-lite/etoll-panel/activate-etoll/activate-e-toll.component.html","./src/app/layout/panel/components/etoll-dropdown-balance/etoll-dropdown-balance.component.html","./src/app/layout/panel/components/etoll-dropdown-balance/etoll-dropdown-balance.component.ts","./src/app/layout/right-panel-container/right-panel-container.component.html","./src/app/layout/right-panel-container/right-panel-container.component.ts","./src/app/layout/panel/panel.component.html","./src/app/app-routes.module.ts","./src/app/layout/panel/panel.component.ts","./node_modules/@angular/common/locales/global/pl.js","./src/app/shared/components/offline-dialog/offline-dialog.component.ts","./src/app/shared/components/offline-dialog/offline-dialog.component.html","./src/app/utils/list-of-addresses-which-is-available-in-mobile-device.ts","./src/app/shared/pipes/if-address-is-available-on-the-phone.pipe.ts","./src/app/shared/services/external-scripts/hotjar.service.ts","./src/app/app.component.html","./src/app/app.component.ts","./node_modules/date-fns/esm/setDefaultOptions/index.js","./src/app/commons/forms/scroll-bar/scroll-bar.module.ts","./src/app/commons/forms/forms.module.ts","./src/app/commons/services/worker/worker.service.ts","./src/app/commons/services/scroll/scroll.service.ts","./src/app/commons/services/data.list/data-list.service.ts","./src/app/commons/services/full.list/vehicle-full-list.service.ts","./src/app/commons/services/services.module.ts","./src/app/commons/commons.module.ts","./src/app/map/map.module.ts","./src/app/layout/area/filter/area-list-filter.component.html","./src/app/layout/area/filter/area-list-filter.component.ts","./src/app/layout/area/create/area-create.component.html","./src/app/layout/area/create/area-create.component.ts","./src/app/layout/area/list-lite/item/area-list-item.component.ts","./src/app/layout/area/list-lite/item/area-list-item.component.html","./src/app/commons/directives/clear.on.focus/clear-on-forcus.directive.ts","./src/app/layout/area/form/input/area-form-input.component.html","./src/app/layout/area/form/input/area-form-input.component.ts","./src/app/layout/area/delete/area-delete.component.html","./src/app/layout/area/delete/area-delete.component.ts","./src/app/layout/area/form/area-form.component.html","./src/app/layout/area/form/area-form.component.ts","./src/app/user-profile/user-profile.module.ts","./src/app/help/help.module.ts","./node_modules/primeng/fesm2022/primeng-calendar.mjs","./src/app/data-sharing/data-sharing.module.ts","./src/app/map-panel/map-panel.module.ts","./src/app/handover/handover.module.ts","./src/app/layout/areas/areas.module.ts","./src/app/shared/components/ads/ads.module.ts","./src/app/layout/news/news.module.ts","./src/app/commons/forms/scroll-bar/scrolled-bar.component.html","./src/app/commons/forms/scroll-bar/scrolled-bar.component.ts","./src/app/layout/layout.module.ts","./src/app/survey/survey.module.ts","./src/app/app.module.ts","./src/main.ts","./node_modules/crypto-js/aes.js","./node_modules/crypto-js/blowfish.js","./node_modules/crypto-js/cipher-core.js","./node_modules/crypto-js/core.js","./node_modules/crypto-js/enc-base64.js","./node_modules/crypto-js/enc-base64url.js","./node_modules/crypto-js/enc-utf16.js","./node_modules/crypto-js/evpkdf.js","./node_modules/crypto-js/format-hex.js","./node_modules/crypto-js/hmac.js","./node_modules/crypto-js/index.js","./node_modules/crypto-js/lib-typedarrays.js","./node_modules/crypto-js/md5.js","./node_modules/crypto-js/mode-cfb.js","./node_modules/crypto-js/mode-ctr-gladman.js","./node_modules/crypto-js/mode-ctr.js","./node_modules/crypto-js/mode-ecb.js","./node_modules/crypto-js/mode-ofb.js","./node_modules/crypto-js/pad-ansix923.js","./node_modules/crypto-js/pad-iso10126.js","./node_modules/crypto-js/pad-iso97971.js","./node_modules/crypto-js/pad-nopadding.js","./node_modules/crypto-js/pad-zeropadding.js","./node_modules/crypto-js/pbkdf2.js","./node_modules/crypto-js/rabbit-legacy.js","./node_modules/crypto-js/rabbit.js","./node_modules/crypto-js/rc4.js","./node_modules/crypto-js/ripemd160.js","./node_modules/crypto-js/sha1.js","./node_modules/crypto-js/sha224.js","./node_modules/crypto-js/sha256.js","./node_modules/crypto-js/sha3.js","./node_modules/crypto-js/sha384.js","./node_modules/crypto-js/sha512.js","./node_modules/crypto-js/tripledes.js","./node_modules/crypto-js/x64-core.js","./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","./node_modules/date-fns/esm/_lib/defaultOptions/index.js","./node_modules/date-fns/esm/_lib/requiredArgs/index.js","./node_modules/date-fns/esm/_lib/roundingMethods/index.js","./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","./node_modules/date-fns/esm/_lib/toInteger/index.js","./node_modules/date-fns/esm/addMilliseconds/index.js","./node_modules/date-fns/esm/constants/index.js","./node_modules/date-fns/esm/differenceInMilliseconds/index.js","./node_modules/date-fns/esm/differenceInMinutes/index.js","./node_modules/date-fns/esm/endOfDay/index.js","./node_modules/date-fns/esm/isAfter/index.js","./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","./node_modules/date-fns/esm/locale/pl/_lib/formatDistance/index.js","./node_modules/date-fns/esm/locale/pl/_lib/formatLong/index.js","./node_modules/date-fns/esm/locale/pl/_lib/formatRelative/index.js","./node_modules/date-fns/esm/_lib/isSameUTCWeek/index.js","./node_modules/date-fns/esm/locale/pl/_lib/localize/index.js","./node_modules/date-fns/esm/locale/pl/index.js","./node_modules/date-fns/esm/locale/pl/_lib/match/index.js","./node_modules/date-fns/esm/parseISO/index.js","./node_modules/date-fns/esm/startOfDay/index.js","./node_modules/date-fns/esm/toDate/index.js","./node_modules/leaflet-minimap/dist/Control.MiniMap.min.js","./node_modules/leaflet.gridlayer.googlemutant/dist/Leaflet.GoogleMutant.js","./node_modules/leaflet/dist/leaflet-src.js","./node_modules/lodash/lodash.js","./node_modules/lottie-web/build/player/lottie.js","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/Observable.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/interval.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/observable/of.js","./node_modules/rxjs/dist/esm/internal/observable/throwError.js","./node_modules/rxjs/dist/esm/internal/observable/timer.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/operators/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/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/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/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/pairwise.js","./node_modules/rxjs/dist/esm/internal/operators/refCount.js","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.js","./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","./node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","./node_modules/rxjs/dist/esm/internal/operators/skip.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/takeUntil.js","./node_modules/rxjs/dist/esm/internal/operators/tap.js","./node_modules/rxjs/dist/esm/internal/operators/timeout.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/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/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/createObject.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/isDate.js","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isObservable.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/tslib/tslib.es6.js","./node_modules/@angular-material-components/datetime-picker/fesm2020/angular-material-components-datetime-picker.mjs","./node_modules/@angular/animations/fesm2022/animations.mjs","./node_modules/@angular/cdk/fesm2020/a11y.mjs","./node_modules/@angular/cdk/fesm2020/bidi.mjs","./node_modules/@angular/cdk/fesm2020/coercion.mjs","./node_modules/@angular/cdk/fesm2020/collections.mjs","./node_modules/@angular/cdk/fesm2020/keycodes.mjs","./node_modules/@angular/cdk/fesm2020/layout.mjs","./node_modules/@angular/cdk/fesm2020/observers.mjs","./node_modules/@angular/cdk/fesm2020/overlay.mjs","./node_modules/@angular/cdk/fesm2020/platform.mjs","./node_modules/@angular/cdk/fesm2020/portal.mjs","./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/operators/auditTime.js","./node_modules/rxjs/dist/esm/internal/operators/audit.js","./node_modules/@angular/cdk/fesm2020/scrolling.mjs","./node_modules/@angular/cdk/fesm2020/table.mjs","./node_modules/@angular/common/fesm2022/common.mjs","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","./node_modules/@angular/common/fesm2022/http.mjs","./node_modules/@angular/core/fesm2022/primitives/signals.mjs","./node_modules/@angular/core/fesm2022/core.mjs","./node_modules/@angular/forms/fesm2022/forms.mjs","./node_modules/rxjs/dist/esm/internal/operators/delayWhen.js","./node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","./node_modules/@angular/material/fesm2020/autocomplete.mjs","./node_modules/rxjs/dist/esm/internal/operators/delay.js","./node_modules/@angular/material/fesm2020/button.mjs","./node_modules/@angular/material/fesm2020/checkbox.mjs","./node_modules/@angular/material/fesm2020/core.mjs","./node_modules/@angular/material/fesm2020/datepicker.mjs","./node_modules/@angular/cdk/fesm2020/dialog.mjs","./node_modules/@angular/material/fesm2020/dialog.mjs","./node_modules/@angular/material/fesm2020/form-field.mjs","./node_modules/@angular/material/fesm2020/icon.mjs","./node_modules/@angular/cdk/fesm2020/text-field.mjs","./node_modules/@angular/material/fesm2020/input.mjs","./node_modules/@angular/material/fesm2020/progress-spinner.mjs","./node_modules/@angular/material/fesm2020/slide-toggle.mjs","./node_modules/@angular/material/fesm2020/sort.mjs","./node_modules/@angular/material/fesm2020/table.mjs","./node_modules/@angular/material/fesm2020/tabs.mjs","./node_modules/@angular/material/fesm2020/tooltip.mjs","./node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/first.js","./node_modules/rxjs/dist/esm/internal/operators/takeLast.js","./node_modules/@angular/router/fesm2022/router.mjs","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/@ngx-translate/core/fesm2020/ngx-translate-core.mjs","./node_modules/@primeuix/styled/index.mjs","./node_modules/@primeuix/utils/eventbus/index.mjs","./node_modules/@primeuix/utils/dom/index.mjs","./node_modules/@primeuix/utils/uuid/index.mjs","./node_modules/@primeuix/utils/zindex/index.mjs","./node_modules/@primeuix/utils/object/index.mjs","./node_modules/ngx-device-detector/fesm2020/ngx-device-detector.mjs","./node_modules/@angular/core/fesm2022/rxjs-interop.mjs","./node_modules/ngx-lottie/fesm2022/ngx-lottie.mjs","./node_modules/primeng/fesm2022/primeng-api.mjs","./node_modules/primeng/fesm2022/primeng-usestyle.mjs","./node_modules/primeng/fesm2022/primeng-base.mjs","./node_modules/primeng/fesm2022/primeng-config.mjs"],"sourcesContent":["import { TranslateService } from '@ngx-translate/core';\r\n\r\nimport {VehicleLocation} from './VehicleLocation';\r\nimport {VehicleControlIndicator} from './VehicleControlIndicator';\r\nimport {Driver} from './Driver';\r\nimport {VehicleTacho} from './VehicleTacho';\r\nimport { NetworkType } from '@src/app/enum/network.enum';\r\n\r\nclass VehicleTranslate {\r\n constructor(public translate?: TranslateService) {}\r\n}\r\n\r\nexport class Vehicle extends VehicleTranslate {\r\n public blockerParametrId?: number; // Id parametru blokady z ControlIndicators\r\n public blockerParametrIdOut2? :number; // Id parametru blokady z ControlIndicators\r\n /**\r\n * ConnectionStatus\r\n */\r\n public CS: number = 0;\r\n public ControlIndicators?: VehicleControlIndicator[];\r\n /**\r\n * Id elektronicznie identyfikatora jaki się zalogował jako ostatni (bieżący traktowany jest jako ostatni) (LastDriverElectronicId)\r\n */\r\n public LD: string = '';\r\n public SN: string = '';\r\n /**\r\n * DriverID\r\n */\r\n public DR: number = 0;\r\n public LastDriver?: Driver;\r\n /**\r\n * Ostatnia zmiana pozycja pojazdu (bieżąca jest jako ostatnia) (LastKnownLocation)\r\n */\r\n public LL?: VehicleLocation;\r\n /**\r\n * ModuleStatus\r\n */\r\n public MS: number = 0;\r\n /**\r\n * Name\r\n */\r\n public Nm: string = '';\r\n /**\r\n * RegistrationNumber\r\n */\r\n public RN: string = '';\r\n /**\r\n * Status\r\n */\r\n public St: number = 0;\r\n /**\r\n * VehicleId\r\n */\r\n\r\n /* Czy pojazd jest zarejestrowany w sentgeo */\r\n public RS: boolean;\r\n /* Czy pojazd ma tacho */\r\n public TC: boolean;\r\n\r\n public Id: number = 0;\r\n public VehicleAngle = 0;\r\n public LastUpdated?: Date;\r\n public LastUpdatedFrom?: string;\r\n\r\n public Tacho?: VehicleTacho;\r\n public LastPositionLat?: number;\r\n public LastPositionLon?: number;\r\n\r\n public MF: number = 0;\r\n\r\n /**\r\n * BusinessNumber\r\n */\r\n public BN: string = '';\r\n /**\r\n * DevicePin\r\n */\r\n public DP: string = '';\r\n\r\n /**\r\n * Network type 2g/5g etc.\r\n */\r\n public DN: NetworkType = '' as any;\r\n\r\n /**\r\n * RegisterEToll\r\n */\r\n public RE: boolean = false;\r\n\r\n /**\r\n * SendToEToll\r\n */\r\n public SE: boolean = false;\r\n\r\n /**\r\n * ETollStatus\r\n */\r\n public ES: number = 0;\r\n public SentGeoId: string;\r\n\r\n // SentGeo\r\n public SG: number = 0;\r\n\r\n constructor(obj?: Vehicle, translate?: TranslateService) {\r\n super(translate);\r\n if (obj !== undefined) {\r\n Object.assign(this, obj);\r\n }\r\n }\r\n\r\n public get mainFuel(): VehicleControlIndicator | undefined {\r\n\r\n if (!this.ControlIndicators) {\r\n return undefined;\r\n }\r\n\r\n let fuel: VehicleControlIndicator | undefined = undefined;\r\n\r\n if (this.MF !== undefined && this.MF > 0) {\r\n fuel = this.ControlIndicators.find(p => p && p.Id === this.MF);\r\n }\r\n\r\n return fuel;\r\n }\r\n\r\n public getEtollStatusHint(): string {\r\n switch (this.ES) {\r\n case 0:\r\n return this.translate?.instant('unregistered');\r\n case 1:\r\n return this.translate?.instant('disabled');\r\n case 2:\r\n return this.translate?.instant('enabled');\r\n case 3:\r\n return this.translate?.instant('vehicle-list-item.etoll-not-sending');\r\n case 4:\r\n return this.translate?.instant('delayedSending');\r\n default:\r\n return '';\r\n }\r\n }\r\n}\r\n\r\n","export class CustomError {\r\n\r\n private _name!: string;\r\n\r\n get message(): string | undefined {\r\n return this._message;\r\n }\r\n\r\n set message(v: string | undefined) {\r\n this._message = v;\r\n }\r\n\r\n get code(): number | undefined {\r\n return this._code;\r\n }\r\n\r\n set code(v: number | undefined) {\r\n this._code = v;\r\n }\r\n\r\n get name() {\r\n return this._name;\r\n }\r\n\r\n set name(v: string) {\r\n this._name = v;\r\n }\r\n\r\n\r\n constructor(\r\n private _message?: string,\r\n private _code?: number) {\r\n }\r\n}\r\n","import { EventLocation } from '../domain/EventLocation';\r\n\r\nexport enum AppNotificationTypes {\r\n INFO = 1,\r\n ERROR = 2,\r\n APP_ERROR = 3,\r\n APP_INFO = 4,\r\n APP_WARN = 5,\r\n APP_SUCCESS = 6,\r\n}\r\n\r\n\r\nexport class AppNotification {\r\n title?: string;\r\n text?: string;\r\n time?: Date;\r\n type: AppNotificationTypes = AppNotificationTypes.INFO;\r\n driverId?: number;\r\n vehicleId?: number;\r\n data?: any;\r\n opts?: any;\r\n}\r\n","import {Injectable, isDevMode} from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport {Location} from \"@angular/common\";\r\n\r\nimport {Observable, Subject, tap, TimeoutError} from 'rxjs';\r\n\r\nimport {WebResponse} from \"@commons/models/remote.response/WebResponse\";\r\n\r\nimport {ProgressService} from '../progress/progress.service';\r\n\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\nimport {SettingsService} from \"@shared/services/settings.service\";\r\nimport {LogInApiHttpService} from \"@shared/services-http/log-in-api-http.service\";\r\nimport {NewWebSocketHttpService} from \"@shared/websocket/new-web-socket-http.service\";\r\nimport {AuthenticationService} from \"@shared/services/authentication/authentication.service\";\r\n\r\n@Injectable()\r\nexport class HttpProgressInterceptor implements HttpInterceptor {\r\n private errorNotified = false;\r\n\r\n public static $errorSubject = new Subject();\r\n public static $timeoutSubject = new Subject();\r\n\r\n constructor(\r\n private progressService: ProgressService,\r\n private location: Location,\r\n private newNavigationService: NewNavigationService,\r\n private $progressService: ProgressService,\r\n private settingsService: SettingsService,\r\n private logInApiHttpService: LogInApiHttpService,\r\n private newWebSocketHttpService: NewWebSocketHttpService,\r\n private authenticationService: AuthenticationService\r\n ) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n this.logInApiHttpService.setLastRequest(JSON.stringify(req));\r\n\r\n const subject: Subject> = new Subject();\r\n const method = req.method;\r\n const inProgress = ['PUT', 'POST', 'DELETE'].indexOf(method) !== -1;\r\n\r\n if (inProgress)\r\n this.progressService.setState(true);\r\n\r\n req = this.trySetSessionIdHeader(req);\r\n req = req.clone({headers: req.headers.set('machine-id', this.settingsService.getMachineId())});\r\n req = req.clone({headers: req.headers.set('Cache-Control', 'no-cache')});\r\n\r\n next.handle(req).pipe(\r\n tap(respone => {\r\n if (respone instanceof HttpResponse)\r\n this.setWebSocketRoute(>respone);\r\n }))\r\n .subscribe({\r\n next: (result) => {\r\n const webResponse = (result as any) as WebResponse;\r\n if (webResponse && webResponse.ErrorCode > 0) {\r\n console.error(JSON.stringify(result));\r\n }\r\n\r\n if (result && result.type && inProgress) {\r\n this.progressService.setState(false);\r\n }\r\n subject.next(result);\r\n },\r\n error: (error) => {\r\n if (inProgress) {\r\n this.progressService.setState(false);\r\n }\r\n this.progressService.forceStop();\r\n\r\n this.notifyOnError(error);\r\n subject.error(error);\r\n },\r\n complete: () => {\r\n if (inProgress) {\r\n this.progressService.setState(false);\r\n }\r\n subject.complete();\r\n }\r\n });\r\n\r\n return subject.asObservable();\r\n }\r\n\r\n private trySetSessionIdHeader(httpRequest: HttpRequest): HttpRequest {\r\n if (httpRequest.url.includes('AuthenticateByToken') || httpRequest.url.includes('https://en.wikipedia.org'))\r\n return httpRequest;\r\n\r\n const sessionId = httpRequest.headers.get('SessionId');\r\n if (!sessionId && this.authenticationService?.sessionId) {\r\n httpRequest = httpRequest.clone({headers: httpRequest.headers.set('SessionId', this.authenticationService.sessionId)});\r\n }\r\n\r\n // const notification = httpRequest.headers.get('notification');\r\n // if (!notification) {\r\n // httpRequest = httpRequest.clone({headers: httpRequest.headers.set('notification', 'true')});\r\n // if(isDevMode())\r\n // console.log('notification' + httpRequest.url);\r\n // }\r\n\r\n return httpRequest;\r\n }\r\n\r\n //{ notification: true }\r\n\r\n private notifyOnError(error: any) {\r\n if (this.errorNotified)\r\n return;\r\n\r\n const isErrorFromNewModule =\r\n this.newNavigationService.isInAuthenticationModule || this.newNavigationService.isInDataSharingModule;\r\n\r\n if (isErrorFromNewModule) {\r\n if (error instanceof TimeoutError) {\r\n HttpProgressInterceptor.$timeoutSubject.next(true);\r\n } else if (error?.status == 401 || error?.code == 401) { //Unauthorized\r\n this.newNavigationService.toLogout();\r\n } else if (error?.status >= 500 || error?.code >= 500) {\r\n HttpProgressInterceptor.$errorSubject.next(true);\r\n } else {\r\n return;//custom validation error to handle\r\n }\r\n\r\n this.errorNotified = true;\r\n }\r\n }\r\n\r\n private setWebSocketRoute(response: HttpResponse) {\r\n if (response?.headers.has('route')) {\r\n let route: string | null = response.headers.get('route');\r\n this.newWebSocketHttpService.changeHttpRoute(route ?? 'not-set');\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { INotificationService } from '../../interfaces/INotificationService';\r\nimport { AppNotification, AppNotificationTypes } from '../../models/other/app-notification.model';\r\nimport { BusinessEvent } from '../../models/domain/BusinessEvent';\r\nimport { AppError } from '../../models/other/app-error.model';\r\n\r\n@Injectable()\r\nexport class NotificationService implements INotificationService {\r\n\r\n private subject: Subject = new Subject();\r\n\r\n public getSubject(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n public showMessage(text: string, title?: string, opts?: any): void {\r\n const msg: AppNotification = {\r\n title: title,\r\n text: text,\r\n time: new Date(),\r\n type: AppNotificationTypes.APP_INFO,\r\n driverId: undefined,\r\n vehicleId: undefined,\r\n opts: opts\r\n };\r\n this.subject.next(msg);\r\n }\r\n\r\n public notify(event: BusinessEvent): void {\r\n\r\n if (!event) {\r\n return;\r\n }\r\n\r\n const msg: AppNotification = {\r\n title: event.ED ? event.ED.Label : 'Nowe powiadomienie',\r\n text: event.ED ? event.ED.Details : '',\r\n time: event.TS,\r\n type: event.type || AppNotificationTypes.INFO,\r\n opts: { autoClose: true },\r\n driverId: event.DI,\r\n vehicleId: event.VI || event?.Data?.Id,\r\n };\r\n\r\n this.subject.next(msg);\r\n }\r\n\r\n public showSuccess(text: string, title?: string, opts?: any): void {\r\n const msg = new AppNotification();\r\n msg.text = text;\r\n msg.title = title;\r\n msg.opts = opts;\r\n msg.type = AppNotificationTypes.APP_INFO;\r\n this.subject.next(msg);\r\n }\r\n\r\n\r\n public showError(text: string, title?: string, opts?: any): void {\r\n const msg = new AppNotification();\r\n msg.text = text;\r\n msg.title = title;\r\n msg.opts = opts;\r\n msg.type = AppNotificationTypes.APP_ERROR;\r\n this.subject.next(msg);\r\n }\r\n\r\n public showWarning(text: string, title?: string, opts?: any): void {\r\n const msg = new AppNotification();\r\n msg.text = text;\r\n msg.title = title;\r\n msg.opts = opts;\r\n msg.type = AppNotificationTypes.APP_WARN;\r\n this.subject.next(msg);\r\n }\r\n\r\n\r\n public processAppError(error: AppError) {\r\n const msg = new AppNotification();\r\n msg.type = AppNotificationTypes.APP_ERROR;\r\n msg.data = error;\r\n this.subject.next(msg);\r\n }\r\n\r\n constructor() {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport {BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ProgressService {\r\n\r\n /**\r\n * sabject zmina\r\n */\r\n private sub: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n\r\n private counter = 0;\r\n\r\n /**\r\n * ustawienie stanu dla konkretnego elementu\r\n */\r\n public setState(flag: boolean, name?: string) {\r\n\r\n\r\n if (flag === true) {\r\n this.counter++;\r\n } else {\r\n this.counter--;\r\n }\r\n if (this.counter < 0) {\r\n this.counter = 0;\r\n }\r\n\r\n this.notify();\r\n }\r\n\r\n private notify() {\r\n // przekazanie\r\n this.sub.next({\r\n inProgress: this.counter > 0\r\n });\r\n }\r\n\r\n public forceStop(): void {\r\n this.counter = 0;\r\n this.notify();\r\n }\r\n\r\n public getStateChange(): Observable {\r\n return this.sub.asObservable();\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\r\n\r\nimport {Observable, of, throwError} from 'rxjs';\r\nimport {catchError, map, switchMap, tap, timeout} from 'rxjs/operators';\r\n\r\nimport {IRemoteDataService} from '../../interfaces/IRemoteDataService';\r\nimport {WebResponse} from '../../models/remote.response/WebResponse';\r\nimport {NotificationService} from '../notification/notification.service';\r\nimport {AppError} from '../../models/other/app-error.model';\r\nimport {CustomError} from '../../models/other/CustomError.model';\r\n\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\nimport {AuthenticationService} from \"@shared/services/authentication/authentication.service\";\r\n\r\n@Injectable()\r\nexport class RemoteDataService implements IRemoteDataService {\r\n\r\n constructor(\r\n private $httpClient: HttpClient,\r\n private $msg: NotificationService,\r\n private newNavigationService: NewNavigationService,\r\n private authenticationService: AuthenticationService\r\n ) {\r\n }\r\n\r\n /**\r\n * mapper\r\n */\r\n private responseMapper(resp: any): WebResponse {\r\n\r\n let response: WebResponse | null;\r\n response = (>resp).body;\r\n\r\n if (!response) {\r\n return {} as WebResponse;\r\n }\r\n\r\n // kolejnosc wazna\r\n if (response && response.Result) {\r\n response.Statuses = (response.Result.Statuses ? response.Result.Statuses : response.Statuses);\r\n }\r\n\r\n if (response && response.Result) {\r\n response.Result = (response.Result.Result ? response.Result.Result : response.Result);\r\n }\r\n\r\n\r\n // opis bledu\r\n if (response.ErrorCode) {\r\n switch (response.ErrorCode) {\r\n // Ok = 0,\r\n case 0:\r\n response.ErrorDescription = 'Opercja przebiegła pomyślnie';\r\n break;\r\n // InternalError = 1, // wewnętrzny błąd usługi\r\n case 1:\r\n response.ErrorDescription = 'Wystąpił błąd wewnętrzny serwera';\r\n break;\r\n // NotValidCredentials = 2, // nieprawidłowe dane uwierzytelniające\r\n case 2:\r\n response.ErrorDescription = 'E-mail lub hasło jest niepoprawne';\r\n break;\r\n // NoAccessToData = 3, // brak dostępu do danych\r\n case 3:\r\n response.ErrorDescription = 'Brak dostępu do danych';\r\n break;\r\n // NoSessionOrExpired = 4, //brak sesji lub sesja wygasła\r\n case 4:\r\n response.ErrorDescription = 'Brak sesji lub sesja wygasła';\r\n break;\r\n // FailToLoadProfileContactData = 5, //nie udało się pobrać danych kontaktowych z xml\r\n case 5:\r\n response.ErrorDescription = 'Nie udało się pobrać danych kontaktowych z xml';\r\n break;\r\n // DataFail = 6, //nieprawidłowe dane wejściowe\r\n case 6:\r\n response.ErrorDescription = 'Nieprawidłowe dane wejściowe';\r\n break;\r\n // ResetPasswordTokenIsExpired = 7, //token do resetu hasła wygasł\r\n case 7:\r\n response.ErrorDescription = 'Token do resetu hasła wygasł';\r\n break;\r\n // ResetPasswordTokenNotExist = 8, //nie znaleziono tokenu do resetu hasła\r\n case 8:\r\n response.ErrorDescription = 'Nie znaleziono tokenu do resetu hasła';\r\n break;\r\n // OldPasswordIncorrect = 9, //stare hasło jest niepoprawne\r\n case 9:\r\n response.ErrorDescription = 'Błędne hasło';\r\n break;\r\n // OldPasswordIsEmpty = 10, //stare hasło jest puste\r\n case 10:\r\n response.ErrorDescription = 'Hasło jest puste';\r\n break;\r\n // ResetPasswordTokenIsEmpty = 11, //token do resetu hasła jest pusty\r\n case 11:\r\n response.ErrorDescription = 'Token do resetu hasła jest pusty';\r\n break;\r\n // PersonNotFound = 12,\r\n case 12:\r\n response.ErrorDescription = 'Nie znaleziono osoby';\r\n break;\r\n // SearchEngineNotFound = 13,\r\n case 13:\r\n response.ErrorDescription = 'Nie znaleziono';\r\n break;\r\n // ClientNotFound = 16, //nie znaleziono klienta\r\n case 16:\r\n response.ErrorDescription = 'Baza danych o tej nazwie nie istnieje';\r\n break;\r\n // inne\r\n default:\r\n response.ErrorDescription = response.ErrorDescription || 'Brak komunikatu';\r\n if (resp.ErrorData && resp.ErrorData.status === 0) {\r\n response.ErrorDescription = 'Brak połaczenia z serwerem lub podany adres nie został znaleziony';\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return response;\r\n }\r\n\r\n\r\n private getOpts(opts?: any): any {\r\n opts = opts || {};\r\n const defs: any = { notification: true };\r\n const keys = Object.keys(defs);\r\n const dkeys = Object.keys(opts);\r\n for (const k of keys) {\r\n if (dkeys.indexOf(k) === -1) {\r\n opts[k] = defs[k];\r\n }\r\n }\r\n return opts;\r\n }\r\n\r\n\r\n /**\r\n * przygotowanie opcji\r\n */\r\n private prepareOptions(opts?: any): Observable {\r\n\r\n return new Observable(observer => {\r\n // pobranie token\r\n let xAuthToken = this.authenticationService.sessionId;\r\n\r\n const _headers = {};\r\n if (xAuthToken) {\r\n _headers['SessionId'] = xAuthToken;\r\n }\r\n\r\n // zbudowanie naglowka\r\n const headers = new HttpHeaders(_headers);\r\n\r\n // zbudowanie request options\r\n let opt = {\r\n headers: headers,\r\n withCredentials: true,\r\n observe: \"response\"\r\n };\r\n\r\n if(opts && opts['noCredentials'])\r\n {\r\n var cookies = document.cookie.split(\";\");\r\n for (var i = 0; i < cookies.length; i++)\r\n {\r\n var cookie = cookies[i];\r\n var eqPos = cookie.indexOf(\"=\");\r\n var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;\r\n if(name.indexOf('ROUTEID') >= 0)\r\n {\r\n document.cookie = name + \"=;expires=Thu, 01 Jan 1970 00:00:00 GMT\";\r\n }\r\n }\r\n }\r\n\r\n observer.next(opt);\r\n observer.complete();\r\n });\r\n }\r\n\r\n httpDelete(url: string, opts?: any): Observable {\r\n opts = this.getOpts(opts);\r\n return this.prepareOptions(opts).pipe(switchMap(options => {\r\n return new Observable(obserever => {\r\n this.$httpClient.delete(url, options).pipe(\r\n catchError(err => this.notifyHttpError(err)),\r\n // .map(response => response.json())\r\n map(response => this.responseMapper(response)))\r\n .subscribe(response => {\r\n // wystepuje blad\r\n if (response.ErrorCode) {\r\n if (opts.notification) {\r\n this.notifyError(response);\r\n }\r\n throw throwError(new CustomError(response.ErrorDescription, response.ErrorCode));\r\n }\r\n obserever.next();\r\n obserever.complete();\r\n }, (err) => obserever.error(err));\r\n }\r\n );\r\n }));\r\n }\r\n\r\n httpGet(url: string, opts?: any): Observable {\r\n opts = this.getOpts(opts);\r\n return this.prepareOptions(opts).pipe(switchMap(options => {\r\n return this.$httpClient.get(url, options).pipe(\r\n catchError(err => this.notifyHttpError(err)),\r\n // .map(response => response.json())\r\n map(response => this.responseMapper(response)),\r\n tap(response => {\r\n // wystepuje blad\r\n if (response.ErrorCode) {\r\n if (opts.notification) {\r\n this.notifyError(response);\r\n }\r\n throw throwError(new CustomError(response.ErrorDescription, response.ErrorCode));\r\n }\r\n })\r\n );\r\n }));\r\n }\r\n /**\r\n * specyficzna metoda bo nie ma pobrania Array\r\n */\r\n httpGetAll(url: string, opts?: any): Observable {\r\n opts = this.getOpts(opts);\r\n return this.prepareOptions(opts).pipe(switchMap(options => {\r\n return of([]);\r\n }));\r\n }\r\n\r\n httpPost(url: string, obj?: any, opts?: any, timeoutRequest = 60000): Observable {\r\n opts = this.getOpts(opts);\r\n return this.prepareOptions(opts).pipe(switchMap(options => {\r\n return this.$httpClient.post(url, obj, options).pipe(\r\n timeout(timeoutRequest),\r\n catchError(err => this.notifyHttpError(err)),\r\n //.map(response => console.log(response))\r\n map(response => this.responseMapper(response)),\r\n tap(response => {\r\n // wystepuje blad\r\n if (response.ErrorCode) {\r\n if (opts.notification) {\r\n this.notifyError(response);\r\n }\r\n throw throwError(new CustomError(response.ErrorDescription, response.ErrorCode));\r\n }\r\n })\r\n );\r\n }\r\n ));\r\n }\r\n\r\n httpPut(url: string, obj: any, opts?: any): Observable {\r\n opts = this.getOpts(opts);\r\n return this.prepareOptions(opts).pipe(switchMap(options => {\r\n return this.$httpClient.put(url, obj, options).pipe(\r\n catchError(err => this.notifyHttpError(err)),\r\n // .map(response => response.json())\r\n map(response => this.responseMapper(response)),\r\n tap(response => {\r\n // wystepuje blad\r\n if (response.ErrorCode) {\r\n if (opts.notification) {\r\n this.notifyError(response);\r\n }\r\n throw throwError(new CustomError(response.ErrorDescription, response.ErrorCode));\r\n }\r\n }))\r\n }));\r\n }\r\n\r\n\r\n /**\r\n * powiadomienie o bledzie\r\n */\r\n private notifyError(response: WebResponse): void {\r\n //console.error('HTTP ERROR', response); //TODO GB\r\n const error = {\r\n ErrorCode: response.ErrorCode,\r\n ErrorDescription: response.ErrorDescription,\r\n ErrorData: response\r\n };\r\n this.$msg.processAppError(error);\r\n\r\n if(response.Status == 500)\r\n this.newNavigationService.toLogout();\r\n }\r\n\r\n /**\r\n * notyfikacja bledow http\r\n */\r\n private notifyHttpError(err: any): Observable {\r\n // console.error('HTTP ERROR', err.message);//TODO GB\r\n\r\n const error = {\r\n ErrorCode: 500,\r\n ErrorDescription: err.message,\r\n ErrorData: err\r\n };\r\n this.$msg.processAppError(error);\r\n\r\n console.error(err);\r\n\r\n this.newNavigationService.toLogout();\r\n\r\n const httpError = new CustomError();\r\n httpError.message = err.message;\r\n httpError.name = err.name;\r\n httpError.code = err.status;\r\n return throwError(httpError);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Observable, map, tap, of, catchError } from 'rxjs';\r\n\r\nimport { environment } from '../../../../environments/environment';\r\n\r\nimport { AreaDetailsRequest } from '../../models/remote.request/AreaDetailsRequest';\r\nimport { SaveAreaDetailsResponse } from '../../models/remote.response/SaveAreaDetailsResponse';\r\nimport { AuthenticateUserRequest } from '../../models/remote.request/AuthenticateUserRequest';\r\nimport { AuthenticateUserResponse } from '../../models/remote.response/AuthenticateUserResponse';\r\nimport { CloseUserSessionResponse } from '../../models/remote.response/CloseUserSessionResponse';\r\nimport { DeleteAreaDetailsResponse } from '../../models/remote.response/DeleteAreaDetailsResponse';\r\nimport { GetAreaDetailsResponse } from '../../models/remote.response/GetAreaDetailsResponse';\r\nimport { AreaListFilterRequest } from '../../models/remote.request/AreaListFilterRequest';\r\nimport { GetAreaListByFilterResponse } from '../../models/remote.response/GetAreaListByFilterResponse';\r\nimport { DriverListFilterRequest } from '../../models/remote.request/DriverListFilterRequest';\r\nimport { GetDriverListForFilterResponse } from '../../models/remote.response/GetDriverListForFilterResponse';\r\nimport { GetDriverListResponse } from '../../models/remote.response/GetDriverListResponse';\r\nimport { GetEcoDrivingListResponse } from '../../models/remote.response/GetEcoDrivingListResponse';\r\nimport { GetEventActionListResponse } from '../../models/remote.response/GetEventActionListResponse';\r\nimport { GetEventDetailsResponse } from '../../models/remote.response/GetEventDetailsResponse';\r\nimport { EventListFilterRequest } from '../../models/remote.request/EventListFilterRequest';\r\nimport { GetEventListByFilterResponse } from '../../models/remote.response/GetEventListByFilterResponse';\r\nimport { GetEventNotificationResponse } from '../../models/remote.response/GetEventNotificationResponse';\r\nimport { GetProfileContactDataResponse } from '../../models/remote.response/GetProfileContactDataResponse';\r\nimport { GetProfileUserDataResponse } from '../../models/remote.response/GetProfileUserDataResponse';\r\nimport { GetRouteAvailableDatesResponse } from '../../models/remote.response/GetRouteAvailableDatesResponse';\r\nimport { RouteListFilterRequest } from '../../models/remote.request/RouteListFilterRequest';\r\nimport { GetRouteListByFilterResponse } from '../../models/remote.response/GetRouteListByFilterResponse';\r\nimport { SMSListFilterRequest } from '../../models/remote.request/SMSListFilterRequest';\r\nimport { GetRouteStatsByFilterResponse } from '../../models/remote.response/GetRouteStatsByFilterResponse';\r\nimport { TagsListFilterRequest } from '../../models/remote.request/TagsListFilterRequest';\r\nimport { GetTagsListByFilterResponse, IUntaggedAreas } from '../../models/remote.response/GetTagsListByFilterResponse';\r\nimport { VehicleListFilterRequest } from '../../models/remote.request/VehicleListFilterRequest';\r\nimport { GetVehicleListByFilterResponse } from '../../models/remote.response/GetVehicleListByFilterResponse';\r\nimport { GetSMSListByFilterResponse } from '../../models/remote.response/GetSMSListByFilterResponse';\r\nimport { GetVehicleListResponse } from '../../models/remote.response/GetVehicleListResponse';\r\nimport { GetVehicleParamListResponse } from '../../models/remote.response/GetVehicleParamListResponse';\r\nimport { ResetEventNotificationResponse } from '../../models/remote.response/ResetEventNotificationResponse';\r\nimport { ResetPasswordResponse } from '../../models/remote.response/ResetPasswordResponse';\r\nimport { SendSMSResponse } from '../../models/remote.response/SendSMSResponse';\r\nimport { SendSMSRequest } from '../../models/remote.request/SendSMSRequest';\r\nimport { SetPasswordRequest } from '../../models/remote.request/SetPasswordRequest';\r\nimport { RemoteDataService } from '../remote.data/remote-data.service';\r\nimport { GetSystemUpdateInfoListResponse } from '../../models/remote.response/GetSystemUpdateInfoListResponse';\r\nimport { SetUserEmailRequest } from '../../models/remote.request/SetUserEmailRequest';\r\nimport { SetUserEmailResponse } from '../../models/remote.response/SetUserEmailResponse';\r\nimport { SetSendToETollRequest } from '../../models/remote.request/SetSendToETollRequest';\r\nimport { SetSendToETollResponse } from '../../models/remote.response/SetSendToETollResponse';\r\nimport { GetSendToETollResponse } from '../../models/remote.response/GetSendToETollResponse';\r\nimport { UpdateVehicleNameResponse } from '../../models/remote.response/UpdateVehicleNameResponse';\r\nimport { UpdateVehicleNameRequest } from '../../models/remote.request/UpdateVehicleNameRequest';\r\nimport { IWebAccessService } from '../../interfaces/IWebAccessService';\r\nimport { SetProfileUserPasswordResponse } from '../../models/remote.response/SetProfileUserPasswordResponse';\r\n\r\nimport startOfDay from 'date-fns/startOfDay';\r\nimport endOfDay from 'date-fns/endOfDay';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { IGetLockVehicleState, ISetLockVehicleState, IVehicleHistoryResponse } from '@commons/models/remote.request/VehicleLock';\r\nimport { PermissionService } from '@shared/services/permission.service';\r\nimport { IMaxFuelVehicle, IVehicleSentGeo, SetSentGeoStatusPostData } from '@src/app/interfaces/vehicle.interface';\r\nimport { WebResponse } from '@commons/models/remote.response/WebResponse';\r\nimport { IRiskCategory } from '@commons/interfaces/vehicle.interface';\r\n\r\n@Injectable()\r\nexport class WebAccessService implements IWebAccessService {\r\n\r\n private readonly baseUrl = environment.hammerApiUrl;\r\n\r\n constructor(\r\n private $service: RemoteDataService,\r\n private permissionService: PermissionService,\r\n ) {}\r\n\r\n AddAreaDetails(area: AreaDetailsRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/AddAreaDetails';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, area).pipe(map(x => x));\r\n }\r\n AuthenticateUser(request: AuthenticateUserRequest): Observable {\r\n request.Platform = 'web';\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/AuthenticateUser';\r\n const noCredentials = request.DB ? true : false;\r\n const headers = new HttpHeaders({ \r\n ClientName: request.DB || '',\r\n });\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, request, { notification: false, noCredentials: noCredentials, headers })\r\n .pipe(map(x => x));\r\n }\r\n CloseUserSession(sessionId: string): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/CloseUserSession';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, { SessionId: sessionId }).pipe(map(x => {}));\r\n }\r\n DeleteAreaDetails(areaId: number): Observable {\r\n\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/DeleteAreaDetails/' + areaId;\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpDelete(url).pipe(map(x => {}));\r\n }\r\n GetAreaDetails(areaId: number): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetAreaDetails/' + areaId;\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpGet(url).pipe(map(x => x));\r\n }\r\n GetAreaListByFilter(filter: AreaListFilterRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetAreaListByFilter';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, filter).pipe(map(x => x));\r\n }\r\n GetDriverIdListForFilter(filter: DriverListFilterRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetDriverIdListForFilter';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, filter).pipe(map(x => x));\r\n }\r\n GetDriverList(): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetDriverList';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpGet(url).pipe(map(x => x));\r\n }\r\n GetEcoDrivingList(driverId: number): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetEcoDrivingList/' + driverId;\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpGet(url).pipe(map(x => x));\r\n }\r\n GetEventActionList(eventType: number): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetEventActionList';\r\n const filter = {\r\n EventType: eventType\r\n };\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, filter).pipe(map(x => x));\r\n }\r\n GetEventDetails(eventId: number): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetEventDetails?eventId=' + eventId;\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpGet(url).pipe(map(x => x));\r\n }\r\n GetEventListByFilter(filter: EventListFilterRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetEventListByFilter';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, filter).pipe(map(x => {\r\n const r = x;\r\n r.EventType = filter.EventType;\r\n return r;\r\n }));\r\n }\r\n GetEventNotification(): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetEventNotification';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpGet(url).pipe(map(x => x));\r\n }\r\n GetSystemUpdateInfoList(): Observable {\r\n return new Observable(observer => {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetSystemUpdateInfoList';\r\n\r\n // // przesłanie do usługi\r\n // this.$service.httpGet(url)\r\n // .map(result => result)\r\n // .subscribe(result => {\r\n // observer.next(result);\r\n // observer.complete();\r\n // });\r\n const result = {} as GetSystemUpdateInfoListResponse;\r\n result.Result = [];\r\n observer.next(result);\r\n observer.complete();\r\n });\r\n }\r\n GetProfileContactData(notify?: boolean): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetProfileContactData';\r\n notify = notify || true;\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpGet(url, { notification: notify }).pipe(map(x => x));\r\n }\r\n GetProfileUserData(notify?: boolean): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetProfileUserData';\r\n notify = notify || true;\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, { notification: notify }).pipe(map(x => x));\r\n }\r\n\r\n\r\n GetRouteAvailableDates(vehicleId: number, year: number, month: number): Observable {\r\n\r\n // url do pobrania\r\n const url = environment.hammerApiUrl +\r\n '/GetRouteAvailableDates/' + vehicleId + '/' + year + '/' + month;\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpGet(url).pipe(\r\n tap((x: any) => x.Result = x.Result.MyProperty),\r\n map(x => x)\r\n );\r\n }\r\n\r\n GetRouteListByFilter(filter: RouteListFilterRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetRouteListByFilter';\r\n filter.DateFrom = startOfDay(filter.DateFrom);\r\n filter.DateTo = endOfDay(filter.DateTo);\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, { VehicalID: filter.VehicleId, DateFrom: filter.DateFrom, DateTo: filter.DateTo })\r\n .pipe(map(x => x));\r\n }\r\n GetRouteStatsByFilter(filter: RouteListFilterRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetRouteStatsByFilter';\r\n filter.DateFrom = startOfDay(filter.DateFrom);\r\n filter.DateTo = endOfDay(filter.DateTo);\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, { VehicalID: filter.VehicleId, DateFrom: filter.DateFrom, DateTo: filter.DateTo })\r\n .pipe(map(x => x));\r\n }\r\n GetSMSListByFilter(filter: SMSListFilterRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetSMSListByFilter';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, filter, { notification: false })\r\n .pipe(map(x => x));\r\n }\r\n GetTagsListByFilter(filter: TagsListFilterRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetTagsListByFilter';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, filter)\r\n .pipe(map(x => x));\r\n }\r\n GetUntaggedAreas(filters: { Phrase: string } = { Phrase: '' }): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetUntaggedAreas';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, filters)\r\n .pipe(map(x => x));\r\n }\r\n GetVehicleIdListByFilter(filter: VehicleListFilterRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetVehicleIdListByFilter';\r\n const data = {...(filter || {})};\r\n\r\n //GB te 3 linijki to obejście błędu https://tekomtechnologia.atlassian.net/browse/MC-5117\r\n if (Object.keys(filter).length > 0) {\r\n (data as any).TachoStatuses = [];\r\n (data as any).ETollStatuses = [];\r\n (data as any).SentGeoStatus = [];\r\n }\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, data)\r\n .pipe(map(x => x));\r\n }\r\n GetVehicleList(): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetVehicleList';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpGet(url)\r\n .pipe(map(x => x));\r\n }\r\n GetVehicleParamList(): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/GetVehicleParamList';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpGet(url)\r\n .pipe(map(x => x));\r\n }\r\n ResetEventNotification(): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/ResetEventNotification';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url).pipe(map(x => x));\r\n }\r\n resetPassword(email: string): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/ResetPassword';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, { Email: email, Prod: environment.production }, { notification: false })\r\n .pipe(map(x => x));\r\n }\r\n ResetPasswordConfirm(passwordChange: SetPasswordRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/ResetPasswordConfirm';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, passwordChange, { notification: false })\r\n .pipe(map(x => x));\r\n }\r\n SendSMS(request: SendSMSRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/SendSMS';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, request)\r\n .pipe(map(x => x));\r\n }\r\n SetProfileUserPassword(passwordChange: SetPasswordRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/SetProfileUserPassword';\r\n\r\n const _passwordChange = JSON.parse(JSON.stringify(passwordChange));\r\n _passwordChange.Prod = environment.production;\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, _passwordChange, { notification: false })\r\n .pipe(map(x => x));\r\n }\r\n SetUserEmail(request: SetUserEmailRequest): Observable {\r\n const url = environment.hammerApiUrl + '/SetUserEmail';\r\n\r\n return this.$service.httpPost(url, request)\r\n .pipe(map(x => x));\r\n }\r\n UpdateAreaDetails(area: AreaDetailsRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/UpdateAreaDetails';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPut(url, area)\r\n .pipe(map(x => x));\r\n }\r\n\r\n SetSendToEToll(sendToEToll: SetSendToETollRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/SetSendToEToll';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPost(url, sendToEToll)\r\n .pipe(map(x => x));\r\n }\r\n GetSendToEToll(idVehice: number): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl +\r\n '/GetSendToEToll/' + idVehice;\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpGet(url)\r\n .pipe(map(x => x));\r\n }\r\n\r\n UpdateVehicleName(updateVehicleNameRequest: UpdateVehicleNameRequest): Observable {\r\n // url do pobrania\r\n const url = environment.hammerApiUrl + '/UpdateVehicleName';\r\n\r\n // przesłanie do usługi\r\n return this.$service.httpPut(url, updateVehicleNameRequest)\r\n .pipe(map(x => x));\r\n }\r\n\r\n SetLockVehicleState(data: ISetLockVehicleState): Observable {\r\n const url = environment.hammerApiUrl + '/SetIgnitionBlocker';\r\n const timeout2Minutes = 120000;\r\n return this.$service.httpPost(url, data, null, timeout2Minutes);\r\n }\r\n\r\n GetLockVehicleState(vehicleId: number): Observable {\r\n const url = environment.hammerApiUrl + `/GetVehicleIgnitionBlockerDetails/${vehicleId}`;\r\n return this.$service.httpGet(url).pipe(map(item => item.Result));\r\n }\r\n\r\n GetVehicleIgnitionBlockerDetailsList(): Observable {\r\n if (this.permissionService.hasBlockerRead() || this.permissionService.hasBlockerReadWrite()) {\r\n const url = environment.hammerApiUrl + `/GetVehicleIgnitionBlockerDetailsList`;\r\n return this.$service.httpGet(url).pipe(\r\n map(item => item.Result),\r\n catchError(() => of({ BlockerInfos: [] })),\r\n );\r\n }\r\n return of({ BlockerInfos: [] });\r\n }\r\n\r\n GetIgnitionBlockerAuditTrailForVehicle(vehicleId: number): Observable {\r\n const url = environment.hammerApiUrl + `/GetIgnitionBlockerAuditTrailForVehicle/${vehicleId}`;\r\n return this.$service.httpGet(url).pipe(map(item => item.Result)); \r\n }\r\n\r\n public GetVehicleFuelCapacity(vehicleId: number): Observable {\r\n const url = environment.hammerApiUrl + `/GetVehicleFuelCapacity/${vehicleId}`;\r\n return this.$service.httpGet(url).pipe(map(item => item.Result)); \r\n }\r\n\r\n public GetSendToSentGeo(vehicleId: number): Observable {\r\n const url = environment.hammerApiUrl + `/GetSendToSentGeo/${vehicleId}`;\r\n return this.$service.httpGet(url).pipe(map(item => item.Result)); \r\n }\r\n\r\n public SetSendToSentGeo(data: SetSentGeoStatusPostData): Observable> {\r\n const url = environment.hammerApiUrl + `/SetSendToSentGeo`;\r\n return this.$service.httpPost(url, data);\r\n }\r\n\r\n public GetVehicleRoamingRiskCategory(vehicleId: number): Observable {\r\n const url = environment.hammerApiUrl + `/GetVehicleRoamingInfo/${vehicleId}`;\r\n return this.$service.httpGet(url).pipe(map(item => item.Result)); \r\n }\r\n\r\n}\r\n","import { AbstractControl, ValidationErrors, FormControl } from '@angular/forms';\r\n\r\n\r\nexport class CustomValidators {\r\n public static passwordStrength(control: AbstractControl): ValidationErrors {\r\n\r\n const pattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{8,}$/;\r\n const value = control.value;\r\n\r\n if (value && pattern.test(value) !== true) {\r\n return { 'weekPassword': true };\r\n }\r\n\r\n return null!;\r\n }\r\n\r\n public static isDate(control: FormControl): ValidationErrors {\r\n const value = control.value;\r\n if (value) {\r\n if (value.toString() === 'Invalid Date') {\r\n return { 'isNotDate': true };\r\n }\r\n try {\r\n const d = new Date(value.valueOf());\r\n } catch (e) {\r\n return { 'isNotDate': true };\r\n }\r\n }\r\n return null!;\r\n }\r\n}\r\n\r\n","import {Subscription} from \"rxjs\";\r\n\r\nexport class BaseComponent {\r\n\r\n constructor() {\r\n }\r\n\r\n private readonly subscriptions: Subscription[] = [];\r\n\r\n addToUnsubscribe(subscription: Subscription) {\r\n this.subscriptions.push(subscription);\r\n }\r\n\r\n unsubscribeAll(): void {\r\n this.subscriptions.forEach(x => x.unsubscribe());\r\n }\r\n}\r\n\r\n","\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.less']\r\n})\r\nexport class ButtonComponent implements OnInit {\r\n\r\n @Input() isLoading = false;\r\n @Input() label = '';\r\n @Input() isFullWidth = false;\r\n @Input() innerTextClasses = 'text-base';\r\n @Input() spinnerClasses = 'my-3';\r\n @Input() isActive = false;\r\n\r\n @Output() click = new EventEmitter();\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onClick() {\r\n if (!this.isLoading)\r\n this.click.emit();\r\n }\r\n\r\n}\r\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild} from '@angular/core';\r\nimport {MatTooltip} from \"@angular/material/tooltip\";\r\n\r\n@Component({\r\n selector: 'sm-copy-to-clipboard',\r\n templateUrl: './copy-to-clipboard.component.html',\r\n})\r\nexport class CopyToClipboardComponent implements OnInit, OnChanges {\r\n\r\n private readonly tooltipTimeout = 2000;\r\n\r\n @Input() data = '';\r\n @Input() isAutoCopy = false;\r\n @Input() classes = 'w-6 h-6 bg-white tk-i-copy-blue-not-hover tk-i-copy-circle-gray-hover';\r\n\r\n @ViewChild(MatTooltip, {static: true}) matTooltip?: MatTooltip;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.isAutoCopy)\r\n setTimeout(() => this.onCopyLink(this.matTooltip!), 500);\r\n }\r\n\r\n onCopyLink(tooltip: MatTooltip) {\r\n navigator.clipboard.writeText(this.data);\r\n\r\n tooltip.disabled = false;\r\n tooltip.show();\r\n setTimeout(() => {\r\n tooltip.disabled = true;\r\n }, this.tooltipTimeout);\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","import {Component, Input, OnInit} from '@angular/core';\r\n\r\nimport {LanguageService} from \"@shared/services/language.service\";\r\n\r\n@Component({\r\n selector: 'am-select-language',\r\n templateUrl: './select-language.component.html',\r\n})\r\nexport class SelectLanguageComponent implements OnInit {\r\n\r\n @Input() isVerticalDisplay = false;\r\n\r\n constructor(\r\n public languageService: LanguageService\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onChangeLanguage(lang: string) {\r\n this.languageService.current = lang;\r\n\r\n if (this.isVerticalDisplay) {\r\n\r\n }\r\n // else\r\n // window.location.reload();\r\n }\r\n\r\n isSelected(lang: string) {\r\n return this.languageService.current === lang;\r\n }\r\n\r\n getIconClass(lang: string): string {\r\n return 'tk-i-lang-' + lang;\r\n }\r\n\r\n}\r\n","export class AuthenticationRoutesNames {\r\n\r\n static readonly authenticationModuleName = 'authentication/';\r\n\r\n static readonly welcome = 'welcome';\r\n\r\n static readonly share = 'share';\r\n static readonly handover = 'handover';\r\n\r\n static readonly login = 'login';\r\n static readonly selectDatabase = 'select-database';\r\n\r\n static readonly createAccount = 'create-account';\r\n static readonly createAccountConfirmation = 'create-account-confirmation';\r\n\r\n static readonly resetPassword = 'reset-password';\r\n static readonly resetPasswordConfirmation = 'reset-password-confirmation';\r\n\r\n static readonly setNewPassword = 'set-new-password';\r\n static readonly setNewPasswordConfirmation = 'set-new-password-confirmation';\r\n\r\n static readonly logout = 'logout';\r\n\r\n static getFullName(namePart: string) {\r\n return AuthenticationRoutesNames.authenticationModuleName + namePart;\r\n }\r\n}\r\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport const defaultThrottleConfig = {\n leading: true,\n trailing: false,\n};\nexport function throttle(durationSelector, config = defaultThrottleConfig) {\n return operate((source, subscriber) => {\n const { leading, trailing } = config;\n let hasValue = false;\n let sendValue = null;\n let throttled = null;\n let isComplete = false;\n const endThrottling = () => {\n throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe();\n throttled = null;\n if (trailing) {\n send();\n isComplete && subscriber.complete();\n }\n };\n const cleanupThrottling = () => {\n throttled = null;\n isComplete && subscriber.complete();\n };\n const startThrottle = (value) => (throttled = innerFrom(durationSelector(value)).subscribe(createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));\n const send = () => {\n if (hasValue) {\n hasValue = false;\n const value = sendValue;\n sendValue = null;\n subscriber.next(value);\n !isComplete && startThrottle(value);\n }\n };\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n sendValue = value;\n !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));\n }, () => {\n isComplete = true;\n !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();\n }));\n });\n}\n","import { Directive, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\n\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { throttleTime } from 'rxjs/operators';\r\n\r\n@Directive({\r\n selector: '[appPreventDoubleClick]'\r\n})\r\nexport class PreventDoubleClickDirective implements OnInit, OnDestroy {\r\n @Input()\r\n throttleTime = 500;\r\n\r\n @Output()\r\n throttledClick = new EventEmitter();\r\n\r\n private clicks = new Subject();\r\n private subscription?: Subscription;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.subscription = this.clicks.pipe(\r\n throttleTime(this.throttleTime)\r\n ).subscribe(e => this.emitThrottledClick(e));\r\n }\r\n\r\n emitThrottledClick(e: any) {\r\n this.throttledClick.emit(e);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n clickEvent(event: any) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.clicks.next(event);\r\n }\r\n}\r\n","import { asyncScheduler } from '../scheduler/async';\nimport { defaultThrottleConfig, throttle } from './throttle';\nimport { timer } from '../observable/timer';\nexport function throttleTime(duration, scheduler = asyncScheduler, config = defaultThrottleConfig) {\n const duration$ = timer(duration, scheduler);\n return throttle(() => duration$, config);\n}\n","import {ErrorHandler, isDevMode} from \"@angular/core\";\r\n\r\nimport {Subject} from \"rxjs\";\r\n\r\nexport class AppErrorHandler implements ErrorHandler {\r\n static $onError = new Subject();\r\n static errorDisplayed = false;\r\n\r\n handleError(error: any) {\r\n if(isDevMode())\r\n console.error('handleError' + error);\r\n\r\n AppErrorHandler.$onError.next(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport {environment} from \"@src/environments/environment\";\r\nimport {BaseService} from \"@shared/services/base.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseHttpService extends BaseService {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected getUrl(urlEnding: string): string {\r\n return environment.hammerApiUrl + urlEnding;\r\n }\r\n\r\n protected getAuthUrl(urlEnding: string): string {\r\n return environment.nostromoAuthApiUrl + urlEnding;\r\n }\r\n\r\n protected getNewApiUrl(urlEnding: string): string {\r\n return environment.genesisApiUrl + urlEnding;\r\n }\r\n}\r\n","const list = [\n\t// Native ES errors https://262.ecma-international.org/12.0/#sec-well-known-intrinsic-objects\n\tEvalError,\n\tRangeError,\n\tReferenceError,\n\tSyntaxError,\n\tTypeError,\n\tURIError,\n\n\t// Built-in errors\n\tglobalThis.DOMException,\n\n\t// Node-specific errors\n\t// https://nodejs.org/api/errors.html\n\tglobalThis.AssertionError,\n\tglobalThis.SystemError,\n]\n\t// Non-native Errors are used with `globalThis` because they might be missing. This filter drops them when undefined.\n\t.filter(Boolean)\n\t.map(\n\t\tconstructor => [constructor.name, constructor],\n\t);\n\nconst errorConstructors = new Map(list);\n\nexport default errorConstructors;\n","import errorConstructors from './error-constructors.js';\n\nexport class NonError extends Error {\n\tname = 'NonError';\n\n\tconstructor(message) {\n\t\tsuper(NonError._prepareSuperMessage(message));\n\t}\n\n\tstatic _prepareSuperMessage(message) {\n\t\ttry {\n\t\t\treturn JSON.stringify(message);\n\t\t} catch {\n\t\t\treturn String(message);\n\t\t}\n\t}\n}\n\nconst commonProperties = [\n\t{\n\t\tproperty: 'name',\n\t\tenumerable: false,\n\t},\n\t{\n\t\tproperty: 'message',\n\t\tenumerable: false,\n\t},\n\t{\n\t\tproperty: 'stack',\n\t\tenumerable: false,\n\t},\n\t{\n\t\tproperty: 'code',\n\t\tenumerable: true,\n\t},\n\t{\n\t\tproperty: 'cause',\n\t\tenumerable: false,\n\t},\n];\n\nconst toJsonWasCalled = Symbol('.toJSON was called');\n\nconst toJSON = from => {\n\tfrom[toJsonWasCalled] = true;\n\tconst json = from.toJSON();\n\tdelete from[toJsonWasCalled];\n\treturn json;\n};\n\nconst getErrorConstructor = name => errorConstructors.get(name) ?? Error;\n\n// eslint-disable-next-line complexity\nconst destroyCircular = ({\n\tfrom,\n\tseen,\n\tto,\n\tforceEnumerable,\n\tmaxDepth,\n\tdepth,\n\tuseToJSON,\n\tserialize,\n}) => {\n\tif (!to) {\n\t\tif (Array.isArray(from)) {\n\t\t\tto = [];\n\t\t} else if (!serialize && isErrorLike(from)) {\n\t\t\tconst Error = getErrorConstructor(from.name);\n\t\t\tto = new Error();\n\t\t} else {\n\t\t\tto = {};\n\t\t}\n\t}\n\n\tseen.push(from);\n\n\tif (depth >= maxDepth) {\n\t\treturn to;\n\t}\n\n\tif (useToJSON && typeof from.toJSON === 'function' && from[toJsonWasCalled] !== true) {\n\t\treturn toJSON(from);\n\t}\n\n\tconst continueDestroyCircular = value => destroyCircular({\n\t\tfrom: value,\n\t\tseen: [...seen],\n\t\tforceEnumerable,\n\t\tmaxDepth,\n\t\tdepth,\n\t\tuseToJSON,\n\t\tserialize,\n\t});\n\n\tfor (const [key, value] of Object.entries(from)) {\n\t\t// eslint-disable-next-line node/prefer-global/buffer\n\t\tif (typeof Buffer === 'function' && Buffer.isBuffer(value)) {\n\t\t\tto[key] = '[object Buffer]';\n\t\t\tcontinue;\n\t\t}\n\n\t\t// TODO: Use `stream.isReadable()` when targeting Node.js 18.\n\t\tif (value !== null && typeof value === 'object' && typeof value.pipe === 'function') {\n\t\t\tto[key] = '[object Stream]';\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof value === 'function') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!value || typeof value !== 'object') {\n\t\t\tto[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!seen.includes(from[key])) {\n\t\t\tdepth++;\n\t\t\tto[key] = continueDestroyCircular(from[key]);\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tto[key] = '[Circular]';\n\t}\n\n\tfor (const {property, enumerable} of commonProperties) {\n\t\tif (typeof from[property] !== 'undefined' && from[property] !== null) {\n\t\t\tObject.defineProperty(to, property, {\n\t\t\t\tvalue: isErrorLike(from[property]) ? continueDestroyCircular(from[property]) : from[property],\n\t\t\t\tenumerable: forceEnumerable ? true : enumerable,\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn to;\n};\n\nexport function serializeError(value, options = {}) {\n\tconst {\n\t\tmaxDepth = Number.POSITIVE_INFINITY,\n\t\tuseToJSON = true,\n\t} = options;\n\n\tif (typeof value === 'object' && value !== null) {\n\t\treturn destroyCircular({\n\t\t\tfrom: value,\n\t\t\tseen: [],\n\t\t\tforceEnumerable: true,\n\t\t\tmaxDepth,\n\t\t\tdepth: 0,\n\t\t\tuseToJSON,\n\t\t\tserialize: true,\n\t\t});\n\t}\n\n\t// People sometimes throw things besides Error objects…\n\tif (typeof value === 'function') {\n\t\t// `JSON.stringify()` discards functions. We do too, unless a function is thrown directly.\n\t\treturn `[Function: ${value.name ?? 'anonymous'}]`;\n\t}\n\n\treturn value;\n}\n\nexport function deserializeError(value, options = {}) {\n\tconst {maxDepth = Number.POSITIVE_INFINITY} = options;\n\n\tif (value instanceof Error) {\n\t\treturn value;\n\t}\n\n\tif (isMinimumViableSerializedError(value)) {\n\t\tconst Error = getErrorConstructor(value.name);\n\t\treturn destroyCircular({\n\t\t\tfrom: value,\n\t\t\tseen: [],\n\t\t\tto: new Error(),\n\t\t\tmaxDepth,\n\t\t\tdepth: 0,\n\t\t\tserialize: false,\n\t\t});\n\t}\n\n\treturn new NonError(value);\n}\n\nexport function isErrorLike(value) {\n\treturn Boolean(value)\n\t&& typeof value === 'object'\n\t&& 'name' in value\n\t&& 'message' in value\n\t&& 'stack' in value;\n}\n\nfunction isMinimumViableSerializedError(value) {\n\treturn Boolean(value)\n\t&& typeof value === 'object'\n\t&& 'message' in value\n\t&& !Array.isArray(value);\n}\n\nexport {default as errorConstructors} from './error-constructors.js';\n","import { HttpClient } from '@angular/common/http';\r\nimport {Injectable} from '@angular/core';\r\nimport {Location} from \"@angular/common\";\r\n\r\nimport {Observable, of} from \"rxjs\";\r\n\r\nimport {DeviceDetectorService} from \"ngx-device-detector\";\r\n\r\nimport {serializeError} from 'serialize-error';\r\n\r\nimport packageJson from \"../../../../package.json\";\r\n\r\nimport {WebResponse} from \"@commons/models/remote.response/WebResponse\";\r\n\r\nimport {BaseHttpService} from \"@shared/services-http/base-http.service\";\r\nimport {UserHttpService} from \"@shared/services-http/user-http.service\";\r\nimport {SettingsService} from \"@shared/services/settings.service\";\r\nimport {AuthenticationService} from \"@shared/services/authentication/authentication.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LogInApiHttpService extends BaseHttpService {\r\n\r\n private readonly version: string = packageJson.version;\r\n private readonly errorKeyLength = 50;\r\n private readonly sessionErrors = new Map();\r\n private readonly logMethodUrl = '/LogInformation';\r\n\r\n private lastRequest = '';\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private userHttpService: UserHttpService,\r\n private deviceDetectorService: DeviceDetectorService,\r\n private location: Location,\r\n private settingsService: SettingsService,\r\n private authenticationService: AuthenticationService\r\n ) {\r\n super();\r\n }\r\n\r\n //informacja zapisywana jest w plikach logów api o nazwie RequestLogs\r\n logInformation(information: string): Observable {\r\n return this.log(information);\r\n }\r\n\r\n //informacja zapisywana jest w plikach logów api o nazwie RequestLogs\r\n logError(error: any): Observable {\r\n const errorString = JSON.stringify(serializeError(error));\r\n const errorKey = this.getErrorKey(errorString);\r\n if (this.isKnowError(errorString) || this.sessionErrors.has(errorKey)) {\r\n return of();\r\n }\r\n this.sessionErrors.set(errorKey, error);\r\n return this.log(errorString);\r\n }\r\n\r\n setLastRequest(serializedRequest: string) {\r\n if (!serializedRequest.includes(this.logMethodUrl)) {\r\n this.lastRequest = serializedRequest;\r\n }\r\n }\r\n\r\n private log(information: string): Observable {\r\n const finalInformation = this.getFinalInformation(information);\r\n const url = this.getUrl(this.logMethodUrl);\r\n return this.httpClient.post(url, {Information: finalInformation});\r\n }\r\n\r\n private isKnowError(error: string): boolean {\r\n const knowErrors = [\r\n \"WebSocket is already in CLOSING or CLOSED state.\",\r\n '{}'\r\n ];\r\n const result = knowErrors.some(known => error.toLowerCase().startsWith(known.toLowerCase()));\r\n return result;\r\n }\r\n\r\n private getErrorKey(information: string) {\r\n return 'error-' + information.slice(0, this.errorKeyLength);\r\n }\r\n\r\n private getFinalInformation(information: string): string {\r\n const client = this.authenticationService.currentClient;\r\n const sessionId = this.authenticationService.sessionId;\r\n const user = this.userHttpService.userViewModel?.toString();\r\n const machineId = this.settingsService.getMachineId();\r\n const device = `${this.deviceDetectorService.browser} ${this.deviceDetectorService.browser_version}`;\r\n const url = this.location.path(true);\r\n const finalInformation =\r\n ` v.${this.version} | sessionId=${sessionId} | machineId=${machineId} | ${client} | ${user} | ${device} | ${url} | ${information} | ${this.lastRequest}`;\r\n\r\n return finalInformation;\r\n }\r\n\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\nimport {map, mergeMap, Observable, of, tap} from \"rxjs\";\r\n\r\nimport {Vehicle} from \"@commons/models/domain/Vehicle\";\r\nimport {VehicleControlIndicator} from \"@commons/models/domain/VehicleControlIndicator\";\r\n\r\nimport {BaseHttpService} from \"./base-http.service\";\r\nimport {GetRouteDetailsListResponse} from \"@shared/http-responses/get-route-details-list.response\";\r\nimport { IBlockerInfo } from \"@commons/models/remote.request/VehicleLock\";\r\nimport { WebAccessService } from \"@commons/services/web.access/web-access.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NewVehiclesHttpService extends BaseHttpService {\r\n public vehiclesBlockerInfos: Map = new Map();\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private webAccessService: WebAccessService,\r\n ) {\r\n super();\r\n }\r\n\r\n private convertVehicleInfosToMap(array: IBlockerInfo[]): Map {\r\n const map = new Map();\r\n array.forEach(item => {\r\n map.set(`${item.VehicleId}${item.OutName}`, item);\r\n });\r\n return map;\r\n }\r\n\r\n getRouteDetailsList(routeIds: number[]): Observable {\r\n return this.httpClient.post(this.getUrl('/GetRouteDetailsList'), {routeIds: routeIds})\r\n .pipe(map(x => (x as any).Result.Routes as GetRouteDetailsListResponse[]));\r\n }\r\n\r\n getById(vehicleId: number): Observable {\r\n return this.httpClient.get(this.getUrl('/GetVehicle/' + vehicleId))\r\n .pipe(map((v) => this.getVehicleFromGetByIdResponse(v)))\r\n }\r\n\r\n getVehiclesWithIndicators(loadOnlyVehicles: boolean): Observable {\r\n return new Observable(observer => {\r\n this.httpClient.get(this.getUrl('/GetVehicleList'))\r\n .pipe(\r\n mergeMap((res) =>\r\n this.webAccessService.GetVehicleIgnitionBlockerDetailsList().pipe(\r\n tap((data) => {\r\n this.vehiclesBlockerInfos = this.convertVehicleInfosToMap(data.BlockerInfos);\r\n }),\r\n map(() => res),\r\n )\r\n ),\r\n map(result => {\r\n if (this.vehiclesBlockerInfos.size) {\r\n result.Result.Result.forEach((item: any) => {\r\n item.blockerParametrId = this.vehiclesBlockerInfos.get(`${item.Id}OUT1`)?.ParameterId;\r\n item.blockerParametrIdOut2 = this.vehiclesBlockerInfos.get(`${item.Id}OUT2`)?.ParameterId;\r\n });\r\n }\r\n return result.Result.Result as Vehicle[];\r\n })\r\n )\r\n .subscribe(vehicles => {\r\n vehicles.forEach(v => this.setVehicleLocation(v));\r\n if (loadOnlyVehicles) {\r\n observer.next(vehicles);\r\n observer.complete();\r\n } else {\r\n this.getAndSetIndicators(vehicles).subscribe(() => {\r\n observer.next(vehicles);\r\n observer.complete();\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n private getAndSetIndicators(vehicles: Vehicle[]): Observable {\r\n return this.httpClient.get(this.getUrl('/GetVehicleParamList'))\r\n .pipe(\r\n tap(result => this.setVehiclesIndicators(vehicles, result.Result.Result as VehicleControlIndicator[])),\r\n map(result => result.Result)\r\n );\r\n }\r\n\r\n private getVehicleFromGetByIdResponse(response: any): Vehicle {\r\n const vehicle = response.Result.Vehicle as Vehicle;\r\n this.setVehicleLocation(vehicle);\r\n\r\n const indicators = response.Result.Indicators;\r\n if (!indicators || indicators.length == 0) {\r\n console.warn('No indicators for vehicle get by id=' + vehicle.Id);\r\n return vehicle;\r\n }\r\n\r\n vehicle.ControlIndicators = vehicle.ControlIndicators ?? [];\r\n for (let i = 0; i < indicators.length; i++) {\r\n const indicator = indicators[i];\r\n indicator.Group = this.findIndicatorGroup(indicator.Tp);\r\n vehicle.ControlIndicators.push(indicator);\r\n }\r\n\r\n return vehicle;\r\n }\r\n\r\n private setVehicleLocation(vehicle: Vehicle) {\r\n if (vehicle.LL) {\r\n const lat = parseFloat((vehicle.LL.Lt + '').replace(',', '.'));\r\n if (lat && lat !== 361) {\r\n vehicle.LL.Lt = lat;\r\n }\r\n\r\n const lng = parseFloat((vehicle.LL.Ln + '').replace(',', '.'));\r\n if (lng && lng !== 361) {\r\n vehicle.LL.Ln = lng;\r\n }\r\n }\r\n }\r\n\r\n private setVehiclesIndicators(vehicles: Vehicle[], indicators: VehicleControlIndicator[]) {\r\n for (let i = indicators.length - 1; i >= 0; i--) {\r\n const indicator = indicators[i];\r\n if (indicator == null)\r\n continue;\r\n\r\n // grupowanie\r\n indicator.Group = this.findIndicatorGroup(indicator.Tp);\r\n\r\n // przepisanie do pojazdu\r\n const vehicle = vehicles.find(x => x.Id == indicator.VI);\r\n if (vehicle) {\r\n vehicle.ControlIndicators = vehicle.ControlIndicators || [];\r\n if (indicator) {\r\n vehicle.ControlIndicators.push(indicator);\r\n }\r\n\r\n // status\r\n if (indicator.Tp === 1000 && indicator.LV) {\r\n vehicle.St = indicator.LV.V;\r\n if (indicator.LV.T) {\r\n vehicle.LastUpdated = indicator.LV.LT;\r\n vehicle.LastUpdatedFrom = 'INDICATORS_LOAD';\r\n }\r\n }\r\n\r\n // gelokacja\r\n if (indicator.Tp === 8 && indicator.LV) {\r\n const lat = parseFloat((indicator.LV.V.Lat + '').replace(',', '.'));\r\n if (lat && lat !== 361) {\r\n (vehicle as any).LL.Lt = lat;\r\n }\r\n const lng = parseFloat((indicator.LV.V.Lon + '').replace(',', '.'));\r\n if (lng && lng !== 361) {\r\n (vehicle as any).LL.Ln = lng;\r\n }\r\n // MCW-296\r\n if (indicator.LV.T) {\r\n vehicle.LastUpdated = indicator.LV.T;\r\n vehicle.LastUpdatedFrom = 'INDICATORS_GEO_LOAD';\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n private findIndicatorGroup(paramType: any): number | undefined {\r\n for (let i = 0; i <= this.groups.length - 1; i++) {\r\n const group = this.groups[i];\r\n if (paramType === group.Type) {\r\n return group.Group;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n private readonly groups = [\r\n {Type: 1, Name: 'Fuel', Desc: 'paliwo', Param: 'D1', Group: 8}\r\n , {Type: 2, Name: 'Speed', Desc: 'prędkość', Param: 'D1', Group: 12}\r\n , {Type: 5, Name: 'EngineSpeed', Desc: 'obroty silnika', Param: 'D1', Group: 7}\r\n , {Type: 6, Name: 'Temperature', Desc: 'temperatura', Param: 'D1', Group: 0}\r\n , {Type: 7, Name: 'Voltage', Desc: 'napięcie', Param: 'D1', Group: 6}\r\n , {Type: 8, Name: 'Location', Desc: 'lokalizacja', Param: '', Group: 1}\r\n , {Type: 9, Name: 'Binary', Desc: 'dwustanowy', Param: 'B', Group: 0}\r\n , {Type: 10, Name: 'Analog', Desc: 'analogowy', Param: 'D1', Group: 0}\r\n , {Type: 11, Name: 'Digital', Desc: 'cyfrowe', Param: 'L', Group: 0}\r\n , {Type: 12, Name: 'Pulse', Desc: 'impulsowy', Param: 'L', Group: 0}\r\n , {Type: 13, Name: 'Pressure', Desc: 'ciśnienie', Param: 'D1', Group: 0}\r\n , {Type: 14, Name: 'Humidity', Desc: 'wilgotność', Param: 'D1', Group: 0}\r\n , {Type: 15, Name: 'ElectricCurrent', Desc: 'natężenie prądu', Param: 'D1', Group: 0}\r\n , {Type: 16, Name: 'Ignition', Desc: 'zapłon (dwustanowy)', Param: 'B', Group: 0}\r\n , {Type: 17, Name: 'Distance', Desc: 'odległość (droga)', Param: 'D1', Group: 5}\r\n , {Type: 18, Name: 'Move', Desc: 'czujnik ruchu - wartość analogowa', Param: 'D1', Group: 0}\r\n , {Type: 19, Name: 'MoveBinary', Desc: 'czujnik ruchu - ruch/brak ruchu', Param: 'B', Group: 0}\r\n , {Type: 20, Name: 'Direction', Desc: 'kierunek', Param: 'D1', Group: 0}\r\n , {Type: 21, Name: 'VisibleSatellites', Desc: 'ilość widocznych satelitów', Param: 'L', Group: 14}\r\n , {Type: 22, Name: 'GSMLevel', Desc: 'poziom sygnału GSM', Param: 'L', Group: 15}\r\n , {Type: 23, Name: 'RFID', Desc: 'identyfikator karty/pastylki', Param: 'L', Group: 0}\r\n , {Type: 24, Name: 'Acceleration', Desc: 'przyspieszenie', Param: 'D1', Group: 10}\r\n , {Type: 26, Name: 'Crash', Desc: 'parametr wypadku', Param: 'B', Group: 0}\r\n , {Type: 27, Name: 'FuelUsage', Desc: 'zużycie paliwa w pojeździe', Param: 'D1', Group: 18}\r\n , {Type: 28, Name: 'WorkTime', Desc: 'czas pracy silnika', Param: 'D1', Group: 0}\r\n , {Type: 100, Name: 'GPSData', Desc: '', Param: '', Group: 14}\r\n , {\r\n Type: 101,\r\n Name: 'EcoDriving',\r\n Desc: 'eco driving - zbiorczy parametr (hamowania, zakręty itp.)',\r\n Param: '',\r\n Group: 0\r\n }\r\n , {\r\n Type: 1000,\r\n Name: 'VehicleStatus',\r\n Desc: 'czujnik wirtualny - status pojazdu dla MyCarWeb',\r\n Param: 'L',\r\n Group: 13,\r\n Values: [\r\n , {v: 1, name: 'Driving', desc: 'Jedzie'}\r\n , {v: 2, name: 'Parking', desc: 'Zaparkowany'}\r\n , {v: 3, name: 'NoGPS', desc: 'Brak GPS'}\r\n , {v: 4, name: 'NoGSM', desc: 'Brak GSM'}\r\n , {v: 5, name: 'Disconnected', desc: 'Odłączone'}\r\n ]\r\n }\r\n , {\r\n Type: 1001,\r\n Name: 'VehicleDirection',\r\n Desc: 'czujnik wirtualny - kierunek jazdy pojazdu dla MyCarWeb',\r\n Param: 'L',\r\n Group: 0\r\n }\r\n , {\r\n Type: 1002,\r\n Name: 'VirtualJoinedTemperatures ',\r\n Desc: 'czujnik wirtualny - zwraca połączone temperatury dla MyCarWeb',\r\n Param: 'S',\r\n Group: 17\r\n },\r\n {\r\n Type: 1003, Name: 'VirtualETollStatus', Desc: 'eToll', Param: 'S', Group: 19\r\n }\r\n ];\r\n\r\n}\r\n","import {User} from \"@commons/models/domain/User\";\r\n\r\nexport class UserViewModel {\r\n\r\n get initials(): string {\r\n return this.user ?\r\n `${this.user?.FirstName ? this.user.FirstName[0] : ''}${this.user?.LastName ? this.user?.LastName[0] : ''}`.toUpperCase()\r\n : '';\r\n }\r\n\r\n constructor(public user: User) {\r\n }\r\n\r\n toString(): string {\r\n return `${this.user?.FirstName} ${this.user?.LastName} ${this.user?.Email} ${this.user?.Phone}`;\r\n }\r\n\r\n getFullName(): string {\r\n return `${this.user?.FirstName} ${this.user?.LastName}`;\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\nimport {BehaviorSubject, map, Observable, tap} from \"rxjs\";\r\n\r\nimport {SetPasswordRequest} from \"@commons/models/remote.request/SetPasswordRequest\";\r\nimport {WebResponse} from \"@commons/models/remote.response/WebResponse\";\r\nimport {User} from \"@commons/models/domain/User\";\r\nimport {GetProfileUserDataResponse} from \"@commons/models/remote.response/GetProfileUserDataResponse\";\r\n\r\nimport {BaseHttpService} from \"@shared/services-http/base-http.service\";\r\nimport {UserViewModel} from \"@shared/view-models/user.viewmodel\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserHttpService extends BaseHttpService {\r\n\r\n private cachedUser?: User;\r\n\r\n get userViewModel(): UserViewModel | undefined {\r\n return this.cachedUser ? new UserViewModel(this.getClone(this.cachedUser)) : undefined;\r\n }\r\n\r\n public userData$: BehaviorSubject = new BehaviorSubject(null as any);\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n ) {\r\n super();\r\n }\r\n\r\n setUserPassword(request: SetPasswordRequest): Observable {\r\n return this.httpClient.post(this.getUrl('/SetProfileUserPassword'), request);\r\n }\r\n\r\n getProfileUserData(): Observable {\r\n if (this.cachedUser) {\r\n this.setUserData();\r\n JSON.stringify(this.cachedUser);\r\n return this.getClone(this.cachedUser);\r\n }\r\n const request = {notification: true}; //niewiadomo po co to jest\r\n return this.httpClient.post(this.getUrl('/GetProfileUserData'), request)\r\n .pipe(\r\n map(response => response.Result),\r\n tap((user => {\r\n this.cachedUser = this.getClone((user as any).Result);\r\n this.setUserData();\r\n })));\r\n }\r\n\r\n private setUserData(): void {\r\n this.userData$.next(this.userViewModel as UserViewModel);\r\n }\r\n\r\n}\r\n","export class RememberMeToken {\r\n\r\n constructor(\r\n public value: string,\r\n public client?: string) {\r\n }\r\n}\r\n","import {RememberMeToken} from '@commons/models/domain/RememberMeToken';\r\n\r\nexport class RememberMeTokenStore {\r\n\r\n private readonly tokenLSKey = 'remember-me-token';\r\n private _token?: RememberMeToken;\r\n\r\n get token(): RememberMeToken | undefined {\r\n if (!this._token) {\r\n const item = localStorage.getItem(this.tokenLSKey);\r\n this._token = item ? JSON.parse(item) as RememberMeToken : undefined;\r\n }\r\n return this._token?.value && this._token.client ? JSON.parse(JSON.stringify(this._token)) : undefined;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n save(newToken: RememberMeToken) {\r\n this._token = JSON.parse(JSON.stringify(newToken));\r\n localStorage.setItem(this.tokenLSKey, JSON.stringify(this._token));\r\n }\r\n\r\n clear() {\r\n localStorage.removeItem(this.tokenLSKey);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\n\r\nimport { map, mergeMap, Observable, of} from \"rxjs\";\r\n\r\nimport packageJson from \"../../../../package.json\";\r\n\r\nimport {AuthenticateUserRequest} from '@commons/models/remote.request/AuthenticateUserRequest';\r\nimport {AuthenticateUserResponse} from '@commons/models/remote.response/AuthenticateUserResponse';\r\nimport {WebResponse} from \"@commons/models/remote.response/WebResponse\";\r\n\r\nimport {BaseHttpService} from \"@shared/services-http/base-http.service\";\r\nimport {AuthenticateByTokenRequest} from \"@shared/services-http/requests/authenticateByTokenRequest\";\r\nimport { RemoteDataService } from '@commons/services/remote.data/remote-data.service';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthenticationHttpService extends BaseHttpService {\r\n\r\n readonly version: string = packageJson.version;\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private $service: RemoteDataService,\r\n ) {\r\n super();\r\n }\r\n authenticateUser(request: AuthenticateUserRequest): Observable {\r\n request.Platform = 'web';\r\n request.applicationAndVersion = 'mycar.tekom.pl ' + this.version;\r\n \r\n const headers = new HttpHeaders({\r\n ClientName: request.DB || '',\r\n });\r\n\r\n return this.httpClient.post(this.getAuthUrl('/AuthenticateUser'), request, { headers }).pipe(\r\n mergeMap((authResponse) => {\r\n if (request.DB) {\r\n return this.AddUserLog().pipe(\r\n map(() => authResponse)\r\n );\r\n }\r\n return of(authResponse);\r\n })\r\n );\r\n }\r\n \r\n public AddUserLog(): Observable {\r\n const url = environment.hammerApiUrl + `/AddUserLog`;\r\n return this.$service.httpPost(url, {}); \r\n }\r\n\r\n authenticateByToken(token: string): Observable {\r\n const request = {} as AuthenticateByTokenRequest;\r\n request.token = token;\r\n request.platform = 'web';\r\n request.applicationAndVersion = 'mycar.tekom.pl ' + this.version;\r\n return this.httpClient.post(this.getAuthUrl('/AuthenticateByToken'), request);\r\n }\r\n\r\n closeUserSession(sessionId: string): Observable {\r\n const headers = {headers: new HttpHeaders({sessionId: sessionId})};\r\n return this.httpClient.post(this.getAuthUrl('/RemoveSession'), {}, headers);\r\n }\r\n\r\n keepSession(): Observable {\r\n return this.httpClient.post(this.getUrl('/KeepSession'), {});\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {interval, map, Observable, tap} from 'rxjs';\r\nimport {BehaviorSubject} from \"rxjs/internal/BehaviorSubject\";\r\n\r\nimport {differenceInMinutes, isAfter, parseISO} from 'date-fns'\r\n\r\nimport {AuthenticateUserRequest} from '@commons/models/remote.request/AuthenticateUserRequest';\r\nimport {RememberMeToken} from '@commons/models/domain/RememberMeToken';\r\nimport {AuthenticateUserResponse} from \"@commons/models/remote.response/AuthenticateUserResponse\";\r\n\r\nimport {NewNavigationService} from '@shared/services/new-navigation.service';\r\nimport {SettingsService} from \"@shared/services/settings.service\";\r\nimport {AuthenticationHttpService} from \"@shared/services-http/authentication-http.service\";\r\nimport {TokenStore} from \"@shared/services/authentication/token.store\";\r\nimport {RememberMeTokenStore} from \"@shared/services/authentication/remember-me-token.store\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthenticationService {\r\n\r\n private readonly isAuthenticatedBS = new BehaviorSubject(false);\r\n\r\n get isAuthenticated$(): Observable {\r\n return this.isAuthenticatedBS;\r\n }\r\n\r\n private readonly tokenStore = new TokenStore();\r\n\r\n private readonly rememberMeTokenStore = new RememberMeTokenStore();\r\n\r\n get canSelectDatabase(): boolean {\r\n const clients = this.tokenStore?.token?.clients;\r\n const count = clients?.length ?? 0;\r\n const isMultiDatabase = count > 1;\r\n\r\n return isMultiDatabase;\r\n }\r\n\r\n get currentClient(): string {\r\n return this.tokenStore.token?.clients ? this.tokenStore.token?.clients[0] : '';\r\n }\r\n\r\n get isAuthenticatedWithoutDatabase(): boolean {\r\n let result = false;\r\n const token = this.tokenStore?.token;\r\n if (token?.validTo) {\r\n const now = new Date();\r\n const validTo = parseISO(token?.validTo);\r\n const isActive = token?.sessionId != null && isAfter(validTo, now);\r\n const hasManyDatabases = token?.clients != null && token?.clients?.length !== 1;\r\n result = isActive && hasManyDatabases;\r\n }\r\n return result;\r\n }\r\n\r\n get isSessionActive(): boolean {\r\n let result = false;\r\n const token = this.tokenStore?.token;\r\n if (token?.validTo) {\r\n const now = new Date();\r\n const validTo = parseISO(token.validTo);\r\n result = token.sessionId != null && isAfter(validTo, now);\r\n if (!result) {\r\n this.tokenStore.removeToken();\r\n }\r\n }\r\n return result && token?.clients?.length === 1; //pełne zalogowanie jest wtedy gdy klient został już wybrany\r\n }\r\n\r\n get isTekomUser(): boolean {\r\n const email = this.settingsService.getLoggedUserEmail();\r\n const result = email ? email.includes('@tekom.pl') : false;\r\n return result;\r\n }\r\n\r\n get isLoggedByToken(): boolean {\r\n return this._isLoggedByToken;\r\n }\r\n\r\n get sessionId(): string | undefined {\r\n return this.tokenStore?.token?.sessionId;\r\n }\r\n\r\n private _isLoggedByToken = false;\r\n private firstStepRequest?: AuthenticateUserRequest;\r\n\r\n constructor(\r\n private newNavigationService: NewNavigationService,\r\n private settingsService: SettingsService,\r\n private authenticationHttpService: AuthenticationHttpService\r\n ) {\r\n this.subToIsAuthenticatedBS();\r\n if (!this.newNavigationService.isShareLink && !this.newNavigationService.isHandoverView && this.tokenStore.token && this.isSessionActive) {\r\n this.isAuthenticatedBS.next(true);\r\n }\r\n }\r\n\r\n hasModule(module: string): boolean {\r\n if (this.tokenStore?.token?.modules == null) {\r\n return false;\r\n }\r\n\r\n return this.tokenStore.token.modules.includes(module);\r\n }\r\n\r\n hasUserRight(userRight: string): boolean {\r\n if (this.tokenStore?.token?.userRights == null) {\r\n return false;\r\n }\r\n return this.tokenStore.token!.userRights.includes(userRight);\r\n }\r\n\r\n getDatabases(): string[] {\r\n return (this.tokenStore.token?.clients || []).sort((a, b) => a.localeCompare(b));\r\n }\r\n\r\n authenticateWithDb(databaseName: string): Observable {\r\n const request: AuthenticateUserRequest = {} as AuthenticateUserRequest;\r\n request.Login = this.firstStepRequest!.Login;\r\n request.Password = this.firstStepRequest!.Password;\r\n request.RememberMeEnabled = this.firstStepRequest!.RememberMeEnabled;\r\n request.SessionId = this.tokenStore.token?.sessionId;\r\n request.DB = databaseName;\r\n\r\n return this.authenticate(request);\r\n }\r\n\r\n startKeepSessionInterval() {\r\n //na produkcyjnym API czas trwania sesji wynosi 20 min, na test2 60 min\r\n interval(1000).subscribe(() => {\r\n if (this.isSessionActive) {\r\n const validTo = parseISO(this.tokenStore.token!.validTo);\r\n const timeLeft = differenceInMinutes(validTo, new Date());\r\n\r\n if (timeLeft <= 2)\r\n this.authenticationHttpService.keepSession().subscribe(response => {\r\n if (response.Status === 200)\r\n this.tokenStore.extendTokenValidTo();\r\n else\r\n this.isAuthenticatedBS.next(false);\r\n });\r\n } else\r\n this.newNavigationService.toLogout();\r\n }\r\n );\r\n }\r\n\r\n authenticate(request: AuthenticateUserRequest): Observable {\r\n return this.authenticationHttpService.authenticateUser(request).pipe(\r\n tap(response => {\r\n this.settingsService.setSkipChooseLoginMethod();\r\n this.tokenStore.saveToken(response, true);\r\n const rememberMeToken = response?.rememberMeToken ? new RememberMeToken(response?.rememberMeToken, request.DB) : undefined;\r\n if (rememberMeToken)\r\n this.rememberMeTokenStore.save(rememberMeToken);\r\n\r\n const isClientSelected = response.clients?.length === 1;\r\n if (isClientSelected && this.firstStepRequest) {\r\n this.isAuthenticatedBS.next(isClientSelected);\r\n }\r\n this.firstStepRequest = request;\r\n }\r\n ));\r\n }\r\n\r\n authenticateByToken(token: string): Observable {\r\n return this.authenticationHttpService.authenticateByToken(token).pipe(\r\n tap(response => {\r\n this._isLoggedByToken = true;\r\n this.tokenStore.saveToken(response, false);\r\n this.isAuthenticatedBS.next(true);\r\n }));\r\n }\r\n\r\n closeSession(): Observable {\r\n const sessionId = this.tokenStore.token?.sessionId ?? '';\r\n if (!this._isLoggedByToken) {\r\n this.tokenStore.removeToken();\r\n this.rememberMeTokenStore.clear();\r\n }\r\n\r\n return this.authenticationHttpService.closeUserSession(sessionId)\r\n .pipe(map(response => response.ErrorCode === 0));\r\n }\r\n\r\n public authenticateWithRememberMeToken(): Observable {\r\n if (!this.rememberMeTokenStore.token) {\r\n return new Observable(observer => {\r\n observer.error();\r\n observer.complete();\r\n });\r\n }\r\n\r\n const request = {} as AuthenticateUserRequest;\r\n request.DB = this.rememberMeTokenStore.token.client;\r\n request.RememberMeToken = this.rememberMeTokenStore.token?.value;\r\n\r\n return this.authenticate(request);\r\n }\r\n\r\n private subToIsAuthenticatedBS() {\r\n this.isAuthenticatedBS.subscribe(isActive => {\r\n this.processIsAuthenticated(isActive);\r\n });\r\n }\r\n\r\n private processIsAuthenticated(isAuthenticated: boolean): void {\r\n const shareLinkIdValue = this.getShareLinkIdValueFromWindowURL();\r\n if (shareLinkIdValue) {\r\n this.newNavigationService.toShare(shareLinkIdValue);\r\n return;\r\n }\r\n\r\n const ifHandoverView = this.getWindowPathName().includes('handover-view');\r\n if (ifHandoverView) {\r\n const [,, handoverToken] = this.getWindowPathName().split('/');\r\n this.newNavigationService.toHandoverAuthView(handoverToken);\r\n return;\r\n }\r\n\r\n if (isAuthenticated) {\r\n this.newNavigationService.toMainPanel();\r\n }\r\n else if (this.rememberMeTokenStore?.token) {\r\n this.authenticateWithRememberMeToken().subscribe();\r\n }\r\n else if (\r\n !this.newNavigationService.isInAuthenticationModule &&\r\n !this.newNavigationService.isShareLink &&\r\n !this.newNavigationService.isHandoverView &&\r\n !this.newNavigationService.isPasswordResetConfirmView\r\n ) {\r\n this.newNavigationService.toLogin();\r\n }\r\n }\r\n\r\n private getShareLinkIdValueFromWindowURL(): string | null {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const shareLinkIdValue = urlParams.get('shareLinkId');\r\n return shareLinkIdValue;\r\n }\r\n\r\n private getWindowPathName(): string {\r\n return window.location.pathname;\r\n }\r\n\r\n}\r\n","import {addMinutes, formatISO} from \"date-fns\";\r\n\r\nimport {Token} from \"@commons/models/domain/Token\";\r\n\r\nimport {TokenModel} from \"@shared/view-models/tokenModel\";\r\n\r\nexport class TokenStore {\r\n\r\n private saveInLS = true;\r\n private readonly tokenLSKey = 'token';\r\n\r\n private _token?: TokenModel;\r\n\r\n get token(): Token | undefined {\r\n if (this.saveInLS && !this._token) {\r\n const item = localStorage.getItem(this.tokenLSKey);\r\n this._token = item ? JSON.parse(item) as Token : undefined;\r\n }\r\n return this._token ? this.getClone(this._token) : undefined;\r\n }\r\n\r\n\r\n constructor() {\r\n }\r\n\r\n private getClone(object: any): any {\r\n return JSON.parse(JSON.stringify(object));\r\n }\r\n\r\n private getTokenModel(newToken: Token): TokenModel {\r\n const newTokenClone = this.getClone(newToken);\r\n\r\n const tokenModel = {} as TokenModel;\r\n tokenModel.userRights = newTokenClone.userRights;\r\n tokenModel.clients = newTokenClone.clients;\r\n tokenModel.sessionId = newTokenClone.sessionId;\r\n tokenModel.packageName = newTokenClone.packageName;\r\n tokenModel.modules = newTokenClone.modules;\r\n tokenModel.validTo = formatISO(addMinutes(new Date(), 19));\r\n return tokenModel;\r\n }\r\n\r\n saveToken(newToken: Token, saveInLocalStorage: boolean) {\r\n this.saveInLS = saveInLocalStorage;\r\n this._token = this.getTokenModel(newToken);\r\n if (this.saveInLS) //token dla logowania linkiem nie jest zapisywany w LocalStorage\r\n localStorage.setItem(this.tokenLSKey, JSON.stringify(this._token));\r\n }\r\n\r\n extendTokenValidTo() {\r\n this.saveToken(this.token!, this.saveInLS);\r\n }\r\n\r\n removeToken() {\r\n if (this.saveInLS)\r\n localStorage.removeItem(this.tokenLSKey);\r\n }\r\n}\r\n","import toDate from \"../toDate/index.js\";\nimport addLeadingZeros from \"../_lib/addLeadingZeros/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatISO\n * @category Common Helpers\n * @summary Format the date according to the ISO 8601 standard (https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).\n *\n * @description\n * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {'extended'|'basic'} [options.format='extended'] - if 'basic', hide delimiters between date and time values.\n * @param {'complete'|'date'|'time'} [options.representation='complete'] - format date, time with local time zone, or both.\n * @returns {String} the formatted date string (in local time zone)\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.format` must be 'extended' or 'basic'\n * @throws {RangeError} `options.representation` must be 'date', 'time' or 'complete'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601, short format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918T190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, date only:\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, time only (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52Z'\n */\n\nexport default function formatISO(date, options) {\n var _options$format, _options$representati;\n\n requiredArgs(1, arguments);\n var originalDate = toDate(date);\n\n if (isNaN(originalDate.getTime())) {\n throw new RangeError('Invalid time value');\n }\n\n var format = String((_options$format = options === null || options === void 0 ? void 0 : options.format) !== null && _options$format !== void 0 ? _options$format : 'extended');\n var representation = String((_options$representati = options === null || options === void 0 ? void 0 : options.representation) !== null && _options$representati !== void 0 ? _options$representati : 'complete');\n\n if (format !== 'extended' && format !== 'basic') {\n throw new RangeError(\"format must be 'extended' or 'basic'\");\n }\n\n if (representation !== 'date' && representation !== 'time' && representation !== 'complete') {\n throw new RangeError(\"representation must be 'date', 'time', or 'complete'\");\n }\n\n var result = '';\n var tzOffset = '';\n var dateDelimiter = format === 'extended' ? '-' : '';\n var timeDelimiter = format === 'extended' ? ':' : ''; // Representation is either 'date' or 'complete'\n\n if (representation !== 'time') {\n var day = addLeadingZeros(originalDate.getDate(), 2);\n var month = addLeadingZeros(originalDate.getMonth() + 1, 2);\n var year = addLeadingZeros(originalDate.getFullYear(), 4); // yyyyMMdd or yyyy-MM-dd.\n\n result = \"\".concat(year).concat(dateDelimiter).concat(month).concat(dateDelimiter).concat(day);\n } // Representation is either 'time' or 'complete'\n\n\n if (representation !== 'date') {\n // Add the timezone.\n var offset = originalDate.getTimezoneOffset();\n\n if (offset !== 0) {\n var absoluteOffset = Math.abs(offset);\n var hourOffset = addLeadingZeros(Math.floor(absoluteOffset / 60), 2);\n var minuteOffset = addLeadingZeros(absoluteOffset % 60, 2); // If less than 0, the sign is +, because it is ahead of time.\n\n var sign = offset < 0 ? '+' : '-';\n tzOffset = \"\".concat(sign).concat(hourOffset, \":\").concat(minuteOffset);\n } else {\n tzOffset = 'Z';\n }\n\n var hour = addLeadingZeros(originalDate.getHours(), 2);\n var minute = addLeadingZeros(originalDate.getMinutes(), 2);\n var second = addLeadingZeros(originalDate.getSeconds(), 2); // If there's also date, separate it with time with 'T'\n\n var separator = result === '' ? '' : 'T'; // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.\n\n var time = [hour, minute, second].join(timeDelimiter); // HHmmss or HH:mm:ss.\n\n result = \"\".concat(result).concat(separator).concat(time).concat(tzOffset);\n }\n\n return result;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\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 * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseService {\r\n\r\n constructor() { }\r\n\r\n protected getClone(object: any): any {\r\n return JSON.parse(JSON.stringify(object));\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogService {\r\n\r\n constructor(private matDialog: MatDialog) {}\r\n\r\n open(component: any, model?: any): MatDialogRef {\r\n const dialogRef = this.matDialog.open(component, {\r\n data: model,\r\n disableClose: true,\r\n panelClass: 'dialog',\r\n maxWidth: '100vw',\r\n maxHeight: '100vh',\r\n height: '100%',\r\n width: '100%',\r\n autoFocus: false,\r\n } as MatDialogConfig);\r\n\r\n return dialogRef;\r\n }\r\n\r\n}\r\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n// THIS CODE IS GENERATED - DO NOT MODIFY.\nconst u = undefined;\nfunction plural(val) {\n const n = val, i = Math.floor(Math.abs(val)), v = val.toString().replace(/^[^.]*\\.?/, '').length, e = parseInt(val.toString().replace(/^[^e]*(e([-+]?\\d+))?/, '$2')) || 0;\n if (i === Math.floor(i) && (i >= 0 && i <= 1))\n return 1;\n if (e === 0 && (!(i === 0) && (i % 1000000 === 0 && v === 0)) || !(e >= 0 && e <= 5))\n return 4;\n return 5;\n}\nexport default [\"pt\", [[\"AM\", \"PM\"], u, u], u, [[\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"], [\"dom.\", \"seg.\", \"ter.\", \"qua.\", \"qui.\", \"sex.\", \"sáb.\"], [\"domingo\", \"segunda-feira\", \"terça-feira\", \"quarta-feira\", \"quinta-feira\", \"sexta-feira\", \"sábado\"], [\"dom.\", \"seg.\", \"ter.\", \"qua.\", \"qui.\", \"sex.\", \"sáb.\"]], u, [[\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"], [\"jan.\", \"fev.\", \"mar.\", \"abr.\", \"mai.\", \"jun.\", \"jul.\", \"ago.\", \"set.\", \"out.\", \"nov.\", \"dez.\"], [\"janeiro\", \"fevereiro\", \"março\", \"abril\", \"maio\", \"junho\", \"julho\", \"agosto\", \"setembro\", \"outubro\", \"novembro\", \"dezembro\"]], u, [[\"a.C.\", \"d.C.\"], u, [\"antes de Cristo\", \"depois de Cristo\"]], 0, [6, 0], [\"dd/MM/y\", \"d 'de' MMM 'de' y\", \"d 'de' MMMM 'de' y\", \"EEEE, d 'de' MMMM 'de' y\"], [\"HH:mm\", \"HH:mm:ss\", \"HH:mm:ss z\", \"HH:mm:ss zzzz\"], [\"{1} {0}\", u, u, u], [\",\", \".\", \";\", \"%\", \"+\", \"-\", \"E\", \"×\", \"‰\", \"∞\", \"NaN\", \":\"], [\"#,##0.###\", \"#,##0%\", \"¤ #,##0.00\", \"#E0\"], \"BRL\", \"R$\", \"Real brasileiro\", { \"AUD\": [\"AU$\", \"$\"], \"BYN\": [u, \"р.\"], \"JPY\": [\"JP¥\", \"¥\"], \"PHP\": [u, \"₱\"], \"PTE\": [\"Esc.\"], \"RON\": [u, \"L\"], \"SYP\": [u, \"S£\"], \"THB\": [\"฿\"], \"TWD\": [\"NT$\"], \"USD\": [\"US$\", \"$\"] }, \"ltr\", plural];\n","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import formatDistance from \"../en-US/_lib/formatDistance/index.js\";\nimport formatRelative from \"../en-US/_lib/formatRelative/index.js\";\nimport localize from \"../en-US/_lib/localize/index.js\";\nimport match from \"../en-US/_lib/match/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik]{@link https://github.com/glintik}\n */\n\nvar locale = {\n code: 'en-GB',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'menos de um segundo',\n other: 'menos de {{count}} segundos'\n },\n xSeconds: {\n one: '1 segundo',\n other: '{{count}} segundos'\n },\n halfAMinute: 'meio minuto',\n lessThanXMinutes: {\n one: 'menos de um minuto',\n other: 'menos de {{count}} minutos'\n },\n xMinutes: {\n one: '1 minuto',\n other: '{{count}} minutos'\n },\n aboutXHours: {\n one: 'aproximadamente 1 hora',\n other: 'aproximadamente {{count}} horas'\n },\n xHours: {\n one: '1 hora',\n other: '{{count}} horas'\n },\n xDays: {\n one: '1 dia',\n other: '{{count}} dias'\n },\n aboutXWeeks: {\n one: 'aproximadamente 1 semana',\n other: 'aproximadamente {{count}} semanas'\n },\n xWeeks: {\n one: '1 semana',\n other: '{{count}} semanas'\n },\n aboutXMonths: {\n one: 'aproximadamente 1 mês',\n other: 'aproximadamente {{count}} meses'\n },\n xMonths: {\n one: '1 mês',\n other: '{{count}} meses'\n },\n aboutXYears: {\n one: 'aproximadamente 1 ano',\n other: 'aproximadamente {{count}} anos'\n },\n xYears: {\n one: '1 ano',\n other: '{{count}} anos'\n },\n overXYears: {\n one: 'mais de 1 ano',\n other: 'mais de {{count}} anos'\n },\n almostXYears: {\n one: 'quase 1 ano',\n other: 'quase {{count}} anos'\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', String(count));\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'daqui a ' + result;\n } else {\n return 'há ' + result;\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d 'de' MMM 'de' y\",\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: function lastWeek(date) {\n var weekday = date.getUTCDay();\n var last = weekday === 0 || weekday === 6 ? 'último' : 'última';\n return \"'\" + last + \"' eeee 'às' p\";\n },\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, date, _baseDate, _options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date);\n }\n\n return format;\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['aC', 'dC'],\n abbreviated: ['a.C.', 'd.C.'],\n wide: ['antes de Cristo', 'depois de Cristo']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre']\n};\nvar monthValues = {\n narrow: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'],\n wide: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro']\n};\nvar dayValues = {\n narrow: ['d', 's', 't', 'q', 'q', 's', 's'],\n short: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],\n abbreviated: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],\n wide: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'manhã',\n afternoon: 'tarde',\n evening: 'noite',\n night: 'madrugada'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'manhã',\n afternoon: 'tarde',\n evening: 'noite',\n night: 'madrugada'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'manhã',\n afternoon: 'tarde',\n evening: 'noite',\n night: 'madrugada'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'da manhã',\n afternoon: 'da tarde',\n evening: 'da noite',\n night: 'da madrugada'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'da manhã',\n afternoon: 'da tarde',\n evening: 'da noite',\n night: 'da madrugada'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'da manhã',\n afternoon: 'da tarde',\n evening: 'da noite',\n night: 'da madrugada'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n return number + 'º';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Portuguese locale.\n * @language Portuguese\n * @iso-639-2 por\n * @author Dário Freire [@dfreire]{@link https://github.com/dfreire}\n * @author Adrián de la Rosa [@adrm]{@link https://github.com/adrm}\n */\n\nvar locale = {\n code: 'pt',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(º|ª)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|a\\.?\\s?e\\.?\\s?c\\.?|d\\.?\\s?c\\.?|e\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|antes da era comum|depois de cristo|era comum)/i\n};\nvar parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^(antes de cristo|antes da era comum)/i, /^(depois de cristo|era comum)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º|ª)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ab/i, /^mai/i, /^jun/i, /^jul/i, /^ag/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dstq]/i,\n short: /^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,\n wide: /^(domingo|segunda-?\\s?feira|terça-?\\s?feira|quarta-?\\s?feira|quinta-?\\s?feira|sexta-?\\s?feira|s[áa]bado)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^s/i, /^t/i, /^q/i, /^q/i, /^s/i, /^s/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[áa]/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|meia-?\\s?noite|meio-?\\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia-?\\s?noite|meio-?\\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^meia/i,\n noon: /^meio/i,\n morning: /manh[ãa]/i,\n afternoon: /tarde/i,\n evening: /noite/i,\n night: /madrugada/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import { registerLocaleData } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\nimport localePt from '@angular/common/locales/pt';\r\nimport { pl, enGB, pt } from 'date-fns/locale';\r\nimport { PrimeNG } from 'primeng/config';\r\n\r\nimport { LanguageViewModel } from '@shared/view-models/language.viewmodel';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LanguageService {\r\n\r\n private readonly _supportedLanguages: LanguageViewModel[] = [\r\n { code: 'pl', locale: 'pl-PL', currency: 'PLN' } as LanguageViewModel,\r\n { code: 'en', locale: 'en-GB', currency: 'PLN'} as LanguageViewModel,\r\n { code: 'pt', locale: 'pt', currency: 'PLN'} as LanguageViewModel,\r\n ];\r\n\r\n private _current = 'pl';\r\n\r\n get current(): string {\r\n return this._current;\r\n }\r\n set current(code: string) {\r\n this._current = code;\r\n localStorage.setItem('language', code);\r\n this.initLanguage();\r\n }\r\n\r\n get currentLanguageViewModel() : LanguageViewModel {\r\n return this.supportedLanguages.find(l => l.code === this.current)!;\r\n }\r\n\r\n get supportedLanguages(): LanguageViewModel[] {\r\n return this._supportedLanguages;\r\n }\r\n\r\n public get localeVariableDateFns(): Locale {\r\n if (this.current === 'pl') {\r\n return pl;\r\n }\r\n if (this.current === 'en') {\r\n return enGB;\r\n }\r\n if (this.current === 'pt') {\r\n return pt;\r\n }\r\n\r\n return enGB;\r\n }\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private primeNgConfig: PrimeNG,\r\n ) {\r\n registerLocaleData(localePt, 'pt');\r\n this._current = localStorage.getItem('language') ?? 'pl';\r\n this.initLanguage();\r\n }\r\n\r\n private initLanguage() {\r\n this.translateService.use(this._current).subscribe(() => {\r\n this.setLanguageDisplayedName();\r\n this.initPrimeNgTranslate();\r\n });\r\n }\r\n\r\n private setLanguageDisplayedName() {\r\n for (let lang of this._supportedLanguages)\r\n this.translateService.get('language.' + lang.code).subscribe(t => lang.displayedName = t);\r\n }\r\n\r\n private initPrimeNgTranslate(): void {\r\n this.translateService.get('primeng').subscribe(res => this.primeNgConfig.setTranslation(res));\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {BehaviorSubject, Observable} from \"rxjs\";\r\n\r\nimport {Vehicle} from \"@commons/models/domain/Vehicle\";\r\nimport {Driver} from \"@commons/models/domain/Driver\";\r\n\r\nimport {BaseService} from \"@shared/services/base.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NewDataStoreService extends BaseService {\r\n\r\n private vehiclesDict = new Map();\r\n private driversDict = new Map();\r\n private driversElectronicIdToDriverIdDict = new Map();\r\n\r\n private readonly onDriversLoaded = new BehaviorSubject([]);\r\n get driversLoaded(): Observable {\r\n return this.onDriversLoaded;\r\n }\r\n\r\n private readonly onVehiclesLoaded = new BehaviorSubject([]);\r\n get vehiclesLoaded(): Observable {\r\n return this.onVehiclesLoaded;\r\n }\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n saveVehicles(vehicles: Vehicle[]): void {\r\n this.vehiclesDict.clear();\r\n const clone = this.getClone(vehicles) as Vehicle[];\r\n clone.forEach(v => this.vehiclesDict.set(v.Id, v));\r\n\r\n this.onVehiclesLoaded.next(clone);\r\n }\r\n\r\n addOrUpdateVehicle(vehicle: Vehicle): void {\r\n const clone = this.getClone(vehicle);\r\n this.vehiclesDict.set(vehicle.Id, clone);\r\n }\r\n\r\n getVehicles(): Vehicle[] {\r\n return Array.from(this.vehiclesDict.values());\r\n }\r\n\r\n getVehicleById(vehicleId: number): Vehicle {\r\n return this.vehiclesDict.get(vehicleId) ?? new Vehicle();//TODO GB tymczasowo żeby nie zmianieć logiki starego kodu\r\n }\r\n\r\n saveDrivers(drivers: Driver[]): void {\r\n this.driversDict.clear();\r\n const clone = this.getClone(drivers) as Driver[];\r\n clone.forEach(d => {\r\n this.driversElectronicIdToDriverIdDict.set(d.EI, d.Id);\r\n this.driversDict.set(d.Id, d)\r\n });\r\n\r\n this.onDriversLoaded.next(drivers);\r\n }\r\n\r\n getDrivers(): Driver[] {\r\n return Array.from(this.driversDict.values());\r\n }\r\n\r\n getDriverById(driverId: number): Driver {\r\n return this.driversDict.get(driverId) ?? {} as Driver;//TODO GB tymczasowo żeby nie zmianieć logiki starego kodu\r\n }\r\n\r\n getDriverByElectronicId(electronicId: string): Driver {\r\n const driverId = this.driversElectronicIdToDriverIdDict.get(electronicId);\r\n return driverId ? this.driversDict.get(driverId)! : {} as Driver;//TODO GB tymczasowo żeby nie zmianieć logiki starego kodu\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Router} from \"@angular/router\";\r\nimport {Location} from \"@angular/common\";\r\n\r\nimport {AuthenticationRoutesNames} from '@shared/constans/authentication-routes-names.constans';\r\nimport { TawkToChatService } from './tawk-to-chat.service';\r\nimport { Driver } from '@commons/models/domain/Driver';\r\nimport { ViewWorkers } from '@layout/driver/services/worker.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NewNavigationService {\r\n\r\n get isInAuthenticationModule(): boolean {\r\n return this.router.url.includes(AuthenticationRoutesNames.authenticationModuleName);\r\n }\r\n\r\n get isInDataSharingModule(): boolean {\r\n return this.router.url.includes('data-sharing');\r\n }\r\n\r\n get isShareLink(): boolean {\r\n return this.location.path().includes('/share/');\r\n }\r\n\r\n get isHandoverView(): boolean {\r\n return this.location.path().includes('/handover/');\r\n }\r\n\r\n get isPasswordResetConfirmView(): boolean {\r\n return this.location.path().includes('/password-reset-confirm');\r\n }\r\n\r\n constructor(\r\n private router: Router,\r\n private location: Location,\r\n private tawkToChatService: TawkToChatService,\r\n ) {\r\n }\r\n\r\n private toAuthentication(route: string) {\r\n this.router.navigate([AuthenticationRoutesNames.authenticationModuleName + route]);\r\n }\r\n\r\n toWelcome() {\r\n this.toAuthentication(AuthenticationRoutesNames.welcome);\r\n }\r\n\r\n toSelectDatabase() {\r\n this.toAuthentication(AuthenticationRoutesNames.selectDatabase);\r\n }\r\n\r\n toLogin() {\r\n this.toAuthentication(AuthenticationRoutesNames.login);\r\n }\r\n\r\n toCreateAccount() {\r\n this.toAuthentication(AuthenticationRoutesNames.createAccount);\r\n }\r\n\r\n toCreateAccountConfirmation() {\r\n this.toAuthentication(AuthenticationRoutesNames.createAccountConfirmation);\r\n }\r\n\r\n toResetPassword() {\r\n this.toAuthentication(AuthenticationRoutesNames.resetPassword);\r\n }\r\n\r\n toResetPasswordConfirmation(email: string) {\r\n this.toAuthentication(`${AuthenticationRoutesNames.resetPasswordConfirmation}/${email}`);\r\n }\r\n\r\n toSetNewPasswordConfirmation() {\r\n this.toAuthentication(AuthenticationRoutesNames.setNewPasswordConfirmation);\r\n }\r\n\r\n toMainPanel() {\r\n this.router.navigate(['/panel', 'main']);\r\n // this.router.navigate(['/panel', 'vehicle'], { queryParams: {mode: 'lite'}});//TODO GB można w przyszłości pokazywać odrazu panel pojazdów\r\n }\r\n\r\n toHandoverView(token: string) {\r\n this.router.navigate(['/handover-view', token]);\r\n }\r\n\r\n toMainPanelWithShareLink(shareLinkId: string) {\r\n this.router.navigate(['/panel', 'main'], { queryParams: { shareLinkId }});\r\n }\r\n\r\n toShare(shareId: string) {\r\n this.router.navigate([AuthenticationRoutesNames.share, shareId]);\r\n }\r\n\r\n toHandoverAuthView(shareId: string) {\r\n this.router.navigate([AuthenticationRoutesNames.handover, shareId]);\r\n }\r\n\r\n // toHandoverView(handoverId: string, returnId?: string) {\r\n // const commands = ['/handover-view', `${handoverId}`];\r\n // if (returnId)\r\n // commands.push(`${returnId}`);\r\n\r\n // this.router.navigate(commands);\r\n // }\r\n\r\n toVehiclesList() {\r\n this.router.navigate(['/panel', 'vehicle'], {queryParams: {mode: 'lite'}});\r\n }\r\n\r\n toEventsList() {\r\n this.router.navigate(['/panel', 'event'], {queryParams: {mode: 'lite'}});\r\n }\r\n\r\n toWorkersList() {\r\n this.router.navigate(['/panel', 'workers']);\r\n // this.router.navigate(['/panel', 'driver'], {queryParams: {mode: 'lite'}});\r\n }\r\n\r\n toWorkerDetails(workerId: number) {\r\n this.router.navigate(['panel', 'driver'], {queryParams: {'mode': 'details', 'id': workerId}});\r\n }\r\n\r\n toDataSharing() {\r\n this.router.navigate(['/panel', 'data-sharing']);\r\n }\r\n\r\n toHelp() {\r\n this.router.navigate(['/panel', 'help']);\r\n }\r\n\r\n toProfile() {\r\n this.router.navigate(['/panel', 'profile']);\r\n }\r\n\r\n toLogout() {\r\n this.tawkToChatService.hideChat();\r\n this.toAuthentication(AuthenticationRoutesNames.logout);\r\n }\r\n\r\n toHandover() {\r\n this.router.navigate(['/panel', 'handover']);\r\n }\r\n\r\n public toVehicleFullList(): void {\r\n this.router.navigate(['/panel', 'vehicle-full-list']);\r\n }\r\n\r\n public toWorkerForm(workerData?: Driver): void {\r\n this.router.navigate(['/panel', 'worker-form', { workerData: workerData && JSON.stringify(workerData) }]);\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {AuthenticationService} from \"@shared/services/authentication/authentication.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PermissionService {\r\n\r\n constructor(\r\n private authenticationService: AuthenticationService\r\n ) {\r\n }\r\n\r\n hasEToll(): boolean {\r\n return this.authenticationService.hasModule(\"Module_eToll\");\r\n }\r\n\r\n hasClientSelection(): boolean {\r\n return this.authenticationService.hasModule(\"AccessToAllClients\");\r\n }\r\n\r\n hasDataSharing(): boolean {\r\n return this.authenticationService.hasUserRight(\"ShareLinks_Owner\");\r\n }\r\n\r\n hasDataSharingAdmin(): boolean {\r\n return this.authenticationService.hasUserRight(\"ShareLinks_Admin\");\r\n }\r\n\r\n hasAreasManagement(): boolean {\r\n return this.authenticationService.hasModule(\"Module_AreasManagement\");\r\n }\r\n\r\n hasTrackAreasFormClientAreasMap(): boolean {\r\n return this.authenticationService.hasUserRight(\"TrackAreas_FormClientAreasMap\");\r\n }\r\n\r\n hasVehicleRoutes(): boolean {\r\n return this.authenticationService.hasUserRight(\"GpsReports_RSLOT_PO\");\r\n }\r\n\r\n //zakładka alarmy\r\n hasAlarms_RAZ_PO(): boolean {\r\n return this.authenticationService.hasUserRight(\"Alarms_RAZ_PO\");\r\n }\r\n\r\n //zakładka paliwo w module alarmów\r\n hasStdReports_FUELALL_POL(): boolean {\r\n return this.authenticationService.hasUserRight(\"StdReports_FUELALL_POL\");\r\n }\r\n\r\n //zakładka obszary w events\r\n hasStdReports_ROK_SP(): boolean {\r\n return this.authenticationService.hasUserRight(\"StdReports_ROK_SP\");\r\n }\r\n\r\n hasCardFiles_FPersonals(): boolean {\r\n return this.authenticationService.hasUserRight(\"CardFiles_FPersonals\");\r\n }\r\n\r\n hasCardFiles_FCardCars(): boolean {\r\n return this.authenticationService.hasUserRight(\"CardFiles_FCardCars\");\r\n }\r\n\r\n hasStatus_FormStatusMap(): boolean {\r\n return this.authenticationService.hasUserRight(\"Status_FormStatusMap\");\r\n }\r\n\r\n hasStatus_FormStatusTab(): boolean {\r\n return this.authenticationService.hasUserRight(\"Status_FormStatusTab\");\r\n }\r\n\r\n hasHandover(): boolean {\r\n return this.authenticationService.hasModule('Module_Handovers') && this.authenticationService.hasUserRight(\"FleetMgr_FVehicleFleet\");\r\n }\r\n\r\n hasBlockerRead(): boolean {\r\n return this.authenticationService.hasUserRight(\"IgnitionBlocker_Read\");\r\n }\r\n\r\n hasBlockerReadWrite(): boolean {\r\n return this.authenticationService.hasUserRight(\"IgnitionBlocker_ReadWrite\");\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {MapLayerType} from \"@src/app/map/map-layers\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SettingsService {\r\n\r\n private static readonly skipWelcomeLSKey = 'skip-welcome';\r\n private static readonly previouslySelectedDatabaseLSKey = 'previously-selected-database';\r\n private static readonly machineIdLSKey = 'machine-id';\r\n private static readonly mapLayerLSKey = 'map-layer';\r\n private static readonly loggedUserEmailLSKey = 'email';\r\n private static readonly showPopupsLSKey = 'show-popups'\r\n\r\n constructor() {\r\n }\r\n\r\n setLoggedUserEmail(email: string) {\r\n localStorage.setItem(SettingsService.loggedUserEmailLSKey, email);\r\n }\r\n\r\n getLoggedUserEmail(): string | null {\r\n return localStorage.getItem(SettingsService.loggedUserEmailLSKey);\r\n }\r\n\r\n isSkipChooseLoginMethod(): boolean {\r\n return localStorage.getItem(SettingsService.skipWelcomeLSKey) !== null;\r\n }\r\n\r\n setSkipChooseLoginMethod() {\r\n localStorage.setItem(SettingsService.skipWelcomeLSKey, '');\r\n }\r\n\r\n getPreviouslySelectedDatabase(): string | null {\r\n return localStorage.getItem(SettingsService.previouslySelectedDatabaseLSKey);\r\n }\r\n\r\n setPreviouslySelectedDatabase(database: string) {\r\n localStorage.setItem(SettingsService.previouslySelectedDatabaseLSKey, database);\r\n }\r\n\r\n setMachineId(): string {\r\n const id = this.getGuid();\r\n localStorage.setItem(SettingsService.machineIdLSKey, JSON.stringify(id));\r\n return id;\r\n }\r\n\r\n getMachineId(): string {\r\n const id = localStorage.getItem(SettingsService.machineIdLSKey);\r\n return id ? id : this.setMachineId();\r\n }\r\n\r\n setMapLayer(mapLayer: MapLayerType) {\r\n localStorage.setItem(SettingsService.mapLayerLSKey, mapLayer.toString());\r\n }\r\n\r\n getMapLayer(): MapLayerType | null {\r\n const item = localStorage.getItem(SettingsService.mapLayerLSKey);\r\n return item ? +item as MapLayerType : null;\r\n }\r\n\r\n isShowPopups(): boolean {\r\n const item = localStorage.getItem(SettingsService.showPopupsLSKey);\r\n return item == null ? true : item === 'true';//domyślnie ta opcja jest włączona dopóki nie zostanie wykonana zmiana i zapis\r\n }\r\n\r\n setShowPopups(isShown: boolean) {\r\n localStorage.setItem(SettingsService.showPopupsLSKey, isShown.toString());\r\n }\r\n\r\n private getGuid(): string {\r\n let d = new Date().getTime();\r\n let d2 = (performance && performance.now && (performance.now() * 1000)) || 0;\r\n\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n let r = Math.random() * 16;\r\n if (d > 0) {\r\n r = (d + r) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n } else {\r\n r = (d2 + r) % 16 | 0;\r\n d2 = Math.floor(d2 / 16);\r\n }\r\n return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);\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
Błąd aplikacji
\r\n\r\n
Spróbuj ponownie, jeśli błąd się powtórzy skontaktuj się z BOK\r\n tel. +48 609 111 114\r\n
\r\n\r\n
{{error}}
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n","import {Component, Inject, isDevMode} from '@angular/core';\r\nimport {MAT_DIALOG_DATA} from '@angular/material/dialog';\r\n\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\n\r\n@Component({\r\n selector: 'sm-error-dialog',\r\n templateUrl: './error-dialog.component.html',\r\n})\r\nexport class ErrorDialogComponent {\r\n\r\n error?: string;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public model: string,\r\n private newNavigationService: NewNavigationService\r\n ) {\r\n if (isDevMode())\r\n this.error = this.model;\r\n }\r\n\r\n onSubmit() {\r\n this.newNavigationService.toLogout();\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {AppErrorHandler} from \"@shared/error-handler\";\r\nimport {ErrorDialogComponent} from \"@shared/components/error-dialog/error-dialog.component\";\r\nimport {DialogService} from \"@shared/services/dialog.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShowErrorModalService {\r\n\r\n constructor(private dialogService: DialogService) {\r\n }\r\n\r\n showModal(error?: any, isAlwaysShown = false) {\r\n if (!isAlwaysShown && AppErrorHandler.errorDisplayed)\r\n return;\r\n\r\n this.dialogService.open(ErrorDialogComponent, error);\r\n AppErrorHandler.errorDisplayed = true;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\n\r\n@Component({\r\n selector: 'sm-server-timeout-dialog',\r\n templateUrl: './server-timeout-dialog.component.html',\r\n})\r\nexport class ServerTimeoutDialogComponent {\r\n\r\n constructor(\r\n private newNavigationService: NewNavigationService\r\n ) {\r\n }\r\n\r\n onSubmit() {\r\n this.newNavigationService.toLogout();\r\n }\r\n}\r\n","\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
Serwer jest chwilowo przeciążony spróbuj\r\n ponownie za kilka minut\r\n
\r\n\r\n
Pracujemy obecnie, aby przywrócić pełną sprawność aplikacji jak\r\n najszybciej.\r\n Spróbuj ponownie za kilka minut. Jeśli będzie nadal występować skontaktuj się z BOK tel. +48 609 111 114
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n","import {Component} from '@angular/core';\r\n\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\n\r\n@Component({\r\n selector: 'sm-timeout-dialog',\r\n templateUrl: './timeout-dialog.component.html',\r\n})\r\nexport class TimeoutDialogComponent {\r\n\r\n constructor(\r\n private newNavigationService: NewNavigationService\r\n ) {\r\n }\r\n\r\n onSubmit() {\r\n this.newNavigationService.toLogout();\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 {{'internetConnectionProblem'|translate}}\r\n
\r\n\r\n
\r\n {{'internetConnectionProblemDescription'|translate}}\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n","import {Injectable} from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport {timeout} from \"rxjs/operators\";\r\n\r\nimport {ServerTimeoutDialogComponent} from \"@shared/components/server-timeout-dialog/server-timeout-dialog.component\";\r\nimport {TimeoutDialogComponent} from \"@shared/components/timeout-dialog/timeout-dialog.component\";\r\nimport {DialogService} from \"@shared/services/dialog.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShowTimeoutModalService {\r\n\r\n //api nie wymagające autentykacji\r\n private readonly apiUrl = 'https://en.wikipedia.org/api/rest_v1/page/';\r\n\r\n private showTimeout = false;\r\n\r\n private dialog: MatDialogRef;\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private httpClient: HttpClient) {\r\n }\r\n\r\n public showModal(): void {\r\n if (this.showTimeout)\r\n return;\r\n\r\n this.showTimeout = true;\r\n\r\n this.httpClient.get(this.apiUrl, {observe: 'response'})\r\n .pipe(timeout(5000))\r\n .subscribe({\r\n next: (x) => {\r\n const component = x.status === 200 ? ServerTimeoutDialogComponent : TimeoutDialogComponent;\r\n this.dialogService.open(component);\r\n },\r\n error: () => {\r\n this.dialog = this.dialogService.open(TimeoutDialogComponent);\r\n }\r\n });\r\n }\r\n\r\n public hideModal(): void {\r\n this.dialog.close();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport CryptoJS from 'crypto-js';\r\nimport { filter } from 'rxjs';\r\n\r\nimport { UserHttpService } from '@shared/services-http/user-http.service';\r\nimport { UserViewModel } from '@shared/view-models/user.viewmodel';\r\n\r\n\r\ndeclare global {\r\n interface Window {\r\n Tawk_API: any;\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TawkToChatService {\r\n\r\n private readonly API_TAWK_TO_KEY = '22287d4d4c8ba1a062f0bc8b5793552537106a95';\r\n\r\n constructor(\r\n private userHttpService: UserHttpService,\r\n ) {}\r\n\r\n public hideChat(): void {\r\n window.Tawk_API.minimize();\r\n window.Tawk_API.hideWidget();\r\n }\r\n\r\n public showWidgetAndChat(): void {\r\n window.Tawk_API.maximize();\r\n }\r\n\r\n public onStatusChange(): void {\r\n window.Tawk_API.onStatusChange = (status: string) => {\r\n if (status === 'online') {\r\n this.hideChat();\r\n }\r\n };\r\n window.Tawk_API.onLoad = () => {\r\n this.onLoadUserData();\r\n };\r\n }\r\n\r\n public initAttributesUser(userViewModel: UserViewModel): void {\r\n window.Tawk_API.setAttributes({\r\n 'name' : userViewModel.getFullName(),\r\n 'email' : userViewModel?.user.Email,\r\n 'phone' : userViewModel?.user.Phone,\r\n 'hash' : 'hash value'\r\n }, (err: any) => {});\r\n }\r\n\r\n private onLoadUserData(): void {\r\n this.userHttpService.userData$.pipe(filter(data => data !== null)).subscribe((data) => {\r\n this.initAttributesUser(data);\r\n this.login(data);\r\n });\r\n }\r\n\r\n private hashInBase64(userId:string): string {\r\n var hash = CryptoJS.HmacSHA256(userId, this.API_TAWK_TO_KEY);\r\n return CryptoJS.enc.Hex.stringify(hash);\r\n }\r\n\r\n public login(userViewModel: UserViewModel): void {\r\n console.log(userViewModel);\r\n\r\n const userId = String(userViewModel?.user.UserId);\r\n const hash = this.hashInBase64(userId);\r\n\r\n window.Tawk_API.login({\r\n hash,\r\n userId,\r\n },\r\n function (error: any) {\r\n if (error) {\r\n console.log('ERROR LOGIN TAWK:', error);\r\n } else {\r\n console.log('Logged in successfully');\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\r\n\r\nimport {\r\n NgxMatDatetimePickerModule,\r\n NgxMatNativeDateModule,\r\n NgxMatTimepickerModule\r\n} from '@angular-material-components/datetime-picker';\r\n\r\n@NgModule({\r\n exports: [\r\n NgxMatDatetimePickerModule,\r\n NgxMatTimepickerModule,\r\n NgxMatNativeDateModule,\r\n ]\r\n})\r\nexport class DateTimePickerModule {\r\n}\r\n","import * as i1 from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, EventEmitter, Directive, Optional, Inject, ContentChildren, Input, Output, Component, ViewEncapsulation, ChangeDetectionStrategy, Attribute, ViewChild, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i2 from '@angular/material/core';\nimport { mixinDisableRipple, MatCommonModule, MatRippleModule } from '@angular/material/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token that can be used to configure the\n * default options for all button toggles within an app.\n */\nconst MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS = new InjectionToken('MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS');\n/**\n * Injection token that can be used to reference instances of `MatButtonToggleGroup`.\n * It serves as alternative token to the actual `MatButtonToggleGroup` class which\n * could cause unnecessary retention of the class and its component metadata.\n */\nconst MAT_BUTTON_TOGGLE_GROUP = new InjectionToken('MatButtonToggleGroup');\n/**\n * Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nconst MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatButtonToggleGroup),\n multi: true,\n};\n// Counter used to generate unique IDs.\nlet uniqueIdCounter = 0;\n/** Change event object emitted by MatButtonToggle. */\nclass MatButtonToggleChange {\n constructor(\n /** The MatButtonToggle that emits the event. */\n source, \n /** The value assigned to the MatButtonToggle. */\n value) {\n this.source = source;\n this.value = value;\n }\n}\n/** Exclusive selection button toggle group that behaves like a radio-button group. */\nclass MatButtonToggleGroup {\n constructor(_changeDetector, defaultOptions) {\n this._changeDetector = _changeDetector;\n this._vertical = false;\n this._multiple = false;\n this._disabled = false;\n /**\n * The method to be called in order to update ngModel.\n * Now `ngModel` binding is not supported in multiple selection mode.\n */\n this._controlValueAccessorChangeFn = () => { };\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n this._onTouched = () => { };\n this._name = `mat-button-toggle-group-${uniqueIdCounter++}`;\n /**\n * Event that emits whenever the value of the group changes.\n * Used to facilitate two-way data binding.\n * @docs-private\n */\n this.valueChange = new EventEmitter();\n /** Event emitted when the group's value changes. */\n this.change = new EventEmitter();\n this.appearance =\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\n }\n /** `name` attribute for the underlying `input` element. */\n get name() {\n return this._name;\n }\n set name(value) {\n this._name = value;\n this._markButtonsForCheck();\n }\n /** Whether the toggle group is vertical. */\n get vertical() {\n return this._vertical;\n }\n set vertical(value) {\n this._vertical = coerceBooleanProperty(value);\n }\n /** Value of the toggle group. */\n get value() {\n const selected = this._selectionModel ? this._selectionModel.selected : [];\n if (this.multiple) {\n return selected.map(toggle => toggle.value);\n }\n return selected[0] ? selected[0].value : undefined;\n }\n set value(newValue) {\n this._setSelectionByValue(newValue);\n this.valueChange.emit(this.value);\n }\n /** Selected button toggles in the group. */\n get selected() {\n const selected = this._selectionModel ? this._selectionModel.selected : [];\n return this.multiple ? selected : selected[0] || null;\n }\n /** Whether multiple button toggles can be selected. */\n get multiple() {\n return this._multiple;\n }\n set multiple(value) {\n this._multiple = coerceBooleanProperty(value);\n this._markButtonsForCheck();\n }\n /** Whether multiple button toggle group is disabled. */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this._markButtonsForCheck();\n }\n ngOnInit() {\n this._selectionModel = new SelectionModel(this.multiple, undefined, false);\n }\n ngAfterContentInit() {\n this._selectionModel.select(...this._buttonToggles.filter(toggle => toggle.checked));\n }\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value Value to be set to the model.\n */\n writeValue(value) {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn) {\n this._controlValueAccessorChangeFn = fn;\n }\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /** Dispatch change event with current selection and group value. */\n _emitChangeEvent(toggle) {\n const event = new MatButtonToggleChange(toggle, this.value);\n this._controlValueAccessorChangeFn(event.value);\n this.change.emit(event);\n }\n /**\n * Syncs a button toggle's selected state with the model value.\n * @param toggle Toggle to be synced.\n * @param select Whether the toggle should be selected.\n * @param isUserInput Whether the change was a result of a user interaction.\n * @param deferEvents Whether to defer emitting the change events.\n */\n _syncButtonToggle(toggle, select, isUserInput = false, deferEvents = false) {\n // Deselect the currently-selected toggle, if we're in single-selection\n // mode and the button being toggled isn't selected at the moment.\n if (!this.multiple && this.selected && !toggle.checked) {\n this.selected.checked = false;\n }\n if (this._selectionModel) {\n if (select) {\n this._selectionModel.select(toggle);\n }\n else {\n this._selectionModel.deselect(toggle);\n }\n }\n else {\n deferEvents = true;\n }\n // We need to defer in some cases in order to avoid \"changed after checked errors\", however\n // the side-effect is that we may end up updating the model value out of sequence in others\n // The `deferEvents` flag allows us to decide whether to do it on a case-by-case basis.\n if (deferEvents) {\n Promise.resolve().then(() => this._updateModelValue(toggle, isUserInput));\n }\n else {\n this._updateModelValue(toggle, isUserInput);\n }\n }\n /** Checks whether a button toggle is selected. */\n _isSelected(toggle) {\n return this._selectionModel && this._selectionModel.isSelected(toggle);\n }\n /** Determines whether a button toggle should be checked on init. */\n _isPrechecked(toggle) {\n if (typeof this._rawValue === 'undefined') {\n return false;\n }\n if (this.multiple && Array.isArray(this._rawValue)) {\n return this._rawValue.some(value => toggle.value != null && value === toggle.value);\n }\n return toggle.value === this._rawValue;\n }\n /** Updates the selection state of the toggles in the group based on a value. */\n _setSelectionByValue(value) {\n this._rawValue = value;\n if (!this._buttonToggles) {\n return;\n }\n if (this.multiple && value) {\n if (!Array.isArray(value) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Value must be an array in multiple-selection mode.');\n }\n this._clearSelection();\n value.forEach((currentValue) => this._selectValue(currentValue));\n }\n else {\n this._clearSelection();\n this._selectValue(value);\n }\n }\n /** Clears the selected toggles. */\n _clearSelection() {\n this._selectionModel.clear();\n this._buttonToggles.forEach(toggle => (toggle.checked = false));\n }\n /** Selects a value if there's a toggle that corresponds to it. */\n _selectValue(value) {\n const correspondingOption = this._buttonToggles.find(toggle => {\n return toggle.value != null && toggle.value === value;\n });\n if (correspondingOption) {\n correspondingOption.checked = true;\n this._selectionModel.select(correspondingOption);\n }\n }\n /** Syncs up the group's value with the model and emits the change event. */\n _updateModelValue(toggle, isUserInput) {\n // Only emit the change event for user input.\n if (isUserInput) {\n this._emitChangeEvent(toggle);\n }\n // Note: we emit this one no matter whether it was a user interaction, because\n // it is used by Angular to sync up the two-way data binding.\n this.valueChange.emit(this.value);\n }\n /** Marks all of the child button toggles to be checked. */\n _markButtonsForCheck() {\n this._buttonToggles?.forEach(toggle => toggle._markForCheck());\n }\n}\nMatButtonToggleGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatButtonToggleGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nMatButtonToggleGroup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: MatButtonToggleGroup, selector: \"mat-button-toggle-group\", inputs: { appearance: \"appearance\", name: \"name\", vertical: \"vertical\", value: \"value\", multiple: \"multiple\", disabled: \"disabled\" }, outputs: { valueChange: \"valueChange\", change: \"change\" }, host: { attributes: { \"role\": \"group\" }, properties: { \"attr.aria-disabled\": \"disabled\", \"class.mat-button-toggle-vertical\": \"vertical\", \"class.mat-button-toggle-group-appearance-standard\": \"appearance === \\\"standard\\\"\" }, classAttribute: \"mat-button-toggle-group\" }, providers: [\n MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,\n { provide: MAT_BUTTON_TOGGLE_GROUP, useExisting: MatButtonToggleGroup },\n ], queries: [{ propertyName: \"_buttonToggles\", predicate: i0.forwardRef(function () { return MatButtonToggle; }), descendants: true }], exportAs: [\"matButtonToggleGroup\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatButtonToggleGroup, decorators: [{\n type: Directive,\n args: [{\n selector: 'mat-button-toggle-group',\n providers: [\n MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,\n { provide: MAT_BUTTON_TOGGLE_GROUP, useExisting: MatButtonToggleGroup },\n ],\n host: {\n 'role': 'group',\n 'class': 'mat-button-toggle-group',\n '[attr.aria-disabled]': 'disabled',\n '[class.mat-button-toggle-vertical]': 'vertical',\n '[class.mat-button-toggle-group-appearance-standard]': 'appearance === \"standard\"',\n },\n exportAs: 'matButtonToggleGroup',\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS]\n }] }]; }, propDecorators: { _buttonToggles: [{\n type: ContentChildren,\n args: [forwardRef(() => MatButtonToggle), {\n // Note that this would technically pick up toggles\n // from nested groups, but that's not a case that we support.\n descendants: true,\n }]\n }], appearance: [{\n type: Input\n }], name: [{\n type: Input\n }], vertical: [{\n type: Input\n }], value: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], multiple: [{\n type: Input\n }], disabled: [{\n type: Input\n }], change: [{\n type: Output\n }] } });\n// Boilerplate for applying mixins to the MatButtonToggle class.\n/** @docs-private */\nconst _MatButtonToggleBase = mixinDisableRipple(class {\n});\n/** Single button inside of a toggle group. */\nclass MatButtonToggle extends _MatButtonToggleBase {\n constructor(toggleGroup, _changeDetectorRef, _elementRef, _focusMonitor, defaultTabIndex, defaultOptions) {\n super();\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n this._focusMonitor = _focusMonitor;\n this._checked = false;\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n this.ariaLabelledby = null;\n this._disabled = false;\n /** Event emitted when the group value changes. */\n this.change = new EventEmitter();\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex = parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n this.buttonToggleGroup = toggleGroup;\n this.appearance =\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\n }\n /** Unique ID for the underlying `button` element. */\n get buttonId() {\n return `${this.id}-button`;\n }\n /** The appearance style of the button. */\n get appearance() {\n return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance;\n }\n set appearance(value) {\n this._appearance = value;\n }\n /** Whether the button is checked. */\n get checked() {\n return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked;\n }\n set checked(value) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this._checked) {\n this._checked = newValue;\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup._syncButtonToggle(this, this._checked);\n }\n this._changeDetectorRef.markForCheck();\n }\n }\n /** Whether the button is disabled. */\n get disabled() {\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n ngOnInit() {\n const group = this.buttonToggleGroup;\n this.id = this.id || `mat-button-toggle-${uniqueIdCounter++}`;\n if (group) {\n if (group._isPrechecked(this)) {\n this.checked = true;\n }\n else if (group._isSelected(this) !== this._checked) {\n // As as side effect of the circular dependency between the toggle group and the button,\n // we may end up in a state where the button is supposed to be checked on init, but it\n // isn't, because the checked value was assigned too early. This can happen when Ivy\n // assigns the static input value before the `ngOnInit` has run.\n group._syncButtonToggle(this, this._checked);\n }\n }\n }\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n }\n ngOnDestroy() {\n const group = this.buttonToggleGroup;\n this._focusMonitor.stopMonitoring(this._elementRef);\n // Remove the toggle from the selection once it's destroyed. Needs to happen\n // on the next tick in order to avoid \"changed after checked\" errors.\n if (group && group._isSelected(this)) {\n group._syncButtonToggle(this, false, false, true);\n }\n }\n /** Focuses the button. */\n focus(options) {\n this._buttonElement.nativeElement.focus(options);\n }\n /** Checks the button toggle due to an interaction with the underlying native button. */\n _onButtonClick() {\n const newChecked = this._isSingleSelector() ? true : !this._checked;\n if (newChecked !== this._checked) {\n this._checked = newChecked;\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup._syncButtonToggle(this, this._checked, true);\n this.buttonToggleGroup._onTouched();\n }\n }\n // Emit a change event when it's the single selector\n this.change.emit(new MatButtonToggleChange(this, this.value));\n }\n /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n */\n _markForCheck() {\n // When the group value changes, the button will not be notified.\n // Use `markForCheck` to explicit update button toggle's status.\n this._changeDetectorRef.markForCheck();\n }\n /** Gets the name that should be assigned to the inner DOM node. */\n _getButtonName() {\n if (this._isSingleSelector()) {\n return this.buttonToggleGroup.name;\n }\n return this.name || null;\n }\n /** Whether the toggle is in single selection mode. */\n _isSingleSelector() {\n return this.buttonToggleGroup && !this.buttonToggleGroup.multiple;\n }\n}\nMatButtonToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatButtonToggle, deps: [{ token: MAT_BUTTON_TOGGLE_GROUP, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.FocusMonitor }, { token: 'tabindex', attribute: true }, { token: MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component });\nMatButtonToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.0\", type: MatButtonToggle, selector: \"mat-button-toggle\", inputs: { disableRipple: \"disableRipple\", ariaLabel: [\"aria-label\", \"ariaLabel\"], ariaLabelledby: [\"aria-labelledby\", \"ariaLabelledby\"], id: \"id\", name: \"name\", value: \"value\", tabIndex: \"tabIndex\", appearance: \"appearance\", checked: \"checked\", disabled: \"disabled\" }, outputs: { change: \"change\" }, host: { attributes: { \"role\": \"presentation\" }, listeners: { \"focus\": \"focus()\" }, properties: { \"class.mat-button-toggle-standalone\": \"!buttonToggleGroup\", \"class.mat-button-toggle-checked\": \"checked\", \"class.mat-button-toggle-disabled\": \"disabled\", \"class.mat-button-toggle-appearance-standard\": \"appearance === \\\"standard\\\"\", \"attr.aria-label\": \"null\", \"attr.aria-labelledby\": \"null\", \"attr.id\": \"id\", \"attr.name\": \"null\" }, classAttribute: \"mat-button-toggle\" }, viewQueries: [{ propertyName: \"_buttonElement\", first: true, predicate: [\"button\"], descendants: true }], exportAs: [\"matButtonToggle\"], usesInheritance: true, ngImport: i0, template: \"\\n\\n\\n\\n\\n\", styles: [\".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;border-radius:2px;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0)}.cdk-high-contrast-active .mat-button-toggle-standalone,.cdk-high-contrast-active .mat-button-toggle-group{outline:solid 1px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:4px}.cdk-high-contrast-active .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.cdk-high-contrast-active .mat-button-toggle-group-appearance-standard{outline:0}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:1}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:.04}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.12}@media(hover: none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;line-height:36px;padding:0 16px;position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0}.cdk-high-contrast-active .mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 36px;opacity:.5;height:0}.cdk-high-contrast-active .mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.cdk-high-contrast-active .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}\"], dependencies: [{ kind: \"directive\", type: i2.MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatButtonToggle, decorators: [{\n type: Component,\n args: [{ selector: 'mat-button-toggle', encapsulation: ViewEncapsulation.None, exportAs: 'matButtonToggle', changeDetection: ChangeDetectionStrategy.OnPush, inputs: ['disableRipple'], host: {\n '[class.mat-button-toggle-standalone]': '!buttonToggleGroup',\n '[class.mat-button-toggle-checked]': 'checked',\n '[class.mat-button-toggle-disabled]': 'disabled',\n '[class.mat-button-toggle-appearance-standard]': 'appearance === \"standard\"',\n 'class': 'mat-button-toggle',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.id]': 'id',\n '[attr.name]': 'null',\n '(focus)': 'focus()',\n 'role': 'presentation',\n }, template: \"\\n\\n\\n\\n\\n\", styles: [\".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;border-radius:2px;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0)}.cdk-high-contrast-active .mat-button-toggle-standalone,.cdk-high-contrast-active .mat-button-toggle-group{outline:solid 1px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:4px}.cdk-high-contrast-active .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.cdk-high-contrast-active .mat-button-toggle-group-appearance-standard{outline:0}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:1}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:.04}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.12}@media(hover: none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;line-height:36px;padding:0 16px;position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0}.cdk-high-contrast-active .mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 36px;opacity:.5;height:0}.cdk-high-contrast-active .mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.cdk-high-contrast-active .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}\"] }]\n }], ctorParameters: function () { return [{ type: MatButtonToggleGroup, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_BUTTON_TOGGLE_GROUP]\n }] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.FocusMonitor }, { type: undefined, decorators: [{\n type: Attribute,\n args: ['tabindex']\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS]\n }] }]; }, propDecorators: { ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }], ariaLabelledby: [{\n type: Input,\n args: ['aria-labelledby']\n }], _buttonElement: [{\n type: ViewChild,\n args: ['button']\n }], id: [{\n type: Input\n }], name: [{\n type: Input\n }], value: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], appearance: [{\n type: Input\n }], checked: [{\n type: Input\n }], disabled: [{\n type: Input\n }], change: [{\n type: Output\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatButtonToggleModule {\n}\nMatButtonToggleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatButtonToggleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nMatButtonToggleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.0\", ngImport: i0, type: MatButtonToggleModule, declarations: [MatButtonToggleGroup, MatButtonToggle], imports: [MatCommonModule, MatRippleModule], exports: [MatCommonModule, MatButtonToggleGroup, MatButtonToggle] });\nMatButtonToggleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatButtonToggleModule, imports: [MatCommonModule, MatRippleModule, MatCommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatButtonToggleModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, MatRippleModule],\n exports: [MatCommonModule, MatButtonToggleGroup, MatButtonToggle],\n declarations: [MatButtonToggleGroup, MatButtonToggle],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS, MAT_BUTTON_TOGGLE_GROUP, MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, MatButtonToggle, MatButtonToggleChange, MatButtonToggleGroup, MatButtonToggleModule };\n","import * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MatCommonModule } from '@angular/material/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatDivider {\n constructor() {\n this._vertical = false;\n this._inset = false;\n }\n /** Whether the divider is vertically aligned. */\n get vertical() {\n return this._vertical;\n }\n set vertical(value) {\n this._vertical = coerceBooleanProperty(value);\n }\n /** Whether the divider is an inset divider. */\n get inset() {\n return this._inset;\n }\n set inset(value) {\n this._inset = coerceBooleanProperty(value);\n }\n}\nMatDivider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatDivider, deps: [], target: i0.ɵɵFactoryTarget.Component });\nMatDivider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.0\", type: MatDivider, selector: \"mat-divider\", inputs: { vertical: \"vertical\", inset: \"inset\" }, host: { attributes: { \"role\": \"separator\" }, properties: { \"attr.aria-orientation\": \"vertical ? \\\"vertical\\\" : \\\"horizontal\\\"\", \"class.mat-divider-vertical\": \"vertical\", \"class.mat-divider-horizontal\": \"!vertical\", \"class.mat-divider-inset\": \"inset\" }, classAttribute: \"mat-divider\" }, ngImport: i0, template: '', isInline: true, styles: [\".mat-divider{display:block;margin:0;border-top-width:1px;border-top-style:solid}.mat-divider.mat-divider-vertical{border-top:0;border-right-width:1px;border-right-style:solid}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatDivider, decorators: [{\n type: Component,\n args: [{ selector: 'mat-divider', host: {\n 'role': 'separator',\n '[attr.aria-orientation]': 'vertical ? \"vertical\" : \"horizontal\"',\n '[class.mat-divider-vertical]': 'vertical',\n '[class.mat-divider-horizontal]': '!vertical',\n '[class.mat-divider-inset]': 'inset',\n 'class': 'mat-divider',\n }, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".mat-divider{display:block;margin:0;border-top-width:1px;border-top-style:solid}.mat-divider.mat-divider-vertical{border-top:0;border-right-width:1px;border-right-style:solid}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}\"] }]\n }], propDecorators: { vertical: [{\n type: Input\n }], inset: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatDividerModule {\n}\nMatDividerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatDividerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nMatDividerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.0\", ngImport: i0, type: MatDividerModule, declarations: [MatDivider], imports: [MatCommonModule], exports: [MatDivider, MatCommonModule] });\nMatDividerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatDividerModule, imports: [MatCommonModule, MatCommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatDividerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule],\n exports: [MatDivider, MatCommonModule],\n declarations: [MatDivider],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatDivider, MatDividerModule };\n","import * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, Optional, Inject, ContentChildren, ContentChild, Input, forwardRef, EventEmitter, Output, ViewChild, NgModule } from '@angular/core';\nimport * as i1 from '@angular/material/core';\nimport { mixinDisabled, mixinDisableRipple, setLines, MatLine, MatLineModule, MatRippleModule, MatCommonModule, MatPseudoCheckboxModule } from '@angular/material/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Subject } from 'rxjs';\nimport { takeUntil, startWith } from 'rxjs/operators';\nimport * as i3 from '@angular/cdk/a11y';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { hasModifierKey, A, ENTER, SPACE, UP_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Boilerplate for applying mixins to MatList.\n/** @docs-private */\nconst _MatListBase = mixinDisabled(mixinDisableRipple(class {\n}));\n// Boilerplate for applying mixins to MatListItem.\n/** @docs-private */\nconst _MatListItemMixinBase = mixinDisableRipple(class {\n});\n/**\n * Injection token that can be used to inject instances of `MatList`. It serves as\n * alternative token to the actual `MatList` class which could cause unnecessary\n * retention of the class and its component metadata.\n */\nconst MAT_LIST = new InjectionToken('MatList');\n/**\n * Injection token that can be used to inject instances of `MatNavList`. It serves as\n * alternative token to the actual `MatNavList` class which could cause unnecessary\n * retention of the class and its component metadata.\n */\nconst MAT_NAV_LIST = new InjectionToken('MatNavList');\nclass MatNavList extends _MatListBase {\n constructor() {\n super(...arguments);\n /** Emits when the state of the list changes. */\n this._stateChanges = new Subject();\n }\n ngOnChanges() {\n this._stateChanges.next();\n }\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n}\nMatNavList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatNavList, deps: null, target: i0.ɵɵFactoryTarget.Component });\nMatNavList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.0\", type: MatNavList, selector: \"mat-nav-list\", inputs: { disableRipple: \"disableRipple\", disabled: \"disabled\" }, host: { attributes: { \"role\": \"navigation\" }, classAttribute: \"mat-nav-list mat-list-base\" }, providers: [{ provide: MAT_NAV_LIST, useExisting: MatNavList }], exportAs: [\"matNavList\"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"\\n\\n\", styles: [\".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}button.mat-list-item,button.mat-list-option{padding:0;width:100%;background:none;color:inherit;border:none;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] button.mat-list-item,[dir=rtl] button.mat-list-option{text-align:right}button.mat-list-item::-moz-focus-inner,button.mat-list-option::-moz-focus-inner{border:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:hover{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatNavList, decorators: [{\n type: Component,\n args: [{ selector: 'mat-nav-list', exportAs: 'matNavList', host: {\n 'role': 'navigation',\n 'class': 'mat-nav-list mat-list-base',\n }, inputs: ['disableRipple', 'disabled'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: MAT_NAV_LIST, useExisting: MatNavList }], template: \"\\n\\n\", styles: [\".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}button.mat-list-item,button.mat-list-option{padding:0;width:100%;background:none;color:inherit;border:none;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] button.mat-list-item,[dir=rtl] button.mat-list-option{text-align:right}button.mat-list-item::-moz-focus-inner,button.mat-list-option::-moz-focus-inner{border:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:hover{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}\"] }]\n }] });\nclass MatList extends _MatListBase {\n constructor(_elementRef) {\n super();\n this._elementRef = _elementRef;\n /** Emits when the state of the list changes. */\n this._stateChanges = new Subject();\n if (this._getListType() === 'action-list') {\n _elementRef.nativeElement.classList.add('mat-action-list');\n _elementRef.nativeElement.setAttribute('role', 'group');\n }\n }\n _getListType() {\n const nodeName = this._elementRef.nativeElement.nodeName.toLowerCase();\n if (nodeName === 'mat-list') {\n return 'list';\n }\n if (nodeName === 'mat-action-list') {\n return 'action-list';\n }\n return null;\n }\n ngOnChanges() {\n this._stateChanges.next();\n }\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n}\nMatList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatList, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nMatList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.0\", type: MatList, selector: \"mat-list, mat-action-list\", inputs: { disableRipple: \"disableRipple\", disabled: \"disabled\" }, host: { classAttribute: \"mat-list mat-list-base\" }, providers: [{ provide: MAT_LIST, useExisting: MatList }], exportAs: [\"matList\"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"\\n\\n\", styles: [\".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}button.mat-list-item,button.mat-list-option{padding:0;width:100%;background:none;color:inherit;border:none;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] button.mat-list-item,[dir=rtl] button.mat-list-option{text-align:right}button.mat-list-item::-moz-focus-inner,button.mat-list-option::-moz-focus-inner{border:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:hover{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatList, decorators: [{\n type: Component,\n args: [{ selector: 'mat-list, mat-action-list', exportAs: 'matList', host: {\n 'class': 'mat-list mat-list-base',\n }, inputs: ['disableRipple', 'disabled'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: MAT_LIST, useExisting: MatList }], template: \"\\n\\n\", styles: [\".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}button.mat-list-item,button.mat-list-option{padding:0;width:100%;background:none;color:inherit;border:none;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] button.mat-list-item,[dir=rtl] button.mat-list-option{text-align:right}button.mat-list-item::-moz-focus-inner,button.mat-list-option::-moz-focus-inner{border:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:hover{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nclass MatListAvatarCssMatStyler {\n}\nMatListAvatarCssMatStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatListAvatarCssMatStyler, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nMatListAvatarCssMatStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: MatListAvatarCssMatStyler, selector: \"[mat-list-avatar], [matListAvatar]\", host: { classAttribute: \"mat-list-avatar\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatListAvatarCssMatStyler, decorators: [{\n type: Directive,\n args: [{\n selector: '[mat-list-avatar], [matListAvatar]',\n host: { 'class': 'mat-list-avatar' },\n }]\n }] });\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nclass MatListIconCssMatStyler {\n}\nMatListIconCssMatStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatListIconCssMatStyler, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nMatListIconCssMatStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: MatListIconCssMatStyler, selector: \"[mat-list-icon], [matListIcon]\", host: { classAttribute: \"mat-list-icon\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatListIconCssMatStyler, decorators: [{\n type: Directive,\n args: [{\n selector: '[mat-list-icon], [matListIcon]',\n host: { 'class': 'mat-list-icon' },\n }]\n }] });\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nclass MatListSubheaderCssMatStyler {\n}\nMatListSubheaderCssMatStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatListSubheaderCssMatStyler, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nMatListSubheaderCssMatStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.0\", type: MatListSubheaderCssMatStyler, selector: \"[mat-subheader], [matSubheader]\", host: { classAttribute: \"mat-subheader\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.0\", ngImport: i0, type: MatListSubheaderCssMatStyler, decorators: [{\n type: Directive,\n args: [{\n selector: '[mat-subheader], [matSubheader]',\n host: { 'class': 'mat-subheader' },\n }]\n }] });\n/** An item within a Material Design list. */\nclass MatListItem extends _MatListItemMixinBase {\n constructor(_element, _changeDetectorRef, navList, list) {\n super();\n this._element = _element;\n this._isInteractiveList = false;\n this._destroyed = new Subject();\n this._disabled = false;\n this._isInteractiveList = !!(navList || (list && list._getListType() === 'action-list'));\n this._list = navList || list;\n // If no type attribute is specified for ","import {Component} from '@angular/core';\r\n\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\n\r\n@Component({\r\n templateUrl: './bok.component.html',\r\n styleUrls: ['./bok.component.less']\r\n})\r\nexport class BokComponent {\r\n\r\n constructor(private navigationService: NewNavigationService\r\n ) {\r\n }\r\n\r\n onNavigateToLogin() {\r\n this.navigationService.toLogin();\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
\r\n

Biuro obsługi Klienta

\r\n
\r\n Jeżeli nie masz dostępu do skrzynki e-mail,\r\n
to skontaktuj się z naszym Biurem obsługi Klienta\r\n
\r\n\r\n

609-111-114

\r\n
\r\n serwis@tekom.pl\r\n
\r\n
\r\n tekom.pl\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n Wróć\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n templateUrl: './not-found.component.html'\r\n})\r\nexport class NotFoundComponent { }\r\n","
\r\n Not found 404\r\n\r\n Home\r\n
","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'panelm-loading-initial-data',\r\n templateUrl: './loading-initial-data.component.html',\r\n styles: [`\r\n ::ng-deep.cdk-overlay-dark-backdrop {\r\n background: rgba(0,0,0,.1) !important;\r\n }\r\n `],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LoadingInitialDataComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n \r\n
{{'loading-initial-data.info' | translate}}
\r\n
{{'loading-initial-data.hint' | translate}}
\r\n
\r\n
\r\n
\r\n","export enum MapActionType {\r\n Areas = 1,\r\n}\r\n","export enum AdType {\r\n Fuel = 1,\r\n Tech5G = 2,\r\n FilesDDD = 3,\r\n Serwis = 4,\r\n NewOrders = 5,\r\n VehicelesAfter2025 = 6,\r\n End2gNew5g = 7,\r\n Tech5gBussiness = 8,\r\n}","import { Injectable } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class PanelNavigationService {\r\n\r\n // subject to zmian listy lite\r\n private visiblityChangeSubject: Subject = new Subject();\r\n\r\n // obsluga parametrow przychodzacych z url\r\n public resolve(change: any) {\r\n // podjecie decyzji co gdzie oublikowac\r\n this.visiblityChangeSubject.next({ show: false });\r\n\r\n\r\n // dalej\r\n const msg = this.prepareMessage(change);\r\n this.visiblityChangeSubject.next(msg);\r\n }\r\n\r\n public prepareMessage(change: any) {\r\n const url = change.url;\r\n const query = change.query;\r\n const id = query.params.id;\r\n const key = url.params.subsite + '-' + query.params.mode;\r\n const result = { subsites: [key], show: true, id: id };\r\n return result;\r\n }\r\n\r\n // pobranie subjectu\r\n getVisibilitySubject(): Subject {\r\n return this.visiblityChangeSubject;\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {BehaviorSubject, filter, map, Observable, switchMap, take, tap} from 'rxjs';\r\n\r\nimport {WebAccessService} from '../web.access/web-access.service';\r\n\r\nimport {EventListFilterRequest, IEventResponse} from '../../models/remote.request/EventListFilterRequest';\r\nimport {BusinessEvent} from '../../models/domain/BusinessEvent';\r\n\r\nimport {AuthenticationService} from \"@shared/services/authentication/authentication.service\";\r\n\r\n@Injectable()\r\nexport class EventService {\r\n\r\n private eventListAlarmSubject: BehaviorSubject = new BehaviorSubject([]);\r\n private eventListFuelSubject: BehaviorSubject = new BehaviorSubject([]);\r\n private eventListAreaSubject: BehaviorSubject = new BehaviorSubject([]);\r\n\r\n\r\n private filterRequestSubject: BehaviorSubject = new BehaviorSubject({});\r\n\r\n constructor(\r\n private $webAccess: WebAccessService,\r\n private authenticationService: AuthenticationService,\r\n ) {\r\n if (this.authenticationService.isLoggedByToken)\r\n return;\r\n\r\n this.authenticationService.isAuthenticated$.pipe(take(1)).subscribe(isAuthenticated => {\r\n if (isAuthenticated)\r\n this.initialize();\r\n });\r\n }\r\n\r\n private initialize() {\r\n // Build event list stream\r\n this.filterRequestSubject.pipe(\r\n filter(f => f ? true : false),\r\n switchMap(filter => this.$webAccess.GetEventListByFilter(filter)),\r\n tap(o => {\r\n o.Result.forEach(element => {\r\n\r\n // uzupelnienie danych\r\n\r\n // przygotowanie danych z uslugi\r\n element.EL.Lt = ((element.EL.Lt || '').replace(',', '.'));\r\n element.EL.Ln = ((element.EL.Ln || '').replace(',', '.'));\r\n });\r\n }))\r\n .subscribe(response => {\r\n\r\n const r = { eventType: response.EventType, events: response.Result as BusinessEvent[] };\r\n\r\n switch (response.EventType) {\r\n case 0:\r\n this.eventListAlarmSubject.next(r);\r\n break;\r\n case 1:\r\n this.eventListFuelSubject.next(r);\r\n break;\r\n case 2:\r\n this.eventListAreaSubject.next(r);\r\n break;\r\n }\r\n\r\n });\r\n }\r\n\r\n public getEventListAlarm$(): Observable {\r\n return this.eventListAlarmSubject.asObservable();\r\n }\r\n\r\n public getEventListFuel$(): Observable {\r\n return this.eventListFuelSubject.asObservable();\r\n }\r\n\r\n public getEventListArea$(): Observable {\r\n return this.eventListAreaSubject.asObservable();\r\n }\r\n\r\n\r\n public getEventFilterRequest$(): Observable {\r\n return this.filterRequestSubject.asObservable();\r\n }\r\n\r\n public filterEventList(filter: EventListFilterRequest): void {\r\n switch (filter.EventType) {\r\n case 0:\r\n this.eventListAlarmSubject.next(null);\r\n break;\r\n case 1:\r\n this.eventListFuelSubject.next(null);\r\n break;\r\n case 2:\r\n this.eventListAreaSubject.next(null);\r\n break;\r\n }\r\n\r\n this.filterRequestSubject.next(filter);\r\n }\r\n\r\n public findEvent(filter: EventListFilterRequest): Observable {\r\n return this.$webAccess.GetEventListByFilter(filter).pipe(map(\r\n response => { eventType: response.EventType, events: response.Result as BusinessEvent[] }\r\n ));\r\n }\r\n\r\n public getEventDetails(eventId: number): Observable {\r\n return this.$webAccess.GetEventDetails(eventId).pipe(map(\r\n event => {}\r\n ));\r\n }\r\n\r\n public resetEventNotification(): Observable {\r\n return this.$webAccess.ResetEventNotification().pipe(map(\r\n response => response.Result\r\n ));\r\n }\r\n\r\n\r\n public getEventActionForAlarm(): Observable {\r\n return this.$webAccess.GetEventActionList(0).pipe(map(\r\n response => response.Result\r\n ));\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {BehaviorSubject, map, Observable, of, Subject, switchMap, tap} from 'rxjs';\r\n\r\nimport {VehicleListFilterRequest} from '../../models/remote.request/VehicleListFilterRequest';\r\nimport {VehicleControlIndicator} from '../../models/domain/VehicleControlIndicator';\r\nimport {Vehicle} from '../../models/domain/Vehicle';\r\nimport {Driver} from '../../models/domain/Driver';\r\nimport {WebAccessService} from '../web.access/web-access.service';\r\nimport {VehicleControlIndicatorType} from '../../models/domain/VehicleControlIndicatorType';\r\nimport {SetSendToETollRequest} from '../../models/remote.request/SetSendToETollRequest';\r\nimport {UpdateVehicleNameRequest} from '../../models/remote.request/UpdateVehicleNameRequest';\r\n\r\nimport {NewWebSocketHttpService} from \"@shared/websocket/new-web-socket-http.service\";\r\nimport {NewDataStoreService} from \"@shared/services/new-data-store.service\";\r\n\r\n@Injectable()\r\nexport class VehicleService {\r\n\r\n private followVehicleSubject: BehaviorSubject = new BehaviorSubject(true);\r\n private listFilterSubject: BehaviorSubject = new BehaviorSubject([]);\r\n private listFilterCountSubject: BehaviorSubject = new BehaviorSubject({});\r\n private listFilterRequestSubject: Subject = new Subject();\r\n private sendVehicleChangeUpdate$: Subject = new Subject();\r\n private currentFilter: any;\r\n private currentFilterResult: any;\r\n\r\n constructor(\r\n private $webAccess: WebAccessService,\r\n private newDataStoreService: NewDataStoreService,\r\n private newWebSocketHttpService: NewWebSocketHttpService\r\n ) {\r\n }\r\n\r\n /**\r\n * inicjacja musi byc pozniej poniewaz w konstruktorze wywolanie serwisu do\r\n * zsynchronizowania danych juz te dane pobiera (uzywanie starych danych)\r\n */\r\n initDataFlow() {\r\n this.listFilterRequestSubject.pipe(\r\n switchMap(filter => {\r\n this.currentFilter = filter || {};\r\n return this.$webAccess.GetVehicleIdListByFilter(this.currentFilter);\r\n }),\r\n map(responses => {\r\n const response = responses;\r\n // counter\r\n const counter = response ? response.Statuses as any : null;\r\n // wynik\r\n const result = response ? response.Result as number[] : null;\r\n // result\r\n return {vehicleIds: result, counter: counter};\r\n }))\r\n .subscribe(result => {\r\n this.currentFilterResult = result;\r\n this.sendVehicleChangeUpdate$.next('filter');\r\n });\r\n\r\n\r\n this.newWebSocketHttpService.updatedVehicles.subscribe(() => {\r\n this.sendVehicleChangeUpdate$.next('webSocket');\r\n });\r\n\r\n this.sendVehicleChangeUpdate$.asObservable().pipe(\r\n switchMap(result => this.getList$()),\r\n map(vehicles => {\r\n if (this.currentFilterResult && this.currentFilterResult.vehicleIds) {\r\n const joined = this.sortMergeJoin(vehicles, this.currentFilterResult.vehicleIds);\r\n return {vehicles: joined, counter: this.currentFilterResult.counter};\r\n }\r\n return {vehicles: vehicles, counter: null};\r\n }))\r\n .subscribe(result => {\r\n this.listFilterCountSubject.next(result);\r\n\r\n // przekazanie do wyfiltrownych\r\n this.listFilterSubject.next(result.vehicles);\r\n });\r\n }\r\n\r\n getFollowVehicleSubject(): Observable {\r\n return this.followVehicleSubject.asObservable();\r\n }\r\n\r\n setFollowVehicleStatus(flag: boolean): void {\r\n this.followVehicleSubject.next(flag);\r\n }\r\n\r\n findVehicle(filter: VehicleListFilterRequest): void {\r\n this.listFilterRequestSubject.next(filter);\r\n }\r\n\r\n getCurrentDriver$(electronicId: string | number): Observable {\r\n return of(this.newDataStoreService.getDriverByElectronicId(electronicId.toString()))\r\n }\r\n\r\n\r\n getDetails$(vehicleId: number): Observable {\r\n return of(this.newDataStoreService.getVehicleById(vehicleId));\r\n }\r\n\r\n getList$(): Observable {\r\n return of(this.newDataStoreService.getVehicles());\r\n }\r\n\r\n getListFilteredCount$(): Observable {\r\n return this.listFilterCountSubject.asObservable();\r\n }\r\n\r\n getListFiltered$(): Observable {\r\n return this.listFilterSubject.asObservable();\r\n }\r\n\r\n refreshListFiltered(): void {\r\n this.sendVehicleChangeUpdate$.next('refresh');\r\n }\r\n\r\n getParameterList$(vehicleId: number): Observable {\r\n return of(this.newDataStoreService.getVehicleById(vehicleId))\r\n .pipe(\r\n // tap(x => console.table(x)),\r\n map(result => result && result.ControlIndicators ? result.ControlIndicators : []));\r\n }\r\n\r\n /**\r\n * pobranie listy wszystkich kontrolek\r\n */\r\n getVehicleControlIndicatorTypeList$(): Observable {\r\n const types: VehicleControlIndicatorType[] = [\r\n {Type: 1, Name: 'Adres'},\r\n {Type: 2, Name: 'Czas'},\r\n {Type: 3, Name: 'Czujniki'},\r\n {Type: 4, Name: 'Kierowca'},\r\n {Type: 5, Name: 'Licznik km'},\r\n {Type: 6, Name: 'Napięcie'},\r\n {Type: 7, Name: 'Obroty'},\r\n {Type: 8, Name: 'Paliwo'},\r\n //{ Type: 9, Name: 'Paliwo CAN' },\r\n {Type: 10, Name: 'Pedał gazu'},\r\n {Type: 11, Name: 'Pojazd'},\r\n {Type: 12, Name: 'Prędkość'},\r\n {Type: 13, Name: 'Status'},\r\n {Type: 14, Name: 'Sygnał GPS'},\r\n {Type: 15, Name: 'Sygnał GSM'},\r\n {Type: 16, Name: 'Tachograf'},\r\n {Type: 17, Name: 'Temperatura'},\r\n {Type: 18, Name: 'Zuzycie CAN'},\r\n {Type: 19, Name: 'eToll'},\r\n ];\r\n return of(types);\r\n }\r\n\r\n /**\r\n * Applies sort-merge join on vehicle ids on two given arrays (15x faster than .indexOf !== -1)\r\n * @param vehicles array of vehicles\r\n * @param vehicleIds array of vehicle ids\r\n */\r\n private sortMergeJoin(vehicles: Vehicle[], vehicleIds: number[]): Vehicle[] {\r\n\r\n vehicles.sort((x, y) => x.Id! - y.Id!);\r\n vehicleIds.sort((x, y) => x - y);\r\n\r\n let i = 0;\r\n let j = 0;\r\n const joined: Vehicle[] = [];\r\n\r\n while (i < vehicles.length && j < vehicleIds.length) {\r\n\r\n if (vehicles[i].Id === vehicleIds[j]) {\r\n joined.push(vehicles[i]);\r\n i += 1;\r\n j += 1;\r\n } else if (vehicles[i].Id! < vehicleIds[j]) {\r\n i += 1;\r\n } else {\r\n j += 1;\r\n }\r\n\r\n }\r\n\r\n return joined;\r\n }\r\n\r\n /**\r\n * włączenie/wyłączenie wysyłania danych do usługi e-Toll\r\n */\r\n setSendToEToll(sendToEToll: SetSendToETollRequest): Observable {\r\n return this.$webAccess.SetSendToEToll(sendToEToll)\r\n .pipe(map(response => response.Result));\r\n }\r\n\r\n /**\r\n * pobranie informacji o wysyłaniu danych do usługi e-Toll\r\n */\r\n getSendToEToll(idVehicle: number): Observable {\r\n return this.$webAccess.GetSendToEToll(idVehicle)\r\n .pipe(map(response => response.Result.SendToEToll));\r\n }\r\n\r\n updateVehicleName(updateVehicleNameRequest: UpdateVehicleNameRequest): Observable<{}> {\r\n return this.$webAccess.UpdateVehicleName(updateVehicleNameRequest)\r\n .pipe(\r\n map(response => response.Result.SendToEToll),\r\n switchMap(() => {\r\n return of(this.newDataStoreService.getVehicleById(updateVehicleNameRequest.IdVehicle))\r\n }),\r\n tap(vehicleFromDb => {\r\n this.newDataStoreService.addOrUpdateVehicle(vehicleFromDb);\r\n }))\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\nimport {map, Observable} from \"rxjs\";\r\n\r\nimport {WebResponse} from \"@commons/models/remote.response/WebResponse\";\r\n\r\nimport {BaseHttpService} from \"@shared/services-http/base-http.service\";\r\n\r\nimport {sendSurveyRequestModel} from \"@survey/models/send-survey-request.model\";\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SurveyHttpService extends BaseHttpService {\r\n\r\n constructor(\r\n private httpClient: HttpClient\r\n ) {\r\n super();\r\n }\r\n\r\n sendSurvey(surveyDetails: sendSurveyRequestModel): Observable {\r\n return this.httpClient.post(this.getUrl('/SendSurveyResult'), surveyDetails)\r\n .pipe(map(x => x as WebResponse));\r\n }\r\n\r\n // GB bez wywołania tej metody dla użytkowników którzy nigdy nie wypełniali wcześniej ankiety zapis jej wyniku nie był możliwy\r\n // ponieważ brakowało jak sądzę wiersza z ankietą dla usera który ją wypełnił\r\n // Tą metodę można wywoływać wielokrotnie ponieważ kiedyś to jej wynik określał czy ankieta ma być pokazana czy też nie.\r\n createSurveyInDb(): Observable {\r\n return this.httpClient.get(this.getUrl('/ShowSurvey'));\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'surveym-survey-sent',\r\n templateUrl: './survey-sent.component.html',\r\n styles: []\r\n})\r\nexport class SurveySentComponent implements OnInit {\r\n\r\n @Output() onClose = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onCloseAfterSent() {\r\n this.onClose.emit();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n\r\n
{{'survey.thank-you' | translate}}
\r\n\r\n
{{'survey.precious-opinion' | translate}}
\r\n\r\n\r\n\r\n","
\r\n
{{description}}
\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'surveym-star',\r\n templateUrl: './star.component.html',\r\n styles: []\r\n})\r\nexport class StarComponent {\r\n\r\n @Input() isSelected = false;\r\n @Input() isHovered = false;\r\n @Input() description = '';\r\n\r\n @Output() onSelected = new EventEmitter();\r\n @Output() onHoverd = new EventEmitter();\r\n\r\n get iconClasses(): string {\r\n if (this.isSelected) {\r\n return 'tk-i-star-blue';\r\n }\r\n return this.isHovered ? 'tk-i-star-border-blue' : 'tk-i-star-border-white';\r\n }\r\n\r\n onClick() {\r\n this.isSelected = true;\r\n this.onSelected.emit(this.isSelected);\r\n }\r\n\r\n onMouseEnter() {\r\n this.isHovered = true;\r\n this.onHoverd.emit(true);\r\n }\r\n\r\n onMouseLeave() {\r\n this.isHovered = false;\r\n this.onHoverd.emit(false);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import {Component, EventEmitter, Output} from '@angular/core';\r\n\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: 'surveym-rating',\r\n templateUrl: './rating.component.html',\r\n})\r\nexport class RatingComponent {\r\n\r\n @Output() ratingChanged = new EventEmitter();\r\n\r\n readonly ratingDescriptions: string[] = [];\r\n hoverdIndex = 0;\r\n\r\n private rating = 0;\r\n\r\n constructor(private translateService: TranslateService) {\r\n this.fillRatingDescriptions();\r\n }\r\n\r\n onStarSelected(starIndex: number) {\r\n this.rating = starIndex;\r\n this.ratingChanged.emit(starIndex);\r\n }\r\n\r\n onHoverd(starIndex: number, isHoverd: boolean) {\r\n this.hoverdIndex = isHoverd ? starIndex : 0;\r\n }\r\n\r\n isStarSelected(starIndex: number) {\r\n return this.rating >= starIndex;\r\n }\r\n\r\n isStarHoverd(starIndex: number) {\r\n return this.hoverdIndex >= starIndex;\r\n }\r\n\r\n private fillRatingDescriptions() {\r\n this.translateService.get([\r\n 'survey.star-label-poor',\r\n 'survey.star-label-awesome'])\r\n .subscribe(t => {\r\n Object.entries(t).forEach((x) => this.ratingDescriptions.push(x[1]));\r\n this.ratingDescriptions.splice(1,0, ''); //dodanie pustych podpisów pod gwiazdkami\r\n this.ratingDescriptions.splice(2,0, '');\r\n this.ratingDescriptions.splice(3,0, '');\r\n });\r\n }\r\n\r\n}\r\n","
{{'survey.select-reason' | translate}}
\r\n\r\n
\r\n \r\n
\r\n","import {Component, EventEmitter, Output} from '@angular/core';\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'surveym-reasons-list',\r\n templateUrl: './reasons-list.component.html'\r\n})\r\nexport class ReasonsListComponent {\r\n\r\n @Output() selectedReasonsChanged = new EventEmitter();\r\n\r\n reasons: string[] = [];\r\n selectedReasons: number[] = [];\r\n\r\n constructor(\r\n private translateService: TranslateService\r\n ) {\r\n this.setReasons();\r\n }\r\n\r\n private setReasons() {\r\n //zwracany jest obiekt mając zweiracjący pola o nazwach kluczy do przetłumaczenia a ich wartość to przetłumaczony string\r\n this.translateService.get([\r\n 'survey.reason-freezes',\r\n 'survey.reason-device',\r\n 'survey.reason-fuel',\r\n 'survey.reason-bad-day']).subscribe(t =>\r\n Object.entries(t).forEach((x) => this.reasons.push(x[1])));\r\n }\r\n\r\n isReasonSelected(tagIndex: number): boolean {\r\n return this.selectedReasons.findIndex(x => x === tagIndex) > -1;\r\n }\r\n\r\n onReasonClick(index: number) {\r\n this.setSelectedReasons(index);\r\n this.selectedReasonsChanged.emit(this.getSelectedReasons());\r\n }\r\n\r\n private setSelectedReasons(index: number) {\r\n const matchedIndex = this.selectedReasons.findIndex(x => x === index);\r\n if (matchedIndex > -1)\r\n this.selectedReasons = this.selectedReasons.filter(x => x != index);\r\n else\r\n this.selectedReasons.push(index);\r\n }\r\n\r\n private getSelectedReasons(): string {\r\n let result = '';\r\n\r\n for (let index of this.selectedReasons) {\r\n result += `${this.reasons[index]}/`;\r\n }\r\n\r\n return result.length > 0 ? ' POWODY: ' + result : '';\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
{{'survey.rate-app' | translate}}
\r\n\r\n
{{'survey.opinion-info' | translate}}
\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 \r\n\r\n
\r\n\r\n
\r\n","import {Component} from '@angular/core';\r\nimport {MatDialogRef} from '@angular/material/dialog';\r\n\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\nimport {sendSurveyRequestModel} from '@survey/models/send-survey-request.model';\r\nimport {SurveyHttpService} from \"@survey/services/survey-http.service\";\r\nimport {SurveyDisplayService} from \"@survey/services/survey-display.service\";\r\n\r\n@Component({\r\n selector: 'surveym-survey',\r\n templateUrl: './survey.component.html',\r\n styleUrls: ['./survey.component.less']\r\n})\r\nexport class SurveyComponent {\r\n\r\n isLoading = false;\r\n rating = 0;\r\n review = '';\r\n surveySent = false;\r\n isLowRatingReasonsVisible = false;\r\n selectedReasons = '';\r\n\r\n afterPositiveReviewMessage = '';\r\n afterNegativeReviewMessage = '';\r\n\r\n get reviewPlaceholder(): string {\r\n return this.rating > 2 ? this.afterPositiveReviewMessage : this.afterNegativeReviewMessage;\r\n }\r\n\r\n get isRatingSelected(): boolean {\r\n return this.rating > 0;\r\n }\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n private surveyHttpService: SurveyHttpService,\r\n private surveyDisplayService: SurveyDisplayService,\r\n private translateService: TranslateService\r\n ) {\r\n this.translateService.get('survey.after-positive-review').subscribe(t => this.afterPositiveReviewMessage = t);\r\n this.translateService.get('survey.after-negative-review').subscribe(t => this.afterNegativeReviewMessage = t);\r\n }\r\n\r\n onSend() {\r\n this.isLoading = true;\r\n this.sendSurvey(false);\r\n }\r\n\r\n onRatingChanged(starIndex: number) {\r\n this.rating = starIndex;\r\n this.isLowRatingReasonsVisible = this.rating <= 2;\r\n }\r\n\r\n onClose() {\r\n this.sendSurvey(false, true);\r\n this.dialogRef.close();\r\n }\r\n\r\n onCloseAfterSent() {\r\n this.dialogRef.close();\r\n }\r\n\r\n onSelectedReasonsChanged(selectedReasons: string) {\r\n this.selectedReasons = selectedReasons;\r\n }\r\n\r\n private sendSurvey(firstTimeSendJustRating: boolean, surveyClosed = false) {\r\n this.surveyHttpService.createSurveyInDb().subscribe(() => {\r\n const request = this.getSendSurveyRequest(firstTimeSendJustRating, surveyClosed);\r\n this.surveyHttpService.sendSurvey(request).subscribe({\r\n next: (x) => { this.afterSendSurvey(firstTimeSendJustRating, surveyClosed); },\r\n error: () => this.afterSendSurvey(firstTimeSendJustRating, surveyClosed) //udajemy że wszystko poszło jak trzeba\r\n });\r\n });\r\n }\r\n\r\n private getSendSurveyRequest(firstTimeSendJustRating: boolean, surveyClosed: boolean) {\r\n //api ma walidację ratingu i wartość 10 jest tylko po to żeby móc wysłać poprawny request do api z informacją że ankieta została zamknięta\r\n const fakeRating = 10;\r\n\r\n const request: sendSurveyRequestModel = {\r\n rating: surveyClosed ? fakeRating : this.rating,\r\n review: firstTimeSendJustRating ? '' : this.getFullReview(surveyClosed)\r\n };\r\n return request\r\n }\r\n\r\n private afterSendSurvey(firstTimeSendJustRating: boolean, surveyClosed = false) {\r\n this.isLoading = false;\r\n\r\n if (!firstTimeSendJustRating && !surveyClosed) {\r\n this.surveyDisplayService.saveSurveySentDate();\r\n this.surveySent = true;\r\n }\r\n }\r\n\r\n private getFullReview(surveyClosed = false): string {\r\n let fullReview = '';\r\n\r\n if (surveyClosed)\r\n fullReview += 'ANKIETA ZAMKNIĘTA';\r\n\r\n if (this.rating <= 2)\r\n fullReview += this.selectedReasons;\r\n\r\n if (this.review.length > 0)\r\n fullReview += ' KOMENTARZ: ' + this.review;\r\n\r\n return fullReview;\r\n }\r\n\r\n}\r\n","import {Injectable, isDevMode} from '@angular/core';\r\nimport {MatDialog, MatDialogConfig} from \"@angular/material/dialog\";\r\n\r\nimport {SurveyComponent} from \"@survey/components/survey/survey.component\";\r\n\r\nimport {AuthenticationService} from \"@shared/services/authentication/authentication.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SurveyDisplayService {\r\n\r\n private readonly surveyCounterLSKey = 'survey-counter';\r\n private readonly surveySentDateLSKey = 'survey-sent-date';\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private authenticationService: AuthenticationService) {\r\n }\r\n\r\n tryShowSurvey() {\r\n if (this.authenticationService.isLoggedByToken || isDevMode())\r\n return;\r\n\r\n let counter: number = +(localStorage.getItem(this.surveyCounterLSKey) ?? 0);\r\n counter++;\r\n\r\n const currentDate = new Date();\r\n const surveyShownDateRaw = localStorage.getItem(this.surveySentDateLSKey);\r\n const isFirstTimeShow = surveyShownDateRaw === null;\r\n const surveyShownDate = isFirstTimeShow ? currentDate : new Date(surveyShownDateRaw!);\r\n const whenShowSurvey = new Date(new Date().setFullYear(surveyShownDate.getFullYear() + 1));\r\n\r\n if (counter >= 10 && (isFirstTimeShow || currentDate.getTime() >= whenShowSurvey.getTime())) {\r\n counter = 0;\r\n this.openDialog(SurveyComponent);\r\n }\r\n\r\n localStorage.setItem(this.surveyCounterLSKey, counter.toString());\r\n }\r\n\r\n saveSurveySentDate() {\r\n localStorage.setItem(this.surveySentDateLSKey, new Date().toString());\r\n }\r\n\r\n private openDialog(component: any, model?: any) {\r\n const dialogRef = this.dialog.open(component, {\r\n disableClose: true,\r\n maxWidth: '100vw',\r\n maxHeight: '100vh',\r\n height: '100%',\r\n width: '100%',\r\n autoFocus: false,\r\n data: model,\r\n } as MatDialogConfig);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport {Subject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapPanelService {\r\n\r\n isMapPanelVisibleSubject = new Subject();\r\n forceDrawRouteSubject = new Subject();\r\n mainMapZoomLevelOffsetChanged = new Subject();\r\n\r\n constructor() { }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\nimport {map, Observable} from \"rxjs\";\r\nimport {Driver} from \"@commons/models/domain/Driver\";\r\n\r\nimport {BaseHttpService} from \"./base-http.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NewDriversHttpService extends BaseHttpService {\r\n\r\n constructor(private httpClient: HttpClient) {\r\n super();\r\n }\r\n\r\n get(): Observable {\r\n return this.httpClient.get(this.getUrl('/GetDriverList'))\r\n .pipe(map(result => result.Result.Result));\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {Observable, Subscriber} from \"rxjs\";\r\n\r\nimport {VehicleService} from \"@commons/services/vehicle/vehicle.service\";\r\nimport {Vehicle} from \"@commons/models/domain/Vehicle\";\r\n\r\nimport {NewDriversHttpService} from \"@shared/services-http/new-drivers-http.service\";\r\nimport {NewVehiclesHttpService} from \"@shared/services-http/new-vehicles-http.service\";\r\nimport {NewWebSocketHttpService} from \"@shared/websocket/new-web-socket-http.service\";\r\nimport {BaseService} from \"@shared/services/base.service\";\r\nimport {AuthenticationService} from \"@shared/services/authentication/authentication.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppInitializationService extends BaseService {\r\n\r\n constructor(\r\n private newDriversService: NewDriversHttpService,\r\n private newVehiclesService: NewVehiclesHttpService,\r\n private newWebSocketHttpService: NewWebSocketHttpService,\r\n private vehicleService: VehicleService,\r\n private authenticationService: AuthenticationService\r\n ) {\r\n super();\r\n }\r\n\r\n initialize(loadOnlyVehicles: boolean): Observable {\r\n return new Observable(observer => {\r\n this.newVehiclesService.getVehiclesWithIndicators(loadOnlyVehicles).subscribe(\r\n vehiclesWithIndicators =>\r\n this.afterVehiclesWithIndicatorsLoaded(\r\n observer,\r\n vehiclesWithIndicators,\r\n loadOnlyVehicles)\r\n )\r\n });\r\n }\r\n\r\n private afterVehiclesWithIndicatorsLoaded(\r\n observer: Subscriber,\r\n vehicles: Vehicle[],\r\n loadOnlyVehicles: boolean) {\r\n this.vehicleService.initDataFlow();\r\n\r\n const isLoggedByLink = this.authenticationService.isLoggedByToken;\r\n if (loadOnlyVehicles) {\r\n this.newWebSocketHttpService.start(this.authenticationService.sessionId!, vehicles, [], false, isLoggedByLink);\r\n observer.next(true);\r\n observer.complete();\r\n } else {\r\n this.newDriversService.get().subscribe((drivers) => {\r\n this.newWebSocketHttpService.start(this.authenticationService.sessionId!, vehicles, drivers, true, isLoggedByLink);\r\n observer.next(true);\r\n observer.complete();\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport {Observable, Subject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapEventsService {\r\n\r\n private onVehicleClickedSubject = new Subject();\r\n get vehicleClicked(): Observable {\r\n return this.onVehicleClickedSubject;\r\n }\r\n\r\n constructor() { }\r\n\r\n emmitVehicleClicked(vehicleId: number) {\r\n this.onVehicleClickedSubject.next(vehicleId);\r\n }\r\n}\r\n","export enum PackageName {\r\n Basic = 'e-TOLL BASIC',\r\n Business = 'Business'\r\n}","import { Injectable } from '@angular/core';\r\n\r\nimport { AdType } from '@src/app/enum/ad-type.enum';\r\nimport { PackageName } from '@src/app/enum/package-nane.enum';\r\nimport { TokenStore } from './authentication/token.store';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AdsControlService {\r\n\r\n private readonly adsListBasic = [\r\n { type: AdType.Fuel },\r\n { type: AdType.Tech5G },\r\n { type: AdType.NewOrders },\r\n { type: AdType.FilesDDD },\r\n { type: AdType.Serwis },\r\n ];\r\n\r\n private readonly adsListBussiness = [\r\n { type: AdType.Tech5gBussiness },\r\n { type: AdType.VehicelesAfter2025 },\r\n { type: AdType.End2gNew5g },\r\n ];\r\n\r\n public currentAdVisible: { type: AdType };\r\n\r\n private readonly STORAGE_KEY = 'lastAdIndex';\r\n private readonly tokenStore = new TokenStore();\r\n\r\n private get adsList(): any[] {\r\n return this.tokenStore.token?.packageName === PackageName.Business ? this.adsListBussiness : this.adsListBasic;\r\n }\r\n\r\n constructor() {\r\n this.showNextAd();\r\n }\r\n\r\n private getLastAdIndex(): number | null {\r\n const index = localStorage.getItem(this.STORAGE_KEY);\r\n return index !== null ? Number(index) : null;\r\n }\r\n\r\n private setLastAdIndex(index: number) {\r\n localStorage.setItem(this.STORAGE_KEY, index.toString());\r\n }\r\n\r\n private showAd(index: number): void {\r\n this.setLastAdIndex(index);\r\n this.currentAdVisible = this.adsList[index];\r\n }\r\n\r\n private showNextAd(): void {\r\n let lastIndex = this.getLastAdIndex();\r\n\r\n if (lastIndex === null || lastIndex >= this.adsList.length - 1) {\r\n lastIndex = 0;\r\n } else {\r\n lastIndex++;\r\n }\r\n\r\n this.showAd(lastIndex);\r\n }\r\n\r\n}\r\n","const { isArray } = Array;\nexport function argsOrArgArray(args) {\n return args.length === 1 && isArray(args[0]) ? args[0] : args;\n}\n","import { combineLatestInit } from '../observable/combineLatest';\nimport { operate } from '../util/lift';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { pipe } from '../util/pipe';\nimport { popResultSelector } from '../util/args';\nexport function combineLatest(...args) {\n const resultSelector = popResultSelector(args);\n return resultSelector\n ? pipe(combineLatest(...args), mapOneOrManyArgs(resultSelector))\n : operate((source, subscriber) => {\n combineLatestInit([source, ...argsOrArgArray(args)])(subscriber);\n });\n}\n","\r\nexport type MapEventType =\r\n 'resize' // Fired when the map is resized.\r\n | 'zoom' // Fired repeatedly during any change in zoom level, including zoom and fly animations.\r\n | 'zoomstart' // Fired when the map zoom is about to change (e.g. before zoom animation).\r\n | 'zoomend' // Fired when the map has changed, after any animations.\r\n | 'move' // Fired repeatedly during any movement of the map, including pan and fly animations.\r\n | 'movestart' // Fired when the view of the map starts changing (e.g. user starts dragging the map).\r\n | 'moveend' // Fired when the center of the map stops changing (e.g. user stopped dragging the map).\r\n | 'click' // Fired when the user clicks (or taps) the map\r\n | 'mousedown' // Fired when the user pushes the mouse button on the map.\r\n | 'mouseup' // Fired when the user releases the mouse button on the map.\r\n | 'mousemove' // Fired while the mouse moves over the map.\r\n | 'keypress' // Fired when the user presses a key from the keyboard while the map is focused.\r\n | 'drag'\r\n | 'wheel'\r\n ;\r\n\r\nexport const mapTypeEventTypes: MapEventType[] = [\r\n 'resize'\r\n , 'zoom'\r\n , 'zoomstart'\r\n , 'zoomend'\r\n , 'move'\r\n , 'movestart'\r\n , 'moveend'\r\n , 'click'\r\n , 'mousedown'\r\n , 'mouseup'\r\n , 'mousemove'\r\n , 'keypress'\r\n , 'drag'\r\n , 'wheel'\r\n];\r\n","\r\nexport enum VehicleStatusEnum {\r\n\r\n None = 0,\r\n Moving = 1,\r\n Parked = 2,\r\n NoGPS = 3,\r\n NoGSM = 4,\r\n Disconnected = 5,\r\n Towed = 6,\r\n}\r\n","export enum GroupMarkerColorsEnum {\r\n Red = 1,\r\n Green = 2,\r\n Blue = 4\r\n};","export enum TachoStatusWorker {\r\n Driving = 0,\r\n Work = 1,\r\n Rest = 2,\r\n Free = 3,\r\n Unkown = 4,\r\n}\r\n","import { OptionItem } from '../models/other/option-item.model';\r\nimport { FitBoundsOptions } from 'leaflet';\r\nimport { VehicleStatusEnum } from '../models/domain/VehicleStatusEnum';\r\nimport { GroupMarkerColorsEnum } from '../enums/group-marker-colors.enum';\r\nimport { TachoStatusWorker } from '@commons/enums/tacho.enum';\r\n\r\nexport class Consts {\r\n\r\n // zdarzenia\r\n public static readonly EventFuelAll = 0;\r\n public static readonly EventFuelRefuelling = 1;\r\n public static readonly EventFuelLoss = 2;\r\n public static readonly EventAreaAll = 0;\r\n public static readonly EventAreaEnter = 1;\r\n public static readonly EventAreaExit = 2;\r\n\r\n public static readonly InitDataFlow = 'InitDataFlow';\r\n public static readonly VehicleDataLoaded = 'VehicleDataLoaded';\r\n public static readonly Vehicle = 'Vehicle';\r\n public static readonly DriverDataLoaded = 'DriverDataLoaded';\r\n public static readonly DriverChanges = 'DriverChanges';\r\n public static readonly VehicleChanges = 'VehicleChanges';\r\n public static readonly Driver = 'Driver';\r\n public static readonly VehiclesIndicatorDataLoaded = 'VehiclesIndicatorDataLoaded';\r\n public static readonly VehicleControlIndicator = 'VehicleControlIndicator';\r\n public static readonly VehicleOnTheMapClicked = 'VehicleOnTheMapClicked';\r\n\r\n public static readonly driverDisplayFields: OptionItem[] = [\r\n { label: 'Eco/Safe', value: 0 },\r\n // { label: 'Tacho', value: 1 },\r\n ];\r\n\r\n public static readonly driverStatuses: OptionItem[] = [\r\n { label: 'driver-status.all', value: 0 },\r\n { label: 'driver-status.status-unknown', value: 1 },\r\n { label: 'driver-status.driving', value: 2 },\r\n { label: 'driver-status.parking', value: 3 },\r\n { label: 'driver-status.no-vehicle', value: 4 },\r\n ];\r\n\r\n public static readonly vehicleStatuses: OptionItem[] = [\r\n // { label: 'labels.all', value: 0 },\r\n { label: 'vehicle-status.driving', value: 2, checkboxColor: '#40c734' },\r\n { label: 'vehicle-status.parked', value: 4, checkboxColor: '#2d78ff' },\r\n { label: 'vehicle-status.device-issue', value: 1, checkboxColor: '#ff0032'},\r\n // { label: 'vehicle-status.towing', value: 6, checkboxColor: '#ff0032'}\r\n ];\r\n\r\n public static readonly vehicleTachoStatuses: OptionItem[] = [\r\n { label: 'drive', value: TachoStatusWorker.Driving, checkboxColor: '#54c732' },\r\n { label: 'work', value: TachoStatusWorker.Work, checkboxColor: '#FF0032' },\r\n { label: 'vehicle-details-tacho-tab.rest', value: TachoStatusWorker.Rest, checkboxColor: '#2D78FF'},\r\n { label: 'available', value: TachoStatusWorker.Free, checkboxColor: '#c89c0f'},\r\n { label: 'unknown', value: TachoStatusWorker.Unkown, checkboxColor: '#969696'},\r\n ];\r\n\r\n public static readonly vehicleIndicatorTypes: OptionItem[] = [\r\n { label: Consts.getVehicleIndicatorDisplayName(12), value: 12 },\r\n { label: Consts.getVehicleIndicatorDisplayName(6), value: 6 },\r\n { label: Consts.getVehicleIndicatorDisplayName(7), value: 7 },\r\n { label: Consts.getVehicleIndicatorDisplayName(5), value: 5 },\r\n // { label: Consts.getVehicleIndicatorDisplayName(8), value: 8 },\r\n { label: Consts.getVehicleIndicatorDisplayName(19), value: 19 }\r\n ];\r\n\r\n public static readonly fieldTypes: OptionItem[] = [\r\n { label: 'search-type.in-name', value: 'Description' },\r\n { label: 'search-type.in-address', value: 'Location' }\r\n ];\r\n\r\n\r\n public static readonly alarmEventActionType: OptionItem[] = [\r\n { label: 'labels.all', value: 0 }\r\n ];\r\n\r\n public static readonly fuelEventActionType: OptionItem[] = [\r\n { label: 'labels.all', value: 0 },\r\n { label: 'fuel-status.refueling', value: 1 },\r\n { label: 'fuel-status.drain', value: 2 }\r\n ];\r\n\r\n public static readonly areaEventActionType: OptionItem[] = [\r\n { label: 'labels.all', value: 0 },\r\n { label: 'area-event-type.entry', value: 1 },\r\n { label: 'area-event-type.leaves', value: 2 }\r\n ];\r\n\r\n public static getVehicleIndicatorName(vehicleIndicatorType: number): string {\r\n switch (vehicleIndicatorType) {\r\n case 5:\r\n return 'rpm';\r\n case 100:\r\n return 'gps';\r\n case 22:\r\n return 'gsm';\r\n case 1:\r\n return 'fuel';\r\n // case 27:\r\n // return 'fuel-cam';\r\n case 7:\r\n return 'power';\r\n case 2:\r\n return 'speed';\r\n case 16:\r\n return 'ignition';\r\n // case 8:\r\n // return 'aerial-platform';\r\n // case 9:\r\n // return 'cap';\r\n default:\r\n throw new Error('Unsupported vehicleIndicatorType: ' + vehicleIndicatorType);\r\n }\r\n }\r\n\r\n public static getVehicleIndicatorDisplayName(group: number): string {\r\n switch (group) {\r\n // prędkość\r\n case 12:\r\n return 'vehicle-indicator.speed';\r\n // napiecie\r\n case 6:\r\n return 'vehicle-indicator.voltage';\r\n // obroty\r\n case 7:\r\n return 'vehicle-indicator.rpm';\r\n // licznik\r\n case 5:\r\n return 'vehicle-indicator.counter';\r\n // paliwo\r\n case 8:\r\n return 'vehicle-indicator.fuel';\r\n case 19:\r\n return 'vehicle-indicator.eToll';\r\n default:\r\n return 'vehicle-indicator.group' + ' ' + group;\r\n }\r\n }\r\n\r\n public static readonly MapPadding : FitBoundsOptions = { padding: [60, 60] };\r\n\r\n public static readonly binaryIndicators: number[] = [\r\n 9, // binarny\r\n 19, // ruch (binarny)\r\n 26 // wypadku\r\n ];\r\n\r\n\r\n public static readonly VehicleSettingsByStatusMap = new Map([\r\n [\r\n VehicleStatusEnum.Moving, {\r\n groupMarkerColor: GroupMarkerColorsEnum.Green,\r\n markerNumber: 2,\r\n statusPopupMapIconUrl: '/assets/img/status/primary@3x.png',\r\n statusIconUrl: 'status/primary.png',\r\n statusClass: 'moving'\r\n }\r\n ],\r\n [\r\n VehicleStatusEnum.Parked, {\r\n groupMarkerColor: GroupMarkerColorsEnum.Blue,\r\n markerNumber: 4,\r\n statusPopupMapIconUrl: '/assets/img/status/parking@3x.png',\r\n statusIconUrl: 'status/parking.png',\r\n statusClass: 'parked'\r\n }\r\n ],\r\n [\r\n VehicleStatusEnum.NoGPS, {\r\n groupMarkerColor: GroupMarkerColorsEnum.Red,\r\n markerNumber: 1,\r\n statusPopupMapIconUrl: '/assets/img/status/error@3x.png',\r\n statusIconUrl: 'status/error.png',\r\n statusClass: 'fail'\r\n }\r\n ],\r\n [\r\n VehicleStatusEnum.NoGSM, {\r\n groupMarkerColor: GroupMarkerColorsEnum.Red,\r\n markerNumber: 1,\r\n statusPopupMapIconUrl: '/assets/img/status/error@3x.png',\r\n statusIconUrl: 'status/error.png',\r\n statusClass: 'fail'\r\n }\r\n ],\r\n [\r\n VehicleStatusEnum.Disconnected, {\r\n groupMarkerColor: GroupMarkerColorsEnum.Red,\r\n markerNumber: 1,\r\n statusPopupMapIconUrl: '/assets/img/status/error@3x.png',\r\n statusIconUrl: 'status/error.png',\r\n statusClass: 'fail'\r\n }\r\n ],\r\n [\r\n VehicleStatusEnum.Towed, {\r\n groupMarkerColor: GroupMarkerColorsEnum.Red,\r\n markerNumber: 3,\r\n statusPopupMapIconUrl: '/assets/img/status/towed@3x.png',\r\n statusIconUrl: 'status/towed.png',\r\n statusClass: 'fail'\r\n }\r\n ]\r\n ]);\r\n\r\n public static ETollStatusToIconMapping = new Map([\r\n [0, {\r\n iconUrl: '/assets/img/e-toll/status-unregistered.png'\r\n }],\r\n [1, {\r\n iconUrl: '/assets/img/e-toll/status-disabled.png'\r\n }],\r\n [2, {\r\n iconUrl: '/assets/img/e-toll/status-enabled.png'\r\n }],\r\n [3, {\r\n iconUrl: '/assets/img/e-toll/status-error.png'\r\n }]\r\n ]);\r\n}\r\n","import L, {TileLayer} from \"leaflet\";\r\nimport 'leaflet';\r\nimport 'leaflet.gridlayer.googlemutant';\r\n\r\nexport enum MapLayerType {\r\n none = 0,\r\n emapa = 1,\r\n osm = 2,\r\n // osmTransport = 3,\r\n googleRoadmap = 4,\r\n googleHybrid = 5\r\n}\r\n\r\n// jest to osobna klasa ponieważ zgodnie z instrukcją dla pluginu minimapy należy użyć osobnych instancji warstw żeby nie działy się dziwne rzeczy\r\nexport class MapLayers {\r\n readonly emapaLayer = new TileLayer(\r\n 'https://img1.emapi.pl/?fun=GetMap&zoom={z}&tileX={x}&tileY={y}&layer=std&userID=3uVpXregEaJHXg74', {\r\n minZoom: 2,\r\n maxZoom: 18\r\n });\r\n\r\n readonly osmLayer = new TileLayer(\r\n 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\r\n minZoom: 2,\r\n maxZoom: 18\r\n });\r\n\r\n //wykorzystanie wstrzymane aż do wyjaśnienia czy będzie używane\r\n // static readonly osmTransportLayer = new TileLayer(\r\n // 'https://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png', {\r\n // attribution: '© OpenStreetMap contributors',\r\n // minZoom: 2,\r\n // maxZoom: 18\r\n // });\r\n\r\n //jest do tego zainstalowany pakiet z typami @types/leaflet.gridlayer.googlemutant\r\n readonly googleStreetsLayer = L.gridLayer.googleMutant({\r\n type: \"roadmap\",\r\n minZoom: 2,\r\n maxZoom: 18\r\n });\r\n\r\n readonly googleHybridLayer = L.gridLayer.googleMutant({\r\n type: \"hybrid\",\r\n minZoom: 2,\r\n maxZoom: 18\r\n });\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class MapConfigService {\r\n\r\n private showPopups = false;\r\n private currentVehicleId?: number;\r\n\r\n private showPopupsChangeSubject: Subject = new Subject();\r\n private currentVehicleIdChangeSubject: Subject = new Subject();\r\n\r\n /**\r\n * pobranie flagi czy widoczen\r\n */\r\n public getShowPopupsFlag(): boolean {\r\n return this.showPopups;\r\n }\r\n public setShowPopupsFlag(flag: boolean): void {\r\n this.showPopups = flag;\r\n this.showPopupsChangeSubject.next(this.showPopups);\r\n }\r\n public showPopupsChange(): Observable {\r\n return this.showPopupsChangeSubject.asObservable();\r\n }\r\n\r\n\r\n /**\r\n * pobranie biezacego pojazdu\r\n */\r\n public getCurrentVehicleId(): number {\r\n return this.currentVehicleId!;\r\n }\r\n public setCurrentVehicleId(source: string, vehicleId?: number): void {\r\n if (this.currentVehicleId != vehicleId) {\r\n this.currentVehicleId = vehicleId;\r\n this.currentVehicleIdChangeSubject.next({ currentVehicleId: this.currentVehicleId, source: source });\r\n }\r\n }\r\n public currentVehicleIdChange(): Observable {\r\n return this.currentVehicleIdChangeSubject.asObservable();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { Popup } from 'leaflet';\r\nimport { get } from 'lodash';\r\n\r\nimport { Consts } from '../../../consts/consts';\r\nimport { VehicleStatusEnum } from '../../../models/domain/VehicleStatusEnum';\r\nimport { Cluster } from '../../../models/map/Cluster';\r\nimport { MapConfigService } from '../config/map-config.service';\r\n\r\n@Injectable()\r\nexport class PopupRendererService {\r\n\r\n /**\r\n * Flags indicating whether cluster popups are visible\r\n */\r\n private showPopups = false;\r\n\r\n /**\r\n * Service constructor\r\n */\r\n public constructor(\r\n private activeRoute: ActivatedRoute,\r\n private mapConfigService: MapConfigService,\r\n private router: Router,\r\n ) { }\r\n\r\n /**\r\n * Shows or hides all cluster popus\r\n * @param flag flag indicating whether to show ot hide cluster popus\r\n */\r\n public renderPopups(groups: any): void {\r\n\r\n const _Popup = Popup.extend({ options: { clusterId: undefined, isVisible: false } });\r\n const markers = groups.clusters;\r\n\r\n const visible: any = {};\r\n\r\n // schowanie wszystkich popu\r\n groups.popups.eachLayer((o: any) => {\r\n const clusterId = o.options.clusterId;\r\n visible[clusterId] = o;\r\n });\r\n\r\n const visibleKeys = Object.keys(visible).map(i => parseInt(i, 10));\r\n const clusterKeys: any[] = [];\r\n\r\n markers.eachLayer((m: any) => {\r\n const marker = m;\r\n const options = marker.options;\r\n const clusterId = options.clusterId;\r\n clusterKeys.push(clusterId);\r\n\r\n if (options.isPopupVisible === true || options.isCurrentVehicle === true) {\r\n\r\n const cluster = (window).CLUSTERS[clusterId];\r\n if (cluster) {\r\n let className = 'popupCustom';\r\n if (clusterId >= 0) {\r\n className += ' popupCustomGroup';\r\n } else {\r\n className += ` popupCustomVehicle popup-vehicle${ clusterId }`;\r\n }\r\n\r\n if (visibleKeys.indexOf(clusterId) === -1) {\r\n // get cluster\r\n const popup = new _Popup();\r\n popup.options.className = className;\r\n popup.options.closeButton = false;\r\n (popup as any).options.clusterId = clusterId;\r\n (popup as any).options.isVisible = true;\r\n popup.options.keepInView = false;\r\n popup.options.autoPan = false;\r\n\r\n popup.setLatLng(marker.getLatLng());\r\n const content = this.renderHtmlForPopup(cluster);\r\n popup.setContent(content);\r\n popup.addTo(groups.popups);\r\n } else {\r\n visible[clusterId].setLatLng(marker.getLatLng());\r\n }\r\n }\r\n\r\n } else {\r\n const popup = visible[clusterId];\r\n if (popup && popup.options.isOpenByEvent !== true) {\r\n popup.options.isVisible = false;\r\n }\r\n }\r\n });\r\n\r\n visibleKeys.forEach(clusterId => {\r\n if (clusterKeys.indexOf(clusterId) === -1) {\r\n const popup = visible[clusterId];\r\n if (popup && popup.options.isOpenByEvent !== true) {\r\n popup.options.isVisible = false;\r\n }\r\n }\r\n });\r\n\r\n // schowanie wszystkich popu\r\n groups.popups.eachLayer((o: any) => {\r\n const clusterId = o.options.clusterId;\r\n if (o.options.isVisible !== true) {\r\n groups.popups.removeLayer(o);\r\n o.remove();\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n /**\r\n * Generates html in cluster popup content\r\n * @param cluster\r\n */\r\n public renderHtmlForPopup(cluster: Cluster): string {\r\n let content = `
`;\r\n\r\n cluster.points.sort((a, b) => a.properties.VehicleName.localeCompare(b.properties.VehicleName)).forEach(point => {\r\n // Jak klaster jednoosobowy bierz propertasy klastra a nie samochodu\r\n\r\n if (point.properties === undefined) {\r\n point.properties = cluster.properties;\r\n }\r\n\r\n const lat = point.lat.toString().replace(',', '.');\r\n const lng = point.lng.toString().replace(',', '.');\r\n\r\n const defaultContentStreet = `\r\n Wczytywanie....\r\n \r\n `;\r\n\r\n const streetColumHTMLValue = (): string => {\r\n const clusterPopup = document.getElementById(`cluster-popup-${ point.properties.Id }`);\r\n if (clusterPopup) {\r\n const clusterPopupStreetValueCoords = clusterPopup.querySelector('.cluster-popup-item-details-vehicle__column-right');\r\n if (clusterPopupStreetValueCoords && clusterPopupStreetValueCoords.innerHTML?.length) {\r\n return clusterPopup.querySelector('.cluster-popup-item-details-vehicle__column-left')?.innerHTML as string;\r\n }\r\n }\r\n return defaultContentStreet;\r\n };\r\n\r\n const selectedPopupIdRoute = this.activeRoute.snapshot.queryParams['id'];\r\n const isSelectedVehicle = selectedPopupIdRoute == get(cluster, 'properties.Id', '');\r\n\r\n const googleMapsUrl = `https://www.google.com/maps?t=k&q=${lat}+${lng}`;\r\n\r\n const vehicleNameHTML = `\r\n ${ point.properties.VehicleName || 'No-vehicle-register' }\r\n `;\r\n\r\n if (isSelectedVehicle) {\r\n this.getSelectedVehiclePopup(selectedPopupIdRoute)?.classList.add('is-selected');\r\n }\r\n\r\n const onClickPopup = () => {\r\n document.getElementById(`cluster-popup-${ point.properties.Id }`)?.addEventListener('click', (ev) => {\r\n const target = (ev.target as HTMLElement);\r\n const ifGoogleMapsIcon = target.classList.contains('cluster-popup-google-maps-icon')\r\n \r\n if (ifGoogleMapsIcon) {\r\n return;\r\n }\r\n\r\n this.mapConfigService.setCurrentVehicleId('tk-vehicle-details', point.properties.Id);\r\n this.router.navigate(['panel', 'vehicle'], {queryParams: { 'mode': 'details', 'id': point.properties.Id }});\r\n });\r\n };\r\n\r\n setTimeout(() => {\r\n onClickPopup();\r\n }, 0);\r\n\r\n content += `\r\n \r\n
\r\n
\r\n ${ vehicleNameHTML }\r\n
\r\n \r\n
\r\n ${\r\n selectedPopupIdRoute == get(cluster, 'properties.Id', '')\r\n ? `
\r\n
${ streetColumHTMLValue() }
\r\n \r\n
`\r\n : ''\r\n }\r\n
\r\n `;\r\n });\r\n\r\n content += ``;\r\n\r\n return content;\r\n }\r\n\r\n private getSelectedVehiclePopup(id: number): Element | null {\r\n const elements = Array.from(document.getElementsByClassName(`popup-vehicle-${id}`));\r\n return elements.length > 0 ? elements[0] : null;\r\n }\r\n \r\n getIconForStatus(status: VehicleStatusEnum) : string {\r\n const vehSettings = Consts.VehicleSettingsByStatusMap.get(status);\r\n return vehSettings ? vehSettings.statusPopupMapIconUrl : `/assets/img/none.png`;\r\n }\r\n\r\n private getClassPopupByStatusVehicle(VehicleStatus: VehicleStatusEnum): string {\r\n if (VehicleStatus === VehicleStatusEnum.Parked) {\r\n return 'is-parked';\r\n }\r\n if (VehicleStatus === VehicleStatusEnum.Moving) {\r\n return 'is-moving';\r\n }\r\n\r\n const ifError = \r\n VehicleStatus === VehicleStatusEnum.NoGSM ||\r\n VehicleStatus === VehicleStatusEnum.NoGPS ||\r\n VehicleStatus === VehicleStatusEnum.Disconnected ||\r\n VehicleStatus === VehicleStatusEnum.Towed;\r\n\r\n if (ifError) {\r\n return 'is-error';\r\n }\r\n return '';\r\n };\r\n\r\n}\r\n","\nexport default function sortKD(ids, coords, nodeSize, left, right, depth) {\n if (right - left <= nodeSize) return;\n\n const m = (left + right) >> 1;\n\n select(ids, coords, m, left, right, depth % 2);\n\n sortKD(ids, coords, nodeSize, left, m - 1, depth + 1);\n sortKD(ids, coords, nodeSize, m + 1, right, depth + 1);\n}\n\nfunction select(ids, coords, k, left, right, inc) {\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, inc);\n }\n\n const t = coords[2 * k + inc];\n let i = left;\n let j = right;\n\n swapItem(ids, coords, left, k);\n if (coords[2 * right + inc] > t) swapItem(ids, coords, left, right);\n\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + inc] < t) i++;\n while (coords[2 * j + inc] > t) j--;\n }\n\n if (coords[2 * left + inc] === t) swapItem(ids, coords, left, j);\n else {\n j++;\n swapItem(ids, coords, j, right);\n }\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\n\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n","\nexport default function within(ids, coords, qx, qy, r, nodeSize) {\n const stack = [0, ids.length - 1, 0];\n const result = [];\n const r2 = r * r;\n\n while (stack.length) {\n const axis = stack.pop();\n const right = stack.pop();\n const left = stack.pop();\n\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n continue;\n }\n\n const m = Math.floor((left + right) / 2);\n\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n\n const nextAxis = (axis + 1) % 2;\n\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n\n return result;\n}\n\nfunction sqDist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n","\nimport sort from './sort';\nimport range from './range';\nimport within from './within';\n\nconst defaultGetX = p => p[0];\nconst defaultGetY = p => p[1];\n\nexport default class KDBush {\n constructor(points, getX = defaultGetX, getY = defaultGetY, nodeSize = 64, ArrayType = Float64Array) {\n this.nodeSize = nodeSize;\n this.points = points;\n\n const IndexArrayType = points.length < 65536 ? Uint16Array : Uint32Array;\n\n const ids = this.ids = new IndexArrayType(points.length);\n const coords = this.coords = new ArrayType(points.length * 2);\n\n for (let i = 0; i < points.length; i++) {\n ids[i] = i;\n coords[2 * i] = getX(points[i]);\n coords[2 * i + 1] = getY(points[i]);\n }\n\n sort(ids, coords, nodeSize, 0, ids.length - 1, 0);\n }\n\n range(minX, minY, maxX, maxY) {\n return range(this.ids, this.coords, minX, minY, maxX, maxY, this.nodeSize);\n }\n\n within(x, y, r) {\n return within(this.ids, this.coords, x, y, r, this.nodeSize);\n }\n}\n","\nexport default function range(ids, coords, minX, minY, maxX, maxY, nodeSize) {\n const stack = [0, ids.length - 1, 0];\n const result = [];\n let x, y;\n\n while (stack.length) {\n const axis = stack.pop();\n const right = stack.pop();\n const left = stack.pop();\n\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n x = coords[2 * i];\n y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[i]);\n }\n continue;\n }\n\n const m = Math.floor((left + right) / 2);\n\n x = coords[2 * m];\n y = coords[2 * m + 1];\n\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n\n const nextAxis = (axis + 1) % 2;\n\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n\n return result;\n}\n","\nimport KDBush from 'kdbush';\n\nconst defaultOptions = {\n minZoom: 0, // min zoom to generate clusters on\n maxZoom: 16, // max zoom level to cluster the points on\n minPoints: 2, // minimum points to form a cluster\n radius: 40, // cluster radius in pixels\n extent: 512, // tile extent (radius is calculated relative to it)\n nodeSize: 64, // size of the KD-tree leaf node, affects performance\n log: false, // whether to log timing info\n\n // whether to generate numeric ids for input features (in vector tiles)\n generateId: false,\n\n // a reduce function for calculating custom cluster properties\n reduce: null, // (accumulated, props) => { accumulated.sum += props.sum; }\n\n // properties to use for individual points when running the reducer\n map: props => props // props => ({sum: props.my_value})\n};\n\nconst fround = Math.fround || (tmp => ((x) => { tmp[0] = +x; return tmp[0]; }))(new Float32Array(1));\n\nexport default class Supercluster {\n constructor(options) {\n this.options = extend(Object.create(defaultOptions), options);\n this.trees = new Array(this.options.maxZoom + 1);\n }\n\n load(points) {\n const {log, minZoom, maxZoom, nodeSize} = this.options;\n\n if (log) console.time('total time');\n\n const timerId = `prepare ${ points.length } points`;\n if (log) console.time(timerId);\n\n this.points = points;\n\n // generate a cluster object for each point and index input points into a KD-tree\n let clusters = [];\n for (let i = 0; i < points.length; i++) {\n if (!points[i].geometry) continue;\n clusters.push(createPointCluster(points[i], i));\n }\n this.trees[maxZoom + 1] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n\n if (log) console.timeEnd(timerId);\n\n // cluster points on max zoom, then cluster the results on previous zoom, etc.;\n // results in a cluster hierarchy across zoom levels\n for (let z = maxZoom; z >= minZoom; z--) {\n const now = +Date.now();\n\n // create a new set of clusters for the zoom and index them with a KD-tree\n clusters = this._cluster(clusters, z);\n this.trees[z] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n\n if (log) console.log('z%d: %d clusters in %dms', z, clusters.length, +Date.now() - now);\n }\n\n if (log) console.timeEnd('total time');\n\n return this;\n }\n\n getClusters(bbox, zoom) {\n let minLng = ((bbox[0] + 180) % 360 + 360) % 360 - 180;\n const minLat = Math.max(-90, Math.min(90, bbox[1]));\n let maxLng = bbox[2] === 180 ? 180 : ((bbox[2] + 180) % 360 + 360) % 360 - 180;\n const maxLat = Math.max(-90, Math.min(90, bbox[3]));\n\n if (bbox[2] - bbox[0] >= 360) {\n minLng = -180;\n maxLng = 180;\n } else if (minLng > maxLng) {\n const easternHem = this.getClusters([minLng, minLat, 180, maxLat], zoom);\n const westernHem = this.getClusters([-180, minLat, maxLng, maxLat], zoom);\n return easternHem.concat(westernHem);\n }\n\n const tree = this.trees[this._limitZoom(zoom)];\n const ids = tree.range(lngX(minLng), latY(maxLat), lngX(maxLng), latY(minLat));\n const clusters = [];\n for (const id of ids) {\n const c = tree.points[id];\n clusters.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n return clusters;\n }\n\n getChildren(clusterId) {\n const originId = this._getOriginId(clusterId);\n const originZoom = this._getOriginZoom(clusterId);\n const errorMsg = 'No cluster with the specified id.';\n\n const index = this.trees[originZoom];\n if (!index) throw new Error(errorMsg);\n\n const origin = index.points[originId];\n if (!origin) throw new Error(errorMsg);\n\n const r = this.options.radius / (this.options.extent * Math.pow(2, originZoom - 1));\n const ids = index.within(origin.x, origin.y, r);\n const children = [];\n for (const id of ids) {\n const c = index.points[id];\n if (c.parentId === clusterId) {\n children.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n }\n\n if (children.length === 0) throw new Error(errorMsg);\n\n return children;\n }\n\n getLeaves(clusterId, limit, offset) {\n limit = limit || 10;\n offset = offset || 0;\n\n const leaves = [];\n this._appendLeaves(leaves, clusterId, limit, offset, 0);\n\n return leaves;\n }\n\n getTile(z, x, y) {\n const tree = this.trees[this._limitZoom(z)];\n const z2 = Math.pow(2, z);\n const {extent, radius} = this.options;\n const p = radius / extent;\n const top = (y - p) / z2;\n const bottom = (y + 1 + p) / z2;\n\n const tile = {\n features: []\n };\n\n this._addTileFeatures(\n tree.range((x - p) / z2, top, (x + 1 + p) / z2, bottom),\n tree.points, x, y, z2, tile);\n\n if (x === 0) {\n this._addTileFeatures(\n tree.range(1 - p / z2, top, 1, bottom),\n tree.points, z2, y, z2, tile);\n }\n if (x === z2 - 1) {\n this._addTileFeatures(\n tree.range(0, top, p / z2, bottom),\n tree.points, -1, y, z2, tile);\n }\n\n return tile.features.length ? tile : null;\n }\n\n getClusterExpansionZoom(clusterId) {\n let expansionZoom = this._getOriginZoom(clusterId) - 1;\n while (expansionZoom <= this.options.maxZoom) {\n const children = this.getChildren(clusterId);\n expansionZoom++;\n if (children.length !== 1) break;\n clusterId = children[0].properties.cluster_id;\n }\n return expansionZoom;\n }\n\n _appendLeaves(result, clusterId, limit, offset, skipped) {\n const children = this.getChildren(clusterId);\n\n for (const child of children) {\n const props = child.properties;\n\n if (props && props.cluster) {\n if (skipped + props.point_count <= offset) {\n // skip the whole cluster\n skipped += props.point_count;\n } else {\n // enter the cluster\n skipped = this._appendLeaves(result, props.cluster_id, limit, offset, skipped);\n // exit the cluster\n }\n } else if (skipped < offset) {\n // skip a single point\n skipped++;\n } else {\n // add a single point\n result.push(child);\n }\n if (result.length === limit) break;\n }\n\n return skipped;\n }\n\n _addTileFeatures(ids, points, x, y, z2, tile) {\n for (const i of ids) {\n const c = points[i];\n const isCluster = c.numPoints;\n\n let tags, px, py;\n if (isCluster) {\n tags = getClusterProperties(c);\n px = c.x;\n py = c.y;\n } else {\n const p = this.points[c.index];\n tags = p.properties;\n px = lngX(p.geometry.coordinates[0]);\n py = latY(p.geometry.coordinates[1]);\n }\n\n const f = {\n type: 1,\n geometry: [[\n Math.round(this.options.extent * (px * z2 - x)),\n Math.round(this.options.extent * (py * z2 - y))\n ]],\n tags\n };\n\n // assign id\n let id;\n if (isCluster) {\n id = c.id;\n } else if (this.options.generateId) {\n // optionally generate id\n id = c.index;\n } else if (this.points[c.index].id) {\n // keep id if already assigned\n id = this.points[c.index].id;\n }\n\n if (id !== undefined) f.id = id;\n\n tile.features.push(f);\n }\n }\n\n _limitZoom(z) {\n return Math.max(this.options.minZoom, Math.min(Math.floor(+z), this.options.maxZoom + 1));\n }\n\n _cluster(points, zoom) {\n const clusters = [];\n const {radius, extent, reduce, minPoints} = this.options;\n const r = radius / (extent * Math.pow(2, zoom));\n\n // loop through each point\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n // if we've already visited the point at this zoom level, skip it\n if (p.zoom <= zoom) continue;\n p.zoom = zoom;\n\n // find all nearby points\n const tree = this.trees[zoom + 1];\n const neighborIds = tree.within(p.x, p.y, r);\n\n const numPointsOrigin = p.numPoints || 1;\n let numPoints = numPointsOrigin;\n\n // count the number of points in a potential cluster\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n // filter out neighbors that are already processed\n if (b.zoom > zoom) numPoints += b.numPoints || 1;\n }\n\n // if there were neighbors to merge, and there are enough points to form a cluster\n if (numPoints > numPointsOrigin && numPoints >= minPoints) {\n let wx = p.x * numPointsOrigin;\n let wy = p.y * numPointsOrigin;\n\n let clusterProperties = reduce && numPointsOrigin > 1 ? this._map(p, true) : null;\n\n // encode both zoom and point index on which the cluster originated -- offset by total length of features\n const id = (i << 5) + (zoom + 1) + this.points.length;\n\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n\n if (b.zoom <= zoom) continue;\n b.zoom = zoom; // save the zoom (so it doesn't get processed twice)\n\n const numPoints2 = b.numPoints || 1;\n wx += b.x * numPoints2; // accumulate coordinates for calculating weighted center\n wy += b.y * numPoints2;\n\n b.parentId = id;\n\n if (reduce) {\n if (!clusterProperties) clusterProperties = this._map(p, true);\n reduce(clusterProperties, this._map(b));\n }\n }\n\n p.parentId = id;\n clusters.push(createCluster(wx / numPoints, wy / numPoints, id, numPoints, clusterProperties));\n\n } else { // left points as unclustered\n clusters.push(p);\n\n if (numPoints > 1) {\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n if (b.zoom <= zoom) continue;\n b.zoom = zoom;\n clusters.push(b);\n }\n }\n }\n }\n\n return clusters;\n }\n\n // get index of the point from which the cluster originated\n _getOriginId(clusterId) {\n return (clusterId - this.points.length) >> 5;\n }\n\n // get zoom of the point from which the cluster originated\n _getOriginZoom(clusterId) {\n return (clusterId - this.points.length) % 32;\n }\n\n _map(point, clone) {\n if (point.numPoints) {\n return clone ? extend({}, point.properties) : point.properties;\n }\n const original = this.points[point.index].properties;\n const result = this.options.map(original);\n return clone && result === original ? extend({}, result) : result;\n }\n}\n\nfunction createCluster(x, y, id, numPoints, properties) {\n return {\n x: fround(x), // weighted cluster center; round for consistency with Float32Array index\n y: fround(y),\n zoom: Infinity, // the last zoom the cluster was processed at\n id, // encodes index of the first child of the cluster and its zoom level\n parentId: -1, // parent cluster id\n numPoints,\n properties\n };\n}\n\nfunction createPointCluster(p, id) {\n const [x, y] = p.geometry.coordinates;\n return {\n x: fround(lngX(x)), // projected point coordinates\n y: fround(latY(y)),\n zoom: Infinity, // the last zoom the point was processed at\n index: id, // index of the source feature in the original input array,\n parentId: -1 // parent cluster id\n };\n}\n\nfunction getClusterJSON(cluster) {\n return {\n type: 'Feature',\n id: cluster.id,\n properties: getClusterProperties(cluster),\n geometry: {\n type: 'Point',\n coordinates: [xLng(cluster.x), yLat(cluster.y)]\n }\n };\n}\n\nfunction getClusterProperties(cluster) {\n const count = cluster.numPoints;\n const abbrev =\n count >= 10000 ? `${Math.round(count / 1000) }k` :\n count >= 1000 ? `${Math.round(count / 100) / 10 }k` : count;\n return extend(extend({}, cluster.properties), {\n cluster: true,\n cluster_id: cluster.id,\n point_count: count,\n point_count_abbreviated: abbrev\n });\n}\n\n// longitude/latitude to spherical mercator in [0..1] range\nfunction lngX(lng) {\n return lng / 360 + 0.5;\n}\nfunction latY(lat) {\n const sin = Math.sin(lat * Math.PI / 180);\n const y = (0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI);\n return y < 0 ? 0 : y > 1 ? 1 : y;\n}\n\n// spherical mercator to longitude/latitude\nfunction xLng(x) {\n return (x - 0.5) * 360;\n}\nfunction yLat(y) {\n const y2 = (180 - y * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(y2)) / Math.PI - 90;\n}\n\nfunction extend(dest, src) {\n for (const id in src) dest[id] = src[id];\n return dest;\n}\n\nfunction getX(p) {\n return p.x;\n}\nfunction getY(p) {\n return p.y;\n}\n","\r\n/**\r\n * Abstraction of map 2D point\r\n */\r\nexport class Point {\r\n\r\n /**\r\n * Latitude\r\n */\r\n public lat: number;\r\n\r\n /**\r\n * Longtitude\r\n */\r\n public lng: number;\r\n\r\n /**\r\n * A value that uniquely identifies this point\r\n */\r\n public id?: string | number;\r\n\r\n /**\r\n * Object for currying properties necessary after clustering\r\n */\r\n public properties?: any\r\n\r\n /**\r\n * Construktor of Point\r\n * @param lat latitude\r\n * @param lng longitude\r\n */\r\n public constructor(lat: number = 0, lng: number = 0) {\r\n this.lat = lat;\r\n this.lng = lng;\r\n }\r\n\r\n}","import { Point } from './point.model';\r\n\r\n\r\n/**\r\n * Cluster abstraction, aggregates map 2D points\r\n */\r\nexport class Cluster extends Point {\r\n\r\n /**\r\n * Cluster id\r\n */\r\n public clusterId?: number;\r\n\r\n /**\r\n * Points in cluster\r\n */\r\n public points: Point[] = [];\r\n\r\n /**\r\n * Number of points in cluster\r\n */\r\n public get pointCount() {\r\n return this.points.length;\r\n }\r\n\r\n\r\n /**\r\n * Get cluster unique number\r\n */\r\n getClusterPK(): number {\r\n if (this.clusterId) {\r\n return this.clusterId;\r\n }\r\n if (this.properties && this.properties && this.properties.Id) {\r\n return - this.properties.Id;\r\n }\r\n return -1;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { LatLngBounds } from 'leaflet';\r\n\r\n//TODO GB wymaga -\"allowSyntheticDefaultImports\": true\r\nimport Supercluster from 'supercluster'\r\nimport * as GeoJSON from 'geojson';\r\n\r\nimport { Feature, Point as Location } from 'geojson';\r\nimport { Point } from '../../../models/map/point.model';\r\nimport { Cluster } from '../../../models/map/Cluster';\r\n\r\n/**\r\n * Provides clustering utilities\r\n */\r\n@Injectable()\r\nexport class ClusterService {\r\n\r\n /**\r\n * Clustering index - once loaded, index is immutable\r\n */\r\n private index: Supercluster;\r\n\r\n\r\n /**\r\n * Clustering index configuration\r\n */\r\n private options: any = {\r\n minZoom: 2, // min zoom to generate clusters on\r\n maxZoom: 18, // max zoom level to cluster the points on\r\n radius: 120, // cluster radius in pixels\r\n extent: 512, // tile extent (radius is calculated relative to it)\r\n nodeSize: 64, // size of the KD-tree leaf node, affects performance\r\n log: false // whether to log timing info\r\n };\r\n\r\n\r\n /**\r\n * Creates clustering index\r\n * @param $http http service\r\n */\r\n constructor() {\r\n\r\n // Create index\r\n this.index = new Supercluster(this.options);\r\n }\r\n\r\n\r\n /**\r\n * Loads points to clustering index - once loaded, index is immutable\r\n * @param points array of model points\r\n */\r\n public load(points: Point[]): void {\r\n\r\n // Map points to features and load them to clustering index\r\n const features: Supercluster.PointFeature[] = this.mapModelPointsToGeoJsonFeatures(points);\r\n this.index.load(features);\r\n }\r\n\r\n\r\n /**\r\n * Computes and returns clusters\r\n * @param bounds bounding box array [westLng, southLat, eastLng, northLat]\r\n * @param zoom level of zoom\r\n */\r\n public getClusters(bounds: LatLngBounds, zoom: number): Cluster[] {\r\n let clusters: Cluster[];\r\n try {\r\n // Get geojson clusters and then map them to model groups\r\n const bbox = [bounds.getWest(), bounds.getSouth(), bounds.getEast(), bounds.getNorth()] as GeoJSON.BBox;\r\n const _c = this.index.getClusters(bbox, zoom);\r\n clusters = this.mapGeoJsonClustersToModelClusters(_c);\r\n } catch (e) {\r\n console.error('GETING CLUSTER ERROR', e);\r\n clusters = [];\r\n }\r\n return clusters;\r\n }\r\n\r\n\r\n /**\r\n * For a given zoom and x/y coordinates, returns a geojson-vt-compatible JSON tile object with cluster/point features\r\n * @param zoom level of zoom\r\n * @param x x coordinate\r\n * @param y y coordinate\r\n */\r\n public getTile(zoom: number, x: number, y: number): any {\r\n\r\n this.index.getTile(zoom, x, y);\r\n }\r\n\r\n\r\n /**\r\n * Returns the children of a cluster (on the next zoom level) given its id (cluster_id value from feature properties)\r\n * @param clusterId id of cluster\r\n */\r\n public getChildren(clusterId: number): Point[] {\r\n\r\n const features: Feature[] = this.index.getChildren(clusterId);\r\n return this.mapGeoJsonFeaturesToModelPoints(features);\r\n }\r\n\r\n\r\n /**\r\n * Returns all the points of a cluster (given its cluster_id), with pagination support:\r\n * limit is the number of points to return (set to Infinity for all points), and offset is the amount of points to skip (for pagination)\r\n * @param clusterId id of cluster\r\n * @param limit number of points to return\r\n * @param offset amount of points to skip (for pagination).\r\n */\r\n public getLeaves(clusterId: number, limit: number = 10, offset: number = 0): Point[] {\r\n\r\n const features: Feature[] = this.index.getLeaves(clusterId, limit, offset);\r\n return this.mapGeoJsonFeaturesToModelPoints(features);\r\n }\r\n\r\n\r\n /**\r\n * Returns the zoom on which the cluster expands into several children\r\n * (useful for \"click to zoom\" feature) given the cluster's cluster_id\r\n * @param clusterId id of cluster\r\n */\r\n public getClusterExpansionZoom(clusterId: number): number {\r\n\r\n return this.index.getClusterExpansionZoom(clusterId);\r\n }\r\n\r\n\r\n /**\r\n * Maps model points to geojson features, affects loading performance\r\n * @param points array of model points\r\n */\r\n private mapModelPointsToGeoJsonFeatures(points: Point[]): Supercluster.PointFeature[] {\r\n\r\n const features: Supercluster.PointFeature[] = [];\r\n\r\n for (const point of points) {\r\n const feature: Supercluster.PointFeature = {\r\n type: 'Feature',\r\n properties: point.properties,\r\n geometry: {\r\n type: 'Point',\r\n coordinates: [\r\n point.lng,\r\n point.lat\r\n ]\r\n },\r\n };\r\n features.push(feature);\r\n }\r\n\r\n return features;\r\n }\r\n\r\n\r\n /**\r\n * Maps geojson features to model points\r\n * @param features array of geojson features\r\n */\r\n private mapGeoJsonFeaturesToModelPoints(features: Feature[]): Point[] {\r\n\r\n const points: Point[] = [];\r\n\r\n for (const feature of features) {\r\n const point: Point = {\r\n lat: feature.geometry.coordinates[1],\r\n lng: feature.geometry.coordinates[0],\r\n properties: feature.properties\r\n };\r\n points.push(point);\r\n }\r\n\r\n return points.sort((x, y) => x.properties.Id - y.properties.Id);\r\n }\r\n\r\n\r\n /**\r\n * Maps geojson clusters to model clusters, affects clustering performance\r\n * @param features array of geojson clusters\r\n */\r\n private mapGeoJsonClustersToModelClusters(features: Feature[]): Cluster[] {\r\n\r\n const clusters: Cluster[] = [];\r\n\r\n for (const f of features) {\r\n const c = new Cluster();\r\n\r\n c.clusterId = f.properties?.['cluster_id'];\r\n c.lat = f.geometry.coordinates[1];\r\n c.lng = f.geometry.coordinates[0];\r\n c.points = c.clusterId ? this.getLeaves(c.clusterId, Infinity) : [new Point(c.lat, c.lng)];\r\n c.properties = f.properties;\r\n\r\n clusters.push(c);\r\n }\r\n\r\n return clusters;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Point } from '../../models/map/point.model';\r\nimport { Vehicle } from '../../models/domain/Vehicle';\r\nimport { VehicleControlIndicator } from '../../models/domain/VehicleControlIndicator';\r\nimport { VehicleStatusEnum } from '../../models/domain/VehicleStatusEnum';\r\nimport { TachoStatusWorker } from '@commons/enums/tacho.enum';\r\n\r\n/**\r\n * Provides mapping utilities\r\n */\r\n@Injectable()\r\nexport class MappingService {\r\n\r\n /**\r\n * mapowianie czujnika\r\n * @param remote obiekt zdalny\r\n */\r\n public static mapRemoteToVehicleControlIndicator(remote: any, types: any[]): VehicleControlIndicator {\r\n\r\n // mapowienie typu na grupe\r\n remote.Id = (remote).VehicalControlIndicatorId;\r\n\r\n for (const type of types) {\r\n if (remote.Tp === type.Type) {\r\n remote.Group = type.Group;\r\n break;\r\n }\r\n }\r\n\r\n // { Type: 1, Name: 'Adres' },\r\n // { Type: 2, Name: 'Czas' },\r\n // { Type: 3, Name: 'Czujniki' },\r\n // { Type: 4, Name: 'Kierowca' },\r\n // { Type: 5, Name: 'Licznik km' },\r\n // { Type: 6, Name: 'Napięcie' },\r\n // { Type: 8, Name: 'Paliwo' },\r\n // { Type: 9, Name: 'Paliwo CAN' },\r\n // { Type: 10, Name: 'Pedał gazu' },\r\n // { Type: 11, Name: 'Pojazd' },\r\n // { Type: 12, Name: 'Prędkość' },\r\n // { Type: 13, Name: 'Status' },\r\n // { Type: 16, Name: 'Tachograf' },\r\n // { Type: 17, Name: 'Temperatura' },\r\n // { Type: 18, Name: 'Zuzycie CAN' },\r\n\r\n\r\n // // mapowanie group ui\r\n // switch (remote.Type) {\r\n // // status\r\n // case 1000:\r\n // remote.Group = 13;\r\n // break;\r\n // // predkość\r\n // case 2:\r\n // remote.Group = 12;\r\n // break;\r\n // // { Type: 14, Name: 'Sygnał GPS' },\r\n // case 21:\r\n // remote.Group = 14;\r\n // break;\r\n // // { Type: 15, Name: 'Sygnał GSM' },\r\n // case 22:\r\n // remote.Group = 15;\r\n // break;\r\n // // Paliwo CAN\r\n // case 1:\r\n // remote.Group = 9;\r\n // break;\r\n // // Licznik kilometrow CAN\r\n // case 17:\r\n // remote.Group = 5;\r\n // break;\r\n // // Predkosc CAN\r\n // case 2:\r\n // remote.Group = 12;\r\n // break;\r\n // // Kierowca\r\n // case 23:\r\n // remote.Group = 4;\r\n // break;\r\n // // Przyspiesznie\r\n // case 24:\r\n // remote.Group = 10;\r\n // break;\r\n // // { Type: 7, Name: 'Obroty' },\r\n // case 5:\r\n // remote.Group = 7;\r\n // break;\r\n // // Napiecie\r\n // case 7:\r\n // remote.Group = 6;\r\n // break;\r\n // // Napiecie\r\n // case 6:\r\n // remote.Group = 17;\r\n // break;\r\n\r\n\r\n // default:\r\n // remote.Group = 0;\r\n // break;\r\n // }\r\n\r\n return remote;\r\n }\r\n\r\n /**\r\n * konwersja statusow kierowcow\r\n */\r\n public static convertDriverStatus(status: number): number {\r\n\r\n // Unknown = 0, // kierowca powiązany z pojazdem ale status pojazdu nieznany\r\n // Driving = 1, //kierowca powiązany z pojazdem i pojazd jedzie\r\n // NotDriving = 2, //kierowca powiązany z pojazdem i pojazd stoi\r\n // NotBound = 3, // kierowca nie powiązany z pojazdem\r\n\r\n switch (status) {\r\n case 0:\r\n return 1;\r\n case 1:\r\n return 2;\r\n case 2:\r\n return 3;\r\n case 3:\r\n return 4;\r\n default:\r\n return 4;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * konwersja statusu z tekom na nasz - tacho\r\n * @param tekomStatus status z tekom\r\n */\r\n public static convertTachoStatus(tekomStatus: number) {\r\n let state: TachoStatusWorker;\r\n switch (tekomStatus) {\r\n case 0:\r\n state = TachoStatusWorker.Rest;\r\n break;\r\n case 1:\r\n state = TachoStatusWorker.Free;\r\n break;\r\n case 2:\r\n state = TachoStatusWorker.Work;\r\n break;\r\n case 3:\r\n state = TachoStatusWorker.Driving;\r\n break;\r\n default:\r\n state = TachoStatusWorker.Free;\r\n break;\r\n }\r\n return state;\r\n }\r\n\r\n /**\r\n * Maps vehicles to points for clustering algorithm\r\n * @param vehicles array of vehicles\r\n */\r\n public mapVehiclesToPoints(vehicles: Vehicle[]): Point[] {\r\n\r\n if (!vehicles) {\r\n return [];\r\n }\r\n\r\n const points: Point[] = [];\r\n\r\n for (const v of vehicles) {\r\n\r\n // pobranie kierunku\r\n // dla statusu poruszania sie pojazdu\r\n let VehicleAngle = 0;\r\n if (v.St === VehicleStatusEnum.Moving) {\r\n VehicleAngle = v.VehicleAngle;\r\n }\r\n\r\n // lokalizacja\r\n if (v.LL) {\r\n\r\n const lat = parseFloat(('' + v.LL.Lt).replace(',', '.'));\r\n const lng = parseFloat(('' + v.LL.Ln).replace(',', '.'));\r\n\r\n if (lat && lat !== 361 && lng && lng !== 361) {\r\n const point: Point = {\r\n lat: (lat),\r\n lng: (lng),\r\n properties: {\r\n Id: v.Id,\r\n VehicleStatus: v.St,\r\n VehicleName: v.Nm,\r\n VehicleAngle: VehicleAngle\r\n },\r\n };\r\n points.push(point);\r\n }\r\n }\r\n\r\n }\r\n return points;\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport {BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport {Map, LayerGroup, Marker, LatLng, Icon, FeatureGroup, DivIcon, CRS, Popup, latLng} from 'leaflet';\r\nimport { Cluster } from '../../../../models/map/Cluster';\r\nimport { MapConfigService } from '../../config/map-config.service';\r\nimport { VehicleStatusEnum } from '../../../../models/domain/VehicleStatusEnum';\r\nimport { Consts } from '../../../../consts/consts';\r\n\r\n/**\r\n * Provides map drawing utilities\r\n */\r\n@Injectable()\r\nexport class ClusterDrawerService {\r\n\r\n /**\r\n * marker events\r\n */\r\n private markerEvents: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n /**\r\n * Popup marker\r\n */\r\n private popup?: Popup;\r\n\r\n /**\r\n * Halo marker\r\n */\r\n private halo?: Marker;\r\n\r\n\r\n /**\r\n * biezace elementy\r\n */\r\n // private elements: any = {};\r\n\r\n /**\r\n * Ostatni wyswietlany kluster - możliwe, że do usuniecia\r\n */\r\n private currentClusterId?: number;\r\n\r\n /**\r\n * Timeout dla pojawiania i wygaszania popup\r\n */\r\n private popupTimeout: any;\r\n\r\n /**\r\n * Constructor of draw service\r\n * @param $cluster cluster service\r\n */\r\n public constructor(\r\n private $mapConfig: MapConfigService\r\n ) {\r\n }\r\n\r\n isDrawed = 0;\r\n\r\n\r\n /**\r\n * Draw clusters\r\n * @param clusters array of clusters\r\n * @param group layer group\r\n * @param map map\r\n */\r\n public draw(clusters: Cluster[], map: Map): FeatureGroup {\r\n\r\n // kopia\r\n const group = new FeatureGroup();\r\n // this.elements = [];\r\n\r\n // Remove old clusters and halo marker\r\n if (this.halo != null) {\r\n this.halo.remove();\r\n }\r\n\r\n // Get new cluster id array\r\n // const clusterIds = clusters.map(i => i.getClusterPK().toString());\r\n // const currentClusterIds = Object.keys(this.elements);\r\n\r\n // // usuniecie starych klastrow\r\n // currentClusterIds.forEach(id => {\r\n // if (clusterIds.indexOf(id) === -1) {\r\n // this.elements[id].forEach(l => group.removeLayer(l));\r\n // delete this.elements[id];\r\n // }\r\n // });\r\n\r\n // Draw new ones\r\n\r\n var properClusters = clusters;\r\n var currentVehicleCluster = clusters.find(c => c.pointCount > 1 && c.points.some(p => p.properties.Id == this.$mapConfig.getCurrentVehicleId()));\r\n\r\n if (currentVehicleCluster && currentVehicleCluster.pointCount > 1) {\r\n properClusters = clusters.filter(c => c != currentVehicleCluster);\r\n\r\n var vehiclePoint = currentVehicleCluster.points.find(p => p.properties.Id === this.$mapConfig.getCurrentVehicleId());\r\n var trimmedCluster = currentVehicleCluster;\r\n trimmedCluster.points = currentVehicleCluster.points.filter(p => p != vehiclePoint);\r\n\r\n var trackedVehicleCluster = new Cluster(vehiclePoint!.lat, vehiclePoint!.lng);\r\n trackedVehicleCluster.properties = vehiclePoint!.properties;\r\n trackedVehicleCluster.points.push(vehiclePoint!);\r\n\r\n properClusters.push(trackedVehicleCluster, trimmedCluster);\r\n\r\n (window).CLUSTERS[trackedVehicleCluster.getClusterPK()] = trackedVehicleCluster;\r\n }\r\n\r\n for (const cluster of properClusters) {\r\n\r\n // Check whether cluster has multiple points\r\n if (cluster.pointCount > 1) {\r\n // Draw vehicle cluster\r\n this.drawVehicleCluster(cluster, group, map);\r\n } else {\r\n // Draw vehicle\r\n this.drawVehicle(cluster, group, map);\r\n }\r\n }\r\n\r\n // wymiana group\r\n return group;\r\n }\r\n\r\n public getMarkerEventsStream(): Observable {\r\n return this.markerEvents.asObservable();\r\n }\r\n\r\n /**\r\n * Draws vehicles' cluster on the map within given layer group\r\n * @param cluster cluster to draw\r\n * @param group layer group\r\n * @param map map object\r\n */\r\n private drawVehicleCluster(cluster: Cluster, group: LayerGroup, map: Map, options?: any): void {\r\n\r\n // Check with which statuses are vehicle in cluster\r\n const colorsBits = new Set();\r\n for (const point of cluster.points) {\r\n colorsBits.add(this.getStatusColour(point.properties.VehicleStatus));\r\n }\r\n\r\n // Add all of the statuses to get number of icon to display\r\n let sum = 0;\r\n colorsBits.forEach(color => {\r\n sum += color;\r\n });\r\n\r\n const onClick = (event: any) => {\r\n // przeslanie eventa\r\n const clusterId = event.target.options.Cluster.getClusterPK();\r\n this.markerEvents.next({ event: 'click', type: 'group', clusterId: clusterId });\r\n };\r\n\r\n const onMouseOver = (event: any) => {\r\n // przeslanie eventa\r\n const clusterId = event.target.options.Cluster.getClusterPK();\r\n this.markerEvents.next({ event: 'mouseover', type: 'group', clusterId: clusterId });\r\n };\r\n\r\n const onMouseOut = (event: any) => {\r\n // przeslanie eventa\r\n const clusterId = event.target.options.Cluster.getClusterPK();\r\n this.markerEvents.next({ event: 'mouseout', type: 'group', clusterId: clusterId });\r\n };\r\n\r\n // 2. Number marker\r\n const elementId = `${cluster.getClusterPK()}`;\r\n const iconHtml = `\r\n
\r\n
\r\n ${cluster.pointCount.toString()}\r\n
\r\n
`;\r\n\r\n const numIcon = new DivIcon({\r\n 'html': iconHtml,\r\n // 'iconSize': [8, 16],\r\n // 'iconAnchor': [Math.pow(cluster.pointCount.toString().length, 1.05) * 5, 11]\r\n // little bit of math magic to allign text value accordingly to number of digits\r\n });\r\n\r\n // extend\r\n const _Marker = Marker.extend({ options: { Cluster: undefined, clusterId: undefined } });\r\n\r\n //TODO GB może przypisanie lat i lang powinno być do cluster z dużej litery\r\n let number_marker = new _Marker();\r\n number_marker.setLatLng([cluster.lat, cluster.lng]);\r\n number_marker.options.icon = numIcon;\r\n number_marker.options.clusterId = cluster.getClusterPK();\r\n number_marker.options.Cluster = cluster;\r\n\r\n number_marker.addTo(group);\r\n\r\n number_marker.on('click', onClick);\r\n\r\n number_marker.on('mouseover', onMouseOver);\r\n\r\n number_marker.on('mouseout', onMouseOut);\r\n\r\n }\r\n\r\n getStatusColour(status: VehicleStatusEnum): number {\r\n const vehSettings = Consts.VehicleSettingsByStatusMap.get(status);\r\n return vehSettings ? vehSettings.groupMarkerColor : 0;\r\n }\r\n\r\n /**\r\n * Draws vehicle on the map within given layer group\r\n * @param cluster cluster to draw\r\n * @param group layer group\r\n */\r\n private drawVehicle(cluster: Cluster, group: LayerGroup, map: Map, options?: any): void {\r\n let pointProperties;\r\n let lng, lat;\r\n\r\n if (cluster.clusterId) {\r\n pointProperties = cluster.points[0].properties;\r\n lng = cluster.points[0].lng;\r\n lat = cluster.points[0].lat;\r\n }\r\n else {\r\n pointProperties = cluster.properties;\r\n lng = cluster.lng;\r\n lat = cluster.lat;\r\n }\r\n\r\n // // Get element from history\r\n const elementId = pointProperties.Id;\r\n let vehicle_marker;\r\n\r\n // Vehicle marker\r\n const angle = pointProperties.VehicleAngle;\r\n // const status = MappingService.convertVehicleStatus(pointProperties.VehicleStatus);\r\n\r\n // Events\r\n const onMouseOver = (event: any) => {\r\n // przeslanie eventa\r\n const clusterId = event.target.options.Cluster.getClusterPK();\r\n this.markerEvents.next({ event: 'mouseover', type: 'vehicle', clusterId: clusterId });\r\n };\r\n\r\n const onMouseOut = (event: any) => {\r\n // przeslanie eventa\r\n const clusterId = event.target.options.Cluster.getClusterPK();\r\n this.markerEvents.next({ event: 'mouseout', type: 'vehicle', clusterId: clusterId });\r\n };\r\n\r\n const onClick = (event: any) => {\r\n // przeslanie eventa\r\n const clusterId = event.target.options.Cluster.getClusterPK();\r\n this.markerEvents.next({ event: 'click', type: 'vehicle', clusterId: clusterId });\r\n };\r\n\r\n // czy popupy wlaczone\r\n const isPopupVisible = this.$mapConfig.getShowPopupsFlag();\r\n\r\n // sprawdznie czy dany\r\n const currentVehicleId = this.$mapConfig.getCurrentVehicleId();\r\n let isCurrentVehicle = false;\r\n if (currentVehicleId === Math.abs(elementId)) {\r\n isCurrentVehicle = true;\r\n }\r\n\r\n const icon = this.getRotatableIcon(elementId, pointProperties.VehicleStatus, angle, isCurrentVehicle);\r\n\r\n // extend\r\n const _Marker = Marker.extend({\r\n options: {\r\n VehicleId: undefined,\r\n Cluster: undefined,\r\n clusterId: undefined,\r\n isPopupVisible: undefined,\r\n isCurrentVehicle: undefined,\r\n }\r\n });\r\n\r\n //TODO GB może przypisanie lat i lang powinno być do cluster z dużej litery\r\n vehicle_marker = new _Marker();\r\n vehicle_marker.setLatLng([lat, lng]);\r\n vehicle_marker.options.icon = icon;\r\n vehicle_marker.options.keyboard = false;\r\n vehicle_marker.options.riseOnHover = true;\r\n vehicle_marker.options.VehicleId = elementId;\r\n vehicle_marker.options.Cluster = cluster;\r\n vehicle_marker.options.clusterId = cluster.getClusterPK();\r\n vehicle_marker.options.isPopupVisible = isPopupVisible;\r\n vehicle_marker.options.isCurrentVehicle = isCurrentVehicle;\r\n\r\n if (currentVehicleId && currentVehicleId === cluster.properties.Id) {\r\n vehicle_marker.setZIndexOffset(1000);\r\n }\r\n\r\n vehicle_marker.addTo(group);\r\n\r\n vehicle_marker.on('click', onClick);\r\n\r\n vehicle_marker.on('mouseover', onMouseOver);\r\n\r\n vehicle_marker.on('mouseout', onMouseOut);\r\n }\r\n\r\n\r\n /**\r\n * Creates and returns rotatable marker\r\n * @param url url of icon\r\n * @param width width of marker\r\n * @param height height of marker\r\n * @param angle rotation angle in degrees\r\n */\r\n private getRotatableIcon(id: number, status: number, angle: number, isSelected: boolean): DivIcon {\r\n angle = angle || 0;\r\n\r\n const isSelectedClass = (isSelected === true) ? 'vehicle-marker-selected' : '';\r\n\r\n let markerNumber = this.getStatusMarker(status);\r\n\r\n // ikona\r\n const icon = new DivIcon({\r\n 'html': `\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `,\r\n /**__-- (!) the only one work-around for rotation, do not change (!) --__**/\r\n });\r\n\r\n return icon;\r\n }\r\n\r\n private getStatusMarker(status: VehicleStatusEnum) : number {\r\n const vehSettings = Consts.VehicleSettingsByStatusMap.get(status);\r\n return vehSettings ? vehSettings.markerNumber : 0;\r\n }\r\n}\r\n","import {DOCUMENT} from '@angular/common';\r\nimport {Inject, Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JavascriptInjectorService {\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document) {\r\n }\r\n\r\n injectToHtmlHead(script: string) {\r\n let node = document.createElement('script');\r\n node.type = 'text/javascript';\r\n node.innerHTML = script;\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n }\r\n\r\n downloadAndRunExternalScript(scriptsUrls: string[]) {\r\n var isFound = false;\r\n var scripts = document.getElementsByTagName(\"script\")\r\n for (var i = 0; i < scripts.length; ++i) {\r\n if (scripts[i].getAttribute('src') != null && scripts[i].getAttribute('src')?.includes(\"loader\")) {\r\n isFound = true;\r\n }\r\n }\r\n\r\n if (!isFound) {\r\n for (var i = 0; i < scriptsUrls.length; i++) {\r\n let node = document.createElement('script');\r\n node.src = scriptsUrls [i];\r\n node.type = 'text/javascript';\r\n node.async = false;\r\n node.defer = false;\r\n node.charset = 'utf-8';\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n }\r\n }\r\n else {\r\n console.error(\"External scripts not loaded.\");\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VehicleUIEventsService {\r\n\r\n constructor() { }\r\n\r\n isRoutesTabSelected$ = new Subject();\r\n}\r\n","import {Injectable, NgZone} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\n\r\nimport {BehaviorSubject, map, Observable, startWith, Subject, Subscription} from 'rxjs';\r\nimport {combineLatest, filter, withLatestFrom} from 'rxjs/operators';\r\n\r\nimport {FeatureGroup, LatLng, LatLngBounds, LatLngExpression, Map, Popup} from 'leaflet';\r\n\r\nimport {mapTypeEventTypes} from '../../../consts/mouse-type-events';\r\nimport {MapEvent} from '../../../models/map/map-event.model';\r\nimport {Cluster} from '../../../models/map/Cluster';\r\nimport {Vehicle} from '../../../models/domain/Vehicle';\r\n\r\nimport {ClusterDrawerService} from '../drawer/cluster/cluster-drawer.service';\r\nimport {PopupRendererService} from '../renderer/popup-renderer.service';\r\nimport {ClusterService} from '../cluster/cluster.service';\r\nimport {MappingService} from '../../mapping/mapping.service';\r\nimport {VehicleService} from '../../vehicle/vehicle.service';\r\n\r\nimport {Consts} from '../../../consts/consts';\r\nimport {MapLayers, MapLayerType} from '@src/app/map/map-layers';\r\n\r\nimport {MapPanelService} from \"@map-panel/services/map-panel.service\";\r\n\r\nimport {MapEventsService} from \"@commons/services/map/map-events.service\";\r\nimport {MapConfigService} from \"@commons/services/map/config/map-config.service\";\r\n\r\nimport {SettingsService} from \"@shared/services/settings.service\";\r\nimport {JavascriptInjectorService} from \"@shared/services/external-scripts/javascript-injector.service\";\r\nimport {AuthenticationService} from \"@shared/services/authentication/authentication.service\";\r\n\r\nimport {VehicleUIEventsService} from \"@layout/vehicle/services/vehicle-uievents.service\";\r\nimport { RouteEvent } from '@commons/models/domain/RouteEvent';\r\nimport { BusinessEvent } from '@commons/models/domain/BusinessEvent';\r\nimport { EventTypeEnum } from '@commons/enums/event-type.enum';\r\n\r\n@Injectable()\r\nexport class MapService {\r\n\r\n public onClickParkStopIcon$: Subject = new Subject();\r\n public onClickEventList$: Subject<{ data: BusinessEvent | null, eventMode: EventTypeEnum }> = new Subject();\r\n public isVisibleVehicleList$: BehaviorSubject = new BehaviorSubject(false);\r\n\r\n private readonly mapLayers = new MapLayers();\r\n\r\n private firstLoad = false;\r\n private popup?: Popup;\r\n private popupTimeout: any;\r\n private lastCords?: LatLng;\r\n\r\n private mapEventSubject = new Subject();\r\n private centerMapRequestSubject = new Subject();\r\n private movementEndSubject = new Subject<{ zoom: number, bounds: LatLngBounds, source?: string }>();\r\n\r\n private centerMapRequestSub?: Subscription;\r\n private clustersSub?: Subscription;\r\n private mapEventSub?: Subscription;\r\n private markerEventsSub?: Subscription;\r\n\r\n private isRoutesTab = false;\r\n private googleMapScriptsLoaded = false;\r\n private mainMapZoomLevelOffset = -3;\r\n private selectedVehicleZoom = 0;\r\n private isVehicleSelected = false;\r\n private mapReadySub$ = new BehaviorSubject(false);\r\n\r\n public readonly isVisibleMapLoader$ = new BehaviorSubject(false);\r\n\r\n map?: Map;\r\n /**\r\n * Podział mapy na poszczególne warstwy.\r\n * Do tego przydały się potem jakiś mapper coby filtrować od razu co się ma wyświetlić a co nie.\r\n */\r\n groups: any = {\r\n clusters: new FeatureGroup(),\r\n markers: new FeatureGroup(),\r\n popups: new FeatureGroup(),\r\n events: new FeatureGroup(),\r\n routes: new FeatureGroup(),\r\n areas: new FeatureGroup()\r\n };\r\n\r\n get mapEvent$(): Observable {\r\n return this.mapEventSubject.asObservable();\r\n }\r\n\r\n private _currentMapLayerType = MapLayerType.none;\r\n get currentMapLayerType(): MapLayerType {\r\n return this._currentMapLayerType;\r\n }\r\n\r\n private mapLayerChangedSubject = new Subject();\r\n\r\n get mapLayerChanged(): Observable {\r\n return this.mapLayerChangedSubject.asObservable();\r\n }\r\n\r\n get mapReady$(): Observable {\r\n return this.mapReadySub$.asObservable();\r\n }\r\n\r\n constructor(\r\n private popupRendererService: PopupRendererService,\r\n private vehicleService: VehicleService,\r\n private clusterService: ClusterService,\r\n private mappingService: MappingService,\r\n private mapEventsService: MapEventsService,\r\n private clusterDrawerService: ClusterDrawerService,\r\n private ngZone: NgZone,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private settingsService: SettingsService,\r\n private mapPanelService: MapPanelService,\r\n private javascriptInjectorService: JavascriptInjectorService,\r\n private authenticationService: AuthenticationService,\r\n private vehicleUIEventsService: VehicleUIEventsService,\r\n private mapConfigService: MapConfigService\r\n ) {\r\n this.subToGetMarkerEventsStream();\r\n this.subToMapLayerChanged();\r\n this.subToIsRoutesTab();\r\n this.subToChangeMinimapZoom();\r\n this.subToCurrentVehicleIdChange();\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n\r\n this.bindEvents();\r\n this.bindMapWithLayerGroups();\r\n this.initStreams();\r\n this.setSavedMapLayer();\r\n\r\n this.selectedVehicleZoom = this.map!.getMaxZoom() + this.mainMapZoomLevelOffset;\r\n this.subToMapZoomend();\r\n\r\n this.mapReadySub$.next(true);\r\n }\r\n\r\n public setMapLoaderState(isVisible: boolean): void {\r\n this.isVisibleMapLoader$.next(isVisible);\r\n }\r\n\r\n changeZoom(interval: number): void {\r\n this.map?.setZoom(this.map.getZoom() + interval);\r\n }\r\n\r\n centerMap(): void {\r\n this.centerMapRequestSubject.next(true);\r\n }\r\n\r\n unsubscribeAllStreams(): void {\r\n if (this.mapEventSub) {\r\n this.mapEventSub.unsubscribe();\r\n }\r\n if (this.clustersSub) {\r\n this.clustersSub.unsubscribe();\r\n }\r\n if (this.centerMapRequestSub) {\r\n this.centerMapRequestSub.unsubscribe();\r\n }\r\n }\r\n\r\n showPointWithZoom(coords: LatLng, zoom = this.selectedVehicleZoom) {\r\n this.lastCords = coords;\r\n this.map?.setView(coords, zoom);\r\n setTimeout(() => {\r\n this.map?.setZoom(zoom);\r\n }, 1000);\r\n }\r\n\r\n resizeMap() {\r\n setTimeout(() => {\r\n this.map?.invalidateSize();\r\n }, 0);\r\n }\r\n\r\n setMapLayer(mapLayerType: MapLayerType) {\r\n if (this.map == null)\r\n return;\r\n\r\n this._currentMapLayerType = mapLayerType;\r\n this.map.eachLayer(x => this.map!.removeLayer(x));\r\n this.addMapLayer(this._currentMapLayerType);\r\n this.settingsService.setMapLayer(this._currentMapLayerType);\r\n this.bindMapWithLayerGroups();\r\n this.mapPanelService.forceDrawRouteSubject.next(true);\r\n this.mapLayerChangedSubject.next(this._currentMapLayerType);\r\n }\r\n\r\n fitMapBoundsToVehicles(vehicles: Vehicle[]): void {\r\n // Return if empty list of vehicles\r\n if (vehicles.length === 0) {\r\n return;\r\n }\r\n\r\n // Extract data - to do - change to one run\r\n const lats = [];\r\n const lngs = [];\r\n\r\n for (let i = vehicles.length - 1; i >= 0; i--) {\r\n const v = vehicles[i];\r\n\r\n if (v.LL) {\r\n const lat = parseFloat('' + v.LL.Lt);\r\n const lng = parseFloat('' + v.LL.Ln);\r\n\r\n if (lat && lat !== 361) {\r\n lats.push(lat);\r\n }\r\n if (lng && lng !== 361) {\r\n lngs.push(lng);\r\n }\r\n }\r\n }\r\n\r\n this.fitMapToBounds(lats, lngs);\r\n }\r\n\r\n private subToMapZoomend() {\r\n this.map!.on('zoomend', () => {\r\n if (this.isVehicleSelected) {\r\n this.selectedVehicleZoom = this.map?.getZoom()!;\r\n }\r\n });\r\n }\r\n\r\n private subToCurrentVehicleIdChange() {\r\n this.mapConfigService.currentVehicleIdChange().subscribe(data => {\r\n this.isVehicleSelected = !isNaN(data.currentVehicleId);\r\n });\r\n }\r\n\r\n private subToGetMarkerEventsStream() {\r\n // marker event handler\r\n this.markerEventsSub = this.clusterDrawerService.getMarkerEventsStream().subscribe(result => {\r\n if (result == null) {\r\n return;\r\n }\r\n this.ngZone.run(() => {\r\n switch (result.event) {\r\n case 'click':\r\n this.markerClick(result);\r\n break;\r\n\r\n case 'mouseover':\r\n this.markerMouseOver(result);\r\n break;\r\n\r\n case 'mouseout':\r\n this.markerMouseOut(result);\r\n break;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private markerClick(result: any) {\r\n // pojazd\r\n if (result.type === 'vehicle') {\r\n // get cluster\r\n const clusterId = result.clusterId;\r\n const cluster = (window).CLUSTERS[clusterId];\r\n if (cluster) {\r\n // przesuniecie na mapie\r\n const coords = new LatLng(cluster.lat, cluster.lng);\r\n this.map?.setView(coords, this.selectedVehicleZoom);\r\n this.mapEventsService.emmitVehicleClicked(cluster.properties.Id);\r\n }\r\n }\r\n\r\n // groupa\r\n if (result.type === 'group') {\r\n // get cluster\r\n const clusterId = result.clusterId;\r\n const cluster = (window).CLUSTERS[clusterId];\r\n if (cluster) {\r\n // schowanie popup\r\n this.groups.popups.eachLayer((l: any) => {\r\n const _l = l;\r\n if (_l.options.clusterId === clusterId) {\r\n this.groups.popups.removeLayer(l);\r\n l.remove();\r\n }\r\n });\r\n\r\n // pobranie wszystko elementow w klastrze z rozszerzenie do maximum\r\n const latlngs = this.getAllChildren(cluster.clusterId);\r\n let latMin = 0;\r\n let latMax = 0;\r\n let lngMin = 0;\r\n let lngMax = 0;\r\n for (const l of latlngs) {\r\n if (!latMin) {\r\n latMin = l.lat;\r\n }\r\n if (!latMax) {\r\n latMax = l.lat;\r\n }\r\n if (!lngMin) {\r\n lngMin = l.lng;\r\n }\r\n if (!lngMax) {\r\n lngMax = l.lng;\r\n }\r\n latMin = Math.min(latMin, l.lat);\r\n latMax = Math.max(latMax, l.lat);\r\n lngMin = Math.min(lngMin, l.lng);\r\n lngMax = Math.max(lngMax, l.lng);\r\n }\r\n this.map?.fitBounds([[latMin, lngMin], [latMax, lngMax]], Consts.MapPadding);\r\n }\r\n }\r\n }\r\n\r\n private markerMouseOver(result: any) {\r\n let className = 'popupCustom';\r\n if (result.type === 'group') {\r\n className += ' popupCustomGroup';\r\n } else {\r\n className += ` popupCustomVehicle popup-vehicle${ result.clusterId }`;\r\n }\r\n\r\n const _Popup = Popup.extend({\r\n options: {\r\n clusterId: undefined, isVisible: undefined, isOpenByEvent: undefined\r\n }\r\n });\r\n\r\n // get cluster\r\n const clusterId = result.clusterId;\r\n const cluster = (window).CLUSTERS[clusterId];\r\n if (cluster) {\r\n // check if exists\r\n let alreadyExists = false;\r\n this.groups.popups.eachLayer((l: any) => {\r\n const _l = l;\r\n if (_l.options.clusterId === clusterId) {\r\n alreadyExists = true;\r\n }\r\n\r\n if (_l.options.clusterId !== clusterId && _l.options.isOpenByEvent === true) {\r\n this.groups.popups.removeLayer(l);\r\n l.remove();\r\n }\r\n });\r\n\r\n // if exists\r\n if (alreadyExists) {\r\n return;\r\n }\r\n\r\n if (this.popupTimeout) {\r\n clearTimeout(this.popupTimeout);\r\n }\r\n\r\n // pokazanie popup\r\n this.popupTimeout = setTimeout(() => {\r\n\r\n this.popup = new _Popup();\r\n this.popup!.options.className = className;\r\n this.popup!.options.closeButton = false;\r\n (this.popup as any).options.clusterId = clusterId;\r\n (this.popup as any).options.isVisible = true;\r\n (this.popup as any).options.isOpenByEvent = true;\r\n this.popup!.options.keepInView = false;\r\n this.popup!.options.autoPan = false;\r\n\r\n const _html = this.popupRendererService.renderHtmlForPopup(cluster);\r\n this.popup!.setLatLng(this.getAdjustedCoordsForPopup([cluster.lat, cluster.lng], cluster));\r\n this.popup!.setContent(_html);\r\n this.popup!.addTo(this.groups.popups);\r\n\r\n // dodanie\r\n const mouseover = () => {\r\n if (this.popupTimeout) {\r\n clearTimeout(this.popupTimeout);\r\n }\r\n };\r\n const mouseout = () => {\r\n this.popupTimeout = setTimeout(() => {\r\n this.groups.popups.eachLayer((l: any) => {\r\n const _l = l;\r\n if (_l.options.clusterId === clusterId && _l.options.isOpenByEvent === true) {\r\n this.groups.popups.removeLayer(l);\r\n l.remove();\r\n }\r\n });\r\n }, 400);\r\n };\r\n\r\n // otwarcie okna z detalami pojazd\r\n const openVehicleFromPopup = (e: any) => {\r\n const el = e.target;\r\n const id = el.getAttribute('data-vehicle-id');\r\n if (id) {\r\n this.mapEventsService.emmitVehicleClicked(id);\r\n\r\n }\r\n };\r\n // dodanie do popoup zdarzen\r\n const __el = this.popup?.getElement();\r\n __el!.removeEventListener('mouseover', mouseover);\r\n __el!.addEventListener('mouseover', mouseover);\r\n __el!.removeEventListener('mouseout', mouseout);\r\n __el!.addEventListener('mouseout', mouseout);\r\n __el!.removeEventListener('click', openVehicleFromPopup);\r\n __el!.addEventListener('click', openVehicleFromPopup);\r\n\r\n }, 300);\r\n }\r\n }\r\n\r\n private markerMouseOut(result: any) {\r\n {\r\n if (this.popupTimeout) {\r\n clearTimeout(this.popupTimeout);\r\n }\r\n this.popupTimeout = setTimeout(() => {\r\n if (this.popup) {\r\n const clusterId = result.clusterId;\r\n this.groups.popups.eachLayer((l: any) => {\r\n const _l = l;\r\n if (_l.options.clusterId === clusterId && _l.options.isOpenByEvent === true) {\r\n this.groups.popups.removeLayer(l);\r\n l.remove();\r\n }\r\n });\r\n }\r\n }, 100);\r\n }\r\n }\r\n\r\n /**\r\n * pobranie wszystkich elementów w klastrze\r\n */\r\n private getAllChildren(clusterId: number, children?: Array): Array {\r\n if (!children) {\r\n children = new Array();\r\n }\r\n if (clusterId) {\r\n const points = this.clusterService.getChildren(clusterId);\r\n for (const c of points) {\r\n\r\n const lat = c.lat;\r\n const lng = c.lng;\r\n\r\n children.push(new LatLng(lat, lng));\r\n\r\n if (c.properties.cluster_id) {\r\n children = this.getAllChildren(c.properties.cluster_id, children);\r\n }\r\n }\r\n }\r\n\r\n return children;\r\n }\r\n\r\n private setSavedMapLayer() {\r\n const savedMapLayer = this.settingsService.getMapLayer();\r\n if (savedMapLayer)\r\n this.setMapLayer(savedMapLayer);\r\n else {\r\n this.setMapLayer(MapLayerType.osm);\r\n setTimeout(() => this.mapPanelService.isMapPanelVisibleSubject.next(true), 1000);\r\n }\r\n }\r\n\r\n private bindEvents(): void {\r\n for (const mapEventType of mapTypeEventTypes) {\r\n this.map?.on(mapEventType, (event) => {\r\n this.mapEventSubject.next({mapEventType, event} as MapEvent);\r\n });\r\n }\r\n }\r\n\r\n private bindMapWithLayerGroups(): void {\r\n for (const group_name of Object.keys(this.groups)) {\r\n const group = this.groups[group_name];\r\n group.clearLayers();\r\n group.addTo(this.map);\r\n }\r\n }\r\n\r\n private initStreams(): void {\r\n const $filtered = this.vehicleService.getListFiltered$();\r\n // Zbudowanie strumienia klastrów + subskrybcja i ich narysowanie\r\n this.map?.setZoom(this.map.getMinZoom() + 3);\r\n this.clustersSub = this.movementEndSubject.asObservable().pipe(\r\n // 1. 'Podrobienie' zdarzenia końca ruchu mapy, aby cały strumień ruszył.\r\n startWith({zoom: this.map?.getZoom(), bounds: this.map?.getBounds()}),\r\n // 2. Połączenie strumienia zdarzeń końca ruchów mapy i strumienia lokalizacji przefiltrowanych pojazdów.\r\n // Jeśli jeden coś przesyła to z drugiego bierzemy ostatnią wartość i obie wartości strumieniujemy dalej.\r\n combineLatest(\r\n // 3. Ale najpierw mapowanie strumienia samochodów w strumień ich lokalizacji.\r\n $filtered.pipe(map(vehicles => this.mappingService.mapVehiclesToPoints(vehicles))),\r\n // 4. Skoro łączymy dwa strumienie w jeden (parametry mapy, lokaliazje pojazdów)\r\n // to na tym etapie dostajemy parametry mapy i punkty.\r\n (params, points) => {\r\n // 5. Klastrowanie tylko wtedy gdy grupa klastrów dodana do mapy.\r\n if (this.map?.hasLayer(this.groups.clusters)) {\r\n // 6. Zbudowanie kd-drzewa do klastrowania + obliczenie i zwrócenie klastrów.\r\n this.clusterService.load(points);\r\n return this.clusterService.getClusters(params.bounds!, Math.floor(params.zoom!));\r\n }\r\n return [];\r\n }))\r\n // 7. Subskrybcja i narysowanie klastrów.\r\n .subscribe((clusters: any) => {\r\n // Zapisanie w window\r\n (window).CLUSTERS = {};\r\n for (const cluster of clusters) {\r\n (window).CLUSTERS[cluster.getClusterPK()] = cluster;\r\n }\r\n // stare markery\r\n const _oldGroup = this.groups.markers;\r\n // nowe markery\r\n const _newGroup = this.clusterDrawerService.draw(clusters, this.map!);\r\n // aktualizacj apokazanych popup\r\n this.groups.popups.eachLayer((_p: any) => {\r\n const p = _p;\r\n // wyłączenie renderowania zawartości popup jak jest grupa\r\n if (p.options.isOpenByEvent === true && p.options.clusterId >= 0) {\r\n return;\r\n }\r\n const clusterId = p.options.clusterId;\r\n const cluster = (window).CLUSTERS[clusterId];\r\n if (cluster) {\r\n const coords = new LatLng(cluster.lat, cluster.lng);\r\n p.setLatLng(this.getAdjustedCoordsForPopup([cluster.lat, cluster.lng], cluster));\r\n const content = this.popupRendererService.renderHtmlForPopup(cluster);\r\n p.setContent(content);\r\n }\r\n });\r\n\r\n // aktualizacja grup\r\n this.map?.removeLayer(this.groups.clusters);\r\n this.groups.clusters = _newGroup;\r\n this.groups.clusters.addTo(this.map);\r\n // Pierwsze zblizenie po zaladowaniu\r\n if (!this.firstLoad && clusters.length > 0) {\r\n // sprawdzenie czy zakladni nie sa otwarte\r\n const url = (this.activatedRoute.snapshot)._routerState.url;\r\n if (url.indexOf('/panel/vehicle') === -1) {\r\n setTimeout(() => {\r\n this.centerMap();\r\n this.firstLoad = true;\r\n }, 1000);\r\n }\r\n } else {\r\n // narysowanie popupow jak sa wlaczone\r\n this.popupRendererService.renderPopups(this.groups);\r\n }\r\n });\r\n\r\n // Zbudowanie strumienia zdarzeń centrowania mapy\r\n // 1. Poczekaj aż pobrana zostanie pierwsza lista przefiltrowanych pojazdów aby było na czym centrować\r\n this.centerMapRequestSub =\r\n // 2. Następnie stwórz strumień żądań wycentrowania mapy + 'podrób'\r\n // kliknięcie użytkownika aby wycentrować przy pierwszym pokazaniu mapy\r\n this.centerMapRequestSubject.pipe(\r\n filter(r => r),\r\n // 3. Do informacji o kliknięciu potrzebna jest też ostatnia lista przefiltrowanych pojazdów\r\n withLatestFrom($filtered, (request, vehicles) => vehicles))\r\n // 4. Subskrybcja na strumień + wykonanie centrowania mapy na otrzymanych pojazdach\r\n .subscribe((vehicles: any) => {\r\n if (vehicles && vehicles.length > 0) {\r\n this.fitMapBoundsToVehicles(vehicles);\r\n }\r\n });\r\n\r\n // Subskrypcja strumienia zdarzeń mapy i multiplexing zdarzeń do odpowiednich funkcji\r\n this.mapEventSub = this.mapEventSubject.subscribe(mapEvent => {\r\n const mapEventType = mapEvent.mapEventType;\r\n switch (mapEventType) {\r\n case 'moveend':\r\n this.onMovementEnd(mapEvent.event);\r\n break;\r\n }\r\n });\r\n }\r\n\r\n private fitMapToBounds(lats: Array, lngs: Array) {\r\n // Find extrema\r\n let latMin = 0;\r\n let latMax = 0;\r\n let lngMin = 0;\r\n let lngMax = 0;\r\n\r\n lats.forEach(o => {\r\n if (o) {\r\n if (!latMin) {\r\n latMin = o;\r\n }\r\n if (!latMax) {\r\n latMax = o;\r\n }\r\n\r\n if (o < latMin) {\r\n latMin = o;\r\n }\r\n if (o > latMax) {\r\n latMax = o;\r\n }\r\n }\r\n });\r\n\r\n lngs.forEach(o => {\r\n if (o) {\r\n if (!lngMin) {\r\n lngMin = o;\r\n }\r\n if (!lngMax) {\r\n lngMax = o;\r\n }\r\n\r\n if (o < lngMin) {\r\n lngMin = o;\r\n }\r\n if (o > lngMax) {\r\n lngMax = o;\r\n }\r\n }\r\n });\r\n\r\n // Prepare bounds\r\n if (latMin && latMax && lngMin && lngMax) {\r\n const bounds = new LatLngBounds(\r\n [latMin, lngMin],\r\n [latMax, lngMax]\r\n );\r\n\r\n this.map?.fitBounds(bounds, Consts.MapPadding);\r\n }\r\n }\r\n\r\n private onMovementEnd(event: any): void {\r\n\r\n const ts = new Date();\r\n const params = {\r\n 'zoom': this.map!.getZoom(),\r\n 'bounds': this.map!.getBounds(),\r\n 'source': 'onMovementEnd',\r\n 'ts': `${ts.getMinutes()}:${ts.getSeconds()}:${ts.getMilliseconds()}`\r\n };\r\n\r\n this.movementEndSubject.next(params);\r\n }\r\n\r\n private getAdjustedCoordsForPopup(latlng: LatLngExpression, cluster: Cluster): LatLngExpression {\r\n const containerWidth = 190; //z src\\app\\app.map.map-controls.vehicle-location.vehicle-list-lite.vehicle-list-lite-item.vehicle-list-full.vehicle-list-full-item.vehicle-list-full-tacho-header.vehicle-list-full-indicator-value-header.vehicle-list-full-indicator-status-header.vehicle-list-full-inidicator-column-full.vehicle-list-full-expand.vehicle-list-full-config.vehicle-list-filter.vehicle-details.vehicle-details-tabs.vehicle-details-tacho-tab.vehicle-details-routes-tab.vehicle-details-route-item.vehicle-details-route-stats.vehicle-details-params-tab.vehicle-details-eco-tab.vehicle-details-etoll-balance-tab.vehicle-details-header.vehicle-signal-lost.vehicle-last-updated.vehicle-current-driver.vehicle-control-indicator-value.vehicle-control-indicator-signal-value.vehicle-control-indicator-value-type.survey.profile-data-update-info-list.profile-data-update-info-details.profile-data-logged-user.profile-data-help-info.profile-data-details.common-placeholder.password-reset-confirm.password-reset.password-change.panel.notification.event-list-lite.event-list.event-list-item-info.event-list-fueI-item.event-list-area-item.event-list-alarm-item.event-list-filter.driver-list-lite.driver-list-lite-item.driver-list-lite-item-current-vehicel.driver-list-filter.driver-details.driver-details-tabs.driver-details-tacho-tab.driver-tacho-slot-details.driver-details-sms-tab.driver-details-sms-send.driver-details-sms-search.driver-details-sms-list.driver-details-eco-tab.driver-details-header.bok.auto-login.select-database.login.area-list-lite.area-list-item.area-form.area-form-input.area-list-filter.area-delete.area-create.time.tag-picker.select.search.scrolled-list.scrolled-bar.form-field.double-date-picker.date-picker.checkbox.button.component.less, .popupCustom\r\n const maxContainerHeight = 128; //z src\\app\\app.map.map-controls.vehicle-location.vehicle-list-lite.vehicle-list-lite-item.vehicle-list-full.vehicle-list-full-item.vehicle-list-full-tacho-header.vehicle-list-full-indicator-value-header.vehicle-list-full-indicator-status-header.vehicle-list-full-inidicator-column-full.vehicle-list-full-expand.vehicle-list-full-config.vehicle-list-filter.vehicle-details.vehicle-details-tabs.vehicle-details-tacho-tab.vehicle-details-routes-tab.vehicle-details-route-item.vehicle-details-route-stats.vehicle-details-params-tab.vehicle-details-eco-tab.vehicle-details-etoll-balance-tab.vehicle-details-header.vehicle-signal-lost.vehicle-last-updated.vehicle-current-driver.vehicle-control-indicator-value.vehicle-control-indicator-signal-value.vehicle-control-indicator-value-type.survey.profile-data-update-info-list.profile-data-update-info-details.profile-data-logged-user.profile-data-help-info.profile-data-details.common-placeholder.password-reset-confirm.password-reset.password-change.panel.notification.event-list-lite.event-list.event-list-item-info.event-list-fueI-item.event-list-area-item.event-list-alarm-item.event-list-filter.driver-list-lite.driver-list-lite-item.driver-list-lite-item-current-vehicel.driver-list-filter.driver-details.driver-details-tabs.driver-details-tacho-tab.driver-tacho-slot-details.driver-details-sms-tab.driver-details-sms-send.driver-details-sms-search.driver-details-sms-list.driver-details-eco-tab.driver-details-header.bok.auto-login.select-database.login.area-list-lite.area-list-item.area-form.area-form-input.area-list-filter.area-delete.area-create.time.tag-picker.select.search.scrolled-list.scrolled-bar.form-field.double-date-picker.date-picker.checkbox.button.component.less, .popupCustom\r\n const itemHeight = 32; //z src\\app\\app.map.map-controls.vehicle-location.vehicle-list-lite.vehicle-list-lite-item.vehicle-list-full.vehicle-list-full-item.vehicle-list-full-tacho-header.vehicle-list-full-indicator-value-header.vehicle-list-full-indicator-status-header.vehicle-list-full-inidicator-column-full.vehicle-list-full-expand.vehicle-list-full-config.vehicle-list-filter.vehicle-details.vehicle-details-tabs.vehicle-details-tacho-tab.vehicle-details-routes-tab.vehicle-details-route-item.vehicle-details-route-stats.vehicle-details-params-tab.vehicle-details-eco-tab.vehicle-details-etoll-balance-tab.vehicle-details-header.vehicle-signal-lost.vehicle-last-updated.vehicle-current-driver.vehicle-control-indicator-value.vehicle-control-indicator-signal-value.vehicle-control-indicator-value-type.survey.profile-data-update-info-list.profile-data-update-info-details.profile-data-logged-user.profile-data-help-info.profile-data-details.common-placeholder.password-reset-confirm.password-reset.password-change.panel.notification.event-list-lite.event-list.event-list-item-info.event-list-fueI-item.event-list-area-item.event-list-alarm-item.event-list-filter.driver-list-lite.driver-list-lite-item.driver-list-lite-item-current-vehicel.driver-list-filter.driver-details.driver-details-tabs.driver-details-tacho-tab.driver-tacho-slot-details.driver-details-sms-tab.driver-details-sms-send.driver-details-sms-search.driver-details-sms-list.driver-details-eco-tab.driver-details-header.bok.auto-login.select-database.login.area-list-lite.area-list-item.area-form.area-form-input.area-list-filter.area-delete.area-create.time.tag-picker.select.search.scrolled-list.scrolled-bar.form-field.double-date-picker.date-picker.checkbox.button.component.less, .popupCustom\r\n const border = 16; //offset dla bordera (z obu stron, tj. 8px z jednej), z src\\app\\app.map.map-controls.vehicle-location.vehicle-list-lite.vehicle-list-lite-item.vehicle-list-full.vehicle-list-full-item.vehicle-list-full-tacho-header.vehicle-list-full-indicator-value-header.vehicle-list-full-indicator-status-header.vehicle-list-full-inidicator-column-full.vehicle-list-full-expand.vehicle-list-full-config.vehicle-list-filter.vehicle-details.vehicle-details-tabs.vehicle-details-tacho-tab.vehicle-details-routes-tab.vehicle-details-route-item.vehicle-details-route-stats.vehicle-details-params-tab.vehicle-details-eco-tab.vehicle-details-etoll-balance-tab.vehicle-details-header.vehicle-signal-lost.vehicle-last-updated.vehicle-current-driver.vehicle-control-indicator-value.vehicle-control-indicator-signal-value.vehicle-control-indicator-value-type.survey.profile-data-update-info-list.profile-data-update-info-details.profile-data-logged-user.profile-data-help-info.profile-data-details.common-placeholder.password-reset-confirm.password-reset.password-change.panel.notification.event-list-lite.event-list.event-list-item-info.event-list-fueI-item.event-list-area-item.event-list-alarm-item.event-list-filter.driver-list-lite.driver-list-lite-item.driver-list-lite-item-current-vehicel.driver-list-filter.driver-details.driver-details-tabs.driver-details-tacho-tab.driver-tacho-slot-details.driver-details-sms-tab.driver-details-sms-send.driver-details-sms-search.driver-details-sms-list.driver-details-eco-tab.driver-details-header.bok.auto-login.select-database.login.area-list-lite.area-list-item.area-form.area-form-input.area-list-filter.area-delete.area-create.time.tag-picker.select.search.scrolled-list.scrolled-bar.form-field.double-date-picker.date-picker.checkbox.button.component.less, .popupCustom\r\n const yOffset = 20; //dodatkowe przesunięcie w pionie dla niewidocznej strzałki (dodawanej przez leaflet)\r\n const xRightOffset = 36; //offset dla kontenera mapy po prawej stronie (z przyciskami zbliżenia/oddalenia itd); z src\\app\\map\\controls\\map.map-controls.vehicle-location.vehicle-list-lite.vehicle-list-lite-item.vehicle-list-full.vehicle-list-full-item.vehicle-list-full-tacho-header.vehicle-list-full-indicator-value-header.vehicle-list-full-indicator-status-header.vehicle-list-full-inidicator-column-full.vehicle-list-full-expand.vehicle-list-full-config.vehicle-list-filter.vehicle-details.vehicle-details-tabs.vehicle-details-tacho-tab.vehicle-details-routes-tab.vehicle-details-route-item.vehicle-details-route-stats.vehicle-details-params-tab.vehicle-details-eco-tab.vehicle-details-etoll-balance-tab.vehicle-details-header.vehicle-signal-lost.vehicle-last-updated.vehicle-current-driver.vehicle-control-indicator-value.vehicle-control-indicator-signal-value.vehicle-control-indicator-value-type.survey.profile-data-update-info-list.profile-data-update-info-details.profile-data-logged-user.profile-data-help-info.profile-data-details.common-placeholder.password-reset-confirm.password-reset.password-change.panel.notification.event-list-lite.event-list.event-list-item-info.event-list-fueI-item.event-list-area-item.event-list-alarm-item.event-list-filter.driver-list-lite.driver-list-lite-item.driver-list-lite-item-current-vehicel.driver-list-filter.driver-details.driver-details-tabs.driver-details-tacho-tab.driver-tacho-slot-details.driver-details-sms-tab.driver-details-sms-send.driver-details-sms-search.driver-details-sms-list.driver-details-eco-tab.driver-details-header.bok.auto-login.select-database.login.area-list-lite.area-list-item.area-form.area-form-input.area-list-filter.area-delete.area-create.time.tag-picker.select.search.scrolled-list.scrolled-bar.form-field.double-date-picker.date-picker.checkbox.button.component.less, .map-controls-container.upper-container\r\n const clusterSize = 58; //rozmiar ikony grupy pojazdów\r\n\r\n var itemsHeight = itemHeight * cluster.points.length;\r\n var containerHeight = (itemsHeight > maxContainerHeight ? maxContainerHeight : itemsHeight) + border + yOffset;\r\n\r\n var p = this.map!.latLngToContainerPoint(latlng);\r\n var mapWidth = this.map!.getPixelBounds().getSize().x!;\r\n\r\n if (p.y < containerHeight) {\r\n p.y = containerHeight;\r\n\r\n var sign = p.x >= mapWidth / 2 ? -1 : 1;\r\n p.x += sign * (containerWidth / 2 + clusterSize / 2);\r\n } else {\r\n if (p.x < containerWidth / 2) {\r\n p.x = containerWidth / 2 + border / 2;\r\n } else if (p.x + containerWidth / 2 > mapWidth - xRightOffset) {\r\n p.x = mapWidth - containerWidth / 2 - border / 2 - xRightOffset;\r\n }\r\n }\r\n\r\n return this.map!.containerPointToLatLng(p);\r\n }\r\n\r\n private addMapLayer(mapLayerType: MapLayerType) {\r\n switch (mapLayerType) {\r\n case MapLayerType.emapa:\r\n this.mapLayers.emapaLayer.addTo(this.map!);\r\n break;\r\n\r\n case MapLayerType.googleRoadmap:\r\n this.mapLayers.googleStreetsLayer.addTo(this.map!);\r\n break;\r\n\r\n case MapLayerType.googleHybrid:\r\n this.mapLayers.googleHybridLayer.addTo(this.map!);\r\n break;\r\n\r\n case MapLayerType.osm:\r\n this.mapLayers.osmLayer.addTo(this.map!);\r\n break;\r\n }\r\n }\r\n\r\n private injectGoogleMapsScript() {\r\n this.googleMapScriptsLoaded = true;\r\n const scripts = [\r\n // ten fragment: &callback=Function.prototype jest obejściem błędu\r\n // Loading the Google Maps JavaScript API without a callback is not supported\r\n 'https://maps.googleapis.com/maps/api/js?key=AIzaSyBLr9GeO1wswmmaVsb8U0IAGUTZF0CLZKs&callback=Function.prototype',\r\n 'https://unpkg.com/leaflet.gridlayer.googlemutant@latest/dist/Leaflet.GoogleMutant.js'\r\n ];\r\n this.javascriptInjectorService.downloadAndRunExternalScript(scripts);\r\n }\r\n\r\n private subToMapLayerChanged() {\r\n this.mapLayerChanged.subscribe(newMapLayerType => {\r\n this.authenticationService.isAuthenticated$.subscribe(isAuthenticated => {\r\n if (isAuthenticated) {\r\n const isGoogle = newMapLayerType === MapLayerType.googleRoadmap || newMapLayerType === MapLayerType.googleHybrid;\r\n if (isGoogle && this.authenticationService.isTekomUser && !this.googleMapScriptsLoaded)\r\n this.injectGoogleMapsScript();\r\n }\r\n });\r\n });\r\n }\r\n\r\n private subToIsRoutesTab() {\r\n this.vehicleUIEventsService.isRoutesTabSelected$.subscribe(isRoutesTab => {\r\n this.isRoutesTab = isRoutesTab;\r\n });\r\n }\r\n\r\n private subToChangeMinimapZoom() {\r\n this.mapPanelService.mainMapZoomLevelOffsetChanged.subscribe(newZoom => {\r\n this.mainMapZoomLevelOffset = newZoom;\r\n this.showPointWithZoom(this.lastCords!);\r\n });\r\n }\r\n\r\n}\r\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { identity } from '../util/identity';\nimport { noop } from '../util/noop';\nimport { popResultSelector } from '../util/args';\nexport function withLatestFrom(...inputs) {\n const project = popResultSelector(inputs);\n return operate((source, subscriber) => {\n const len = inputs.length;\n const otherValues = new Array(len);\n let hasValue = inputs.map(() => false);\n let ready = false;\n for (let i = 0; i < len; i++) {\n innerFrom(inputs[i]).subscribe(createOperatorSubscriber(subscriber, (value) => {\n otherValues[i] = value;\n if (!ready && !hasValue[i]) {\n hasValue[i] = true;\n (ready = hasValue.every(identity)) && (hasValue = null);\n }\n }, noop));\n }\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (ready) {\n const values = [value, ...otherValues];\n subscriber.next(project ? project(...values) : values);\n }\n }));\n });\n}\n","\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class MapControlService {\r\n\r\n private resizeSub: Subject = new Subject();\r\n\r\n public getResizeSubject(): Observable {\r\n return this.resizeSub.asObservable();\r\n }\r\n\r\n public resize(height: number) {\r\n this.resizeSub.next(height);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({ name: 'statusTimeFormat' })\r\nexport class StatusTimeFormatPipe implements PipeTransform {\r\n\r\n private formatZeros(num: number): string {\r\n return (num < 10 ? '0' : '') + num;\r\n }\r\n\r\n public transform(seconds: number): string {\r\n\r\n if (seconds < 0) {\r\n return '';\r\n }\r\n\r\n let minutes = Math.ceil(seconds / 60);\r\n\r\n let years = Math.floor(minutes / 60 / 24 / 365);\r\n let rest = minutes - years * 30 * 24 * 365;\r\n\r\n let months = Math.floor(rest / 60 / 24 / 30);\r\n rest = rest - months * 30 * 24 * 60;\r\n\r\n let weeks = Math.floor(rest / 60 / 24 / 7);\r\n rest = rest - weeks * 7 * 24 * 60;\r\n\r\n let days = Math.floor((rest) / 60 / 24);\r\n rest = rest - days * 24 * 60;\r\n\r\n let hours = Math.floor((rest) / 60);\r\n rest = rest - hours * 60;\r\n\r\n let mins = Math.floor((rest) / 1);\r\n\r\n\r\n if (years) {\r\n if (months) {\r\n weeks = 0;\r\n days = 0;\r\n hours = 0;\r\n mins = 0;\r\n } else if (weeks) {\r\n days = 0;\r\n hours = 0;\r\n mins = 0;\r\n } else if (days) {\r\n hours = 0;\r\n mins = 0;\r\n } else if (hours) {\r\n mins = 0;\r\n } else if (mins) {\r\n mins = 0;\r\n }\r\n } else {\r\n if (months) {\r\n if (weeks) {\r\n days = 0;\r\n hours = 0;\r\n mins = 0;\r\n } else if (days) {\r\n hours = 0;\r\n mins = 0;\r\n } else if (hours) {\r\n mins = 0;\r\n } else if (mins) {\r\n mins = 0;\r\n }\r\n } else {\r\n if (weeks) {\r\n if (days) {\r\n hours = 0;\r\n mins = 0;\r\n } else if (hours) {\r\n mins = 0;\r\n } else if (mins) {\r\n mins = 0;\r\n }\r\n } else {\r\n if (days) {\r\n if (hours) {\r\n mins = 0;\r\n } else if (mins) {\r\n mins = 0;\r\n }\r\n } else {\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n let res = '';\r\n if (years) {\r\n if (res) {\r\n res += ' ';\r\n }\r\n res += years + ' y';\r\n }\r\n if (months) {\r\n if (res) {\r\n res += ' ';\r\n }\r\n res += months + ' m';\r\n }\r\n if (weeks) {\r\n if (res) {\r\n res += ' ';\r\n }\r\n res += weeks + ' w';\r\n }\r\n if (days) {\r\n if (res) {\r\n res += ' ';\r\n }\r\n res += days + ' d';\r\n }\r\n if (hours && !mins) {\r\n if (res) {\r\n res += ' ';\r\n }\r\n res += hours + ' h';\r\n } else if (!hours && mins) {\r\n if (res) {\r\n res += ' ';\r\n }\r\n res += mins + ' min';\r\n } else if (hours && mins) {\r\n if (res) {\r\n res += ' ';\r\n }\r\n res += hours + ':' + this.formatZeros(mins) + ' h';\r\n }\r\n\r\n if (years >= 3) {\r\n res = '> 3 y';\r\n }\r\n\r\n return res;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { VehicleLocation } from '../models/domain/VehicleLocation';\r\n\r\n\r\n\r\n@Pipe({ name: 'fullAddress' })\r\nexport class FullAddressPipe implements PipeTransform {\r\n\r\n\r\n public transform(location: VehicleLocation): string {\r\n let address = '';\r\n if (location) {\r\n address = this.appendToAddress(address, location.Cr);\r\n address = this.appendToAddress(address, location.Br);\r\n\r\n if (location.St && location.St !== location.Br) {\r\n address = this.appendToAddress(address, location.St);\r\n }\r\n\r\n address = this.appendToAddress(address, location.Hs);\r\n \r\n if (!location.Hs && !location.St && !location.Br) {\r\n address = this.appendToAddress(address, location.Ct);\r\n address = this.appendToAddress(address, location.Ds);\r\n }\r\n\r\n address = this.appendToAddress(address, location.Location);\r\n address = this.appendToAddress(address, location.Rd);\r\n }\r\n return address;\r\n }\r\n\r\n private appendToAddress(address: string, addressPart: string): string {\r\n if (addressPart) {\r\n address += (address ? ', ' : '') + addressPart;\r\n }\r\n\r\n return address;\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {Subject} from \"rxjs\";\r\n\r\nimport {Map} from \"leaflet\";\r\nimport MiniMap from \"leaflet-minimap\";\r\n\r\nimport {MapConfigService} from \"@commons/services/map/config/map-config.service\";\r\nimport {MapService} from \"@commons/services/map/map/map.service\";\r\n\r\nimport {VehicleUIEventsService} from \"@layout/vehicle/services/vehicle-uievents.service\";\r\n\r\nimport {MapLayers, MapLayerType} from \"@src/app/map/map-layers\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MinimapService {\r\n\r\n private readonly isMinimapVisibleLSKey = 'minimap-visible';\r\n private readonly miniMapLayers = new MapLayers();\r\n\r\n private miniMap?: any;\r\n private defaultZoomOffset = -3;\r\n private selectedVehicleZoomOffset = -6;\r\n private isVehicleSelected = false;\r\n private isRoutesTab = false;\r\n private map?: Map;\r\n\r\n private miniMapOptions = {\r\n position: 'bottomleft',\r\n zoomLevelOffset: this.defaultZoomOffset,\r\n toggleDisplay: true,\r\n minimized: false,\r\n width: 250,\r\n aimingRectOptions: {color: \"red\", weight: 2},\r\n };\r\n\r\n minimapVisibleChangedSub$ = new Subject();\r\n\r\n get isMinimapVisible(): boolean {\r\n const item = localStorage.getItem(this.isMinimapVisibleLSKey);\r\n let result = true; //domyślnie minimapa jest widoczna o ile ktoś jej nie zminimalizuje\r\n if (item != null)\r\n result = item === \"true\";\r\n\r\n return result;\r\n }\r\n\r\n constructor(\r\n private vehicleUIEventsService: VehicleUIEventsService,\r\n private mapConfigService: MapConfigService,\r\n private mapService: MapService\r\n ) {\r\n this.minimapVisibleChangedSub$.subscribe(isVisible => {\r\n this.saveSettings(isVisible)\r\n });\r\n }\r\n\r\n zoomIn() {\r\n if (this.isVehicleSelected && !this.isRoutesTab)\r\n this.selectedVehicleZoomIn();\r\n else\r\n this.defaultZoomIn();\r\n }\r\n\r\n zoomOut() {\r\n if (this.isVehicleSelected && !this.isRoutesTab)\r\n this.selectedVehicleZoomOut();\r\n else\r\n this.defaultZoomOut();\r\n }\r\n\r\n onMapReady(map: Map) {\r\n this.map = map;\r\n this.subToIsRoutesTab();\r\n this.subToCurrentVehicleIdChange();\r\n\r\n this.recreateMinimap();\r\n this.mapService.mapLayerChanged.subscribe(mapLayerType => this.changeLayer(mapLayerType));\r\n }\r\n\r\n private changeLayer(mapLayerType: MapLayerType) {\r\n switch (mapLayerType) {\r\n case MapLayerType.emapa:\r\n this.miniMap!.changeLayer(this.miniMapLayers.emapaLayer);\r\n break;\r\n\r\n case MapLayerType.googleRoadmap:\r\n this.miniMap!.changeLayer(this.miniMapLayers.googleStreetsLayer);\r\n break;\r\n\r\n case MapLayerType.googleHybrid:\r\n this.miniMap!.changeLayer(this.miniMapLayers.googleHybridLayer);\r\n break;\r\n\r\n case MapLayerType.osm:\r\n this.miniMap!.changeLayer(this.miniMapLayers.osmLayer);\r\n break;\r\n }\r\n }\r\n\r\n private subToIsRoutesTab() {\r\n this.vehicleUIEventsService.isRoutesTabSelected$.subscribe(isRoutesTab => {\r\n this.isRoutesTab = isRoutesTab;\r\n this.recreateMinimap();\r\n });\r\n }\r\n\r\n private subToCurrentVehicleIdChange() {\r\n this.mapConfigService.currentVehicleIdChange().subscribe(change => {\r\n this.isVehicleSelected = change?.currentVehicleId > 0;\r\n this.recreateMinimap();\r\n });\r\n }\r\n\r\n private recreateMinimap() {\r\n //gdy minimapa jest zminimalizowana jej ponowne tworzenie powoduje jej pokazanie i zwinięcie dlatego jest to pomijane w tym przypadku\r\n if (this.miniMapOptions.minimized)\r\n return;\r\n\r\n this.miniMapOptions.zoomLevelOffset = this.isVehicleSelected && !this.isRoutesTab ? this.selectedVehicleZoomOffset : this.defaultZoomOffset;\r\n //kontrolka minimapy nie reaguje na zmianę wartości opcji ZoomLevelOffset i trzeba ją za każdym razem usuwać i\r\n // dodawać na nowo z nowym zoomem w zalezności od tego czy pojazd jest wybrany czy też nie\r\n if (this.miniMap) {\r\n this.map?.removeControl(this.miniMap);\r\n }\r\n this.miniMapOptions.minimized = !this.isMinimapVisible;\r\n this.miniMap = new MiniMap(this.miniMapLayers.osmLayer, this.miniMapOptions).addTo(this.map!);\r\n this.subToMinimapToggle();\r\n }\r\n\r\n private subToMinimapToggle() {\r\n this.miniMap.on(\"toggle\", (data: any) => {\r\n this.miniMapOptions.minimized = !this.miniMapOptions.minimized;\r\n this.minimapVisibleChangedSub$.next(!data.minimized);\r\n });\r\n }\r\n\r\n private saveSettings(isVisible: boolean) {\r\n localStorage.setItem(this.isMinimapVisibleLSKey, isVisible.toString());\r\n }\r\n\r\n private selectedVehicleZoomIn() {\r\n if (this.selectedVehicleZoomOffset === 0)\r\n return;\r\n\r\n this.selectedVehicleZoomOffset += 1;\r\n this.recreateMinimap();\r\n }\r\n\r\n private selectedVehicleZoomOut() {\r\n if (this.selectedVehicleZoomOffset === -10)\r\n return;\r\n\r\n this.selectedVehicleZoomOffset -= 1;\r\n this.recreateMinimap();\r\n }\r\n\r\n private defaultZoomIn() {\r\n if (this.defaultZoomOffset === 0)\r\n return;\r\n\r\n this.defaultZoomOffset += 1;\r\n this.recreateMinimap();\r\n }\r\n\r\n private defaultZoomOut() {\r\n if (this.defaultZoomOffset === -10)\r\n return;\r\n\r\n this.defaultZoomOffset -= 1;\r\n this.recreateMinimap();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport {map, Observable, tap } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class CountryCodeService {\r\n\r\n private codes: any = {};\r\n\r\n constructor(private $http: HttpClient) { }\r\n\r\n loadCodes(): Observable {\r\n return this.$http.get('/assets/data/country.codes.json').pipe(\r\n tap(result => {\r\n this.codes = result;\r\n }),\r\n map(result => true));\r\n }\r\n\r\n getCode(country: string): string {\r\n let code = country;\r\n const obj = this.codes[country];\r\n if (obj) {\r\n code = obj.code;\r\n }\r\n return code;\r\n }\r\n\r\n}\r\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Directive, Input, Output, HostListener, NgModule } from '@angular/core';\nimport { latLng, map, control, tileLayer } from 'leaflet';\n\nclass LeafletUtil {\n static mapToArray(map) {\n const toReturn = [];\n for (const k in map) {\n if (map.hasOwnProperty(k)) {\n toReturn.push(map[k]);\n }\n }\n return toReturn;\n }\n static handleEvent(zone, eventEmitter, event) {\n // Don't want to emit if there are no observers\n if (0 < eventEmitter.observers.length) {\n zone.run(() => {\n eventEmitter.emit(event);\n });\n }\n }\n}\n\nclass LeafletDirective {\n constructor(element, zone) {\n this.element = element;\n this.zone = zone;\n this.DEFAULT_ZOOM = 1;\n this.DEFAULT_CENTER = latLng(38.907192, -77.036871);\n this.DEFAULT_FPZ_OPTIONS = {};\n this.fitBoundsOptions = this.DEFAULT_FPZ_OPTIONS;\n this.panOptions = this.DEFAULT_FPZ_OPTIONS;\n this.zoomOptions = this.DEFAULT_FPZ_OPTIONS;\n this.zoomPanOptions = this.DEFAULT_FPZ_OPTIONS;\n // Default configuration\n this.options = {};\n // Configure callback function for the map\n this.mapReady = new EventEmitter();\n this.zoomChange = new EventEmitter();\n this.centerChange = new EventEmitter();\n // Mouse Map Events\n this.onClick = new EventEmitter();\n this.onDoubleClick = new EventEmitter();\n this.onMouseDown = new EventEmitter();\n this.onMouseUp = new EventEmitter();\n this.onMouseMove = new EventEmitter();\n this.onMouseOver = new EventEmitter();\n this.onMouseOut = new EventEmitter();\n // Map Move Events\n this.onMapMove = new EventEmitter();\n this.onMapMoveStart = new EventEmitter();\n this.onMapMoveEnd = new EventEmitter();\n // Map Zoom Events\n this.onMapZoom = new EventEmitter();\n this.onMapZoomStart = new EventEmitter();\n this.onMapZoomEnd = new EventEmitter();\n // Nothing here\n }\n ngOnInit() {\n // Create the map outside of angular so the various map events don't trigger change detection\n this.zone.runOutsideAngular(() => {\n // Create the map with some reasonable defaults\n this.map = map(this.element.nativeElement, this.options);\n this.addMapEventListeners();\n });\n // Only setView if there is a center/zoom\n if (null != this.center && null != this.zoom) {\n this.setView(this.center, this.zoom);\n }\n // Set up all the initial settings\n if (null != this.fitBounds) {\n this.setFitBounds(this.fitBounds);\n }\n if (null != this.maxBounds) {\n this.setMaxBounds(this.maxBounds);\n }\n if (null != this.minZoom) {\n this.setMinZoom(this.minZoom);\n }\n if (null != this.maxZoom) {\n this.setMaxZoom(this.maxZoom);\n }\n this.doResize();\n // Fire map ready event\n this.mapReady.emit(this.map);\n }\n ngOnChanges(changes) {\n /*\n * The following code is to address an issue with our (basic) implementation of\n * zooming and panning. From our testing, it seems that a pan operation followed\n * by a zoom operation in the same thread will interfere with eachother. The zoom\n * operation interrupts/cancels the pan, resulting in a final center point that is\n * inaccurate. The solution seems to be to either separate them with a timeout or\n * to collapse them into a setView call.\n */\n // Zooming and Panning\n if (changes['zoom'] && changes['center'] && null != this.zoom && null != this.center) {\n this.setView(changes['center'].currentValue, changes['zoom'].currentValue);\n }\n // Set the zoom level\n else if (changes['zoom']) {\n this.setZoom(changes['zoom'].currentValue);\n }\n // Set the map center\n else if (changes['center']) {\n this.setCenter(changes['center'].currentValue);\n }\n // Other options\n if (changes['fitBounds']) {\n this.setFitBounds(changes['fitBounds'].currentValue);\n }\n if (changes['maxBounds']) {\n this.setMaxBounds(changes['maxBounds'].currentValue);\n }\n if (changes['minZoom']) {\n this.setMinZoom(changes['minZoom'].currentValue);\n }\n if (changes['maxZoom']) {\n this.setMaxZoom(changes['maxZoom'].currentValue);\n }\n }\n ngOnDestroy() {\n // If this directive is destroyed, the map is too\n if (null != this.map) {\n this.map.remove();\n }\n }\n getMap() {\n return this.map;\n }\n onResize() {\n this.delayResize();\n }\n addMapEventListeners() {\n const registerEventHandler = (eventName, handler) => {\n this.map.on(eventName, handler);\n };\n // Add all the pass-through mouse event handlers\n registerEventHandler('click', (e) => LeafletUtil.handleEvent(this.zone, this.onClick, e));\n registerEventHandler('dblclick', (e) => LeafletUtil.handleEvent(this.zone, this.onDoubleClick, e));\n registerEventHandler('mousedown', (e) => LeafletUtil.handleEvent(this.zone, this.onMouseDown, e));\n registerEventHandler('mouseup', (e) => LeafletUtil.handleEvent(this.zone, this.onMouseUp, e));\n registerEventHandler('mouseover', (e) => LeafletUtil.handleEvent(this.zone, this.onMouseOver, e));\n registerEventHandler('mouseout', (e) => LeafletUtil.handleEvent(this.zone, this.onMouseOut, e));\n registerEventHandler('mousemove', (e) => LeafletUtil.handleEvent(this.zone, this.onMouseMove, e));\n registerEventHandler('zoomstart', (e) => LeafletUtil.handleEvent(this.zone, this.onMapZoomStart, e));\n registerEventHandler('zoom', (e) => LeafletUtil.handleEvent(this.zone, this.onMapZoom, e));\n registerEventHandler('zoomend', (e) => LeafletUtil.handleEvent(this.zone, this.onMapZoomEnd, e));\n registerEventHandler('movestart', (e) => LeafletUtil.handleEvent(this.zone, this.onMapMoveStart, e));\n registerEventHandler('move', (e) => LeafletUtil.handleEvent(this.zone, this.onMapMove, e));\n registerEventHandler('moveend', (e) => LeafletUtil.handleEvent(this.zone, this.onMapMoveEnd, e));\n // Update any things for which we provide output bindings\n const outputUpdateHandler = () => {\n const zoom = this.map.getZoom();\n if (zoom !== this.zoom) {\n this.zoom = zoom;\n LeafletUtil.handleEvent(this.zone, this.zoomChange, zoom);\n }\n const center = this.map.getCenter();\n if (null != center || null != this.center) {\n if (((null == center || null == this.center) && center !== this.center)\n || (center.lat !== this.center.lat || center.lng !== this.center.lng)) {\n this.center = center;\n LeafletUtil.handleEvent(this.zone, this.centerChange, center);\n }\n }\n };\n registerEventHandler('moveend', outputUpdateHandler);\n registerEventHandler('zoomend', outputUpdateHandler);\n }\n /**\n * Resize the map to fit it's parent container\n */\n doResize() {\n // Run this outside of angular so the map events stay outside of angular\n this.zone.runOutsideAngular(() => {\n // Invalidate the map size to trigger it to update itself\n if (null != this.map) {\n this.map.invalidateSize({});\n }\n });\n }\n /**\n * Manage a delayed resize of the component\n */\n delayResize() {\n if (null != this.resizeTimer) {\n clearTimeout(this.resizeTimer);\n }\n this.resizeTimer = setTimeout(this.doResize.bind(this), 200);\n }\n /**\n * Set the view (center/zoom) all at once\n * @param center The new center\n * @param zoom The new zoom level\n */\n setView(center, zoom) {\n if (null != this.map && null != center && null != zoom) {\n this.map.setView(center, zoom, this.zoomPanOptions);\n }\n }\n /**\n * Set the map zoom level\n * @param zoom the new zoom level for the map\n */\n setZoom(zoom) {\n if (null != this.map && null != zoom) {\n this.map.setZoom(zoom, this.zoomOptions);\n }\n }\n /**\n * Set the center of the map\n * @param center the center point\n */\n setCenter(center) {\n if (null != this.map && null != center) {\n this.map.panTo(center, this.panOptions);\n }\n }\n /**\n * Fit the map to the bounds\n * @param latLngBounds the boundary to set\n */\n setFitBounds(latLngBounds) {\n if (null != this.map && null != latLngBounds) {\n this.map.fitBounds(latLngBounds, this.fitBoundsOptions);\n }\n }\n /**\n * Set the map's max bounds\n * @param latLngBounds the boundary to set\n */\n setMaxBounds(latLngBounds) {\n if (null != this.map && null != latLngBounds) {\n this.map.setMaxBounds(latLngBounds);\n }\n }\n /**\n * Set the map's min zoom\n * @param number the new min zoom\n */\n setMinZoom(zoom) {\n if (null != this.map && null != zoom) {\n this.map.setMinZoom(zoom);\n }\n }\n /**\n * Set the map's min zoom\n * @param number the new min zoom\n */\n setMaxZoom(zoom) {\n if (null != this.map && null != zoom) {\n this.map.setMaxZoom(zoom);\n }\n }\n}\nLeafletDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nLeafletDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.0.4\", type: LeafletDirective, selector: \"[leaflet]\", inputs: { fitBoundsOptions: [\"leafletFitBoundsOptions\", \"fitBoundsOptions\"], panOptions: [\"leafletPanOptions\", \"panOptions\"], zoomOptions: [\"leafletZoomOptions\", \"zoomOptions\"], zoomPanOptions: [\"leafletZoomPanOptions\", \"zoomPanOptions\"], options: [\"leafletOptions\", \"options\"], zoom: [\"leafletZoom\", \"zoom\"], center: [\"leafletCenter\", \"center\"], fitBounds: [\"leafletFitBounds\", \"fitBounds\"], maxBounds: [\"leafletMaxBounds\", \"maxBounds\"], minZoom: [\"leafletMinZoom\", \"minZoom\"], maxZoom: [\"leafletMaxZoom\", \"maxZoom\"] }, outputs: { mapReady: \"leafletMapReady\", zoomChange: \"leafletZoomChange\", centerChange: \"leafletCenterChange\", onClick: \"leafletClick\", onDoubleClick: \"leafletDoubleClick\", onMouseDown: \"leafletMouseDown\", onMouseUp: \"leafletMouseUp\", onMouseMove: \"leafletMouseMove\", onMouseOver: \"leafletMouseOver\", onMouseOut: \"leafletMouseOut\", onMapMove: \"leafletMapMove\", onMapMoveStart: \"leafletMapMoveStart\", onMapMoveEnd: \"leafletMapMoveEnd\", onMapZoom: \"leafletMapZoom\", onMapZoomStart: \"leafletMapZoomStart\", onMapZoomEnd: \"leafletMapZoomEnd\" }, host: { listeners: { \"window:resize\": \"onResize()\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[leaflet]'\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { fitBoundsOptions: [{\n type: Input,\n args: ['leafletFitBoundsOptions']\n }], panOptions: [{\n type: Input,\n args: ['leafletPanOptions']\n }], zoomOptions: [{\n type: Input,\n args: ['leafletZoomOptions']\n }], zoomPanOptions: [{\n type: Input,\n args: ['leafletZoomPanOptions']\n }], options: [{\n type: Input,\n args: ['leafletOptions']\n }], mapReady: [{\n type: Output,\n args: ['leafletMapReady']\n }], zoom: [{\n type: Input,\n args: ['leafletZoom']\n }], zoomChange: [{\n type: Output,\n args: ['leafletZoomChange']\n }], center: [{\n type: Input,\n args: ['leafletCenter']\n }], centerChange: [{\n type: Output,\n args: ['leafletCenterChange']\n }], fitBounds: [{\n type: Input,\n args: ['leafletFitBounds']\n }], maxBounds: [{\n type: Input,\n args: ['leafletMaxBounds']\n }], minZoom: [{\n type: Input,\n args: ['leafletMinZoom']\n }], maxZoom: [{\n type: Input,\n args: ['leafletMaxZoom']\n }], onClick: [{\n type: Output,\n args: ['leafletClick']\n }], onDoubleClick: [{\n type: Output,\n args: ['leafletDoubleClick']\n }], onMouseDown: [{\n type: Output,\n args: ['leafletMouseDown']\n }], onMouseUp: [{\n type: Output,\n args: ['leafletMouseUp']\n }], onMouseMove: [{\n type: Output,\n args: ['leafletMouseMove']\n }], onMouseOver: [{\n type: Output,\n args: ['leafletMouseOver']\n }], onMouseOut: [{\n type: Output,\n args: ['leafletMouseOut']\n }], onMapMove: [{\n type: Output,\n args: ['leafletMapMove']\n }], onMapMoveStart: [{\n type: Output,\n args: ['leafletMapMoveStart']\n }], onMapMoveEnd: [{\n type: Output,\n args: ['leafletMapMoveEnd']\n }], onMapZoom: [{\n type: Output,\n args: ['leafletMapZoom']\n }], onMapZoomStart: [{\n type: Output,\n args: ['leafletMapZoomStart']\n }], onMapZoomEnd: [{\n type: Output,\n args: ['leafletMapZoomEnd']\n }], onResize: [{\n type: HostListener,\n args: ['window:resize', []]\n }] } });\n\nclass LeafletDirectiveWrapper {\n constructor(leafletDirective) {\n this.leafletDirective = leafletDirective;\n }\n init() {\n // Nothing for now\n }\n getMap() {\n return this.leafletDirective.getMap();\n }\n}\n\n/**\n * Layer directive\n *\n * This directive is used to directly control a single map layer. The purpose of this directive is to\n * be used as part of a child structural directive of the map element.\n *\n */\nclass LeafletLayerDirective {\n constructor(leafletDirective, zone) {\n this.zone = zone;\n // Layer Events\n this.onAdd = new EventEmitter();\n this.onRemove = new EventEmitter();\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n }\n ngOnInit() {\n // Init the map\n this.leafletDirective.init();\n }\n ngOnDestroy() {\n if (null != this.layer) {\n // Unregister the event handlers\n this.removeLayerEventListeners(this.layer);\n // Remove the layer from the map\n this.layer.remove();\n }\n }\n ngOnChanges(changes) {\n if (changes['layer']) {\n // Update the layer\n const p = changes['layer'].previousValue;\n const n = changes['layer'].currentValue;\n this.zone.runOutsideAngular(() => {\n if (null != p) {\n this.removeLayerEventListeners(p);\n p.remove();\n }\n if (null != n) {\n this.addLayerEventListeners(n);\n this.leafletDirective.getMap().addLayer(n);\n }\n });\n }\n }\n addLayerEventListeners(l) {\n this.onAddLayerHandler = (e) => LeafletUtil.handleEvent(this.zone, this.onAdd, e);\n l.on('add', this.onAddLayerHandler);\n this.onRemoveLayerHandler = (e) => LeafletUtil.handleEvent(this.zone, this.onRemove, e);\n l.on('remove', this.onRemoveLayerHandler);\n }\n removeLayerEventListeners(l) {\n l.off('add', this.onAddLayerHandler);\n l.off('remove', this.onRemoveLayerHandler);\n }\n}\nLeafletLayerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletLayerDirective, deps: [{ token: LeafletDirective }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nLeafletLayerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.0.4\", type: LeafletLayerDirective, selector: \"[leafletLayer]\", inputs: { layer: [\"leafletLayer\", \"layer\"] }, outputs: { onAdd: \"leafletLayerAdd\", onRemove: \"leafletLayerRemove\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletLayerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[leafletLayer]'\n }]\n }], ctorParameters: function () { return [{ type: LeafletDirective }, { type: i0.NgZone }]; }, propDecorators: { layer: [{\n type: Input,\n args: ['leafletLayer']\n }], onAdd: [{\n type: Output,\n args: ['leafletLayerAdd']\n }], onRemove: [{\n type: Output,\n args: ['leafletLayerRemove']\n }] } });\n\n/**\n * Layers directive\n *\n * This directive is used to directly control map layers. As changes are made to the input array of\n * layers, the map is synched to the array. As layers are added or removed from the input array, they\n * are also added or removed from the map. The input array is treated as immutable. To detect changes,\n * you must change the array instance.\n *\n * Important Note: The input layers array is assumed to be immutable. This means you need to use an\n * immutable array implementation or create a new copy of your array when you make changes, otherwise\n * this directive won't detect the change. This is by design. It's for performance reasons. Change\n * detection of mutable arrays requires diffing the state of the array on every DoCheck cycle, which\n * is extremely expensive from a time complexity perspective.\n *\n */\nclass LeafletLayersDirective {\n constructor(leafletDirective, differs, zone) {\n this.differs = differs;\n this.zone = zone;\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n this.layersDiffer = this.differs.find([]).create();\n }\n // Set/get the layers\n set layers(v) {\n this.layersValue = v;\n // Now that we have a differ, do an immediate layer update\n this.updateLayers();\n }\n get layers() {\n return this.layersValue;\n }\n ngDoCheck() {\n this.updateLayers();\n }\n ngOnInit() {\n // Init the map\n this.leafletDirective.init();\n // Update layers once the map is ready\n this.updateLayers();\n }\n ngOnDestroy() {\n this.layers = [];\n }\n /**\n * Update the state of the layers.\n * We use an iterable differ to synchronize the map layers with the state of the bound layers array.\n * This is important because it allows us to react to changes to the contents of the array as well\n * as changes to the actual array instance.\n */\n updateLayers() {\n const map = this.leafletDirective.getMap();\n if (null != map && null != this.layersDiffer) {\n const changes = this.layersDiffer.diff(this.layersValue);\n if (null != changes) {\n // Run outside angular to ensure layer events don't trigger change detection\n this.zone.runOutsideAngular(() => {\n changes.forEachRemovedItem((c) => {\n map.removeLayer(c.item);\n });\n changes.forEachAddedItem((c) => {\n map.addLayer(c.item);\n });\n });\n }\n }\n }\n}\nLeafletLayersDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletLayersDirective, deps: [{ token: LeafletDirective }, { token: i0.IterableDiffers }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nLeafletLayersDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.0.4\", type: LeafletLayersDirective, selector: \"[leafletLayers]\", inputs: { layers: [\"leafletLayers\", \"layers\"] }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletLayersDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[leafletLayers]'\n }]\n }], ctorParameters: function () { return [{ type: LeafletDirective }, { type: i0.IterableDiffers }, { type: i0.NgZone }]; }, propDecorators: { layers: [{\n type: Input,\n args: ['leafletLayers']\n }] } });\n\nclass LeafletControlLayersChanges {\n constructor() {\n this.layersRemoved = 0;\n this.layersChanged = 0;\n this.layersAdded = 0;\n }\n changed() {\n return !(this.layersRemoved === 0 && this.layersChanged === 0 && this.layersAdded === 0);\n }\n}\n\nclass LeafletControlLayersWrapper {\n constructor(zone, layersControlReady) {\n this.zone = zone;\n this.layersControlReady = layersControlReady;\n }\n getLayersControl() {\n return this.layersControl;\n }\n init(controlConfig, controlOptions) {\n const baseLayers = controlConfig.baseLayers || {};\n const overlays = controlConfig.overlays || {};\n // Create the control outside of angular to ensure events don't trigger change detection\n this.zone.runOutsideAngular(() => {\n this.layersControl = control.layers(baseLayers, overlays, controlOptions);\n });\n this.layersControlReady.emit(this.layersControl);\n return this.layersControl;\n }\n applyBaseLayerChanges(changes) {\n let results = new LeafletControlLayersChanges();\n if (null != this.layersControl) {\n results = this.applyChanges(changes, this.layersControl.addBaseLayer);\n }\n return results;\n }\n applyOverlayChanges(changes) {\n let results = new LeafletControlLayersChanges();\n if (null != this.layersControl) {\n results = this.applyChanges(changes, this.layersControl.addOverlay);\n }\n return results;\n }\n applyChanges(changes, addFn) {\n const results = new LeafletControlLayersChanges();\n if (null != changes) {\n // All layer management is outside angular to avoid layer events from triggering change detection\n this.zone.runOutsideAngular(() => {\n changes.forEachChangedItem((c) => {\n this.layersControl.removeLayer(c.previousValue);\n addFn.call(this.layersControl, c.currentValue, c.key);\n results.layersChanged++;\n });\n changes.forEachRemovedItem((c) => {\n this.layersControl.removeLayer(c.previousValue);\n results.layersRemoved++;\n });\n changes.forEachAddedItem((c) => {\n addFn.call(this.layersControl, c.currentValue, c.key);\n results.layersAdded++;\n });\n });\n }\n return results;\n }\n}\n\nclass LeafletControlLayersConfig {\n constructor() {\n this.baseLayers = {};\n this.overlays = {};\n }\n}\n\n/**\n * Layers Control\n *\n * This directive is used to configure the layers control. The input accepts an object with two\n * key-value maps of layer name -> layer. Mutable changes are detected. On changes, a differ is\n * used to determine what changed so that layers are appropriately added or removed.\n *\n * To specify which layer to show as the 'active' baselayer, you will want to add it to the map\n * using the layers directive. Otherwise, the last one it sees will be used.\n */\nclass LeafletLayersControlDirective {\n constructor(leafletDirective, differs, zone) {\n this.differs = differs;\n this.zone = zone;\n this.layersControlReady = new EventEmitter();\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n this.controlLayers = new LeafletControlLayersWrapper(this.zone, this.layersControlReady);\n // Generate differs\n this.baseLayersDiffer = this.differs.find({}).create();\n this.overlaysDiffer = this.differs.find({}).create();\n }\n set layersControlConfig(v) {\n // Validation/init stuff\n if (null == v) {\n v = new LeafletControlLayersConfig();\n }\n if (null == v.baseLayers) {\n v.baseLayers = {};\n }\n if (null == v.overlays) {\n v.overlays = {};\n }\n // Store the value\n this.layersControlConfigValue = v;\n // Update the map\n this.updateLayers();\n }\n get layersControlConfig() {\n return this.layersControlConfigValue;\n }\n ngOnInit() {\n // Init the map\n this.leafletDirective.init();\n // Set up control outside of angular to avoid change detection when using the control\n this.zone.runOutsideAngular(() => {\n // Set up all the initial settings\n this.controlLayers\n .init({}, this.layersControlOptions)\n .addTo(this.leafletDirective.getMap());\n });\n this.updateLayers();\n }\n ngOnDestroy() {\n this.layersControlConfig = { baseLayers: {}, overlays: {} };\n this.controlLayers.getLayersControl().remove();\n }\n ngDoCheck() {\n this.updateLayers();\n }\n updateLayers() {\n const map = this.leafletDirective.getMap();\n const layersControl = this.controlLayers.getLayersControl();\n if (null != map && null != layersControl) {\n // Run the baselayers differ\n if (null != this.baseLayersDiffer && null != this.layersControlConfigValue.baseLayers) {\n const changes = this.baseLayersDiffer.diff(this.layersControlConfigValue.baseLayers);\n this.controlLayers.applyBaseLayerChanges(changes);\n }\n // Run the overlays differ\n if (null != this.overlaysDiffer && null != this.layersControlConfigValue.overlays) {\n const changes = this.overlaysDiffer.diff(this.layersControlConfigValue.overlays);\n this.controlLayers.applyOverlayChanges(changes);\n }\n }\n }\n}\nLeafletLayersControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletLayersControlDirective, deps: [{ token: LeafletDirective }, { token: i0.KeyValueDiffers }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nLeafletLayersControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.0.4\", type: LeafletLayersControlDirective, selector: \"[leafletLayersControl]\", inputs: { layersControlConfig: [\"leafletLayersControl\", \"layersControlConfig\"], layersControlOptions: [\"leafletLayersControlOptions\", \"layersControlOptions\"] }, outputs: { layersControlReady: \"leafletLayersControlReady\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletLayersControlDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[leafletLayersControl]'\n }]\n }], ctorParameters: function () { return [{ type: LeafletDirective }, { type: i0.KeyValueDiffers }, { type: i0.NgZone }]; }, propDecorators: { layersControlConfig: [{\n type: Input,\n args: ['leafletLayersControl']\n }], layersControlOptions: [{\n type: Input,\n args: ['leafletLayersControlOptions']\n }], layersControlReady: [{\n type: Output,\n args: ['leafletLayersControlReady']\n }] } });\n\n/**\n * Baselayers directive\n *\n * This directive is provided as a convenient way to add baselayers to the map. The input accepts\n * a key-value map of layer name -> layer. Mutable changed are detected. On changes, a differ is\n * used to determine what changed so that layers are appropriately added or removed. This directive\n * will also add the layers control so users can switch between available base layers.\n *\n * To specify which layer to show as the 'active' baselayer, you will want to add it to the map\n * using the layers directive. Otherwise, the plugin will use the last one it sees.\n */\nclass LeafletBaseLayersDirective {\n constructor(leafletDirective, differs, zone) {\n this.differs = differs;\n this.zone = zone;\n // Output for once the layers control is ready\n this.layersControlReady = new EventEmitter();\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n this.controlLayers = new LeafletControlLayersWrapper(this.zone, this.layersControlReady);\n this.baseLayersDiffer = this.differs.find({}).create();\n }\n // Set/get baseLayers\n set baseLayers(v) {\n this.baseLayersValue = v;\n this.updateBaseLayers();\n }\n get baseLayers() {\n return this.baseLayersValue;\n }\n ngOnDestroy() {\n this.baseLayers = {};\n if (null != this.controlLayers.getLayersControl()) {\n this.controlLayers.getLayersControl().remove();\n }\n }\n ngOnInit() {\n // Init the map\n this.leafletDirective.init();\n // Create the control outside angular to prevent events from triggering chnage detection\n this.zone.runOutsideAngular(() => {\n // Initially configure the controlLayers\n this.controlLayers\n .init({}, this.layersControlOptions)\n .addTo(this.leafletDirective.getMap());\n });\n this.updateBaseLayers();\n }\n ngDoCheck() {\n this.updateBaseLayers();\n }\n updateBaseLayers() {\n const map = this.leafletDirective.getMap();\n const layersControl = this.controlLayers.getLayersControl();\n if (null != map && null != layersControl && null != this.baseLayersDiffer) {\n const changes = this.baseLayersDiffer.diff(this.baseLayersValue);\n const results = this.controlLayers.applyBaseLayerChanges(changes);\n if (results.changed()) {\n this.syncBaseLayer();\n }\n }\n }\n /**\n * Check the current base layer and change it to the new one if necessary\n */\n syncBaseLayer() {\n const map = this.leafletDirective.getMap();\n const layers = LeafletUtil.mapToArray(this.baseLayers);\n let foundLayer;\n // Search all the layers in the map to see if we can find them in the baselayer array\n map.eachLayer((l) => {\n foundLayer = layers.find((bl) => (l === bl));\n });\n // Did we find the layer?\n if (null != foundLayer) {\n // Yes - set the baselayer to the one we found\n this.baseLayer = foundLayer;\n }\n else {\n // No - set the baselayer to the first in the array and add it to the map\n if (layers.length > 0) {\n this.baseLayer = layers[0];\n // Add layers outside of angular to prevent events from triggering change detection\n this.zone.runOutsideAngular(() => {\n this.baseLayer.addTo(map);\n });\n }\n }\n }\n}\nLeafletBaseLayersDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletBaseLayersDirective, deps: [{ token: LeafletDirective }, { token: i0.KeyValueDiffers }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nLeafletBaseLayersDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.0.4\", type: LeafletBaseLayersDirective, selector: \"[leafletBaseLayers]\", inputs: { baseLayers: [\"leafletBaseLayers\", \"baseLayers\"], layersControlOptions: [\"leafletLayersControlOptions\", \"layersControlOptions\"] }, outputs: { layersControlReady: \"leafletLayersControlReady\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletBaseLayersDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[leafletBaseLayers]'\n }]\n }], ctorParameters: function () { return [{ type: LeafletDirective }, { type: i0.KeyValueDiffers }, { type: i0.NgZone }]; }, propDecorators: { baseLayers: [{\n type: Input,\n args: ['leafletBaseLayers']\n }], layersControlOptions: [{\n type: Input,\n args: ['leafletLayersControlOptions']\n }], layersControlReady: [{\n type: Output,\n args: ['leafletLayersControlReady']\n }] } });\n\nclass LeafletModule {\n}\nLeafletModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nLeafletModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletModule, declarations: [LeafletDirective,\n LeafletLayerDirective,\n LeafletLayersDirective,\n LeafletLayersControlDirective,\n LeafletBaseLayersDirective], exports: [LeafletDirective,\n LeafletLayerDirective,\n LeafletLayersDirective,\n LeafletLayersControlDirective,\n LeafletBaseLayersDirective] });\nLeafletModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.4\", ngImport: i0, type: LeafletModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [\n LeafletDirective,\n LeafletLayerDirective,\n LeafletLayersDirective,\n LeafletLayersControlDirective,\n LeafletBaseLayersDirective\n ],\n declarations: [\n LeafletDirective,\n LeafletLayerDirective,\n LeafletLayersDirective,\n LeafletLayersControlDirective,\n LeafletBaseLayersDirective\n ]\n }]\n }] });\n\nclass LeafletTileLayerDefinition {\n constructor(type, url, options) {\n this.type = type;\n this.url = url;\n this.options = options;\n }\n /**\n * Creates a TileLayer from the provided definition. This is a convenience function\n * to help with generating layers from objects.\n *\n * @param layerDef The layer to create\n * @returns {TileLayer} The TileLayer that has been created\n */\n static createTileLayer(layerDef) {\n let layer;\n switch (layerDef.type) {\n case 'xyz':\n layer = tileLayer(layerDef.url, layerDef.options);\n break;\n case 'wms':\n default:\n layer = tileLayer.wms(layerDef.url, layerDef.options);\n break;\n }\n return layer;\n }\n /**\n * Creates a TileLayer for each key in the incoming map. This is a convenience function\n * for generating an associative array of layers from an associative array of objects\n *\n * @param layerDefs A map of key to tile layer definition\n * @returns {{[p: string]: TileLayer}} A new map of key to TileLayer\n */\n static createTileLayers(layerDefs) {\n const layers = {};\n for (const k in layerDefs) {\n if (layerDefs.hasOwnProperty(k)) {\n layers[k] = (LeafletTileLayerDefinition.createTileLayer(layerDefs[k]));\n }\n }\n return layers;\n }\n /**\n * Create a Tile Layer from the current state of this object\n *\n * @returns {TileLayer} A new TileLayer\n */\n createTileLayer() {\n return LeafletTileLayerDefinition.createTileLayer(this);\n }\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { LeafletBaseLayersDirective, LeafletControlLayersChanges, LeafletControlLayersConfig, LeafletControlLayersWrapper, LeafletDirective, LeafletDirectiveWrapper, LeafletLayerDirective, LeafletLayersControlDirective, LeafletLayersDirective, LeafletModule, LeafletTileLayerDefinition, LeafletUtil };\n","import {Component, OnDestroy} from '@angular/core';\r\n\r\nimport {LatLng, Map} from 'leaflet';\r\nimport { Subscription, switchMap } from 'rxjs';\r\n\r\nimport {MapService} from '@commons/services/map/map/map.service';\r\nimport {MinimapService} from \"@src/app/map/services/minimap.service\";\r\nimport { VehicleService } from '@commons/services/vehicle/vehicle.service';\r\nimport { NewWebSocketHttpService } from '@shared/websocket/new-web-socket-http.service';\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { VehicleControlIndicator } from '@commons/models/domain/VehicleControlIndicator';\r\nimport { StatusTimeFormatPipe } from '@commons/pipes/status-time-format.pipe';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FullAddressPipe } from '@commons/pipes/full-address.pipe';\r\nimport { CountryCodeService } from '@commons/services/country.code/country-code.service';\r\n\r\n@Component({\r\n selector: 'tk-map-main-layer',\r\n templateUrl: './map-main-layer.component.html',\r\n providers: [StatusTimeFormatPipe]\r\n})\r\nexport class MapMainLayerComponent implements OnDestroy {\r\n\r\n /**\r\n * Ustawienia mapy (zbindowane do głownej wartwy mapy)\r\n */\r\n options = {\r\n layers: [],\r\n zoom: 12, // zoom mapy na start\r\n zoomControl: false, // wyłączenie przycisków zoom\r\n attributionControl: false, // wyłączenie linku w prawym dolnym rogu\r\n center: new LatLng( // centrum mapy na start\r\n 51.403844,\r\n 21.158246\r\n ),\r\n closePopupOnClick: false,\r\n minZoom: 1,\r\n };\r\n\r\n private currentSelectedVehicle: number;\r\n private currentSelectedVehicleButtonCoords: Element;\r\n private $fullAddressPipe = new FullAddressPipe();\r\n \r\n private onChangeVehicleDataSubsc: Subscription;\r\n private readonly ComponentSubsc: Subscription = new Subscription();\r\n private readonly PopupSubsc: Subscription = new Subscription();\r\n\r\n constructor(\r\n private mapService: MapService,\r\n private minimapService: MinimapService,\r\n private vehicleService: VehicleService,\r\n private newWebSocketHttpService: NewWebSocketHttpService,\r\n private activatedRoute: ActivatedRoute,\r\n private statusTimeFormatPipe: StatusTimeFormatPipe,\r\n private translateService: TranslateService,\r\n private countryCodeService: CountryCodeService\r\n ) {\r\n }\r\n\r\n onMapReady(map: Map): void {\r\n // Delegacja + podłączenie mapy do serwisu\r\n this.mapService.onMapReady(map);\r\n this.minimapService.onMapReady(map);\r\n this.onChangeSelectedVehicle();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n /**\r\n * Gdy główny komponent mapy jest niszczony trzeba odsubskrybować\r\n * wszystkie strumienie zasubkrybowane przez jej serwis\r\n */\r\n this.mapService.unsubscribeAllStreams();\r\n this.ComponentSubsc.unsubscribe();\r\n this.onChangeVehicleDataSubsc?.unsubscribe();\r\n this.PopupSubsc.unsubscribe();\r\n }\r\n\r\n // aktualizowanie danych w popupie markera\r\n private onChangeSelectedVehicle(): void {\r\n const sub = this.activatedRoute.queryParams.subscribe(\r\n (params) => {\r\n const { id, mode } = params;\r\n\r\n if ((!id && this.currentSelectedVehicle) || (this.currentSelectedVehicle && Number(id) !== this.currentSelectedVehicle)) {\r\n this.hideDetailsPopupSelectedVehicle();\r\n }\r\n if (id && mode === 'details') {\r\n this.currentSelectedVehicle = Number(id);\r\n this.showDetailsPopupSelectedVehicle(this.currentSelectedVehicle);\r\n this.onChangeVehicleData(this.currentSelectedVehicle);\r\n }\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private onChangeVehicleData(idVehicle: number): void {\r\n this.onChangeVehicleDataSubsc = this.newWebSocketHttpService.updatedVehicles\r\n .pipe(\r\n switchMap(() => this.vehicleService.getDetails$(idVehicle)),\r\n )\r\n .subscribe(\r\n (dataVehicle) => {\r\n this.updateVehicleDataPopupMarker(dataVehicle);\r\n }\r\n ); \r\n }\r\n\r\n private updateVehicleDataPopupMarker(data: Vehicle): void { \r\n const streetElement = this.getSelectedVehiclePopup(data.Id)?.querySelector('.details-vehicle__street');\r\n const dateElement = this.getSelectedVehiclePopup(data.Id)?.querySelector('.details-vehicle__date');\r\n\r\n this.popupSelectedVehicleListeners();\r\n\r\n if (streetElement && data.LL) {\r\n data.LL.Cr = this.countryCodeService.getCode(data.LL.Cr);\r\n const streetValue = this.$fullAddressPipe.transform(data.LL);\r\n streetElement.textContent = streetValue;\r\n streetElement.setAttribute('title', streetValue);\r\n \r\n if (dateElement) {\r\n try {\r\n const paramPosition: VehicleControlIndicator | undefined = data.ControlIndicators?.find(x => x.Tp == 22);\r\n\r\n if (paramPosition) {\r\n const lastPositionTime: Date = new Date(paramPosition.LV.T);\r\n const n = new Date();\r\n const date = Math.ceil((n.getTime() - lastPositionTime.getTime()) / 1000);\r\n\r\n if (date) {\r\n dateElement.textContent = this.statusTimeFormatPipe.transform(date) + ' ' + this.translateService.instant('labels.ago');\r\n }\r\n }\r\n }\r\n catch (_) {\r\n dateElement.textContent = 'Brak daty ostatniej aktualizacji';\r\n }\r\n }\r\n }\r\n }\r\n\r\n private getSelectedVehiclePopup(id: number): Element | null {\r\n const elements = Array.from(document.getElementsByClassName(`popup-vehicle-${id}`));\r\n return elements.length > 0 ? elements[0] : null;\r\n }\r\n\r\n private showDetailsPopupSelectedVehicle(id: number): void {\r\n this.getSelectedVehiclePopup(id)?.classList.add('is-selected');\r\n }\r\n\r\n private hideDetailsPopupSelectedVehicle(id = this.currentSelectedVehicle): void {\r\n this.onChangeVehicleDataSubsc?.unsubscribe();\r\n this.PopupSubsc.unsubscribe();\r\n this.currentSelectedVehicleButtonCoords.removeEventListener('click', () => {});\r\n this.getSelectedVehiclePopup(id)?.classList.remove('is-selected');\r\n this.currentSelectedVehicle = null as any;\r\n }\r\n\r\n private popupSelectedVehicleListeners(): void {\r\n const popup = this.getSelectedVehiclePopup(this.currentSelectedVehicle);\r\n const buttonCopyCoords = popup?.querySelector('#button-copy-coords');\r\n\r\n if (buttonCopyCoords) {\r\n setTimeout(() => {\r\n this.currentSelectedVehicleButtonCoords = buttonCopyCoords;\r\n this.currentSelectedVehicleButtonCoords.addEventListener('click', () => {\r\n navigator.clipboard.writeText(buttonCopyCoords.getAttribute('data-vehicle-coords') as string);\r\n });\r\n }, 0);\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { PopupRendererService } from '../../renderer/popup-renderer.service';\r\nimport { MapService } from '../../map/map.service';\r\nimport { MapConfigService } from '../../config/map-config.service';\r\n\r\n@Injectable()\r\nexport class PopupDrawerService {\r\n\r\n /**\r\n * Service constructor\r\n * @param $map map service\r\n * @param $popup popup renderer service\r\n * @param $cluster cluster service\r\n */\r\n public constructor(\r\n private $map: MapService,\r\n private $popup: PopupRendererService,\r\n private $mapConfig: MapConfigService\r\n ) { }\r\n\r\n /**\r\n * Przelaczenie widzialnosci okien informacyjnych\r\n */\r\n public toggleClusterPopupsVisibility(): boolean {\r\n let flag = this.$mapConfig.getShowPopupsFlag();\r\n flag = !flag;\r\n this.$mapConfig.setShowPopupsFlag(flag);\r\n\r\n const markers = this.$map.groups.clusters;\r\n markers.eachLayer((m: any) => {\r\n const marker = m;\r\n const options = marker.options;\r\n if (options.isPopupVisible !== undefined) {\r\n options.isPopupVisible = flag;\r\n }\r\n });\r\n\r\n this.$popup.renderPopups(this.$map.groups);\r\n\r\n return flag;\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
{{tooltipText}}
\r\n
{{inactiveTooltip}}
\r\n
\r\n
\r\n
\r\n\r\n","import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mapm-icon',\r\n templateUrl: './icon.component.html',\r\n styleUrls: ['./icon.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class IconComponent implements OnInit {\r\n @Input() icon = '';\r\n @Input() isActiveIcon = '';\r\n @Input() isActive = false;\r\n @Input() tooltipText = '';\r\n @Input() iconClasses = '';\r\n @Input() containerClasses = '';\r\n @Input() isMatIcon = false;\r\n @Input() isTooltipVisible = true;\r\n @Input() isActiveOnHover = false;\r\n @Input() showToolTipOnActive = false;\r\n @Input() showToolTipOnInactive = false;\r\n @Input() inactiveTooltip = '';\r\n\r\n isHovered = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onHover(isHoverd: boolean) {\r\n this.isHovered = isHoverd;\r\n }\r\n\r\n getIconClasses(): string {\r\n let result = this.iconClasses;\r\n\r\n if (this.isActive || this.isHovered) {\r\n result += ` ${this.isActiveIcon}`;\r\n } else\r\n result += ` ${this.icon}`;\r\n\r\n return result;\r\n }\r\n\r\n getContainerClasses(): string {\r\n let result = this.containerClasses;\r\n\r\n if (this.isActive || this.isHovered)\r\n result += ' tk-bg-blue';\r\n else if (!this.isActive || !this.isHovered || !this.isActiveOnHover)\r\n result += ' bg-white';\r\n\r\n return result;\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\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 ©Emapa\r\n \r\n\r\n \r\n ©Google\r\n \r\n\r\n \r\n ©OpenStreetMap\r\n \r\n\r\n {{clientName}}\r\n
\r\n","import {Component, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\n\r\nimport {MapService} from '@commons/services/map/map/map.service';\r\nimport {PopupDrawerService} from '@commons/services/map/drawer/popup/popup-drawer.service';\r\nimport {VehicleService} from '@commons/services/vehicle/vehicle.service';\r\nimport {MapConfigService} from '@commons/services/map/config/map-config.service';\r\n\r\nimport {PermissionService} from \"@shared/services/permission.service\";\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\nimport {AuthenticationService} from '@shared/services/authentication/authentication.service';\r\nimport {SettingsService} from \"@shared/services/settings.service\";\r\n\r\nimport {MapPanelService} from \"@map-panel/services/map-panel.service\";\r\nimport {MapLayerType} from '../map-layers';\r\nimport { NewNavigationService } from '@shared/services/new-navigation.service';\r\nimport { MapActionType } from '@src/app/enum/map.enum';\r\n\r\n@Component({\r\n selector: 'tk-map-controls',\r\n templateUrl: './map-controls.component.html',\r\n styleUrls: ['./map-controls.component.less']\r\n})\r\nexport class MapControlsComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n @Input() public hasAccessToAreas: boolean;\r\n @Input() public isAreasPanelActive: boolean;\r\n\r\n @Output() public onClickModule$: EventEmitter = new EventEmitter();\r\n\r\n readonly clientName?: string = '';\r\n\r\n isFullScreenActive = false;\r\n isCenterMapActive = false;\r\n isShowPopupActive = false;\r\n isMapPanelVisible = false;\r\n followVehicleStatus = false;\r\n isTrackingVisible = false;\r\n mainMapZoomLevelOffset = 0;\r\n\r\n get isEmapaSelected(): boolean {\r\n return this.mapService.currentMapLayerType === MapLayerType.emapa;\r\n }\r\n\r\n get isOpenStreetSelected(): boolean {\r\n return this.mapService.currentMapLayerType === MapLayerType.osm;\r\n // ||this.mapService.currentMapLayerType === MapLayerType.osmTransport;\r\n }\r\n\r\n get isGoogleSelected(): boolean {\r\n return this.mapService.currentMapLayerType === MapLayerType.googleRoadmap ||\r\n this.mapService.currentMapLayerType === MapLayerType.googleHybrid;\r\n }\r\n\r\n get isWindowTheSameSizeAsScreen(): boolean {\r\n return (window.innerHeight == screen.height || window.innerHeight == screen.height - 1) && window.innerWidth == screen.width;\r\n }\r\n\r\n constructor(\r\n private mapConfigService: MapConfigService,\r\n private popupDrawerService: PopupDrawerService,\r\n private router: Router,\r\n private vehicleService: VehicleService,\r\n private permissionService: PermissionService,\r\n private authenticationService: AuthenticationService,\r\n private mapPanelService: MapPanelService,\r\n private mapService: MapService,\r\n private settingsService: SettingsService,\r\n private newNavigationService: NewNavigationService,\r\n ) {\r\n super();\r\n this.isFullScreenActive = this.isInFullScreen();\r\n this.clientName = this.authenticationService.currentClient;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n ngOnInit() {\r\n this.isMapPanelVisible = true;\r\n this.onSwitchMap();\r\n this.subToIsMapPanelVisible();\r\n\r\n if (this.settingsService.isShowPopups())\r\n this.onShowPopups();\r\n\r\n this.subToCurrentVehicleIdChange();\r\n this.subToGetFollowVehicleSubject();\r\n this.subToMouseDownWhenMapReady();\r\n }\r\n\r\n public onOpenAreasPanel(): void {\r\n this.onClickModule$.emit(MapActionType.Areas);\r\n }\r\n\r\n onTracking() {\r\n this.followVehicleStatus = !this.followVehicleStatus;\r\n this.vehicleService.setFollowVehicleStatus(this.followVehicleStatus);\r\n }\r\n\r\n onZoomIn(): void {\r\n this.mapService.changeZoom(+1);\r\n this.onMainMapIncreaseZoom();\r\n }\r\n\r\n onZoomOut(): void {\r\n this.mapService.changeZoom(-1);\r\n this.onMainMapDecreaseZoom();\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event: any) {\r\n this.isFullScreenActive = this.isInFullScreen();\r\n }\r\n\r\n onToggleFullScreen() {\r\n if (this.isInFullScreen()) {\r\n this.exitFullscreen();\r\n } else {\r\n this.enterFullscreen();\r\n }\r\n\r\n this.isFullScreenActive = this.isInFullScreen();\r\n }\r\n\r\n onCenterMap(): void {\r\n this.mapService.centerMap();\r\n }\r\n\r\n onShowPopups(): void {\r\n this.isShowPopupActive = this.popupDrawerService.toggleClusterPopupsVisibility();\r\n this.settingsService.setShowPopups(this.isShowPopupActive);\r\n }\r\n\r\n onSwitchMap(emit = true) {\r\n this.isMapPanelVisible = !this.isMapPanelVisible;\r\n if (emit)\r\n this.mapPanelService.isMapPanelVisibleSubject.next(this.isMapPanelVisible);\r\n }\r\n\r\n private subToGetFollowVehicleSubject() {\r\n this.vehicleService.getFollowVehicleSubject().subscribe(isFollowed => {\r\n this.followVehicleStatus = isFollowed;\r\n });\r\n }\r\n\r\n private subToCurrentVehicleIdChange() {\r\n this.mapConfigService.currentVehicleIdChange().subscribe(data => {\r\n this.isTrackingVisible = !isNaN(data.currentVehicleId);\r\n });\r\n }\r\n\r\n private subToMouseDownWhenMapReady() {\r\n this.mapService.mapReady$.subscribe(isReady => {\r\n if (isReady) {\r\n // event moved dla mapy jest zgłaszany też kiedy pojazd jest śledzony więc odpięcie śledzenia odbywa się po kliknięciu na mapkę\r\n // co najprawdopodobniej będzie początkiem ruchu przesunięcia mapki\r\n this.mapService.map?.on('mousedown', () => {\r\n this.followVehicleStatus = false;\r\n this.vehicleService.setFollowVehicleStatus(this.followVehicleStatus);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private enterFullscreen(): void {\r\n const _Element = Element;\r\n const elem = document.body;\r\n\r\n if (elem.requestFullScreen) {\r\n elem.requestFullScreen();\r\n } else if (elem.mozRequestFullScreen) {\r\n elem.mozRequestFullScreen();\r\n } else if (elem.webkitRequestFullScreen) {\r\n elem.webkitRequestFullScreen(_Element.ALLOW_KEYBOARD_INPUT);\r\n } else if (elem.msRequestFullscreen) {\r\n elem.msRequestFullscreen();\r\n }\r\n }\r\n\r\n private exitFullscreen(): void {\r\n const _document = document;\r\n\r\n if (_document.cancelFullScreen) {\r\n _document.cancelFullScreen();\r\n } else if (_document.mozCancelFullScreen) {\r\n _document.mozCancelFullScreen();\r\n } else if (_document.webkitCancelFullScreen) {\r\n _document.webkitCancelFullScreen();\r\n } else if (_document.msExitFullscreen) {\r\n _document.msExitFullscreen();\r\n }\r\n }\r\n\r\n private isInFullScreen(): boolean {\r\n const _document = document;\r\n var domFullscreen: boolean;\r\n if (\r\n (_document.fullScreenElement !== undefined && _document.fullScreenElement === null) ||\r\n (_document.msFullscreenElement !== undefined && _document.msFullscreenElement === null) ||\r\n (_document.mozFullScreen !== undefined && !_document.mozFullScreen) ||\r\n (_document.webkitIsFullScreen !== undefined && !_document.webkitIsFullScreen)) {\r\n domFullscreen = false;\r\n } else {\r\n domFullscreen = true;\r\n }\r\n\r\n return this.isWindowTheSameSizeAsScreen || domFullscreen;\r\n }\r\n\r\n private subToIsMapPanelVisible() {\r\n this.addToUnsubscribe(\r\n this.mapPanelService.isMapPanelVisibleSubject.subscribe(isVisible => {\r\n this.isMapPanelVisible = isVisible;\r\n })\r\n );\r\n }\r\n\r\n private onMainMapIncreaseZoom() {\r\n if (this.mainMapZoomLevelOffset === 0)\r\n return;\r\n\r\n this.mainMapZoomLevelOffset += 1;\r\n this.mapPanelService.mainMapZoomLevelOffsetChanged.next(this.mainMapZoomLevelOffset);\r\n }\r\n\r\n private onMainMapDecreaseZoom() {\r\n if (this.mainMapZoomLevelOffset === -10)\r\n return;\r\n\r\n this.mainMapZoomLevelOffset -= 1;\r\n this.mapPanelService.mainMapZoomLevelOffsetChanged.next(this.mainMapZoomLevelOffset);\r\n }\r\n\r\n}\r\n","
\r\n \r\n\r\n \r\n
\r\n","import {AfterViewInit, ChangeDetectionStrategy, Component, OnInit} from '@angular/core';\r\n\r\nimport {MapPanelService} from \"@map-panel/services/map-panel.service\";\r\n\r\nimport {MinimapService} from \"@src/app/map/services/minimap.service\";\r\n\r\n@Component({\r\n selector: 'mapm-minimap-controls',\r\n templateUrl: './minimap-controls.component.html',\r\n})\r\nexport class MinimapControlsComponent implements OnInit, AfterViewInit {\r\n\r\n areButtonsVisible = false;\r\n\r\n constructor(\r\n private mapPanelService: MapPanelService,\r\n private minimapService: MinimapService,\r\n ) {\r\n this.areButtonsVisible = this.minimapService.isMinimapVisible;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.minimapService.minimapVisibleChangedSub$.subscribe(visible => {\r\n this.areButtonsVisible = visible;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onZoomIn() {\r\n this.minimapService.zoomIn();\r\n }\r\n\r\n onZoomOut() {\r\n this.minimapService.zoomOut();\r\n }\r\n}\r\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(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}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\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}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\n\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\n\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\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 default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { RouteEvent } from '@commons/models/domain/RouteEvent';\r\nimport { MapService } from '@commons/services/map/map/map.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { Subscription, of, switchMap } from 'rxjs';\r\nimport { parseISO, format } from 'date-fns';\r\n\r\nimport { CountryCodeService } from '@commons/services/country.code/country-code.service';\r\nimport { FullAddressPipe } from '@commons/pipes/full-address.pipe';\r\nimport { VehicleService } from '@commons/services/vehicle/vehicle.service';\r\nimport { LanguageService } from '@shared/services/language.service';\r\n\r\n@Component({\r\n selector: 'app-modal-with-park-information',\r\n templateUrl: './modal-with-park-information.component.html',\r\n styleUrls: ['./modal-with-park-information.component.scss'],\r\n providers: [FullAddressPipe],\r\n})\r\nexport class ModalWithParkInformationComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('container') public container: ElementRef;\r\n\r\n public isVisible: boolean;\r\n public data: RouteEvent;\r\n public formattedDate: any;\r\n public formattedStreet: string;\r\n public clickedVehicle: any;\r\n\r\n private onClickParkIconSubsc: Subscription;\r\n private onChangeClickedVehicleSubsc: Subscription;\r\n private onClickEventModalSubsc: Subscription;\r\n\r\n constructor(\r\n private mapService: MapService,\r\n private countryCodeService: CountryCodeService,\r\n private fullAddressPipe: FullAddressPipe,\r\n private vehicleService: VehicleService,\r\n private activatedRoute: ActivatedRoute,\r\n private languageService: LanguageService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.onClickParkIcon();\r\n this.onChangeClickedVehicle();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.onClickParkIconSubsc?.unsubscribe();\r\n this.onChangeClickedVehicleSubsc?.unsubscribe();\r\n this.onClickEventModalSubsc?.unsubscribe();\r\n }\r\n\r\n public onClickHideModal(): void {\r\n this.isVisible = false;\r\n this.hideModal();\r\n }\r\n\r\n public copyCords(): void {\r\n const coords = `${this.data?.D.S.Lt},${this.data?.D.S.Ln}`;\r\n navigator.clipboard.writeText(coords);\r\n }\r\n\r\n private onChangeClickedVehicle(): void {\r\n this.onChangeClickedVehicleSubsc = this.activatedRoute.queryParams\r\n .pipe(\r\n switchMap((params) => {\r\n if (params['id']) {\r\n return this.vehicleService.getDetails$(Number(params['id']));\r\n }\r\n return of(null);\r\n })\r\n )\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.onClickHideModal();\r\n this.clickedVehicle = { ...data }; \r\n return;\r\n }\r\n this.onClickHideModal();\r\n }\r\n );\r\n }\r\n\r\n private onClickParkIcon(): void {\r\n this.onClickEventModalSubsc = this.mapService.onClickEventList$.subscribe((data) => {\r\n if (data) this.hideModal();\r\n });\r\n\r\n this.onClickParkIconSubsc = this.mapService.onClickParkStopIcon$.subscribe(\r\n (data) => {\r\n if (data) {\r\n this.data = {...data};\r\n this.formattedDate = this.formatEventDates(data);\r\n this.formattedStreet = this.onFormattedStreet(data);\r\n \r\n if (this.isVisible) {\r\n this.hideModal();\r\n }\r\n setTimeout(() => {\r\n this.showModal();\r\n }, this.isVisible ? 150 : 0);\r\n return;\r\n }\r\n this.hideModal();\r\n }\r\n );\r\n }\r\n \r\n private onFormattedStreet(data: RouteEvent): string {\r\n let dataStreet = { ...data.D.S };\r\n dataStreet.Cr = this.countryCodeService.getCode(dataStreet.Cr);\r\n const streetValue = this.fullAddressPipe.transform(dataStreet);\r\n return streetValue;\r\n }\r\n\r\n private hideModal(): void {\r\n this.container.nativeElement?.classList.add('hide');\r\n setTimeout(() => {\r\n this.container.nativeElement?.classList.remove('is-visible');\r\n }, 150);\r\n }\r\n\r\n private showModal(): void {\r\n this.isVisible = true;\r\n this.container.nativeElement?.classList.add('is-visible');\r\n this.container.nativeElement?.classList.remove('hide');\r\n }\r\n\r\n private formatEventDates(event: RouteEvent): { date: string, diff: any } {\r\n const { St, En } = event;\r\n const startDate = St && parseISO(St as any);\r\n const endDate = En && parseISO(En as any);\r\n const formatString = \"d MMMM yyyy HH:mm\";\r\n const startFormatted = St ? format(startDate, formatString, { locale: this.languageService.localeVariableDateFns }) : 'Invalid Date';\r\n const endFormatted = En ? format(endDate, formatString, { locale: this.languageService.localeVariableDateFns }) : 'Invalid date';\r\n\r\n return {\r\n date: `${startFormatted} - ${endFormatted}`,\r\n diff: this.calculateDetails(event),\r\n };\r\n }\r\n\r\n private calculateDetails(route: RouteEvent) {\r\n if (!route.St || !route.En) {\r\n return null;\r\n }\r\n else {\r\n const startTime = new Date(route.St).getTime();\r\n const endTime = new Date(route.En).getTime();\r\n const duration = Math.floor((endTime - startTime) / 1000);\r\n return duration;\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n {{'trafficStop'|translate}}\r\n \r\n
\r\n \r\n
\r\n {{'duration'|translate}}: {{ formattedDate?.diff | statusTimeFormat }}\r\n \r\n {{ formattedDate?.date }}\r\n \r\n \r\n {{ clickedVehicle?.Nm }}\r\n \r\n \r\n
\r\n \r\n {{ formattedStreet }}\r\n \r\n\r\n
\r\n \r\n \"\"\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loader-map',\r\n templateUrl: './loader-map.component.html',\r\n styleUrls: ['./loader-map.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LoaderMapComponent{\r\n\r\n}\r\n","
\r\n \r\n
","export enum EventTypeEnum {\r\n\r\n Alarm = 0,\r\n Fuel = 1,\r\n Area = 2\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nconst translationsKeys: any = {\r\n 'Brak łączności z serwerem': 'events-list.no-connectivity-to-the-server',\r\n 'Holowanie pojazdu': 'events-list.vehicle-towing',\r\n 'Alarm niskiego napięcia akumulatora': 'events-list.low-battery-voltage-alarm',\r\n 'Zanik sygnału GPS podczas jazdy': 'events-list.gps-singal-loss',\r\n 'Praca pojazdu bez zindetyfikowanego pracownika': 'events-list.operation-of-vehicle-without-servant',\r\n 'Uruchomienie pojazdu w niedozwolonym czasie': 'events-list.unauth-starting-vehicle',\r\n 'Alarm przekroczenia dozwolonej prędkości': 'events-list.overspeed',\r\n\r\n '#HDOP': 'vehicle-indicator.hdop',\r\n 'Napięcie zasilania': 'vehicle-indicator.power-voltage',\r\n 'Odległość': 'vehicle-indicator.distance',\r\n 'Poziom sygnału GSM': 'vehicle-indicator.gsm-signal-level',\r\n 'Prędkość': 'vehicle-indicator.speed',\r\n 'Widoczność satelit': 'vehicle-indicator.visibility-satelit',\r\n 'BZ - brak zasilania': 'vehicle-indicator.no-power-supply',\r\n 'ECO - Tryb ECO': 'vehicle-indicator.eco-mode',\r\n 'Zapłon': 'vehicle-indicator.ignition',\r\n 'Prędkość GPS': 'vehicle-indicator.gps-speed',\r\n 'Paliwo': 'vehicle-indicator.fuel',\r\n 'Obroty silnika': 'vehicle-indicator.rpm-engine',\r\n 'Przekroczenie prędkości': 'events-type.speedAlarm',\r\n 'Postój poza obszarem (poprawa bazy obszarów)': 'events-type.outOfAreaStop'\r\n};\r\n\r\n@Pipe({\r\n name: 'translateByText'\r\n})\r\nexport class TranslateByTextPipe implements PipeTransform {\r\n\r\n constructor(\r\n public translate: TranslateService,\r\n ) {}\r\n\r\n transform(value: string): string {\r\n if (this.translate.currentLang !== 'pl') {\r\n return translationsKeys[value] ? this.translate.instant(translationsKeys[value]) : value;\r\n }\r\n return value;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n {{ eventType === VALUE_SIGN.EventFuelRefuelling ? ('fuel-status.refueling'|translate) : ('fuel-status.loss'|translate) }}\r\n \r\n \r\n \r\n !   {{ 'events-list.alarm'|translate }}\r\n \r\n \r\n \r\n \r\n {{ eventType === VALUE_SIGN.EventAreaExit ? ('area-event-type.leaves'|translate) : ('area-event-type.entry'|translate) }}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {{ eventData?.TS | date: 'EEEE, d MMMM y HH:mm' : '' : langauge }}\r\n \r\n \r\n {{ vehicle?.Nm || defaultVehicleName }}\r\n \r\n \r\n {{ driver?.FN || defaultDriverName }} {{ driver?.LN || '' }}\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \"\"\r\n {{'fuel-status.refueling'|translate}} + {{ valueLFuel | number:'1.0-0' }} L\r\n \r\n \r\n \"fuel-loss\"\r\n {{'fuel-status.fuel-loss'|translate}} - {{ valueLFuel | number:'1.0-0' }} L\r\n \r\n {{ eventData?.ED?.Dc | translateByText }}\r\n {{'area-event-type.leaves'|translate}} {{eventData?.ED?.Nm || ('unkownArea'|translate)}}\r\n {{'area-event-type.entry'|translate}} {{eventData?.ED?.Nm || ('unkownArea'|translate)}}\r\n
\r\n\r\n
\r\n \r\n \"\"\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { FullAddressPipe } from '@commons/pipes/full-address.pipe';\r\nimport { MapService } from '@commons/services/map/map/map.service';\r\nimport { LanguageService } from '@shared/services/language.service';\r\nimport { BusinessEvent } from '@commons/models/domain/BusinessEvent';\r\nimport { Consts } from '@commons/consts/consts';\r\nimport { EventTypeEnum } from '@commons/enums/event-type.enum';\r\nimport { Driver } from '@commons/models/domain/Driver';\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NewDataStoreService } from '@shared/services/new-data-store.service';\r\n\r\n@Component({\r\n selector: 'app-modal-event-information',\r\n templateUrl: './modal-event-information.component.html',\r\n styleUrls: ['./modal-event-information.component.scss'],\r\n providers: [FullAddressPipe],\r\n})\r\nexport class ModalEventInformationComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('container') public container: ElementRef;\r\n\r\n public isVisible: boolean;\r\n public formattedDate: any;\r\n public formattedStreet: string;\r\n public eventData!: BusinessEvent;\r\n public defaultVehicleName = this.translate.instant('events-list.unknown-vehicle');\r\n public defaultDriverName = this.translate.instant('events-list.unknown-driver');\r\n public driver?: Driver;\r\n public vehicle?: Vehicle;\r\n public valueLFuel?: number;\r\n\r\n public eventType: Consts;\r\n public eventMode: EventTypeEnum;\r\n \r\n private onChangeModalVisibleSubsc: Subscription;\r\n private onClickParkStopIconSubsc: Subscription;\r\n\r\n public readonly EVENT_TYPE_ENUM = EventTypeEnum;\r\n public readonly VALUE_SIGN = Consts;\r\n public readonly langauge: string = this.languageService.current;\r\n\r\n constructor(\r\n private mapService: MapService,\r\n private languageService: LanguageService,\r\n private translate: TranslateService,\r\n private newDataStoreService: NewDataStoreService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.onChangeModalVisible();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.onChangeModalVisibleSubsc?.unsubscribe();\r\n this.onClickParkStopIconSubsc?.unsubscribe();\r\n }\r\n\r\n public copyCords(): void {\r\n const coords = `${this.eventData?.EL.Lt},${this.eventData?.EL.Ln}`;\r\n navigator.clipboard.writeText(coords);\r\n }\r\n\r\n public onClickHideModal(): void {\r\n this.isVisible = false;\r\n this.hideModal();\r\n }\r\n\r\n private hideModal(): void {\r\n this.container.nativeElement.classList.add('hide');\r\n setTimeout(() => {\r\n this.container.nativeElement.classList.remove('is-visible');\r\n }, 150);\r\n }\r\n\r\n private showModal(): void {\r\n this.isVisible = true;\r\n this.container.nativeElement.classList.add('is-visible');\r\n this.container.nativeElement.classList.remove('hide');\r\n }\r\n\r\n private onChangeModalVisible(): void {\r\n this.onClickParkStopIconSubsc = this.mapService.onClickParkStopIcon$.subscribe((data) => {\r\n if (data) this.hideModal();\r\n });\r\n\r\n this.onChangeModalVisibleSubsc = this.mapService.onClickEventList$.subscribe(\r\n (res) => {\r\n if (res?.data) {\r\n this.eventType = res.data.EA;\r\n this.eventData = res.data;\r\n this.eventMode = res.eventMode;\r\n this.getVehicleData();\r\n if (this.eventMode === EventTypeEnum.Fuel) this.getFuelData();\r\n\r\n if (this.isVisible) {\r\n this.hideModal();\r\n }\r\n setTimeout(() => {\r\n this.showModal();\r\n }, this.isVisible ? 150 : 0);\r\n return;\r\n }\r\n this.hideModal();\r\n }\r\n );\r\n }\r\n\r\n private getVehicleData(): void {\r\n if (this.eventData?.DI) {\r\n const driver = this.newDataStoreService.getDriverById(this.eventData?.DI);\r\n if (driver) {\r\n this.driver = driver;\r\n }\r\n }\r\n if (this.eventData?.VI) {\r\n const vehicle = this.newDataStoreService.getVehicleById(this.eventData?.VI);\r\n if (vehicle) {\r\n this.vehicle = vehicle;\r\n }\r\n }\r\n }\r\n\r\n private getFuelData(): void {\r\n if (this.eventData?.ED && this.eventData.ED.V) {\r\n this.valueLFuel = Math.abs(this.eventData.ED.V);\r\n if (this.eventData.ED.IV) {\r\n // this.invoiceDiff = Math.abs(this.eventData.ED.V) - Math.abs(this.eventData.ED.IV);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","export enum ParameterTypeEnum {\r\n None = 0, //brak parametru\r\n Fuel = 1, //paliwo\r\n Speed = 2, //prędkość\r\n //SpeedMax = 3, //prędkość maksymalna\r\n //SpeedAvg = 4, //prędkość średnia\r\n EngineSpeed = 5, //obroty silnika\r\n Temperature = 6, //temperatura\r\n Voltage = 7, //napięcie\r\n Location = 8, //lokalizacja\r\n Binary = 9, //dwustanowy\r\n Analog = 10, //analogowy\r\n Digital = 11, //cyfrowe\r\n Pulse = 12, //impulsowy\r\n Pressure = 13, //ciśnienie\r\n Humidity = 14, //wilgotność\r\n ElectricCurrent = 15, //natężenie prądu\r\n Ignition = 16, //zapłon (dwustanowy)\r\n Distance = 17, //odległość (droga)\r\n Move = 18, //czujnik ruchu - wartość analogowa\r\n MoveBinary = 19, //czujnik ruchu - ruch/brak ruchu\r\n Direction = 20, //kierunek\r\n VisibleSatellites = 21, //ilość widocznych satelitów\r\n GSMLevel = 22, //poziom sygnału GSM\r\n RFID = 23, //identyfikator karty/pastylki\r\n Acceleration = 24, //przyspieszenie \r\n //VoltageBattery = 25, //napięcie zasilania podtrzymującego\r\n Crash = 26, //parametr wypadku\r\n FuelUsage = 27, //zużycie paliwa w pojeździe\r\n WorkTime = 28, //czas pracy silnika\r\n GPSData = 100,\r\n EcoDriving = 101, //eco driving - zbiorczy parametr (hamowania, zakręty itp.)\r\n VehicleStatus = 1000, //czujnik wirtualny, oznacza bieżący status pojazdu - na potrzeby MyCarWeb\r\n VirtualDirection = 1001, //parametr wirtualny, wyliczany na podstawie 2 ostatnich pozycji - na potrzeby MyCarWeb\r\n VirtualJoinedTemperatures = 1002, //parametr wirtualny, zwraca połączone temperatury (przyp. Elika: jest to paskudztwo; kiedy to tworzyłem to mnie mdliło) - na potrzeby MyCarWeb\r\n VirtualETollStatus = 1003,\r\n}","export enum FilterVehicleType {\r\n Status = 1,\r\n Group = 2,\r\n Blocking = 3,\r\n TachoStatus = 4,\r\n}\r\n\r\nexport enum FilterLockType {\r\n Unblock = 1,\r\n Lock = 2,\r\n}","import { Vehicle } from \"@commons/models/domain/Vehicle\";\r\nimport { VehicleControlIndicator } from \"@commons/models/domain/VehicleControlIndicator\";\r\n\r\nexport function filterBinaryParams(param: VehicleControlIndicator): boolean {\r\n const hiddenParamsByName = ['BZ - brak zasilania'];\r\n const ifHiddenParamByName = hiddenParamsByName.includes(param.Nm);\r\n if (ifHiddenParamByName) {\r\n return false;\r\n }\r\n const ifValueNull = param.LV === null;\r\n if (ifValueNull) {\r\n return false;\r\n }\r\n const ifServiceParam = param.Nm.slice(0, 1) === '#';\r\n if (ifServiceParam) {\r\n return false;\r\n }\r\n return !param.Nm.includes('OUT');\r\n}\r\n\r\nexport function findVehicleSpeedParamValue(data: Vehicle): number {\r\n const controls = data.ControlIndicators;\r\n let value = (controls || []).filter(o => o && o.Group === 12);\r\n let cValue = (value && value.length > 0 && value[0].LV) ? value[0].LV : null;\r\n return cValue?.V;\r\n};\r\n\r\nexport function isVehicleBlocked(data: Vehicle): boolean {\r\n const control = data.blockerParametrId ? data.ControlIndicators?.find(item => item.Id === data?.blockerParametrId) : null;\r\n const controlOut2 = data.blockerParametrIdOut2 ? data.ControlIndicators?.find(item => item.Id === data?.blockerParametrIdOut2) : null;\r\n return control?.LV?.V || controlOut2?.LV?.V;\r\n};","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Driver } from '../models/domain/Driver';\r\n\r\n\r\n\r\n@Pipe({ name: 'fullName' })\r\nexport class DriverFullNamePipe implements PipeTransform {\r\n\r\n\r\n public transform(driver?: Driver): string {\r\n let fullName = '';\r\n if (driver) {\r\n if (driver.FN) {\r\n fullName += (fullName ? ' ' : '') + driver.FN;\r\n }\r\n if (driver.LN) {\r\n fullName += (fullName ? ' ' : '') + driver.LN;\r\n }\r\n }\r\n return fullName;\r\n }\r\n}\r\n","import { Vehicle } from \"@commons/models/domain/Vehicle\";\r\nimport { VehicleTachoSlot } from \"@commons/models/domain/VehicleTacho\";\r\nimport { LatLng } from \"leaflet\";\r\n\r\nexport function getVehicleCoords(data: Vehicle): LatLng {\r\n if (data.LL) {\r\n const _lat = parseFloat(data.LL.Lt + '');\r\n const _lng = parseFloat(data.LL.Ln + '');\r\n\r\n if (_lat && _lat !== 361 && _lng && _lng !== 361) {\r\n const lat = (_lat);\r\n const lng = (_lng);\r\n const coords = new LatLng(lat, lng);\r\n return coords;\r\n }\r\n }\r\n return null as any;\r\n}\r\n\r\nexport function getActiveTachoSlot(vehicle: Vehicle): VehicleTachoSlot {\r\n if (vehicle.Tacho) {\r\n const ifSlot1 = vehicle.Tacho.S1 && vehicle.Tacho.S1.Id;\r\n if (ifSlot1) {\r\n return vehicle.Tacho.S1 as VehicleTachoSlot;\r\n }\r\n const ifSlot2 = vehicle.Tacho.S2 && vehicle.Tacho.S2.Id;\r\n if (ifSlot2) {\r\n return vehicle.Tacho.S2 as VehicleTachoSlot;\r\n }\r\n }\r\n return null as any;\r\n}\r\n\r\nexport function calculateVehicleTimeInCurrentState(data: Vehicle): number {\r\n const controls = data.ControlIndicators;\r\n let value = (controls || []).filter(o => o && o.Group === 13);\r\n let cValue = (value && value.length > 0 && value[0].LV) ? value[0].LV : null;\r\n\r\n const today = new Date();\r\n const theDay = new Date(cValue.T);\r\n const diffMs = (today.getTime() - theDay.getTime());\r\n const diffMins = Math.ceil(diffMs / 1000);\r\n return diffMins;\r\n}","\r\nexport enum VehicleFullColumnId {\r\n name = 1,\r\n status = 2,\r\n time = 3,\r\n speed = 4,\r\n adress = 5,\r\n driver = 6,\r\n etoll = 7,\r\n sent = 8,\r\n gps = 9,\r\n gsm = 10,\r\n fuel = 11,\r\n rpm = 12,\r\n sensor = 13,\r\n tacho = 14,\r\n numberId = 15,\r\n id = 16,\r\n lock = 17,\r\n networkType = 18,\r\n};\r\n","import { IVehicleFullColumnSort } from \"../interfaces/vehicle.interface\";\r\nimport { LOCAL_STORAGE_VAR } from \"./localstorage\";\r\n\r\nexport function getConfigSavedListSortColumns(): IVehicleFullColumnSort[] {\r\n try {\r\n return JSON.parse(localStorage.getItem(LOCAL_STORAGE_VAR.VEHICLE_FULL_LIST_SORT_COLUMNS_CONFIG) as string) || []; \r\n }\r\n catch (_) {\r\n return [];\r\n }\r\n}","export const LOCAL_STORAGE_VAR = {\r\n VEHICLE_LIST_HEIGHT: 'VEHICLE_LIST_HEIGHT',\r\n VEHICLE_BOTTOM_LIST_WRAPPER_HEIGHT: 'VEHICLE_BOTTOM_LIST_WRAPPER_HEIGHT',\r\n VEHICLE_FULL_LIST_SORT_COLUMNS_CONFIG: 'VEHICLE_FULL_LIST_SORT_COLUMNS_CONFIG',\r\n APP_NEWS_SHOW_ONE_MONTH: 'APP_NEWS_SHOW_ONE_MONTH',\r\n};\r\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\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\n date.setDate(date.getDate() + amount);\n return date;\n}","import addDays from \"../addDays/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} day - the day of the week of the new date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the new date with the day of the week set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\n\nexport default function setDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var delta = 7 - weekStartsOn;\n var diff = day < 0 || day > 6 ? day - (currentDay + delta) % 7 : (dayIndex + delta) % 7 - (currentDay + delta) % 7;\n return addDays(date, diff);\n}","import {Injectable} from '@angular/core';\r\n\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\nimport { setDay } from 'date-fns';\r\n\r\nimport {LanguageService} from \"@shared/services/language.service\";\r\n\r\nimport {OptionItem} from \"@commons/models/other/option-item.model\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslateHelperService {\r\n\r\n today ='';\r\n sensor = '';\r\n\r\n constructor(\r\n private languageService: LanguageService,\r\n private translateService: TranslateService\r\n ) {\r\n this.setTranslations();\r\n }\r\n\r\n private setTranslations() {\r\n this.translateService.get('labels.sensor').subscribe(t => this.sensor = t);\r\n this.translateService.get('date-time.today').subscribe(t => this.today = t);\r\n }\r\n\r\n firstLetterToUppercase(word: string): string {\r\n return word.charAt(0).toUpperCase() + word.slice(1);\r\n }\r\n\r\n getFullMonthName(monthIndex: number) {\r\n const date = new Date();\r\n date.setDate(1);\r\n date.setMonth(monthIndex - 1);\r\n\r\n const month = date.toLocaleString(this.languageService.current, {month: \"long\"});\r\n\r\n return month;\r\n }\r\n\r\n getAllFullMonthsNames(): string[] {\r\n let result = [];\r\n for (let i = 1; i <= 12; i++)\r\n result.push(this.getFullMonthName(i));\r\n\r\n return result;\r\n }\r\n\r\n getWeekDaysFirstLetterNames(): string[] {\r\n let result: string[] = [];\r\n let date = new Date();\r\n\r\n for (let i = 0; i < 7;i++) {\r\n date = setDay(date, i);\r\n const month = date.toLocaleString(this.languageService.current, {weekday: \"long\"});\r\n result.push(month[0].toUpperCase());\r\n }\r\n\r\n return result;\r\n }\r\n\r\n translateOptionItems(items: OptionItem[], firstLetterToUpper = false): OptionItem[] {\r\n for (const item of items) {\r\n if (item.label)\r\n this.translateService.get(item.label).subscribe(t => {\r\n item.label = firstLetterToUpper ? this.firstLetterToUppercase(t) : t;\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n\r\n}\r\n","// Rodzaje motywu kontrolki wyszukiwania\r\nexport enum SearchThemeEnum {\r\n // Normalny tryb\r\n Normal = 0,\r\n // Ciemny\r\n Dark = 1,\r\n // Light\r\n Light = 2\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\r\n \r\n \r\n
\r\n","import { Component, Input, HostListener, Output, EventEmitter, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormGroup, FormControl, AbstractControl } from '@angular/forms';\r\nimport { SearchThemeEnum } from '../../enums/search-theme.enum';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'tk-search',\r\n styleUrls: ['./search.component.less'],\r\n templateUrl: './search.component.html'\r\n})\r\nexport class SearchComponent implements OnInit {\r\n\r\n /**\r\n * Filter form\r\n */\r\n @Input() public control!: AbstractControl;\r\n\r\n /**\r\n * Flag indicating whether filter request is being processed\r\n */\r\n @Input() public loading = false;\r\n\r\n /**\r\n * Flag indicating whether datk theme is applied\r\n */\r\n @Input() public themeType = SearchThemeEnum.Normal;\r\n\r\n /**\r\n *\r\n */\r\n @Output() public onEnterEvent: EventEmitter = new EventEmitter();\r\n\r\n\r\n @Output() public onFocusEvent: EventEmitter = new EventEmitter();\r\n\r\n /**\r\n *\r\n */\r\n @Output() public onClearEvent: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('searchInput') inputField?: ElementRef;\r\n\r\n public hasFocus = false;\r\n\r\n public searchThemeEnum = SearchThemeEnum;\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n /**\r\n * Handles enter's presses\r\n * @param event keyboard event\r\n */\r\n @HostListener('keydown.enter', ['$event'])\r\n public onEnter(event: KeyboardEvent): void {\r\n\r\n this.onEnterEvent.emit(null);\r\n }\r\n\r\n public setFocus(): void {\r\n setTimeout(() => this.inputField?.nativeElement.focus(), 50);\r\n }\r\n\r\n /**\r\n * Clears form's phrase\r\n */\r\n public onClear(): void {\r\n\r\n // Clear phrase and send filter request\r\n this.control?.setValue('');\r\n this.onClearEvent.emit(null);\r\n this.inputField?.nativeElement.focus();\r\n }\r\n\r\n public onFocus() {\r\n this.hasFocus = true;\r\n this.onFocusEvent.emit(this.hasFocus);\r\n }\r\n\r\n public onBlur() {\r\n this.hasFocus = false;\r\n this.onFocusEvent.emit(this.hasFocus);\r\n }\r\n\r\n}\r\n\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'tkSlice'\r\n})\r\nexport class TkSlicePipe implements PipeTransform {\r\n\r\n transform(text: string | undefined, maxLength = 25): string {\r\n return text ? text.slice(0, maxLength) + (text.length >= maxLength ? '...' : '') : '';\r\n }\r\n}\r\n","import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\nimport {VehicleLocation} from '../../../commons/models/domain/VehicleLocation';\r\nimport {FullAddressPipe} from '@commons/pipes/full-address.pipe';\r\nimport {CountryCodeService} from '@commons/services/country.code/country-code.service';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-location',\r\n styleUrls: ['./vehicle-location.component.less'],\r\n templateUrl: './vehicle-location.component.html'\r\n})\r\nexport class VehicleLocationComponent implements OnInit, OnChanges {\r\n @Input()\r\n public location?: VehicleLocation;\r\n\r\n /**\r\n * adres do pkazania\r\n */\r\n public address = '';\r\n\r\n /**\r\n * transformer\r\n */\r\n private $fullAddressPipe = new FullAddressPipe();\r\n\r\n private formatAddress() {\r\n this.address = '';\r\n if (this.location) {\r\n this.location.Cr = this.$countryCodeService.getCode(this.location.Cr);\r\n const newAddress = this.$fullAddressPipe.transform(this.location);\r\n this.address = newAddress.length > 0 ? newAddress : '';\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n // na podstawie dostepnych parametrow nalezy opacowac co i jak pokazac = standaryzacja\r\n this.formatAddress();\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n // gdy nastapila zmiana wartosc to takze przetwazamy\r\n this.formatAddress();\r\n }\r\n\r\n\r\n constructor(\r\n private $countryCodeService: CountryCodeService\r\n ) {\r\n }\r\n\r\n}\r\n","
\r\n {{address | tkSlice:40}}\r\n
\r\n","import { DOCUMENT, isPlatformServer } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, PLATFORM_ID, ElementRef, Injector, ChangeDetectorRef, Renderer2, Directive, Input } from '@angular/core';\nimport { Theme, ThemeService } from '@primeuix/styled';\nimport { uuid, getKeyValue } from '@primeuix/utils';\nimport { BaseStyle, Base } from 'primeng/base';\nimport { PrimeNG } from 'primeng/config';\n\nclass BaseComponentStyle extends BaseStyle {\n name = 'common';\n static ɵfac = /*@__PURE__*/ (() => { let ɵBaseComponentStyle_BaseFactory; return function BaseComponentStyle_Factory(__ngFactoryType__) { return (ɵBaseComponentStyle_BaseFactory || (ɵBaseComponentStyle_BaseFactory = i0.ɵɵgetInheritedFactory(BaseComponentStyle)))(__ngFactoryType__ || BaseComponentStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: BaseComponentStyle, factory: BaseComponentStyle.ɵfac, providedIn: 'root' });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BaseComponentStyle, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], null, null); })();\n\nclass BaseComponent {\n document = inject(DOCUMENT);\n platformId = inject(PLATFORM_ID);\n el = inject(ElementRef);\n injector = inject(Injector);\n cd = inject(ChangeDetectorRef);\n renderer = inject(Renderer2);\n config = inject(PrimeNG);\n baseComponentStyle = inject(BaseComponentStyle);\n baseStyle = inject(BaseStyle);\n scopedStyleEl;\n rootEl;\n dt;\n get styleOptions() {\n return { nonce: this.config?.csp().nonce };\n }\n get _name() {\n return this.constructor.name.replace(/^_/, '').toLowerCase();\n }\n get componentStyle() {\n return this['_componentStyle'];\n }\n attrSelector = uuid('pc');\n _getHostInstance(instance) {\n if (instance) {\n return instance ? (this['hostName'] ? (instance['name'] === this['hostName'] ? instance : this._getHostInstance(instance.parentInstance)) : instance.parentInstance) : undefined;\n }\n }\n _getOptionValue(options, key = '', params = {}) {\n return getKeyValue(options, key, params);\n }\n ngOnInit() {\n if (this.document) {\n this._loadStyles();\n }\n }\n ngAfterViewInit() {\n this.rootEl = this.el?.nativeElement;\n if (this.rootEl) {\n this.rootEl?.setAttribute(this.attrSelector, '');\n }\n }\n ngOnChanges(changes) {\n if (this.document && !isPlatformServer(this.platformId)) {\n const { dt } = changes;\n if (dt && dt.currentValue) {\n this._loadScopedThemeStyles(dt.currentValue);\n this._themeChangeListener(() => this._loadScopedThemeStyles(dt.currentValue));\n }\n }\n }\n ngOnDestroy() {\n this._unloadScopedThemeStyles();\n }\n _loadStyles() {\n const _load = () => {\n if (!Base.isStyleNameLoaded('base')) {\n this.baseStyle.loadCSS(this.styleOptions);\n Base.setLoadedStyleName('base');\n }\n this._loadThemeStyles();\n // @todo update config.theme()\n };\n _load();\n this._themeChangeListener(() => _load());\n }\n _loadCoreStyles() {\n if (!Base.isStyleNameLoaded('base') && this._name) {\n this.baseComponentStyle.loadCSS(this.styleOptions);\n this.componentStyle && this.componentStyle?.loadCSS(this.styleOptions);\n Base.setLoadedStyleName(this.componentStyle?.name);\n }\n }\n _loadThemeStyles() {\n // common\n if (!Theme.isStyleNameLoaded('common')) {\n const { primitive, semantic, global, style } = this.componentStyle?.getCommonTheme?.() || {};\n this.baseStyle.load(primitive?.css, { name: 'primitive-variables', ...this.styleOptions });\n this.baseStyle.load(semantic?.css, { name: 'semantic-variables', ...this.styleOptions });\n this.baseStyle.load(global?.css, { name: 'global-variables', ...this.styleOptions });\n this.baseStyle.loadTheme({ name: 'global-style', ...this.styleOptions }, style);\n Theme.setLoadedStyleName('common');\n }\n // component\n if (!Theme.isStyleNameLoaded(this.componentStyle?.name) && this.componentStyle?.name) {\n const { css, style } = this.componentStyle?.getComponentTheme?.() || {};\n this.componentStyle?.load(css, { name: `${this.componentStyle?.name}-variables`, ...this.styleOptions });\n this.componentStyle?.loadTheme({ name: `${this.componentStyle?.name}-style`, ...this.styleOptions }, style);\n Theme.setLoadedStyleName(this.componentStyle?.name);\n }\n // layer order\n if (!Theme.isStyleNameLoaded('layer-order')) {\n const layerOrder = this.componentStyle?.getLayerOrderThemeCSS?.();\n this.baseStyle.load(layerOrder, { name: 'layer-order', first: true, ...this.styleOptions });\n Theme.setLoadedStyleName('layer-order');\n }\n if (this.dt) {\n this._loadScopedThemeStyles(this.dt);\n this._themeChangeListener(() => this._loadScopedThemeStyles(this.dt));\n }\n }\n _loadScopedThemeStyles(preset) {\n const { css } = this.componentStyle?.getPresetTheme?.(preset, `[${this.attrSelector}]`) || {};\n const scopedStyle = this.componentStyle?.load(css, {\n name: `${this.attrSelector}-${this.componentStyle?.name}`,\n ...this.styleOptions\n });\n this.scopedStyleEl = scopedStyle?.el;\n }\n _unloadScopedThemeStyles() {\n this.scopedStyleEl?.remove();\n }\n _themeChangeListener(callback = () => { }) {\n Base.clearLoadedStyleNames();\n ThemeService.on('theme:change', callback);\n }\n cx(arg, rest) {\n const classes = this.parent ? this.parent.componentStyle?.classes?.[arg] : this.componentStyle?.classes?.[arg];\n if (typeof classes === 'function') {\n return classes({ instance: this });\n }\n return typeof classes === 'string' ? classes : arg;\n }\n sx(arg) {\n const styles = this.componentStyle?.inlineStyles?.[arg];\n if (typeof styles === 'function') {\n return styles({ instance: this });\n }\n if (typeof styles === 'string') {\n return styles;\n }\n else {\n return { ...styles };\n }\n }\n // cx(key = '', params = {}) {\n // const classes = this.parent ? this.parent.componentStyle?.classes : this.componentStyle?.classes;\n // return this._getOptionValue(classes({ instance: this._getHostInstance(this) }), key, { ...params });\n // }\n get parent() {\n return this['parentInstance'];\n }\n static ɵfac = function BaseComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BaseComponent)(); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BaseComponent, inputs: { dt: \"dt\" }, standalone: true, features: [i0.ɵɵProvidersFeature([BaseComponentStyle, BaseStyle]), i0.ɵɵNgOnChangesFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BaseComponent, [{\n type: Directive,\n args: [{ standalone: true, providers: [BaseComponentStyle, BaseStyle] }]\n }], null, { dt: [{\n type: Input\n }] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BaseComponent, BaseComponentStyle };\n","/**\n * @dynamic is for runtime initializing DomHandler.browser\n *\n * If delete below comment, we can see this error message:\n * Metadata collected contains an error that will be reported at runtime:\n * Only initialized variables and constants can be referenced\n * because the value of this variable is needed by the template compiler.\n */\n// @dynamic\nclass DomHandler {\n static zindex = 1000;\n static calculatedScrollbarWidth = null;\n static calculatedScrollbarHeight = null;\n static browser;\n static addClass(element, className) {\n if (element && className) {\n if (element.classList)\n element.classList.add(className);\n else\n element.className += ' ' + className;\n }\n }\n static addMultipleClasses(element, className) {\n if (element && className) {\n if (element.classList) {\n let styles = className.trim().split(' ');\n for (let i = 0; i < styles.length; i++) {\n element.classList.add(styles[i]);\n }\n }\n else {\n let styles = className.split(' ');\n for (let i = 0; i < styles.length; i++) {\n element.className += ' ' + styles[i];\n }\n }\n }\n }\n static removeClass(element, className) {\n if (element && className) {\n if (element.classList)\n element.classList.remove(className);\n else\n element.className = element.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n static removeMultipleClasses(element, classNames) {\n if (element && classNames) {\n [classNames]\n .flat()\n .filter(Boolean)\n .forEach((cNames) => cNames.split(' ').forEach((className) => this.removeClass(element, className)));\n }\n }\n static hasClass(element, className) {\n if (element && className) {\n if (element.classList)\n return element.classList.contains(className);\n else\n return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n }\n return false;\n }\n static siblings(element) {\n return Array.prototype.filter.call(element.parentNode.children, function (child) {\n return child !== element;\n });\n }\n static find(element, selector) {\n return Array.from(element.querySelectorAll(selector));\n }\n static findSingle(element, selector) {\n return this.isElement(element) ? element.querySelector(selector) : null;\n }\n static index(element) {\n let children = element.parentNode.childNodes;\n let num = 0;\n for (var i = 0; i < children.length; i++) {\n if (children[i] == element)\n return num;\n if (children[i].nodeType == 1)\n num++;\n }\n return -1;\n }\n static indexWithinGroup(element, attributeName) {\n let children = element.parentNode ? element.parentNode.childNodes : [];\n let num = 0;\n for (var i = 0; i < children.length; i++) {\n if (children[i] == element)\n return num;\n if (children[i].attributes && children[i].attributes[attributeName] && children[i].nodeType == 1)\n num++;\n }\n return -1;\n }\n static appendOverlay(overlay, target, appendTo = 'self') {\n if (appendTo !== 'self' && overlay && target) {\n this.appendChild(overlay, target);\n }\n }\n static alignOverlay(overlay, target, appendTo = 'self', calculateMinWidth = true) {\n if (overlay && target) {\n if (calculateMinWidth) {\n overlay.style.minWidth = `${DomHandler.getOuterWidth(target)}px`;\n }\n if (appendTo === 'self') {\n this.relativePosition(overlay, target);\n }\n else {\n this.absolutePosition(overlay, target);\n }\n }\n }\n static relativePosition(element, target, gutter = true) {\n const getClosestRelativeElement = (el) => {\n if (!el)\n return;\n return getComputedStyle(el).getPropertyValue('position') === 'relative' ? el : getClosestRelativeElement(el.parentElement);\n };\n const elementDimensions = element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : this.getHiddenElementDimensions(element);\n const targetHeight = target.offsetHeight;\n const targetOffset = target.getBoundingClientRect();\n const windowScrollTop = this.getWindowScrollTop();\n const windowScrollLeft = this.getWindowScrollLeft();\n const viewport = this.getViewport();\n const relativeElement = getClosestRelativeElement(element);\n const relativeElementOffset = relativeElement?.getBoundingClientRect() || {\n top: -1 * windowScrollTop,\n left: -1 * windowScrollLeft\n };\n let top, left;\n if (targetOffset.top + targetHeight + elementDimensions.height > viewport.height) {\n top = targetOffset.top - relativeElementOffset.top - elementDimensions.height;\n element.style.transformOrigin = 'bottom';\n if (targetOffset.top + top < 0) {\n top = -1 * targetOffset.top;\n }\n }\n else {\n top = targetHeight + targetOffset.top - relativeElementOffset.top;\n element.style.transformOrigin = 'top';\n }\n const horizontalOverflow = targetOffset.left + elementDimensions.width - viewport.width;\n const targetLeftOffsetInSpaceOfRelativeElement = targetOffset.left - relativeElementOffset.left;\n if (elementDimensions.width > viewport.width) {\n // element wider then viewport and cannot fit on screen (align at left side of viewport)\n left = (targetOffset.left - relativeElementOffset.left) * -1;\n }\n else if (horizontalOverflow > 0) {\n // element wider then viewport but can be fit on screen (align at right side of viewport)\n left = targetLeftOffsetInSpaceOfRelativeElement - horizontalOverflow;\n }\n else {\n // element fits on screen (align with target)\n left = targetOffset.left - relativeElementOffset.left;\n }\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n gutter && (element.style.marginTop = origin === 'bottom' ? 'calc(var(--p-anchor-gutter) * -1)' : 'calc(var(--p-anchor-gutter))');\n }\n static absolutePosition(element, target, gutter = true) {\n const elementDimensions = element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : this.getHiddenElementDimensions(element);\n const elementOuterHeight = elementDimensions.height;\n const elementOuterWidth = elementDimensions.width;\n const targetOuterHeight = target.offsetHeight;\n const targetOuterWidth = target.offsetWidth;\n const targetOffset = target.getBoundingClientRect();\n const windowScrollTop = this.getWindowScrollTop();\n const windowScrollLeft = this.getWindowScrollLeft();\n const viewport = this.getViewport();\n let top, left;\n if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {\n top = targetOffset.top + windowScrollTop - elementOuterHeight;\n element.style.transformOrigin = 'bottom';\n if (top < 0) {\n top = windowScrollTop;\n }\n }\n else {\n top = targetOuterHeight + targetOffset.top + windowScrollTop;\n element.style.transformOrigin = 'top';\n }\n if (targetOffset.left + elementOuterWidth > viewport.width)\n left = Math.max(0, targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth);\n else\n left = targetOffset.left + windowScrollLeft;\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n gutter && (element.style.marginTop = origin === 'bottom' ? 'calc(var(--p-anchor-gutter) * -1)' : 'calc(var(--p-anchor-gutter))');\n }\n static getParents(element, parents = []) {\n return element['parentNode'] === null ? parents : this.getParents(element.parentNode, parents.concat([element.parentNode]));\n }\n static getScrollableParents(element) {\n let scrollableParents = [];\n if (element) {\n let parents = this.getParents(element);\n const overflowRegex = /(auto|scroll)/;\n const overflowCheck = (node) => {\n let styleDeclaration = window['getComputedStyle'](node, null);\n return overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowY'));\n };\n for (let parent of parents) {\n let scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n if (scrollSelectors) {\n let selectors = scrollSelectors.split(',');\n for (let selector of selectors) {\n let el = this.findSingle(parent, selector);\n if (el && overflowCheck(el)) {\n scrollableParents.push(el);\n }\n }\n }\n if (parent.nodeType !== 9 && overflowCheck(parent)) {\n scrollableParents.push(parent);\n }\n }\n }\n return scrollableParents;\n }\n static getHiddenElementOuterHeight(element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n let elementHeight = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n return elementHeight;\n }\n static getHiddenElementOuterWidth(element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n let elementWidth = element.offsetWidth;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n return elementWidth;\n }\n static getHiddenElementDimensions(element) {\n let dimensions = {};\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n dimensions.width = element.offsetWidth;\n dimensions.height = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n return dimensions;\n }\n static scrollInView(container, item) {\n let borderTopValue = getComputedStyle(container).getPropertyValue('borderTopWidth');\n let borderTop = borderTopValue ? parseFloat(borderTopValue) : 0;\n let paddingTopValue = getComputedStyle(container).getPropertyValue('paddingTop');\n let paddingTop = paddingTopValue ? parseFloat(paddingTopValue) : 0;\n let containerRect = container.getBoundingClientRect();\n let itemRect = item.getBoundingClientRect();\n let offset = itemRect.top + document.body.scrollTop - (containerRect.top + document.body.scrollTop) - borderTop - paddingTop;\n let scroll = container.scrollTop;\n let elementHeight = container.clientHeight;\n let itemHeight = this.getOuterHeight(item);\n if (offset < 0) {\n container.scrollTop = scroll + offset;\n }\n else if (offset + itemHeight > elementHeight) {\n container.scrollTop = scroll + offset - elementHeight + itemHeight;\n }\n }\n static fadeIn(element, duration) {\n element.style.opacity = 0;\n let last = +new Date();\n let opacity = 0;\n let tick = function () {\n opacity = +element.style.opacity.replace(',', '.') + (new Date().getTime() - last) / duration;\n element.style.opacity = opacity;\n last = +new Date();\n if (+opacity < 1) {\n (window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);\n }\n };\n tick();\n }\n static fadeOut(element, ms) {\n var opacity = 1, interval = 50, duration = ms, gap = interval / duration;\n let fading = setInterval(() => {\n opacity = opacity - gap;\n if (opacity <= 0) {\n opacity = 0;\n clearInterval(fading);\n }\n element.style.opacity = opacity;\n }, interval);\n }\n static getWindowScrollTop() {\n let doc = document.documentElement;\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n }\n static getWindowScrollLeft() {\n let doc = document.documentElement;\n return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n }\n static matches(element, selector) {\n var p = Element.prototype;\n var f = p['matches'] ||\n p.webkitMatchesSelector ||\n p['mozMatchesSelector'] ||\n p['msMatchesSelector'] ||\n function (s) {\n return [].indexOf.call(document.querySelectorAll(s), this) !== -1;\n };\n return f.call(element, selector);\n }\n static getOuterWidth(el, margin) {\n let width = el.offsetWidth;\n if (margin) {\n let style = getComputedStyle(el);\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n return width;\n }\n static getHorizontalPadding(el) {\n let style = getComputedStyle(el);\n return parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n }\n static getHorizontalMargin(el) {\n let style = getComputedStyle(el);\n return parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n static innerWidth(el) {\n let width = el.offsetWidth;\n let style = getComputedStyle(el);\n width += parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n static width(el) {\n let width = el.offsetWidth;\n let style = getComputedStyle(el);\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n static getInnerHeight(el) {\n let height = el.offsetHeight;\n let style = getComputedStyle(el);\n height += parseFloat(style.paddingTop) + parseFloat(style.paddingBottom);\n return height;\n }\n static getOuterHeight(el, margin) {\n let height = el.offsetHeight;\n if (margin) {\n let style = getComputedStyle(el);\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n return height;\n }\n static getHeight(el) {\n let height = el.offsetHeight;\n let style = getComputedStyle(el);\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n return height;\n }\n static getWidth(el) {\n let width = el.offsetWidth;\n let style = getComputedStyle(el);\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n return width;\n }\n static getViewport() {\n let win = window, d = document, e = d.documentElement, g = d.getElementsByTagName('body')[0], w = win.innerWidth || e.clientWidth || g.clientWidth, h = win.innerHeight || e.clientHeight || g.clientHeight;\n return { width: w, height: h };\n }\n static getOffset(el) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),\n left: rect.left + (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0)\n };\n }\n static replaceElementWith(element, replacementElement) {\n let parentNode = element.parentNode;\n if (!parentNode)\n throw `Can't replace element`;\n return parentNode.replaceChild(replacementElement, element);\n }\n static getUserAgent() {\n if (navigator && this.isClient()) {\n return navigator.userAgent;\n }\n }\n static isIE() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n if (msie > 0) {\n // IE 10 or older => return version number\n return true;\n }\n var trident = ua.indexOf('Trident/');\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return true;\n }\n var edge = ua.indexOf('Edge/');\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return true;\n }\n // other browser\n return false;\n }\n static isIOS() {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window['MSStream'];\n }\n static isAndroid() {\n return /(android)/i.test(navigator.userAgent);\n }\n static isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n }\n static appendChild(element, target) {\n if (this.isElement(target))\n target.appendChild(element);\n else if (target && target.el && target.el.nativeElement)\n target.el.nativeElement.appendChild(element);\n else\n throw 'Cannot append ' + target + ' to ' + element;\n }\n static removeChild(element, target) {\n if (this.isElement(target))\n target.removeChild(element);\n else if (target.el && target.el.nativeElement)\n target.el.nativeElement.removeChild(element);\n else\n throw 'Cannot remove ' + element + ' from ' + target;\n }\n static removeElement(element) {\n if (!('remove' in Element.prototype))\n element.parentNode.removeChild(element);\n else\n element.remove();\n }\n static isElement(obj) {\n return typeof HTMLElement === 'object' ? obj instanceof HTMLElement : obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n }\n static calculateScrollbarWidth(el) {\n if (el) {\n let style = getComputedStyle(el);\n return el.offsetWidth - el.clientWidth - parseFloat(style.borderLeftWidth) - parseFloat(style.borderRightWidth);\n }\n else {\n if (this.calculatedScrollbarWidth !== null)\n return this.calculatedScrollbarWidth;\n let scrollDiv = document.createElement('div');\n scrollDiv.className = 'p-scrollbar-measure';\n document.body.appendChild(scrollDiv);\n let scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n this.calculatedScrollbarWidth = scrollbarWidth;\n return scrollbarWidth;\n }\n }\n static calculateScrollbarHeight() {\n if (this.calculatedScrollbarHeight !== null)\n return this.calculatedScrollbarHeight;\n let scrollDiv = document.createElement('div');\n scrollDiv.className = 'p-scrollbar-measure';\n document.body.appendChild(scrollDiv);\n let scrollbarHeight = scrollDiv.offsetHeight - scrollDiv.clientHeight;\n document.body.removeChild(scrollDiv);\n this.calculatedScrollbarWidth = scrollbarHeight;\n return scrollbarHeight;\n }\n static invokeElementMethod(element, methodName, args) {\n element[methodName].apply(element, args);\n }\n static clearSelection() {\n if (window.getSelection) {\n if (window.getSelection().empty) {\n window.getSelection().empty();\n }\n else if (window.getSelection().removeAllRanges && window.getSelection().rangeCount > 0 && window.getSelection().getRangeAt(0).getClientRects().length > 0) {\n window.getSelection().removeAllRanges();\n }\n }\n else if (document['selection'] && document['selection'].empty) {\n try {\n document['selection'].empty();\n }\n catch (error) {\n //ignore IE bug\n }\n }\n }\n static getBrowser() {\n if (!this.browser) {\n let matched = this.resolveUserAgent();\n this.browser = {};\n if (matched.browser) {\n this.browser[matched.browser] = true;\n this.browser['version'] = matched.version;\n }\n if (this.browser['chrome']) {\n this.browser['webkit'] = true;\n }\n else if (this.browser['webkit']) {\n this.browser['safari'] = true;\n }\n }\n return this.browser;\n }\n static resolveUserAgent() {\n let ua = navigator.userAgent.toLowerCase();\n let match = /(chrome)[ \\/]([\\w.]+)/.exec(ua) || /(webkit)[ \\/]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || (ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua)) || [];\n return {\n browser: match[1] || '',\n version: match[2] || '0'\n };\n }\n static isInteger(value) {\n if (Number.isInteger) {\n return Number.isInteger(value);\n }\n else {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n }\n }\n static isHidden(element) {\n return !element || element.offsetParent === null;\n }\n static isVisible(element) {\n return element && element.offsetParent != null;\n }\n static isExist(element) {\n return element !== null && typeof element !== 'undefined' && element.nodeName && element.parentNode;\n }\n static focus(element, options) {\n element && document.activeElement !== element && element.focus(options);\n }\n static getFocusableSelectorString(selector = '') {\n return `button:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [href][clientHeight][clientWidth]:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n input:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n select:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n textarea:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [tabIndex]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [contenteditable]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n .p-inputtext:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n .p-button:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector}`;\n }\n static getFocusableElements(element, selector = '') {\n let focusableElements = this.find(element, this.getFocusableSelectorString(selector));\n let visibleFocusableElements = [];\n for (let focusableElement of focusableElements) {\n const computedStyle = getComputedStyle(focusableElement);\n if (this.isVisible(focusableElement) && computedStyle.display != 'none' && computedStyle.visibility != 'hidden')\n visibleFocusableElements.push(focusableElement);\n }\n return visibleFocusableElements;\n }\n static getFocusableElement(element, selector = '') {\n let focusableElement = this.findSingle(element, this.getFocusableSelectorString(selector));\n if (focusableElement) {\n const computedStyle = getComputedStyle(focusableElement);\n if (this.isVisible(focusableElement) && computedStyle.display != 'none' && computedStyle.visibility != 'hidden')\n return focusableElement;\n }\n return null;\n }\n static getFirstFocusableElement(element, selector = '') {\n const focusableElements = this.getFocusableElements(element, selector);\n return focusableElements.length > 0 ? focusableElements[0] : null;\n }\n static getLastFocusableElement(element, selector) {\n const focusableElements = this.getFocusableElements(element, selector);\n return focusableElements.length > 0 ? focusableElements[focusableElements.length - 1] : null;\n }\n static getNextFocusableElement(element, reverse = false) {\n const focusableElements = DomHandler.getFocusableElements(element);\n let index = 0;\n if (focusableElements && focusableElements.length > 0) {\n const focusedIndex = focusableElements.indexOf(focusableElements[0].ownerDocument.activeElement);\n if (reverse) {\n if (focusedIndex == -1 || focusedIndex === 0) {\n index = focusableElements.length - 1;\n }\n else {\n index = focusedIndex - 1;\n }\n }\n else if (focusedIndex != -1 && focusedIndex !== focusableElements.length - 1) {\n index = focusedIndex + 1;\n }\n }\n return focusableElements[index];\n }\n static generateZIndex() {\n this.zindex = this.zindex || 999;\n return ++this.zindex;\n }\n static getSelection() {\n if (window.getSelection)\n return window.getSelection().toString();\n else if (document.getSelection)\n return document.getSelection().toString();\n else if (document['selection'])\n return document['selection'].createRange().text;\n return null;\n }\n static getTargetElement(target, el) {\n if (!target)\n return null;\n switch (target) {\n case 'document':\n return document;\n case 'window':\n return window;\n case '@next':\n return el?.nextElementSibling;\n case '@prev':\n return el?.previousElementSibling;\n case '@parent':\n return el?.parentElement;\n case '@grandparent':\n return el?.parentElement.parentElement;\n default:\n const type = typeof target;\n if (type === 'string') {\n return document.querySelector(target);\n }\n else if (type === 'object' && target.hasOwnProperty('nativeElement')) {\n return this.isExist(target.nativeElement) ? target.nativeElement : undefined;\n }\n const isFunction = (obj) => !!(obj && obj.constructor && obj.call && obj.apply);\n const element = isFunction(target) ? target() : target;\n return (element && element.nodeType === 9) || this.isExist(element) ? element : null;\n }\n }\n static isClient() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n }\n static getAttribute(element, name) {\n if (element) {\n const value = element.getAttribute(name);\n if (!isNaN(value)) {\n return +value;\n }\n if (value === 'true' || value === 'false') {\n return value === 'true';\n }\n return value;\n }\n return undefined;\n }\n static calculateBodyScrollbarWidth() {\n return window.innerWidth - document.documentElement.offsetWidth;\n }\n static blockBodyScroll(className = 'p-overflow-hidden') {\n document.body.style.setProperty('--scrollbar-width', this.calculateBodyScrollbarWidth() + 'px');\n this.addClass(document.body, className);\n }\n static unblockBodyScroll(className = 'p-overflow-hidden') {\n document.body.style.removeProperty('--scrollbar-width');\n this.removeClass(document.body, className);\n }\n static createElement(type, attributes = {}, ...children) {\n if (type) {\n const element = document.createElement(type);\n this.setAttributes(element, attributes);\n element.append(...children);\n return element;\n }\n return undefined;\n }\n static setAttribute(element, attribute = '', value) {\n if (this.isElement(element) && value !== null && value !== undefined) {\n element.setAttribute(attribute, value);\n }\n }\n static setAttributes(element, attributes = {}) {\n if (this.isElement(element)) {\n const computedStyles = (rule, value) => {\n const styles = element?.$attrs?.[rule] ? [element?.$attrs?.[rule]] : [];\n return [value].flat().reduce((cv, v) => {\n if (v !== null && v !== undefined) {\n const type = typeof v;\n if (type === 'string' || type === 'number') {\n cv.push(v);\n }\n else if (type === 'object') {\n const _cv = Array.isArray(v)\n ? computedStyles(rule, v)\n : Object.entries(v).map(([_k, _v]) => (rule === 'style' && (!!_v || _v === 0) ? `${_k.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()}:${_v}` : !!_v ? _k : undefined));\n cv = _cv.length ? cv.concat(_cv.filter((c) => !!c)) : cv;\n }\n }\n return cv;\n }, styles);\n };\n Object.entries(attributes).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n const matchedEvent = key.match(/^on(.+)/);\n if (matchedEvent) {\n element.addEventListener(matchedEvent[1].toLowerCase(), value);\n }\n else if (key === 'pBind') {\n this.setAttributes(element, value);\n }\n else {\n value = key === 'class' ? [...new Set(computedStyles('class', value))].join(' ').trim() : key === 'style' ? computedStyles('style', value).join(';').trim() : value;\n (element.$attrs = element.$attrs || {}) && (element.$attrs[key] = value);\n element.setAttribute(key, value);\n }\n }\n });\n }\n }\n static isFocusableElement(element, selector = '') {\n return this.isElement(element)\n ? element.matches(`button:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [href][clientHeight][clientWidth]:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n input:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n select:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n textarea:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [tabIndex]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [contenteditable]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector}`)\n : false;\n }\n}\n\nclass ConnectedOverlayScrollHandler {\n element;\n listener;\n scrollableParents;\n constructor(element, listener = () => { }) {\n this.element = element;\n this.listener = listener;\n }\n bindScrollListener() {\n this.scrollableParents = DomHandler.getScrollableParents(this.element);\n for (let i = 0; i < this.scrollableParents.length; i++) {\n this.scrollableParents[i].addEventListener('scroll', this.listener);\n }\n }\n unbindScrollListener() {\n if (this.scrollableParents) {\n for (let i = 0; i < this.scrollableParents.length; i++) {\n this.scrollableParents[i].removeEventListener('scroll', this.listener);\n }\n }\n }\n destroy() {\n this.unbindScrollListener();\n this.element = null;\n this.listener = null;\n this.scrollableParents = null;\n }\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ConnectedOverlayScrollHandler, DomHandler };\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, PLATFORM_ID, ElementRef, booleanAttribute, Directive, Input, NgModule } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler } from 'primeng/dom';\n\n/**\n * AutoFocus manages focus on focusable element on load.\n * @group Components\n */\nclass AutoFocus extends BaseComponent {\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @deprecated use [pAutoFocus]=\"true\"\n * @group Props\n */\n autofocus = false;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n _autofocus = false;\n focused = false;\n platformId = inject(PLATFORM_ID);\n document = inject(DOCUMENT);\n host = inject(ElementRef);\n ngAfterContentChecked() {\n // This sets the `attr.autofocus` which is different than the Input `autofocus` attribute.\n if (this.autofocus === false) {\n this.host.nativeElement.removeAttribute('autofocus');\n }\n else {\n this.host.nativeElement.setAttribute('autofocus', true);\n }\n if (!this.focused) {\n this.autoFocus();\n }\n }\n ngAfterViewChecked() {\n if (!this.focused) {\n this.autoFocus();\n }\n }\n autoFocus() {\n if (isPlatformBrowser(this.platformId) && this._autofocus) {\n setTimeout(() => {\n const focusableElements = DomHandler.getFocusableElements(this.host?.nativeElement);\n if (focusableElements.length === 0) {\n this.host.nativeElement.focus();\n }\n if (focusableElements.length > 0) {\n focusableElements[0].focus();\n }\n this.focused = true;\n });\n }\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵAutoFocus_BaseFactory; return function AutoFocus_Factory(__ngFactoryType__) { return (ɵAutoFocus_BaseFactory || (ɵAutoFocus_BaseFactory = i0.ɵɵgetInheritedFactory(AutoFocus)))(__ngFactoryType__ || AutoFocus); }; })();\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AutoFocus, selectors: [[\"\", \"pAutoFocus\", \"\"]], inputs: { autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute], _autofocus: [0, \"pAutoFocus\", \"_autofocus\"] }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AutoFocus, [{\n type: Directive,\n args: [{\n selector: '[pAutoFocus]',\n standalone: true\n }]\n }], null, { autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], _autofocus: [{\n type: Input,\n args: ['pAutoFocus']\n }] }); })();\nclass AutoFocusModule {\n static ɵfac = function AutoFocusModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AutoFocusModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AutoFocusModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AutoFocusModule, [{\n type: NgModule,\n args: [{\n imports: [AutoFocus],\n exports: [AutoFocus]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(AutoFocusModule, { imports: [AutoFocus], exports: [AutoFocus] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AutoFocus, AutoFocusModule };\n","import { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, Directive, Input, input, booleanAttribute, computed, Component, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';\nimport { isNotEmpty, isEmpty, uuid, hasClass, removeClass, addClass } from '@primeuix/utils';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-badge {\n display: inline-flex;\n border-radius: ${dt('badge.border.radius')};\n justify-content: center;\n padding: ${dt('badge.padding')};\n background: ${dt('badge.primary.background')};\n color: ${dt('badge.primary.color')};\n font-size: ${dt('badge.font.size')};\n font-weight: ${dt('badge.font.weight')};\n min-width: ${dt('badge.min.width')};\n height: ${dt('badge.height')};\n line-height: ${dt('badge.height')};\n}\n\n.p-badge-dot {\n width: ${dt('badge.dot.size')};\n min-width: ${dt('badge.dot.size')};\n height: ${dt('badge.dot.size')};\n border-radius: 50%;\n padding: 0;\n}\n\n.p-badge-circle {\n padding: 0;\n border-radius: 50%;\n}\n\n.p-badge-secondary {\n background: ${dt('badge.secondary.background')};\n color: ${dt('badge.secondary.color')};\n}\n\n.p-badge-success {\n background: ${dt('badge.success.background')};\n color: ${dt('badge.success.color')};\n}\n\n.p-badge-info {\n background: ${dt('badge.info.background')};\n color: ${dt('badge.info.color')};\n}\n\n.p-badge-warn {\n background: ${dt('badge.warn.background')};\n color: ${dt('badge.warn.color')};\n}\n\n.p-badge-danger {\n background: ${dt('badge.danger.background')};\n color: ${dt('badge.danger.color')};\n}\n\n.p-badge-contrast {\n background: ${dt('badge.contrast.background')};\n color: ${dt('badge.contrast.color')};\n}\n\n.p-badge-sm {\n font-size: ${dt('badge.sm.font.size')};\n min-width: ${dt('badge.sm.min.width')};\n height: ${dt('badge.sm.height')};\n line-height: ${dt('badge.sm.height')};\n}\n\n.p-badge-lg {\n font-size: ${dt('badge.lg.font.size')};\n min-width: ${dt('badge.lg.min.width')};\n height: ${dt('badge.lg.height')};\n line-height: ${dt('badge.lg.height')};\n}\n\n.p-badge-xl {\n font-size: ${dt('badge.xl.font.size')};\n min-width: ${dt('badge.xl.min.width')};\n height: ${dt('badge.xl.height')};\n line-height: ${dt('badge.xl.height')};\n}\n\n/* For PrimeNG (directive)*/\n\n.p-overlay-badge {\n position: relative;\n}\n\n.p-overlay-badge > .p-badge {\n position: absolute;\n top: 0;\n inset-inline-end: 0;\n transform: translate(50%, -50%);\n transform-origin: 100% 0;\n margin: 0;\n}\n`;\nconst classes = {\n root: ({ props, instance }) => [\n 'p-badge p-component',\n {\n 'p-badge-circle': isNotEmpty(props.value) && String(props.value).length === 1,\n 'p-badge-dot': isEmpty(props.value) && !instance.$slots.default,\n 'p-badge-sm': props.size === 'small',\n 'p-badge-lg': props.size === 'large',\n 'p-badge-xl': props.size === 'xlarge',\n 'p-badge-info': props.severity === 'info',\n 'p-badge-success': props.severity === 'success',\n 'p-badge-warn': props.severity === 'warn',\n 'p-badge-danger': props.severity === 'danger',\n 'p-badge-secondary': props.severity === 'secondary',\n 'p-badge-contrast': props.severity === 'contrast'\n }\n ]\n};\nclass BadgeStyle extends BaseStyle {\n name = 'badge';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵBadgeStyle_BaseFactory; return function BadgeStyle_Factory(__ngFactoryType__) { return (ɵBadgeStyle_BaseFactory || (ɵBadgeStyle_BaseFactory = i0.ɵɵgetInheritedFactory(BadgeStyle)))(__ngFactoryType__ || BadgeStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: BadgeStyle, factory: BadgeStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BadgeStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * Badge represents people using icons, labels and images.\n *\n * [Live Demo](https://www.primeng.org/badge)\n *\n * @module badgestyle\n *\n */\nvar BadgeClasses;\n(function (BadgeClasses) {\n /**\n * Class name of the root element\n */\n BadgeClasses[\"root\"] = \"p-badge\";\n})(BadgeClasses || (BadgeClasses = {}));\n\n/**\n * Badge Directive is directive usage of badge component.\n * @group Components\n */\nclass BadgeDirective extends BaseComponent {\n /**\n * When specified, disables the component.\n * @group Props\n */\n disabled;\n /**\n * Size of the badge, valid options are \"large\" and \"xlarge\".\n * @group Props\n */\n badgeSize;\n /**\n * Size of the badge, valid options are \"large\" and \"xlarge\".\n * @group Props\n * @deprecated use badgeSize instead.\n */\n set size(value) {\n this._size = value;\n console.log('size property is deprecated and will removed in v18, use badgeSize instead.');\n }\n get size() {\n return this._size;\n }\n _size;\n /**\n * Severity type of the badge.\n * @group Props\n */\n severity;\n /**\n * Value to display inside the badge.\n * @group Props\n */\n value;\n /**\n * Inline style of the element.\n * @group Props\n */\n badgeStyle;\n /**\n * Class of the element.\n * @group Props\n */\n badgeStyleClass;\n id;\n badgeEl;\n _componentStyle = inject(BadgeStyle);\n get activeElement() {\n return this.el.nativeElement.nodeName.indexOf('-') != -1 ? this.el.nativeElement.firstChild : this.el.nativeElement;\n }\n get canUpdateBadge() {\n return this.id && !this.disabled;\n }\n constructor() {\n super();\n }\n ngOnChanges({ value, size, severity, disabled, badgeStyle, badgeStyleClass }) {\n super.ngOnChanges({ value, size, severity, disabled });\n if (disabled) {\n this.toggleDisableState();\n }\n if (!this.canUpdateBadge) {\n return;\n }\n if (severity) {\n this.setSeverity(severity.previousValue);\n }\n if (size) {\n this.setSizeClasses();\n }\n if (value) {\n this.setValue();\n }\n if (badgeStyle || badgeStyleClass) {\n this.applyStyles();\n }\n }\n ngAfterViewInit() {\n this.id = uuid('pn_id_') + '_badge';\n this.renderBadgeContent();\n }\n setValue(element) {\n const badge = element ?? this.document.getElementById(this.id);\n if (!badge) {\n return;\n }\n if (this.value != null) {\n if (hasClass(badge, 'p-badge-dot')) {\n removeClass(badge, 'p-badge-dot');\n }\n if (this.value && String(this.value).length === 1) {\n addClass(badge, 'p-badge-circle');\n }\n else {\n removeClass(badge, 'p-badge-circle');\n }\n }\n else {\n if (!hasClass(badge, 'p-badge-dot')) {\n addClass(badge, 'p-badge-dot');\n }\n removeClass(badge, 'p-badge-circle');\n }\n badge.innerHTML = '';\n const badgeValue = this.value != null ? String(this.value) : '';\n this.renderer.appendChild(badge, this.document.createTextNode(badgeValue));\n }\n setSizeClasses(element) {\n const badge = element ?? this.document.getElementById(this.id);\n if (!badge) {\n return;\n }\n if (this.badgeSize) {\n if (this.badgeSize === 'large') {\n addClass(badge, 'p-badge-lg');\n removeClass(badge, 'p-badge-xl');\n }\n if (this.badgeSize === 'xlarge') {\n addClass(badge, 'p-badge-xl');\n removeClass(badge, 'p-badge-lg');\n }\n }\n else if (this.size && !this.badgeSize) {\n if (this.size === 'large') {\n addClass(badge, 'p-badge-lg');\n removeClass(badge, 'p-badge-xl');\n }\n if (this.size === 'xlarge') {\n addClass(badge, 'p-badge-xl');\n removeClass(badge, 'p-badge-lg');\n }\n }\n else {\n removeClass(badge, 'p-badge-lg');\n removeClass(badge, 'p-badge-xl');\n }\n }\n renderBadgeContent() {\n if (this.disabled) {\n return null;\n }\n const el = this.activeElement;\n const badge = this.document.createElement('span');\n badge.id = this.id;\n badge.className = 'p-badge p-component';\n this.setSeverity(null, badge);\n this.setSizeClasses(badge);\n this.setValue(badge);\n addClass(el, 'p-overlay-badge');\n this.renderer.appendChild(el, badge);\n this.badgeEl = badge;\n this.applyStyles();\n }\n applyStyles() {\n if (this.badgeEl && this.badgeStyle && typeof this.badgeStyle === 'object') {\n for (const [key, value] of Object.entries(this.badgeStyle)) {\n this.renderer.setStyle(this.badgeEl, key, value);\n }\n }\n if (this.badgeEl && this.badgeStyleClass) {\n this.badgeEl.classList.add(...this.badgeStyleClass.split(' '));\n }\n }\n setSeverity(oldSeverity, element) {\n const badge = element ?? this.document.getElementById(this.id);\n if (!badge) {\n return;\n }\n if (this.severity) {\n addClass(badge, `p-badge-${this.severity}`);\n }\n if (oldSeverity) {\n removeClass(badge, `p-badge-${oldSeverity}`);\n }\n }\n toggleDisableState() {\n if (!this.id) {\n return;\n }\n if (this.disabled) {\n const badge = this.activeElement?.querySelector(`#${this.id}`);\n if (badge) {\n this.renderer.removeChild(this.activeElement, badge);\n }\n }\n else {\n this.renderBadgeContent();\n }\n }\n static ɵfac = function BadgeDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BadgeDirective)(); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BadgeDirective, selectors: [[\"\", \"pBadge\", \"\"]], inputs: { disabled: [0, \"badgeDisabled\", \"disabled\"], badgeSize: \"badgeSize\", size: \"size\", severity: \"severity\", value: \"value\", badgeStyle: \"badgeStyle\", badgeStyleClass: \"badgeStyleClass\" }, standalone: true, features: [i0.ɵɵProvidersFeature([BadgeStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BadgeDirective, [{\n type: Directive,\n args: [{\n selector: '[pBadge]',\n providers: [BadgeStyle],\n standalone: true\n }]\n }], () => [], { disabled: [{\n type: Input,\n args: ['badgeDisabled']\n }], badgeSize: [{\n type: Input\n }], size: [{\n type: Input\n }], severity: [{\n type: Input\n }], value: [{\n type: Input\n }], badgeStyle: [{\n type: Input\n }], badgeStyleClass: [{\n type: Input\n }] }); })();\n/**\n * Badge is a small status indicator for another element.\n * @group Components\n */\nclass Badge extends BaseComponent {\n /**\n * Class of the element.\n * @group Props\n */\n styleClass = input();\n /**\n * Inline style of the element.\n * @group Props\n */\n style = input();\n /**\n * Size of the badge, valid options are \"large\" and \"xlarge\".\n * @group Props\n */\n badgeSize = input();\n /**\n * Size of the badge, valid options are \"large\" and \"xlarge\".\n * @group Props\n */\n size = input();\n /**\n * Severity type of the badge.\n * @group Props\n */\n severity = input();\n /**\n * Value to display inside the badge.\n * @group Props\n */\n value = input();\n /**\n * When specified, disables the component.\n * @group Props\n */\n badgeDisabled = input(false, { transform: booleanAttribute });\n _componentStyle = inject(BadgeStyle);\n /**\n * Computes the container class for the badge element based on its properties.\n * @returns An object representing the CSS classes to be applied to the badge container.\n */\n containerClass = computed(() => {\n let classes = 'p-badge p-component';\n if (isNotEmpty(this.value()) && String(this.value()).length === 1) {\n classes += ' p-badge-circle';\n }\n if (this.badgeSize() === 'large') {\n classes += ' p-badge-lg';\n }\n else if (this.badgeSize() === 'xlarge') {\n classes += ' p-badge-xl';\n }\n else if (this.badgeSize() === 'small') {\n classes += ' p-badge-sm';\n }\n if (isEmpty(this.value())) {\n classes += ' p-badge-dot';\n }\n if (this.styleClass()) {\n classes += ` ${this.styleClass()}`;\n }\n if (this.severity()) {\n classes += ` p-badge-${this.severity()}`;\n }\n return classes;\n });\n static ɵfac = /*@__PURE__*/ (() => { let ɵBadge_BaseFactory; return function Badge_Factory(__ngFactoryType__) { return (ɵBadge_BaseFactory || (ɵBadge_BaseFactory = i0.ɵɵgetInheritedFactory(Badge)))(__ngFactoryType__ || Badge); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Badge, selectors: [[\"p-badge\"]], hostVars: 6, hostBindings: function Badge_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵstyleMap(ctx.style());\n i0.ɵɵclassMap(ctx.containerClass());\n i0.ɵɵstyleProp(\"display\", ctx.badgeDisabled() && \"none\");\n } }, inputs: { styleClass: [1, \"styleClass\"], style: [1, \"style\"], badgeSize: [1, \"badgeSize\"], size: [1, \"size\"], severity: [1, \"severity\"], value: [1, \"value\"], badgeDisabled: [1, \"badgeDisabled\"] }, standalone: true, features: [i0.ɵɵProvidersFeature([BadgeStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 1, vars: 1, template: function Badge_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtext(0);\n } if (rf & 2) {\n i0.ɵɵtextInterpolate(ctx.value());\n } }, dependencies: [CommonModule, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Badge, [{\n type: Component,\n args: [{\n selector: 'p-badge',\n template: `{{ value() }}`,\n standalone: true,\n imports: [CommonModule, SharedModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [BadgeStyle],\n host: {\n '[class]': 'containerClass()',\n '[style.display]': 'badgeDisabled() && \"none\"',\n '[style]': 'style()'\n }\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Badge, { className: \"Badge\" }); })();\nclass BadgeModule {\n static ɵfac = function BadgeModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BadgeModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: BadgeModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Badge, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BadgeModule, [{\n type: NgModule,\n args: [{\n imports: [Badge, BadgeDirective, SharedModule],\n exports: [Badge, BadgeDirective, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(BadgeModule, { imports: [Badge, BadgeDirective, SharedModule], exports: [Badge, BadgeDirective, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Badge, BadgeClasses, BadgeDirective, BadgeModule, BadgeStyle };\n","import * as i0 from '@angular/core';\nimport { Injectable, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input } from '@angular/core';\nimport { isEmpty } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BaseStyle } from 'primeng/base';\n\nconst css = `\n.p-icon {\n display: inline-block;\n vertical-align: baseline;\n}\n\n.p-icon-spin {\n -webkit-animation: p-icon-spin 2s infinite linear;\n animation: p-icon-spin 2s infinite linear;\n}\n\n@-webkit-keyframes p-icon-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n@keyframes p-icon-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n`;\nclass BaseIconStyle extends BaseStyle {\n name = 'baseicon';\n inlineStyles = css;\n static ɵfac = /*@__PURE__*/ (() => { let ɵBaseIconStyle_BaseFactory; return function BaseIconStyle_Factory(__ngFactoryType__) { return (ɵBaseIconStyle_BaseFactory || (ɵBaseIconStyle_BaseFactory = i0.ɵɵgetInheritedFactory(BaseIconStyle)))(__ngFactoryType__ || BaseIconStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: BaseIconStyle, factory: BaseIconStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BaseIconStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * [Live Demo](https://www.primeng.org/)\n *\n * @module baseiconstyle\n *\n */\nvar BaseIconClasses;\n(function (BaseIconClasses) {\n BaseIconClasses[\"root\"] = \"p-icon\";\n})(BaseIconClasses || (BaseIconClasses = {}));\n\nconst _c0 = [\"*\"];\nclass BaseIcon extends BaseComponent {\n label;\n spin = false;\n styleClass;\n role;\n ariaLabel;\n ariaHidden;\n ngOnInit() {\n super.ngOnInit();\n this.getAttributes();\n }\n getAttributes() {\n const isLabelEmpty = isEmpty(this.label);\n this.role = !isLabelEmpty ? 'img' : undefined;\n this.ariaLabel = !isLabelEmpty ? this.label : undefined;\n this.ariaHidden = isLabelEmpty;\n }\n getClassNames() {\n return `p-icon ${this.styleClass ? this.styleClass + ' ' : ''}${this.spin ? 'p-icon-spin' : ''}`;\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵBaseIcon_BaseFactory; return function BaseIcon_Factory(__ngFactoryType__) { return (ɵBaseIcon_BaseFactory || (ɵBaseIcon_BaseFactory = i0.ɵɵgetInheritedFactory(BaseIcon)))(__ngFactoryType__ || BaseIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BaseIcon, selectors: [[\"ng-component\"]], hostAttrs: [1, \"p-component\", \"p-iconwrapper\"], inputs: { label: \"label\", spin: [2, \"spin\", \"spin\", booleanAttribute], styleClass: \"styleClass\" }, standalone: true, features: [i0.ɵɵProvidersFeature([BaseIconStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function BaseIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n } }, encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BaseIcon, [{\n type: Component,\n args: [{\n template: ` `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [BaseIconStyle],\n host: {\n class: 'p-component p-iconwrapper'\n }\n }]\n }], null, { label: [{\n type: Input\n }], spin: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], styleClass: [{\n type: Input\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseIcon, { className: \"BaseIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BaseIcon, BaseIconClasses, BaseIconStyle };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass SpinnerIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵSpinnerIcon_BaseFactory; return function SpinnerIcon_Factory(__ngFactoryType__) { return (ɵSpinnerIcon_BaseFactory || (ɵSpinnerIcon_BaseFactory = i0.ɵɵgetInheritedFactory(SpinnerIcon)))(__ngFactoryType__ || SpinnerIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SpinnerIcon, selectors: [[\"SpinnerIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function SpinnerIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SpinnerIcon, [{\n type: Component,\n args: [{\n selector: 'SpinnerIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(SpinnerIcon, { className: \"SpinnerIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SpinnerIcon };\n","import { isPlatformBrowser } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, NgZone, effect, Directive, NgModule } from '@angular/core';\nimport { removeClass, getHeight, getWidth, getOuterWidth, getOuterHeight, getOffset, addClass, remove } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n/* For PrimeNG */\n.p-ripple {\n overflow: hidden;\n position: relative;\n}\n\n.p-ink {\n display: block;\n position: absolute;\n background: ${dt('ripple.background')};\n border-radius: 100%;\n transform: scale(0);\n}\n\n.p-ink-active {\n animation: ripple 0.4s linear;\n}\n\n.p-ripple-disabled .p-ink {\n display: none !important;\n}\n\n@keyframes ripple {\n 100% {\n opacity: 0;\n transform: scale(2.5);\n }\n}\n`;\nconst classes = {\n root: 'p-ink'\n};\nclass RippleStyle extends BaseStyle {\n name = 'ripple';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵRippleStyle_BaseFactory; return function RippleStyle_Factory(__ngFactoryType__) { return (ɵRippleStyle_BaseFactory || (ɵRippleStyle_BaseFactory = i0.ɵɵgetInheritedFactory(RippleStyle)))(__ngFactoryType__ || RippleStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: RippleStyle, factory: RippleStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RippleStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * Ripple directive adds ripple effect to the host element.\n *\n * [Live Demo](https://www.primeng.org/ripple)\n *\n * @module ripplestyle\n *\n */\nvar RippleClasses;\n(function (RippleClasses) {\n /**\n * Class name of the root element\n */\n RippleClasses[\"root\"] = \"p-ink\";\n})(RippleClasses || (RippleClasses = {}));\n\n/**\n * Ripple directive adds ripple effect to the host element.\n * @group Components\n */\nclass Ripple extends BaseComponent {\n zone = inject(NgZone);\n _componentStyle = inject(RippleStyle);\n animationListener;\n mouseDownListener;\n timeout;\n constructor() {\n super();\n effect(() => {\n if (isPlatformBrowser(this.platformId)) {\n if (this.config.ripple()) {\n this.zone.runOutsideAngular(() => {\n this.create();\n this.mouseDownListener = this.renderer.listen(this.el.nativeElement, 'mousedown', this.onMouseDown.bind(this));\n });\n }\n else {\n this.remove();\n }\n }\n });\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n }\n onMouseDown(event) {\n let ink = this.getInk();\n if (!ink || this.document.defaultView?.getComputedStyle(ink, null).display === 'none') {\n return;\n }\n removeClass(ink, 'p-ink-active');\n if (!getHeight(ink) && !getWidth(ink)) {\n let d = Math.max(getOuterWidth(this.el.nativeElement), getOuterHeight(this.el.nativeElement));\n ink.style.height = d + 'px';\n ink.style.width = d + 'px';\n }\n let offset = getOffset(this.el.nativeElement);\n let x = event.pageX - offset.left + this.document.body.scrollTop - getWidth(ink) / 2;\n let y = event.pageY - offset.top + this.document.body.scrollLeft - getHeight(ink) / 2;\n this.renderer.setStyle(ink, 'top', y + 'px');\n this.renderer.setStyle(ink, 'left', x + 'px');\n addClass(ink, 'p-ink-active');\n this.timeout = setTimeout(() => {\n let ink = this.getInk();\n if (ink) {\n removeClass(ink, 'p-ink-active');\n }\n }, 401);\n }\n getInk() {\n const children = this.el.nativeElement.children;\n for (let i = 0; i < children.length; i++) {\n if (typeof children[i].className === 'string' && children[i].className.indexOf('p-ink') !== -1) {\n return children[i];\n }\n }\n return null;\n }\n resetInk() {\n let ink = this.getInk();\n if (ink) {\n removeClass(ink, 'p-ink-active');\n }\n }\n onAnimationEnd(event) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n removeClass(event.currentTarget, 'p-ink-active');\n }\n create() {\n let ink = this.renderer.createElement('span');\n this.renderer.addClass(ink, 'p-ink');\n this.renderer.appendChild(this.el.nativeElement, ink);\n this.renderer.setAttribute(ink, 'aria-hidden', 'true');\n this.renderer.setAttribute(ink, 'role', 'presentation');\n if (!this.animationListener) {\n this.animationListener = this.renderer.listen(ink, 'animationend', this.onAnimationEnd.bind(this));\n }\n }\n remove() {\n let ink = this.getInk();\n if (ink) {\n this.mouseDownListener && this.mouseDownListener();\n this.animationListener && this.animationListener();\n this.mouseDownListener = null;\n this.animationListener = null;\n remove(ink);\n }\n }\n ngOnDestroy() {\n if (this.config && this.config.ripple()) {\n this.remove();\n }\n super.ngOnDestroy();\n }\n static ɵfac = function Ripple_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Ripple)(); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: Ripple, selectors: [[\"\", \"pRipple\", \"\"]], hostAttrs: [1, \"p-ripple\"], standalone: true, features: [i0.ɵɵProvidersFeature([RippleStyle]), i0.ɵɵInheritDefinitionFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Ripple, [{\n type: Directive,\n args: [{\n selector: '[pRipple]',\n host: {\n class: 'p-ripple'\n },\n standalone: true,\n providers: [RippleStyle]\n }]\n }], () => [], null); })();\nclass RippleModule {\n static ɵfac = function RippleModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RippleModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: RippleModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RippleModule, [{\n type: NgModule,\n args: [{\n imports: [Ripple],\n exports: [Ripple]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(RippleModule, { imports: [Ripple], exports: [Ripple] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Ripple, RippleClasses, RippleModule, RippleStyle };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, Directive, contentChild, computed, booleanAttribute, Input, EventEmitter, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Output, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { addClass, isEmpty, findSingle } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport * as i2 from 'primeng/badge';\nimport { BadgeModule } from 'primeng/badge';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { SpinnerIcon } from 'primeng/icons';\nimport { Ripple } from 'primeng/ripple';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-button {\n display: inline-flex;\n cursor: pointer;\n user-select: none;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n color: ${dt('button.primary.color')};\n background: ${dt('button.primary.background')};\n border: 1px solid ${dt('button.primary.border.color')};\n padding-block: ${dt('button.padding.y')};\n padding-inline: ${dt('button.padding.x')};\n font-size: 1rem;\n font-family: inherit;\n font-feature-settings: inherit;\n transition: background ${dt('button.transition.duration')}, color ${dt('button.transition.duration')}, border-color ${dt('button.transition.duration')},\n outline-color ${dt('button.transition.duration')}, box-shadow ${dt('button.transition.duration')};\n border-radius: ${dt('button.border.radius')};\n outline-color: transparent;\n gap: ${dt('button.gap')};\n}\n\n.p-button:disabled {\n cursor: default;\n}\n\n.p-button-icon-right {\n order: 1;\n}\n\n.p-button-icon-right:dir(rtl) {\n order: -1;\n}\n\n.p-button:not(.p-button-vertical) .p-button-icon:not(.p-button-icon-right):dir(rtl) {\n order: 1;\n}\n\n.p-button-icon-bottom {\n order: 2;\n}\n\n.p-button-icon-only {\n width: ${dt('button.icon.only.width')};\n padding-inline-start: 0;\n padding-inline-end: 0;\n gap: 0;\n}\n\n.p-button-icon-only.p-button-rounded {\n border-radius: 50%;\n height: ${dt('button.icon.only.width')};\n}\n\n.p-button-icon-only .p-button-label {\n visibility: hidden;\n width: 0;\n}\n\n.p-button-sm {\n font-size: ${dt('button.sm.font.size')};\n padding-block: ${dt('button.sm.padding.y')};\n padding-inline: ${dt('button.sm.padding.x')};\n}\n\n.p-button-sm .p-button-icon {\n font-size: ${dt('button.sm.font.size')};\n}\n\n.p-button-lg {\n font-size: ${dt('button.lg.font.size')};\n padding-block: ${dt('button.lg.padding.y')};\n padding-inline: ${dt('button.lg.padding.x')};\n}\n\n.p-button-lg .p-button-icon {\n font-size: ${dt('button.lg.font.size')};\n}\n\n.p-button-vertical {\n flex-direction: column;\n}\n\n.p-button-label {\n font-weight: ${dt('button.label.font.weight')};\n}\n\n.p-button-fluid {\n width: 100%;\n}\n\n.p-button-fluid.p-button-icon-only {\n width: ${dt('button.icon.only.width')};\n}\n\n.p-button:not(:disabled):hover {\n background: ${dt('button.primary.hover.background')};\n border: 1px solid ${dt('button.primary.hover.border.color')};\n color: ${dt('button.primary.hover.color')};\n}\n\n.p-button:not(:disabled):active {\n background: ${dt('button.primary.active.background')};\n border: 1px solid ${dt('button.primary.active.border.color')};\n color: ${dt('button.primary.active.color')};\n}\n\n.p-button:focus-visible {\n box-shadow: ${dt('button.primary.focus.ring.shadow')};\n outline: ${dt('button.focus.ring.width')} ${dt('button.focus.ring.style')} ${dt('button.primary.focus.ring.color')};\n outline-offset: ${dt('button.focus.ring.offset')};\n}\n\n.p-button .p-badge {\n min-width: ${dt('button.badge.size')};\n height: ${dt('button.badge.size')};\n line-height: ${dt('button.badge.size')};\n}\n\n.p-button-raised {\n box-shadow: ${dt('button.raised.shadow')};\n}\n\n.p-button-rounded {\n border-radius: ${dt('button.rounded.border.radius')};\n}\n\n.p-button-secondary {\n background: ${dt('button.secondary.background')};\n border: 1px solid ${dt('button.secondary.border.color')};\n color: ${dt('button.secondary.color')};\n}\n\n.p-button-secondary:not(:disabled):hover {\n background: ${dt('button.secondary.hover.background')};\n border: 1px solid ${dt('button.secondary.hover.border.color')};\n color: ${dt('button.secondary.hover.color')};\n}\n\n.p-button-secondary:not(:disabled):active {\n background: ${dt('button.secondary.active.background')};\n border: 1px solid ${dt('button.secondary.active.border.color')};\n color: ${dt('button.secondary.active.color')};\n}\n\n.p-button-secondary:focus-visible {\n outline-color: ${dt('button.secondary.focus.ring.color')};\n box-shadow: ${dt('button.secondary.focus.ring.shadow')};\n}\n\n.p-button-success {\n background: ${dt('button.success.background')};\n border: 1px solid ${dt('button.success.border.color')};\n color: ${dt('button.success.color')};\n}\n\n.p-button-success:not(:disabled):hover {\n background: ${dt('button.success.hover.background')};\n border: 1px solid ${dt('button.success.hover.border.color')};\n color: ${dt('button.success.hover.color')};\n}\n\n.p-button-success:not(:disabled):active {\n background: ${dt('button.success.active.background')};\n border: 1px solid ${dt('button.success.active.border.color')};\n color: ${dt('button.success.active.color')};\n}\n\n.p-button-success:focus-visible {\n outline-color: ${dt('button.success.focus.ring.color')};\n box-shadow: ${dt('button.success.focus.ring.shadow')};\n}\n\n.p-button-info {\n background: ${dt('button.info.background')};\n border: 1px solid ${dt('button.info.border.color')};\n color: ${dt('button.info.color')};\n}\n\n.p-button-info:not(:disabled):hover {\n background: ${dt('button.info.hover.background')};\n border: 1px solid ${dt('button.info.hover.border.color')};\n color: ${dt('button.info.hover.color')};\n}\n\n.p-button-info:not(:disabled):active {\n background: ${dt('button.info.active.background')};\n border: 1px solid ${dt('button.info.active.border.color')};\n color: ${dt('button.info.active.color')};\n}\n\n.p-button-info:focus-visible {\n outline-color: ${dt('button.info.focus.ring.color')};\n box-shadow: ${dt('button.info.focus.ring.shadow')};\n}\n\n.p-button-warn {\n background: ${dt('button.warn.background')};\n border: 1px solid ${dt('button.warn.border.color')};\n color: ${dt('button.warn.color')};\n}\n\n.p-button-warn:not(:disabled):hover {\n background: ${dt('button.warn.hover.background')};\n border: 1px solid ${dt('button.warn.hover.border.color')};\n color: ${dt('button.warn.hover.color')};\n}\n\n.p-button-warn:not(:disabled):active {\n background: ${dt('button.warn.active.background')};\n border: 1px solid ${dt('button.warn.active.border.color')};\n color: ${dt('button.warn.active.color')};\n}\n\n.p-button-warn:focus-visible {\n outline-color: ${dt('button.warn.focus.ring.color')};\n box-shadow: ${dt('button.warn.focus.ring.shadow')};\n}\n\n.p-button-help {\n background: ${dt('button.help.background')};\n border: 1px solid ${dt('button.help.border.color')};\n color: ${dt('button.help.color')};\n}\n\n.p-button-help:not(:disabled):hover {\n background: ${dt('button.help.hover.background')};\n border: 1px solid ${dt('button.help.hover.border.color')};\n color: ${dt('button.help.hover.color')};\n}\n\n.p-button-help:not(:disabled):active {\n background: ${dt('button.help.active.background')};\n border: 1px solid ${dt('button.help.active.border.color')};\n color: ${dt('button.help.active.color')};\n}\n\n.p-button-help:focus-visible {\n outline-color: ${dt('button.help.focus.ring.color')};\n box-shadow: ${dt('button.help.focus.ring.shadow')};\n}\n\n.p-button-danger {\n background: ${dt('button.danger.background')};\n border: 1px solid ${dt('button.danger.border.color')};\n color: ${dt('button.danger.color')};\n}\n\n.p-button-danger:not(:disabled):hover {\n background: ${dt('button.danger.hover.background')};\n border: 1px solid ${dt('button.danger.hover.border.color')};\n color: ${dt('button.danger.hover.color')};\n}\n\n.p-button-danger:not(:disabled):active {\n background: ${dt('button.danger.active.background')};\n border: 1px solid ${dt('button.danger.active.border.color')};\n color: ${dt('button.danger.active.color')};\n}\n\n.p-button-danger:focus-visible {\n outline-color: ${dt('button.danger.focus.ring.color')};\n box-shadow: ${dt('button.danger.focus.ring.shadow')};\n}\n\n.p-button-contrast {\n background: ${dt('button.contrast.background')};\n border: 1px solid ${dt('button.contrast.border.color')};\n color: ${dt('button.contrast.color')};\n}\n\n.p-button-contrast:not(:disabled):hover {\n background: ${dt('button.contrast.hover.background')};\n border: 1px solid ${dt('button.contrast.hover.border.color')};\n color: ${dt('button.contrast.hover.color')};\n}\n\n.p-button-contrast:not(:disabled):active {\n background: ${dt('button.contrast.active.background')};\n border: 1px solid ${dt('button.contrast.active.border.color')};\n color: ${dt('button.contrast.active.color')};\n}\n\n.p-button-contrast:focus-visible {\n outline-color: ${dt('button.contrast.focus.ring.color')};\n box-shadow: ${dt('button.contrast.focus.ring.shadow')};\n}\n\n.p-button-outlined {\n background: transparent;\n border-color: ${dt('button.outlined.primary.border.color')};\n color: ${dt('button.outlined.primary.color')};\n}\n\n.p-button-outlined:not(:disabled):hover {\n background: ${dt('button.outlined.primary.hover.background')};\n border-color: ${dt('button.outlined.primary.border.color')};\n color: ${dt('button.outlined.primary.color')};\n}\n\n.p-button-outlined:not(:disabled):active {\n background: ${dt('button.outlined.primary.active.background')};\n border-color: ${dt('button.outlined.primary.border.color')};\n color: ${dt('button.outlined.primary.color')};\n}\n\n.p-button-outlined.p-button-secondary {\n border-color: ${dt('button.outlined.secondary.border.color')};\n color: ${dt('button.outlined.secondary.color')};\n}\n\n.p-button-outlined.p-button-secondary:not(:disabled):hover {\n background: ${dt('button.outlined.secondary.hover.background')};\n border-color: ${dt('button.outlined.secondary.border.color')};\n color: ${dt('button.outlined.secondary.color')};\n}\n\n.p-button-outlined.p-button-secondary:not(:disabled):active {\n background: ${dt('button.outlined.secondary.active.background')};\n border-color: ${dt('button.outlined.secondary.border.color')};\n color: ${dt('button.outlined.secondary.color')};\n}\n\n.p-button-outlined.p-button-success {\n border-color: ${dt('button.outlined.success.border.color')};\n color: ${dt('button.outlined.success.color')};\n}\n\n.p-button-outlined.p-button-success:not(:disabled):hover {\n background: ${dt('button.outlined.success.hover.background')};\n border-color: ${dt('button.outlined.success.border.color')};\n color: ${dt('button.outlined.success.color')};\n}\n\n.p-button-outlined.p-button-success:not(:disabled):active {\n background: ${dt('button.outlined.success.active.background')};\n border-color: ${dt('button.outlined.success.border.color')};\n color: ${dt('button.outlined.success.color')};\n}\n\n.p-button-outlined.p-button-info {\n border-color: ${dt('button.outlined.info.border.color')};\n color: ${dt('button.outlined.info.color')};\n}\n\n.p-button-outlined.p-button-info:not(:disabled):hover {\n background: ${dt('button.outlined.info.hover.background')};\n border-color: ${dt('button.outlined.info.border.color')};\n color: ${dt('button.outlined.info.color')};\n}\n\n.p-button-outlined.p-button-info:not(:disabled):active {\n background: ${dt('button.outlined.info.active.background')};\n border-color: ${dt('button.outlined.info.border.color')};\n color: ${dt('button.outlined.info.color')};\n}\n\n.p-button-outlined.p-button-warn {\n border-color: ${dt('button.outlined.warn.border.color')};\n color: ${dt('button.outlined.warn.color')};\n}\n\n.p-button-outlined.p-button-warn:not(:disabled):hover {\n background: ${dt('button.outlined.warn.hover.background')};\n border-color: ${dt('button.outlined.warn.border.color')};\n color: ${dt('button.outlined.warn.color')};\n}\n\n.p-button-outlined.p-button-warn:not(:disabled):active {\n background: ${dt('button.outlined.warn.active.background')};\n border-color: ${dt('button.outlined.warn.border.color')};\n color: ${dt('button.outlined.warn.color')};\n}\n\n.p-button-outlined.p-button-help {\n border-color: ${dt('button.outlined.help.border.color')};\n color: ${dt('button.outlined.help.color')};\n}\n\n.p-button-outlined.p-button-help:not(:disabled):hover {\n background: ${dt('button.outlined.help.hover.background')};\n border-color: ${dt('button.outlined.help.border.color')};\n color: ${dt('button.outlined.help.color')};\n}\n\n.p-button-outlined.p-button-help:not(:disabled):active {\n background: ${dt('button.outlined.help.active.background')};\n border-color: ${dt('button.outlined.help.border.color')};\n color: ${dt('button.outlined.help.color')};\n}\n\n.p-button-outlined.p-button-danger {\n border-color: ${dt('button.outlined.danger.border.color')};\n color: ${dt('button.outlined.danger.color')};\n}\n\n.p-button-outlined.p-button-danger:not(:disabled):hover {\n background: ${dt('button.outlined.danger.hover.background')};\n border-color: ${dt('button.outlined.danger.border.color')};\n color: ${dt('button.outlined.danger.color')};\n}\n\n.p-button-outlined.p-button-danger:not(:disabled):active {\n background: ${dt('button.outlined.danger.active.background')};\n border-color: ${dt('button.outlined.danger.border.color')};\n color: ${dt('button.outlined.danger.color')};\n}\n\n.p-button-outlined.p-button-contrast {\n border-color: ${dt('button.outlined.contrast.border.color')};\n color: ${dt('button.outlined.contrast.color')};\n}\n\n.p-button-outlined.p-button-contrast:not(:disabled):hover {\n background: ${dt('button.outlined.contrast.hover.background')};\n border-color: ${dt('button.outlined.contrast.border.color')};\n color: ${dt('button.outlined.contrast.color')};\n}\n\n.p-button-outlined.p-button-contrast:not(:disabled):active {\n background: ${dt('button.outlined.contrast.active.background')};\n border-color: ${dt('button.outlined.contrast.border.color')};\n color: ${dt('button.outlined.contrast.color')};\n}\n\n.p-button-outlined.p-button-plain {\n border-color: ${dt('button.outlined.plain.border.color')};\n color: ${dt('button.outlined.plain.color')};\n}\n\n.p-button-outlined.p-button-plain:not(:disabled):hover {\n background: ${dt('button.outlined.plain.hover.background')};\n border-color: ${dt('button.outlined.plain.border.color')};\n color: ${dt('button.outlined.plain.color')};\n}\n\n.p-button-outlined.p-button-plain:not(:disabled):active {\n background: ${dt('button.outlined.plain.active.background')};\n border-color: ${dt('button.outlined.plain.border.color')};\n color: ${dt('button.outlined.plain.color')};\n}\n\n.p-button-text {\n background: transparent;\n border-color: transparent;\n color: ${dt('button.text.primary.color')};\n}\n\n.p-button-text:not(:disabled):hover {\n background: ${dt('button.text.primary.hover.background')};\n border-color: transparent;\n color: ${dt('button.text.primary.color')};\n}\n\n.p-button-text:not(:disabled):active {\n background: ${dt('button.text.primary.active.background')};\n border-color: transparent;\n color: ${dt('button.text.primary.color')};\n}\n\n.p-button-text.p-button-secondary {\n background: transparent;\n border-color: transparent;\n color: ${dt('button.text.secondary.color')};\n}\n\n.p-button-text.p-button-secondary:not(:disabled):hover {\n background: ${dt('button.text.secondary.hover.background')};\n border-color: transparent;\n color: ${dt('button.text.secondary.color')};\n}\n\n.p-button-text.p-button-secondary:not(:disabled):active {\n background: ${dt('button.text.secondary.active.background')};\n border-color: transparent;\n color: ${dt('button.text.secondary.color')};\n}\n\n.p-button-text.p-button-success {\n background: transparent;\n border-color: transparent;\n color: ${dt('button.text.success.color')};\n}\n\n.p-button-text.p-button-success:not(:disabled):hover {\n background: ${dt('button.text.success.hover.background')};\n border-color: transparent;\n color: ${dt('button.text.success.color')};\n}\n\n.p-button-text.p-button-success:not(:disabled):active {\n background: ${dt('button.text.success.active.background')};\n border-color: transparent;\n color: ${dt('button.text.success.color')};\n}\n\n.p-button-text.p-button-info {\n background: transparent;\n border-color: transparent;\n color: ${dt('button.text.info.color')};\n}\n\n.p-button-text.p-button-info:not(:disabled):hover {\n background: ${dt('button.text.info.hover.background')};\n border-color: transparent;\n color: ${dt('button.text.info.color')};\n}\n\n.p-button-text.p-button-info:not(:disabled):active {\n background: ${dt('button.text.info.active.background')};\n border-color: transparent;\n color: ${dt('button.text.info.color')};\n}\n\n.p-button-text.p-button-warn {\n background: transparent;\n border-color: transparent;\n color: ${dt('button.text.warn.color')};\n}\n\n.p-button-text.p-button-warn:not(:disabled):hover {\n background: ${dt('button.text.warn.hover.background')};\n border-color: transparent;\n color: ${dt('button.text.warn.color')};\n}\n\n.p-button-text.p-button-warn:not(:disabled):active {\n background: ${dt('button.text.warn.active.background')};\n border-color: transparent;\n color: ${dt('button.text.warn.color')};\n}\n\n.p-button-text.p-button-help {\n background: transparent;\n border-color: transparent;\n color: ${dt('button.text.help.color')};\n}\n\n.p-button-text.p-button-help:not(:disabled):hover {\n background: ${dt('button.text.help.hover.background')};\n border-color: transparent;\n color: ${dt('button.text.help.color')};\n}\n\n.p-button-text.p-button-help:not(:disabled):active {\n background: ${dt('button.text.help.active.background')};\n border-color: transparent;\n color: ${dt('button.text.help.color')};\n}\n\n.p-button-text.p-button-danger {\n background: transparent;\n border-color: transparent;\n color: ${dt('button.text.danger.color')};\n}\n\n.p-button-text.p-button-danger:not(:disabled):hover {\n background: ${dt('button.text.danger.hover.background')};\n border-color: transparent;\n color: ${dt('button.text.danger.color')};\n}\n\n.p-button-text.p-button-danger:not(:disabled):active {\n background: ${dt('button.text.danger.active.background')};\n border-color: transparent;\n color: ${dt('button.text.danger.color')};\n}\n\n.p-button-text.p-button-plain {\n background: transparent;\n border-color: transparent;\n color: ${dt('button.text.plain.color')};\n}\n\n.p-button-text.p-button-plain:not(:disabled):hover {\n background: ${dt('button.text.plain.hover.background')};\n border-color: transparent;\n color: ${dt('button.text.plain.color')};\n}\n\n.p-button-text.p-button-plain:not(:disabled):active {\n background: ${dt('button.text.plain.active.background')};\n border-color: transparent;\n color: ${dt('button.text.plain.color')};\n}\n\n.p-button-text.p-button-contrast {\n background: transparent;\n border-color: transparent;\n color: ${dt('button.text.contrast.color')};\n}\n\n.p-button-text.p-button-contrast:not(:disabled):hover {\n background: ${dt('button.text.contrast.hover.background')};\n border-color: transparent;\n color: ${dt('button.text.contrast.color')};\n}\n\n.p-button-text.p-button-contrast:not(:disabled):active {\n background: ${dt('button.text.contrast.active.background')};\n border-color: transparent;\n color: ${dt('button.text.contrast.color')};\n}\n\n.p-button-link {\n background: transparent;\n border-color: transparent;\n color: ${dt('button.link.color')};\n}\n\n.p-button-link:not(:disabled):hover {\n background: transparent;\n border-color: transparent;\n color: ${dt('button.link.hover.color')};\n}\n\n.p-button-link:not(:disabled):hover .p-button-label {\n text-decoration: underline;\n}\n\n.p-button-link:not(:disabled):active {\n background: transparent;\n border-color: transparent;\n color: ${dt('button.link.active.color')};\n}\n\n/* For PrimeNG */\n.p-button-icon-right {\n order: 1;\n}\n\np-button[iconpos='right'] spinnericon {\n order: 1;\n}\n`;\nconst classes = {\n root: ({ instance, props }) => [\n 'p-button p-component',\n {\n 'p-button-icon-only': instance.hasIcon && !props.label && !props.badge,\n 'p-button-vertical': (props.iconPos === 'top' || props.iconPos === 'bottom') && props.label,\n 'p-button-loading': props.loading,\n 'p-button-link': props.link,\n [`p-button-${props.severity}`]: props.severity,\n 'p-button-raised': props.raised,\n 'p-button-rounded': props.rounded,\n 'p-button-text': props.text,\n 'p-button-outlined': props.outlined,\n 'p-button-sm': props.size === 'small',\n 'p-button-lg': props.size === 'large',\n 'p-button-plain': props.plain,\n 'p-button-fluid': props.fluid\n }\n ],\n loadingIcon: 'p-button-loading-icon',\n icon: ({ props }) => [\n 'p-button-icon',\n {\n [`p-button-icon-${props.iconPos}`]: props.label\n }\n ],\n label: 'p-button-label'\n};\nclass ButtonStyle extends BaseStyle {\n name = 'button';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵButtonStyle_BaseFactory; return function ButtonStyle_Factory(__ngFactoryType__) { return (ɵButtonStyle_BaseFactory || (ɵButtonStyle_BaseFactory = i0.ɵɵgetInheritedFactory(ButtonStyle)))(__ngFactoryType__ || ButtonStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ButtonStyle, factory: ButtonStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ButtonStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * Button is an extension to standard button element with icons and theming.\n *\n * [Live Demo](https://www.primeng.org/button/)\n *\n * @module buttonstyle\n *\n */\nvar ButtonClasses;\n(function (ButtonClasses) {\n /**\n * Class name of the root element\n */\n ButtonClasses[\"root\"] = \"p-button\";\n /**\n * Class name of the loading icon element\n */\n ButtonClasses[\"loadingIcon\"] = \"p-button-loading-icon\";\n /**\n * Class name of the icon element\n */\n ButtonClasses[\"icon\"] = \"p-button-icon\";\n /**\n * Class name of the label element\n */\n ButtonClasses[\"label\"] = \"p-button-label\";\n})(ButtonClasses || (ButtonClasses = {}));\n\nconst _c0 = [\"content\"];\nconst _c1 = [\"loading\"];\nconst _c2 = [\"icon\"];\nconst _c3 = [\"*\"];\nconst _c4 = a0 => ({ class: a0 });\nfunction Button_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Button_ng_container_3_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 8);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass());\n i0.ɵɵattribute(\"aria-hidden\", true)(\"data-pc-section\", \"loadingicon\");\n} }\nfunction Button_ng_container_3_ng_container_1_SpinnerIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"SpinnerIcon\", 9);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"styleClass\", ctx_r0.spinnerIconClass())(\"spin\", true);\n i0.ɵɵattribute(\"aria-hidden\", true)(\"data-pc-section\", \"loadingicon\");\n} }\nfunction Button_ng_container_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Button_ng_container_3_ng_container_1_span_1_Template, 1, 3, \"span\", 6)(2, Button_ng_container_3_ng_container_1_SpinnerIcon_2_Template, 1, 4, \"SpinnerIcon\", 7);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.loadingIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.loadingIcon);\n} }\nfunction Button_ng_container_3_2_ng_template_0_Template(rf, ctx) { }\nfunction Button_ng_container_3_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Button_ng_container_3_2_ng_template_0_Template, 0, 0, \"ng-template\", 10);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.loadingIconTemplate || ctx_r0._loadingIconTemplate);\n} }\nfunction Button_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Button_ng_container_3_ng_container_1_Template, 3, 2, \"ng-container\", 2)(2, Button_ng_container_3_2_Template, 1, 1, null, 5);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.loadingIconTemplate && !ctx_r0._loadingIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.loadingIconTemplate || ctx_r0._loadingIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(3, _c4, ctx_r0.iconClass()));\n} }\nfunction Button_ng_container_4_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 8);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵclassMap(ctx_r0.icon);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass());\n i0.ɵɵattribute(\"data-pc-section\", \"icon\");\n} }\nfunction Button_ng_container_4_2_ng_template_0_Template(rf, ctx) { }\nfunction Button_ng_container_4_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Button_ng_container_4_2_ng_template_0_Template, 0, 0, \"ng-template\", 10);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.icon && (ctx_r0.iconTemplate || ctx_r0._iconTemplate));\n} }\nfunction Button_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Button_ng_container_4_span_1_Template, 1, 4, \"span\", 11)(2, Button_ng_container_4_2_Template, 1, 1, null, 5);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.icon && !ctx_r0.iconTemplate && !ctx_r0._iconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.iconTemplate || ctx_r0._iconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(3, _c4, ctx_r0.iconClass()));\n} }\nfunction Button_span_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 12);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"aria-hidden\", ctx_r0.icon && !ctx_r0.label)(\"data-pc-section\", \"label\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.label);\n} }\nfunction Button_p_badge_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"p-badge\", 13);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"value\", ctx_r0.badge)(\"severity\", ctx_r0.badgeSeverity);\n} }\nconst INTERNAL_BUTTON_CLASSES = {\n button: 'p-button',\n component: 'p-component',\n iconOnly: 'p-button-icon-only',\n disabled: 'p-disabled',\n loading: 'p-button-loading',\n labelOnly: 'p-button-loading-label-only'\n};\nclass ButtonLabel extends BaseComponent {\n _componentStyle = inject(ButtonStyle);\n static ɵfac = /*@__PURE__*/ (() => { let ɵButtonLabel_BaseFactory; return function ButtonLabel_Factory(__ngFactoryType__) { return (ɵButtonLabel_BaseFactory || (ɵButtonLabel_BaseFactory = i0.ɵɵgetInheritedFactory(ButtonLabel)))(__ngFactoryType__ || ButtonLabel); }; })();\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ButtonLabel, selectors: [[\"\", \"pButtonLabel\", \"\"]], hostVars: 2, hostBindings: function ButtonLabel_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵclassProp(\"p-button-label\", true);\n } }, standalone: true, features: [i0.ɵɵProvidersFeature([ButtonStyle]), i0.ɵɵInheritDefinitionFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ButtonLabel, [{\n type: Directive,\n args: [{\n selector: '[pButtonLabel]',\n providers: [ButtonStyle],\n standalone: true,\n host: {\n '[class.p-button-label]': 'true'\n }\n }]\n }], null, null); })();\nclass ButtonIcon extends BaseComponent {\n _componentStyle = inject(ButtonStyle);\n static ɵfac = /*@__PURE__*/ (() => { let ɵButtonIcon_BaseFactory; return function ButtonIcon_Factory(__ngFactoryType__) { return (ɵButtonIcon_BaseFactory || (ɵButtonIcon_BaseFactory = i0.ɵɵgetInheritedFactory(ButtonIcon)))(__ngFactoryType__ || ButtonIcon); }; })();\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ButtonIcon, selectors: [[\"\", \"pButtonIcon\", \"\"]], hostVars: 2, hostBindings: function ButtonIcon_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵclassProp(\"p-button-icon\", true);\n } }, standalone: true, features: [i0.ɵɵProvidersFeature([ButtonStyle]), i0.ɵɵInheritDefinitionFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ButtonIcon, [{\n type: Directive,\n args: [{\n selector: '[pButtonIcon]',\n providers: [ButtonStyle],\n standalone: true,\n host: {\n '[class.p-button-icon]': 'true'\n }\n }]\n }], null, null); })();\n/**\n * Button directive is an extension to button component.\n * @group Components\n */\nclass ButtonDirective extends BaseComponent {\n /**\n * Position of the icon.\n * @deprecated utilize pButtonIcon and pButtonLabel directives.\n * @group Props\n */\n iconPos = 'left';\n /**\n * Uses to pass attributes to the loading icon's DOM element.\n * @deprecated utilize pButonIcon instead.\n * @group Props\n */\n loadingIcon;\n set label(val) {\n this._label = val;\n if (this.initialized) {\n this.updateLabel();\n this.updateIcon();\n this.setStyleClass();\n }\n }\n set icon(val) {\n this._icon = val;\n if (this.initialized) {\n this.updateIcon();\n this.setStyleClass();\n }\n }\n /**\n * Whether the button is in loading state.\n * @group Props\n */\n get loading() {\n return this._loading;\n }\n set loading(val) {\n this._loading = val;\n if (this.initialized) {\n this.updateIcon();\n this.setStyleClass();\n }\n }\n _buttonProps;\n iconSignal = contentChild(ButtonIcon);\n labelSignal = contentChild(ButtonLabel);\n isIconOnly = computed(() => !!(!this.labelSignal() && this.iconSignal()));\n set buttonProps(val) {\n this._buttonProps = val;\n if (val && typeof val === 'object') {\n //@ts-ignore\n Object.entries(val).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));\n }\n }\n /**\n * Defines the style of the button.\n * @group Props\n */\n severity;\n /**\n * Add a shadow to indicate elevation.\n * @group Props\n */\n raised = false;\n /**\n * Add a circular border radius to the button.\n * @group Props\n */\n rounded = false;\n /**\n * Add a textual class to the button without a background initially.\n * @group Props\n */\n text = false;\n /**\n * Add a border class without a background initially.\n * @group Props\n */\n outlined = false;\n /**\n * Defines the size of the button.\n * @group Props\n */\n size = null;\n /**\n * Add a plain textual class to the button without a background initially.\n * @deprecated use variant property instead.\n * @group Props\n */\n plain = false;\n /**\n * Spans 100% width of the container when enabled.\n * @group Props\n */\n fluid;\n _label;\n _icon;\n _loading = false;\n initialized;\n get htmlElement() {\n return this.el.nativeElement;\n }\n _internalClasses = Object.values(INTERNAL_BUTTON_CLASSES);\n isTextButton = computed(() => !!(!this.iconSignal() && this.labelSignal() && this.text));\n /**\n * Text of the button.\n * @deprecated use pButtonLabel directive instead.\n * @group Props\n */\n get label() {\n return this._label;\n }\n /**\n * Name of the icon.\n * @deprecated use pButtonIcon directive instead\n * @group Props\n */\n get icon() {\n return this._icon;\n }\n /**\n * Used to pass all properties of the ButtonProps to the Button component.\n * @deprecated assign props directly to the button element.\n * @group Props\n */\n get buttonProps() {\n return this._buttonProps;\n }\n spinnerIcon = `\n \n \n \n \n \n \n \n \n `;\n _componentStyle = inject(ButtonStyle);\n ngAfterViewInit() {\n super.ngAfterViewInit();\n addClass(this.htmlElement, this.getStyleClass().join(' '));\n this.createIcon();\n this.createLabel();\n this.initialized = true;\n }\n ngOnChanges(simpleChanges) {\n super.ngOnChanges(simpleChanges);\n const { buttonProps } = simpleChanges;\n if (buttonProps) {\n const props = buttonProps.currentValue;\n for (const property in props) {\n this[property] = props[property];\n }\n }\n }\n getStyleClass() {\n const styleClass = [INTERNAL_BUTTON_CLASSES.button, INTERNAL_BUTTON_CLASSES.component];\n if (this.icon && !this.label && isEmpty(this.htmlElement.textContent)) {\n styleClass.push(INTERNAL_BUTTON_CLASSES.iconOnly);\n }\n if (this.loading) {\n styleClass.push(INTERNAL_BUTTON_CLASSES.disabled, INTERNAL_BUTTON_CLASSES.loading);\n if (!this.icon && this.label) {\n styleClass.push(INTERNAL_BUTTON_CLASSES.labelOnly);\n }\n if (this.icon && !this.label && !isEmpty(this.htmlElement.textContent)) {\n styleClass.push(INTERNAL_BUTTON_CLASSES.iconOnly);\n }\n }\n if (this.text) {\n styleClass.push('p-button-text');\n }\n if (this.severity) {\n styleClass.push(`p-button-${this.severity}`);\n }\n if (this.plain) {\n styleClass.push('p-button-plain');\n }\n if (this.raised) {\n styleClass.push('p-button-raised');\n }\n if (this.size) {\n styleClass.push(`p-button-${this.size}`);\n }\n if (this.outlined) {\n styleClass.push('p-button-outlined');\n }\n if (this.rounded) {\n styleClass.push('p-button-rounded');\n }\n if (this.size === 'small') {\n styleClass.push('p-button-sm');\n }\n if (this.size === 'large') {\n styleClass.push('p-button-lg');\n }\n if (this.hasFluid) {\n styleClass.push('p-button-fluid');\n }\n return styleClass;\n }\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return isEmpty(this.fluid) ? !!fluidComponent : this.fluid;\n }\n setStyleClass() {\n const styleClass = this.getStyleClass();\n this.htmlElement.classList.remove(...this._internalClasses);\n this.htmlElement.classList.add(...styleClass);\n }\n createLabel() {\n const created = findSingle(this.htmlElement, '.p-button-label');\n if (!created && this.label) {\n let labelElement = this.document.createElement('span');\n if (this.icon && !this.label) {\n labelElement.setAttribute('aria-hidden', 'true');\n }\n labelElement.className = 'p-button-label';\n labelElement.appendChild(this.document.createTextNode(this.label));\n this.htmlElement.appendChild(labelElement);\n }\n }\n createIcon() {\n const created = findSingle(this.htmlElement, '.p-button-icon');\n if (!created && (this.icon || this.loading)) {\n let iconElement = this.document.createElement('span');\n iconElement.className = 'p-button-icon';\n iconElement.setAttribute('aria-hidden', 'true');\n let iconPosClass = this.label ? 'p-button-icon-' + this.iconPos : null;\n if (iconPosClass) {\n addClass(iconElement, iconPosClass);\n }\n let iconClass = this.getIconClass();\n if (iconClass) {\n addClass(iconElement, iconClass);\n }\n if (!this.loadingIcon && this.loading) {\n iconElement.innerHTML = this.spinnerIcon;\n }\n this.htmlElement.insertBefore(iconElement, this.htmlElement.firstChild);\n }\n }\n updateLabel() {\n let labelElement = findSingle(this.htmlElement, '.p-button-label');\n if (!this.label) {\n labelElement && this.htmlElement.removeChild(labelElement);\n return;\n }\n labelElement ? (labelElement.textContent = this.label) : this.createLabel();\n }\n updateIcon() {\n let iconElement = findSingle(this.htmlElement, '.p-button-icon');\n let labelElement = findSingle(this.htmlElement, '.p-button-label');\n if (this.loading && !this.loadingIcon && iconElement) {\n iconElement.innerHTML = this.spinnerIcon;\n }\n else if (iconElement?.innerHTML) {\n iconElement.innerHTML = '';\n }\n if (iconElement) {\n if (this.iconPos) {\n iconElement.className = 'p-button-icon ' + (labelElement ? 'p-button-icon-' + this.iconPos : '') + ' ' + this.getIconClass();\n }\n else {\n iconElement.className = 'p-button-icon ' + this.getIconClass();\n }\n }\n else {\n this.createIcon();\n }\n }\n getIconClass() {\n return this.loading ? 'p-button-loading-icon ' + (this.loadingIcon ? this.loadingIcon : 'p-icon') : this.icon || 'p-hidden';\n }\n ngOnDestroy() {\n this.initialized = false;\n super.ngOnDestroy();\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵButtonDirective_BaseFactory; return function ButtonDirective_Factory(__ngFactoryType__) { return (ɵButtonDirective_BaseFactory || (ɵButtonDirective_BaseFactory = i0.ɵɵgetInheritedFactory(ButtonDirective)))(__ngFactoryType__ || ButtonDirective); }; })();\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ButtonDirective, selectors: [[\"\", \"pButton\", \"\"]], contentQueries: function ButtonDirective_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuerySignal(dirIndex, ctx.iconSignal, ButtonIcon, 5);\n i0.ɵɵcontentQuerySignal(dirIndex, ctx.labelSignal, ButtonLabel, 5);\n } if (rf & 2) {\n i0.ɵɵqueryAdvance(2);\n } }, hostVars: 4, hostBindings: function ButtonDirective_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵclassProp(\"p-button-icon-only\", ctx.isIconOnly())(\"p-button-text\", ctx.isTextButton());\n } }, inputs: { iconPos: \"iconPos\", loadingIcon: \"loadingIcon\", loading: \"loading\", severity: \"severity\", raised: [2, \"raised\", \"raised\", booleanAttribute], rounded: [2, \"rounded\", \"rounded\", booleanAttribute], text: [2, \"text\", \"text\", booleanAttribute], outlined: [2, \"outlined\", \"outlined\", booleanAttribute], size: \"size\", plain: [2, \"plain\", \"plain\", booleanAttribute], fluid: [2, \"fluid\", \"fluid\", booleanAttribute], label: \"label\", icon: \"icon\", buttonProps: \"buttonProps\" }, standalone: true, features: [i0.ɵɵProvidersFeature([ButtonStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ButtonDirective, [{\n type: Directive,\n args: [{\n selector: '[pButton]',\n standalone: true,\n providers: [ButtonStyle],\n host: {\n '[class.p-button-icon-only]': 'isIconOnly()',\n '[class.p-button-text]': 'isTextButton()'\n }\n }]\n }], null, { iconPos: [{\n type: Input\n }], loadingIcon: [{\n type: Input\n }], loading: [{\n type: Input\n }], severity: [{\n type: Input\n }], raised: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], rounded: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], text: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], outlined: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], size: [{\n type: Input\n }], plain: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], fluid: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], label: [{\n type: Input\n }], icon: [{\n type: Input\n }], buttonProps: [{\n type: Input\n }] }); })();\n/**\n * Button is an extension to standard button element with icons and theming.\n * @group Components\n */\nclass Button extends BaseComponent {\n /**\n * Type of the button.\n * @group Props\n */\n type = 'button';\n /**\n * Position of the icon.\n * @group Props\n */\n iconPos = 'left';\n /**\n * Name of the icon.\n * @group Props\n */\n icon;\n /**\n * Value of the badge.\n * @group Props\n */\n badge;\n /**\n * Uses to pass attributes to the label's DOM element.\n * @group Props\n */\n label;\n /**\n * When present, it specifies that the component should be disabled.\n * @group Props\n */\n disabled;\n /**\n * Whether the button is in loading state.\n * @group Props\n */\n loading = false;\n /**\n * Icon to display in loading state.\n * @group Props\n */\n loadingIcon;\n /**\n * Add a shadow to indicate elevation.\n * @group Props\n */\n raised = false;\n /**\n * Add a circular border radius to the button.\n * @group Props\n */\n rounded = false;\n /**\n * Add a textual class to the button without a background initially.\n * @group Props\n */\n text = false;\n /**\n * Add a plain textual class to the button without a background initially.\n * @deprecated use variant property instead.\n * @group Props\n */\n plain = false;\n /**\n * Defines the style of the button.\n * @group Props\n */\n severity;\n /**\n * Add a border class without a background initially.\n * @group Props\n */\n outlined = false;\n /**\n * Add a link style to the button.\n * @group Props\n */\n link = false;\n /**\n * Add a tabindex to the button.\n * @group Props\n */\n tabindex;\n /**\n * Defines the size of the button.\n * @group Props\n */\n size;\n /**\n * Specifies the variant of the component.\n * @group Props\n */\n variant;\n /**\n * Inline style of the element.\n * @group Props\n */\n style;\n /**\n * Class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Style class of the badge.\n * @group Props\n * @deprecated use badgeSeverity instead.\n */\n badgeClass;\n /**\n * Severity type of the badge.\n * @group Props\n * @defaultValue secondary\n */\n badgeSeverity = 'secondary';\n /**\n * Used to define a string that autocomplete attribute the current element.\n * @group Props\n */\n ariaLabel;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Spans 100% width of the container when enabled.\n * @group Props\n */\n fluid;\n /**\n * Callback to execute when button is clicked.\n * This event is intended to be used with the component. Using a regular \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [ButtonStyle]\n }]\n }], null, { type: [{\n type: Input\n }], iconPos: [{\n type: Input\n }], icon: [{\n type: Input\n }], badge: [{\n type: Input\n }], label: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], loading: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], loadingIcon: [{\n type: Input\n }], raised: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], rounded: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], text: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], plain: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], severity: [{\n type: Input\n }], outlined: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], link: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], tabindex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], size: [{\n type: Input\n }], variant: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], badgeClass: [{\n type: Input\n }], badgeSeverity: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], fluid: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onClick: [{\n type: Output\n }], onFocus: [{\n type: Output\n }], onBlur: [{\n type: Output\n }], contentTemplate: [{\n type: ContentChild,\n args: ['content']\n }], loadingIconTemplate: [{\n type: ContentChild,\n args: ['loading']\n }], iconTemplate: [{\n type: ContentChild,\n args: ['icon']\n }], buttonProps: [{\n type: Input\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Button, { className: \"Button\" }); })();\nclass ButtonModule {\n static ɵfac = function ButtonModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ButtonModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ButtonModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, Button, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ButtonModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, ButtonDirective, Button, SharedModule, ButtonLabel, ButtonIcon],\n exports: [ButtonDirective, Button, ButtonLabel, ButtonIcon, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(ButtonModule, { imports: [CommonModule, ButtonDirective, Button, SharedModule, ButtonLabel, ButtonIcon], exports: [ButtonDirective, Button, ButtonLabel, ButtonIcon, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Button, ButtonClasses, ButtonDirective, ButtonIcon, ButtonLabel, ButtonModule, ButtonStyle };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass ChevronLeftIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵChevronLeftIcon_BaseFactory; return function ChevronLeftIcon_Factory(__ngFactoryType__) { return (ɵChevronLeftIcon_BaseFactory || (ɵChevronLeftIcon_BaseFactory = i0.ɵɵgetInheritedFactory(ChevronLeftIcon)))(__ngFactoryType__ || ChevronLeftIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChevronLeftIcon, selectors: [[\"ChevronLeftIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z\", \"fill\", \"currentColor\"]], template: function ChevronLeftIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ChevronLeftIcon, [{\n type: Component,\n args: [{\n selector: 'ChevronLeftIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(ChevronLeftIcon, { className: \"ChevronLeftIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ChevronLeftIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass ChevronRightIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵChevronRightIcon_BaseFactory; return function ChevronRightIcon_Factory(__ngFactoryType__) { return (ɵChevronRightIcon_BaseFactory || (ɵChevronRightIcon_BaseFactory = i0.ɵɵgetInheritedFactory(ChevronRightIcon)))(__ngFactoryType__ || ChevronRightIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChevronRightIcon, selectors: [[\"ChevronRightIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z\", \"fill\", \"currentColor\"]], template: function ChevronRightIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ChevronRightIcon, [{\n type: Component,\n args: [{\n selector: 'ChevronRightIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(ChevronRightIcon, { className: \"ChevronRightIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ChevronRightIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass ChevronUpIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵChevronUpIcon_BaseFactory; return function ChevronUpIcon_Factory(__ngFactoryType__) { return (ɵChevronUpIcon_BaseFactory || (ɵChevronUpIcon_BaseFactory = i0.ɵɵgetInheritedFactory(ChevronUpIcon)))(__ngFactoryType__ || ChevronUpIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChevronUpIcon, selectors: [[\"ChevronUpIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z\", \"fill\", \"currentColor\"]], template: function ChevronUpIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ChevronUpIcon, [{\n type: Component,\n args: [{\n selector: 'ChevronUpIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(ChevronUpIcon, { className: \"ChevronUpIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ChevronUpIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass ChevronDownIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵChevronDownIcon_BaseFactory; return function ChevronDownIcon_Factory(__ngFactoryType__) { return (ɵChevronDownIcon_BaseFactory || (ɵChevronDownIcon_BaseFactory = i0.ɵɵgetInheritedFactory(ChevronDownIcon)))(__ngFactoryType__ || ChevronDownIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChevronDownIcon, selectors: [[\"ChevronDownIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z\", \"fill\", \"currentColor\"]], template: function ChevronDownIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ChevronDownIcon, [{\n type: Component,\n args: [{\n selector: 'ChevronDownIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(ChevronDownIcon, { className: \"ChevronDownIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ChevronDownIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass TimesIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵTimesIcon_BaseFactory; return function TimesIcon_Factory(__ngFactoryType__) { return (ɵTimesIcon_BaseFactory || (ɵTimesIcon_BaseFactory = i0.ɵɵgetInheritedFactory(TimesIcon)))(__ngFactoryType__ || TimesIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimesIcon, selectors: [[\"TimesIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z\", \"fill\", \"currentColor\"]], template: function TimesIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TimesIcon, [{\n type: Component,\n args: [{\n selector: 'TimesIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TimesIcon, { className: \"TimesIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TimesIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass CalendarIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵCalendarIcon_BaseFactory; return function CalendarIcon_Factory(__ngFactoryType__) { return (ɵCalendarIcon_BaseFactory || (ɵCalendarIcon_BaseFactory = i0.ɵɵgetInheritedFactory(CalendarIcon)))(__ngFactoryType__ || CalendarIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CalendarIcon, selectors: [[\"CalendarIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M10.7838 1.51351H9.83783V0.567568C9.83783 0.417039 9.77804 0.272676 9.6716 0.166237C9.56516 0.0597971 9.42079 0 9.27027 0C9.11974 0 8.97538 0.0597971 8.86894 0.166237C8.7625 0.272676 8.7027 0.417039 8.7027 0.567568V1.51351H5.29729V0.567568C5.29729 0.417039 5.2375 0.272676 5.13106 0.166237C5.02462 0.0597971 4.88025 0 4.72973 0C4.5792 0 4.43484 0.0597971 4.3284 0.166237C4.22196 0.272676 4.16216 0.417039 4.16216 0.567568V1.51351H3.21621C2.66428 1.51351 2.13494 1.73277 1.74467 2.12305C1.35439 2.51333 1.13513 3.04266 1.13513 3.59459V11.9189C1.13513 12.4709 1.35439 13.0002 1.74467 13.3905C2.13494 13.7807 2.66428 14 3.21621 14H10.7838C11.3357 14 11.865 13.7807 12.2553 13.3905C12.6456 13.0002 12.8649 12.4709 12.8649 11.9189V3.59459C12.8649 3.04266 12.6456 2.51333 12.2553 2.12305C11.865 1.73277 11.3357 1.51351 10.7838 1.51351ZM3.21621 2.64865H4.16216V3.59459C4.16216 3.74512 4.22196 3.88949 4.3284 3.99593C4.43484 4.10237 4.5792 4.16216 4.72973 4.16216C4.88025 4.16216 5.02462 4.10237 5.13106 3.99593C5.2375 3.88949 5.29729 3.74512 5.29729 3.59459V2.64865H8.7027V3.59459C8.7027 3.74512 8.7625 3.88949 8.86894 3.99593C8.97538 4.10237 9.11974 4.16216 9.27027 4.16216C9.42079 4.16216 9.56516 4.10237 9.6716 3.99593C9.77804 3.88949 9.83783 3.74512 9.83783 3.59459V2.64865H10.7838C11.0347 2.64865 11.2753 2.74831 11.4527 2.92571C11.6301 3.10311 11.7297 3.34371 11.7297 3.59459V5.67568H2.27027V3.59459C2.27027 3.34371 2.36993 3.10311 2.54733 2.92571C2.72473 2.74831 2.96533 2.64865 3.21621 2.64865ZM10.7838 12.8649H3.21621C2.96533 12.8649 2.72473 12.7652 2.54733 12.5878C2.36993 12.4104 2.27027 12.1698 2.27027 11.9189V6.81081H11.7297V11.9189C11.7297 12.1698 11.6301 12.4104 11.4527 12.5878C11.2753 12.7652 11.0347 12.8649 10.7838 12.8649Z\", \"fill\", \"currentColor\"]], template: function CalendarIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CalendarIcon, [{\n type: Component,\n args: [{\n selector: 'CalendarIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(CalendarIcon, { className: \"CalendarIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CalendarIcon };\n","import * as i0 from '@angular/core';\nimport { Injectable, inject, booleanAttribute, Directive, Optional, Input, HostListener, NgModule } from '@angular/core';\nimport { isEmpty } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BaseStyle } from 'primeng/base';\nimport * as i1 from '@angular/forms';\n\nconst theme = ({ dt }) => `\n.p-inputtext {\n font-family: inherit;\n font-feature-settings: inherit;\n font-size: 1rem;\n color: ${dt('inputtext.color')};\n background: ${dt('inputtext.background')};\n padding-block: ${dt('inputtext.padding.y')};\n padding-inline: ${dt('inputtext.padding.x')};\n border: 1px solid ${dt('inputtext.border.color')};\n transition: background ${dt('inputtext.transition.duration')}, color ${dt('inputtext.transition.duration')}, border-color ${dt('inputtext.transition.duration')}, outline-color ${dt('inputtext.transition.duration')}, box-shadow ${dt('inputtext.transition.duration')};\n appearance: none;\n border-radius: ${dt('inputtext.border.radius')};\n outline-color: transparent;\n box-shadow: ${dt('inputtext.shadow')};\n}\n\n.p-inputtext.ng-invalid.ng-dirty {\n border-color: ${dt('inputtext.invalid.border.color')};\n}\n\n.p-inputtext:enabled:hover {\n border-color: ${dt('inputtext.hover.border.color')};\n}\n\n.p-inputtext:enabled:focus {\n border-color: ${dt('inputtext.focus.border.color')};\n box-shadow: ${dt('inputtext.focus.ring.shadow')};\n outline: ${dt('inputtext.focus.ring.width')} ${dt('inputtext.focus.ring.style')} ${dt('inputtext.focus.ring.color')};\n outline-offset: ${dt('inputtext.focus.ring.offset')};\n}\n\n.p-inputtext.p-invalid {\n border-color: ${dt('inputtext.invalid.border.color')};\n}\n\n.p-inputtext.p-variant-filled {\n background: ${dt('inputtext.filled.background')};\n}\n\n.p-inputtext.p-variant-filled:enabled:focus {\n background: ${dt('inputtext.filled.focus.background')};\n}\n\n.p-inputtext:disabled {\n opacity: 1;\n background: ${dt('inputtext.disabled.background')};\n color: ${dt('inputtext.disabled.color')};\n}\n\n.p-inputtext::placeholder {\n color: ${dt('inputtext.placeholder.color')};\n}\n\n.p-inputtext.ng-invalid.ng-dirty::placeholder {\n color: ${dt('inputtext.invalid.placeholder.color')};\n}\n\n.p-inputtext-sm {\n font-size: ${dt('inputtext.sm.font.size')};\n padding-block: ${dt('inputtext.sm.padding.y')};\n padding-inline: ${dt('inputtext.sm.padding.x')};\n}\n\n.p-inputtext-lg {\n font-size: ${dt('inputtext.lg.font.size')};\n padding-block: ${dt('inputtext.lg.padding.y')};\n padding-inline: ${dt('inputtext.lg.padding.x')};\n}\n\n.p-inputtext-fluid {\n width: 100%;\n}\n`;\nconst classes = {\n root: ({ instance, props }) => [\n 'p-inputtext p-component',\n {\n 'p-filled': instance.filled,\n 'p-inputtext-sm': props.size === 'small',\n 'p-inputtext-lg': props.size === 'large',\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant === 'filled',\n 'p-inputtext-fluid': props.fluid\n }\n ]\n};\nclass InputTextStyle extends BaseStyle {\n name = 'inputtext';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵInputTextStyle_BaseFactory; return function InputTextStyle_Factory(__ngFactoryType__) { return (ɵInputTextStyle_BaseFactory || (ɵInputTextStyle_BaseFactory = i0.ɵɵgetInheritedFactory(InputTextStyle)))(__ngFactoryType__ || InputTextStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: InputTextStyle, factory: InputTextStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputTextStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * InputText renders a text field to enter data.\n *\n * [Live Demo](https://www.primeng.org/inputtext/)\n *\n * @module inputtextstyle\n *\n */\nvar InputTextClasses;\n(function (InputTextClasses) {\n /**\n * The class of root element\n */\n InputTextClasses[\"root\"] = \"p-inputtext\";\n})(InputTextClasses || (InputTextClasses = {}));\n\n/**\n * InputText directive is an extension to standard input element with theming.\n * @group Components\n */\nclass InputText extends BaseComponent {\n ngModel;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant = 'outlined';\n /**\n * Spans 100% width of the container when enabled.\n * @group Props\n */\n fluid;\n /**\n * Defines the size of the component.\n * @group Props\n */\n pSize;\n filled;\n _componentStyle = inject(InputTextStyle);\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return isEmpty(this.fluid) ? !!fluidComponent : this.fluid;\n }\n constructor(ngModel) {\n super();\n this.ngModel = ngModel;\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n this.updateFilledState();\n this.cd.detectChanges();\n }\n ngDoCheck() {\n this.updateFilledState();\n }\n onInput() {\n this.updateFilledState();\n }\n updateFilledState() {\n this.filled = (this.el.nativeElement.value && this.el.nativeElement.value.length) || (this.ngModel && this.ngModel.model);\n }\n static ɵfac = function InputText_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InputText)(i0.ɵɵdirectiveInject(i1.NgModel, 8)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: InputText, selectors: [[\"\", \"pInputText\", \"\"]], hostAttrs: [1, \"p-inputtext\", \"p-component\"], hostVars: 14, hostBindings: function InputText_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"input\", function InputText_input_HostBindingHandler($event) { return ctx.onInput($event); });\n } if (rf & 2) {\n i0.ɵɵclassProp(\"p-filled\", ctx.filled)(\"p-variant-filled\", ctx.variant === \"filled\" || ctx.config.inputStyle() === \"filled\" || ctx.config.inputVariant() === \"filled\")(\"p-inputtext-fluid\", ctx.hasFluid)(\"p-inputtext-sm\", ctx.pSize === \"small\")(\"p-inputfield-sm\", ctx.pSize === \"small\")(\"p-inputtext-lg\", ctx.pSize === \"large\")(\"p-inputfield-lg\", ctx.pSize === \"large\");\n } }, inputs: { variant: \"variant\", fluid: [2, \"fluid\", \"fluid\", booleanAttribute], pSize: \"pSize\" }, standalone: true, features: [i0.ɵɵProvidersFeature([InputTextStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputText, [{\n type: Directive,\n args: [{\n selector: '[pInputText]',\n standalone: true,\n host: {\n class: 'p-inputtext p-component',\n '[class.p-filled]': 'filled',\n '[class.p-variant-filled]': 'variant === \"filled\" || config.inputStyle() === \"filled\" || config.inputVariant() === \"filled\"',\n '[class.p-inputtext-fluid]': 'hasFluid',\n '[class.p-inputtext-sm]': 'pSize === \"small\"',\n '[class.p-inputfield-sm]': 'pSize === \"small\"',\n '[class.p-inputtext-lg]': 'pSize === \"large\"',\n '[class.p-inputfield-lg]': 'pSize === \"large\"'\n },\n providers: [InputTextStyle]\n }]\n }], () => [{ type: i1.NgModel, decorators: [{\n type: Optional\n }] }], { variant: [{\n type: Input\n }], fluid: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], pSize: [{\n type: Input,\n args: ['pSize']\n }], onInput: [{\n type: HostListener,\n args: ['input', ['$event']]\n }] }); })();\nclass InputTextModule {\n static ɵfac = function InputTextModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InputTextModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: InputTextModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputTextModule, [{\n type: NgModule,\n args: [{\n imports: [InputText],\n exports: [InputText]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(InputTextModule, { imports: [InputText], exports: [InputText] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { InputText, InputTextClasses, InputTextModule, InputTextStyle };\n","class ObjectUtils {\n static isArray(value, empty = true) {\n return Array.isArray(value) && (empty || value.length !== 0);\n }\n static isObject(value, empty = true) {\n return typeof value === 'object' && !Array.isArray(value) && value != null && (empty || Object.keys(value).length !== 0);\n }\n static equals(obj1, obj2, field) {\n if (field)\n return this.resolveFieldData(obj1, field) === this.resolveFieldData(obj2, field);\n else\n return this.equalsByValue(obj1, obj2);\n }\n static equalsByValue(obj1, obj2) {\n if (obj1 === obj2)\n return true;\n if (obj1 && obj2 && typeof obj1 == 'object' && typeof obj2 == 'object') {\n var arrA = Array.isArray(obj1), arrB = Array.isArray(obj2), i, length, key;\n if (arrA && arrB) {\n length = obj1.length;\n if (length != obj2.length)\n return false;\n for (i = length; i-- !== 0;)\n if (!this.equalsByValue(obj1[i], obj2[i]))\n return false;\n return true;\n }\n if (arrA != arrB)\n return false;\n var dateA = this.isDate(obj1), dateB = this.isDate(obj2);\n if (dateA != dateB)\n return false;\n if (dateA && dateB)\n return obj1.getTime() == obj2.getTime();\n var regexpA = obj1 instanceof RegExp, regexpB = obj2 instanceof RegExp;\n if (regexpA != regexpB)\n return false;\n if (regexpA && regexpB)\n return obj1.toString() == obj2.toString();\n var keys = Object.keys(obj1);\n length = keys.length;\n if (length !== Object.keys(obj2).length)\n return false;\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(obj2, keys[i]))\n return false;\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!this.equalsByValue(obj1[key], obj2[key]))\n return false;\n }\n return true;\n }\n return obj1 !== obj1 && obj2 !== obj2;\n }\n static resolveFieldData(data, field) {\n if (data && field) {\n if (this.isFunction(field)) {\n return field(data);\n }\n else if (field.indexOf('.') == -1) {\n return data[field];\n }\n else {\n let fields = field.split('.');\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[fields[i]];\n }\n return value;\n }\n }\n else {\n return null;\n }\n }\n static isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n static reorderArray(value, from, to) {\n let target;\n if (value && from !== to) {\n if (to >= value.length) {\n to %= value.length;\n from %= value.length;\n }\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n }\n static insertIntoOrderedArray(item, index, arr, sourceArr) {\n if (arr.length > 0) {\n let injected = false;\n for (let i = 0; i < arr.length; i++) {\n let currentItemIndex = this.findIndexInList(arr[i], sourceArr);\n if (currentItemIndex > index) {\n arr.splice(i, 0, item);\n injected = true;\n break;\n }\n }\n if (!injected) {\n arr.push(item);\n }\n }\n else {\n arr.push(item);\n }\n }\n static findIndexInList(item, list) {\n let index = -1;\n if (list) {\n for (let i = 0; i < list.length; i++) {\n if (list[i] == item) {\n index = i;\n break;\n }\n }\n }\n return index;\n }\n static contains(value, list) {\n if (value != null && list && list.length) {\n for (let val of list) {\n if (this.equals(value, val))\n return true;\n }\n }\n return false;\n }\n static removeAccents(str) {\n if (str) {\n str = str.normalize('NFKD').replace(/\\p{Diacritic}/gu, '');\n }\n return str;\n }\n static isDate(input) {\n return Object.prototype.toString.call(input) === '[object Date]';\n }\n static isEmpty(value) {\n return value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0) || (!this.isDate(value) && typeof value === 'object' && Object.keys(value).length === 0);\n }\n static isNotEmpty(value) {\n return !this.isEmpty(value);\n }\n static compare(value1, value2, locale, order = 1) {\n let result = -1;\n const emptyValue1 = this.isEmpty(value1);\n const emptyValue2 = this.isEmpty(value2);\n if (emptyValue1 && emptyValue2)\n result = 0;\n else if (emptyValue1)\n result = order;\n else if (emptyValue2)\n result = -order;\n else if (typeof value1 === 'string' && typeof value2 === 'string')\n result = value1.localeCompare(value2, locale, { numeric: true });\n else\n result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return result;\n }\n static sort(value1, value2, order = 1, locale, nullSortOrder = 1) {\n const result = ObjectUtils.compare(value1, value2, locale, order);\n let finalSortOrder = order;\n // nullSortOrder == 1 means Excel like sort nulls at bottom\n if (ObjectUtils.isEmpty(value1) || ObjectUtils.isEmpty(value2)) {\n finalSortOrder = nullSortOrder === 1 ? order : nullSortOrder;\n }\n return finalSortOrder * result;\n }\n static merge(obj1, obj2) {\n if (obj1 == undefined && obj2 == undefined) {\n return undefined;\n }\n else if ((obj1 == undefined || typeof obj1 === 'object') && (obj2 == undefined || typeof obj2 === 'object')) {\n return { ...(obj1 || {}), ...(obj2 || {}) };\n }\n else if ((obj1 == undefined || typeof obj1 === 'string') && (obj2 == undefined || typeof obj2 === 'string')) {\n return [obj1 || '', obj2 || ''].join(' ');\n }\n return obj2 || obj1;\n }\n static isPrintableCharacter(char = '') {\n return this.isNotEmpty(char) && char.length === 1 && char.match(/\\S| /);\n }\n static getItemValue(obj, ...params) {\n return this.isFunction(obj) ? obj(...params) : obj;\n }\n static findLastIndex(arr, callback) {\n let index = -1;\n if (this.isNotEmpty(arr)) {\n try {\n index = arr.findLastIndex(callback);\n }\n catch {\n index = arr.lastIndexOf([...arr].reverse().find(callback));\n }\n }\n return index;\n }\n static findLast(arr, callback) {\n let item;\n if (this.isNotEmpty(arr)) {\n try {\n item = arr.findLast(callback);\n }\n catch {\n item = [...arr].reverse().find(callback);\n }\n }\n return item;\n }\n static deepEquals(a, b) {\n if (a === b)\n return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = Array.isArray(a), arrB = Array.isArray(b), i, length, key;\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length)\n return false;\n for (i = length; i-- !== 0;)\n if (!this.deepEquals(a[i], b[i]))\n return false;\n return true;\n }\n if (arrA != arrB)\n return false;\n var dateA = a instanceof Date, dateB = b instanceof Date;\n if (dateA != dateB)\n return false;\n if (dateA && dateB)\n return a.getTime() == b.getTime();\n var regexpA = a instanceof RegExp, regexpB = b instanceof RegExp;\n if (regexpA != regexpB)\n return false;\n if (regexpA && regexpB)\n return a.toString() == b.toString();\n var keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length)\n return false;\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i]))\n return false;\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!this.deepEquals(a[key], b[key]))\n return false;\n }\n return true;\n }\n return a !== a && b !== b;\n }\n static minifyCSS(css) {\n return css\n ? css\n .replace(/\\/\\*(?:(?!\\*\\/)[\\s\\S])*\\*\\/|[\\r\\n\\t]+/g, '')\n .replace(/ {2,}/g, ' ')\n .replace(/ ([{:}]) /g, '$1')\n .replace(/([;,]) /g, '$1')\n .replace(/ !/g, '!')\n .replace(/: /g, ':')\n : css;\n }\n static toFlatCase(str) {\n // convert snake, kebab, camel and pascal cases to flat case\n return this.isString(str) ? str.replace(/(-|_)/g, '').toLowerCase() : str;\n }\n static isString(value, empty = true) {\n return typeof value === 'string' && (empty || value !== '');\n }\n}\n\nvar lastId = 0;\nfunction UniqueComponentId(prefix = 'pn_id_') {\n lastId++;\n return `${prefix}${lastId}`;\n}\n\nfunction ZIndexUtils() {\n let zIndexes = [];\n const generateZIndex = (key, baseZIndex) => {\n let lastZIndex = zIndexes.length > 0 ? zIndexes[zIndexes.length - 1] : { key, value: baseZIndex };\n let newZIndex = lastZIndex.value + (lastZIndex.key === key ? 0 : baseZIndex) + 2;\n zIndexes.push({ key, value: newZIndex });\n return newZIndex;\n };\n const revertZIndex = (zIndex) => {\n zIndexes = zIndexes.filter((obj) => obj.value !== zIndex);\n };\n const getCurrentZIndex = () => {\n return zIndexes.length > 0 ? zIndexes[zIndexes.length - 1].value : 0;\n };\n const getZIndex = (el) => {\n return el ? parseInt(el.style.zIndex, 10) || 0 : 0;\n };\n return {\n get: getZIndex,\n set: (key, el, baseZIndex) => {\n if (el) {\n el.style.zIndex = String(generateZIndex(key, baseZIndex));\n }\n },\n clear: (el) => {\n if (el) {\n revertZIndex(getZIndex(el));\n el.style.zIndex = '';\n }\n },\n getCurrent: () => getCurrentZIndex()\n };\n}\nvar zindexutils = ZIndexUtils();\n\nconst transformToBoolean = (value) => {\n return !!value;\n};\nconst transformToNumber = (value) => {\n return typeof value === 'string' ? parseFloat(value) : value;\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ObjectUtils, UniqueComponentId, zindexutils as ZIndexUtils, transformToBoolean, transformToNumber };\n","import { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, inject, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { uuid, getOuterWidth, isDate, findSingle, getFocusableElements, hasClass, getIndex, find, isNotEmpty, addStyle, appendChild, absolutePosition, relativePosition, addClass, blockBodyScroll, unblockBodyScroll, setAttribute, isTouchDevice } from '@primeuix/utils';\nimport * as i1 from 'primeng/api';\nimport { TranslationKeys, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Button } from 'primeng/button';\nimport { ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, TimesIcon, CalendarIcon } from 'primeng/icons';\nimport { InputText } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-datepicker {\n position: relative;\n display: inline-flex;\n max-width: 100%;\n}\n\n.p-datepicker-input {\n flex: 1 1 auto;\n width: 1%;\n}\n\n.p-datepicker:has(.p-datepicker-dropdown) .p-datepicker-input {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n}\n\n.p-datepicker-dropdown {\n cursor: pointer;\n display: inline-flex;\n user-select: none;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n width: ${dt('datepicker.dropdown.width')};\n border-start-end-radius: ${dt('datepicker.dropdown.border.radius')};\n border-end-end-radius: ${dt('datepicker.dropdown.border.radius')};\n background: ${dt('datepicker.dropdown.background')};\n border: 1px solid ${dt('datepicker.dropdown.border.color')};\n border-inline-start: 0 none;\n color: ${dt('datepicker.dropdown.color')};\n transition: background ${dt('datepicker.transition.duration')}, color ${dt('datepicker.transition.duration')}, border-color ${dt('datepicker.transition.duration')}, outline-color ${dt('datepicker.transition.duration')};\n outline-color: transparent;\n}\n\n.p-datepicker-dropdown:not(:disabled):hover {\n background: ${dt('datepicker.dropdown.hover.background')};\n border-color: ${dt('datepicker.dropdown.hover.border.color')};\n color: ${dt('datepicker.dropdown.hover.color')};\n}\n\n.p-datepicker-dropdown:not(:disabled):active {\n background: ${dt('datepicker.dropdown.active.background')};\n border-color: ${dt('datepicker.dropdown.active.border.color')};\n color: ${dt('datepicker.dropdown.active.color')};\n}\n\n.p-datepicker-dropdown:focus-visible {\n box-shadow: ${dt('datepicker.dropdown.focus.ring.shadow')};\n outline: ${dt('datepicker.dropdown.focus.ring.width')} ${dt('datepicker.dropdown.focus.ring.style')} ${dt('datepicker.dropdown.focus.ring.color')};\n outline-offset: ${dt('datepicker.dropdown.focus.ring.offset')};\n}\n\n.p-datepicker:has(.p-datepicker-input-icon-container) {\n position: relative;\n}\n\n.p-datepicker:has(.p-datepicker-input-icon-container) .p-datepicker-input {\n padding-inline-end: calc((${dt('form.field.padding.x')} * 2) + ${dt('icon.size')});\n}\n\n.p-datepicker-input-icon-container {\n cursor: pointer;\n position: absolute;\n top: 50%;\n inset-inline-end: ${dt('form.field.padding.x')};\n margin-top: calc(-1 * (${dt('icon.size')} / 2));\n color: ${dt('datepicker.input.icon.color')};\n line-height: 1;\n}\n\n.p-datepicker-fluid {\n display: flex;\n}\n\n.p-datepicker-fluid .p-datepicker-input {\n width: 1%;\n}\n\n.p-datepicker .p-datepicker-panel {\n min-width: 100%;\n}\n\n.p-datepicker-panel {\n width: auto;\n padding: ${dt('datepicker.panel.padding')};\n background: ${dt('datepicker.panel.background')};\n color: ${dt('datepicker.panel.color')};\n border: 1px solid ${dt('datepicker.panel.border.color')};\n border-radius: ${dt('datepicker.panel.border.radius')};\n box-shadow: ${dt('datepicker.panel.shadow')};\n}\n\n.p-datepicker-panel-inline {\n display: inline-block;\n overflow-x: auto;\n box-shadow: none;\n}\n\n.p-datepicker-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ${dt('datepicker.header.padding')};\n background: ${dt('datepicker.header.background')};\n color: ${dt('datepicker.header.color')};\n border-bottom: 1px solid ${dt('datepicker.header.border.color')};\n}\n\n.p-datepicker-next-button:dir(rtl) {\n transform: rotate(180deg);\n}\n\n.p-datepicker-prev-button:dir(rtl) {\n transform: rotate(180deg);\n}\n\n.p-datepicker-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${dt('datepicker.title.gap')};\n font-weight: ${dt('datepicker.title.font.weight')};\n}\n\n.p-datepicker-select-year,\n.p-datepicker-select-month {\n border: none;\n background: transparent;\n margin: 0;\n cursor: pointer;\n font-weight: inherit;\n transition: background ${dt('datepicker.transition.duration')}, color ${dt('datepicker.transition.duration')}, border-color ${dt('datepicker.transition.duration')}, outline-color ${dt('datepicker.transition.duration')}, box-shadow ${dt('datepicker.transition.duration')};\n}\n\n.p-datepicker-select-month {\n padding: ${dt('datepicker.select.month.padding')};\n color: ${dt('datepicker.select.month.color')};\n border-radius: ${dt('datepicker.select.month.border.radius')};\n}\n\n.p-datepicker-select-year {\n padding: ${dt('datepicker.select.year.padding')};\n color: ${dt('datepicker.select.year.color')};\n border-radius: ${dt('datepicker.select.year.border.radius')};\n}\n\n.p-datepicker-select-month:enabled:hover {\n background: ${dt('datepicker.select.month.hover.background')};\n color: ${dt('datepicker.select.month.hover.color')};\n}\n\n.p-datepicker-select-year:enabled:hover {\n background: ${dt('datepicker.select.year.hover.background')};\n color: ${dt('datepicker.select.year.hover.color')};\n}\n\n.p-datepicker-calendar-container {\n display: flex;\n}\n\n.p-datepicker-calendar-container .p-datepicker-calendar {\n flex: 1 1 auto;\n border-inline-start: 1px solid ${dt('datepicker.group.border.color')};\n padding-inline: ${dt('datepicker.group.gap')};\n}\n\n.p-datepicker-calendar-container .p-datepicker-calendar:first-child {\n padding-inline-start: 0;\n border-inline-start: 0 none;\n}\n\n.p-datepicker-calendar-container .p-datepicker-calendar:last-child {\n padding-inline-end: 0;\n}\n\n.p-datepicker-day-view {\n width: 100%;\n border-collapse: collapse;\n font-size: 1rem;\n margin: ${dt('datepicker.day.view.margin')};\n}\n\n.p-datepicker-weekday-cell {\n padding: ${dt('datepicker.week.day.padding')};\n}\n\n.p-datepicker-weekday {\n font-weight: ${dt('datepicker.week.day.font.weight')};\n color: ${dt('datepicker.week.day.color')};\n}\n\n.p-datepicker-day-cell {\n padding: ${dt('datepicker.date.padding')};\n}\n\n.p-datepicker-day {\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n margin: 0 auto;\n overflow: hidden;\n position: relative;\n width: ${dt('datepicker.date.width')};\n height: ${dt('datepicker.date.height')};\n border-radius: ${dt('datepicker.date.border.radius')};\n transition: background ${dt('datepicker.transition.duration')}, color ${dt('datepicker.transition.duration')}, border-color ${dt('datepicker.transition.duration')},\n box-shadow ${dt('datepicker.transition.duration')}, outline-color ${dt('datepicker.transition.duration')};\n border: 1px solid transparent;\n outline-color: transparent;\n color: ${dt('datepicker.date.color')};\n}\n\n.p-datepicker-day:not(.p-datepicker-day-selected):not(.p-disabled):hover {\n background: ${dt('datepicker.date.hover.background')};\n color: ${dt('datepicker.date.hover.color')};\n}\n\n.p-datepicker-day:focus-visible {\n box-shadow: ${dt('datepicker.date.focus.ring.shadow')};\n outline: ${dt('datepicker.date.focus.ring.width')} ${dt('datepicker.date.focus.ring.style')} ${dt('datepicker.date.focus.ring.color')};\n outline-offset: ${dt('datepicker.date.focus.ring.offset')};\n}\n\n.p-datepicker-day-selected {\n background: ${dt('datepicker.date.selected.background')};\n color: ${dt('datepicker.date.selected.color')};\n}\n\n.p-datepicker-day-selected-range {\n background: ${dt('datepicker.date.range.selected.background')};\n color: ${dt('datepicker.date.range.selected.color')};\n}\n\n.p-datepicker-today > .p-datepicker-day {\n background: ${dt('datepicker.today.background')};\n color: ${dt('datepicker.today.color')};\n}\n\n.p-datepicker-today > .p-datepicker-day-selected {\n background: ${dt('datepicker.date.selected.background')};\n color: ${dt('datepicker.date.selected.color')};\n}\n\n.p-datepicker-today > .p-datepicker-day-selected-range {\n background: ${dt('datepicker.date.range.selected.background')};\n color: ${dt('datepicker.date.range.selected.color')};\n}\n\n.p-datepicker-weeknumber {\n text-align: center\n}\n\n.p-datepicker-month-view {\n margin: ${dt('datepicker.month.view.margin')};\n}\n\n.p-datepicker-month {\n width: 33.3%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n padding: ${dt('datepicker.month.padding')};\n transition: background ${dt('datepicker.transition.duration')}, color ${dt('datepicker.transition.duration')}, border-color ${dt('datepicker.transition.duration')}, box-shadow ${dt('datepicker.transition.duration')}, outline-color ${dt('datepicker.transition.duration')};\n border-radius: ${dt('datepicker.month.border.radius')};\n outline-color: transparent;\n color: ${dt('datepicker.date.color')};\n}\n\n.p-datepicker-month:not(.p-disabled):not(.p-datepicker-month-selected):hover {\n color: ${dt('datepicker.date.hover.color')};\n background: ${dt('datepicker.date.hover.background')};\n}\n\n.p-datepicker-month-selected {\n color: ${dt('datepicker.date.selected.color')};\n background: ${dt('datepicker.date.selected.background')};\n}\n\n.p-datepicker-month:not(.p-disabled):focus-visible {\n box-shadow: ${dt('datepicker.date.focus.ring.shadow')};\n outline: ${dt('datepicker.date.focus.ring.width')} ${dt('datepicker.date.focus.ring.style')} ${dt('datepicker.date.focus.ring.color')};\n outline-offset: ${dt('datepicker.date.focus.ring.offset')};\n}\n\n.p-datepicker-year-view {\n margin: ${dt('datepicker.year.view.margin')};\n}\n\n.p-datepicker-year {\n width: 50%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n padding: ${dt('datepicker.year.padding')};\n transition: background ${dt('datepicker.transition.duration')}, color ${dt('datepicker.transition.duration')}, border-color ${dt('datepicker.transition.duration')}, box-shadow ${dt('datepicker.transition.duration')}, outline-color ${dt('datepicker.transition.duration')};\n border-radius: ${dt('datepicker.year.border.radius')};\n outline-color: transparent;\n color: ${dt('datepicker.date.color')};\n}\n\n.p-datepicker-year:not(.p-disabled):not(.p-datepicker-year-selected):hover {\n color: ${dt('datepicker.date.hover.color')};\n background: ${dt('datepicker.date.hover.background')};\n}\n\n.p-datepicker-year-selected {\n color: ${dt('datepicker.date.selected.color')};\n background: ${dt('datepicker.date.selected.background')};\n}\n\n.p-datepicker-year:not(.p-disabled):focus-visible {\n box-shadow: ${dt('datepicker.date.focus.ring.shadow')};\n outline: ${dt('datepicker.date.focus.ring.width')} ${dt('datepicker.date.focus.ring.style')} ${dt('datepicker.date.focus.ring.color')};\n outline-offset: ${dt('datepicker.date.focus.ring.offset')};\n}\n\n.p-datepicker-buttonbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: ${dt('datepicker.buttonbar.padding')};\n border-top: 1px solid ${dt('datepicker.buttonbar.border.color')};\n}\n\n.p-datepicker-buttonbar .p-button {\n width: auto;\n}\n\n.p-datepicker-time-picker {\n display: flex;\n justify-content: center;\n align-items: center;\n border-top: 1px solid ${dt('datepicker.time.picker.border.color')};\n padding: 0;\n gap: ${dt('datepicker.time.picker.gap')};\n}\n\n.p-datepicker-calendar-container + .p-datepicker-time-picker {\n padding: ${dt('datepicker.time.picker.padding')};\n}\n\n.p-datepicker-time-picker > div {\n display: flex;\n align-items: center;\n flex-direction: column;\n gap: ${dt('datepicker.time.picker.button.gap')};\n}\n\n.p-datepicker-time-picker span {\n font-size: 1rem;\n}\n\n.p-datepicker-timeonly .p-datepicker-time-picker {\n border-top: 0 none;\n}\n\n.p-datepicker-calendar:not(:first-child):not(:last-child) .p-datepicker-header {\n justify-content: center;\n}\n\n.p-datepicker:has(.p-inputtext-sm) .p-datepicker-dropdown {\n width: ${dt('datepicker.dropdown.sm.width')};\n}\n\n.p-datepicker:has(.p-inputtext-sm) .p-datepicker-dropdown .p-icon,\n.p-datepicker:has(.p-inputtext-sm) .p-datepicker-input-icon {\n font-size: ${dt('form.field.sm.font.size')};\n width: ${dt('form.field.sm.font.size')};\n height: ${dt('form.field.sm.font.size')};\n}\n\n.p-datepicker:has(.p-inputtext-lg) .p-datepicker-dropdown {\n width: ${dt('datepicker.dropdown.lg.width')};\n}\n\n.p-datepicker:has(.p-inputtext-lg) .p-datepicker-dropdown .p-icon,\n.p-datepicker:has(.p-inputtext-lg) .p-datepicker-input-icon {\n font-size: ${dt('form.field.lg.font.size')};\n width: ${dt('form.field.lg.font.size')};\n height: ${dt('form.field.lg.font.size')};\n}\n\n/* For PrimeNG */\n\np-calendar.ng-invalid.ng-dirty .p-datepicker.p-inputwrapper .p-inputtext{\n border-color: ${dt('inputtext.invalid.border.color')};\n}\n\np-datepicker.ng-invalid.ng-dirty .p-datepicker.p-inputwrapper .p-inputtext{\n border-color: ${dt('inputtext.invalid.border.color')};\n}\n`;\nconst inlineStyles = {\n root: ({ props }) => ({ position: props.appendTo === 'self' ? 'relative' : undefined })\n};\nconst classes = {\n root: ({ instance }) => ({\n 'p-datepicker p-component p-inputwrapper': true,\n 'p-datepicker-fluid': instance.hasFluid,\n 'p-inputwrapper-filled': instance.filled,\n 'p-inputwrapper-focus': instance.focus,\n 'p-focus': instance.focus || instance.overlayVisible\n }),\n pcInput: 'p-datepicker-input',\n dropdown: 'p-datepicker-dropdown',\n inputIconContainer: 'p-datepicker-input-icon-container',\n inputIcon: 'p-datepicker-input-icon',\n panel: ({ instance }) => ({\n 'p-datepicker-panel p-component': true,\n 'p-datepicker-panel-inline': instance.inline,\n 'p-disabled': instance.disabled,\n 'p-datepicker-timeonly': instance.timeOnly\n }),\n calendarContainer: 'p-datepicker-calendar-container',\n calendar: 'p-datepicker-calendar',\n header: 'p-datepicker-header',\n pcPrevButton: 'p-datepicker-prev-button',\n title: 'p-datepicker-title',\n selectMonth: 'p-datepicker-select-month',\n selectYear: 'p-datepicker-select-year',\n decade: 'p-datepicker-decade',\n pcNextButton: 'p-datepicker-next-button',\n dayView: 'p-datepicker-day-view',\n weekHeader: 'p-datepicker-weekheader p-disabled',\n weekNumber: 'p-datepicker-weeknumber',\n weekLabelContainer: 'p-datepicker-weeklabel-container p-disabled',\n weekDayCell: 'p-datepicker-weekday-cell',\n weekDay: 'p-datepicker-weekday',\n dayCell: ({ date }) => [\n 'p-datepicker-day-cell',\n {\n 'p-datepicker-other-month': date.otherMonth,\n 'p-datepicker-today': date.today\n }\n ],\n day: ({ instance, date }) => {\n let selectedDayClass = '';\n if (instance.isRangeSelection() && instance.isSelected(date) && date.selectable) {\n selectedDayClass = date.day === instance.value[0].getDate() || date.day === instance.value[1].getDate() ? 'p-datepicker-day-selected' : 'p-datepicker-day-selected-range';\n }\n return {\n 'p-datepicker-day': true,\n 'p-datepicker-day-selected': !instance.isRangeSelection() && instance.isSelected(date) && date.selectable,\n 'p-disabled': instance.disabled || !date.selectable,\n [selectedDayClass]: true\n };\n },\n monthView: 'p-datepicker-month-view',\n month: ({ instance, props, month, index }) => [\n 'p-datepicker-month',\n {\n 'p-datepicker-month-selected': instance.isMonthSelected(index),\n 'p-disabled': props.disabled || !month.selectable\n }\n ],\n yearView: 'p-datepicker-year-view',\n year: ({ instance, props, year }) => [\n 'p-datepicker-year',\n {\n 'p-datepicker-year-selected': instance.isYearSelected(year.value),\n 'p-disabled': props.disabled || !year.selectable\n }\n ],\n timePicker: 'p-datepicker-time-picker',\n hourPicker: 'p-datepicker-hour-picker',\n pcIncrementButton: 'p-datepicker-increment-button',\n pcDecrementButton: 'p-datepicker-decrement-button',\n separator: 'p-datepicker-separator',\n minutePicker: 'p-datepicker-minute-picker',\n secondPicker: 'p-datepicker-second-picker',\n ampmPicker: 'p-datepicker-ampm-picker',\n buttonbar: 'p-datepicker-buttonbar',\n pcTodayButton: 'p-datepicker-today-button',\n pcClearButton: 'p-datepicker-clear-button'\n};\nclass DatePickerStyle extends BaseStyle {\n name = 'datepicker';\n theme = theme;\n classes = classes;\n inlineStyles = inlineStyles;\n static ɵfac = /*@__PURE__*/ (() => { let ɵDatePickerStyle_BaseFactory; return function DatePickerStyle_Factory(__ngFactoryType__) { return (ɵDatePickerStyle_BaseFactory || (ɵDatePickerStyle_BaseFactory = i0.ɵɵgetInheritedFactory(DatePickerStyle)))(__ngFactoryType__ || DatePickerStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DatePickerStyle, factory: DatePickerStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DatePickerStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * DatePicker is a form component to work with dates.\n *\n * [Live Demo](https://www.primeng.org/datepicker/)\n *\n * @module datepickerstyle\n *\n */\nvar DatePickerClasses;\n(function (DatePickerClasses) {\n /**\n * Class name of the root element\n */\n DatePickerClasses[\"root\"] = \"p-datepicker\";\n /**\n * Class name of the input element\n */\n DatePickerClasses[\"pcInput\"] = \"p-datepicker-input\";\n /**\n * Class name of the dropdown element\n */\n DatePickerClasses[\"dropdown\"] = \"p-datepicker-dropdown\";\n /**\n * Class name of the input icon container element\n */\n DatePickerClasses[\"inputIconContainer\"] = \"p-datepicker-input-icon-container\";\n /**\n * Class name of the input icon element\n */\n DatePickerClasses[\"inputIcon\"] = \"p-datepicker-input-icon\";\n /**\n * Class name of the panel element\n */\n DatePickerClasses[\"panel\"] = \"p-datepicker-panel\";\n /**\n * Class name of the calendar container element\n */\n DatePickerClasses[\"calendarContainer\"] = \"p-datepicker-calendar-container\";\n /**\n * Class name of the calendar element\n */\n DatePickerClasses[\"calendar\"] = \"p-datepicker-calendar\";\n /**\n * Class name of the header element\n */\n DatePickerClasses[\"header\"] = \"p-datepicker-header\";\n /**\n * Class name of the previous button element\n */\n DatePickerClasses[\"pcPrevButton\"] = \"p-datepicker-prev-button\";\n /**\n * Class name of the title element\n */\n DatePickerClasses[\"title\"] = \"p-datepicker-title\";\n /**\n * Class name of the select month element\n */\n DatePickerClasses[\"selectMonth\"] = \"p-datepicker-select-month\";\n /**\n * Class name of the select year element\n */\n DatePickerClasses[\"selectYear\"] = \"p-datepicker-select-year\";\n /**\n * Class name of the decade element\n */\n DatePickerClasses[\"decade\"] = \"p-datepicker-decade\";\n /**\n * Class name of the next button element\n */\n DatePickerClasses[\"pcNextButton\"] = \"p-datepicker-next-button\";\n /**\n * Class name of the day view element\n */\n DatePickerClasses[\"dayView\"] = \"p-datepicker-day-view\";\n /**\n * Class name of the week header element\n */\n DatePickerClasses[\"weekHeader\"] = \"p-datepicker-weekheader\";\n /**\n * Class name of the week number element\n */\n DatePickerClasses[\"weekNumber\"] = \"p-datepicker-weeknumber\";\n /**\n * Class name of the week label container element\n */\n DatePickerClasses[\"weekLabelContainer\"] = \"p-datepicker-weeklabel-container\";\n /**\n * Class name of the week day cell element\n */\n DatePickerClasses[\"weekDayCell\"] = \"p-datepicker-weekday-cell\";\n /**\n * Class name of the week day element\n */\n DatePickerClasses[\"weekDay\"] = \"p-datepicker-weekday\";\n /**\n * Class name of the day cell element\n */\n DatePickerClasses[\"dayCell\"] = \"p-datepicker-day-cell\";\n /**\n * Class name of the day element\n */\n DatePickerClasses[\"day\"] = \"p-datepicker-day\";\n /**\n * Class name of the month view element\n */\n DatePickerClasses[\"monthView\"] = \"p-datepicker-month-view\";\n /**\n * Class name of the month element\n */\n DatePickerClasses[\"month\"] = \"p-datepicker-month\";\n /**\n * Class name of the year view element\n */\n DatePickerClasses[\"yearView\"] = \"p-datepicker-year-view\";\n /**\n * Class name of the year element\n */\n DatePickerClasses[\"year\"] = \"p-datepicker-year\";\n /**\n * Class name of the time picker element\n */\n DatePickerClasses[\"timePicker\"] = \"p-datepicker-time-picker\";\n /**\n * Class name of the hour picker element\n */\n DatePickerClasses[\"hourPicker\"] = \"p-datepicker-hour-picker\";\n /**\n * Class name of the increment button element\n */\n DatePickerClasses[\"pcIncrementButton\"] = \"p-datepicker-increment-button\";\n /**\n * Class name of the decrement button element\n */\n DatePickerClasses[\"pcDecrementButton\"] = \"p-datepicker-decrement-button\";\n /**\n * Class name of the separator element\n */\n DatePickerClasses[\"separator\"] = \"p-datepicker-separator\";\n /**\n * Class name of the minute picker element\n */\n DatePickerClasses[\"minutePicker\"] = \"p-datepicker-minute-picker\";\n /**\n * Class name of the second picker element\n */\n DatePickerClasses[\"secondPicker\"] = \"p-datepicker-second-picker\";\n /**\n * Class name of the ampm picker element\n */\n DatePickerClasses[\"ampmPicker\"] = \"p-datepicker-ampm-picker\";\n /**\n * Class name of the buttonbar element\n */\n DatePickerClasses[\"buttonbar\"] = \"p-datepicker-buttonbar\";\n /**\n * Class name of the today button element\n */\n DatePickerClasses[\"pcTodayButton\"] = \"p-datepicker-today-button\";\n /**\n * Class name of the clear button element\n */\n DatePickerClasses[\"pcClearButton\"] = \"p-datepicker-clear-button\";\n})(DatePickerClasses || (DatePickerClasses = {}));\n\nconst _c0 = [\"date\"];\nconst _c1 = [\"header\"];\nconst _c2 = [\"footer\"];\nconst _c3 = [\"disabledDate\"];\nconst _c4 = [\"decade\"];\nconst _c5 = [\"previousicon\"];\nconst _c6 = [\"nexticon\"];\nconst _c7 = [\"triggericon\"];\nconst _c8 = [\"clearicon\"];\nconst _c9 = [\"decrementicon\"];\nconst _c10 = [\"incrementicon\"];\nconst _c11 = [\"inputicon\"];\nconst _c12 = [\"container\"];\nconst _c13 = [\"inputfield\"];\nconst _c14 = [\"contentWrapper\"];\nconst _c15 = [[[\"p-header\"]], [[\"p-footer\"]]];\nconst _c16 = [\"p-header\", \"p-footer\"];\nconst _c17 = a0 => ({ clickCallBack: a0 });\nconst _c18 = a0 => ({ \"p-datepicker-input-icon\": a0 });\nconst _c19 = (a0, a1) => ({ showTransitionParams: a0, hideTransitionParams: a1 });\nconst _c20 = a0 => ({ value: \"visible\", params: a0 });\nconst _c21 = a0 => ({ visibility: a0 });\nconst _c22 = a0 => ({ $implicit: a0 });\nconst _c23 = (a0, a1) => ({ \"p-datepicker-day-cell\": true, \"p-datepicker-other-month\": a0, \"p-datepicker-today\": a1 });\nconst _c24 = (a0, a1) => ({ \"p-datepicker-month\": true, \"p-datepicker-month-selected\": a0, \"p-disabled\": a1 });\nconst _c25 = (a0, a1) => ({ \"p-datepicker-year\": true, \"p-datepicker-year-selected\": a0, \"p-disabled\": a1 });\nfunction DatePicker_ng_template_2_ng_container_2_TimesIcon_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"TimesIcon\", 11);\n i0.ɵɵlistener(\"click\", function DatePicker_ng_template_2_ng_container_2_TimesIcon_1_Template_TimesIcon_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.clear()); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n i0.ɵɵclassMap(\"p-datepicker-clear-icon\");\n} }\nfunction DatePicker_ng_template_2_ng_container_2_span_2_1_ng_template_0_Template(rf, ctx) { }\nfunction DatePicker_ng_template_2_ng_container_2_span_2_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, DatePicker_ng_template_2_ng_container_2_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction DatePicker_ng_template_2_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 12);\n i0.ɵɵlistener(\"click\", function DatePicker_ng_template_2_ng_container_2_span_2_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.clear()); });\n i0.ɵɵtemplate(1, DatePicker_ng_template_2_ng_container_2_span_2_1_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.clearIconTemplate || ctx_r1._clearIconTemplate);\n} }\nfunction DatePicker_ng_template_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, DatePicker_ng_template_2_ng_container_2_TimesIcon_1_Template, 1, 2, \"TimesIcon\", 9)(2, DatePicker_ng_template_2_ng_container_2_span_2_Template, 2, 1, \"span\", 10);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.clearIconTemplate && !ctx_r1._clearIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.clearIconTemplate || ctx_r1._clearIconTemplate);\n} }\nfunction DatePicker_ng_template_2_button_3_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 16);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r1.icon);\n} }\nfunction DatePicker_ng_template_2_button_3_ng_container_2_CalendarIcon_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"CalendarIcon\");\n} }\nfunction DatePicker_ng_template_2_button_3_ng_container_2_2_ng_template_0_Template(rf, ctx) { }\nfunction DatePicker_ng_template_2_button_3_ng_container_2_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, DatePicker_ng_template_2_button_3_ng_container_2_2_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction DatePicker_ng_template_2_button_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, DatePicker_ng_template_2_button_3_ng_container_2_CalendarIcon_1_Template, 1, 0, \"CalendarIcon\", 7)(2, DatePicker_ng_template_2_button_3_ng_container_2_2_Template, 1, 0, null, 13);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.triggerIconTemplate && !ctx_r1._triggerIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.triggerIconTemplate || ctx_r1._triggerIconTemplate);\n} }\nfunction DatePicker_ng_template_2_button_3_Template(rf, ctx) { if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 14);\n i0.ɵɵlistener(\"click\", function DatePicker_ng_template_2_button_3_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r5); i0.ɵɵnextContext(); const inputfield_r6 = i0.ɵɵreference(1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onButtonClick($event, inputfield_r6)); });\n i0.ɵɵtemplate(1, DatePicker_ng_template_2_button_3_span_1_Template, 1, 1, \"span\", 15)(2, DatePicker_ng_template_2_button_3_ng_container_2_Template, 3, 2, \"ng-container\", 7);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n let tmp_6_0;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.iconButtonAriaLabel)(\"aria-expanded\", (tmp_6_0 = ctx_r1.overlayVisible) !== null && tmp_6_0 !== undefined ? tmp_6_0 : false)(\"aria-controls\", ctx_r1.overlayVisible ? ctx_r1.panelId : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.icon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.icon);\n} }\nfunction DatePicker_ng_template_2_ng_container_4_CalendarIcon_2_Template(rf, ctx) { if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"CalendarIcon\", 20);\n i0.ɵɵlistener(\"click\", function DatePicker_ng_template_2_ng_container_4_CalendarIcon_2_Template_CalendarIcon_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onButtonClick($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(1, _c18, ctx_r1.showOnFocus));\n} }\nfunction DatePicker_ng_template_2_ng_container_4_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction DatePicker_ng_template_2_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"span\", 17);\n i0.ɵɵtemplate(2, DatePicker_ng_template_2_ng_container_4_CalendarIcon_2_Template, 1, 3, \"CalendarIcon\", 18)(3, DatePicker_ng_template_2_ng_container_4_ng_container_3_Template, 1, 0, \"ng-container\", 19);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.inputIconTemplate && !ctx_r1._inputIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.inputIconTemplate || ctx_r1._inputIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(3, _c17, ctx_r1.onButtonClick.bind(ctx_r1)));\n} }\nfunction DatePicker_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 6, 1);\n i0.ɵɵlistener(\"focus\", function DatePicker_ng_template_2_Template_input_focus_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputFocus($event)); })(\"keydown\", function DatePicker_ng_template_2_Template_input_keydown_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputKeydown($event)); })(\"click\", function DatePicker_ng_template_2_Template_input_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputClick()); })(\"blur\", function DatePicker_ng_template_2_Template_input_blur_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputBlur($event)); })(\"input\", function DatePicker_ng_template_2_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onUserInput($event)); });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, DatePicker_ng_template_2_ng_container_2_Template, 3, 2, \"ng-container\", 7)(3, DatePicker_ng_template_2_button_3_Template, 3, 6, \"button\", 8)(4, DatePicker_ng_template_2_ng_container_4_Template, 4, 5, \"ng-container\", 7);\n} if (rf & 2) {\n let tmp_17_0;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.inputStyleClass);\n i0.ɵɵproperty(\"value\", ctx_r1.inputFieldValue)(\"readonly\", ctx_r1.readonlyInput)(\"ngStyle\", ctx_r1.inputStyle)(\"ngClass\", \"p-datepicker-input\")(\"placeholder\", ctx_r1.placeholder || \"\")(\"disabled\", ctx_r1.disabled)(\"pAutoFocus\", ctx_r1.autofocus)(\"variant\", ctx_r1.variant)(\"fluid\", ctx_r1.hasFluid);\n i0.ɵɵattribute(\"id\", ctx_r1.inputId)(\"name\", ctx_r1.name)(\"required\", ctx_r1.required)(\"aria-required\", ctx_r1.required)(\"aria-expanded\", (tmp_17_0 = ctx_r1.overlayVisible) !== null && tmp_17_0 !== undefined ? tmp_17_0 : false)(\"aria-controls\", ctx_r1.overlayVisible ? ctx_r1.panelId : null)(\"aria-labelledby\", ctx_r1.ariaLabelledBy)(\"aria-label\", ctx_r1.ariaLabel)(\"tabindex\", ctx_r1.tabindex)(\"inputmode\", ctx_r1.touchUI ? \"off\" : null);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showClear && !ctx_r1.disabled && ctx_r1.value != null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showIcon && ctx_r1.iconDisplay === \"button\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.iconDisplay === \"input\" && ctx_r1.showIcon);\n} }\nfunction DatePicker_div_3_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_ChevronLeftIcon_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronLeftIcon\");\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_span_4_1_ng_template_0_Template(rf, ctx) { }\nfunction DatePicker_div_3_ng_container_4_div_2_span_4_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, DatePicker_div_3_ng_container_4_div_2_span_4_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_span_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtemplate(1, DatePicker_div_3_ng_container_4_div_2_span_4_1_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.previousIconTemplate || ctx_r1._previousIconTemplate);\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_button_6_Template(rf, ctx) { if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 37);\n i0.ɵɵlistener(\"click\", function DatePicker_div_3_ng_container_4_div_2_button_6_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.switchToMonthView($event)); })(\"keydown\", function DatePicker_div_3_ng_container_4_div_2_button_6_Template_button_keydown_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const month_r11 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"disabled\", ctx_r1.switchViewButtonDisabled());\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"chooseMonth\"));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.getMonthName(month_r11.month), \" \");\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_button_7_Template(rf, ctx) { if (rf & 1) {\n const _r12 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 38);\n i0.ɵɵlistener(\"click\", function DatePicker_div_3_ng_container_4_div_2_button_7_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.switchToYearView($event)); })(\"keydown\", function DatePicker_div_3_ng_container_4_div_2_button_7_Template_button_keydown_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const month_r11 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"disabled\", ctx_r1.switchViewButtonDisabled());\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"chooseYear\"));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.getYear(month_r11), \" \");\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_span_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(5);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate2(\"\", ctx_r1.yearPickerValues()[0], \" - \", ctx_r1.yearPickerValues()[ctx_r1.yearPickerValues().length - 1], \"\");\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_span_8_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_span_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 39);\n i0.ɵɵtemplate(1, DatePicker_div_3_ng_container_4_div_2_span_8_ng_container_1_Template, 2, 2, \"ng-container\", 7)(2, DatePicker_div_3_ng_container_4_div_2_span_8_ng_container_2_Template, 1, 0, \"ng-container\", 19);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.decadeTemplate && ctx_r1._decadeTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.decadeTemplate || ctx_r1._decadeTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(3, _c22, ctx_r1.yearPickerValues));\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_ChevronRightIcon_10_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronRightIcon\");\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_span_11_1_ng_template_0_Template(rf, ctx) { }\nfunction DatePicker_div_3_ng_container_4_div_2_span_11_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, DatePicker_div_3_ng_container_4_div_2_span_11_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_span_11_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtemplate(1, DatePicker_div_3_ng_container_4_div_2_span_11_1_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.nextIconTemplate || ctx_r1._nextIconTemplate);\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_th_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"th\", 44)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(5);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.getTranslation(\"weekHeader\"));\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_th_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"th\", 45)(1, \"span\", 46);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const weekDay_r13 = ctx.$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(weekDay_r13);\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 49)(1, \"span\", 50);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const j_r14 = i0.ɵɵnextContext().index;\n const month_r11 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", month_r11.weekNumbers[j_r14], \" \");\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const date_r16 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(date_r16.day);\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_3_ng_container_1_Template, 1, 0, \"ng-container\", 19);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const date_r16 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(6);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.dateTemplate || ctx_r1._dateTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c22, date_r16));\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_4_ng_container_1_Template, 1, 0, \"ng-container\", 19);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const date_r16 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(6);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.disabledDateTemplate || ctx_r1._disabledDateTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c22, date_r16));\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_div_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 53);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const date_r16 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", date_r16.day, \" \");\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n const _r15 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"span\", 51);\n i0.ɵɵlistener(\"click\", function DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_Template_span_click_1_listener($event) { i0.ɵɵrestoreView(_r15); const date_r16 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.onDateSelect($event, date_r16)); })(\"keydown\", function DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_Template_span_keydown_1_listener($event) { i0.ɵɵrestoreView(_r15); const date_r16 = i0.ɵɵnextContext().$implicit; const i_r17 = i0.ɵɵnextContext(3).index; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onDateCellKeydown($event, date_r16, i_r17)); });\n i0.ɵɵtemplate(2, DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_2_Template, 2, 1, \"ng-container\", 7)(3, DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_3_Template, 2, 4, \"ng-container\", 7)(4, DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_4_Template, 2, 4, \"ng-container\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_div_5_Template, 2, 1, \"div\", 52);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const date_r16 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(6);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx_r1.dayClass(date_r16));\n i0.ɵɵattribute(\"data-date\", ctx_r1.formatDateKey(ctx_r1.formatDateMetaToDate(date_r16)));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.dateTemplate && !ctx_r1._dateTemplate && (date_r16.selectable || !ctx_r1.disabledDateTemplate && !ctx_r1._disabledDateTemplate));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", date_r16.selectable || !ctx_r1.disabledDateTemplate && !ctx_r1._disabledDateTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !date_r16.selectable);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isSelected(date_r16));\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 16);\n i0.ɵɵtemplate(1, DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_Template, 6, 6, \"ng-container\", 7);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const date_r16 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(6);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(3, _c23, date_r16.otherMonth, date_r16.today));\n i0.ɵɵattribute(\"aria-label\", date_r16.day);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", date_r16.otherMonth ? ctx_r1.showOtherMonths : true);\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\");\n i0.ɵɵtemplate(1, DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_1_Template, 3, 1, \"td\", 47)(2, DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_td_2_Template, 2, 6, \"td\", 48);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const week_r18 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(5);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showWeek);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", week_r18);\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_table_12_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"table\", 40)(1, \"thead\")(2, \"tr\");\n i0.ɵɵtemplate(3, DatePicker_div_3_ng_container_4_div_2_table_12_th_3_Template, 3, 1, \"th\", 41)(4, DatePicker_div_3_ng_container_4_div_2_table_12_th_4_Template, 3, 1, \"th\", 42);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(5, \"tbody\");\n i0.ɵɵtemplate(6, DatePicker_div_3_ng_container_4_div_2_table_12_tr_6_Template, 3, 2, \"tr\", 43);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const month_r11 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showWeek);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.weekDays);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", month_r11.dates);\n} }\nfunction DatePicker_div_3_ng_container_4_div_2_Template(rf, ctx) { if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 28)(1, \"div\", 29)(2, \"p-button\", 30);\n i0.ɵɵlistener(\"keydown\", function DatePicker_div_3_ng_container_4_div_2_Template_p_button_keydown_2_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"onClick\", function DatePicker_div_3_ng_container_4_div_2_Template_p_button_onClick_2_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onPrevButtonClick($event)); });\n i0.ɵɵtemplate(3, DatePicker_div_3_ng_container_4_div_2_ChevronLeftIcon_3_Template, 1, 0, \"ChevronLeftIcon\", 7)(4, DatePicker_div_3_ng_container_4_div_2_span_4_Template, 2, 1, \"span\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 31);\n i0.ɵɵtemplate(6, DatePicker_div_3_ng_container_4_div_2_button_6_Template, 2, 3, \"button\", 32)(7, DatePicker_div_3_ng_container_4_div_2_button_7_Template, 2, 3, \"button\", 33)(8, DatePicker_div_3_ng_container_4_div_2_span_8_Template, 3, 5, \"span\", 34);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(9, \"p-button\", 35);\n i0.ɵɵlistener(\"keydown\", function DatePicker_div_3_ng_container_4_div_2_Template_p_button_keydown_9_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"onClick\", function DatePicker_div_3_ng_container_4_div_2_Template_p_button_onClick_9_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onNextButtonClick($event)); });\n i0.ɵɵtemplate(10, DatePicker_div_3_ng_container_4_div_2_ChevronRightIcon_10_Template, 1, 0, \"ChevronRightIcon\", 7)(11, DatePicker_div_3_ng_container_4_div_2_span_11_Template, 2, 1, \"span\", 7);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(12, DatePicker_div_3_ng_container_4_div_2_table_12_Template, 7, 3, \"table\", 36);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const i_r17 = ctx.index;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(12, _c21, i_r17 === 0 ? \"visible\" : \"hidden\"));\n i0.ɵɵattribute(\"aria-label\", ctx_r1.prevIconAriaLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.previousIconTemplate && !ctx_r1._previousIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.previousIconTemplate || !ctx_r1._previousIconTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentView === \"date\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentView !== \"year\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentView === \"year\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(14, _c21, i_r17 === ctx_r1.months.length - 1 ? \"visible\" : \"hidden\"));\n i0.ɵɵattribute(\"aria-label\", ctx_r1.nextIconAriaLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.decadeTemplate && !ctx_r1._decadeTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.nextIconTemplate || !ctx_r1._nextIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentView === \"date\");\n} }\nfunction DatePicker_div_3_ng_container_4_div_3_span_1_div_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 53);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const m_r21 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", m_r21, \" \");\n} }\nfunction DatePicker_div_3_ng_container_4_div_3_span_1_Template(rf, ctx) { if (rf & 1) {\n const _r19 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 56);\n i0.ɵɵlistener(\"click\", function DatePicker_div_3_ng_container_4_div_3_span_1_Template_span_click_0_listener($event) { const i_r20 = i0.ɵɵrestoreView(_r19).index; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onMonthSelect($event, i_r20)); })(\"keydown\", function DatePicker_div_3_ng_container_4_div_3_span_1_Template_span_keydown_0_listener($event) { const i_r20 = i0.ɵɵrestoreView(_r19).index; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onMonthCellKeydown($event, i_r20)); });\n i0.ɵɵtext(1);\n i0.ɵɵtemplate(2, DatePicker_div_3_ng_container_4_div_3_span_1_div_2_Template, 2, 1, \"div\", 52);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const m_r21 = ctx.$implicit;\n const i_r20 = ctx.index;\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(3, _c24, ctx_r1.isMonthSelected(i_r20), ctx_r1.isMonthDisabled(i_r20)));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", m_r21, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isMonthSelected(i_r20));\n} }\nfunction DatePicker_div_3_ng_container_4_div_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 54);\n i0.ɵɵtemplate(1, DatePicker_div_3_ng_container_4_div_3_span_1_Template, 3, 6, \"span\", 55);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.monthPickerValues());\n} }\nfunction DatePicker_div_3_ng_container_4_div_4_span_1_div_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 53);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const y_r23 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", y_r23, \" \");\n} }\nfunction DatePicker_div_3_ng_container_4_div_4_span_1_Template(rf, ctx) { if (rf & 1) {\n const _r22 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 56);\n i0.ɵɵlistener(\"click\", function DatePicker_div_3_ng_container_4_div_4_span_1_Template_span_click_0_listener($event) { const y_r23 = i0.ɵɵrestoreView(_r22).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onYearSelect($event, y_r23)); })(\"keydown\", function DatePicker_div_3_ng_container_4_div_4_span_1_Template_span_keydown_0_listener($event) { const y_r23 = i0.ɵɵrestoreView(_r22).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onYearCellKeydown($event, y_r23)); });\n i0.ɵɵtext(1);\n i0.ɵɵtemplate(2, DatePicker_div_3_ng_container_4_div_4_span_1_div_2_Template, 2, 1, \"div\", 52);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const y_r23 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(3, _c25, ctx_r1.isYearSelected(y_r23), ctx_r1.isYearDisabled(y_r23)));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", y_r23, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isYearSelected(y_r23));\n} }\nfunction DatePicker_div_3_ng_container_4_div_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 57);\n i0.ɵɵtemplate(1, DatePicker_div_3_ng_container_4_div_4_span_1_Template, 3, 6, \"span\", 55);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.yearPickerValues());\n} }\nfunction DatePicker_div_3_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 24);\n i0.ɵɵtemplate(2, DatePicker_div_3_ng_container_4_div_2_Template, 13, 16, \"div\", 25);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, DatePicker_div_3_ng_container_4_div_3_Template, 2, 1, \"div\", 26)(4, DatePicker_div_3_ng_container_4_div_4_Template, 2, 1, \"div\", 27);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.months);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentView === \"month\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentView === \"year\");\n} }\nfunction DatePicker_div_3_div_5_ChevronUpIcon_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronUpIcon\");\n} }\nfunction DatePicker_div_3_div_5_4_ng_template_0_Template(rf, ctx) { }\nfunction DatePicker_div_3_div_5_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, DatePicker_div_3_div_5_4_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction DatePicker_div_3_div_5_ng_container_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1, \"0\");\n i0.ɵɵelementContainerEnd();\n} }\nfunction DatePicker_div_3_div_5_ChevronDownIcon_9_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\");\n} }\nfunction DatePicker_div_3_div_5_10_ng_template_0_Template(rf, ctx) { }\nfunction DatePicker_div_3_div_5_10_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, DatePicker_div_3_div_5_10_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction DatePicker_div_3_div_5_ChevronUpIcon_16_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronUpIcon\");\n} }\nfunction DatePicker_div_3_div_5_17_ng_template_0_Template(rf, ctx) { }\nfunction DatePicker_div_3_div_5_17_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, DatePicker_div_3_div_5_17_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction DatePicker_div_3_div_5_ng_container_19_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1, \"0\");\n i0.ɵɵelementContainerEnd();\n} }\nfunction DatePicker_div_3_div_5_ChevronDownIcon_22_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\");\n} }\nfunction DatePicker_div_3_div_5_ng_container_23_1_ng_template_0_Template(rf, ctx) { }\nfunction DatePicker_div_3_div_5_ng_container_23_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, DatePicker_div_3_div_5_ng_container_23_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction DatePicker_div_3_div_5_ng_container_23_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, DatePicker_div_3_div_5_ng_container_23_1_Template, 1, 0, null, 13);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.decrementIconTemplate || ctx_r1._decrementIconTemplate);\n} }\nfunction DatePicker_div_3_div_5_div_24_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 61)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.timeSeparator);\n} }\nfunction DatePicker_div_3_div_5_div_25_ChevronUpIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronUpIcon\");\n} }\nfunction DatePicker_div_3_div_5_div_25_3_ng_template_0_Template(rf, ctx) { }\nfunction DatePicker_div_3_div_5_div_25_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, DatePicker_div_3_div_5_div_25_3_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction DatePicker_div_3_div_5_div_25_ng_container_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1, \"0\");\n i0.ɵɵelementContainerEnd();\n} }\nfunction DatePicker_div_3_div_5_div_25_ChevronDownIcon_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\");\n} }\nfunction DatePicker_div_3_div_5_div_25_9_ng_template_0_Template(rf, ctx) { }\nfunction DatePicker_div_3_div_5_div_25_9_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, DatePicker_div_3_div_5_div_25_9_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction DatePicker_div_3_div_5_div_25_Template(rf, ctx) { if (rf & 1) {\n const _r25 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 66)(1, \"p-button\", 60);\n i0.ɵɵlistener(\"keydown\", function DatePicker_div_3_div_5_div_25_Template_p_button_keydown_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"keydown.enter\", function DatePicker_div_3_div_5_div_25_Template_p_button_keydown_enter_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.incrementSecond($event)); })(\"keydown.space\", function DatePicker_div_3_div_5_div_25_Template_p_button_keydown_space_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.incrementSecond($event)); })(\"mousedown\", function DatePicker_div_3_div_5_div_25_Template_p_button_mousedown_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseDown($event, 2, 1)); })(\"mouseup\", function DatePicker_div_3_div_5_div_25_Template_p_button_mouseup_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.enter\", function DatePicker_div_3_div_5_div_25_Template_p_button_keyup_enter_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.space\", function DatePicker_div_3_div_5_div_25_Template_p_button_keyup_space_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"mouseleave\", function DatePicker_div_3_div_5_div_25_Template_p_button_mouseleave_1_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseLeave()); });\n i0.ɵɵtemplate(2, DatePicker_div_3_div_5_div_25_ChevronUpIcon_2_Template, 1, 0, \"ChevronUpIcon\", 7)(3, DatePicker_div_3_div_5_div_25_3_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\");\n i0.ɵɵtemplate(5, DatePicker_div_3_div_5_div_25_ng_container_5_Template, 2, 0, \"ng-container\", 7);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"p-button\", 60);\n i0.ɵɵlistener(\"keydown\", function DatePicker_div_3_div_5_div_25_Template_p_button_keydown_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"keydown.enter\", function DatePicker_div_3_div_5_div_25_Template_p_button_keydown_enter_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.decrementSecond($event)); })(\"keydown.space\", function DatePicker_div_3_div_5_div_25_Template_p_button_keydown_space_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.decrementSecond($event)); })(\"mousedown\", function DatePicker_div_3_div_5_div_25_Template_p_button_mousedown_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseDown($event, 2, -1)); })(\"mouseup\", function DatePicker_div_3_div_5_div_25_Template_p_button_mouseup_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.enter\", function DatePicker_div_3_div_5_div_25_Template_p_button_keyup_enter_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.space\", function DatePicker_div_3_div_5_div_25_Template_p_button_keyup_space_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"mouseleave\", function DatePicker_div_3_div_5_div_25_Template_p_button_mouseleave_7_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseLeave()); });\n i0.ɵɵtemplate(8, DatePicker_div_3_div_5_div_25_ChevronDownIcon_8_Template, 1, 0, \"ChevronDownIcon\", 7)(9, DatePicker_div_3_div_5_div_25_9_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"nextSecond\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.incrementIconTemplate && !ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.incrementIconTemplate || ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentSecond < 10);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.currentSecond);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"prevSecond\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.decrementIconTemplate && !ctx_r1._decrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.decrementIconTemplate || ctx_r1._decrementIconTemplate);\n} }\nfunction DatePicker_div_3_div_5_div_26_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 61)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.timeSeparator);\n} }\nfunction DatePicker_div_3_div_5_div_27_ChevronUpIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronUpIcon\");\n} }\nfunction DatePicker_div_3_div_5_div_27_3_ng_template_0_Template(rf, ctx) { }\nfunction DatePicker_div_3_div_5_div_27_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, DatePicker_div_3_div_5_div_27_3_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction DatePicker_div_3_div_5_div_27_ChevronDownIcon_7_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\");\n} }\nfunction DatePicker_div_3_div_5_div_27_8_ng_template_0_Template(rf, ctx) { }\nfunction DatePicker_div_3_div_5_div_27_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, DatePicker_div_3_div_5_div_27_8_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction DatePicker_div_3_div_5_div_27_Template(rf, ctx) { if (rf & 1) {\n const _r26 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 67)(1, \"p-button\", 68);\n i0.ɵɵlistener(\"keydown\", function DatePicker_div_3_div_5_div_27_Template_p_button_keydown_1_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"onClick\", function DatePicker_div_3_div_5_div_27_Template_p_button_onClick_1_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleAMPM($event)); })(\"keydown.enter\", function DatePicker_div_3_div_5_div_27_Template_p_button_keydown_enter_1_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleAMPM($event)); });\n i0.ɵɵtemplate(2, DatePicker_div_3_div_5_div_27_ChevronUpIcon_2_Template, 1, 0, \"ChevronUpIcon\", 7)(3, DatePicker_div_3_div_5_div_27_3_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\");\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"p-button\", 69);\n i0.ɵɵlistener(\"keydown\", function DatePicker_div_3_div_5_div_27_Template_p_button_keydown_6_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"click\", function DatePicker_div_3_div_5_div_27_Template_p_button_click_6_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleAMPM($event)); })(\"keydown.enter\", function DatePicker_div_3_div_5_div_27_Template_p_button_keydown_enter_6_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleAMPM($event)); });\n i0.ɵɵtemplate(7, DatePicker_div_3_div_5_div_27_ChevronDownIcon_7_Template, 1, 0, \"ChevronDownIcon\", 7)(8, DatePicker_div_3_div_5_div_27_8_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"am\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.incrementIconTemplate && !ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.incrementIconTemplate || ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.pm ? \"PM\" : \"AM\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"pm\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.decrementIconTemplate && !ctx_r1._decrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.decrementIconTemplate || ctx_r1._decrementIconTemplate);\n} }\nfunction DatePicker_div_3_div_5_Template(rf, ctx) { if (rf & 1) {\n const _r24 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 58)(1, \"div\", 59)(2, \"p-button\", 60);\n i0.ɵɵlistener(\"keydown\", function DatePicker_div_3_div_5_Template_p_button_keydown_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"keydown.enter\", function DatePicker_div_3_div_5_Template_p_button_keydown_enter_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.incrementHour($event)); })(\"keydown.space\", function DatePicker_div_3_div_5_Template_p_button_keydown_space_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.incrementHour($event)); })(\"mousedown\", function DatePicker_div_3_div_5_Template_p_button_mousedown_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseDown($event, 0, 1)); })(\"mouseup\", function DatePicker_div_3_div_5_Template_p_button_mouseup_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.enter\", function DatePicker_div_3_div_5_Template_p_button_keyup_enter_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.space\", function DatePicker_div_3_div_5_Template_p_button_keyup_space_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"mouseleave\", function DatePicker_div_3_div_5_Template_p_button_mouseleave_2_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseLeave()); });\n i0.ɵɵtemplate(3, DatePicker_div_3_div_5_ChevronUpIcon_3_Template, 1, 0, \"ChevronUpIcon\", 7)(4, DatePicker_div_3_div_5_4_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"span\");\n i0.ɵɵtemplate(6, DatePicker_div_3_div_5_ng_container_6_Template, 2, 0, \"ng-container\", 7);\n i0.ɵɵtext(7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"p-button\", 60);\n i0.ɵɵlistener(\"keydown\", function DatePicker_div_3_div_5_Template_p_button_keydown_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"keydown.enter\", function DatePicker_div_3_div_5_Template_p_button_keydown_enter_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.decrementHour($event)); })(\"keydown.space\", function DatePicker_div_3_div_5_Template_p_button_keydown_space_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.decrementHour($event)); })(\"mousedown\", function DatePicker_div_3_div_5_Template_p_button_mousedown_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseDown($event, 0, -1)); })(\"mouseup\", function DatePicker_div_3_div_5_Template_p_button_mouseup_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.enter\", function DatePicker_div_3_div_5_Template_p_button_keyup_enter_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.space\", function DatePicker_div_3_div_5_Template_p_button_keyup_space_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"mouseleave\", function DatePicker_div_3_div_5_Template_p_button_mouseleave_8_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseLeave()); });\n i0.ɵɵtemplate(9, DatePicker_div_3_div_5_ChevronDownIcon_9_Template, 1, 0, \"ChevronDownIcon\", 7)(10, DatePicker_div_3_div_5_10_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(11, \"div\", 61)(12, \"span\");\n i0.ɵɵtext(13);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(14, \"div\", 62)(15, \"p-button\", 60);\n i0.ɵɵlistener(\"keydown\", function DatePicker_div_3_div_5_Template_p_button_keydown_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"keydown.enter\", function DatePicker_div_3_div_5_Template_p_button_keydown_enter_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.incrementMinute($event)); })(\"keydown.space\", function DatePicker_div_3_div_5_Template_p_button_keydown_space_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.incrementMinute($event)); })(\"mousedown\", function DatePicker_div_3_div_5_Template_p_button_mousedown_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseDown($event, 1, 1)); })(\"mouseup\", function DatePicker_div_3_div_5_Template_p_button_mouseup_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.enter\", function DatePicker_div_3_div_5_Template_p_button_keyup_enter_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.space\", function DatePicker_div_3_div_5_Template_p_button_keyup_space_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"mouseleave\", function DatePicker_div_3_div_5_Template_p_button_mouseleave_15_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseLeave()); });\n i0.ɵɵtemplate(16, DatePicker_div_3_div_5_ChevronUpIcon_16_Template, 1, 0, \"ChevronUpIcon\", 7)(17, DatePicker_div_3_div_5_17_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(18, \"span\");\n i0.ɵɵtemplate(19, DatePicker_div_3_div_5_ng_container_19_Template, 2, 0, \"ng-container\", 7);\n i0.ɵɵtext(20);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(21, \"p-button\", 60);\n i0.ɵɵlistener(\"keydown\", function DatePicker_div_3_div_5_Template_p_button_keydown_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"keydown.enter\", function DatePicker_div_3_div_5_Template_p_button_keydown_enter_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.decrementMinute($event)); })(\"keydown.space\", function DatePicker_div_3_div_5_Template_p_button_keydown_space_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.decrementMinute($event)); })(\"mousedown\", function DatePicker_div_3_div_5_Template_p_button_mousedown_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseDown($event, 1, -1)); })(\"mouseup\", function DatePicker_div_3_div_5_Template_p_button_mouseup_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.enter\", function DatePicker_div_3_div_5_Template_p_button_keyup_enter_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.space\", function DatePicker_div_3_div_5_Template_p_button_keyup_space_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"mouseleave\", function DatePicker_div_3_div_5_Template_p_button_mouseleave_21_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseLeave()); });\n i0.ɵɵtemplate(22, DatePicker_div_3_div_5_ChevronDownIcon_22_Template, 1, 0, \"ChevronDownIcon\", 7)(23, DatePicker_div_3_div_5_ng_container_23_Template, 2, 1, \"ng-container\", 7);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(24, DatePicker_div_3_div_5_div_24_Template, 3, 1, \"div\", 63)(25, DatePicker_div_3_div_5_div_25_Template, 10, 8, \"div\", 64)(26, DatePicker_div_3_div_5_div_26_Template, 3, 1, \"div\", 63)(27, DatePicker_div_3_div_5_div_27_Template, 9, 7, \"div\", 65);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"nextHour\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.incrementIconTemplate && !ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.incrementIconTemplate || ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentHour < 10);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.currentHour);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"prevHour\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.decrementIconTemplate && !ctx_r1._decrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.decrementIconTemplate || ctx_r1._decrementIconTemplate);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx_r1.timeSeparator);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"nextMinute\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.incrementIconTemplate && !ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.incrementIconTemplate || ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentMinute < 10);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.currentMinute);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"prevMinute\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.decrementIconTemplate && !ctx_r1._decrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.decrementIconTemplate || ctx_r1._decrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showSeconds);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showSeconds);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.hourFormat == \"12\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.hourFormat == \"12\");\n} }\nfunction DatePicker_div_3_div_6_Template(rf, ctx) { if (rf & 1) {\n const _r27 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 70)(1, \"p-button\", 71);\n i0.ɵɵlistener(\"keydown\", function DatePicker_div_3_div_6_Template_p_button_keydown_1_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"onClick\", function DatePicker_div_3_div_6_Template_p_button_onClick_1_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTodayButtonClick($event)); });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"p-button\", 72);\n i0.ɵɵlistener(\"keydown\", function DatePicker_div_3_div_6_Template_p_button_keydown_2_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"onClick\", function DatePicker_div_3_div_6_Template_p_button_onClick_2_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onClearButtonClick($event)); });\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"label\", ctx_r1.getTranslation(\"today\"))(\"ngClass\", ctx_r1.todayButtonStyleClass);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"label\", ctx_r1.getTranslation(\"clear\"))(\"ngClass\", ctx_r1.clearButtonStyleClass);\n} }\nfunction DatePicker_div_3_ng_container_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction DatePicker_div_3_Template(rf, ctx) { if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 21, 2);\n i0.ɵɵlistener(\"@overlayAnimation.start\", function DatePicker_div_3_Template_div_animation_overlayAnimation_start_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOverlayAnimationStart($event)); })(\"@overlayAnimation.done\", function DatePicker_div_3_Template_div_animation_overlayAnimation_done_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOverlayAnimationDone($event)); })(\"click\", function DatePicker_div_3_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOverlayClick($event)); });\n i0.ɵɵprojection(2);\n i0.ɵɵtemplate(3, DatePicker_div_3_ng_container_3_Template, 1, 0, \"ng-container\", 13)(4, DatePicker_div_3_ng_container_4_Template, 5, 3, \"ng-container\", 7)(5, DatePicker_div_3_div_5_Template, 28, 21, \"div\", 22)(6, DatePicker_div_3_div_6_Template, 3, 4, \"div\", 23);\n i0.ɵɵprojection(7, 1);\n i0.ɵɵtemplate(8, DatePicker_div_3_ng_container_8_Template, 1, 0, \"ng-container\", 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.panelStyleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx_r1.panelStyle)(\"ngClass\", ctx_r1.panelClass)(\"@overlayAnimation\", i0.ɵɵpureFunction1(18, _c20, i0.ɵɵpureFunction2(15, _c19, ctx_r1.showTransitionOptions, ctx_r1.hideTransitionOptions)))(\"@.disabled\", ctx_r1.inline === true);\n i0.ɵɵattribute(\"id\", ctx_r1.panelId)(\"aria-label\", ctx_r1.getTranslation(\"chooseDate\"))(\"role\", ctx_r1.inline ? null : \"dialog\")(\"aria-modal\", ctx_r1.inline ? null : \"true\");\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.headerTemplate || ctx_r1._headerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.timeOnly);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r1.showTime || ctx_r1.timeOnly) && ctx_r1.currentView === \"date\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showButtonBar);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.footerTemplate || ctx_r1._footerTemplate);\n} }\nconst DATEPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePicker),\n multi: true\n};\n/**\n * DatePicker is a form component to work with dates.\n * @group Components\n */\nclass DatePicker extends BaseComponent {\n zone;\n overlayService;\n iconDisplay = 'button';\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Inline style of the input field.\n * @group Props\n */\n inputStyle;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n inputId;\n /**\n * Name of the input element.\n * @group Props\n */\n name;\n /**\n * Style class of the input field.\n * @group Props\n */\n inputStyleClass;\n /**\n * Placeholder text for the input.\n * @group Props\n */\n placeholder;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n ariaLabel;\n /**\n * Defines a string that labels the icon button for accessibility.\n * @group Props\n */\n iconAriaLabel;\n /**\n * When specified, disables the component.\n * @group Props\n */\n disabled;\n /**\n * Format of the date which can also be defined at locale settings.\n * @group Props\n */\n dateFormat;\n /**\n * Separator for multiple selection mode.\n * @group Props\n */\n multipleSeparator = ',';\n /**\n * Separator for joining start and end dates on range selection mode.\n * @group Props\n */\n rangeSeparator = '-';\n /**\n * When enabled, displays the datepicker as inline. Default is false for popup mode.\n * @group Props\n */\n inline = false;\n /**\n * Whether to display dates in other months (non-selectable) at the start or end of the current month. To make these days selectable use the selectOtherMonths option.\n * @group Props\n */\n showOtherMonths = true;\n /**\n * Whether days in other months shown before or after the current month are selectable. This only applies if the showOtherMonths option is set to true.\n * @group Props\n */\n selectOtherMonths;\n /**\n * When enabled, displays a button with icon next to input.\n * @group Props\n */\n showIcon;\n /**\n * Whether the component should span the full width of its parent.\n * @group Props\n */\n fluid;\n /**\n * Icon of the datepicker button.\n * @group Props\n */\n icon;\n /**\n * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having#mydiv as variable name).\n * @group Props\n */\n appendTo;\n /**\n * When specified, prevents entering the date manually with keyboard.\n * @group Props\n */\n readonlyInput;\n /**\n * The cutoff year for determining the century for a date.\n * @group Props\n */\n shortYearCutoff = '+10';\n /**\n * Whether the month should be rendered as a dropdown instead of text.\n * @group Props\n * @deprecated Navigator is always on.\n */\n monthNavigator;\n /**\n * Whether the year should be rendered as a dropdown instead of text.\n * @group Props\n * @deprecated Navigator is always on.\n */\n yearNavigator;\n /**\n * Specifies 12 or 24 hour format.\n * @group Props\n */\n hourFormat = '24';\n /**\n * Whether to display timepicker only.\n * @group Props\n */\n timeOnly;\n /**\n * Hours to change per step.\n * @group Props\n */\n stepHour = 1;\n /**\n * Minutes to change per step.\n * @group Props\n */\n stepMinute = 1;\n /**\n * Seconds to change per step.\n * @group Props\n */\n stepSecond = 1;\n /**\n * Whether to show the seconds in time picker.\n * @group Props\n */\n showSeconds = false;\n /**\n * When present, it specifies that an input field must be filled out before submitting the form.\n * @group Props\n */\n required;\n /**\n * When disabled, datepicker will not be visible with input focus.\n * @group Props\n */\n showOnFocus = true;\n /**\n * When enabled, datepicker will show week numbers.\n * @group Props\n */\n showWeek = false;\n /**\n * When enabled, datepicker will start week numbers from first day of the year.\n * @group Props\n */\n startWeekFromFirstDayOfYear = false;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n showClear = false;\n /**\n * Type of the value to write back to ngModel, default is date and alternative is string.\n * @group Props\n */\n dataType = 'date';\n /**\n * Defines the quantity of the selection, valid values are \"single\", \"multiple\" and \"range\".\n * @group Props\n */\n selectionMode = 'single';\n /**\n * Maximum number of selectable dates in multiple mode.\n * @group Props\n */\n maxDateCount;\n /**\n * Whether to display today and clear buttons at the footer\n * @group Props\n */\n showButtonBar;\n /**\n * Style class of the today button.\n * @group Props\n */\n todayButtonStyleClass;\n /**\n * Style class of the clear button.\n * @group Props\n */\n clearButtonStyleClass;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Whether to automatically manage layering.\n * @group Props\n */\n autoZIndex = true;\n /**\n * Base zIndex value to use in layering.\n * @group Props\n */\n baseZIndex = 0;\n /**\n * Style class of the datetimepicker container element.\n * @group Props\n */\n panelStyleClass;\n /**\n * Inline style of the datetimepicker container element.\n * @group Props\n */\n panelStyle;\n /**\n * Keep invalid value when input blur.\n * @group Props\n */\n keepInvalid = false;\n /**\n * Whether to hide the overlay on date selection.\n * @group Props\n */\n hideOnDateTimeSelect = true;\n /**\n * When enabled, datepicker overlay is displayed as optimized for touch devices.\n * @group Props\n */\n touchUI;\n /**\n * Separator of time selector.\n * @group Props\n */\n timeSeparator = ':';\n /**\n * When enabled, can only focus on elements inside the datepicker.\n * @group Props\n */\n focusTrap = true;\n /**\n * Transition options of the show animation.\n * @group Props\n */\n showTransitionOptions = '.12s cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation.\n * @group Props\n */\n hideTransitionOptions = '.1s linear';\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant;\n /**\n * Defines the size of the component.\n * @group Props\n */\n size;\n /**\n * The minimum selectable date.\n * @group Props\n */\n get minDate() {\n return this._minDate;\n }\n set minDate(date) {\n this._minDate = date;\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * The maximum selectable date.\n * @group Props\n */\n get maxDate() {\n return this._maxDate;\n }\n set maxDate(date) {\n this._maxDate = date;\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * Array with dates that should be disabled (not selectable).\n * @group Props\n */\n get disabledDates() {\n return this._disabledDates;\n }\n set disabledDates(disabledDates) {\n this._disabledDates = disabledDates;\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * Array with weekday numbers that should be disabled (not selectable).\n * @group Props\n */\n get disabledDays() {\n return this._disabledDays;\n }\n set disabledDays(disabledDays) {\n this._disabledDays = disabledDays;\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * The range of years displayed in the year drop-down in (nnnn:nnnn) format such as (2000:2020).\n * @group Props\n * @deprecated Years are based on decades by default.\n */\n get yearRange() {\n return this._yearRange;\n }\n set yearRange(yearRange) {\n this._yearRange = yearRange;\n if (yearRange) {\n const years = yearRange.split(':');\n const yearStart = parseInt(years[0]);\n const yearEnd = parseInt(years[1]);\n this.populateYearOptions(yearStart, yearEnd);\n }\n }\n /**\n * Whether to display timepicker.\n * @group Props\n */\n get showTime() {\n return this._showTime;\n }\n set showTime(showTime) {\n this._showTime = showTime;\n if (this.currentHour === undefined) {\n this.initTime(this.value || new Date());\n }\n this.updateInputfield();\n }\n /**\n * An array of options for responsive design.\n * @group Props\n */\n get responsiveOptions() {\n return this._responsiveOptions;\n }\n set responsiveOptions(responsiveOptions) {\n this._responsiveOptions = responsiveOptions;\n this.destroyResponsiveStyleElement();\n this.createResponsiveStyle();\n }\n /**\n * Number of months to display.\n * @group Props\n */\n get numberOfMonths() {\n return this._numberOfMonths;\n }\n set numberOfMonths(numberOfMonths) {\n this._numberOfMonths = numberOfMonths;\n this.destroyResponsiveStyleElement();\n this.createResponsiveStyle();\n }\n /**\n * Defines the first of the week for various date calculations.\n * @group Props\n */\n get firstDayOfWeek() {\n return this._firstDayOfWeek;\n }\n set firstDayOfWeek(firstDayOfWeek) {\n this._firstDayOfWeek = firstDayOfWeek;\n this.createWeekDays();\n }\n /**\n * Option to set datepicker locale.\n * @group Props\n * @deprecated Locale property has no effect, use new i18n API instead.\n */\n set locale(newLocale) {\n console.log('Locale property has no effect, use new i18n API instead.');\n }\n /**\n * Type of view to display, valid values are \"date\" for datepicker and \"month\" for month picker.\n * @group Props\n */\n get view() {\n return this._view;\n }\n set view(view) {\n this._view = view;\n this.currentView = this._view;\n }\n /**\n * Set the date to highlight on first opening if the field is blank.\n * @group Props\n */\n get defaultDate() {\n return this._defaultDate;\n }\n set defaultDate(defaultDate) {\n this._defaultDate = defaultDate;\n if (this.initialized) {\n const date = defaultDate || new Date();\n this.currentMonth = date.getMonth();\n this.currentYear = date.getFullYear();\n this.initTime(date);\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * Callback to invoke on focus of input field.\n * @param {Event} event - browser event.\n * @group Emits\n */\n onFocus = new EventEmitter();\n /**\n * Callback to invoke on blur of input field.\n * @param {Event} event - browser event.\n * @group Emits\n */\n onBlur = new EventEmitter();\n /**\n * Callback to invoke when date panel closed.\n * @param {Event} event - Mouse event\n * @group Emits\n */\n onClose = new EventEmitter();\n /**\n * Callback to invoke on date select.\n * @param {Date} date - date value.\n * @group Emits\n */\n onSelect = new EventEmitter();\n /**\n * Callback to invoke when input field cleared.\n * @group Emits\n */\n onClear = new EventEmitter();\n /**\n * Callback to invoke when input field is being typed.\n * @param {Event} event - browser event\n * @group Emits\n */\n onInput = new EventEmitter();\n /**\n * Callback to invoke when today button is clicked.\n * @param {Date} date - today as a date instance.\n * @group Emits\n */\n onTodayClick = new EventEmitter();\n /**\n * Callback to invoke when clear button is clicked.\n * @param {Event} event - browser event.\n * @group Emits\n */\n onClearClick = new EventEmitter();\n /**\n * Callback to invoke when a month is changed using the navigators.\n * @param {DatePickerMonthChangeEvent} event - custom month change event.\n * @group Emits\n */\n onMonthChange = new EventEmitter();\n /**\n * Callback to invoke when a year is changed using the navigators.\n * @param {DatePickerYearChangeEvent} event - custom year change event.\n * @group Emits\n */\n onYearChange = new EventEmitter();\n /**\n * Callback to invoke when clicked outside of the date panel.\n * @group Emits\n */\n onClickOutside = new EventEmitter();\n /**\n * Callback to invoke when datepicker panel is shown.\n * @group Emits\n */\n onShow = new EventEmitter();\n containerViewChild;\n inputfieldViewChild;\n set content(content) {\n this.contentViewChild = content;\n if (this.contentViewChild) {\n if (this.isMonthNavigate) {\n Promise.resolve(null).then(() => this.updateFocus());\n this.isMonthNavigate = false;\n }\n else {\n if (!this.focus && !this.inline) {\n this.initFocusableCell();\n }\n }\n }\n }\n _componentStyle = inject(DatePickerStyle);\n contentViewChild;\n value;\n dates;\n months;\n weekDays;\n currentMonth;\n currentYear;\n currentHour;\n currentMinute;\n currentSecond;\n pm;\n mask;\n maskClickListener;\n overlay;\n responsiveStyleElement;\n overlayVisible;\n onModelChange = () => { };\n onModelTouched = () => { };\n calendarElement;\n timePickerTimer;\n documentClickListener;\n animationEndListener;\n ticksTo1970;\n yearOptions;\n focus;\n isKeydown;\n filled;\n inputFieldValue = null;\n _minDate;\n _maxDate;\n _showTime;\n _yearRange;\n preventDocumentListener;\n dayClass(date) {\n return this._componentStyle.classes.day({ instance: this, date: date });\n }\n /**\n * Custom template for date cells.\n * @group Templates\n */\n dateTemplate;\n /**\n * Custom template for header section.\n * @group Templates\n */\n headerTemplate;\n /**\n * Custom template for footer section.\n * @group Templates\n */\n footerTemplate;\n /**\n * Custom template for disabled date cells.\n * @group Templates\n */\n disabledDateTemplate;\n /**\n * Custom template for decade view.\n * @group Templates\n */\n decadeTemplate;\n /**\n * Custom template for previous month icon.\n * @group Templates\n */\n previousIconTemplate;\n /**\n * Custom template for next month icon.\n * @group Templates\n */\n nextIconTemplate;\n /**\n * Custom template for trigger icon.\n * @group Templates\n */\n triggerIconTemplate;\n /**\n * Custom template for clear icon.\n * @group Templates\n */\n clearIconTemplate;\n /**\n * Custom template for decrement icon.\n * @group Templates\n */\n decrementIconTemplate;\n /**\n * Custom template for increment icon.\n * @group Templates\n */\n incrementIconTemplate;\n /**\n * Custom template for input icon.\n * @group Templates\n */\n inputIconTemplate;\n _dateTemplate;\n _headerTemplate;\n _footerTemplate;\n _disabledDateTemplate;\n _decadeTemplate;\n _previousIconTemplate;\n _nextIconTemplate;\n _triggerIconTemplate;\n _clearIconTemplate;\n _decrementIconTemplate;\n _incrementIconTemplate;\n _inputIconTemplate;\n _disabledDates;\n _disabledDays;\n selectElement;\n todayElement;\n focusElement;\n scrollHandler;\n documentResizeListener;\n navigationState = null;\n isMonthNavigate;\n initialized;\n translationSubscription;\n _locale;\n _responsiveOptions;\n currentView;\n attributeSelector;\n panelId;\n _numberOfMonths = 1;\n _firstDayOfWeek;\n _view = 'date';\n preventFocus;\n _defaultDate;\n _focusKey = null;\n window;\n get locale() {\n return this._locale;\n }\n get iconButtonAriaLabel() {\n return this.iconAriaLabel ? this.iconAriaLabel : this.getTranslation('chooseDate');\n }\n get prevIconAriaLabel() {\n return this.currentView === 'year' ? this.getTranslation('prevDecade') : this.currentView === 'month' ? this.getTranslation('prevYear') : this.getTranslation('prevMonth');\n }\n get nextIconAriaLabel() {\n return this.currentView === 'year' ? this.getTranslation('nextDecade') : this.currentView === 'month' ? this.getTranslation('nextYear') : this.getTranslation('nextMonth');\n }\n get rootClass() {\n return this._componentStyle.classes.root({ instance: this });\n }\n get panelClass() {\n return this._componentStyle.classes.panel({ instance: this });\n }\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return this.fluid || !!fluidComponent;\n }\n constructor(zone, overlayService) {\n super();\n this.zone = zone;\n this.overlayService = overlayService;\n this.window = this.document.defaultView;\n }\n ngOnInit() {\n super.ngOnInit();\n this.attributeSelector = uuid('pn_id_');\n this.panelId = this.attributeSelector + '_panel';\n const date = this.defaultDate || new Date();\n this.createResponsiveStyle();\n this.currentMonth = date.getMonth();\n this.currentYear = date.getFullYear();\n this.yearOptions = [];\n this.currentView = this.view;\n if (this.view === 'date') {\n this.createWeekDays();\n this.initTime(date);\n this.createMonths(this.currentMonth, this.currentYear);\n this.ticksTo1970 = ((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000;\n }\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.createWeekDays();\n this.cd.markForCheck();\n });\n this.initialized = true;\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.inline) {\n this.contentViewChild && this.contentViewChild.nativeElement.setAttribute(this.attributeSelector, '');\n if (!this.disabled && !this.inline) {\n this.initFocusableCell();\n if (this.numberOfMonths === 1) {\n if (this.contentViewChild && this.contentViewChild.nativeElement) {\n this.contentViewChild.nativeElement.style.width = getOuterWidth(this.containerViewChild?.nativeElement) + 'px';\n }\n }\n }\n }\n }\n templates;\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'date':\n this._dateTemplate = item.template;\n break;\n case 'decade':\n this._decadeTemplate = item.template;\n break;\n case 'disabledDate':\n this._disabledDateTemplate = item.template;\n break;\n case 'header':\n this._headerTemplate = item.template;\n break;\n case 'inputicon':\n this._inputIconTemplate = item.template;\n break;\n case 'previousicon':\n this._previousIconTemplate = item.template;\n break;\n case 'nexticon':\n this._nextIconTemplate = item.template;\n break;\n case 'triggericon':\n this._triggerIconTemplate = item.template;\n break;\n case 'clearicon':\n this._clearIconTemplate = item.template;\n break;\n case 'decrementicon':\n this._decrementIconTemplate = item.template;\n break;\n case 'incrementicon':\n this._incrementIconTemplate = item.template;\n break;\n case 'footer':\n this._footerTemplate = item.template;\n break;\n default:\n this._dateTemplate = item.template;\n break;\n }\n });\n }\n getTranslation(option) {\n return this.config.getTranslation(option);\n }\n populateYearOptions(start, end) {\n this.yearOptions = [];\n for (let i = start; i <= end; i++) {\n this.yearOptions.push(i);\n }\n }\n createWeekDays() {\n this.weekDays = [];\n let dayIndex = this.getFirstDateOfWeek();\n let dayLabels = this.getTranslation(TranslationKeys.DAY_NAMES_MIN);\n for (let i = 0; i < 7; i++) {\n this.weekDays.push(dayLabels[dayIndex]);\n dayIndex = dayIndex == 6 ? 0 : ++dayIndex;\n }\n }\n monthPickerValues() {\n let monthPickerValues = [];\n for (let i = 0; i <= 11; i++) {\n monthPickerValues.push(this.config.getTranslation('monthNamesShort')[i]);\n }\n return monthPickerValues;\n }\n yearPickerValues() {\n let yearPickerValues = [];\n let base = this.currentYear - (this.currentYear % 10);\n for (let i = 0; i < 10; i++) {\n yearPickerValues.push(base + i);\n }\n return yearPickerValues;\n }\n createMonths(month, year) {\n this.months = this.months = [];\n for (let i = 0; i < this.numberOfMonths; i++) {\n let m = month + i;\n let y = year;\n if (m > 11) {\n m = (m % 11) - 1;\n y = year + 1;\n }\n this.months.push(this.createMonth(m, y));\n }\n }\n getWeekNumber(date) {\n let checkDate = new Date(date.getTime());\n if (this.startWeekFromFirstDayOfYear) {\n let firstDayOfWeek = +this.getFirstDateOfWeek();\n checkDate.setDate(checkDate.getDate() + 6 + firstDayOfWeek - checkDate.getDay());\n }\n else {\n checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));\n }\n let time = checkDate.getTime();\n checkDate.setMonth(0);\n checkDate.setDate(1);\n return Math.floor(Math.round((time - checkDate.getTime()) / 86400000) / 7) + 1;\n }\n createMonth(month, year) {\n let dates = [];\n let firstDay = this.getFirstDayOfMonthIndex(month, year);\n let daysLength = this.getDaysCountInMonth(month, year);\n let prevMonthDaysLength = this.getDaysCountInPrevMonth(month, year);\n let dayNo = 1;\n let today = new Date();\n let weekNumbers = [];\n let monthRows = Math.ceil((daysLength + firstDay) / 7);\n for (let i = 0; i < monthRows; i++) {\n let week = [];\n if (i == 0) {\n for (let j = prevMonthDaysLength - firstDay + 1; j <= prevMonthDaysLength; j++) {\n let prev = this.getPreviousMonthAndYear(month, year);\n week.push({\n day: j,\n month: prev.month,\n year: prev.year,\n otherMonth: true,\n today: this.isToday(today, j, prev.month, prev.year),\n selectable: this.isSelectable(j, prev.month, prev.year, true)\n });\n }\n let remainingDaysLength = 7 - week.length;\n for (let j = 0; j < remainingDaysLength; j++) {\n week.push({\n day: dayNo,\n month: month,\n year: year,\n today: this.isToday(today, dayNo, month, year),\n selectable: this.isSelectable(dayNo, month, year, false)\n });\n dayNo++;\n }\n }\n else {\n for (let j = 0; j < 7; j++) {\n if (dayNo > daysLength) {\n let next = this.getNextMonthAndYear(month, year);\n week.push({\n day: dayNo - daysLength,\n month: next.month,\n year: next.year,\n otherMonth: true,\n today: this.isToday(today, dayNo - daysLength, next.month, next.year),\n selectable: this.isSelectable(dayNo - daysLength, next.month, next.year, true)\n });\n }\n else {\n week.push({\n day: dayNo,\n month: month,\n year: year,\n today: this.isToday(today, dayNo, month, year),\n selectable: this.isSelectable(dayNo, month, year, false)\n });\n }\n dayNo++;\n }\n }\n if (this.showWeek) {\n weekNumbers.push(this.getWeekNumber(new Date(week[0].year, week[0].month, week[0].day)));\n }\n dates.push(week);\n }\n return {\n month: month,\n year: year,\n dates: dates,\n weekNumbers: weekNumbers\n };\n }\n initTime(date) {\n this.pm = date.getHours() > 11;\n if (this.showTime) {\n this.currentMinute = date.getMinutes();\n this.currentSecond = date.getSeconds();\n this.setCurrentHourPM(date.getHours());\n }\n else if (this.timeOnly) {\n this.currentMinute = 0;\n this.currentHour = 0;\n this.currentSecond = 0;\n }\n }\n navBackward(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n this.isMonthNavigate = true;\n if (this.currentView === 'month') {\n this.decrementYear();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n }\n else if (this.currentView === 'year') {\n this.decrementDecade();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n }\n else {\n if (this.currentMonth === 0) {\n this.currentMonth = 11;\n this.decrementYear();\n }\n else {\n this.currentMonth--;\n }\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n navForward(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n this.isMonthNavigate = true;\n if (this.currentView === 'month') {\n this.incrementYear();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n }\n else if (this.currentView === 'year') {\n this.incrementDecade();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n }\n else {\n if (this.currentMonth === 11) {\n this.currentMonth = 0;\n this.incrementYear();\n }\n else {\n this.currentMonth++;\n }\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n decrementYear() {\n this.currentYear--;\n let _yearOptions = this.yearOptions;\n if (this.yearNavigator && this.currentYear < _yearOptions[0]) {\n let difference = _yearOptions[_yearOptions.length - 1] - _yearOptions[0];\n this.populateYearOptions(_yearOptions[0] - difference, _yearOptions[_yearOptions.length - 1] - difference);\n }\n }\n decrementDecade() {\n this.currentYear = this.currentYear - 10;\n }\n incrementDecade() {\n this.currentYear = this.currentYear + 10;\n }\n incrementYear() {\n this.currentYear++;\n let _yearOptions = this.yearOptions;\n if (this.yearNavigator && this.currentYear > _yearOptions[_yearOptions.length - 1]) {\n let difference = _yearOptions[_yearOptions.length - 1] - _yearOptions[0];\n this.populateYearOptions(_yearOptions[0] + difference, _yearOptions[_yearOptions.length - 1] + difference);\n }\n }\n switchToMonthView(event) {\n this.setCurrentView('month');\n event.preventDefault();\n }\n switchToYearView(event) {\n this.setCurrentView('year');\n event.preventDefault();\n }\n onDateSelect(event, dateMeta) {\n if (this.disabled || !dateMeta.selectable) {\n event.preventDefault();\n return;\n }\n if (this.isMultipleSelection() && this.isSelected(dateMeta)) {\n this.value = this.value.filter((date, i) => {\n return !this.isDateEquals(date, dateMeta);\n });\n if (this.value.length === 0) {\n this.value = null;\n }\n this.updateModel(this.value);\n }\n else {\n if (this.shouldSelectDate(dateMeta)) {\n this.selectDate(dateMeta);\n }\n }\n if ((this.isSingleSelection() && this.hideOnDateTimeSelect) || (this.isRangeSelection() && this.value[1])) {\n setTimeout(() => {\n event.preventDefault();\n this.hideOverlay();\n if (this.mask) {\n this.disableModality();\n }\n this.cd.markForCheck();\n }, 150);\n }\n this.updateInputfield();\n event.preventDefault();\n }\n shouldSelectDate(dateMeta) {\n if (this.isMultipleSelection())\n return this.maxDateCount != null ? this.maxDateCount > (this.value ? this.value.length : 0) : true;\n else\n return true;\n }\n onMonthSelect(event, index) {\n if (this.view === 'month') {\n this.onDateSelect(event, { year: this.currentYear, month: index, day: 1, selectable: true });\n }\n else {\n this.currentMonth = index;\n this.createMonths(this.currentMonth, this.currentYear);\n this.setCurrentView('date');\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n }\n }\n onYearSelect(event, year) {\n if (this.view === 'year') {\n this.onDateSelect(event, { year: year, month: 0, day: 1, selectable: true });\n }\n else {\n this.currentYear = year;\n this.setCurrentView('month');\n this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n }\n }\n updateInputfield() {\n let formattedValue = '';\n if (this.value) {\n if (this.isSingleSelection()) {\n formattedValue = this.formatDateTime(this.value);\n }\n else if (this.isMultipleSelection()) {\n for (let i = 0; i < this.value.length; i++) {\n let dateAsString = this.formatDateTime(this.value[i]);\n formattedValue += dateAsString;\n if (i !== this.value.length - 1) {\n formattedValue += this.multipleSeparator + ' ';\n }\n }\n }\n else if (this.isRangeSelection()) {\n if (this.value && this.value.length) {\n let startDate = this.value[0];\n let endDate = this.value[1];\n formattedValue = this.formatDateTime(startDate);\n if (endDate) {\n formattedValue += ' ' + this.rangeSeparator + ' ' + this.formatDateTime(endDate);\n }\n }\n }\n }\n this.inputFieldValue = formattedValue;\n this.updateFilledState();\n if (this.inputfieldViewChild && this.inputfieldViewChild.nativeElement) {\n this.inputfieldViewChild.nativeElement.value = this.inputFieldValue;\n }\n }\n formatDateTime(date) {\n let formattedValue = this.keepInvalid ? date : null;\n const isDateValid = this.isValidDateForTimeConstraints(date);\n if (this.isValidDate(date)) {\n if (this.timeOnly) {\n formattedValue = this.formatTime(date);\n }\n else {\n formattedValue = this.formatDate(date, this.getDateFormat());\n if (this.showTime) {\n formattedValue += ' ' + this.formatTime(date);\n }\n }\n }\n else if (this.dataType === 'string') {\n formattedValue = date;\n }\n formattedValue = isDateValid ? formattedValue : '';\n return formattedValue;\n }\n formatDateMetaToDate(dateMeta) {\n return new Date(dateMeta.year, dateMeta.month, dateMeta.day);\n }\n formatDateKey(date) {\n return `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;\n }\n setCurrentHourPM(hours) {\n if (this.hourFormat == '12') {\n this.pm = hours > 11;\n if (hours >= 12) {\n this.currentHour = hours == 12 ? 12 : hours - 12;\n }\n else {\n this.currentHour = hours == 0 ? 12 : hours;\n }\n }\n else {\n this.currentHour = hours;\n }\n }\n setCurrentView(currentView) {\n this.currentView = currentView;\n this.cd.detectChanges();\n this.alignOverlay();\n }\n selectDate(dateMeta) {\n let date = this.formatDateMetaToDate(dateMeta);\n if (this.showTime) {\n if (this.hourFormat == '12') {\n if (this.currentHour === 12)\n date.setHours(this.pm ? 12 : 0);\n else\n date.setHours(this.pm ? this.currentHour + 12 : this.currentHour);\n }\n else {\n date.setHours(this.currentHour);\n }\n date.setMinutes(this.currentMinute);\n date.setSeconds(this.currentSecond);\n }\n if (this.minDate && this.minDate > date) {\n date = this.minDate;\n this.setCurrentHourPM(date.getHours());\n this.currentMinute = date.getMinutes();\n this.currentSecond = date.getSeconds();\n }\n if (this.maxDate && this.maxDate < date) {\n date = this.maxDate;\n this.setCurrentHourPM(date.getHours());\n this.currentMinute = date.getMinutes();\n this.currentSecond = date.getSeconds();\n }\n if (this.isSingleSelection()) {\n this.updateModel(date);\n }\n else if (this.isMultipleSelection()) {\n this.updateModel(this.value ? [...this.value, date] : [date]);\n }\n else if (this.isRangeSelection()) {\n if (this.value && this.value.length) {\n let startDate = this.value[0];\n let endDate = this.value[1];\n if (!endDate && date.getTime() >= startDate.getTime()) {\n endDate = date;\n }\n else {\n startDate = date;\n endDate = null;\n }\n this.updateModel([startDate, endDate]);\n }\n else {\n this.updateModel([date, null]);\n }\n }\n this.onSelect.emit(date);\n }\n updateModel(value) {\n this.value = value;\n if (this.dataType == 'date') {\n this.onModelChange(this.value);\n }\n else if (this.dataType == 'string') {\n if (this.isSingleSelection()) {\n this.onModelChange(this.formatDateTime(this.value));\n }\n else {\n let stringArrValue = null;\n if (Array.isArray(this.value)) {\n stringArrValue = this.value.map((date) => this.formatDateTime(date));\n }\n this.onModelChange(stringArrValue);\n }\n }\n }\n getFirstDayOfMonthIndex(month, year) {\n let day = new Date();\n day.setDate(1);\n day.setMonth(month);\n day.setFullYear(year);\n let dayIndex = day.getDay() + this.getSundayIndex();\n return dayIndex >= 7 ? dayIndex - 7 : dayIndex;\n }\n getDaysCountInMonth(month, year) {\n return 32 - this.daylightSavingAdjust(new Date(year, month, 32)).getDate();\n }\n getDaysCountInPrevMonth(month, year) {\n let prev = this.getPreviousMonthAndYear(month, year);\n return this.getDaysCountInMonth(prev.month, prev.year);\n }\n getPreviousMonthAndYear(month, year) {\n let m, y;\n if (month === 0) {\n m = 11;\n y = year - 1;\n }\n else {\n m = month - 1;\n y = year;\n }\n return { month: m, year: y };\n }\n getNextMonthAndYear(month, year) {\n let m, y;\n if (month === 11) {\n m = 0;\n y = year + 1;\n }\n else {\n m = month + 1;\n y = year;\n }\n return { month: m, year: y };\n }\n getSundayIndex() {\n let firstDayOfWeek = this.getFirstDateOfWeek();\n return firstDayOfWeek > 0 ? 7 - firstDayOfWeek : 0;\n }\n isSelected(dateMeta) {\n if (this.value) {\n if (this.isSingleSelection()) {\n return this.isDateEquals(this.value, dateMeta);\n }\n else if (this.isMultipleSelection()) {\n let selected = false;\n for (let date of this.value) {\n selected = this.isDateEquals(date, dateMeta);\n if (selected) {\n break;\n }\n }\n return selected;\n }\n else if (this.isRangeSelection()) {\n if (this.value[1])\n return this.isDateEquals(this.value[0], dateMeta) || this.isDateEquals(this.value[1], dateMeta) || this.isDateBetween(this.value[0], this.value[1], dateMeta);\n else\n return this.isDateEquals(this.value[0], dateMeta);\n }\n }\n else {\n return false;\n }\n }\n isComparable() {\n return this.value != null && typeof this.value !== 'string';\n }\n isMonthSelected(month) {\n if (this.isComparable() && !this.isMultipleSelection()) {\n const [start, end] = this.isRangeSelection() ? this.value : [this.value, this.value];\n const selected = new Date(this.currentYear, month, 1);\n return selected >= start && selected <= (end ?? start);\n }\n return false;\n }\n isMonthDisabled(month, year) {\n const yearToCheck = year ?? this.currentYear;\n for (let day = 1; day < this.getDaysCountInMonth(month, yearToCheck) + 1; day++) {\n if (this.isSelectable(day, month, yearToCheck, false)) {\n return false;\n }\n }\n return true;\n }\n isYearDisabled(year) {\n return Array(12)\n .fill(0)\n .every((v, month) => this.isMonthDisabled(month, year));\n }\n isYearSelected(year) {\n if (this.isComparable()) {\n let value = this.isRangeSelection() ? this.value[0] : this.value;\n return !this.isMultipleSelection() ? value.getFullYear() === year : false;\n }\n return false;\n }\n isDateEquals(value, dateMeta) {\n if (value && isDate(value))\n return value.getDate() === dateMeta.day && value.getMonth() === dateMeta.month && value.getFullYear() === dateMeta.year;\n else\n return false;\n }\n isDateBetween(start, end, dateMeta) {\n let between = false;\n if (isDate(start) && isDate(end)) {\n let date = this.formatDateMetaToDate(dateMeta);\n return start.getTime() <= date.getTime() && end.getTime() >= date.getTime();\n }\n return between;\n }\n isSingleSelection() {\n return this.selectionMode === 'single';\n }\n isRangeSelection() {\n return this.selectionMode === 'range';\n }\n isMultipleSelection() {\n return this.selectionMode === 'multiple';\n }\n isToday(today, day, month, year) {\n return today.getDate() === day && today.getMonth() === month && today.getFullYear() === year;\n }\n isSelectable(day, month, year, otherMonth) {\n let validMin = true;\n let validMax = true;\n let validDate = true;\n let validDay = true;\n if (otherMonth && !this.selectOtherMonths) {\n return false;\n }\n if (this.minDate) {\n if (this.minDate.getFullYear() > year) {\n validMin = false;\n }\n else if (this.minDate.getFullYear() === year && this.currentView != 'year') {\n if (this.minDate.getMonth() > month) {\n validMin = false;\n }\n else if (this.minDate.getMonth() === month) {\n if (this.minDate.getDate() > day) {\n validMin = false;\n }\n }\n }\n }\n if (this.maxDate) {\n if (this.maxDate.getFullYear() < year) {\n validMax = false;\n }\n else if (this.maxDate.getFullYear() === year) {\n if (this.maxDate.getMonth() < month) {\n validMax = false;\n }\n else if (this.maxDate.getMonth() === month) {\n if (this.maxDate.getDate() < day) {\n validMax = false;\n }\n }\n }\n }\n if (this.disabledDates) {\n validDate = !this.isDateDisabled(day, month, year);\n }\n if (this.disabledDays) {\n validDay = !this.isDayDisabled(day, month, year);\n }\n return validMin && validMax && validDate && validDay;\n }\n isDateDisabled(day, month, year) {\n if (this.disabledDates) {\n for (let disabledDate of this.disabledDates) {\n if (disabledDate.getFullYear() === year && disabledDate.getMonth() === month && disabledDate.getDate() === day) {\n return true;\n }\n }\n }\n return false;\n }\n isDayDisabled(day, month, year) {\n if (this.disabledDays) {\n let weekday = new Date(year, month, day);\n let weekdayNumber = weekday.getDay();\n return this.disabledDays.indexOf(weekdayNumber) !== -1;\n }\n return false;\n }\n onInputFocus(event) {\n this.focus = true;\n if (this.showOnFocus) {\n this.showOverlay();\n }\n this.onFocus.emit(event);\n }\n onInputClick() {\n if (this.showOnFocus && !this.overlayVisible) {\n this.showOverlay();\n }\n }\n onInputBlur(event) {\n this.focus = false;\n this.onBlur.emit(event);\n if (!this.keepInvalid) {\n this.updateInputfield();\n }\n this.onModelTouched();\n }\n onButtonClick(event, inputfield = this.inputfieldViewChild?.nativeElement) {\n if (!this.overlayVisible) {\n inputfield.focus();\n this.showOverlay();\n }\n else {\n this.hideOverlay();\n }\n }\n clear() {\n this.inputFieldValue = null;\n this.value = null;\n this.onModelChange(this.value);\n this.onClear.emit();\n }\n onOverlayClick(event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\n }\n getMonthName(index) {\n return this.config.getTranslation('monthNames')[index];\n }\n getYear(month) {\n return this.currentView === 'month' ? this.currentYear : month.year;\n }\n switchViewButtonDisabled() {\n return this.numberOfMonths > 1 || this.disabled;\n }\n onPrevButtonClick(event) {\n this.navigationState = { backward: true, button: true };\n this.navBackward(event);\n }\n onNextButtonClick(event) {\n this.navigationState = { backward: false, button: true };\n this.navForward(event);\n }\n onContainerButtonKeydown(event) {\n switch (event.which) {\n //tab\n case 9:\n if (!this.inline) {\n this.trapFocus(event);\n }\n if (this.inline) {\n const headerElements = findSingle(this.containerViewChild?.nativeElement, '.p-datepicker-header');\n const element = event.target;\n if (this.timeOnly) {\n return;\n }\n else {\n if (element == headerElements.children[headerElements?.children?.length - 1]) {\n this.initFocusableCell();\n }\n }\n }\n break;\n //escape\n case 27:\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n default:\n //Noop\n break;\n }\n }\n onInputKeydown(event) {\n this.isKeydown = true;\n if (event.keyCode === 40 && this.contentViewChild) {\n this.trapFocus(event);\n }\n else if (event.keyCode === 27) {\n if (this.overlayVisible) {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n }\n }\n else if (event.keyCode === 13) {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n event.preventDefault();\n }\n }\n else if (event.keyCode === 9 && this.contentViewChild) {\n getFocusableElements(this.contentViewChild.nativeElement).forEach((el) => (el.tabIndex = '-1'));\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n }\n }\n onDateCellKeydown(event, dateMeta, groupIndex) {\n const cellContent = event.currentTarget;\n const cell = cellContent.parentElement;\n const currentDate = this.formatDateMetaToDate(dateMeta);\n switch (event.which) {\n //down arrow\n case 40: {\n cellContent.tabIndex = '-1';\n let cellIndex = getIndex(cell);\n let nextRow = cell.parentElement.nextElementSibling;\n if (nextRow) {\n let focusCell = nextRow.children[cellIndex].children[0];\n if (hasClass(focusCell, 'p-disabled')) {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n else {\n nextRow.children[cellIndex].children[0].tabIndex = '0';\n nextRow.children[cellIndex].children[0].focus();\n }\n }\n else {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n event.preventDefault();\n break;\n }\n //up arrow\n case 38: {\n cellContent.tabIndex = '-1';\n let cellIndex = getIndex(cell);\n let prevRow = cell.parentElement.previousElementSibling;\n if (prevRow) {\n let focusCell = prevRow.children[cellIndex].children[0];\n if (hasClass(focusCell, 'p-disabled')) {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n else {\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n else {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n event.preventDefault();\n break;\n }\n //left arrow\n case 37: {\n cellContent.tabIndex = '-1';\n let prevCell = cell.previousElementSibling;\n if (prevCell) {\n let focusCell = prevCell.children[0];\n if (hasClass(focusCell, 'p-disabled') || hasClass(focusCell.parentElement, 'p-datepicker-weeknumber')) {\n this.navigateToMonth(true, groupIndex);\n }\n else {\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n else {\n this.navigateToMonth(true, groupIndex);\n }\n event.preventDefault();\n break;\n }\n //right arrow\n case 39: {\n cellContent.tabIndex = '-1';\n let nextCell = cell.nextElementSibling;\n if (nextCell) {\n let focusCell = nextCell.children[0];\n if (hasClass(focusCell, 'p-disabled')) {\n this.navigateToMonth(false, groupIndex);\n }\n else {\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n else {\n this.navigateToMonth(false, groupIndex);\n }\n event.preventDefault();\n break;\n }\n //enter\n //space\n case 13:\n case 32: {\n this.onDateSelect(event, dateMeta);\n event.preventDefault();\n break;\n }\n //escape\n case 27: {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n }\n //tab\n case 9: {\n if (!this.inline) {\n this.trapFocus(event);\n }\n break;\n }\n // page up\n case 33: {\n cellContent.tabIndex = '-1';\n const dateToFocus = new Date(currentDate.getFullYear(), currentDate.getMonth() - 1, currentDate.getDate());\n const focusKey = this.formatDateKey(dateToFocus);\n this.navigateToMonth(true, groupIndex, `span[data-date='${focusKey}']:not(.p-disabled):not(.p-ink)`);\n event.preventDefault();\n break;\n }\n // page down\n case 34: {\n cellContent.tabIndex = '-1';\n const dateToFocus = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, currentDate.getDate());\n const focusKey = this.formatDateKey(dateToFocus);\n this.navigateToMonth(false, groupIndex, `span[data-date='${focusKey}']:not(.p-disabled):not(.p-ink)`);\n event.preventDefault();\n break;\n }\n //home\n case 36:\n cellContent.tabIndex = '-1';\n const firstDayDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n const firstDayDateKey = this.formatDateKey(firstDayDate);\n const firstDayCell = findSingle(cellContent.offsetParent, `span[data-date='${firstDayDateKey}']:not(.p-disabled):not(.p-ink)`);\n if (firstDayCell) {\n firstDayCell.tabIndex = '0';\n firstDayCell.focus();\n }\n event.preventDefault();\n break;\n //end\n case 35:\n cellContent.tabIndex = '-1';\n const lastDayDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n const lastDayDateKey = this.formatDateKey(lastDayDate);\n const lastDayCell = findSingle(cellContent.offsetParent, `span[data-date='${lastDayDateKey}']:not(.p-disabled):not(.p-ink)`);\n if (lastDayDate) {\n lastDayCell.tabIndex = '0';\n lastDayCell.focus();\n }\n event.preventDefault();\n break;\n default:\n //no op\n break;\n }\n }\n onMonthCellKeydown(event, index) {\n const cell = event.currentTarget;\n switch (event.which) {\n //arrows\n case 38:\n case 40: {\n cell.tabIndex = '-1';\n var cells = cell.parentElement.children;\n var cellIndex = getIndex(cell);\n let nextCell = cells[event.which === 40 ? cellIndex + 3 : cellIndex - 3];\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n event.preventDefault();\n break;\n }\n //left arrow\n case 37: {\n cell.tabIndex = '-1';\n let prevCell = cell.previousElementSibling;\n if (prevCell) {\n prevCell.tabIndex = '0';\n prevCell.focus();\n }\n else {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n event.preventDefault();\n break;\n }\n //right arrow\n case 39: {\n cell.tabIndex = '-1';\n let nextCell = cell.nextElementSibling;\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n else {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n event.preventDefault();\n break;\n }\n //enter\n //space\n case 13:\n case 32: {\n this.onMonthSelect(event, index);\n event.preventDefault();\n break;\n }\n //escape\n case 27: {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n }\n //tab\n case 9: {\n if (!this.inline) {\n this.trapFocus(event);\n }\n break;\n }\n default:\n //no op\n break;\n }\n }\n onYearCellKeydown(event, index) {\n const cell = event.currentTarget;\n switch (event.which) {\n //arrows\n case 38:\n case 40: {\n cell.tabIndex = '-1';\n var cells = cell.parentElement.children;\n var cellIndex = getIndex(cell);\n let nextCell = cells[event.which === 40 ? cellIndex + 2 : cellIndex - 2];\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n event.preventDefault();\n break;\n }\n //left arrow\n case 37: {\n cell.tabIndex = '-1';\n let prevCell = cell.previousElementSibling;\n if (prevCell) {\n prevCell.tabIndex = '0';\n prevCell.focus();\n }\n else {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n event.preventDefault();\n break;\n }\n //right arrow\n case 39: {\n cell.tabIndex = '-1';\n let nextCell = cell.nextElementSibling;\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n else {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n event.preventDefault();\n break;\n }\n //enter\n //space\n case 13:\n case 32: {\n this.onYearSelect(event, index);\n event.preventDefault();\n break;\n }\n //escape\n case 27: {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n }\n //tab\n case 9: {\n this.trapFocus(event);\n break;\n }\n default:\n //no op\n break;\n }\n }\n navigateToMonth(prev, groupIndex, focusKey) {\n if (prev) {\n if (this.numberOfMonths === 1 || groupIndex === 0) {\n this.navigationState = { backward: true };\n this._focusKey = focusKey;\n this.navBackward(event);\n }\n else {\n let prevMonthContainer = this.contentViewChild.nativeElement.children[groupIndex - 1];\n if (focusKey) {\n const firstDayCell = findSingle(prevMonthContainer, focusKey);\n firstDayCell.tabIndex = '0';\n firstDayCell.focus();\n }\n else {\n let cells = find(prevMonthContainer, '.p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)');\n let focusCell = cells[cells.length - 1];\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n }\n else {\n if (this.numberOfMonths === 1 || groupIndex === this.numberOfMonths - 1) {\n this.navigationState = { backward: false };\n this._focusKey = focusKey;\n this.navForward(event);\n }\n else {\n let nextMonthContainer = this.contentViewChild.nativeElement.children[groupIndex + 1];\n if (focusKey) {\n const firstDayCell = findSingle(nextMonthContainer, focusKey);\n firstDayCell.tabIndex = '0';\n firstDayCell.focus();\n }\n else {\n let focusCell = findSingle(nextMonthContainer, '.p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)');\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n }\n }\n updateFocus() {\n let cell;\n if (this.navigationState) {\n if (this.navigationState.button) {\n this.initFocusableCell();\n if (this.navigationState.backward)\n findSingle(this.contentViewChild.nativeElement, '.p-datepicker-prev-button').focus();\n else\n findSingle(this.contentViewChild.nativeElement, '.p-datepicker-next-button').focus();\n }\n else {\n if (this.navigationState.backward) {\n let cells;\n if (this.currentView === 'month') {\n cells = find(this.contentViewChild.nativeElement, '.p-monthpicker .p-monthpicker-month:not(.p-disabled)');\n }\n else if (this.currentView === 'year') {\n cells = find(this.contentViewChild.nativeElement, '.p-yearpicker .p-yearpicker-year:not(.p-disabled)');\n }\n else {\n cells = find(this.contentViewChild.nativeElement, this._focusKey || '.p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)');\n }\n if (cells && cells.length > 0) {\n cell = cells[cells.length - 1];\n }\n }\n else {\n if (this.currentView === 'month') {\n cell = findSingle(this.contentViewChild.nativeElement, '.p-monthpicker .p-monthpicker-month:not(.p-disabled)');\n }\n else if (this.currentView === 'year') {\n cell = findSingle(this.contentViewChild.nativeElement, '.p-yearpicker .p-yearpicker-year:not(.p-disabled)');\n }\n else {\n cell = findSingle(this.contentViewChild.nativeElement, this._focusKey || '.p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)');\n }\n }\n if (cell) {\n cell.tabIndex = '0';\n cell.focus();\n }\n }\n this.navigationState = null;\n this._focusKey = null;\n }\n else {\n this.initFocusableCell();\n }\n }\n initFocusableCell() {\n const contentEl = this.contentViewChild?.nativeElement;\n let cell;\n if (this.currentView === 'month') {\n let cells = find(contentEl, '.p-monthpicker .p-monthpicker-month:not(.p-disabled)');\n let selectedCell = findSingle(contentEl, '.p-monthpicker .p-monthpicker-month.p-highlight');\n cells.forEach((cell) => (cell.tabIndex = -1));\n cell = selectedCell || cells[0];\n if (cells.length === 0) {\n let disabledCells = find(contentEl, '.p-monthpicker .p-monthpicker-month.p-disabled[tabindex = \"0\"]');\n disabledCells.forEach((cell) => (cell.tabIndex = -1));\n }\n }\n else if (this.currentView === 'year') {\n let cells = find(contentEl, '.p-yearpicker .p-yearpicker-year:not(.p-disabled)');\n let selectedCell = findSingle(contentEl, '.p-yearpicker .p-yearpicker-year.p-highlight');\n cells.forEach((cell) => (cell.tabIndex = -1));\n cell = selectedCell || cells[0];\n if (cells.length === 0) {\n let disabledCells = find(contentEl, '.p-yearpicker .p-yearpicker-year.p-disabled[tabindex = \"0\"]');\n disabledCells.forEach((cell) => (cell.tabIndex = -1));\n }\n }\n else {\n cell = findSingle(contentEl, 'span.p-highlight');\n if (!cell) {\n let todayCell = findSingle(contentEl, 'td.p-datepicker-today span:not(.p-disabled):not(.p-ink)');\n if (todayCell)\n cell = todayCell;\n else\n cell = findSingle(contentEl, '.p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)');\n }\n }\n if (cell) {\n cell.tabIndex = '0';\n if (!this.preventFocus && (!this.navigationState || !this.navigationState.button)) {\n setTimeout(() => {\n if (!this.disabled) {\n cell.focus();\n }\n }, 1);\n }\n this.preventFocus = false;\n }\n }\n trapFocus(event) {\n let focusableElements = getFocusableElements(this.contentViewChild.nativeElement);\n if (focusableElements && focusableElements.length > 0) {\n if (!focusableElements[0].ownerDocument.activeElement) {\n focusableElements[0].focus();\n }\n else {\n let focusedIndex = focusableElements.indexOf(focusableElements[0].ownerDocument.activeElement);\n if (event.shiftKey) {\n if (focusedIndex == -1 || focusedIndex === 0) {\n if (this.focusTrap) {\n focusableElements[focusableElements.length - 1].focus();\n }\n else {\n if (focusedIndex === -1)\n return this.hideOverlay();\n else if (focusedIndex === 0)\n return;\n }\n }\n else {\n focusableElements[focusedIndex - 1].focus();\n }\n }\n else {\n if (focusedIndex == -1) {\n if (this.timeOnly) {\n focusableElements[0].focus();\n }\n else {\n let spanIndex = 0;\n for (let i = 0; i < focusableElements.length; i++) {\n if (focusableElements[i].tagName === 'SPAN')\n spanIndex = i;\n }\n focusableElements[spanIndex].focus();\n }\n }\n else if (focusedIndex === focusableElements.length - 1) {\n if (!this.focusTrap && focusedIndex != -1)\n return this.hideOverlay();\n focusableElements[0].focus();\n }\n else {\n focusableElements[focusedIndex + 1].focus();\n }\n }\n }\n }\n event.preventDefault();\n }\n onMonthDropdownChange(m) {\n this.currentMonth = parseInt(m);\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n onYearDropdownChange(y) {\n this.currentYear = parseInt(y);\n this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n convertTo24Hour(hours, pm) {\n //@ts-ignore\n if (this.hourFormat == '12') {\n if (hours === 12) {\n return pm ? 12 : 0;\n }\n else {\n return pm ? hours + 12 : hours;\n }\n }\n return hours;\n }\n constrainTime(hour, minute, second, pm) {\n let returnTimeTriple = [hour, minute, second];\n let minHoursExceeds12;\n let value = this.value;\n const convertedHour = this.convertTo24Hour(hour, pm);\n const isRange = this.isRangeSelection(), isMultiple = this.isMultipleSelection(), isMultiValue = isRange || isMultiple;\n if (isMultiValue) {\n if (!this.value) {\n this.value = [new Date(), new Date()];\n }\n if (isRange) {\n value = this.value[1] || this.value[0];\n }\n if (isMultiple) {\n value = this.value[this.value.length - 1];\n }\n }\n const valueDateString = value ? value.toDateString() : null;\n let isMinDate = this.minDate && valueDateString && this.minDate.toDateString() === valueDateString;\n let isMaxDate = this.maxDate && valueDateString && this.maxDate.toDateString() === valueDateString;\n if (isMinDate) {\n minHoursExceeds12 = this.minDate.getHours() >= 12;\n }\n switch (true // intentional fall through\n ) {\n case isMinDate && minHoursExceeds12 && this.minDate.getHours() === 12 && this.minDate.getHours() > convertedHour:\n returnTimeTriple[0] = 11;\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMinDate && !minHoursExceeds12 && this.minDate.getHours() - 1 === convertedHour && this.minDate.getHours() > convertedHour:\n returnTimeTriple[0] = 11;\n this.pm = true;\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMinDate && minHoursExceeds12 && this.minDate.getHours() > convertedHour && convertedHour !== 12:\n this.setCurrentHourPM(this.minDate.getHours());\n returnTimeTriple[0] = this.currentHour;\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMinDate && this.minDate.getHours() > convertedHour:\n returnTimeTriple[0] = this.minDate.getHours();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMaxDate && this.maxDate.getHours() < convertedHour:\n returnTimeTriple[0] = this.maxDate.getHours();\n case isMaxDate && this.maxDate.getHours() === convertedHour && this.maxDate.getMinutes() < minute:\n returnTimeTriple[1] = this.maxDate.getMinutes();\n case isMaxDate && this.maxDate.getHours() === convertedHour && this.maxDate.getMinutes() === minute && this.maxDate.getSeconds() < second:\n returnTimeTriple[2] = this.maxDate.getSeconds();\n break;\n }\n return returnTimeTriple;\n }\n incrementHour(event) {\n const prevHour = this.currentHour ?? 0;\n let newHour = (this.currentHour ?? 0) + this.stepHour;\n let newPM = this.pm;\n if (this.hourFormat == '24')\n newHour = newHour >= 24 ? newHour - 24 : newHour;\n else if (this.hourFormat == '12') {\n // Before the AM/PM break, now after\n if (prevHour < 12 && newHour > 11) {\n newPM = !this.pm;\n }\n newHour = newHour >= 13 ? newHour - 12 : newHour;\n }\n this.toggleAMPMIfNotMinDate(newPM);\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(newHour, this.currentMinute, this.currentSecond, newPM);\n event.preventDefault();\n }\n toggleAMPMIfNotMinDate(newPM) {\n let value = this.value;\n const valueDateString = value ? value.toDateString() : null;\n let isMinDate = this.minDate && valueDateString && this.minDate.toDateString() === valueDateString;\n if (isMinDate && this.minDate.getHours() >= 12) {\n this.pm = true;\n }\n else {\n this.pm = newPM;\n }\n }\n onTimePickerElementMouseDown(event, type, direction) {\n if (!this.disabled) {\n this.repeat(event, null, type, direction);\n event.preventDefault();\n }\n }\n onTimePickerElementMouseUp(event) {\n if (!this.disabled) {\n this.clearTimePickerTimer();\n this.updateTime();\n }\n }\n onTimePickerElementMouseLeave() {\n if (!this.disabled && this.timePickerTimer) {\n this.clearTimePickerTimer();\n this.updateTime();\n }\n }\n repeat(event, interval, type, direction) {\n let i = interval || 500;\n this.clearTimePickerTimer();\n this.timePickerTimer = setTimeout(() => {\n this.repeat(event, 100, type, direction);\n this.cd.markForCheck();\n }, i);\n switch (type) {\n case 0:\n if (direction === 1)\n this.incrementHour(event);\n else\n this.decrementHour(event);\n break;\n case 1:\n if (direction === 1)\n this.incrementMinute(event);\n else\n this.decrementMinute(event);\n break;\n case 2:\n if (direction === 1)\n this.incrementSecond(event);\n else\n this.decrementSecond(event);\n break;\n }\n this.updateInputfield();\n }\n clearTimePickerTimer() {\n if (this.timePickerTimer) {\n clearTimeout(this.timePickerTimer);\n this.timePickerTimer = null;\n }\n }\n decrementHour(event) {\n let newHour = (this.currentHour ?? 0) - this.stepHour;\n let newPM = this.pm;\n if (this.hourFormat == '24')\n newHour = newHour < 0 ? 24 + newHour : newHour;\n else if (this.hourFormat == '12') {\n // If we were at noon/midnight, then switch\n if (this.currentHour === 12) {\n newPM = !this.pm;\n }\n newHour = newHour <= 0 ? 12 + newHour : newHour;\n }\n this.toggleAMPMIfNotMinDate(newPM);\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(newHour, this.currentMinute, this.currentSecond, newPM);\n event.preventDefault();\n }\n incrementMinute(event) {\n let newMinute = (this.currentMinute ?? 0) + this.stepMinute;\n newMinute = newMinute > 59 ? newMinute - 60 : newMinute;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, newMinute, this.currentSecond, this.pm);\n event.preventDefault();\n }\n decrementMinute(event) {\n let newMinute = (this.currentMinute ?? 0) - this.stepMinute;\n newMinute = newMinute < 0 ? 60 + newMinute : newMinute;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, newMinute, this.currentSecond, this.pm);\n event.preventDefault();\n }\n incrementSecond(event) {\n let newSecond = this.currentSecond + this.stepSecond;\n newSecond = newSecond > 59 ? newSecond - 60 : newSecond;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, newSecond, this.pm);\n event.preventDefault();\n }\n decrementSecond(event) {\n let newSecond = this.currentSecond - this.stepSecond;\n newSecond = newSecond < 0 ? 60 + newSecond : newSecond;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, newSecond, this.pm);\n event.preventDefault();\n }\n updateTime() {\n let value = this.value;\n if (this.isRangeSelection()) {\n value = this.value[1] || this.value[0];\n }\n if (this.isMultipleSelection()) {\n value = this.value[this.value.length - 1];\n }\n value = value ? new Date(value.getTime()) : new Date();\n if (this.hourFormat == '12') {\n if (this.currentHour === 12)\n value.setHours(this.pm ? 12 : 0);\n else\n value.setHours(this.pm ? this.currentHour + 12 : this.currentHour);\n }\n else {\n value.setHours(this.currentHour);\n }\n value.setMinutes(this.currentMinute);\n value.setSeconds(this.currentSecond);\n if (this.isRangeSelection()) {\n if (this.value[1])\n value = [this.value[0], value];\n else\n value = [value, null];\n }\n if (this.isMultipleSelection()) {\n value = [...this.value.slice(0, -1), value];\n }\n this.updateModel(value);\n this.onSelect.emit(value);\n this.updateInputfield();\n }\n toggleAMPM(event) {\n const newPM = !this.pm;\n this.pm = newPM;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, this.currentSecond, newPM);\n this.updateTime();\n event.preventDefault();\n }\n onUserInput(event) {\n // IE 11 Workaround for input placeholder : https://github.com/primefaces/primeng/issues/2026\n if (!this.isKeydown) {\n return;\n }\n this.isKeydown = false;\n let val = event.target.value;\n try {\n let value = this.parseValueFromString(val);\n if (this.isValidSelection(value)) {\n this.updateModel(value);\n this.updateUI();\n }\n else if (this.keepInvalid) {\n this.updateModel(value);\n }\n }\n catch (err) {\n //invalid date\n let value = this.keepInvalid ? val : null;\n this.updateModel(value);\n }\n this.filled = (val != null && val.length);\n this.onInput.emit(event);\n }\n isValidSelection(value) {\n if (this.isSingleSelection()) {\n return this.isSelectable(value.getDate(), value.getMonth(), value.getFullYear(), false);\n }\n let isValid = value.every((v) => this.isSelectable(v.getDate(), v.getMonth(), v.getFullYear(), false));\n if (isValid && this.isRangeSelection()) {\n isValid = value.length === 1 || (value.length > 1 && value[1] >= value[0]);\n }\n return isValid;\n }\n parseValueFromString(text) {\n if (!text || text.trim().length === 0) {\n return null;\n }\n let value;\n if (this.isSingleSelection()) {\n value = this.parseDateTime(text);\n }\n else if (this.isMultipleSelection()) {\n let tokens = text.split(this.multipleSeparator);\n value = [];\n for (let token of tokens) {\n value.push(this.parseDateTime(token.trim()));\n }\n }\n else if (this.isRangeSelection()) {\n let tokens = text.split(' ' + this.rangeSeparator + ' ');\n value = [];\n for (let i = 0; i < tokens.length; i++) {\n value[i] = this.parseDateTime(tokens[i].trim());\n }\n }\n return value;\n }\n parseDateTime(text) {\n let date;\n let parts = text.split(' ');\n if (this.timeOnly) {\n date = new Date();\n this.populateTime(date, parts[0], parts[1]);\n }\n else {\n const dateFormat = this.getDateFormat();\n if (this.showTime) {\n let ampm = this.hourFormat == '12' ? parts.pop() : null;\n let timeString = parts.pop();\n date = this.parseDate(parts.join(' '), dateFormat);\n this.populateTime(date, timeString, ampm);\n }\n else {\n date = this.parseDate(text, dateFormat);\n }\n }\n return date;\n }\n populateTime(value, timeString, ampm) {\n if (this.hourFormat == '12' && !ampm) {\n throw 'Invalid Time';\n }\n this.pm = ampm === 'PM' || ampm === 'pm';\n let time = this.parseTime(timeString);\n value.setHours(time.hour);\n value.setMinutes(time.minute);\n value.setSeconds(time.second);\n }\n isValidDate(date) {\n return isDate(date) && isNotEmpty(date);\n }\n updateUI() {\n let propValue = this.value;\n if (Array.isArray(propValue)) {\n propValue = propValue.length === 2 ? propValue[1] : propValue[0];\n }\n let val = this.defaultDate && this.isValidDate(this.defaultDate) && !this.value ? this.defaultDate : propValue && this.isValidDate(propValue) ? propValue : new Date();\n this.currentMonth = val.getMonth();\n this.currentYear = val.getFullYear();\n this.createMonths(this.currentMonth, this.currentYear);\n if (this.showTime || this.timeOnly) {\n this.setCurrentHourPM(val.getHours());\n this.currentMinute = val.getMinutes();\n this.currentSecond = val.getSeconds();\n }\n }\n showOverlay() {\n if (!this.overlayVisible) {\n this.updateUI();\n if (!this.touchUI) {\n this.preventFocus = true;\n }\n this.overlayVisible = true;\n }\n }\n hideOverlay() {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n this.clearTimePickerTimer();\n if (this.touchUI) {\n this.disableModality();\n }\n this.cd.markForCheck();\n }\n toggle() {\n if (!this.inline) {\n if (!this.overlayVisible) {\n this.showOverlay();\n this.inputfieldViewChild?.nativeElement.focus();\n }\n else {\n this.hideOverlay();\n }\n }\n }\n onOverlayAnimationStart(event) {\n switch (event.toState) {\n case 'visible':\n case 'visibleTouchUI':\n if (!this.inline) {\n this.overlay = event.element;\n this.overlay?.setAttribute(this.attributeSelector, '');\n const styles = !this.inline ? { position: 'absolute', top: '0', left: '0' } : undefined;\n addStyle(this.overlay, styles);\n this.appendOverlay();\n this.updateFocus();\n if (this.autoZIndex) {\n if (this.touchUI)\n ZIndexUtils.set('modal', this.overlay, this.baseZIndex || this.config.zIndex.modal);\n else\n ZIndexUtils.set('overlay', this.overlay, this.baseZIndex || this.config.zIndex.overlay);\n }\n this.alignOverlay();\n this.onShow.emit(event);\n }\n break;\n case 'void':\n this.onOverlayHide();\n this.onClose.emit(event);\n break;\n }\n }\n onOverlayAnimationDone(event) {\n switch (event.toState) {\n case 'visible':\n case 'visibleTouchUI':\n if (!this.inline) {\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n }\n break;\n case 'void':\n if (this.autoZIndex) {\n ZIndexUtils.clear(event.element);\n }\n break;\n }\n }\n appendOverlay() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n this.document.body.appendChild(this.overlay);\n else\n appendChild(this.appendTo, this.overlay);\n }\n }\n restoreOverlayAppend() {\n if (this.overlay && this.appendTo) {\n this.el.nativeElement.appendChild(this.overlay);\n }\n }\n alignOverlay() {\n if (this.touchUI) {\n this.enableModality(this.overlay);\n }\n else if (this.overlay) {\n if (this.appendTo) {\n if (this.view === 'date') {\n if (!this.overlay.style.width) {\n this.overlay.style.width = getOuterWidth(this.overlay) + 'px';\n }\n if (!this.overlay.style.minWidth) {\n this.overlay.style.minWidth = getOuterWidth(this.inputfieldViewChild?.nativeElement) + 'px';\n }\n }\n else {\n if (!this.overlay.style.width) {\n this.overlay.style.width = getOuterWidth(this.inputfieldViewChild?.nativeElement) + 'px';\n }\n }\n absolutePosition(this.overlay, this.inputfieldViewChild?.nativeElement);\n }\n else {\n relativePosition(this.overlay, this.inputfieldViewChild?.nativeElement);\n }\n }\n }\n enableModality(element) {\n if (!this.mask && this.touchUI) {\n this.mask = this.renderer.createElement('div');\n this.renderer.setStyle(this.mask, 'zIndex', String(parseInt(element.style.zIndex) - 1));\n let maskStyleClass = 'p-overlay-mask p-datepicker-mask p-datepicker-mask-scrollblocker p-overlay-mask p-overlay-mask-enter';\n addClass(this.mask, maskStyleClass);\n this.maskClickListener = this.renderer.listen(this.mask, 'click', (event) => {\n this.disableModality();\n this.overlayVisible = false;\n });\n this.renderer.appendChild(this.document.body, this.mask);\n blockBodyScroll();\n }\n }\n disableModality() {\n if (this.mask) {\n addClass(this.mask, 'p-overlay-mask-leave');\n if (!this.animationEndListener) {\n this.animationEndListener = this.renderer.listen(this.mask, 'animationend', this.destroyMask.bind(this));\n }\n }\n }\n destroyMask() {\n if (!this.mask) {\n return;\n }\n this.renderer.removeChild(this.document.body, this.mask);\n let bodyChildren = this.document.body.children;\n let hasBlockerMasks;\n for (let i = 0; i < bodyChildren.length; i++) {\n let bodyChild = bodyChildren[i];\n if (hasClass(bodyChild, 'p-datepicker-mask-scrollblocker')) {\n hasBlockerMasks = true;\n break;\n }\n }\n if (!hasBlockerMasks) {\n unblockBodyScroll();\n }\n this.unbindAnimationEndListener();\n this.unbindMaskClickListener();\n this.mask = null;\n }\n unbindMaskClickListener() {\n if (this.maskClickListener) {\n this.maskClickListener();\n this.maskClickListener = null;\n }\n }\n unbindAnimationEndListener() {\n if (this.animationEndListener && this.mask) {\n this.animationEndListener();\n this.animationEndListener = null;\n }\n }\n writeValue(value) {\n this.value = value;\n if (this.value && typeof this.value === 'string') {\n try {\n this.value = this.parseValueFromString(this.value);\n }\n catch {\n if (this.keepInvalid) {\n this.value = value;\n }\n }\n }\n this.updateInputfield();\n this.updateUI();\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n getDateFormat() {\n return this.dateFormat || this.getTranslation('dateFormat');\n }\n getFirstDateOfWeek() {\n return this._firstDayOfWeek || this.getTranslation(TranslationKeys.FIRST_DAY_OF_WEEK);\n }\n // Ported from jquery-ui datepicker formatDate\n formatDate(date, format) {\n if (!date) {\n return '';\n }\n let iFormat;\n const lookAhead = (match) => {\n const matches = iFormat + 1 < format.length && format.charAt(iFormat + 1) === match;\n if (matches) {\n iFormat++;\n }\n return matches;\n }, formatNumber = (match, value, len) => {\n let num = '' + value;\n if (lookAhead(match)) {\n while (num.length < len) {\n num = '0' + num;\n }\n }\n return num;\n }, formatName = (match, value, shortNames, longNames) => {\n return lookAhead(match) ? longNames[value] : shortNames[value];\n };\n let output = '';\n let literal = false;\n if (date) {\n for (iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\n literal = false;\n }\n else {\n output += format.charAt(iFormat);\n }\n }\n else {\n switch (format.charAt(iFormat)) {\n case 'd':\n output += formatNumber('d', date.getDate(), 2);\n break;\n case 'D':\n output += formatName('D', date.getDay(), this.getTranslation(TranslationKeys.DAY_NAMES_SHORT), this.getTranslation(TranslationKeys.DAY_NAMES));\n break;\n case 'o':\n output += formatNumber('o', Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);\n break;\n case 'm':\n output += formatNumber('m', date.getMonth() + 1, 2);\n break;\n case 'M':\n output += formatName('M', date.getMonth(), this.getTranslation(TranslationKeys.MONTH_NAMES_SHORT), this.getTranslation(TranslationKeys.MONTH_NAMES));\n break;\n case 'y':\n output += lookAhead('y') ? date.getFullYear() : (date.getFullYear() % 100 < 10 ? '0' : '') + (date.getFullYear() % 100);\n break;\n case '@':\n output += date.getTime();\n break;\n case '!':\n output += date.getTime() * 10000 + this.ticksTo1970;\n break;\n case \"'\":\n if (lookAhead(\"'\")) {\n output += \"'\";\n }\n else {\n literal = true;\n }\n break;\n default:\n output += format.charAt(iFormat);\n }\n }\n }\n }\n return output;\n }\n formatTime(date) {\n if (!date) {\n return '';\n }\n let output = '';\n let hours = date.getHours();\n let minutes = date.getMinutes();\n let seconds = date.getSeconds();\n if (this.hourFormat == '12' && hours > 11 && hours != 12) {\n hours -= 12;\n }\n if (this.hourFormat == '12') {\n output += hours === 0 ? 12 : hours < 10 ? '0' + hours : hours;\n }\n else {\n output += hours < 10 ? '0' + hours : hours;\n }\n output += ':';\n output += minutes < 10 ? '0' + minutes : minutes;\n if (this.showSeconds) {\n output += ':';\n output += seconds < 10 ? '0' + seconds : seconds;\n }\n if (this.hourFormat == '12') {\n output += date.getHours() > 11 ? ' PM' : ' AM';\n }\n return output;\n }\n parseTime(value) {\n let tokens = value.split(':');\n let validTokenLength = this.showSeconds ? 3 : 2;\n if (tokens.length !== validTokenLength) {\n throw 'Invalid time';\n }\n let h = parseInt(tokens[0]);\n let m = parseInt(tokens[1]);\n let s = this.showSeconds ? parseInt(tokens[2]) : null;\n if (isNaN(h) || isNaN(m) || h > 23 || m > 59 || (this.hourFormat == '12' && h > 12) || (this.showSeconds && (isNaN(s) || s > 59))) {\n throw 'Invalid time';\n }\n else {\n if (this.hourFormat == '12') {\n if (h !== 12 && this.pm) {\n h += 12;\n }\n else if (!this.pm && h === 12) {\n h -= 12;\n }\n }\n return { hour: h, minute: m, second: s };\n }\n }\n // Ported from jquery-ui datepicker parseDate\n parseDate(value, format) {\n if (format == null || value == null) {\n throw 'Invalid arguments';\n }\n value = typeof value === 'object' ? value.toString() : value + '';\n if (value === '') {\n return null;\n }\n let iFormat, dim, extra, iValue = 0, shortYearCutoff = typeof this.shortYearCutoff !== 'string' ? this.shortYearCutoff : (new Date().getFullYear() % 100) + parseInt(this.shortYearCutoff, 10), year = -1, month = -1, day = -1, doy = -1, literal = false, date, lookAhead = (match) => {\n let matches = iFormat + 1 < format.length && format.charAt(iFormat + 1) === match;\n if (matches) {\n iFormat++;\n }\n return matches;\n }, getNumber = (match) => {\n let isDoubled = lookAhead(match), size = match === '@' ? 14 : match === '!' ? 20 : match === 'y' && isDoubled ? 4 : match === 'o' ? 3 : 2, minSize = match === 'y' ? size : 1, digits = new RegExp('^\\\\d{' + minSize + ',' + size + '}'), num = value.substring(iValue).match(digits);\n if (!num) {\n throw 'Missing number at position ' + iValue;\n }\n iValue += num[0].length;\n return parseInt(num[0], 10);\n }, getName = (match, shortNames, longNames) => {\n let index = -1;\n let arr = lookAhead(match) ? longNames : shortNames;\n let names = [];\n for (let i = 0; i < arr.length; i++) {\n names.push([i, arr[i]]);\n }\n names.sort((a, b) => {\n return -(a[1].length - b[1].length);\n });\n for (let i = 0; i < names.length; i++) {\n let name = names[i][1];\n if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) {\n index = names[i][0];\n iValue += name.length;\n break;\n }\n }\n if (index !== -1) {\n return index + 1;\n }\n else {\n throw 'Unknown name at position ' + iValue;\n }\n }, checkLiteral = () => {\n if (value.charAt(iValue) !== format.charAt(iFormat)) {\n throw 'Unexpected literal at position ' + iValue;\n }\n iValue++;\n };\n if (this.view === 'month') {\n day = 1;\n }\n for (iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\n literal = false;\n }\n else {\n checkLiteral();\n }\n }\n else {\n switch (format.charAt(iFormat)) {\n case 'd':\n day = getNumber('d');\n break;\n case 'D':\n getName('D', this.getTranslation(TranslationKeys.DAY_NAMES_SHORT), this.getTranslation(TranslationKeys.DAY_NAMES));\n break;\n case 'o':\n doy = getNumber('o');\n break;\n case 'm':\n month = getNumber('m');\n break;\n case 'M':\n month = getName('M', this.getTranslation(TranslationKeys.MONTH_NAMES_SHORT), this.getTranslation(TranslationKeys.MONTH_NAMES));\n break;\n case 'y':\n year = getNumber('y');\n break;\n case '@':\n date = new Date(getNumber('@'));\n year = date.getFullYear();\n month = date.getMonth() + 1;\n day = date.getDate();\n break;\n case '!':\n date = new Date((getNumber('!') - this.ticksTo1970) / 10000);\n year = date.getFullYear();\n month = date.getMonth() + 1;\n day = date.getDate();\n break;\n case \"'\":\n if (lookAhead(\"'\")) {\n checkLiteral();\n }\n else {\n literal = true;\n }\n break;\n default:\n checkLiteral();\n }\n }\n }\n if (iValue < value.length) {\n extra = value.substr(iValue);\n if (!/^\\s+/.test(extra)) {\n throw 'Extra/unparsed characters found in date: ' + extra;\n }\n }\n if (year === -1) {\n year = new Date().getFullYear();\n }\n else if (year < 100) {\n year += new Date().getFullYear() - (new Date().getFullYear() % 100) + (year <= shortYearCutoff ? 0 : -100);\n }\n if (doy > -1) {\n month = 1;\n day = doy;\n do {\n dim = this.getDaysCountInMonth(year, month - 1);\n if (day <= dim) {\n break;\n }\n month++;\n day -= dim;\n } while (true);\n }\n if (this.view === 'year') {\n month = month === -1 ? 1 : month;\n day = day === -1 ? 1 : day;\n }\n date = this.daylightSavingAdjust(new Date(year, month - 1, day));\n if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) {\n throw 'Invalid date'; // E.g. 31/02/00\n }\n return date;\n }\n daylightSavingAdjust(date) {\n if (!date) {\n return null;\n }\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n return date;\n }\n updateFilledState() {\n this.filled = (this.inputFieldValue && this.inputFieldValue != '');\n }\n isValidDateForTimeConstraints(selectedDate) {\n if (this.keepInvalid) {\n return true; // If we are keeping invalid dates, we don't need to check for time constraints\n }\n return (!this.minDate || selectedDate >= this.minDate) && (!this.maxDate || selectedDate <= this.maxDate);\n }\n onTodayButtonClick(event) {\n const date = new Date();\n const dateMeta = {\n day: date.getDate(),\n month: date.getMonth(),\n year: date.getFullYear(),\n otherMonth: date.getMonth() !== this.currentMonth || date.getFullYear() !== this.currentYear,\n today: true,\n selectable: true\n };\n this.createMonths(date.getMonth(), date.getFullYear());\n this.onDateSelect(event, dateMeta);\n this.onTodayClick.emit(date);\n }\n onClearButtonClick(event) {\n this.updateModel(null);\n this.updateInputfield();\n this.hideOverlay();\n this.onClearClick.emit(event);\n }\n createResponsiveStyle() {\n if (this.numberOfMonths > 1 && this.responsiveOptions) {\n if (!this.responsiveStyleElement) {\n this.responsiveStyleElement = this.renderer.createElement('style');\n this.responsiveStyleElement.type = 'text/css';\n this.renderer.appendChild(this.document.body, this.responsiveStyleElement);\n }\n let innerHTML = '';\n if (this.responsiveOptions) {\n let responsiveOptions = [...this.responsiveOptions].filter((o) => !!(o.breakpoint && o.numMonths)).sort((o1, o2) => -1 * o1.breakpoint.localeCompare(o2.breakpoint, undefined, { numeric: true }));\n for (let i = 0; i < responsiveOptions.length; i++) {\n let { breakpoint, numMonths } = responsiveOptions[i];\n let styles = `\n .p-datepicker[${this.attributeSelector}] .p-datepicker-group:nth-child(${numMonths}) .p-datepicker-next {\n display: inline-flex !important;\n }\n `;\n for (let j = numMonths; j < this.numberOfMonths; j++) {\n styles += `\n .p-datepicker[${this.attributeSelector}] .p-datepicker-group:nth-child(${j + 1}) {\n display: none !important;\n }\n `;\n }\n innerHTML += `\n @media screen and (max-width: ${breakpoint}) {\n ${styles}\n }\n `;\n }\n }\n this.responsiveStyleElement.innerHTML = innerHTML;\n setAttribute(this.responsiveStyleElement, 'nonce', this.config?.csp()?.nonce);\n }\n }\n destroyResponsiveStyleElement() {\n if (this.responsiveStyleElement) {\n this.responsiveStyleElement.remove();\n this.responsiveStyleElement = null;\n }\n }\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.zone.runOutsideAngular(() => {\n const documentTarget = this.el ? this.el.nativeElement.ownerDocument : this.document;\n this.documentClickListener = this.renderer.listen(documentTarget, 'mousedown', (event) => {\n if (this.isOutsideClicked(event) && this.overlayVisible) {\n this.zone.run(() => {\n this.hideOverlay();\n this.onClickOutside.emit(event);\n this.cd.markForCheck();\n });\n }\n });\n });\n }\n }\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n bindDocumentResizeListener() {\n if (!this.documentResizeListener && !this.touchUI) {\n this.documentResizeListener = this.renderer.listen(this.window, 'resize', this.onWindowResize.bind(this));\n }\n }\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.containerViewChild?.nativeElement, () => {\n if (this.overlayVisible) {\n this.hideOverlay();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n isOutsideClicked(event) {\n return !(this.el.nativeElement.isSameNode(event.target) || this.isNavIconClicked(event) || this.el.nativeElement.contains(event.target) || (this.overlay && this.overlay.contains(event.target)));\n }\n isNavIconClicked(event) {\n return hasClass(event.target, 'p-datepicker-prev-button') || hasClass(event.target, 'p-datepicker-prev-icon') || hasClass(event.target, 'p-datepicker-next-button') || hasClass(event.target, 'p-datepicker-next-icon');\n }\n onWindowResize() {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hideOverlay();\n }\n }\n onOverlayHide() {\n this.currentView = this.view;\n if (this.mask) {\n this.destroyMask();\n }\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n }\n ngOnDestroy() {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n if (this.overlay && this.autoZIndex) {\n ZIndexUtils.clear(this.overlay);\n }\n this.destroyResponsiveStyleElement();\n this.clearTimePickerTimer();\n this.restoreOverlayAppend();\n this.onOverlayHide();\n super.ngOnDestroy();\n }\n static ɵfac = function DatePicker_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DatePicker)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.OverlayService)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DatePicker, selectors: [[\"p-datePicker\"], [\"p-datepicker\"], [\"p-date-picker\"]], contentQueries: function DatePicker_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, _c1, 4);\n i0.ɵɵcontentQuery(dirIndex, _c2, 4);\n i0.ɵɵcontentQuery(dirIndex, _c3, 4);\n i0.ɵɵcontentQuery(dirIndex, _c4, 4);\n i0.ɵɵcontentQuery(dirIndex, _c5, 4);\n i0.ɵɵcontentQuery(dirIndex, _c6, 4);\n i0.ɵɵcontentQuery(dirIndex, _c7, 4);\n i0.ɵɵcontentQuery(dirIndex, _c8, 4);\n i0.ɵɵcontentQuery(dirIndex, _c9, 4);\n i0.ɵɵcontentQuery(dirIndex, _c10, 4);\n i0.ɵɵcontentQuery(dirIndex, _c11, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dateTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.disabledDateTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.decadeTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.previousIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nextIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.triggerIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.clearIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.decrementIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.incrementIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, viewQuery: function DatePicker_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c12, 5);\n i0.ɵɵviewQuery(_c13, 5);\n i0.ɵɵviewQuery(_c14, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputfieldViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);\n } }, inputs: { iconDisplay: \"iconDisplay\", style: \"style\", styleClass: \"styleClass\", inputStyle: \"inputStyle\", inputId: \"inputId\", name: \"name\", inputStyleClass: \"inputStyleClass\", placeholder: \"placeholder\", ariaLabelledBy: \"ariaLabelledBy\", ariaLabel: \"ariaLabel\", iconAriaLabel: \"iconAriaLabel\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], dateFormat: \"dateFormat\", multipleSeparator: \"multipleSeparator\", rangeSeparator: \"rangeSeparator\", inline: [2, \"inline\", \"inline\", booleanAttribute], showOtherMonths: [2, \"showOtherMonths\", \"showOtherMonths\", booleanAttribute], selectOtherMonths: [2, \"selectOtherMonths\", \"selectOtherMonths\", booleanAttribute], showIcon: [2, \"showIcon\", \"showIcon\", booleanAttribute], fluid: [2, \"fluid\", \"fluid\", booleanAttribute], icon: \"icon\", appendTo: \"appendTo\", readonlyInput: [2, \"readonlyInput\", \"readonlyInput\", booleanAttribute], shortYearCutoff: \"shortYearCutoff\", monthNavigator: [2, \"monthNavigator\", \"monthNavigator\", booleanAttribute], yearNavigator: [2, \"yearNavigator\", \"yearNavigator\", booleanAttribute], hourFormat: \"hourFormat\", timeOnly: [2, \"timeOnly\", \"timeOnly\", booleanAttribute], stepHour: [2, \"stepHour\", \"stepHour\", numberAttribute], stepMinute: [2, \"stepMinute\", \"stepMinute\", numberAttribute], stepSecond: [2, \"stepSecond\", \"stepSecond\", numberAttribute], showSeconds: [2, \"showSeconds\", \"showSeconds\", booleanAttribute], required: [2, \"required\", \"required\", booleanAttribute], showOnFocus: [2, \"showOnFocus\", \"showOnFocus\", booleanAttribute], showWeek: [2, \"showWeek\", \"showWeek\", booleanAttribute], startWeekFromFirstDayOfYear: \"startWeekFromFirstDayOfYear\", showClear: [2, \"showClear\", \"showClear\", booleanAttribute], dataType: \"dataType\", selectionMode: \"selectionMode\", maxDateCount: [2, \"maxDateCount\", \"maxDateCount\", numberAttribute], showButtonBar: [2, \"showButtonBar\", \"showButtonBar\", booleanAttribute], todayButtonStyleClass: \"todayButtonStyleClass\", clearButtonStyleClass: \"clearButtonStyleClass\", autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute], autoZIndex: [2, \"autoZIndex\", \"autoZIndex\", booleanAttribute], baseZIndex: [2, \"baseZIndex\", \"baseZIndex\", numberAttribute], panelStyleClass: \"panelStyleClass\", panelStyle: \"panelStyle\", keepInvalid: [2, \"keepInvalid\", \"keepInvalid\", booleanAttribute], hideOnDateTimeSelect: [2, \"hideOnDateTimeSelect\", \"hideOnDateTimeSelect\", booleanAttribute], touchUI: [2, \"touchUI\", \"touchUI\", booleanAttribute], timeSeparator: \"timeSeparator\", focusTrap: [2, \"focusTrap\", \"focusTrap\", booleanAttribute], showTransitionOptions: \"showTransitionOptions\", hideTransitionOptions: \"hideTransitionOptions\", tabindex: [2, \"tabindex\", \"tabindex\", numberAttribute], variant: \"variant\", size: \"size\", minDate: \"minDate\", maxDate: \"maxDate\", disabledDates: \"disabledDates\", disabledDays: \"disabledDays\", yearRange: \"yearRange\", showTime: \"showTime\", responsiveOptions: \"responsiveOptions\", numberOfMonths: \"numberOfMonths\", firstDayOfWeek: \"firstDayOfWeek\", locale: \"locale\", view: \"view\", defaultDate: \"defaultDate\" }, outputs: { onFocus: \"onFocus\", onBlur: \"onBlur\", onClose: \"onClose\", onSelect: \"onSelect\", onClear: \"onClear\", onInput: \"onInput\", onTodayClick: \"onTodayClick\", onClearClick: \"onClearClick\", onMonthChange: \"onMonthChange\", onYearChange: \"onYearChange\", onClickOutside: \"onClickOutside\", onShow: \"onShow\" }, standalone: true, features: [i0.ɵɵProvidersFeature([DATEPICKER_VALUE_ACCESSOR, DatePickerStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c16, decls: 4, vars: 6, consts: [[\"container\", \"\"], [\"inputfield\", \"\"], [\"contentWrapper\", \"\"], [3, \"ngClass\", \"ngStyle\"], [3, \"ngIf\"], [3, \"class\", \"ngStyle\", \"ngClass\", \"click\", 4, \"ngIf\"], [\"pInputText\", \"\", \"type\", \"text\", \"role\", \"combobox\", \"aria-autocomplete\", \"none\", \"aria-haspopup\", \"dialog\", \"autocomplete\", \"off\", 3, \"focus\", \"keydown\", \"click\", \"blur\", \"input\", \"value\", \"readonly\", \"ngStyle\", \"ngClass\", \"placeholder\", \"disabled\", \"pAutoFocus\", \"variant\", \"fluid\"], [4, \"ngIf\"], [\"type\", \"button\", \"aria-haspopup\", \"dialog\", \"class\", \"p-datepicker-dropdown\", \"tabindex\", \"0\", 3, \"disabled\", \"click\", 4, \"ngIf\"], [3, \"class\", \"click\", 4, \"ngIf\"], [\"class\", \"p-datepicker-clear-icon\", 3, \"click\", 4, \"ngIf\"], [3, \"click\"], [1, \"p-datepicker-clear-icon\", 3, \"click\"], [4, \"ngTemplateOutlet\"], [\"type\", \"button\", \"aria-haspopup\", \"dialog\", \"tabindex\", \"0\", 1, \"p-datepicker-dropdown\", 3, \"click\", \"disabled\"], [3, \"ngClass\", 4, \"ngIf\"], [3, \"ngClass\"], [1, \"p-datepicker-input-icon-container\"], [3, \"ngClass\", \"click\", 4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"click\", \"ngClass\"], [3, \"click\", \"ngStyle\", \"ngClass\"], [\"class\", \"p-datepicker-time-picker\", 4, \"ngIf\"], [\"class\", \"p-datepicker-buttonbar\", 4, \"ngIf\"], [1, \"p-datepicker-calendar-container\"], [\"class\", \"p-datepicker-calendar\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"p-datepicker-month-view\", 4, \"ngIf\"], [\"class\", \"p-datepicker-year-view\", 4, \"ngIf\"], [1, \"p-datepicker-calendar\"], [1, \"p-datepicker-header\"], [\"size\", \"small\", \"rounded\", \"\", \"text\", \"\", \"styleClass\", \"p-datepicker-prev-button p-button-icon-only\", \"type\", \"button\", 3, \"keydown\", \"onClick\", \"ngStyle\"], [1, \"p-datepicker-title\"], [\"type\", \"button\", \"class\", \"p-datepicker-select-month\", \"pRipple\", \"\", 3, \"disabled\", \"click\", \"keydown\", 4, \"ngIf\"], [\"type\", \"button\", \"class\", \"p-datepicker-select-year\", \"pRipple\", \"\", 3, \"disabled\", \"click\", \"keydown\", 4, \"ngIf\"], [\"class\", \"p-datepicker-decade\", 4, \"ngIf\"], [\"rounded\", \"\", \"text\", \"\", \"size\", \"small\", \"styleClass\", \"p-datepicker-next-button p-button-icon-only\", 3, \"keydown\", \"onClick\", \"ngStyle\"], [\"class\", \"p-datepicker-day-view\", \"role\", \"grid\", 4, \"ngIf\"], [\"type\", \"button\", \"pRipple\", \"\", 1, \"p-datepicker-select-month\", 3, \"click\", \"keydown\", \"disabled\"], [\"type\", \"button\", \"pRipple\", \"\", 1, \"p-datepicker-select-year\", 3, \"click\", \"keydown\", \"disabled\"], [1, \"p-datepicker-decade\"], [\"role\", \"grid\", 1, \"p-datepicker-day-view\"], [\"class\", \"p-datepicker-weekheader p-disabled\", 4, \"ngIf\"], [\"class\", \"p-datepicker-weekday-cell\", \"scope\", \"col\", 4, \"ngFor\", \"ngForOf\"], [4, \"ngFor\", \"ngForOf\"], [1, \"p-datepicker-weekheader\", \"p-disabled\"], [\"scope\", \"col\", 1, \"p-datepicker-weekday-cell\"], [1, \"p-datepicker-weekday\"], [\"class\", \"p-datepicker-weeknumber\", 4, \"ngIf\"], [3, \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [1, \"p-datepicker-weeknumber\"], [1, \"p-datepicker-weeklabel-container\", \"p-disabled\"], [\"draggable\", \"false\", \"pRipple\", \"\", 3, \"click\", \"keydown\", \"ngClass\"], [\"class\", \"p-hidden-accessible\", \"aria-live\", \"polite\", 4, \"ngIf\"], [\"aria-live\", \"polite\", 1, \"p-hidden-accessible\"], [1, \"p-datepicker-month-view\"], [\"pRipple\", \"\", 3, \"ngClass\", \"click\", \"keydown\", 4, \"ngFor\", \"ngForOf\"], [\"pRipple\", \"\", 3, \"click\", \"keydown\", \"ngClass\"], [1, \"p-datepicker-year-view\"], [1, \"p-datepicker-time-picker\"], [1, \"p-datepicker-hour-picker\"], [\"rounded\", \"\", \"text\", \"\", \"size\", \"small\", \"styleClass\", \"p-datepicker-increment-button p-button-icon-only\", 3, \"keydown\", \"keydown.enter\", \"keydown.space\", \"mousedown\", \"mouseup\", \"keyup.enter\", \"keyup.space\", \"mouseleave\"], [1, \"p-datepicker-separator\"], [1, \"p-datepicker-minute-picker\"], [\"class\", \"p-datepicker-separator\", 4, \"ngIf\"], [\"class\", \"p-datepicker-second-picker\", 4, \"ngIf\"], [\"class\", \"p-datepicker-ampm-picker\", 4, \"ngIf\"], [1, \"p-datepicker-second-picker\"], [1, \"p-datepicker-ampm-picker\"], [\"size\", \"small\", \"text\", \"\", \"rounded\", \"\", \"styleClass\", \"p-datepicker-increment-button p-button-icon-only\", 3, \"keydown\", \"onClick\", \"keydown.enter\"], [\"size\", \"small\", \"text\", \"\", \"rounded\", \"\", \"styleClass\", \"p-datepicker-increment-button p-button-icon-only\", 3, \"keydown\", \"click\", \"keydown.enter\"], [1, \"p-datepicker-buttonbar\"], [\"size\", \"small\", \"styleClass\", \"p-datepicker-today-button\", 3, \"keydown\", \"onClick\", \"label\", \"ngClass\"], [\"size\", \"small\", \"styleClass\", \"p-datepicker-clear-button\", 3, \"keydown\", \"onClick\", \"label\", \"ngClass\"]], template: function DatePicker_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef(_c15);\n i0.ɵɵelementStart(0, \"span\", 3, 0);\n i0.ɵɵtemplate(2, DatePicker_ng_template_2_Template, 5, 24, \"ng-template\", 4)(3, DatePicker_div_3_Template, 9, 20, \"div\", 5);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", ctx.rootClass)(\"ngStyle\", ctx.style);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx.inline);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.inline || ctx.overlayVisible);\n } }, dependencies: [CommonModule, i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, Button, Ripple, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, TimesIcon, CalendarIcon, AutoFocus, InputText, SharedModule], encapsulation: 2, data: { animation: [\n trigger('overlayAnimation', [\n state('visibleTouchUI', style({\n transform: 'translate(-50%,-50%)',\n opacity: 1\n })),\n transition('void => visible', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}', style({ opacity: 1, transform: '*' }))]),\n transition('visible => void', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))]),\n transition('void => visibleTouchUI', [style({ opacity: 0, transform: 'translate3d(-50%, -40%, 0) scale(0.9)' }), animate('{{showTransitionParams}}')]),\n transition('visibleTouchUI => void', [\n animate('{{hideTransitionParams}}', style({\n opacity: 0,\n transform: 'translate3d(-50%, -40%, 0) scale(0.9)'\n }))\n ])\n ])\n ] }, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DatePicker, [{\n type: Component,\n args: [{\n selector: 'p-datePicker, p-datepicker, p-date-picker',\n standalone: true,\n imports: [CommonModule, Button, Ripple, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, TimesIcon, CalendarIcon, AutoFocus, InputText, SharedModule],\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 \n \n \n \n \n \n
\n \n {{ getMonthName(month.month) }}\n \n \n {{ getYear(month) }}\n \n \n {{ yearPickerValues()[0] }} - {{ yearPickerValues()[yearPickerValues().length - 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 {{ date.day }}\n \n \n \n \n \n \n \n
\n {{ date.day }}\n
\n
\n \n
\n \n
\n {{ getTranslation('weekHeader') }}\n \n {{ weekDay }}\n
\n \n {{ month.weekNumbers[j] }}\n \n
\n
\n
\n
\n \n {{ m }}\n
\n {{ m }}\n
\n \n
\n
\n \n {{ y }}\n
\n {{ y }}\n
\n \n
\n
\n
\n
\n \n \n\n \n \n 0{{ currentHour }}\n \n \n\n \n \n
\n
\n {{ timeSeparator }}\n
\n
\n \n \n\n \n \n 0{{ currentMinute }}\n \n \n \n \n \n \n
\n
\n {{ timeSeparator }}\n
\n
\n \n \n\n \n \n 0{{ currentSecond }}\n \n \n\n \n \n
\n
\n {{ timeSeparator }}\n
\n
\n \n \n \n \n {{ pm ? 'PM' : 'AM' }}\n \n \n \n \n
\n
\n
\n \n \n
\n \n \n \n
\n `,\n animations: [\n trigger('overlayAnimation', [\n state('visibleTouchUI', style({\n transform: 'translate(-50%,-50%)',\n opacity: 1\n })),\n transition('void => visible', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}', style({ opacity: 1, transform: '*' }))]),\n transition('visible => void', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))]),\n transition('void => visibleTouchUI', [style({ opacity: 0, transform: 'translate3d(-50%, -40%, 0) scale(0.9)' }), animate('{{showTransitionParams}}')]),\n transition('visibleTouchUI => void', [\n animate('{{hideTransitionParams}}', style({\n opacity: 0,\n transform: 'translate3d(-50%, -40%, 0) scale(0.9)'\n }))\n ])\n ])\n ],\n providers: [DATEPICKER_VALUE_ACCESSOR, DatePickerStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{ type: i0.NgZone }, { type: i1.OverlayService }], { iconDisplay: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], inputStyle: [{\n type: Input\n }], inputId: [{\n type: Input\n }], name: [{\n type: Input\n }], inputStyleClass: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], iconAriaLabel: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], dateFormat: [{\n type: Input\n }], multipleSeparator: [{\n type: Input\n }], rangeSeparator: [{\n type: Input\n }], inline: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showOtherMonths: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], selectOtherMonths: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showIcon: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], fluid: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], icon: [{\n type: Input\n }], appendTo: [{\n type: Input\n }], readonlyInput: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], shortYearCutoff: [{\n type: Input\n }], monthNavigator: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], yearNavigator: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], hourFormat: [{\n type: Input\n }], timeOnly: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], stepHour: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], stepMinute: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], stepSecond: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], showSeconds: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], required: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showOnFocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showWeek: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], startWeekFromFirstDayOfYear: [{\n type: Input\n }], showClear: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], dataType: [{\n type: Input\n }], selectionMode: [{\n type: Input\n }], maxDateCount: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], showButtonBar: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], todayButtonStyleClass: [{\n type: Input\n }], clearButtonStyleClass: [{\n type: Input\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], autoZIndex: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], baseZIndex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], panelStyleClass: [{\n type: Input\n }], panelStyle: [{\n type: Input\n }], keepInvalid: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], hideOnDateTimeSelect: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], touchUI: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], timeSeparator: [{\n type: Input\n }], focusTrap: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showTransitionOptions: [{\n type: Input\n }], hideTransitionOptions: [{\n type: Input\n }], tabindex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], variant: [{\n type: Input\n }], size: [{\n type: Input\n }], minDate: [{\n type: Input\n }], maxDate: [{\n type: Input\n }], disabledDates: [{\n type: Input\n }], disabledDays: [{\n type: Input\n }], yearRange: [{\n type: Input\n }], showTime: [{\n type: Input\n }], responsiveOptions: [{\n type: Input\n }], numberOfMonths: [{\n type: Input\n }], firstDayOfWeek: [{\n type: Input\n }], locale: [{\n type: Input\n }], view: [{\n type: Input\n }], defaultDate: [{\n type: Input\n }], onFocus: [{\n type: Output\n }], onBlur: [{\n type: Output\n }], onClose: [{\n type: Output\n }], onSelect: [{\n type: Output\n }], onClear: [{\n type: Output\n }], onInput: [{\n type: Output\n }], onTodayClick: [{\n type: Output\n }], onClearClick: [{\n type: Output\n }], onMonthChange: [{\n type: Output\n }], onYearChange: [{\n type: Output\n }], onClickOutside: [{\n type: Output\n }], onShow: [{\n type: Output\n }], containerViewChild: [{\n type: ViewChild,\n args: ['container', { static: false }]\n }], inputfieldViewChild: [{\n type: ViewChild,\n args: ['inputfield', { static: false }]\n }], content: [{\n type: ViewChild,\n args: ['contentWrapper', { static: false }]\n }], dateTemplate: [{\n type: ContentChild,\n args: ['date', { descendants: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: ['header', { descendants: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: ['footer', { descendants: false }]\n }], disabledDateTemplate: [{\n type: ContentChild,\n args: ['disabledDate', { descendants: false }]\n }], decadeTemplate: [{\n type: ContentChild,\n args: ['decade', { descendants: false }]\n }], previousIconTemplate: [{\n type: ContentChild,\n args: ['previousicon', { descendants: false }]\n }], nextIconTemplate: [{\n type: ContentChild,\n args: ['nexticon', { descendants: false }]\n }], triggerIconTemplate: [{\n type: ContentChild,\n args: ['triggericon', { descendants: false }]\n }], clearIconTemplate: [{\n type: ContentChild,\n args: ['clearicon', { descendants: false }]\n }], decrementIconTemplate: [{\n type: ContentChild,\n args: ['decrementicon', { descendants: false }]\n }], incrementIconTemplate: [{\n type: ContentChild,\n args: ['incrementicon', { descendants: false }]\n }], inputIconTemplate: [{\n type: ContentChild,\n args: ['inputicon', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(DatePicker, { className: \"DatePicker\" }); })();\nclass DatePickerModule {\n static ɵfac = function DatePickerModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DatePickerModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: DatePickerModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [DatePicker, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DatePickerModule, [{\n type: NgModule,\n args: [{\n imports: [DatePicker, SharedModule],\n exports: [DatePicker, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(DatePickerModule, { imports: [DatePicker, SharedModule], exports: [DatePicker, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DATEPICKER_VALUE_ACCESSOR, DatePicker, DatePickerClasses, DatePickerModule, DatePickerStyle };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass CheckIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵCheckIcon_BaseFactory; return function CheckIcon_Factory(__ngFactoryType__) { return (ɵCheckIcon_BaseFactory || (ɵCheckIcon_BaseFactory = i0.ɵɵgetInheritedFactory(CheckIcon)))(__ngFactoryType__ || CheckIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CheckIcon, selectors: [[\"CheckIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z\", \"fill\", \"currentColor\"]], template: function CheckIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CheckIcon, [{\n type: Component,\n args: [{\n selector: 'CheckIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(CheckIcon, { className: \"CheckIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CheckIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass MinusIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵMinusIcon_BaseFactory; return function MinusIcon_Factory(__ngFactoryType__) { return (ɵMinusIcon_BaseFactory || (ɵMinusIcon_BaseFactory = i0.ɵɵgetInheritedFactory(MinusIcon)))(__ngFactoryType__ || MinusIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MinusIcon, selectors: [[\"MinusIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M13.2222 7.77778H0.777778C0.571498 7.77778 0.373667 7.69584 0.227806 7.54998C0.0819442 7.40412 0 7.20629 0 7.00001C0 6.79373 0.0819442 6.5959 0.227806 6.45003C0.373667 6.30417 0.571498 6.22223 0.777778 6.22223H13.2222C13.4285 6.22223 13.6263 6.30417 13.7722 6.45003C13.9181 6.5959 14 6.79373 14 7.00001C14 7.20629 13.9181 7.40412 13.7722 7.54998C13.6263 7.69584 13.4285 7.77778 13.2222 7.77778Z\", \"fill\", \"currentColor\"]], template: function MinusIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MinusIcon, [{\n type: Component,\n args: [{\n selector: 'MinusIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(MinusIcon, { className: \"MinusIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MinusIcon };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, signal, inject, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { contains, equals } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { CheckIcon, MinusIcon } from 'primeng/icons';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-checkbox {\n position: relative;\n display: inline-flex;\n user-select: none;\n vertical-align: bottom;\n width: ${dt('checkbox.width')};\n height: ${dt('checkbox.height')};\n}\n\n.p-checkbox-input {\n cursor: pointer;\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n opacity: 0;\n z-index: 1;\n outline: 0 none;\n border: 1px solid transparent;\n border-radius: ${dt('checkbox.border.radius')};\n}\n\n.p-checkbox-box {\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: ${dt('checkbox.border.radius')};\n border: 1px solid ${dt('checkbox.border.color')};\n background: ${dt('checkbox.background')};\n width: ${dt('checkbox.width')};\n height: ${dt('checkbox.height')};\n transition: background ${dt('checkbox.transition.duration')}, color ${dt('checkbox.transition.duration')}, border-color ${dt('checkbox.transition.duration')}, box-shadow ${dt('checkbox.transition.duration')}, outline-color ${dt('checkbox.transition.duration')};\n outline-color: transparent;\n box-shadow: ${dt('checkbox.shadow')};\n}\n\n.p-checkbox-icon {\n transition-duration: ${dt('checkbox.transition.duration')};\n color: ${dt('checkbox.icon.color')};\n font-size: ${dt('checkbox.icon.size')};\n width: ${dt('checkbox.icon.size')};\n height: ${dt('checkbox.icon.size')};\n}\n\n.p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\n border-color: ${dt('checkbox.hover.border.color')};\n}\n\n.p-checkbox-checked .p-checkbox-box {\n border-color: ${dt('checkbox.checked.border.color')};\n background: ${dt('checkbox.checked.background')};\n}\n\n.p-checkbox-checked .p-checkbox-icon {\n color: ${dt('checkbox.icon.checked.color')};\n}\n\n.p-checkbox-checked:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\n background: ${dt('checkbox.checked.hover.background')};\n border-color: ${dt('checkbox.checked.hover.border.color')};\n}\n\n.p-checkbox-checked:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-icon {\n color: ${dt('checkbox.icon.checked.hover.color')};\n}\n\n.p-checkbox:not(.p-disabled):has(.p-checkbox-input:focus-visible) .p-checkbox-box {\n border-color: ${dt('checkbox.focus.border.color')};\n box-shadow: ${dt('checkbox.focus.ring.shadow')};\n outline: ${dt('checkbox.focus.ring.width')} ${dt('checkbox.focus.ring.style')} ${dt('checkbox.focus.ring.color')};\n outline-offset: ${dt('checkbox.focus.ring.offset')};\n}\n\n.p-checkbox-checked:not(.p-disabled):has(.p-checkbox-input:focus-visible) .p-checkbox-box {\n border-color: ${dt('checkbox.checked.focus.border.color')};\n}\n\n.p-checkbox.ng-invalid.ng-dirty > .p-checkbox-box {\n border-color: ${dt('checkbox.invalid.border.color')};\n}\n\n.p-checkbox.p-variant-filled .p-checkbox-box {\n background: ${dt('checkbox.filled.background')};\n}\n\n.p-checkbox-checked.p-variant-filled .p-checkbox-box {\n background: ${dt('checkbox.checked.background')};\n}\n\n.p-checkbox-checked.p-variant-filled:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\n background: ${dt('checkbox.checked.hover.background')};\n}\n\n.p-checkbox.p-disabled {\n opacity: 1;\n}\n\n.p-checkbox.p-disabled .p-checkbox-box {\n background: ${dt('checkbox.disabled.background')};\n border-color: ${dt('checkbox.checked.disabled.border.color')};\n}\n\n.p-checkbox.p-disabled .p-checkbox-box .p-checkbox-icon {\n color: ${dt('checkbox.icon.disabled.color')};\n}\n\n.p-checkbox-sm,\n.p-checkbox-sm .p-checkbox-box {\n width: ${dt('checkbox.sm.width')};\n height: ${dt('checkbox.sm.height')};\n}\n\n.p-checkbox-sm .p-checkbox-icon {\n font-size: ${dt('checkbox.icon.sm.size')};\n width: ${dt('checkbox.icon.sm.size')};\n height: ${dt('checkbox.icon.sm.size')};\n}\n\n.p-checkbox-lg,\n.p-checkbox-lg .p-checkbox-box {\n width: ${dt('checkbox.lg.width')};\n height: ${dt('checkbox.lg.height')};\n}\n\n.p-checkbox-lg .p-checkbox-icon {\n font-size: ${dt('checkbox.icon.lg.size')};\n width: ${dt('checkbox.icon.lg.size')};\n height: ${dt('checkbox.icon.lg.size')};\n}\n`;\nconst classes = {\n root: ({ instance, props }) => [\n 'p-checkbox p-component',\n {\n 'p-checkbox-checked': instance.checked,\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.config.inputStyle === 'filled' || instance.config.inputVariant === 'filled'\n }\n ],\n box: 'p-checkbox-box',\n input: 'p-checkbox-input',\n icon: 'p-checkbox-icon'\n};\nclass CheckboxStyle extends BaseStyle {\n name = 'checkbox';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵCheckboxStyle_BaseFactory; return function CheckboxStyle_Factory(__ngFactoryType__) { return (ɵCheckboxStyle_BaseFactory || (ɵCheckboxStyle_BaseFactory = i0.ɵɵgetInheritedFactory(CheckboxStyle)))(__ngFactoryType__ || CheckboxStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CheckboxStyle, factory: CheckboxStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CheckboxStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * Checkbox is an extension to standard checkbox element with theming.\n *\n * [Live Demo](https://www.primeng.org/checkbox/)\n *\n * @module checkboxstyle\n *\n */\nvar CheckboxClasses;\n(function (CheckboxClasses) {\n /**\n * Class name of the root element\n */\n CheckboxClasses[\"root\"] = \"p-checkbox\";\n /**\n * Class name of the box element\n */\n CheckboxClasses[\"box\"] = \"p-checkbox-box\";\n /**\n * Class name of the input element\n */\n CheckboxClasses[\"input\"] = \"p-checkbox-input\";\n /**\n * Class name of the icon element\n */\n CheckboxClasses[\"icon\"] = \"p-checkbox-icon\";\n})(CheckboxClasses || (CheckboxClasses = {}));\n\nconst _c0 = [\"checkboxicon\"];\nconst _c1 = [\"input\"];\nconst _c2 = () => ({ \"p-checkbox-input\": true });\nconst _c3 = a0 => ({ checked: a0, class: \"p-checkbox-icon\" });\nfunction Checkbox_ng_container_4_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 8);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r1.checkboxIcon);\n i0.ɵɵattribute(\"data-pc-section\", \"icon\");\n} }\nfunction Checkbox_ng_container_4_ng_container_1_CheckIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"CheckIcon\", 9);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-checkbox-icon\");\n i0.ɵɵattribute(\"data-pc-section\", \"icon\");\n} }\nfunction Checkbox_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Checkbox_ng_container_4_ng_container_1_span_1_Template, 1, 2, \"span\", 7)(2, Checkbox_ng_container_4_ng_container_1_CheckIcon_2_Template, 1, 2, \"CheckIcon\", 6);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.checkboxIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.checkboxIcon);\n} }\nfunction Checkbox_ng_container_4_MinusIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"MinusIcon\", 9);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-checkbox-icon\");\n i0.ɵɵattribute(\"data-pc-section\", \"icon\");\n} }\nfunction Checkbox_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Checkbox_ng_container_4_ng_container_1_Template, 3, 2, \"ng-container\", 4)(2, Checkbox_ng_container_4_MinusIcon_2_Template, 1, 2, \"MinusIcon\", 6);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.checked);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1._indeterminate());\n} }\nfunction Checkbox_5_ng_template_0_Template(rf, ctx) { }\nfunction Checkbox_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Checkbox_5_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nconst CHECKBOX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Checkbox),\n multi: true\n};\n/**\n * Checkbox is an extension to standard checkbox element with theming.\n * @group Components\n */\nclass Checkbox extends BaseComponent {\n /**\n * Value of the checkbox.\n * @group Props\n */\n value;\n /**\n * Name of the checkbox group.\n * @group Props\n */\n name;\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n disabled;\n /**\n * Allows to select a boolean value instead of multiple values.\n * @group Props\n */\n binary;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Used to define a string that labels the input element.\n * @group Props\n */\n ariaLabel;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n inputId;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Inline style of the input element.\n * @group Props\n */\n inputStyle;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Style class of the input element.\n * @group Props\n */\n inputClass;\n /**\n * When present, it specifies input state as indeterminate.\n * @group Props\n */\n indeterminate = false;\n /**\n * Defines the size of the component.\n * @group Props\n */\n size;\n /**\n * Form control value.\n * @group Props\n */\n formControl;\n /**\n * Icon class of the checkbox icon.\n * @group Props\n */\n checkboxIcon;\n /**\n * When present, it specifies that the component cannot be edited.\n * @group Props\n */\n readonly;\n /**\n * When present, it specifies that checkbox must be checked before submitting the form.\n * @group Props\n */\n required;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Value in checked state.\n * @group Props\n */\n trueValue = true;\n /**\n * Value in unchecked state.\n * @group Props\n */\n falseValue = false;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant = 'outlined';\n /**\n * Callback to invoke on value change.\n * @param {CheckboxChangeEvent} event - Custom value change event.\n * @group Emits\n */\n onChange = new EventEmitter();\n /**\n * Callback to invoke when the receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onFocus = new EventEmitter();\n /**\n * Callback to invoke when the loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onBlur = new EventEmitter();\n inputViewChild;\n get checked() {\n return this._indeterminate() ? false : this.binary ? this.model === this.trueValue : contains(this.value, this.model);\n }\n get containerClass() {\n return {\n 'p-checkbox p-component': true,\n 'p-checkbox-checked p-highlight': this.checked,\n 'p-disabled': this.disabled,\n 'p-variant-filled': this.variant === 'filled' || this.config.inputStyle() === 'filled' || this.config.inputVariant() === 'filled',\n 'p-checkbox-sm p-inputfield-sm': this.size === 'small',\n 'p-checkbox-lg p-inputfield-lg': this.size === 'large'\n };\n }\n _indeterminate = signal(undefined);\n /**\n * The template of the checkbox icon.\n * @group Templates\n */\n checkboxIconTemplate;\n templates;\n _checkboxIconTemplate;\n model;\n onModelChange = () => { };\n onModelTouched = () => { };\n focused = false;\n _componentStyle = inject(CheckboxStyle);\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'icon':\n this._checkboxIconTemplate = item.template;\n break;\n case 'checkboxicon':\n this._checkboxIconTemplate = item.template;\n break;\n }\n });\n }\n ngOnChanges(changes) {\n super.ngOnChanges(changes);\n if (changes.indeterminate) {\n this._indeterminate.set(changes.indeterminate.currentValue);\n }\n }\n updateModel(event) {\n let newModelValue;\n /*\n * When `formControlName` or `formControl` is used - `writeValue` is not called after control changes.\n * Otherwise it is causing multiple references to the actual value: there is one array reference inside the component and another one in the control value.\n * `selfControl` is the source of truth of references, it is made to avoid reference loss.\n * */\n const selfControl = this.injector.get(NgControl, null, { optional: true, self: true });\n const currentModelValue = selfControl && !this.formControl ? selfControl.value : this.model;\n if (!this.binary) {\n if (this.checked || this._indeterminate())\n newModelValue = currentModelValue.filter((val) => !equals(val, this.value));\n else\n newModelValue = currentModelValue ? [...currentModelValue, this.value] : [this.value];\n this.onModelChange(newModelValue);\n this.model = newModelValue;\n if (this.formControl) {\n this.formControl.setValue(newModelValue);\n }\n }\n else {\n newModelValue = this._indeterminate() ? this.trueValue : this.checked ? this.falseValue : this.trueValue;\n this.model = newModelValue;\n this.onModelChange(newModelValue);\n }\n if (this._indeterminate()) {\n this._indeterminate.set(false);\n }\n this.onChange.emit({ checked: newModelValue, originalEvent: event });\n }\n handleChange(event) {\n if (!this.readonly) {\n this.updateModel(event);\n }\n }\n onInputFocus(event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n onInputBlur(event) {\n this.focused = false;\n this.onBlur.emit(event);\n this.onModelTouched();\n }\n focus() {\n this.inputViewChild.nativeElement.focus();\n }\n writeValue(model) {\n this.model = model;\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n setTimeout(() => {\n this.disabled = val;\n this.cd.markForCheck();\n });\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵCheckbox_BaseFactory; return function Checkbox_Factory(__ngFactoryType__) { return (ɵCheckbox_BaseFactory || (ɵCheckbox_BaseFactory = i0.ɵɵgetInheritedFactory(Checkbox)))(__ngFactoryType__ || Checkbox); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Checkbox, selectors: [[\"p-checkbox\"], [\"p-checkBox\"], [\"p-check-box\"]], contentQueries: function Checkbox_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.checkboxIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, viewQuery: function Checkbox_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c1, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputViewChild = _t.first);\n } }, inputs: { value: \"value\", name: \"name\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], binary: [2, \"binary\", \"binary\", booleanAttribute], ariaLabelledBy: \"ariaLabelledBy\", ariaLabel: \"ariaLabel\", tabindex: [2, \"tabindex\", \"tabindex\", numberAttribute], inputId: \"inputId\", style: \"style\", inputStyle: \"inputStyle\", styleClass: \"styleClass\", inputClass: \"inputClass\", indeterminate: [2, \"indeterminate\", \"indeterminate\", booleanAttribute], size: \"size\", formControl: \"formControl\", checkboxIcon: \"checkboxIcon\", readonly: [2, \"readonly\", \"readonly\", booleanAttribute], required: [2, \"required\", \"required\", booleanAttribute], autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute], trueValue: \"trueValue\", falseValue: \"falseValue\", variant: \"variant\" }, outputs: { onChange: \"onChange\", onFocus: \"onFocus\", onBlur: \"onBlur\" }, standalone: true, features: [i0.ɵɵProvidersFeature([CHECKBOX_VALUE_ACCESSOR, CheckboxStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 29, consts: [[\"input\", \"\"], [3, \"ngClass\"], [\"type\", \"checkbox\", 3, \"focus\", \"blur\", \"change\", \"value\", \"checked\", \"disabled\", \"readonly\", \"ngClass\"], [1, \"p-checkbox-box\"], [4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"styleClass\", 4, \"ngIf\"], [\"class\", \"p-checkbox-icon\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"p-checkbox-icon\", 3, \"ngClass\"], [3, \"styleClass\"]], template: function Checkbox_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1)(1, \"input\", 2, 0);\n i0.ɵɵlistener(\"focus\", function Checkbox_Template_input_focus_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputFocus($event)); })(\"blur\", function Checkbox_Template_input_blur_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputBlur($event)); })(\"change\", function Checkbox_Template_input_change_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleChange($event)); });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵtemplate(4, Checkbox_ng_container_4_Template, 3, 2, \"ng-container\", 4)(5, Checkbox_5_Template, 1, 0, null, 5);\n i0.ɵɵelementEnd()();\n } if (rf & 2) {\n i0.ɵɵstyleMap(ctx.style);\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", ctx.containerClass);\n i0.ɵɵattribute(\"data-p-highlight\", ctx.checked)(\"data-p-checked\", ctx.checked)(\"data-p-disabled\", ctx.disabled);\n i0.ɵɵadvance();\n i0.ɵɵstyleMap(ctx.inputStyle);\n i0.ɵɵclassMap(ctx.inputClass);\n i0.ɵɵproperty(\"value\", ctx.value)(\"checked\", ctx.checked)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"ngClass\", i0.ɵɵpureFunction0(26, _c2));\n i0.ɵɵattribute(\"id\", ctx.inputId)(\"name\", ctx.name)(\"tabindex\", ctx.tabindex)(\"required\", ctx.required)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-label\", ctx.ariaLabel);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", !ctx.checkboxIconTemplate && !ctx._checkboxIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.checkboxIconTemplate || ctx._checkboxIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(27, _c3, ctx.checked));\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, CheckIcon, MinusIcon, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Checkbox, [{\n type: Component,\n args: [{\n selector: 'p-checkbox, p-checkBox, p-check-box',\n standalone: true,\n imports: [CommonModule, CheckIcon, MinusIcon, SharedModule],\n template: `\n
\n \n
\n \n \n \n \n \n \n \n \n
\n
\n `,\n providers: [CHECKBOX_VALUE_ACCESSOR, CheckboxStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], null, { value: [{\n type: Input\n }], name: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], binary: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], ariaLabelledBy: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], tabindex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], inputId: [{\n type: Input\n }], style: [{\n type: Input\n }], inputStyle: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], inputClass: [{\n type: Input\n }], indeterminate: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], size: [{\n type: Input\n }], formControl: [{\n type: Input\n }], checkboxIcon: [{\n type: Input\n }], readonly: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], required: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], trueValue: [{\n type: Input\n }], falseValue: [{\n type: Input\n }], variant: [{\n type: Input\n }], onChange: [{\n type: Output\n }], onFocus: [{\n type: Output\n }], onBlur: [{\n type: Output\n }], inputViewChild: [{\n type: ViewChild,\n args: ['input']\n }], checkboxIconTemplate: [{\n type: ContentChild,\n args: ['checkboxicon', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Checkbox, { className: \"Checkbox\" }); })();\nclass CheckboxModule {\n static ɵfac = function CheckboxModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckboxModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CheckboxModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Checkbox, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CheckboxModule, [{\n type: NgModule,\n args: [{\n imports: [Checkbox, SharedModule],\n exports: [Checkbox, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(CheckboxModule, { imports: [Checkbox, SharedModule], exports: [Checkbox, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CHECKBOX_VALUE_ACCESSOR, Checkbox, CheckboxClasses, CheckboxModule, CheckboxStyle };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass ArrowDownIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵArrowDownIcon_BaseFactory; return function ArrowDownIcon_Factory(__ngFactoryType__) { return (ɵArrowDownIcon_BaseFactory || (ɵArrowDownIcon_BaseFactory = i0.ɵɵgetInheritedFactory(ArrowDownIcon)))(__ngFactoryType__ || ArrowDownIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArrowDownIcon, selectors: [[\"ArrowDownIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function ArrowDownIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ArrowDownIcon, [{\n type: Component,\n args: [{\n selector: 'ArrowDownIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(ArrowDownIcon, { className: \"ArrowDownIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ArrowDownIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass ArrowUpIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵArrowUpIcon_BaseFactory; return function ArrowUpIcon_Factory(__ngFactoryType__) { return (ɵArrowUpIcon_BaseFactory || (ɵArrowUpIcon_BaseFactory = i0.ɵɵgetInheritedFactory(ArrowUpIcon)))(__ngFactoryType__ || ArrowUpIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArrowUpIcon, selectors: [[\"ArrowUpIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function ArrowUpIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ArrowUpIcon, [{\n type: Component,\n args: [{\n selector: 'ArrowUpIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(ArrowUpIcon, { className: \"ArrowUpIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ArrowUpIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass FilterIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵFilterIcon_BaseFactory; return function FilterIcon_Factory(__ngFactoryType__) { return (ɵFilterIcon_BaseFactory || (ɵFilterIcon_BaseFactory = i0.ɵɵgetInheritedFactory(FilterIcon)))(__ngFactoryType__ || FilterIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FilterIcon, selectors: [[\"FilterIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function FilterIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FilterIcon, [{\n type: Component,\n args: [{\n selector: 'FilterIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(FilterIcon, { className: \"FilterIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FilterIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass FilterSlashIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵFilterSlashIcon_BaseFactory; return function FilterSlashIcon_Factory(__ngFactoryType__) { return (ɵFilterSlashIcon_BaseFactory || (ɵFilterSlashIcon_BaseFactory = i0.ɵɵgetInheritedFactory(FilterSlashIcon)))(__ngFactoryType__ || FilterSlashIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FilterSlashIcon, selectors: [[\"FilterSlashIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function FilterSlashIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FilterSlashIcon, [{\n type: Component,\n args: [{\n selector: 'FilterSlashIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(FilterSlashIcon, { className: \"FilterSlashIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FilterSlashIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass PlusIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵPlusIcon_BaseFactory; return function PlusIcon_Factory(__ngFactoryType__) { return (ɵPlusIcon_BaseFactory || (ɵPlusIcon_BaseFactory = i0.ɵɵgetInheritedFactory(PlusIcon)))(__ngFactoryType__ || PlusIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PlusIcon, selectors: [[\"PlusIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function PlusIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PlusIcon, [{\n type: Component,\n args: [{\n selector: 'PlusIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(PlusIcon, { className: \"PlusIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { PlusIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass SortAltIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵSortAltIcon_BaseFactory; return function SortAltIcon_Factory(__ngFactoryType__) { return (ɵSortAltIcon_BaseFactory || (ɵSortAltIcon_BaseFactory = i0.ɵɵgetInheritedFactory(SortAltIcon)))(__ngFactoryType__ || SortAltIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SortAltIcon, selectors: [[\"SortAltIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 9, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z\", \"fill\", \"currentColor\"], [\"d\", \"M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z\", \"fill\", \"currentColor\"], [\"d\", \"M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z\", \"fill\", \"currentColor\"], [\"d\", \"M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function SortAltIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1)(3, \"path\", 2)(4, \"path\", 3)(5, \"path\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"defs\")(7, \"clipPath\", 5);\n i0.ɵɵelement(8, \"rect\", 6);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(6);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SortAltIcon, [{\n type: Component,\n args: [{\n selector: 'SortAltIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(SortAltIcon, { className: \"SortAltIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SortAltIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass SortAmountDownIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵSortAmountDownIcon_BaseFactory; return function SortAmountDownIcon_Factory(__ngFactoryType__) { return (ɵSortAmountDownIcon_BaseFactory || (ɵSortAmountDownIcon_BaseFactory = i0.ɵɵgetInheritedFactory(SortAmountDownIcon)))(__ngFactoryType__ || SortAmountDownIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SortAmountDownIcon, selectors: [[\"SortAmountDownIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function SortAmountDownIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SortAmountDownIcon, [{\n type: Component,\n args: [{\n selector: 'SortAmountDownIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(SortAmountDownIcon, { className: \"SortAmountDownIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SortAmountDownIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass SortAmountUpAltIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵSortAmountUpAltIcon_BaseFactory; return function SortAmountUpAltIcon_Factory(__ngFactoryType__) { return (ɵSortAmountUpAltIcon_BaseFactory || (ɵSortAmountUpAltIcon_BaseFactory = i0.ɵɵgetInheritedFactory(SortAmountUpAltIcon)))(__ngFactoryType__ || SortAmountUpAltIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SortAmountUpAltIcon, selectors: [[\"SortAmountUpAltIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function SortAmountUpAltIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SortAmountUpAltIcon, [{\n type: Component,\n args: [{\n selector: 'SortAmountUpAltIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(SortAmountUpAltIcon, { className: \"SortAmountUpAltIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SortAmountUpAltIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass TrashIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵTrashIcon_BaseFactory; return function TrashIcon_Factory(__ngFactoryType__) { return (ɵTrashIcon_BaseFactory || (ɵTrashIcon_BaseFactory = i0.ɵɵgetInheritedFactory(TrashIcon)))(__ngFactoryType__ || TrashIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TrashIcon, selectors: [[\"TrashIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function TrashIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TrashIcon, [{\n type: Component,\n args: [{\n selector: 'TrashIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TrashIcon, { className: \"TrashIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TrashIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass AngleUpIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵAngleUpIcon_BaseFactory; return function AngleUpIcon_Factory(__ngFactoryType__) { return (ɵAngleUpIcon_BaseFactory || (ɵAngleUpIcon_BaseFactory = i0.ɵɵgetInheritedFactory(AngleUpIcon)))(__ngFactoryType__ || AngleUpIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AngleUpIcon, selectors: [[\"AngleUpIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z\", \"fill\", \"currentColor\"]], template: function AngleUpIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AngleUpIcon, [{\n type: Component,\n args: [{\n selector: 'AngleUpIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(AngleUpIcon, { className: \"AngleUpIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AngleUpIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass AngleDownIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵAngleDownIcon_BaseFactory; return function AngleDownIcon_Factory(__ngFactoryType__) { return (ɵAngleDownIcon_BaseFactory || (ɵAngleDownIcon_BaseFactory = i0.ɵɵgetInheritedFactory(AngleDownIcon)))(__ngFactoryType__ || AngleDownIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AngleDownIcon, selectors: [[\"AngleDownIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z\", \"fill\", \"currentColor\"]], template: function AngleDownIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AngleDownIcon, [{\n type: Component,\n args: [{\n selector: 'AngleDownIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(AngleDownIcon, { className: \"AngleDownIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AngleDownIcon };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, inject, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChild, ContentChildren, ViewChild, HostBinding, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { getSelection } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TimesIcon, AngleUpIcon, AngleDownIcon } from 'primeng/icons';\nimport { InputText } from 'primeng/inputtext';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-inputnumber {\n display: inline-flex;\n position: relative;\n}\n\n.p-inputnumber-button {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n cursor: pointer;\n background: ${dt('inputnumber.button.background')};\n color: ${dt('inputnumber.button.color')};\n width: ${dt('inputnumber.button.width')};\n transition: background ${dt('inputnumber.transition.duration')}, color ${dt('inputnumber.transition.duration')}, border-color ${dt('inputnumber.transition.duration')}, outline-color ${dt('inputnumber.transition.duration')};\n}\n\n.p-inputnumber-button:hover {\n background: ${dt('inputnumber.button.hover.background')};\n color: ${dt('inputnumber.button.hover.color')};\n}\n\n.p-inputnumber-button:active {\n background: ${dt('inputnumber.button.active.background')};\n color: ${dt('inputnumber.button.active.color')};\n}\n\n.p-inputnumber-stacked .p-inputnumber-button {\n position: relative;\n border: 0 none;\n}\n\n.p-inputnumber-stacked .p-inputnumber-button-group {\n display: flex;\n flex-direction: column;\n position: absolute;\n top: 1px;\n inset-inline-end: 1px;\n height: calc(100% - 2px);\n z-index: 1;\n}\n\n.p-inputnumber-stacked .p-inputnumber-increment-button {\n padding: 0;\n border-end-start-radius: calc(${dt('inputnumber.button.border.radius')} - 1px);\n}\n\n.p-inputnumber-stacked .p-inputnumber-decrement-button {\n padding: 0;\n border-end-end-radius: calc(${dt('inputnumber.button.border.radius')} - 1px);\n}\n\n.p-inputnumber-stacked .p-inputnumber-button {\n flex: 1 1 auto;\n border: 0 none;\n}\n\n.p-inputnumber-horizontal .p-inputnumber-button {\n border: 1px solid ${dt('inputnumber.button.border.color')};\n}\n\n.p-inputnumber-horizontal .p-inputnumber-button:hover {\n border-color: ${dt('inputnumber.button.hover.border.color')};\n}\n\n.p-inputnumber-horizontal .p-inputnumber-button:active {\n border-color: ${dt('inputnumber.button.active.border.color')};\n}\n\n.p-inputnumber-horizontal .p-inputnumber-increment-button {\n order: 3;\n border-start-end-radius: ${dt('inputnumber.button.border.radius')};\n border-end-end-radius: ${dt('inputnumber.button.border.radius')};\n border-inline-start: 0 none;\n}\n\n.p-inputnumber-horizontal .p-inputnumber-input {\n order: 2;\n border-radius: 0;\n}\n\n.p-inputnumber-horizontal .p-inputnumber-decrement-button {\n order: 1;\n border-start-start-radius: ${dt('inputnumber.button.border.radius')};\n border-end-start-radius: ${dt('inputnumber.button.border.radius')};\n border-inline-end: 0 none;\n}\n\n.p-floatlabel:has(.p-inputnumber-horizontal) label {\n margin-inline-start: ${dt('inputnumber.button.width')};\n}\n\n.p-inputnumber-vertical {\n flex-direction: column;\n}\n\n.p-inputnumber-vertical .p-inputnumber-button {\n border: 1px solid ${dt('inputnumber.button.border.color')};\n padding-block: ${dt('inputnumber.button.vertical.padding')};\n padding-inline: 0;\n}\n\n.p-inputnumber-vertical .p-inputnumber-button:hover {\n border-color: ${dt('inputnumber.button.hover.border.color')};\n}\n\n.p-inputnumber-vertical .p-inputnumber-button:active {\n border-color: ${dt('inputnumber.button.active.border.color')};\n}\n\n.p-inputnumber-vertical .p-inputnumber-increment-button {\n order: 1;\n border-start-start-radius: ${dt('inputnumber.button.border.radius')};\n border-start-end-radius: ${dt('inputnumber.button.border.radius')};\n width: 100%;\n border-block-end: 0 none;\n}\n\n.p-inputnumber-vertical .p-inputnumber-input {\n order: 2;\n border-radius: 0;\n text-align: center;\n}\n\n.p-inputnumber-vertical .p-inputnumber-decrement-button {\n order: 3;\n border-end-start-radius: ${dt('inputnumber.button.border.radius')};\n border-end-end-radius: ${dt('inputnumber.button.border.radius')};\n width: 100%;\n border-block-start: 0 none;\n}\n\n.p-inputnumber-input {\n flex: 1 1 auto;\n}\n\n.p-inputnumber-fluid {\n width: 100%;\n}\n\n.p-inputnumber-fluid .p-inputnumber-input {\n width: 1%;\n}\n\n.p-inputnumber-fluid.p-inputnumber-vertical .p-inputnumber-input {\n width: 100%;\n}\n\n.p-inputnumber:has(.p-inputtext-sm) .p-inputnumber-button .p-icon {\n font-size: ${dt('form.field.sm.font.size')};\n width: ${dt('form.field.sm.font.size')};\n height: ${dt('form.field.sm.font.size')};\n}\n\n.p-inputnumber:has(.p-inputtext-lg) .p-inputnumber-button .p-icon {\n font-size: ${dt('form.field.lg.font.size')};\n width: ${dt('form.field.lg.font.size')};\n height: ${dt('form.field.lg.font.size')};\n}\n\np-inputnumber.ng-invalid.ng-dirty > .p-inputtext {\n border-color: ${dt('inputtext.invalid.border.color')};\n}\n\np-inputnumber.ng-invalid.ng-dirty > .p-inputtext:enabled:focus {\n border-color: ${dt('inputtext.focus.border.color')};\n}\n\np-inputnumber.ng-invalid.ng-dirty > .p-inputtext::placeholder {\n color: ${dt('inputtext.invalid.placeholder.color')};\n}\n`;\nconst classes = {\n root: ({ instance }) => ({\n 'p-inputnumber p-component p-inputwrapper': true,\n 'p-inputwrapper-filled': instance.filled || instance.allowEmpty === false,\n 'p-inputwrapper-focus': instance.focused,\n 'p-inputnumber-stacked': instance.showButtons && instance.buttonLayout === 'stacked',\n 'p-inputnumber-horizontal': instance.showButtons && instance.buttonLayout === 'horizontal',\n 'p-inputnumber-vertical': instance.showButtons && instance.buttonLayout === 'vertical',\n 'p-inputnumber-fluid': instance.hasFluid\n }),\n pcInput: 'p-inputnumber-input',\n buttonGroup: 'p-inputnumber-button-group',\n incrementButton: ({ instance }) => ({\n 'p-inputnumber-button p-inputnumber-increment-button': true,\n 'p-disabled': instance.showButtons && instance.max !== null && instance.maxlength\n }),\n decrementButton: ({ instance }) => ({\n 'p-inputnumber-button p-inputnumber-decrement-button': true,\n 'p-disabled': instance.showButtons && instance.min !== null && instance.minlength\n })\n};\nclass InputNumberStyle extends BaseStyle {\n name = 'inputnumber';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵInputNumberStyle_BaseFactory; return function InputNumberStyle_Factory(__ngFactoryType__) { return (ɵInputNumberStyle_BaseFactory || (ɵInputNumberStyle_BaseFactory = i0.ɵɵgetInheritedFactory(InputNumberStyle)))(__ngFactoryType__ || InputNumberStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: InputNumberStyle, factory: InputNumberStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputNumberStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * InputNumber is an input component to provide numerical input.\n *\n * [Live Demo](https://www.primeng.org/inputnumber/)\n *\n * @module inputnumberstyle\n *\n */\nvar InputNumberClasses;\n(function (InputNumberClasses) {\n /**\n * Class name of the root element\n */\n InputNumberClasses[\"root\"] = \"p-inputnumber\";\n /**\n * Class name of the input element\n */\n InputNumberClasses[\"pcInput\"] = \"p-inputnumber-input\";\n /**\n * Class name of the button group element\n */\n InputNumberClasses[\"buttonGroup\"] = \"p-inputnumber-button-group\";\n /**\n * Class name of the increment button element\n */\n InputNumberClasses[\"incrementButton\"] = \"p-inputnumber-increment-button\";\n /**\n * Class name of the decrement button element\n */\n InputNumberClasses[\"decrementButton\"] = \"p-inputnumber-decrement-button\";\n})(InputNumberClasses || (InputNumberClasses = {}));\n\nconst _c0 = [\"clearicon\"];\nconst _c1 = [\"incrementbuttonicon\"];\nconst _c2 = [\"decrementbuttonicon\"];\nconst _c3 = [\"input\"];\nfunction InputNumber_ng_container_2_TimesIcon_1_Template(rf, ctx) { if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"TimesIcon\", 7);\n i0.ɵɵlistener(\"click\", function InputNumber_ng_container_2_TimesIcon_1_Template_TimesIcon_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.clear()); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n i0.ɵɵproperty(\"ngClass\", \"p-inputnumber-clear-icon\");\n i0.ɵɵattribute(\"data-pc-section\", \"clearIcon\");\n} }\nfunction InputNumber_ng_container_2_span_2_1_ng_template_0_Template(rf, ctx) { }\nfunction InputNumber_ng_container_2_span_2_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, InputNumber_ng_container_2_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction InputNumber_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 8);\n i0.ɵɵlistener(\"click\", function InputNumber_ng_container_2_span_2_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.clear()); });\n i0.ɵɵtemplate(1, InputNumber_ng_container_2_span_2_1_Template, 1, 0, null, 9);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"data-pc-section\", \"clearIcon\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.clearIconTemplate || ctx_r2._clearIconTemplate);\n} }\nfunction InputNumber_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, InputNumber_ng_container_2_TimesIcon_1_Template, 1, 2, \"TimesIcon\", 5)(2, InputNumber_ng_container_2_span_2_Template, 2, 2, \"span\", 6);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.clearIconTemplate && !ctx_r2._clearIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.clearIconTemplate || ctx_r2._clearIconTemplate);\n} }\nfunction InputNumber_span_3_span_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 13);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", ctx_r2.incrementButtonIcon);\n i0.ɵɵattribute(\"data-pc-section\", \"incrementbuttonicon\");\n} }\nfunction InputNumber_span_3_ng_container_3_AngleUpIcon_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"AngleUpIcon\");\n} if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-section\", \"incrementbuttonicon\");\n} }\nfunction InputNumber_span_3_ng_container_3_2_ng_template_0_Template(rf, ctx) { }\nfunction InputNumber_span_3_ng_container_3_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, InputNumber_span_3_ng_container_3_2_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction InputNumber_span_3_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, InputNumber_span_3_ng_container_3_AngleUpIcon_1_Template, 1, 1, \"AngleUpIcon\", 2)(2, InputNumber_span_3_ng_container_3_2_Template, 1, 0, null, 9);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.incrementButtonIconTemplate && !ctx_r2._incrementButtonIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.incrementButtonIconTemplate || ctx_r2._incrementButtonIconTemplate);\n} }\nfunction InputNumber_span_3_span_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 13);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", ctx_r2.decrementButtonIcon);\n i0.ɵɵattribute(\"data-pc-section\", \"decrementbuttonicon\");\n} }\nfunction InputNumber_span_3_ng_container_6_AngleDownIcon_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"AngleDownIcon\");\n} if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-section\", \"decrementbuttonicon\");\n} }\nfunction InputNumber_span_3_ng_container_6_2_ng_template_0_Template(rf, ctx) { }\nfunction InputNumber_span_3_ng_container_6_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, InputNumber_span_3_ng_container_6_2_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction InputNumber_span_3_ng_container_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, InputNumber_span_3_ng_container_6_AngleDownIcon_1_Template, 1, 1, \"AngleDownIcon\", 2)(2, InputNumber_span_3_ng_container_6_2_Template, 1, 0, null, 9);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.decrementButtonIconTemplate && !ctx_r2._decrementButtonIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.decrementButtonIconTemplate || ctx_r2._decrementButtonIconTemplate);\n} }\nfunction InputNumber_span_3_Template(rf, ctx) { if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 10)(1, \"button\", 11);\n i0.ɵɵlistener(\"mousedown\", function InputNumber_span_3_Template_button_mousedown_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpButtonMouseDown($event)); })(\"mouseup\", function InputNumber_span_3_Template_button_mouseup_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpButtonMouseUp()); })(\"mouseleave\", function InputNumber_span_3_Template_button_mouseleave_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpButtonMouseLeave()); })(\"keydown\", function InputNumber_span_3_Template_button_keydown_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpButtonKeyDown($event)); })(\"keyup\", function InputNumber_span_3_Template_button_keyup_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpButtonKeyUp()); });\n i0.ɵɵtemplate(2, InputNumber_span_3_span_2_Template, 1, 2, \"span\", 12)(3, InputNumber_span_3_ng_container_3_Template, 3, 2, \"ng-container\", 2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"button\", 11);\n i0.ɵɵlistener(\"mousedown\", function InputNumber_span_3_Template_button_mousedown_4_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDownButtonMouseDown($event)); })(\"mouseup\", function InputNumber_span_3_Template_button_mouseup_4_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDownButtonMouseUp()); })(\"mouseleave\", function InputNumber_span_3_Template_button_mouseleave_4_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDownButtonMouseLeave()); })(\"keydown\", function InputNumber_span_3_Template_button_keydown_4_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDownButtonKeyDown($event)); })(\"keyup\", function InputNumber_span_3_Template_button_keyup_4_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDownButtonKeyUp()); });\n i0.ɵɵtemplate(5, InputNumber_span_3_span_5_Template, 1, 2, \"span\", 12)(6, InputNumber_span_3_ng_container_6_Template, 3, 2, \"ng-container\", 2);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"data-pc-section\", \"buttonGroup\");\n i0.ɵɵadvance();\n i0.ɵɵclassMap(ctx_r2.incrementButtonClass);\n i0.ɵɵproperty(\"ngClass\", ctx_r2._incrementButtonClass)(\"disabled\", ctx_r2.disabled);\n i0.ɵɵattribute(\"aria-hidden\", true)(\"data-pc-section\", \"incrementbutton\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.incrementButtonIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.incrementButtonIcon);\n i0.ɵɵadvance();\n i0.ɵɵclassMap(ctx_r2.decrementButtonClass);\n i0.ɵɵproperty(\"ngClass\", ctx_r2._decrementButtonClass)(\"disabled\", ctx_r2.disabled);\n i0.ɵɵattribute(\"aria-hidden\", true)(\"data-pc-section\", \"decrementbutton\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.decrementButtonIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.decrementButtonIcon);\n} }\nfunction InputNumber_button_4_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 13);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", ctx_r2.incrementButtonIcon);\n i0.ɵɵattribute(\"data-pc-section\", \"incrementbuttonicon\");\n} }\nfunction InputNumber_button_4_ng_container_2_AngleUpIcon_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"AngleUpIcon\");\n} if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-section\", \"incrementbuttonicon\");\n} }\nfunction InputNumber_button_4_ng_container_2_2_ng_template_0_Template(rf, ctx) { }\nfunction InputNumber_button_4_ng_container_2_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, InputNumber_button_4_ng_container_2_2_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction InputNumber_button_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, InputNumber_button_4_ng_container_2_AngleUpIcon_1_Template, 1, 1, \"AngleUpIcon\", 2)(2, InputNumber_button_4_ng_container_2_2_Template, 1, 0, null, 9);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.incrementButtonIconTemplate && !ctx_r2._incrementButtonIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.incrementButtonIconTemplate || ctx_r2._incrementButtonIconTemplate);\n} }\nfunction InputNumber_button_4_Template(rf, ctx) { if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 11);\n i0.ɵɵlistener(\"mousedown\", function InputNumber_button_4_Template_button_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpButtonMouseDown($event)); })(\"mouseup\", function InputNumber_button_4_Template_button_mouseup_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpButtonMouseUp()); })(\"mouseleave\", function InputNumber_button_4_Template_button_mouseleave_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpButtonMouseLeave()); })(\"keydown\", function InputNumber_button_4_Template_button_keydown_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpButtonKeyDown($event)); })(\"keyup\", function InputNumber_button_4_Template_button_keyup_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpButtonKeyUp()); });\n i0.ɵɵtemplate(1, InputNumber_button_4_span_1_Template, 1, 2, \"span\", 12)(2, InputNumber_button_4_ng_container_2_Template, 3, 2, \"ng-container\", 2);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r2.incrementButtonClass);\n i0.ɵɵproperty(\"ngClass\", ctx_r2._incrementButtonClass)(\"disabled\", ctx_r2.disabled);\n i0.ɵɵattribute(\"aria-hidden\", true)(\"data-pc-section\", \"incrementbutton\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.incrementButtonIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.incrementButtonIcon);\n} }\nfunction InputNumber_button_5_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 13);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", ctx_r2.decrementButtonIcon);\n i0.ɵɵattribute(\"data-pc-section\", \"decrementbuttonicon\");\n} }\nfunction InputNumber_button_5_ng_container_2_AngleDownIcon_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"AngleDownIcon\");\n} if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-section\", \"decrementbuttonicon\");\n} }\nfunction InputNumber_button_5_ng_container_2_2_ng_template_0_Template(rf, ctx) { }\nfunction InputNumber_button_5_ng_container_2_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, InputNumber_button_5_ng_container_2_2_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction InputNumber_button_5_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, InputNumber_button_5_ng_container_2_AngleDownIcon_1_Template, 1, 1, \"AngleDownIcon\", 2)(2, InputNumber_button_5_ng_container_2_2_Template, 1, 0, null, 9);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.decrementButtonIconTemplate && !ctx_r2._decrementButtonIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.decrementButtonIconTemplate || ctx_r2._decrementButtonIconTemplate);\n} }\nfunction InputNumber_button_5_Template(rf, ctx) { if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 11);\n i0.ɵɵlistener(\"mousedown\", function InputNumber_button_5_Template_button_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDownButtonMouseDown($event)); })(\"mouseup\", function InputNumber_button_5_Template_button_mouseup_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDownButtonMouseUp()); })(\"mouseleave\", function InputNumber_button_5_Template_button_mouseleave_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDownButtonMouseLeave()); })(\"keydown\", function InputNumber_button_5_Template_button_keydown_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDownButtonKeyDown($event)); })(\"keyup\", function InputNumber_button_5_Template_button_keyup_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDownButtonKeyUp()); });\n i0.ɵɵtemplate(1, InputNumber_button_5_span_1_Template, 1, 2, \"span\", 12)(2, InputNumber_button_5_ng_container_2_Template, 3, 2, \"ng-container\", 2);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r2.decrementButtonClass);\n i0.ɵɵproperty(\"ngClass\", ctx_r2._decrementButtonClass)(\"disabled\", ctx_r2.disabled);\n i0.ɵɵattribute(\"aria-hidden\", true)(\"data-pc-section\", \"decrementbutton\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.decrementButtonIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.decrementButtonIcon);\n} }\nconst INPUTNUMBER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputNumber),\n multi: true\n};\n/**\n * InputNumber is an input component to provide numerical input.\n * @group Components\n */\nclass InputNumber extends BaseComponent {\n injector;\n /**\n * Displays spinner buttons.\n * @group Props\n */\n showButtons = false;\n /**\n * Whether to format the value.\n * @group Props\n */\n format = true;\n /**\n * Layout of the buttons, valid values are \"stacked\" (default), \"horizontal\" and \"vertical\".\n * @group Props\n */\n buttonLayout = 'stacked';\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n inputId;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Advisory information to display on input.\n * @group Props\n */\n placeholder;\n /**\n * Defines the size of the component.\n * @group Props\n */\n size;\n /**\n * Maximum number of character allows in the input field.\n * @group Props\n */\n maxlength;\n /**\n * Specifies tab order of the element.\n * @group Props\n */\n tabindex;\n /**\n * Title text of the input text.\n * @group Props\n */\n title;\n /**\n * Specifies one or more IDs in the DOM that labels the input field.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Used to define a string that labels the input element.\n * @group Props\n */\n ariaLabel;\n /**\n * Used to indicate that user input is required on an element before a form can be submitted.\n * @group Props\n */\n ariaRequired;\n /**\n * Name of the input field.\n * @group Props\n */\n name;\n /**\n * Indicates that whether the input field is required.\n * @group Props\n */\n required;\n /**\n * Used to define a string that autocomplete attribute the current element.\n * @group Props\n */\n autocomplete;\n /**\n * Mininum boundary value.\n * @group Props\n */\n min;\n /**\n * Maximum boundary value.\n * @group Props\n */\n max;\n /**\n * Style class of the increment button.\n * @group Props\n */\n incrementButtonClass;\n /**\n * Style class of the decrement button.\n * @group Props\n */\n decrementButtonClass;\n /**\n * Style class of the increment button.\n * @group Props\n */\n incrementButtonIcon;\n /**\n * Style class of the decrement button.\n * @group Props\n */\n decrementButtonIcon;\n /**\n * When present, it specifies that an input field is read-only.\n * @group Props\n */\n readonly = false;\n /**\n * Step factor to increment/decrement the value.\n * @group Props\n */\n step = 1;\n /**\n * Determines whether the input field is empty.\n * @group Props\n */\n allowEmpty = true;\n /**\n * Locale to be used in formatting.\n * @group Props\n */\n locale;\n /**\n * The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". See Locale Negotiation for details.\n * @group Props\n */\n localeMatcher;\n /**\n * Defines the behavior of the component, valid values are \"decimal\" and \"currency\".\n * @group Props\n */\n mode = 'decimal';\n /**\n * The currency to use in currency formatting. Possible values are the ISO 4217 currency codes, such as \"USD\" for the US dollar, \"EUR\" for the euro, or \"CNY\" for the Chinese RMB. There is no default value; if the style is \"currency\", the currency property must be provided.\n * @group Props\n */\n currency;\n /**\n * How to display the currency in currency formatting. Possible values are \"symbol\" to use a localized currency symbol such as €, ü\"code\" to use the ISO currency code, \"name\" to use a localized currency name such as \"dollar\"; the default is \"symbol\".\n * @group Props\n */\n currencyDisplay;\n /**\n * Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators.\n * @group Props\n */\n useGrouping = true;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant = 'outlined';\n /**\n * The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0; the default for currency formatting is the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information).\n * @group Props\n */\n minFractionDigits;\n /**\n * The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3; the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information).\n * @group Props\n */\n maxFractionDigits;\n /**\n * Text to display before the value.\n * @group Props\n */\n prefix;\n /**\n * Text to display after the value.\n * @group Props\n */\n suffix;\n /**\n * Inline style of the input field.\n * @group Props\n */\n inputStyle;\n /**\n * Style class of the input field.\n * @group Props\n */\n inputStyleClass;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n showClear = false;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(disabled) {\n if (disabled)\n this.focused = false;\n this._disabled = disabled;\n if (this.timer)\n this.clearTimer();\n }\n /**\n * Spans 100% width of the container when enabled.\n * @group Props\n */\n fluid = false;\n /**\n * Callback to invoke on input.\n * @param {InputNumberInputEvent} event - Custom input event.\n * @group Emits\n */\n onInput = new EventEmitter();\n /**\n * Callback to invoke when the component receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onFocus = new EventEmitter();\n /**\n * Callback to invoke when the component loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onBlur = new EventEmitter();\n /**\n * Callback to invoke on input key press.\n * @param {KeyboardEvent} event - Keyboard event.\n * @group Emits\n */\n onKeyDown = new EventEmitter();\n /**\n * Callback to invoke when clear token is clicked.\n * @group Emits\n */\n onClear = new EventEmitter();\n /**\n * Template of the clear icon.\n * @group Templates\n */\n clearIconTemplate;\n /**\n * Template of the increment button icon.\n * @group Templates\n */\n incrementButtonIconTemplate;\n /**\n * Template of the decrement button icon.\n * @group Templates\n */\n decrementButtonIconTemplate;\n templates;\n input;\n _clearIconTemplate;\n _incrementButtonIconTemplate;\n _decrementButtonIconTemplate;\n value;\n onModelChange = () => { };\n onModelTouched = () => { };\n focused;\n initialized;\n groupChar = '';\n prefixChar = '';\n suffixChar = '';\n isSpecialChar;\n timer;\n lastValue;\n _numeral;\n numberFormat;\n _decimal;\n _decimalChar;\n _group;\n _minusSign;\n _currency;\n _prefix;\n _suffix;\n _index;\n _disabled;\n _componentStyle = inject(InputNumberStyle);\n ngControl = null;\n get _rootClass() {\n return this._componentStyle.classes.root({ instance: this });\n }\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return this.fluid || !!fluidComponent;\n }\n get _incrementButtonClass() {\n return this._componentStyle.classes.incrementButton({ instance: this });\n }\n get _decrementButtonClass() {\n return this._componentStyle.classes.decrementButton({ instance: this });\n }\n constructor(injector) {\n super();\n this.injector = injector;\n }\n ngOnChanges(simpleChange) {\n super.ngOnChanges(simpleChange);\n const props = ['locale', 'localeMatcher', 'mode', 'currency', 'currencyDisplay', 'useGrouping', 'minFractionDigits', 'maxFractionDigits', 'prefix', 'suffix'];\n if (props.some((p) => !!simpleChange[p])) {\n this.updateConstructParser();\n }\n }\n get hostClasses() {\n if (typeof this._rootClass === 'string') {\n return this._rootClass;\n }\n if (Array.isArray(this._rootClass)) {\n return this._rootClass.join(' ');\n }\n if (typeof this._rootClass === 'object') {\n return Object.keys(this._rootClass)\n .filter((key) => this._rootClass[key])\n .join(' ');\n }\n return '';\n }\n ngOnInit() {\n super.ngOnInit();\n this.ngControl = this.injector.get(NgControl, null, { optional: true });\n this.constructParser();\n this.initialized = true;\n }\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'clearicon':\n this._clearIconTemplate = item.template;\n break;\n case 'incrementbuttonicon':\n this._incrementButtonIconTemplate = item.template;\n break;\n case 'decrementbuttonicon':\n this._decrementButtonIconTemplate = item.template;\n break;\n }\n });\n }\n getOptions() {\n return {\n localeMatcher: this.localeMatcher,\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n useGrouping: this.useGrouping,\n minimumFractionDigits: this.minFractionDigits ?? undefined,\n maximumFractionDigits: this.maxFractionDigits ?? undefined\n };\n }\n constructParser() {\n this.numberFormat = new Intl.NumberFormat(this.locale, this.getOptions());\n const numerals = [...new Intl.NumberFormat(this.locale, { useGrouping: false }).format(9876543210)].reverse();\n const index = new Map(numerals.map((d, i) => [d, i]));\n this._numeral = new RegExp(`[${numerals.join('')}]`, 'g');\n this._group = this.getGroupingExpression();\n this._minusSign = this.getMinusSignExpression();\n this._currency = this.getCurrencyExpression();\n this._decimal = this.getDecimalExpression();\n this._decimalChar = this.getDecimalChar();\n this._suffix = this.getSuffixExpression();\n this._prefix = this.getPrefixExpression();\n this._index = (d) => index.get(d);\n }\n updateConstructParser() {\n if (this.initialized) {\n this.constructParser();\n }\n }\n escapeRegExp(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n getDecimalExpression() {\n const decimalChar = this.getDecimalChar();\n return new RegExp(`[${decimalChar}]`, 'g');\n }\n getDecimalChar() {\n const formatter = new Intl.NumberFormat(this.locale, { ...this.getOptions(), useGrouping: false });\n return formatter\n .format(1.1)\n .replace(this._currency, '')\n .trim()\n .replace(this._numeral, '');\n }\n getGroupingExpression() {\n const formatter = new Intl.NumberFormat(this.locale, { useGrouping: true });\n this.groupChar = formatter.format(1000000).trim().replace(this._numeral, '').charAt(0);\n return new RegExp(`[${this.groupChar}]`, 'g');\n }\n getMinusSignExpression() {\n const formatter = new Intl.NumberFormat(this.locale, { useGrouping: false });\n return new RegExp(`[${formatter.format(-1).trim().replace(this._numeral, '')}]`, 'g');\n }\n getCurrencyExpression() {\n if (this.currency) {\n const formatter = new Intl.NumberFormat(this.locale, {\n style: 'currency',\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n });\n return new RegExp(`[${formatter.format(1).replace(/\\s/g, '').replace(this._numeral, '').replace(this._group, '')}]`, 'g');\n }\n return new RegExp(`[]`, 'g');\n }\n getPrefixExpression() {\n if (this.prefix) {\n this.prefixChar = this.prefix;\n }\n else {\n const formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay\n });\n this.prefixChar = formatter.format(1).split('1')[0];\n }\n return new RegExp(`${this.escapeRegExp(this.prefixChar || '')}`, 'g');\n }\n getSuffixExpression() {\n if (this.suffix) {\n this.suffixChar = this.suffix;\n }\n else {\n const formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n });\n this.suffixChar = formatter.format(1).split('1')[1];\n }\n return new RegExp(`${this.escapeRegExp(this.suffixChar || '')}`, 'g');\n }\n formatValue(value) {\n if (value != null) {\n if (value === '-') {\n // Minus sign\n return value;\n }\n if (this.format) {\n let formatter = new Intl.NumberFormat(this.locale, this.getOptions());\n let formattedValue = formatter.format(value);\n if (this.prefix && value != this.prefix) {\n formattedValue = this.prefix + formattedValue;\n }\n if (this.suffix && value != this.suffix) {\n formattedValue = formattedValue + this.suffix;\n }\n return formattedValue;\n }\n return value.toString();\n }\n return '';\n }\n parseValue(text) {\n const suffixRegex = new RegExp(this._suffix, '');\n const prefixRegex = new RegExp(this._prefix, '');\n const currencyRegex = new RegExp(this._currency, '');\n let filteredText = text\n .replace(suffixRegex, '')\n .replace(prefixRegex, '')\n .trim()\n .replace(/\\s/g, '')\n .replace(currencyRegex, '')\n .replace(this._group, '')\n .replace(this._minusSign, '-')\n .replace(this._decimal, '.')\n .replace(this._numeral, this._index);\n if (filteredText) {\n if (filteredText === '-')\n // Minus sign\n return filteredText;\n let parsedValue = +filteredText;\n return isNaN(parsedValue) ? null : parsedValue;\n }\n return null;\n }\n repeat(event, interval, dir) {\n if (this.readonly) {\n return;\n }\n let i = interval || 500;\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.repeat(event, 40, dir);\n }, i);\n this.spin(event, dir);\n }\n spin(event, dir) {\n let step = this.step * dir;\n let currentValue = this.parseValue(this.input?.nativeElement.value) || 0;\n let newValue = this.validateValue(currentValue + step);\n if (this.maxlength && this.maxlength < this.formatValue(newValue).length) {\n return;\n }\n this.updateInput(newValue, null, 'spin', null);\n this.updateModel(event, newValue);\n this.handleOnInput(event, currentValue, newValue);\n }\n clear() {\n this.value = null;\n this.onModelChange(this.value);\n this.onClear.emit();\n }\n onUpButtonMouseDown(event) {\n if (event.button === 2) {\n this.clearTimer();\n return;\n }\n if (!this.disabled) {\n this.input?.nativeElement.focus();\n this.repeat(event, null, 1);\n event.preventDefault();\n }\n }\n onUpButtonMouseUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n onUpButtonMouseLeave() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n onUpButtonKeyDown(event) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.repeat(event, null, 1);\n }\n }\n onUpButtonKeyUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n onDownButtonMouseDown(event) {\n if (event.button === 2) {\n this.clearTimer();\n return;\n }\n if (!this.disabled) {\n this.input?.nativeElement.focus();\n this.repeat(event, null, -1);\n event.preventDefault();\n }\n }\n onDownButtonMouseUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n onDownButtonMouseLeave() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n onDownButtonKeyUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n onDownButtonKeyDown(event) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.repeat(event, null, -1);\n }\n }\n onUserInput(event) {\n if (this.readonly) {\n return;\n }\n if (this.isSpecialChar) {\n event.target.value = this.lastValue;\n }\n this.isSpecialChar = false;\n }\n onInputKeyDown(event) {\n if (this.readonly) {\n return;\n }\n this.lastValue = event.target.value;\n if (event.shiftKey || event.altKey) {\n this.isSpecialChar = true;\n return;\n }\n let selectionStart = event.target.selectionStart;\n let selectionEnd = event.target.selectionEnd;\n let inputValue = event.target.value;\n let newValueStr = null;\n if (event.altKey) {\n event.preventDefault();\n }\n switch (event.key) {\n case 'ArrowUp':\n this.spin(event, 1);\n event.preventDefault();\n break;\n case 'ArrowDown':\n this.spin(event, -1);\n event.preventDefault();\n break;\n case 'ArrowLeft':\n for (let index = selectionStart; index <= inputValue.length; index++) {\n const previousCharIndex = index === 0 ? 0 : index - 1;\n if (this.isNumeralChar(inputValue.charAt(previousCharIndex))) {\n this.input.nativeElement.setSelectionRange(index, index);\n break;\n }\n }\n break;\n case 'ArrowRight':\n for (let index = selectionEnd; index >= 0; index--) {\n if (this.isNumeralChar(inputValue.charAt(index))) {\n this.input.nativeElement.setSelectionRange(index, index);\n break;\n }\n }\n break;\n case 'Tab':\n case 'Enter':\n newValueStr = this.validateValue(this.parseValue(this.input.nativeElement.value));\n this.input.nativeElement.value = this.formatValue(newValueStr);\n this.input.nativeElement.setAttribute('aria-valuenow', newValueStr);\n this.updateModel(event, newValueStr);\n break;\n case 'Backspace': {\n event.preventDefault();\n if (selectionStart === selectionEnd) {\n if ((selectionStart == 1 && this.prefix) || (selectionStart == inputValue.length && this.suffix)) {\n break;\n }\n const deleteChar = inputValue.charAt(selectionStart - 1);\n const { decimalCharIndex, decimalCharIndexWithoutPrefix } = this.getDecimalCharIndexes(inputValue);\n if (this.isNumeralChar(deleteChar)) {\n const decimalLength = this.getDecimalLength(inputValue);\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart - 2) + inputValue.slice(selectionStart - 1);\n }\n else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n if (decimalLength) {\n this.input?.nativeElement.setSelectionRange(selectionStart - 1, selectionStart - 1);\n }\n else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n }\n else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n const insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart - 1) + insertedText + inputValue.slice(selectionStart);\n }\n else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n }\n else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n }\n else if (this.mode === 'currency' && deleteChar.search(this._currency) != -1) {\n newValueStr = inputValue.slice(1);\n }\n this.updateValue(event, newValueStr, null, 'delete-single');\n }\n else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n break;\n }\n case 'Delete':\n event.preventDefault();\n if (selectionStart === selectionEnd) {\n if ((selectionStart == 0 && this.prefix) || (selectionStart == inputValue.length - 1 && this.suffix)) {\n break;\n }\n const deleteChar = inputValue.charAt(selectionStart);\n const { decimalCharIndex, decimalCharIndexWithoutPrefix } = this.getDecimalCharIndexes(inputValue);\n if (this.isNumeralChar(deleteChar)) {\n const decimalLength = this.getDecimalLength(inputValue);\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 2);\n }\n else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n if (decimalLength) {\n this.input?.nativeElement.setSelectionRange(selectionStart + 1, selectionStart + 1);\n }\n else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n const insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart) + insertedText + inputValue.slice(selectionStart + 1);\n }\n else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart) + '0' + inputValue.slice(selectionStart + 1);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n }\n else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n this.updateValue(event, newValueStr, null, 'delete-back-single');\n }\n else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n break;\n case 'Home':\n if (this.min) {\n this.updateModel(event, this.min);\n event.preventDefault();\n }\n break;\n case 'End':\n if (this.max) {\n this.updateModel(event, this.max);\n event.preventDefault();\n }\n break;\n default:\n break;\n }\n this.onKeyDown.emit(event);\n }\n onInputKeyPress(event) {\n if (this.readonly) {\n return;\n }\n let code = event.which || event.keyCode;\n let char = String.fromCharCode(code);\n let isDecimalSign = this.isDecimalSign(char);\n const isMinusSign = this.isMinusSign(char);\n if (code != 13) {\n event.preventDefault();\n }\n if (!isDecimalSign && event.code === 'NumpadDecimal') {\n isDecimalSign = true;\n char = this._decimalChar;\n code = char.charCodeAt(0);\n }\n const { value, selectionStart, selectionEnd } = this.input.nativeElement;\n const newValue = this.parseValue(value + char);\n const newValueStr = newValue != null ? newValue.toString() : '';\n const selectedValue = value.substring(selectionStart, selectionEnd);\n const selectedValueParsed = this.parseValue(selectedValue);\n const selectedValueStr = selectedValueParsed != null ? selectedValueParsed.toString() : '';\n if (selectionStart !== selectionEnd && selectedValueStr.length > 0) {\n this.insert(event, char, { isDecimalSign, isMinusSign });\n return;\n }\n if (this.maxlength && newValueStr.length > this.maxlength) {\n return;\n }\n if ((48 <= code && code <= 57) || isMinusSign || isDecimalSign) {\n this.insert(event, char, { isDecimalSign, isMinusSign });\n }\n }\n onPaste(event) {\n if (!this.disabled && !this.readonly) {\n event.preventDefault();\n let data = (event.clipboardData || this.document.defaultView['clipboardData']).getData('Text');\n if (data) {\n if (this.maxlength) {\n data = data.toString().substring(0, this.maxlength);\n }\n let filteredData = this.parseValue(data);\n if (filteredData != null) {\n this.insert(event, filteredData.toString());\n }\n }\n }\n }\n allowMinusSign() {\n return this.min == null || this.min < 0;\n }\n isMinusSign(char) {\n if (this._minusSign.test(char) || char === '-') {\n this._minusSign.lastIndex = 0;\n return true;\n }\n return false;\n }\n isDecimalSign(char) {\n if (this._decimal.test(char)) {\n this._decimal.lastIndex = 0;\n return true;\n }\n return false;\n }\n isDecimalMode() {\n return this.mode === 'decimal';\n }\n getDecimalCharIndexes(val) {\n let decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n const filteredVal = val\n .replace(this._prefix, '')\n .trim()\n .replace(/\\s/g, '')\n .replace(this._currency, '');\n const decimalCharIndexWithoutPrefix = filteredVal.search(this._decimal);\n this._decimal.lastIndex = 0;\n return { decimalCharIndex, decimalCharIndexWithoutPrefix };\n }\n getCharIndexes(val) {\n const decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n const minusCharIndex = val.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n const suffixCharIndex = val.search(this._suffix);\n this._suffix.lastIndex = 0;\n const currencyCharIndex = val.search(this._currency);\n this._currency.lastIndex = 0;\n return { decimalCharIndex, minusCharIndex, suffixCharIndex, currencyCharIndex };\n }\n insert(event, text, sign = { isDecimalSign: false, isMinusSign: false }) {\n const minusCharIndexOnText = text.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n if (!this.allowMinusSign() && minusCharIndexOnText !== -1) {\n return;\n }\n let selectionStart = this.input?.nativeElement.selectionStart;\n let selectionEnd = this.input?.nativeElement.selectionEnd;\n let inputValue = this.input?.nativeElement.value.trim();\n const { decimalCharIndex, minusCharIndex, suffixCharIndex, currencyCharIndex } = this.getCharIndexes(inputValue);\n let newValueStr;\n if (sign.isMinusSign) {\n if (selectionStart === 0) {\n newValueStr = inputValue;\n if (minusCharIndex === -1 || selectionEnd !== 0) {\n newValueStr = this.insertText(inputValue, text, 0, selectionEnd);\n }\n this.updateValue(event, newValueStr, text, 'insert');\n }\n }\n else if (sign.isDecimalSign) {\n if (decimalCharIndex > 0 && selectionStart === decimalCharIndex) {\n this.updateValue(event, inputValue, text, 'insert');\n }\n else if (decimalCharIndex > selectionStart && decimalCharIndex < selectionEnd) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n }\n else if (decimalCharIndex === -1 && this.maxFractionDigits) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n }\n }\n else {\n const maxFractionDigits = this.numberFormat.resolvedOptions().maximumFractionDigits;\n const operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';\n if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n if (selectionStart + text.length - (decimalCharIndex + 1) <= maxFractionDigits) {\n const charIndex = currencyCharIndex >= selectionStart ? currencyCharIndex - 1 : suffixCharIndex >= selectionStart ? suffixCharIndex : inputValue.length;\n newValueStr = inputValue.slice(0, selectionStart) + text + inputValue.slice(selectionStart + text.length, charIndex) + inputValue.slice(charIndex);\n this.updateValue(event, newValueStr, text, operation);\n }\n }\n else {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, operation);\n }\n }\n }\n insertText(value, text, start, end) {\n let textSplit = text === '.' ? text : text.split('.');\n if (textSplit.length === 2) {\n const decimalCharIndex = value.slice(start, end).search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex > 0 ? value.slice(0, start) + this.formatValue(text) + value.slice(end) : value || this.formatValue(text);\n }\n else if (end - start === value.length) {\n return this.formatValue(text);\n }\n else if (start === 0) {\n return text + value.slice(end);\n }\n else if (end === value.length) {\n return value.slice(0, start) + text;\n }\n else {\n return value.slice(0, start) + text + value.slice(end);\n }\n }\n deleteRange(value, start, end) {\n let newValueStr;\n if (end - start === value.length)\n newValueStr = '';\n else if (start === 0)\n newValueStr = value.slice(end);\n else if (end === value.length)\n newValueStr = value.slice(0, start);\n else\n newValueStr = value.slice(0, start) + value.slice(end);\n return newValueStr;\n }\n initCursor() {\n let selectionStart = this.input?.nativeElement.selectionStart;\n let selectionEnd = this.input?.nativeElement.selectionEnd;\n let inputValue = this.input?.nativeElement.value;\n let valueLength = inputValue.length;\n let index = null;\n // remove prefix\n let prefixLength = (this.prefixChar || '').length;\n inputValue = inputValue.replace(this._prefix, '');\n // Will allow selecting whole prefix. But not a part of it.\n // Negative values will trigger clauses after this to fix the cursor position.\n if (selectionStart === selectionEnd || selectionStart !== 0 || selectionEnd < prefixLength) {\n selectionStart -= prefixLength;\n }\n let char = inputValue.charAt(selectionStart);\n if (this.isNumeralChar(char)) {\n return selectionStart + prefixLength;\n }\n //left\n let i = selectionStart - 1;\n while (i >= 0) {\n char = inputValue.charAt(i);\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n }\n else {\n i--;\n }\n }\n if (index !== null) {\n this.input?.nativeElement.setSelectionRange(index + 1, index + 1);\n }\n else {\n i = selectionStart;\n while (i < valueLength) {\n char = inputValue.charAt(i);\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n }\n else {\n i++;\n }\n }\n if (index !== null) {\n this.input?.nativeElement.setSelectionRange(index, index);\n }\n }\n return index || 0;\n }\n onInputClick() {\n const currentValue = this.input?.nativeElement.value;\n if (!this.readonly && currentValue !== getSelection()) {\n this.initCursor();\n }\n }\n isNumeralChar(char) {\n if (char.length === 1 && (this._numeral.test(char) || this._decimal.test(char) || this._group.test(char) || this._minusSign.test(char))) {\n this.resetRegex();\n return true;\n }\n return false;\n }\n resetRegex() {\n this._numeral.lastIndex = 0;\n this._decimal.lastIndex = 0;\n this._group.lastIndex = 0;\n this._minusSign.lastIndex = 0;\n }\n updateValue(event, valueStr, insertedValueStr, operation) {\n let currentValue = this.input?.nativeElement.value;\n let newValue = null;\n if (valueStr != null) {\n newValue = this.parseValue(valueStr);\n newValue = !newValue && !this.allowEmpty ? 0 : newValue;\n this.updateInput(newValue, insertedValueStr, operation, valueStr);\n this.handleOnInput(event, currentValue, newValue);\n }\n }\n handleOnInput(event, currentValue, newValue) {\n if (this.isValueChanged(currentValue, newValue)) {\n this.input.nativeElement.value = this.formatValue(newValue);\n this.input?.nativeElement.setAttribute('aria-valuenow', newValue);\n this.updateModel(event, newValue);\n this.onInput.emit({ originalEvent: event, value: newValue, formattedValue: currentValue });\n }\n }\n isValueChanged(currentValue, newValue) {\n if (newValue === null && currentValue !== null) {\n return true;\n }\n if (newValue != null) {\n let parsedCurrentValue = typeof currentValue === 'string' ? this.parseValue(currentValue) : currentValue;\n return newValue !== parsedCurrentValue;\n }\n return false;\n }\n validateValue(value) {\n if (value === '-' || value == null) {\n return null;\n }\n if (this.min != null && value < this.min) {\n return this.min;\n }\n if (this.max != null && value > this.max) {\n return this.max;\n }\n return value;\n }\n updateInput(value, insertedValueStr, operation, valueStr) {\n insertedValueStr = insertedValueStr || '';\n let inputValue = this.input?.nativeElement.value;\n let newValue = this.formatValue(value);\n let currentLength = inputValue.length;\n if (newValue !== valueStr) {\n newValue = this.concatValues(newValue, valueStr);\n }\n if (currentLength === 0) {\n this.input.nativeElement.value = newValue;\n this.input.nativeElement.setSelectionRange(0, 0);\n const index = this.initCursor();\n const selectionEnd = index + insertedValueStr.length;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n else {\n let selectionStart = this.input.nativeElement.selectionStart;\n let selectionEnd = this.input.nativeElement.selectionEnd;\n if (this.maxlength && newValue.length > this.maxlength) {\n newValue = newValue.slice(0, this.maxlength);\n selectionStart = Math.min(selectionStart, this.maxlength);\n selectionEnd = Math.min(selectionEnd, this.maxlength);\n }\n if (this.maxlength && this.maxlength < newValue.length) {\n return;\n }\n this.input.nativeElement.value = newValue;\n let newLength = newValue.length;\n if (operation === 'range-insert') {\n const startValue = this.parseValue((inputValue || '').slice(0, selectionStart));\n const startValueStr = startValue !== null ? startValue.toString() : '';\n const startExpr = startValueStr.split('').join(`(${this.groupChar})?`);\n const sRegex = new RegExp(startExpr, 'g');\n sRegex.test(newValue);\n const tExpr = insertedValueStr.split('').join(`(${this.groupChar})?`);\n const tRegex = new RegExp(tExpr, 'g');\n tRegex.test(newValue.slice(sRegex.lastIndex));\n selectionEnd = sRegex.lastIndex + tRegex.lastIndex;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n else if (newLength === currentLength) {\n if (operation === 'insert' || operation === 'delete-back-single')\n this.input.nativeElement.setSelectionRange(selectionEnd + 1, selectionEnd + 1);\n else if (operation === 'delete-single')\n this.input.nativeElement.setSelectionRange(selectionEnd - 1, selectionEnd - 1);\n else if (operation === 'delete-range' || operation === 'spin')\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n else if (operation === 'delete-back-single') {\n let prevChar = inputValue.charAt(selectionEnd - 1);\n let nextChar = inputValue.charAt(selectionEnd);\n let diff = currentLength - newLength;\n let isGroupChar = this._group.test(nextChar);\n if (isGroupChar && diff === 1) {\n selectionEnd += 1;\n }\n else if (!isGroupChar && this.isNumeralChar(prevChar)) {\n selectionEnd += -1 * diff + 1;\n }\n this._group.lastIndex = 0;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n else if (inputValue === '-' && operation === 'insert') {\n this.input.nativeElement.setSelectionRange(0, 0);\n const index = this.initCursor();\n const selectionEnd = index + insertedValueStr.length + 1;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n else {\n selectionEnd = selectionEnd + (newLength - currentLength);\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n }\n this.input.nativeElement.setAttribute('aria-valuenow', value);\n }\n concatValues(val1, val2) {\n if (val1 && val2) {\n let decimalCharIndex = val2.search(this._decimal);\n this._decimal.lastIndex = 0;\n if (this.suffixChar) {\n return decimalCharIndex !== -1 ? val1 : val1.replace(this.suffixChar, '').split(this._decimal)[0] + val2.replace(this.suffixChar, '').slice(decimalCharIndex) + this.suffixChar;\n }\n else {\n return decimalCharIndex !== -1 ? val1.split(this._decimal)[0] + val2.slice(decimalCharIndex) : val1;\n }\n }\n return val1;\n }\n getDecimalLength(value) {\n if (value) {\n const valueSplit = value.split(this._decimal);\n if (valueSplit.length === 2) {\n return valueSplit[1]\n .replace(this._suffix, '')\n .trim()\n .replace(/\\s/g, '')\n .replace(this._currency, '').length;\n }\n }\n return 0;\n }\n onInputFocus(event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n onInputBlur(event) {\n this.focused = false;\n const newValueNumber = this.validateValue(this.parseValue(this.input.nativeElement.value));\n const newValueString = newValueNumber?.toString();\n this.input.nativeElement.value = this.formatValue(newValueString);\n this.input.nativeElement.setAttribute('aria-valuenow', newValueString);\n this.updateModel(event, newValueNumber);\n this.onBlur.emit(event);\n }\n formattedValue() {\n const val = !this.value && !this.allowEmpty ? 0 : this.value;\n return this.formatValue(val);\n }\n updateModel(event, value) {\n const isBlurUpdateOnMode = this.ngControl?.control?.updateOn === 'blur';\n if (this.value !== value) {\n this.value = value;\n if (!(isBlurUpdateOnMode && this.focused)) {\n this.onModelChange(value);\n }\n }\n else if (isBlurUpdateOnMode) {\n this.onModelChange(value);\n }\n this.onModelTouched();\n }\n writeValue(value) {\n this.value = value;\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n get filled() {\n return this.value != null && this.value.toString().length > 0;\n }\n clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n }\n static ɵfac = function InputNumber_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InputNumber)(i0.ɵɵdirectiveInject(i0.Injector)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: InputNumber, selectors: [[\"p-inputNumber\"], [\"p-inputnumber\"], [\"p-input-number\"]], contentQueries: function InputNumber_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, _c1, 4);\n i0.ɵɵcontentQuery(dirIndex, _c2, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.clearIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.incrementButtonIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.decrementButtonIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, viewQuery: function InputNumber_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c3, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);\n } }, hostVars: 4, hostBindings: function InputNumber_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-name\", \"inputnumber\")(\"data-pc-section\", \"root\");\n i0.ɵɵclassMap(ctx.hostClasses);\n } }, inputs: { showButtons: [2, \"showButtons\", \"showButtons\", booleanAttribute], format: [2, \"format\", \"format\", booleanAttribute], buttonLayout: \"buttonLayout\", inputId: \"inputId\", styleClass: \"styleClass\", style: \"style\", placeholder: \"placeholder\", size: \"size\", maxlength: [2, \"maxlength\", \"maxlength\", numberAttribute], tabindex: [2, \"tabindex\", \"tabindex\", numberAttribute], title: \"title\", ariaLabelledBy: \"ariaLabelledBy\", ariaLabel: \"ariaLabel\", ariaRequired: [2, \"ariaRequired\", \"ariaRequired\", booleanAttribute], name: \"name\", required: [2, \"required\", \"required\", booleanAttribute], autocomplete: \"autocomplete\", min: [2, \"min\", \"min\", numberAttribute], max: [2, \"max\", \"max\", numberAttribute], incrementButtonClass: \"incrementButtonClass\", decrementButtonClass: \"decrementButtonClass\", incrementButtonIcon: \"incrementButtonIcon\", decrementButtonIcon: \"decrementButtonIcon\", readonly: [2, \"readonly\", \"readonly\", booleanAttribute], step: [2, \"step\", \"step\", numberAttribute], allowEmpty: [2, \"allowEmpty\", \"allowEmpty\", booleanAttribute], locale: \"locale\", localeMatcher: \"localeMatcher\", mode: \"mode\", currency: \"currency\", currencyDisplay: \"currencyDisplay\", useGrouping: [2, \"useGrouping\", \"useGrouping\", booleanAttribute], variant: \"variant\", minFractionDigits: [2, \"minFractionDigits\", \"minFractionDigits\", (value) => numberAttribute(value, null)], maxFractionDigits: [2, \"maxFractionDigits\", \"maxFractionDigits\", (value) => numberAttribute(value, null)], prefix: \"prefix\", suffix: \"suffix\", inputStyle: \"inputStyle\", inputStyleClass: \"inputStyleClass\", showClear: [2, \"showClear\", \"showClear\", booleanAttribute], autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute], disabled: \"disabled\", fluid: [2, \"fluid\", \"fluid\", booleanAttribute] }, outputs: { onInput: \"onInput\", onFocus: \"onFocus\", onBlur: \"onBlur\", onKeyDown: \"onKeyDown\", onClear: \"onClear\" }, standalone: true, features: [i0.ɵɵProvidersFeature([INPUTNUMBER_VALUE_ACCESSOR, InputNumberStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 32, consts: [[\"input\", \"\"], [\"pInputText\", \"\", \"role\", \"spinbutton\", \"inputmode\", \"decimal\", 3, \"input\", \"keydown\", \"keypress\", \"paste\", \"click\", \"focus\", \"blur\", \"ngClass\", \"ngStyle\", \"value\", \"variant\", \"disabled\", \"readonly\", \"pSize\", \"pAutoFocus\", \"fluid\"], [4, \"ngIf\"], [\"class\", \"p-inputnumber-button-group\", 4, \"ngIf\"], [\"type\", \"button\", \"tabindex\", \"-1\", 3, \"ngClass\", \"class\", \"disabled\", \"mousedown\", \"mouseup\", \"mouseleave\", \"keydown\", \"keyup\", 4, \"ngIf\"], [3, \"ngClass\", \"click\", 4, \"ngIf\"], [\"class\", \"p-inputnumber-clear-icon\", 3, \"click\", 4, \"ngIf\"], [3, \"click\", \"ngClass\"], [1, \"p-inputnumber-clear-icon\", 3, \"click\"], [4, \"ngTemplateOutlet\"], [1, \"p-inputnumber-button-group\"], [\"type\", \"button\", \"tabindex\", \"-1\", 3, \"mousedown\", \"mouseup\", \"mouseleave\", \"keydown\", \"keyup\", \"ngClass\", \"disabled\"], [3, \"ngClass\", 4, \"ngIf\"], [3, \"ngClass\"]], template: function InputNumber_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 1, 0);\n i0.ɵɵlistener(\"input\", function InputNumber_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onUserInput($event)); })(\"keydown\", function InputNumber_Template_input_keydown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputKeyDown($event)); })(\"keypress\", function InputNumber_Template_input_keypress_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputKeyPress($event)); })(\"paste\", function InputNumber_Template_input_paste_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onPaste($event)); })(\"click\", function InputNumber_Template_input_click_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputClick()); })(\"focus\", function InputNumber_Template_input_focus_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputFocus($event)); })(\"blur\", function InputNumber_Template_input_blur_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputBlur($event)); });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, InputNumber_ng_container_2_Template, 3, 2, \"ng-container\", 2)(3, InputNumber_span_3_Template, 7, 17, \"span\", 3)(4, InputNumber_button_4_Template, 3, 8, \"button\", 4)(5, InputNumber_button_5_Template, 3, 8, \"button\", 4);\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.inputStyleClass);\n i0.ɵɵproperty(\"ngClass\", \"p-inputnumber-input\")(\"ngStyle\", ctx.inputStyle)(\"value\", ctx.formattedValue())(\"variant\", ctx.variant)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"pSize\", ctx.size)(\"pAutoFocus\", ctx.autofocus)(\"fluid\", ctx.hasFluid);\n i0.ɵɵattribute(\"id\", ctx.inputId)(\"aria-valuemin\", ctx.min)(\"aria-valuemax\", ctx.max)(\"aria-valuenow\", ctx.value)(\"placeholder\", ctx.placeholder)(\"aria-label\", ctx.ariaLabel)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"title\", ctx.title)(\"name\", ctx.name)(\"autocomplete\", ctx.autocomplete)(\"maxlength\", ctx.maxlength)(\"tabindex\", ctx.tabindex)(\"aria-required\", ctx.ariaRequired)(\"required\", ctx.required)(\"min\", ctx.min)(\"max\", ctx.max)(\"data-pc-section\", \"input\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.buttonLayout != \"vertical\" && ctx.showClear && ctx.value);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showButtons && ctx.buttonLayout === \"stacked\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showButtons && ctx.buttonLayout !== \"stacked\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showButtons && ctx.buttonLayout !== \"stacked\");\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, InputText, AutoFocus, TimesIcon, AngleUpIcon, AngleDownIcon, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputNumber, [{\n type: Component,\n args: [{\n selector: 'p-inputNumber, p-inputnumber, p-input-number',\n standalone: true,\n imports: [CommonModule, InputText, AutoFocus, TimesIcon, AngleUpIcon, AngleDownIcon, SharedModule],\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 \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [INPUTNUMBER_VALUE_ACCESSOR, InputNumberStyle],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.data-pc-name]': \"'inputnumber'\",\n '[attr.data-pc-section]': \"'root'\",\n style: 'style'\n }\n }]\n }], () => [{ type: i0.Injector }], { showButtons: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], format: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], buttonLayout: [{\n type: Input\n }], inputId: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], style: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], size: [{\n type: Input\n }], maxlength: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], tabindex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], title: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], ariaRequired: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], name: [{\n type: Input\n }], required: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], autocomplete: [{\n type: Input\n }], min: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], max: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], incrementButtonClass: [{\n type: Input\n }], decrementButtonClass: [{\n type: Input\n }], incrementButtonIcon: [{\n type: Input\n }], decrementButtonIcon: [{\n type: Input\n }], readonly: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], step: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], allowEmpty: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], locale: [{\n type: Input\n }], localeMatcher: [{\n type: Input\n }], mode: [{\n type: Input\n }], currency: [{\n type: Input\n }], currencyDisplay: [{\n type: Input\n }], useGrouping: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], variant: [{\n type: Input\n }], minFractionDigits: [{\n type: Input,\n args: [{ transform: (value) => numberAttribute(value, null) }]\n }], maxFractionDigits: [{\n type: Input,\n args: [{ transform: (value) => numberAttribute(value, null) }]\n }], prefix: [{\n type: Input\n }], suffix: [{\n type: Input\n }], inputStyle: [{\n type: Input\n }], inputStyleClass: [{\n type: Input\n }], showClear: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], disabled: [{\n type: Input\n }], fluid: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onInput: [{\n type: Output\n }], onFocus: [{\n type: Output\n }], onBlur: [{\n type: Output\n }], onKeyDown: [{\n type: Output\n }], onClear: [{\n type: Output\n }], clearIconTemplate: [{\n type: ContentChild,\n args: ['clearicon', { descendants: false }]\n }], incrementButtonIconTemplate: [{\n type: ContentChild,\n args: ['incrementbuttonicon', { descendants: false }]\n }], decrementButtonIconTemplate: [{\n type: ContentChild,\n args: ['decrementbuttonicon', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }], input: [{\n type: ViewChild,\n args: ['input']\n }], hostClasses: [{\n type: HostBinding,\n args: ['class']\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(InputNumber, { className: \"InputNumber\" }); })();\nclass InputNumberModule {\n static ɵfac = function InputNumberModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InputNumberModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: InputNumberModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [InputNumber, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputNumberModule, [{\n type: NgModule,\n args: [{\n imports: [InputNumber, SharedModule],\n exports: [InputNumber, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(InputNumberModule, { imports: [InputNumber, SharedModule], exports: [InputNumber, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { INPUTNUMBER_VALUE_ACCESSOR, InputNumber, InputNumberClasses, InputNumberModule, InputNumberStyle };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass AngleDoubleLeftIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵAngleDoubleLeftIcon_BaseFactory; return function AngleDoubleLeftIcon_Factory(__ngFactoryType__) { return (ɵAngleDoubleLeftIcon_BaseFactory || (ɵAngleDoubleLeftIcon_BaseFactory = i0.ɵɵgetInheritedFactory(AngleDoubleLeftIcon)))(__ngFactoryType__ || AngleDoubleLeftIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AngleDoubleLeftIcon, selectors: [[\"AngleDoubleLeftIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z\", \"fill\", \"currentColor\"]], template: function AngleDoubleLeftIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AngleDoubleLeftIcon, [{\n type: Component,\n args: [{\n selector: 'AngleDoubleLeftIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(AngleDoubleLeftIcon, { className: \"AngleDoubleLeftIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AngleDoubleLeftIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass AngleDoubleRightIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵAngleDoubleRightIcon_BaseFactory; return function AngleDoubleRightIcon_Factory(__ngFactoryType__) { return (ɵAngleDoubleRightIcon_BaseFactory || (ɵAngleDoubleRightIcon_BaseFactory = i0.ɵɵgetInheritedFactory(AngleDoubleRightIcon)))(__ngFactoryType__ || AngleDoubleRightIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AngleDoubleRightIcon, selectors: [[\"AngleDoubleRightIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z\", \"fill\", \"currentColor\"]], template: function AngleDoubleRightIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AngleDoubleRightIcon, [{\n type: Component,\n args: [{\n selector: 'AngleDoubleRightIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(AngleDoubleRightIcon, { className: \"AngleDoubleRightIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AngleDoubleRightIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass AngleLeftIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵAngleLeftIcon_BaseFactory; return function AngleLeftIcon_Factory(__ngFactoryType__) { return (ɵAngleLeftIcon_BaseFactory || (ɵAngleLeftIcon_BaseFactory = i0.ɵɵgetInheritedFactory(AngleLeftIcon)))(__ngFactoryType__ || AngleLeftIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AngleLeftIcon, selectors: [[\"AngleLeftIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z\", \"fill\", \"currentColor\"]], template: function AngleLeftIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AngleLeftIcon, [{\n type: Component,\n args: [{\n selector: 'AngleLeftIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(AngleLeftIcon, { className: \"AngleLeftIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AngleLeftIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass AngleRightIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵAngleRightIcon_BaseFactory; return function AngleRightIcon_Factory(__ngFactoryType__) { return (ɵAngleRightIcon_BaseFactory || (ɵAngleRightIcon_BaseFactory = i0.ɵɵgetInheritedFactory(AngleRightIcon)))(__ngFactoryType__ || AngleRightIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AngleRightIcon, selectors: [[\"AngleRightIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z\", \"fill\", \"currentColor\"]], template: function AngleRightIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AngleRightIcon, [{\n type: Component,\n args: [{\n selector: 'AngleRightIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(AngleRightIcon, { className: \"AngleRightIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AngleRightIcon };\n","import { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, HostBinding, NgModule } from '@angular/core';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-iconfield {\n position: relative;\n display: block;\n}\n\n.p-inputicon {\n position: absolute;\n top: 50%;\n margin-top: calc(-1 * (${dt('icon.size')} / 2));\n color: ${dt('iconfield.icon.color')};\n line-height: 1;\n}\n\n.p-iconfield .p-inputicon:first-child {\n inset-inline-start: ${dt('form.field.padding.x')};\n}\n\n.p-iconfield .p-inputicon:last-child {\n inset-inline-end: ${dt('form.field.padding.x')};\n}\n\n.p-iconfield .p-inputtext:not(:first-child) {\n padding-inline-start: calc((${dt('form.field.padding.x')} * 2) + ${dt('icon.size')});\n}\n\n.p-iconfield .p-inputtext:not(:last-child) {\n padding-inline-end: calc((${dt('form.field.padding.x')} * 2) + ${dt('icon.size')});\n}\n\n.p-iconfield:has(.p-inputfield-sm) .p-inputicon {\n font-size: ${dt('form.field.sm.font.size')};\n width: ${dt('form.field.sm.font.size')};\n height: ${dt('form.field.sm.font.size')};\n margin-top: calc(-1 * (${dt('form.field.sm.font.size')} / 2));\n}\n\n.p-iconfield:has(.p-inputfield-lg) .p-inputicon {\n font-size: ${dt('form.field.lg.font.size')};\n width: ${dt('form.field.lg.font.size')};\n height: ${dt('form.field.lg.font.size')};\n margin-top: calc(-1 * (${dt('form.field.lg.font.size')} / 2));\n}\n`;\nconst classes = {\n root: 'p-iconfield'\n};\nclass IconFieldStyle extends BaseStyle {\n name = 'iconfield';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵIconFieldStyle_BaseFactory; return function IconFieldStyle_Factory(__ngFactoryType__) { return (ɵIconFieldStyle_BaseFactory || (ɵIconFieldStyle_BaseFactory = i0.ɵɵgetInheritedFactory(IconFieldStyle)))(__ngFactoryType__ || IconFieldStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IconFieldStyle, factory: IconFieldStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(IconFieldStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * IconField wraps an input and an icon.\n *\n * [Live Demo](https://www.primeng.org/iconfield/)\n *\n * @module iconfieldstyle\n *\n */\nvar IconFieldClasses;\n(function (IconFieldClasses) {\n /**\n * Class name of the root element\n */\n IconFieldClasses[\"root\"] = \"p-iconfield\";\n})(IconFieldClasses || (IconFieldClasses = {}));\n\nconst _c0 = [\"*\"];\n/**\n * IconField wraps an input and an icon.\n * @group Components\n */\nclass IconField extends BaseComponent {\n /**\n * Position of the icon.\n * @group Props\n */\n iconPosition = 'left';\n get _styleClass() {\n return this.styleClass;\n }\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n _componentStyle = inject(IconFieldStyle);\n static ɵfac = /*@__PURE__*/ (() => { let ɵIconField_BaseFactory; return function IconField_Factory(__ngFactoryType__) { return (ɵIconField_BaseFactory || (ɵIconField_BaseFactory = i0.ɵɵgetInheritedFactory(IconField)))(__ngFactoryType__ || IconField); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: IconField, selectors: [[\"p-iconfield\"], [\"p-iconField\"], [\"p-icon-field\"]], hostAttrs: [1, \"p-iconfield\"], hostVars: 6, hostBindings: function IconField_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵclassMap(ctx._styleClass);\n i0.ɵɵclassProp(\"p-iconfield-left\", ctx.iconPosition === \"left\")(\"p-iconfield-right\", ctx.iconPosition === \"right\");\n } }, inputs: { iconPosition: \"iconPosition\", styleClass: \"styleClass\" }, standalone: true, features: [i0.ɵɵProvidersFeature([IconFieldStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function IconField_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n } }, dependencies: [CommonModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(IconField, [{\n type: Component,\n args: [{\n selector: 'p-iconfield, p-iconField, p-icon-field',\n standalone: true,\n imports: [CommonModule],\n template: ` `,\n providers: [IconFieldStyle],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'p-iconfield',\n '[class.p-iconfield-left]': 'iconPosition === \"left\"',\n '[class.p-iconfield-right]': 'iconPosition === \"right\"'\n }\n }]\n }], null, { iconPosition: [{\n type: Input\n }], _styleClass: [{\n type: HostBinding,\n args: ['class']\n }], styleClass: [{\n type: Input\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(IconField, { className: \"IconField\" }); })();\nclass IconFieldModule {\n static ɵfac = function IconFieldModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || IconFieldModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: IconFieldModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [IconField] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(IconFieldModule, [{\n type: NgModule,\n args: [{\n imports: [IconField],\n exports: [IconField]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(IconFieldModule, { imports: [IconField], exports: [IconField] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { IconField, IconFieldClasses, IconFieldModule, IconFieldStyle };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass BlankIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵBlankIcon_BaseFactory; return function BlankIcon_Factory(__ngFactoryType__) { return (ɵBlankIcon_BaseFactory || (ɵBlankIcon_BaseFactory = i0.ɵɵgetInheritedFactory(BlankIcon)))(__ngFactoryType__ || BlankIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BlankIcon, selectors: [[\"BlankIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 0, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"width\", \"1\", \"height\", \"1\", \"fill\", \"currentColor\", \"fill-opacity\", \"0\"]], template: function BlankIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"rect\", 1);\n i0.ɵɵelementEnd();\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BlankIcon, [{\n type: Component,\n args: [{\n selector: 'BlankIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(BlankIcon, { className: \"BlankIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BlankIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass SearchIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵSearchIcon_BaseFactory; return function SearchIcon_Factory(__ngFactoryType__) { return (ɵSearchIcon_BaseFactory || (ɵSearchIcon_BaseFactory = i0.ɵɵgetInheritedFactory(SearchIcon)))(__ngFactoryType__ || SearchIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchIcon, selectors: [[\"SearchIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function SearchIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SearchIcon, [{\n type: Component,\n args: [{\n selector: 'SearchIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchIcon, { className: \"SearchIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SearchIcon };\n","import { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, HostBinding, NgModule } from '@angular/core';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: 'p-inputicon'\n};\nclass InputIconStyle extends BaseStyle {\n name = 'inputicon';\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵInputIconStyle_BaseFactory; return function InputIconStyle_Factory(__ngFactoryType__) { return (ɵInputIconStyle_BaseFactory || (ɵInputIconStyle_BaseFactory = i0.ɵɵgetInheritedFactory(InputIconStyle)))(__ngFactoryType__ || InputIconStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: InputIconStyle, factory: InputIconStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputIconStyle, [{\n type: Injectable\n }], null, null); })();\n\nconst _c0 = [\"*\"];\n/**\n * InputIcon displays an icon.\n * @group Components\n */\nclass InputIcon extends BaseComponent {\n /**\n * Style class of the element.\n * @group Props\n */\n styleClass;\n get hostClasses() {\n return this.styleClass;\n }\n _componentStyle = inject(InputIconStyle);\n static ɵfac = /*@__PURE__*/ (() => { let ɵInputIcon_BaseFactory; return function InputIcon_Factory(__ngFactoryType__) { return (ɵInputIcon_BaseFactory || (ɵInputIcon_BaseFactory = i0.ɵɵgetInheritedFactory(InputIcon)))(__ngFactoryType__ || InputIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: InputIcon, selectors: [[\"p-inputicon\"], [\"p-inputIcon\"]], hostVars: 4, hostBindings: function InputIcon_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵclassMap(ctx.hostClasses);\n i0.ɵɵclassProp(\"p-inputicon\", true);\n } }, inputs: { styleClass: \"styleClass\" }, standalone: true, features: [i0.ɵɵProvidersFeature([InputIconStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function InputIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n } }, dependencies: [CommonModule, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputIcon, [{\n type: Component,\n args: [{\n selector: 'p-inputicon, p-inputIcon',\n standalone: true,\n imports: [CommonModule, SharedModule],\n template: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [InputIconStyle],\n host: {\n '[class]': 'styleClass',\n '[class.p-inputicon]': 'true'\n }\n }]\n }], null, { styleClass: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class']\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(InputIcon, { className: \"InputIcon\" }); })();\nclass InputIconModule {\n static ɵfac = function InputIconModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InputIconModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: InputIconModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [InputIcon, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputIconModule, [{\n type: NgModule,\n args: [{\n imports: [InputIcon, SharedModule],\n exports: [InputIcon, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(InputIconModule, { imports: [InputIcon, SharedModule], exports: [InputIcon, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { InputIcon, InputIconModule, InputIconStyle };\n","import { animation, style, animate, trigger, transition, useAnimation } from '@angular/animations';\nimport * as i2 from '@angular/common';\nimport { isPlatformBrowser, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { getTargetElement, focus, addClass, removeClass, isTouchDevice } from '@primeuix/utils';\nimport * as i1 from 'primeng/api';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { ObjectUtils, ZIndexUtils } from 'primeng/utils';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-overlay {\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n}\n\n.p-overlay-modal {\n display: flex;\n align-items: center;\n justify-content: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.p-overlay-content {\n transform-origin: inherit;\n}\n\n.p-overlay-modal > .p-overlay-content {\n z-index: 1;\n width: 90%;\n}\n\n/* Position */\n/* top */\n.p-overlay-top {\n align-items: flex-start;\n}\n.p-overlay-top-start {\n align-items: flex-start;\n justify-content: flex-start;\n}\n.p-overlay-top-end {\n align-items: flex-start;\n justify-content: flex-end;\n}\n\n/* bottom */\n.p-overlay-bottom {\n align-items: flex-end;\n}\n.p-overlay-bottom-start {\n align-items: flex-end;\n justify-content: flex-start;\n}\n.p-overlay-bottom-end {\n align-items: flex-end;\n justify-content: flex-end;\n}\n\n/* left */\n.p-overlay-left {\n justify-content: flex-start;\n}\n.p-overlay-left-start {\n justify-content: flex-start;\n align-items: flex-start;\n}\n.p-overlay-left-end {\n justify-content: flex-start;\n align-items: flex-end;\n}\n\n/* right */\n.p-overlay-right {\n justify-content: flex-end;\n}\n.p-overlay-right-start {\n justify-content: flex-end;\n align-items: flex-start;\n}\n.p-overlay-right-end {\n justify-content: flex-end;\n align-items: flex-end;\n}\n`;\nclass OverlayStyle extends BaseStyle {\n name = 'overlay';\n theme = theme;\n static ɵfac = /*@__PURE__*/ (() => { let ɵOverlayStyle_BaseFactory; return function OverlayStyle_Factory(__ngFactoryType__) { return (ɵOverlayStyle_BaseFactory || (ɵOverlayStyle_BaseFactory = i0.ɵɵgetInheritedFactory(OverlayStyle)))(__ngFactoryType__ || OverlayStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: OverlayStyle, factory: OverlayStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayStyle, [{\n type: Injectable\n }], null, null); })();\n\nconst _c0 = [\"content\"];\nconst _c1 = [\"overlay\"];\nconst _c2 = [\"*\"];\nconst _c3 = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) => ({ \"p-overlay p-component\": true, \"p-overlay-modal p-overlay-mask p-overlay-mask-enter\": a0, \"p-overlay-center\": a1, \"p-overlay-top\": a2, \"p-overlay-top-start\": a3, \"p-overlay-top-end\": a4, \"p-overlay-bottom\": a5, \"p-overlay-bottom-start\": a6, \"p-overlay-bottom-end\": a7, \"p-overlay-left\": a8, \"p-overlay-left-start\": a9, \"p-overlay-left-end\": a10, \"p-overlay-right\": a11, \"p-overlay-right-start\": a12, \"p-overlay-right-end\": a13 });\nconst _c4 = (a0, a1, a2) => ({ showTransitionParams: a0, hideTransitionParams: a1, transform: a2 });\nconst _c5 = a0 => ({ value: \"visible\", params: a0 });\nconst _c6 = a0 => ({ mode: a0 });\nconst _c7 = a0 => ({ $implicit: a0 });\nfunction Overlay_div_0_div_2_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Overlay_div_0_div_2_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3, 1);\n i0.ɵɵlistener(\"click\", function Overlay_div_0_div_2_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onOverlayContentClick($event)); })(\"@overlayContentAnimation.start\", function Overlay_div_0_div_2_Template_div_animation_overlayContentAnimation_start_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onOverlayContentAnimationStart($event)); })(\"@overlayContentAnimation.done\", function Overlay_div_0_div_2_Template_div_animation_overlayContentAnimation_done_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onOverlayContentAnimationDone($event)); });\n i0.ɵɵprojection(2);\n i0.ɵɵtemplate(3, Overlay_div_0_div_2_ng_container_3_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵclassMap(ctx_r1.contentStyleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx_r1.contentStyle)(\"ngClass\", \"p-overlay-content\")(\"@overlayContentAnimation\", i0.ɵɵpureFunction1(11, _c5, i0.ɵɵpureFunction3(7, _c4, ctx_r1.showTransitionOptions, ctx_r1.hideTransitionOptions, ctx_r1.transformOptions[ctx_r1.modal ? ctx_r1.overlayResponsiveDirection : \"default\"])));\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.contentTemplate || ctx_r1._contentTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(15, _c7, i0.ɵɵpureFunction1(13, _c6, ctx_r1.overlayMode)));\n} }\nfunction Overlay_div_0_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3, 0);\n i0.ɵɵlistener(\"click\", function Overlay_div_0_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOverlayClick()); });\n i0.ɵɵtemplate(2, Overlay_div_0_div_2_Template, 4, 17, \"div\", 2);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.styleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx_r1.style)(\"ngClass\", i0.ɵɵpureFunctionV(5, _c3, [ctx_r1.modal, ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"center\", ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"top\", ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"top-start\", ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"top-end\", ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"bottom\", ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"bottom-start\", ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"bottom-end\", ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"left\", ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"left-start\", ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"left-end\", ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"right\", ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"right-start\", ctx_r1.modal && ctx_r1.overlayResponsiveDirection === \"right-end\"]));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.visible);\n} }\nconst showOverlayContentAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{showTransitionParams}}')]);\nconst hideOverlayContentAnimation = animation([animate('{{hideTransitionParams}}', style({ transform: '{{transform}}', opacity: 0 }))]);\n/**\n * This API allows overlay components to be controlled from the PrimeNG. In this way, all overlay components in the application can have the same behavior.\n * @group Components\n */\nclass Overlay extends BaseComponent {\n overlayService;\n zone;\n /**\n * The visible property is an input that determines the visibility of the component.\n * @defaultValue false\n * @group Props\n */\n get visible() {\n return this._visible;\n }\n set visible(value) {\n this._visible = value;\n if (this._visible && !this.modalVisible) {\n this.modalVisible = true;\n }\n }\n /**\n * The mode property is an input that determines the overlay mode type or string.\n * @defaultValue null\n * @group Props\n */\n get mode() {\n return this._mode || this.overlayOptions?.mode;\n }\n set mode(value) {\n this._mode = value;\n }\n /**\n * The style property is an input that determines the style object for the component.\n * @defaultValue null\n * @group Props\n */\n get style() {\n return ObjectUtils.merge(this._style, this.modal ? this.overlayResponsiveOptions?.style : this.overlayOptions?.style);\n }\n set style(value) {\n this._style = value;\n }\n /**\n * The styleClass property is an input that determines the CSS class(es) for the component.\n * @defaultValue null\n * @group Props\n */\n get styleClass() {\n return ObjectUtils.merge(this._styleClass, this.modal ? this.overlayResponsiveOptions?.styleClass : this.overlayOptions?.styleClass);\n }\n set styleClass(value) {\n this._styleClass = value;\n }\n /**\n * The contentStyle property is an input that determines the style object for the content of the component.\n * @defaultValue null\n * @group Props\n */\n get contentStyle() {\n return ObjectUtils.merge(this._contentStyle, this.modal ? this.overlayResponsiveOptions?.contentStyle : this.overlayOptions?.contentStyle);\n }\n set contentStyle(value) {\n this._contentStyle = value;\n }\n /**\n * The contentStyleClass property is an input that determines the CSS class(es) for the content of the component.\n * @defaultValue null\n * @group Props\n */\n get contentStyleClass() {\n return ObjectUtils.merge(this._contentStyleClass, this.modal ? this.overlayResponsiveOptions?.contentStyleClass : this.overlayOptions?.contentStyleClass);\n }\n set contentStyleClass(value) {\n this._contentStyleClass = value;\n }\n /**\n * The target property is an input that specifies the target element or selector for the component.\n * @defaultValue null\n * @group Props\n */\n get target() {\n const value = this._target || this.overlayOptions?.target;\n return value === undefined ? '@prev' : value;\n }\n set target(value) {\n this._target = value;\n }\n /**\n * Overlay can be mounted into its location, body or DOM element instance using this option.\n * @defaultValue null\n * @group Props\n */\n get appendTo() {\n return this._appendTo || this.overlayOptions?.appendTo;\n }\n set appendTo(value) {\n this._appendTo = value;\n }\n /**\n * The autoZIndex determines whether to automatically manage layering. Its default value is 'false'.\n * @defaultValue false\n * @group Props\n */\n get autoZIndex() {\n const value = this._autoZIndex || this.overlayOptions?.autoZIndex;\n return value === undefined ? true : value;\n }\n set autoZIndex(value) {\n this._autoZIndex = value;\n }\n /**\n * The baseZIndex is base zIndex value to use in layering.\n * @defaultValue null\n * @group Props\n */\n get baseZIndex() {\n const value = this._baseZIndex || this.overlayOptions?.baseZIndex;\n return value === undefined ? 0 : value;\n }\n set baseZIndex(value) {\n this._baseZIndex = value;\n }\n /**\n * Transition options of the show or hide animation.\n * @defaultValue .12s cubic-bezier(0, 0, 0.2, 1)\n * @group Props\n */\n get showTransitionOptions() {\n const value = this._showTransitionOptions || this.overlayOptions?.showTransitionOptions;\n return value === undefined ? '.12s cubic-bezier(0, 0, 0.2, 1)' : value;\n }\n set showTransitionOptions(value) {\n this._showTransitionOptions = value;\n }\n /**\n * The hideTransitionOptions property is an input that determines the CSS transition options for hiding the component.\n * @defaultValue .1s linear\n * @group Props\n */\n get hideTransitionOptions() {\n const value = this._hideTransitionOptions || this.overlayOptions?.hideTransitionOptions;\n return value === undefined ? '.1s linear' : value;\n }\n set hideTransitionOptions(value) {\n this._hideTransitionOptions = value;\n }\n /**\n * The listener property is an input that specifies the listener object for the component.\n * @defaultValue null\n * @group Props\n */\n get listener() {\n return this._listener || this.overlayOptions?.listener;\n }\n set listener(value) {\n this._listener = value;\n }\n /**\n * It is the option used to determine in which mode it should appear according to the given media or breakpoint.\n * @defaultValue null\n * @group Props\n */\n get responsive() {\n return this._responsive || this.overlayOptions?.responsive;\n }\n set responsive(val) {\n this._responsive = val;\n }\n /**\n * The options property is an input that specifies the overlay options for the component.\n * @defaultValue null\n * @group Props\n */\n get options() {\n return this._options;\n }\n set options(val) {\n this._options = val;\n }\n /**\n * This EventEmitter is used to notify changes in the visibility state of a component.\n * @param {Boolean} boolean - Value of visibility as boolean.\n * @group Emits\n */\n visibleChange = new EventEmitter();\n /**\n * Callback to invoke before the overlay is shown.\n * @param {OverlayOnBeforeShowEvent} event - Custom overlay before show event.\n * @group Emits\n */\n onBeforeShow = new EventEmitter();\n /**\n * Callback to invoke when the overlay is shown.\n * @param {OverlayOnShowEvent} event - Custom overlay show event.\n * @group Emits\n */\n onShow = new EventEmitter();\n /**\n * Callback to invoke before the overlay is hidden.\n * @param {OverlayOnBeforeHideEvent} event - Custom overlay before hide event.\n * @group Emits\n */\n onBeforeHide = new EventEmitter();\n /**\n * Callback to invoke when the overlay is hidden\n * @param {OverlayOnHideEvent} event - Custom hide event.\n * @group Emits\n */\n onHide = new EventEmitter();\n /**\n * Callback to invoke when the animation is started.\n * @param {AnimationEvent} event - Animation event.\n * @group Emits\n */\n onAnimationStart = new EventEmitter();\n /**\n * Callback to invoke when the animation is done.\n * @param {AnimationEvent} event - Animation event.\n * @group Emits\n */\n onAnimationDone = new EventEmitter();\n overlayViewChild;\n contentViewChild;\n /**\n * Content template of the component.\n * @group Templates\n */\n contentTemplate;\n templates;\n _contentTemplate;\n _visible = false;\n _mode;\n _style;\n _styleClass;\n _contentStyle;\n _contentStyleClass;\n _target;\n _appendTo;\n _autoZIndex;\n _baseZIndex;\n _showTransitionOptions;\n _hideTransitionOptions;\n _listener;\n _responsive;\n _options;\n modalVisible = false;\n isOverlayClicked = false;\n isOverlayContentClicked = false;\n scrollHandler;\n documentClickListener;\n documentResizeListener;\n _componentStyle = inject(OverlayStyle);\n documentKeyboardListener;\n window;\n transformOptions = {\n default: 'scaleY(0.8)',\n center: 'scale(0.7)',\n top: 'translate3d(0px, -100%, 0px)',\n 'top-start': 'translate3d(0px, -100%, 0px)',\n 'top-end': 'translate3d(0px, -100%, 0px)',\n bottom: 'translate3d(0px, 100%, 0px)',\n 'bottom-start': 'translate3d(0px, 100%, 0px)',\n 'bottom-end': 'translate3d(0px, 100%, 0px)',\n left: 'translate3d(-100%, 0px, 0px)',\n 'left-start': 'translate3d(-100%, 0px, 0px)',\n 'left-end': 'translate3d(-100%, 0px, 0px)',\n right: 'translate3d(100%, 0px, 0px)',\n 'right-start': 'translate3d(100%, 0px, 0px)',\n 'right-end': 'translate3d(100%, 0px, 0px)'\n };\n get modal() {\n if (isPlatformBrowser(this.platformId)) {\n return this.mode === 'modal' || (this.overlayResponsiveOptions && this.document.defaultView?.matchMedia(this.overlayResponsiveOptions.media?.replace('@media', '') || `(max-width: ${this.overlayResponsiveOptions.breakpoint})`).matches);\n }\n }\n get overlayMode() {\n return this.mode || (this.modal ? 'modal' : 'overlay');\n }\n get overlayOptions() {\n return { ...this.config?.overlayOptions, ...this.options }; // TODO: Improve performance\n }\n get overlayResponsiveOptions() {\n return { ...this.overlayOptions?.responsive, ...this.responsive }; // TODO: Improve performance\n }\n get overlayResponsiveDirection() {\n return this.overlayResponsiveOptions?.direction || 'center';\n }\n get overlayEl() {\n return this.overlayViewChild?.nativeElement;\n }\n get contentEl() {\n return this.contentViewChild?.nativeElement;\n }\n get targetEl() {\n return getTargetElement(this.target, this.el?.nativeElement);\n }\n constructor(overlayService, zone) {\n super();\n this.overlayService = overlayService;\n this.zone = zone;\n }\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this._contentTemplate = item.template;\n break;\n // TODO: new template types may be added.\n default:\n this._contentTemplate = item.template;\n break;\n }\n });\n }\n show(overlay, isFocus = false) {\n this.onVisibleChange(true);\n this.handleEvents('onShow', { overlay: overlay || this.overlayEl, target: this.targetEl, mode: this.overlayMode });\n isFocus && focus(this.targetEl);\n this.modal && addClass(this.document?.body, 'p-overflow-hidden');\n }\n hide(overlay, isFocus = false) {\n if (!this.visible) {\n return;\n }\n else {\n this.onVisibleChange(false);\n this.handleEvents('onHide', { overlay: overlay || this.overlayEl, target: this.targetEl, mode: this.overlayMode });\n isFocus && focus(this.targetEl);\n this.modal && removeClass(this.document?.body, 'p-overflow-hidden');\n }\n }\n alignOverlay() {\n !this.modal && DomHandler.alignOverlay(this.overlayEl, this.targetEl, this.appendTo);\n }\n onVisibleChange(visible) {\n this._visible = visible;\n this.visibleChange.emit(visible);\n }\n onOverlayClick() {\n this.isOverlayClicked = true;\n }\n onOverlayContentClick(event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.targetEl\n });\n this.isOverlayContentClicked = true;\n }\n onOverlayContentAnimationStart(event) {\n switch (event.toState) {\n case 'visible':\n this.handleEvents('onBeforeShow', { overlay: this.overlayEl, target: this.targetEl, mode: this.overlayMode });\n if (this.autoZIndex) {\n ZIndexUtils.set(this.overlayMode, this.overlayEl, this.baseZIndex + this.config?.zIndex[this.overlayMode]);\n }\n DomHandler.appendOverlay(this.overlayEl, this.appendTo === 'body' ? this.document.body : this.appendTo, this.appendTo);\n this.alignOverlay();\n break;\n case 'void':\n this.handleEvents('onBeforeHide', { overlay: this.overlayEl, target: this.targetEl, mode: this.overlayMode });\n this.modal && addClass(this.overlayEl, 'p-overlay-mask-leave');\n break;\n }\n this.handleEvents('onAnimationStart', event);\n }\n onOverlayContentAnimationDone(event) {\n const container = this.overlayEl || event.element.parentElement;\n switch (event.toState) {\n case 'visible':\n this.show(container, true);\n this.bindListeners();\n break;\n case 'void':\n this.hide(container, true);\n this.unbindListeners();\n DomHandler.appendOverlay(this.overlayEl, this.targetEl, this.appendTo);\n ZIndexUtils.clear(container);\n this.modalVisible = false;\n this.cd.markForCheck();\n break;\n }\n this.handleEvents('onAnimationDone', event);\n }\n handleEvents(name, params) {\n this[name].emit(params);\n this.options && this.options[name] && this.options[name](params);\n this.config?.overlayOptions && (this.config?.overlayOptions)[name] && (this.config?.overlayOptions)[name](params);\n }\n bindListeners() {\n this.bindScrollListener();\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindDocumentKeyboardListener();\n }\n unbindListeners() {\n this.unbindScrollListener();\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindDocumentKeyboardListener();\n }\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.targetEl, (event) => {\n const valid = this.listener ? this.listener(event, { type: 'scroll', mode: this.overlayMode, valid: true }) : true;\n valid && this.hide(event, true);\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.documentClickListener = this.renderer.listen(this.document, 'click', (event) => {\n const isTargetClicked = this.targetEl && (this.targetEl.isSameNode(event.target) || (!this.isOverlayClicked && this.targetEl.contains(event.target)));\n const isOutsideClicked = !isTargetClicked && !this.isOverlayContentClicked;\n const valid = this.listener ? this.listener(event, { type: 'outside', mode: this.overlayMode, valid: event.which !== 3 && isOutsideClicked }) : isOutsideClicked;\n valid && this.hide(event);\n this.isOverlayClicked = this.isOverlayContentClicked = false;\n });\n }\n }\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n bindDocumentResizeListener() {\n if (!this.documentResizeListener) {\n this.documentResizeListener = this.renderer.listen(this.document.defaultView, 'resize', (event) => {\n const valid = this.listener ? this.listener(event, { type: 'resize', mode: this.overlayMode, valid: !isTouchDevice() }) : !isTouchDevice();\n valid && this.hide(event, true);\n });\n }\n }\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n bindDocumentKeyboardListener() {\n if (this.documentKeyboardListener) {\n return;\n }\n this.zone.runOutsideAngular(() => {\n this.documentKeyboardListener = this.renderer.listen(this.document.defaultView, 'keydown', (event) => {\n if (this.overlayOptions.hideOnEscape === false || event.code !== 'Escape') {\n return;\n }\n const valid = this.listener ? this.listener(event, { type: 'keydown', mode: this.overlayMode, valid: !isTouchDevice() }) : !isTouchDevice();\n if (valid) {\n this.zone.run(() => {\n this.hide(event, true);\n });\n }\n });\n });\n }\n unbindDocumentKeyboardListener() {\n if (this.documentKeyboardListener) {\n this.documentKeyboardListener();\n this.documentKeyboardListener = null;\n }\n }\n ngOnDestroy() {\n this.hide(this.overlayEl, true);\n if (this.overlayEl) {\n DomHandler.appendOverlay(this.overlayEl, this.targetEl, this.appendTo);\n ZIndexUtils.clear(this.overlayEl);\n }\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n this.unbindListeners();\n super.ngOnDestroy();\n }\n static ɵfac = function Overlay_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Overlay)(i0.ɵɵdirectiveInject(i1.OverlayService), i0.ɵɵdirectiveInject(i0.NgZone)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Overlay, selectors: [[\"p-overlay\"]], contentQueries: function Overlay_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, viewQuery: function Overlay_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c1, 5);\n i0.ɵɵviewQuery(_c0, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.overlayViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentViewChild = _t.first);\n } }, inputs: { visible: \"visible\", mode: \"mode\", style: \"style\", styleClass: \"styleClass\", contentStyle: \"contentStyle\", contentStyleClass: \"contentStyleClass\", target: \"target\", appendTo: \"appendTo\", autoZIndex: \"autoZIndex\", baseZIndex: \"baseZIndex\", showTransitionOptions: \"showTransitionOptions\", hideTransitionOptions: \"hideTransitionOptions\", listener: \"listener\", responsive: \"responsive\", options: \"options\" }, outputs: { visibleChange: \"visibleChange\", onBeforeShow: \"onBeforeShow\", onShow: \"onShow\", onBeforeHide: \"onBeforeHide\", onHide: \"onHide\", onAnimationStart: \"onAnimationStart\", onAnimationDone: \"onAnimationDone\" }, standalone: true, features: [i0.ɵɵProvidersFeature([OverlayStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c2, decls: 1, vars: 1, consts: [[\"overlay\", \"\"], [\"content\", \"\"], [3, \"ngStyle\", \"class\", \"ngClass\", \"click\", 4, \"ngIf\"], [3, \"click\", \"ngStyle\", \"ngClass\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function Overlay_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, Overlay_div_0_Template, 3, 20, \"div\", 2);\n } if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.modalVisible);\n } }, dependencies: [CommonModule, i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, SharedModule], encapsulation: 2, data: { animation: [trigger('overlayContentAnimation', [transition(':enter', [useAnimation(showOverlayContentAnimation)]), transition(':leave', [useAnimation(hideOverlayContentAnimation)])])] }, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Overlay, [{\n type: Component,\n args: [{\n selector: 'p-overlay',\n standalone: true,\n imports: [CommonModule, SharedModule],\n template: `\n \n \n \n \n \n \n `,\n animations: [trigger('overlayContentAnimation', [transition(':enter', [useAnimation(showOverlayContentAnimation)]), transition(':leave', [useAnimation(hideOverlayContentAnimation)])])],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [OverlayStyle]\n }]\n }], () => [{ type: i1.OverlayService }, { type: i0.NgZone }], { visible: [{\n type: Input\n }], mode: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], contentStyle: [{\n type: Input\n }], contentStyleClass: [{\n type: Input\n }], target: [{\n type: Input\n }], appendTo: [{\n type: Input\n }], autoZIndex: [{\n type: Input\n }], baseZIndex: [{\n type: Input\n }], showTransitionOptions: [{\n type: Input\n }], hideTransitionOptions: [{\n type: Input\n }], listener: [{\n type: Input\n }], responsive: [{\n type: Input\n }], options: [{\n type: Input\n }], visibleChange: [{\n type: Output\n }], onBeforeShow: [{\n type: Output\n }], onShow: [{\n type: Output\n }], onBeforeHide: [{\n type: Output\n }], onHide: [{\n type: Output\n }], onAnimationStart: [{\n type: Output\n }], onAnimationDone: [{\n type: Output\n }], overlayViewChild: [{\n type: ViewChild,\n args: ['overlay']\n }], contentViewChild: [{\n type: ViewChild,\n args: ['content']\n }], contentTemplate: [{\n type: ContentChild,\n args: ['content', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Overlay, { className: \"Overlay\" }); })();\nclass OverlayModule {\n static ɵfac = function OverlayModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || OverlayModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: OverlayModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Overlay, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayModule, [{\n type: NgModule,\n args: [{\n imports: [Overlay, SharedModule],\n exports: [Overlay, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(OverlayModule, { imports: [Overlay, SharedModule], exports: [Overlay, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Overlay, OverlayModule, OverlayStyle };\n","import * as i1 from '@angular/common';\nimport { isPlatformBrowser, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { isVisible, getWidth, getHeight, findSingle, isTouchDevice } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { SpinnerIcon } from 'primeng/icons';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-virtualscroller {\n position: relative;\n overflow: auto;\n contain: strict;\n transform: translateZ(0);\n will-change: scroll-position;\n outline: 0 none;\n}\n\n.p-virtualscroller-content {\n position: absolute;\n top: 0;\n left: 0;\n min-height: 100%;\n min-width: 100%;\n will-change: transform;\n}\n\n.p-virtualscroller-spacer {\n position: absolute;\n top: 0;\n left: 0;\n height: 1px;\n width: 1px;\n transform-origin: 0 0;\n pointer-events: none;\n}\n\n.p-virtualscroller-loader {\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: ${dt('virtualscroller.loader.mask.background')};\n color: ${dt('virtualscroller.loader.mask.color')};\n}\n\n.p-virtualscroller-loader-mask {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-virtualscroller-loading-icon {\n font-size: ${dt('virtualscroller.loader.icon.size')};\n width: ${dt('virtualscroller.loader.icon.size')};\n height: ${dt('virtualscroller.loader.icon.size')};\n}\n\n.p-virtualscroller-horizontal > .p-virtualscroller-content {\n display: flex;\n}\n\n.p-virtualscroller-inline .p-virtualscroller-content {\n position: static;\n}\n`;\nclass ScrollerStyle extends BaseStyle {\n name = 'virtualscroller';\n theme = theme;\n static ɵfac = /*@__PURE__*/ (() => { let ɵScrollerStyle_BaseFactory; return function ScrollerStyle_Factory(__ngFactoryType__) { return (ɵScrollerStyle_BaseFactory || (ɵScrollerStyle_BaseFactory = i0.ɵɵgetInheritedFactory(ScrollerStyle)))(__ngFactoryType__ || ScrollerStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ScrollerStyle, factory: ScrollerStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ScrollerStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * VirtualScroller is a performant approach to handle huge data efficiently.\n *\n * [Live Demo](https://www.primeng.org/scroller/)\n *\n * @module scrollerstyle\n *\n */\nvar ScrollerClasses;\n(function (ScrollerClasses) {\n /**\n * Class name of the root element\n */\n ScrollerClasses[\"root\"] = \"p-virtualscroller\";\n /**\n * Class name of the content element\n */\n ScrollerClasses[\"content\"] = \"p-virtualscroller-content\";\n /**\n * Class name of the spacer element\n */\n ScrollerClasses[\"spacer\"] = \"p-virtualscroller-spacer\";\n /**\n * Class name of the loader element\n */\n ScrollerClasses[\"loader\"] = \"p-virtualscroller-loader\";\n /**\n * Class name of the loading icon element\n */\n ScrollerClasses[\"loadingIcon\"] = \"p-virtualscroller-loading-icon\";\n})(ScrollerClasses || (ScrollerClasses = {}));\n\nconst _c0 = [\"content\"];\nconst _c1 = [\"item\"];\nconst _c2 = [\"loader\"];\nconst _c3 = [\"loadericon\"];\nconst _c4 = [\"element\"];\nconst _c5 = [\"*\"];\nconst _c6 = (a0, a1, a2) => ({ \"p-virtualscroller\": true, \"p-virtualscroller-inline\": a0, \"p-virtualscroller-both p-both-scroll\": a1, \"p-virtualscroller-horizontal p-horizontal-scroll\": a2 });\nconst _c7 = (a0, a1) => ({ $implicit: a0, options: a1 });\nconst _c8 = a0 => ({ \"p-virtualscroller-loading \": a0 });\nconst _c9 = a0 => ({ \"p-virtualscroller-loader-mask\": a0 });\nconst _c10 = a0 => ({ numCols: a0 });\nconst _c11 = a0 => ({ options: a0 });\nconst _c12 = () => ({ styleClass: \"p-virtualscroller-loading-icon\" });\nconst _c13 = (a0, a1) => ({ rows: a0, columns: a1 });\nfunction Scroller_ng_container_0_ng_container_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Scroller_ng_container_0_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Scroller_ng_container_0_ng_container_3_ng_container_1_Template, 1, 0, \"ng-container\", 10);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.contentTemplate || ctx_r1._contentTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c7, ctx_r1.loadedItems, ctx_r1.getContentOptions()));\n} }\nfunction Scroller_ng_container_0_ng_template_4_ng_container_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Scroller_ng_container_0_ng_template_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Scroller_ng_container_0_ng_template_4_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 10);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const item_r3 = ctx.$implicit;\n const index_r4 = ctx.index;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.itemTemplate || ctx_r1._itemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c7, item_r3, ctx_r1.getOptions(index_r4)));\n} }\nfunction Scroller_ng_container_0_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 11, 3);\n i0.ɵɵtemplate(2, Scroller_ng_container_0_ng_template_4_ng_container_2_Template, 2, 5, \"ng-container\", 12);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(5, _c8, ctx_r1.d_loading))(\"ngStyle\", ctx_r1.contentStyle);\n i0.ɵɵattribute(\"data-pc-section\", \"content\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.loadedItems)(\"ngForTrackBy\", ctx_r1._trackBy);\n} }\nfunction Scroller_ng_container_0_div_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 13);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngStyle\", ctx_r1.spacerStyle);\n i0.ɵɵattribute(\"data-pc-section\", \"spacer\");\n} }\nfunction Scroller_ng_container_0_div_7_ng_container_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Scroller_ng_container_0_div_7_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Scroller_ng_container_0_div_7_ng_container_1_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 10);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const index_r5 = ctx.index;\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.loaderTemplate || ctx_r1._loaderTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(4, _c11, ctx_r1.getLoaderOptions(index_r5, ctx_r1.both && i0.ɵɵpureFunction1(2, _c10, ctx_r1.numItemsInViewport.cols))));\n} }\nfunction Scroller_ng_container_0_div_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Scroller_ng_container_0_div_7_ng_container_1_ng_container_1_Template, 2, 6, \"ng-container\", 15);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.loaderArr);\n} }\nfunction Scroller_ng_container_0_div_7_ng_template_2_ng_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Scroller_ng_container_0_div_7_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Scroller_ng_container_0_div_7_ng_template_2_ng_container_0_ng_container_1_Template, 1, 0, \"ng-container\", 10);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.loaderIconTemplate || ctx_r1._loaderIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(3, _c11, i0.ɵɵpureFunction0(2, _c12)));\n} }\nfunction Scroller_ng_container_0_div_7_ng_template_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"SpinnerIcon\", 16);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-virtualscroller-loading-icon pi-spin\");\n i0.ɵɵattribute(\"data-pc-section\", \"loadingIcon\");\n} }\nfunction Scroller_ng_container_0_div_7_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Scroller_ng_container_0_div_7_ng_template_2_ng_container_0_Template, 2, 5, \"ng-container\", 6)(1, Scroller_ng_container_0_div_7_ng_template_2_ng_template_1_Template, 1, 2, \"ng-template\", null, 5, i0.ɵɵtemplateRefExtractor);\n} if (rf & 2) {\n const buildInLoaderIcon_r6 = i0.ɵɵreference(2);\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.loaderIconTemplate || ctx_r1._loaderIconTemplate)(\"ngIfElse\", buildInLoaderIcon_r6);\n} }\nfunction Scroller_ng_container_0_div_7_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 14);\n i0.ɵɵtemplate(1, Scroller_ng_container_0_div_7_ng_container_1_Template, 2, 1, \"ng-container\", 6)(2, Scroller_ng_container_0_div_7_ng_template_2_Template, 3, 2, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const buildInLoader_r7 = i0.ɵɵreference(3);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(4, _c9, !ctx_r1.loaderTemplate));\n i0.ɵɵattribute(\"data-pc-section\", \"loader\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.loaderTemplate || ctx_r1._loaderTemplate)(\"ngIfElse\", buildInLoader_r7);\n} }\nfunction Scroller_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 7, 1);\n i0.ɵɵlistener(\"scroll\", function Scroller_ng_container_0_Template_div_scroll_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onContainerScroll($event)); });\n i0.ɵɵtemplate(3, Scroller_ng_container_0_ng_container_3_Template, 2, 5, \"ng-container\", 6)(4, Scroller_ng_container_0_ng_template_4_Template, 3, 7, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor)(6, Scroller_ng_container_0_div_6_Template, 1, 2, \"div\", 8)(7, Scroller_ng_container_0_div_7_Template, 4, 6, \"div\", 9);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const buildInContent_r8 = i0.ɵɵreference(5);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵclassMap(ctx_r1._styleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx_r1._style)(\"ngClass\", i0.ɵɵpureFunction3(12, _c6, ctx_r1.inline, ctx_r1.both, ctx_r1.horizontal));\n i0.ɵɵattribute(\"id\", ctx_r1._id)(\"tabindex\", ctx_r1.tabindex)(\"data-pc-name\", \"scroller\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.contentTemplate || ctx_r1._contentTemplate)(\"ngIfElse\", buildInContent_r8);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r1._showSpacer);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.loaderDisabled && ctx_r1._showLoader && ctx_r1.d_loading);\n} }\nfunction Scroller_ng_template_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Scroller_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Scroller_ng_template_1_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 10);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.contentTemplate || ctx_r1._contentTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(5, _c7, ctx_r1.items, i0.ɵɵpureFunction2(2, _c13, ctx_r1._items, ctx_r1.loadedColumns)));\n} }\nfunction Scroller_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojection(0);\n i0.ɵɵtemplate(1, Scroller_ng_template_1_ng_container_1_Template, 2, 8, \"ng-container\", 17);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.contentTemplate || ctx_r1._contentTemplate);\n} }\n/**\n * Scroller is a performance-approach to handle huge data efficiently.\n * @group Components\n */\nclass Scroller extends BaseComponent {\n zone;\n /**\n * Unique identifier of the element.\n * @group Props\n */\n get id() {\n return this._id;\n }\n set id(val) {\n this._id = val;\n }\n /**\n * Inline style of the component.\n * @group Props\n */\n get style() {\n return this._style;\n }\n set style(val) {\n this._style = val;\n }\n /**\n * Style class of the element.\n * @group Props\n */\n get styleClass() {\n return this._styleClass;\n }\n set styleClass(val) {\n this._styleClass = val;\n }\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n get tabindex() {\n return this._tabindex;\n }\n set tabindex(val) {\n this._tabindex = val;\n }\n /**\n * An array of objects to display.\n * @group Props\n */\n get items() {\n return this._items;\n }\n set items(val) {\n this._items = val;\n }\n /**\n * The height/width of item according to orientation.\n * @group Props\n */\n get itemSize() {\n return this._itemSize;\n }\n set itemSize(val) {\n this._itemSize = val;\n }\n /**\n * Height of the scroll viewport.\n * @group Props\n */\n get scrollHeight() {\n return this._scrollHeight;\n }\n set scrollHeight(val) {\n this._scrollHeight = val;\n }\n /**\n * Width of the scroll viewport.\n * @group Props\n */\n get scrollWidth() {\n return this._scrollWidth;\n }\n set scrollWidth(val) {\n this._scrollWidth = val;\n }\n /**\n * The orientation of scrollbar.\n * @group Props\n */\n get orientation() {\n return this._orientation;\n }\n set orientation(val) {\n this._orientation = val;\n }\n /**\n * Used to specify how many items to load in each load method in lazy mode.\n * @group Props\n */\n get step() {\n return this._step;\n }\n set step(val) {\n this._step = val;\n }\n /**\n * Delay in scroll before new data is loaded.\n * @group Props\n */\n get delay() {\n return this._delay;\n }\n set delay(val) {\n this._delay = val;\n }\n /**\n * Delay after window's resize finishes.\n * @group Props\n */\n get resizeDelay() {\n return this._resizeDelay;\n }\n set resizeDelay(val) {\n this._resizeDelay = val;\n }\n /**\n * Used to append each loaded item to top without removing any items from the DOM. Using very large data may cause the browser to crash.\n * @group Props\n */\n get appendOnly() {\n return this._appendOnly;\n }\n set appendOnly(val) {\n this._appendOnly = val;\n }\n /**\n * Specifies whether the scroller should be displayed inline or not.\n * @group Props\n */\n get inline() {\n return this._inline;\n }\n set inline(val) {\n this._inline = val;\n }\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n get lazy() {\n return this._lazy;\n }\n set lazy(val) {\n this._lazy = val;\n }\n /**\n * If disabled, the scroller feature is eliminated and the content is displayed directly.\n * @group Props\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(val) {\n this._disabled = val;\n }\n /**\n * Used to implement a custom loader instead of using the loader feature in the scroller.\n * @group Props\n */\n get loaderDisabled() {\n return this._loaderDisabled;\n }\n set loaderDisabled(val) {\n this._loaderDisabled = val;\n }\n /**\n * Columns to display.\n * @group Props\n */\n get columns() {\n return this._columns;\n }\n set columns(val) {\n this._columns = val;\n }\n /**\n * Used to implement a custom spacer instead of using the spacer feature in the scroller.\n * @group Props\n */\n get showSpacer() {\n return this._showSpacer;\n }\n set showSpacer(val) {\n this._showSpacer = val;\n }\n /**\n * Defines whether to show loader.\n * @group Props\n */\n get showLoader() {\n return this._showLoader;\n }\n set showLoader(val) {\n this._showLoader = val;\n }\n /**\n * Determines how many additional elements to add to the DOM outside of the view. According to the scrolls made up and down, extra items are added in a certain algorithm in the form of multiples of this number. Default value is half the number of items shown in the view.\n * @group Props\n */\n get numToleratedItems() {\n return this._numToleratedItems;\n }\n set numToleratedItems(val) {\n this._numToleratedItems = val;\n }\n /**\n * Defines whether the data is loaded.\n * @group Props\n */\n get loading() {\n return this._loading;\n }\n set loading(val) {\n this._loading = val;\n }\n /**\n * Defines whether to dynamically change the height or width of scrollable container.\n * @group Props\n */\n get autoSize() {\n return this._autoSize;\n }\n set autoSize(val) {\n this._autoSize = val;\n }\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algoritm checks for object identity.\n * @group Props\n */\n get trackBy() {\n return this._trackBy;\n }\n set trackBy(val) {\n this._trackBy = val;\n }\n /**\n * Defines whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n get options() {\n return this._options;\n }\n set options(val) {\n this._options = val;\n if (val && typeof val === 'object') {\n //@ts-ignore\n Object.entries(val).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));\n }\n }\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {ScrollerLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n onLazyLoad = new EventEmitter();\n /**\n * Callback to invoke when scroll position changes.\n * @param {ScrollerScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n onScroll = new EventEmitter();\n /**\n * Callback to invoke when scroll position and item's range in view changes.\n * @param {ScrollerScrollEvent} event - Custom scroll index change event.\n * @group Emits\n */\n onScrollIndexChange = new EventEmitter();\n elementViewChild;\n contentViewChild;\n _id;\n _style;\n _styleClass;\n _tabindex = 0;\n _items;\n _itemSize = 0;\n _scrollHeight;\n _scrollWidth;\n _orientation = 'vertical';\n _step = 0;\n _delay = 0;\n _resizeDelay = 10;\n _appendOnly = false;\n _inline = false;\n _lazy = false;\n _disabled = false;\n _loaderDisabled = false;\n _columns;\n _showSpacer = true;\n _showLoader = false;\n _numToleratedItems;\n _loading;\n _autoSize = false;\n _trackBy;\n _options;\n d_loading = false;\n d_numToleratedItems;\n contentEl;\n /**\n * Content template of the component.\n * @group Templates\n */\n contentTemplate;\n /**\n * Item template of the component.\n * @group Templates\n */\n itemTemplate;\n /**\n * Loader template of the component.\n * @group Templates\n */\n loaderTemplate;\n /**\n * Loader icon template of the component.\n * @group Templates\n */\n loaderIconTemplate;\n templates;\n _contentTemplate;\n _itemTemplate;\n _loaderTemplate;\n _loaderIconTemplate;\n first = 0;\n last = 0;\n page = 0;\n isRangeChanged = false;\n numItemsInViewport = 0;\n lastScrollPos = 0;\n lazyLoadState = {};\n loaderArr = [];\n spacerStyle = {};\n contentStyle = {};\n scrollTimeout;\n resizeTimeout;\n initialized = false;\n windowResizeListener;\n defaultWidth;\n defaultHeight;\n defaultContentWidth;\n defaultContentHeight;\n get vertical() {\n return this._orientation === 'vertical';\n }\n get horizontal() {\n return this._orientation === 'horizontal';\n }\n get both() {\n return this._orientation === 'both';\n }\n get loadedItems() {\n if (this._items && !this.d_loading) {\n if (this.both)\n return this._items.slice(this._appendOnly ? 0 : this.first.rows, this.last.rows).map((item) => (this._columns ? item : item.slice(this._appendOnly ? 0 : this.first.cols, this.last.cols)));\n else if (this.horizontal && this._columns)\n return this._items;\n else\n return this._items.slice(this._appendOnly ? 0 : this.first, this.last);\n }\n return [];\n }\n get loadedRows() {\n return this.d_loading ? (this._loaderDisabled ? this.loaderArr : []) : this.loadedItems;\n }\n get loadedColumns() {\n if (this._columns && (this.both || this.horizontal)) {\n return this.d_loading && this._loaderDisabled ? (this.both ? this.loaderArr[0] : this.loaderArr) : this._columns.slice(this.both ? this.first.cols : this.first, this.both ? this.last.cols : this.last);\n }\n return this._columns;\n }\n _componentStyle = inject(ScrollerStyle);\n constructor(zone) {\n super();\n this.zone = zone;\n }\n ngOnInit() {\n super.ngOnInit();\n this.setInitialState();\n }\n ngOnChanges(simpleChanges) {\n super.ngOnChanges(simpleChanges);\n let isLoadingChanged = false;\n if (simpleChanges.loading) {\n const { previousValue, currentValue } = simpleChanges.loading;\n if (this.lazy && previousValue !== currentValue && currentValue !== this.d_loading) {\n this.d_loading = currentValue;\n isLoadingChanged = true;\n }\n }\n if (simpleChanges.orientation) {\n this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n }\n if (simpleChanges.numToleratedItems) {\n const { previousValue, currentValue } = simpleChanges.numToleratedItems;\n if (previousValue !== currentValue && currentValue !== this.d_numToleratedItems) {\n this.d_numToleratedItems = currentValue;\n }\n }\n if (simpleChanges.options) {\n const { previousValue, currentValue } = simpleChanges.options;\n if (this.lazy && previousValue?.loading !== currentValue?.loading && currentValue?.loading !== this.d_loading) {\n this.d_loading = currentValue.loading;\n isLoadingChanged = true;\n }\n if (previousValue?.numToleratedItems !== currentValue?.numToleratedItems && currentValue?.numToleratedItems !== this.d_numToleratedItems) {\n this.d_numToleratedItems = currentValue.numToleratedItems;\n }\n }\n if (this.initialized) {\n const isChanged = !isLoadingChanged && (simpleChanges.items?.previousValue?.length !== simpleChanges.items?.currentValue?.length || simpleChanges.itemSize || simpleChanges.scrollHeight || simpleChanges.scrollWidth);\n if (isChanged) {\n this.init();\n this.calculateAutoSize();\n }\n }\n }\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this._contentTemplate = item.template;\n break;\n case 'item':\n this._itemTemplate = item.template;\n break;\n case 'loader':\n this._loaderTemplate = item.template;\n break;\n case 'loadericon':\n this._loaderIconTemplate = item.template;\n break;\n default:\n this._itemTemplate = item.template;\n break;\n }\n });\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n Promise.resolve().then(() => {\n this.viewInit();\n });\n }\n ngAfterViewChecked() {\n if (!this.initialized) {\n this.viewInit();\n }\n }\n ngOnDestroy() {\n this.unbindResizeListener();\n this.contentEl = null;\n this.initialized = false;\n super.ngOnDestroy();\n }\n viewInit() {\n if (isPlatformBrowser(this.platformId) && !this.initialized) {\n if (isVisible(this.elementViewChild?.nativeElement)) {\n this.setInitialState();\n this.setContentEl(this.contentEl);\n this.init();\n this.defaultWidth = getWidth(this.elementViewChild?.nativeElement);\n this.defaultHeight = getHeight(this.elementViewChild?.nativeElement);\n this.defaultContentWidth = getWidth(this.contentEl);\n this.defaultContentHeight = getHeight(this.contentEl);\n this.initialized = true;\n }\n }\n }\n init() {\n if (!this._disabled) {\n this.setSize();\n this.calculateOptions();\n this.setSpacerSize();\n this.bindResizeListener();\n this.cd.detectChanges();\n }\n }\n setContentEl(el) {\n this.contentEl = el || this.contentViewChild?.nativeElement || findSingle(this.elementViewChild?.nativeElement, '.p-virtualscroller-content');\n }\n setInitialState() {\n this.first = this.both ? { rows: 0, cols: 0 } : 0;\n this.last = this.both ? { rows: 0, cols: 0 } : 0;\n this.numItemsInViewport = this.both ? { rows: 0, cols: 0 } : 0;\n this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.d_loading = this._loading || false;\n this.d_numToleratedItems = this._numToleratedItems;\n this.loaderArr = [];\n this.spacerStyle = {};\n this.contentStyle = {};\n }\n getElementRef() {\n return this.elementViewChild;\n }\n getPageByFirst(first) {\n return Math.floor(((first ?? this.first) + this.d_numToleratedItems * 4) / (this._step || 1));\n }\n isPageChanged(first) {\n return this._step ? this.page !== this.getPageByFirst(first ?? this.first) : true;\n }\n scrollTo(options) {\n // this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.elementViewChild?.nativeElement?.scrollTo(options);\n }\n scrollToIndex(index, behavior = 'auto') {\n const valid = this.both ? index.every((i) => i > -1) : index > -1;\n if (valid) {\n const first = this.first;\n const { scrollTop = 0, scrollLeft = 0 } = this.elementViewChild?.nativeElement;\n const { numToleratedItems } = this.calculateNumItems();\n const contentPos = this.getContentPosition();\n const itemSize = this.itemSize;\n const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);\n const calculateCoord = (_first, _size, _cpos) => _first * _size + _cpos;\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n let newFirst = this.both ? { rows: 0, cols: 0 } : 0;\n let isRangeChanged = false, isScrollChanged = false;\n if (this.both) {\n newFirst = {\n rows: calculateFirst(index[0], numToleratedItems[0]),\n cols: calculateFirst(index[1], numToleratedItems[1])\n };\n scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n isScrollChanged = this.lastScrollPos.top !== scrollTop || this.lastScrollPos.left !== scrollLeft;\n isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols;\n }\n else {\n newFirst = calculateFirst(index, numToleratedItems);\n this.horizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop) : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n isScrollChanged = this.lastScrollPos !== (this.horizontal ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n this.isRangeChanged = isRangeChanged;\n isScrollChanged && (this.first = newFirst);\n }\n }\n scrollInView(index, to, behavior = 'auto') {\n if (to) {\n const { first, viewport } = this.getRenderedRange();\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n const isToStart = to === 'to-start';\n const isToEnd = to === 'to-end';\n if (isToStart) {\n if (this.both) {\n if (viewport.first.rows - first.rows > index[0]) {\n scrollTo(viewport.first.cols * this._itemSize[1], (viewport.first.rows - 1) * this._itemSize[0]);\n }\n else if (viewport.first.cols - first.cols > index[1]) {\n scrollTo((viewport.first.cols - 1) * this._itemSize[1], viewport.first.rows * this._itemSize[0]);\n }\n }\n else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * this._itemSize;\n this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n else if (isToEnd) {\n if (this.both) {\n if (viewport.last.rows - first.rows <= index[0] + 1) {\n scrollTo(viewport.first.cols * this._itemSize[1], (viewport.first.rows + 1) * this._itemSize[0]);\n }\n else if (viewport.last.cols - first.cols <= index[1] + 1) {\n scrollTo((viewport.first.cols + 1) * this._itemSize[1], viewport.first.rows * this._itemSize[0]);\n }\n }\n else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * this._itemSize;\n this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n }\n else {\n this.scrollToIndex(index, behavior);\n }\n }\n getRenderedRange() {\n const calculateFirstInViewport = (_pos, _size) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n let firstInViewport = this.first;\n let lastInViewport = 0;\n if (this.elementViewChild?.nativeElement) {\n const { scrollTop, scrollLeft } = this.elementViewChild.nativeElement;\n if (this.both) {\n firstInViewport = {\n rows: calculateFirstInViewport(scrollTop, this._itemSize[0]),\n cols: calculateFirstInViewport(scrollLeft, this._itemSize[1])\n };\n lastInViewport = {\n rows: firstInViewport.rows + this.numItemsInViewport.rows,\n cols: firstInViewport.cols + this.numItemsInViewport.cols\n };\n }\n else {\n const scrollPos = this.horizontal ? scrollLeft : scrollTop;\n firstInViewport = calculateFirstInViewport(scrollPos, this._itemSize);\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n }\n calculateNumItems() {\n const contentPos = this.getContentPosition();\n const contentWidth = (this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetWidth - contentPos.left : 0) || 0;\n const contentHeight = (this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetHeight - contentPos.top : 0) || 0;\n const calculateNumItemsInViewport = (_contentSize, _itemSize) => (_itemSize || _contentSize ? Math.ceil(_contentSize / (_itemSize || _contentSize)) : 0);\n const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);\n const numItemsInViewport = this.both\n ? {\n rows: calculateNumItemsInViewport(contentHeight, this._itemSize[0]),\n cols: calculateNumItemsInViewport(contentWidth, this._itemSize[1])\n }\n : calculateNumItemsInViewport(this.horizontal ? contentWidth : contentHeight, this._itemSize);\n const numToleratedItems = this.d_numToleratedItems || (this.both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n return { numItemsInViewport, numToleratedItems };\n }\n calculateOptions() {\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first, _num, _numT, _isCols = false) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const first = this.first;\n const last = this.both\n ? {\n rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]),\n cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true)\n }\n : calculateLast(this.first, numItemsInViewport, numToleratedItems);\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n if (this.showLoader) {\n this.loaderArr = this.both ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) : Array.from({ length: numItemsInViewport });\n }\n if (this._lazy) {\n Promise.resolve().then(() => {\n this.lazyLoadState = {\n first: this._step ? (this.both ? { rows: 0, cols: first.cols } : 0) : first,\n last: Math.min(this._step ? this._step : this.last, this.items.length)\n };\n this.handleEvents('onLazyLoad', this.lazyLoadState);\n });\n }\n }\n calculateAutoSize() {\n if (this._autoSize && !this.d_loading) {\n Promise.resolve().then(() => {\n if (this.contentEl) {\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = 'auto';\n this.contentEl.style.position = 'relative';\n this.elementViewChild.nativeElement.style.contain = 'none';\n const [contentWidth, contentHeight] = [getWidth(this.contentEl), getHeight(this.contentEl)];\n contentWidth !== this.defaultContentWidth && (this.elementViewChild.nativeElement.style.width = '');\n contentHeight !== this.defaultContentHeight && (this.elementViewChild.nativeElement.style.height = '');\n const [width, height] = [getWidth(this.elementViewChild.nativeElement), getHeight(this.elementViewChild.nativeElement)];\n (this.both || this.horizontal) && (this.elementViewChild.nativeElement.style.width = width < this.defaultWidth ? width + 'px' : this._scrollWidth || this.defaultWidth + 'px');\n (this.both || this.vertical) && (this.elementViewChild.nativeElement.style.height = height < this.defaultHeight ? height + 'px' : this._scrollHeight || this.defaultHeight + 'px');\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = '';\n this.contentEl.style.position = '';\n this.elementViewChild.nativeElement.style.contain = '';\n }\n });\n }\n }\n getLast(last = 0, isCols = false) {\n return this._items ? Math.min(isCols ? (this._columns || this._items[0]).length : this._items.length, last) : 0;\n }\n getContentPosition() {\n if (this.contentEl) {\n const style = getComputedStyle(this.contentEl);\n const left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n const right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n const top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n const bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n return { left, right, top, bottom, x: left + right, y: top + bottom };\n }\n return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };\n }\n setSize() {\n if (this.elementViewChild?.nativeElement) {\n const parentElement = this.elementViewChild.nativeElement.parentElement.parentElement;\n const width = this._scrollWidth || `${this.elementViewChild.nativeElement.offsetWidth || parentElement.offsetWidth}px`;\n const height = this._scrollHeight || `${this.elementViewChild.nativeElement.offsetHeight || parentElement.offsetHeight}px`;\n const setProp = (_name, _value) => (this.elementViewChild.nativeElement.style[_name] = _value);\n if (this.both || this.horizontal) {\n setProp('height', height);\n setProp('width', width);\n }\n else {\n setProp('height', height);\n }\n }\n }\n setSpacerSize() {\n if (this._items) {\n const contentPos = this.getContentPosition();\n const setProp = (_name, _value, _size, _cpos = 0) => (this.spacerStyle = {\n ...this.spacerStyle,\n ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' }\n });\n if (this.both) {\n setProp('height', this._items, this._itemSize[0], contentPos.y);\n setProp('width', this._columns || this._items[1], this._itemSize[1], contentPos.x);\n }\n else {\n this.horizontal ? setProp('width', this._columns || this._items, this._itemSize, contentPos.x) : setProp('height', this._items, this._itemSize, contentPos.y);\n }\n }\n }\n setContentPosition(pos) {\n if (this.contentEl && !this._appendOnly) {\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first, _size) => _first * _size;\n const setTransform = (_x = 0, _y = 0) => (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });\n if (this.both) {\n setTransform(calculateTranslateVal(first.cols, this._itemSize[1]), calculateTranslateVal(first.rows, this._itemSize[0]));\n }\n else {\n const translateVal = calculateTranslateVal(first, this._itemSize);\n this.horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n }\n onScrollPositionChange(event) {\n const target = event.target;\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos, _cpos) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);\n const calculateCurrentIndex = (_pos, _size) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n if (_currentIndex <= _numT)\n return 0;\n else\n return Math.max(0, _isScrollDownOrRight ? (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n };\n const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols = false) => {\n let lastValue = _first + _num + 2 * _numT;\n if (_currentIndex >= _numT) {\n lastValue += _numT + 1;\n }\n return this.getLast(lastValue, _isCols);\n };\n const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);\n let newFirst = this.both ? { rows: 0, cols: 0 } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n if (this.both) {\n const isScrollDown = this.lastScrollPos.top <= scrollTop;\n const isScrollRight = this.lastScrollPos.left <= scrollLeft;\n if (!this._appendOnly || (this._appendOnly && (isScrollDown || isScrollRight))) {\n const currentIndex = {\n rows: calculateCurrentIndex(scrollTop, this._itemSize[0]),\n cols: calculateCurrentIndex(scrollLeft, this._itemSize[1])\n };\n const triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;\n newScrollPos = { top: scrollTop, left: scrollLeft };\n }\n }\n else {\n const scrollPos = this.horizontal ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n if (!this._appendOnly || (this._appendOnly && isScrollDownOrRight)) {\n const currentIndex = calculateCurrentIndex(scrollPos, this._itemSize);\n const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;\n newScrollPos = scrollPos;\n }\n }\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged,\n scrollPos: newScrollPos\n };\n }\n onScrollChange(event) {\n const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);\n if (isRangeChanged) {\n const newState = { first, last };\n this.setContentPosition(newState);\n this.first = first;\n this.last = last;\n this.lastScrollPos = scrollPos;\n this.handleEvents('onScrollIndexChange', newState);\n if (this._lazy && this.isPageChanged(first)) {\n const lazyLoadState = {\n first: this._step ? Math.min(this.getPageByFirst(first) * this._step, this.items.length - this._step) : first,\n last: Math.min(this._step ? (this.getPageByFirst(first) + 1) * this._step : last, this.items.length)\n };\n const isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n isLazyStateChanged && this.handleEvents('onLazyLoad', lazyLoadState);\n this.lazyLoadState = lazyLoadState;\n }\n }\n }\n onContainerScroll(event) {\n this.handleEvents('onScroll', { originalEvent: event });\n if (this._delay && this.isPageChanged()) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n if (!this.d_loading && this.showLoader) {\n const { isRangeChanged } = this.onScrollPositionChange(event);\n const changed = isRangeChanged || (this._step ? this.isPageChanged() : false);\n if (changed) {\n this.d_loading = true;\n this.cd.detectChanges();\n }\n }\n this.scrollTimeout = setTimeout(() => {\n this.onScrollChange(event);\n if (this.d_loading && this.showLoader && (!this._lazy || this._loading === undefined)) {\n this.d_loading = false;\n this.page = this.getPageByFirst();\n }\n this.cd.detectChanges();\n }, this._delay);\n }\n else {\n !this.d_loading && this.onScrollChange(event);\n }\n }\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.windowResizeListener) {\n this.zone.runOutsideAngular(() => {\n const window = this.document.defaultView;\n const event = isTouchDevice() ? 'orientationchange' : 'resize';\n this.windowResizeListener = this.renderer.listen(window, event, this.onWindowResize.bind(this));\n });\n }\n }\n }\n unbindResizeListener() {\n if (this.windowResizeListener) {\n this.windowResizeListener();\n this.windowResizeListener = null;\n }\n }\n onWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n this.resizeTimeout = setTimeout(() => {\n if (isVisible(this.elementViewChild?.nativeElement)) {\n const [width, height] = [getWidth(this.elementViewChild?.nativeElement), getHeight(this.elementViewChild?.nativeElement)];\n const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];\n const reinit = this.both ? isDiffWidth || isDiffHeight : this.horizontal ? isDiffWidth : this.vertical ? isDiffHeight : false;\n reinit &&\n this.zone.run(() => {\n this.d_numToleratedItems = this._numToleratedItems;\n this.defaultWidth = width;\n this.defaultHeight = height;\n this.defaultContentWidth = getWidth(this.contentEl);\n this.defaultContentHeight = getHeight(this.contentEl);\n this.init();\n });\n }\n }, this._resizeDelay);\n }\n handleEvents(name, params) {\n //@ts-ignore\n return this.options && this.options[name] ? this.options[name](params) : this[name].emit(params);\n }\n getContentOptions() {\n return {\n contentStyleClass: `p-virtualscroller-content ${this.d_loading ? 'p-virtualscroller-loading' : ''}`,\n items: this.loadedItems,\n getItemOptions: (index) => this.getOptions(index),\n loading: this.d_loading,\n getLoaderOptions: (index, options) => this.getLoaderOptions(index, options),\n itemSize: this._itemSize,\n rows: this.loadedRows,\n columns: this.loadedColumns,\n spacerStyle: this.spacerStyle,\n contentStyle: this.contentStyle,\n vertical: this.vertical,\n horizontal: this.horizontal,\n both: this.both\n };\n }\n getOptions(renderedIndex) {\n const count = (this._items || []).length;\n const index = this.both ? this.first.rows + renderedIndex : this.first + renderedIndex;\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n }\n getLoaderOptions(index, extOptions) {\n const count = this.loaderArr.length;\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n ...extOptions\n };\n }\n static ɵfac = function Scroller_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Scroller)(i0.ɵɵdirectiveInject(i0.NgZone)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Scroller, selectors: [[\"p-scroller\"], [\"p-virtualscroller\"], [\"p-virtual-scroller\"], [\"p-virtualScroller\"]], contentQueries: function Scroller_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, _c1, 4);\n i0.ɵɵcontentQuery(dirIndex, _c2, 4);\n i0.ɵɵcontentQuery(dirIndex, _c3, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loaderTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loaderIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, viewQuery: function Scroller_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c4, 5);\n i0.ɵɵviewQuery(_c0, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.elementViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentViewChild = _t.first);\n } }, inputs: { id: \"id\", style: \"style\", styleClass: \"styleClass\", tabindex: \"tabindex\", items: \"items\", itemSize: \"itemSize\", scrollHeight: \"scrollHeight\", scrollWidth: \"scrollWidth\", orientation: \"orientation\", step: \"step\", delay: \"delay\", resizeDelay: \"resizeDelay\", appendOnly: \"appendOnly\", inline: \"inline\", lazy: \"lazy\", disabled: \"disabled\", loaderDisabled: \"loaderDisabled\", columns: \"columns\", showSpacer: \"showSpacer\", showLoader: \"showLoader\", numToleratedItems: \"numToleratedItems\", loading: \"loading\", autoSize: \"autoSize\", trackBy: \"trackBy\", options: \"options\" }, outputs: { onLazyLoad: \"onLazyLoad\", onScroll: \"onScroll\", onScrollIndexChange: \"onScrollIndexChange\" }, standalone: true, features: [i0.ɵɵProvidersFeature([ScrollerStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c5, decls: 3, vars: 2, consts: [[\"disabledContainer\", \"\"], [\"element\", \"\"], [\"buildInContent\", \"\"], [\"content\", \"\"], [\"buildInLoader\", \"\"], [\"buildInLoaderIcon\", \"\"], [4, \"ngIf\", \"ngIfElse\"], [3, \"scroll\", \"ngStyle\", \"ngClass\"], [\"class\", \"p-virtualscroller-spacer\", 3, \"ngStyle\", 4, \"ngIf\"], [\"class\", \"p-virtualscroller-loader\", 3, \"ngClass\", 4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"p-virtualscroller-content\", 3, \"ngClass\", \"ngStyle\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [1, \"p-virtualscroller-spacer\", 3, \"ngStyle\"], [1, \"p-virtualscroller-loader\", 3, \"ngClass\"], [4, \"ngFor\", \"ngForOf\"], [3, \"styleClass\"], [4, \"ngIf\"]], template: function Scroller_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, Scroller_ng_container_0_Template, 8, 16, \"ng-container\", 6)(1, Scroller_ng_template_1_Template, 2, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n const disabledContainer_r9 = i0.ɵɵreference(2);\n i0.ɵɵproperty(\"ngIf\", !ctx._disabled)(\"ngIfElse\", disabledContainer_r9);\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, SpinnerIcon, SharedModule], encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Scroller, [{\n type: Component,\n args: [{\n selector: 'p-scroller, p-virtualscroller, p-virtual-scroller, p-virtualScroller',\n imports: [CommonModule, SpinnerIcon, SharedModule],\n standalone: true,\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 \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n providers: [ScrollerStyle]\n }]\n }], () => [{ type: i0.NgZone }], { id: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], items: [{\n type: Input\n }], itemSize: [{\n type: Input\n }], scrollHeight: [{\n type: Input\n }], scrollWidth: [{\n type: Input\n }], orientation: [{\n type: Input\n }], step: [{\n type: Input\n }], delay: [{\n type: Input\n }], resizeDelay: [{\n type: Input\n }], appendOnly: [{\n type: Input\n }], inline: [{\n type: Input\n }], lazy: [{\n type: Input\n }], disabled: [{\n type: Input\n }], loaderDisabled: [{\n type: Input\n }], columns: [{\n type: Input\n }], showSpacer: [{\n type: Input\n }], showLoader: [{\n type: Input\n }], numToleratedItems: [{\n type: Input\n }], loading: [{\n type: Input\n }], autoSize: [{\n type: Input\n }], trackBy: [{\n type: Input\n }], options: [{\n type: Input\n }], onLazyLoad: [{\n type: Output\n }], onScroll: [{\n type: Output\n }], onScrollIndexChange: [{\n type: Output\n }], elementViewChild: [{\n type: ViewChild,\n args: ['element']\n }], contentViewChild: [{\n type: ViewChild,\n args: ['content']\n }], contentTemplate: [{\n type: ContentChild,\n args: ['content', { descendants: false }]\n }], itemTemplate: [{\n type: ContentChild,\n args: ['item', { descendants: false }]\n }], loaderTemplate: [{\n type: ContentChild,\n args: ['loader', { descendants: false }]\n }], loaderIconTemplate: [{\n type: ContentChild,\n args: ['loadericon', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Scroller, { className: \"Scroller\" }); })();\nclass ScrollerModule {\n static ɵfac = function ScrollerModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ScrollerModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ScrollerModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Scroller, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ScrollerModule, [{\n type: NgModule,\n args: [{\n imports: [Scroller, SharedModule],\n exports: [Scroller, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(ScrollerModule, { imports: [Scroller, SharedModule], exports: [Scroller, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Scroller, ScrollerClasses, ScrollerModule, ScrollerStyle };\n","import { isPlatformBrowser } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, TemplateRef, booleanAttribute, numberAttribute, Directive, Input, NgModule } from '@angular/core';\nimport { uuid, hasClass, appendChild, fadeIn, getWindowScrollLeft, getWindowScrollTop, findSingle, getOuterWidth, getOuterHeight, getViewport, removeChild } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-tooltip {\n position: absolute;\n display: none;\n max-width: ${dt('tooltip.max.width')};\n}\n\n.p-tooltip-right,\n.p-tooltip-left {\n padding: 0 ${dt('tooltip.gutter')};\n}\n\n.p-tooltip-top,\n.p-tooltip-bottom {\n padding: ${dt('tooltip.gutter')} 0;\n}\n\n.p-tooltip-text {\n white-space: pre-line;\n word-break: break-word;\n background: ${dt('tooltip.background')};\n color: ${dt('tooltip.color')};\n padding: ${dt('tooltip.padding')};\n box-shadow: ${dt('tooltip.shadow')};\n border-radius: ${dt('tooltip.border.radius')};\n}\n\n.p-tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n scale: 2;\n}\n\n.p-tooltip-right .p-tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: calc(-1 * ${dt('tooltip.gutter')});\n border-width: ${dt('tooltip.gutter')} ${dt('tooltip.gutter')} ${dt('tooltip.gutter')} 0;\n border-right-color: ${dt('tooltip.background')};\n}\n\n.p-tooltip-left .p-tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: calc(-1 * ${dt('tooltip.gutter')});\n border-width: ${dt('tooltip.gutter')} 0 ${dt('tooltip.gutter')} ${dt('tooltip.gutter')};\n border-left-color: ${dt('tooltip.background')};\n}\n\n.p-tooltip-top .p-tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: calc(-1 * ${dt('tooltip.gutter')});\n border-width: ${dt('tooltip.gutter')} ${dt('tooltip.gutter')} 0 ${dt('tooltip.gutter')};\n border-top-color: ${dt('tooltip.background')};\n border-bottom-color: ${dt('tooltip.background')};\n}\n\n.p-tooltip-bottom .p-tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: calc(-1 * ${dt('tooltip.gutter')});\n border-width: 0 ${dt('tooltip.gutter')} ${dt('tooltip.gutter')} ${dt('tooltip.gutter')};\n border-top-color: ${dt('tooltip.background')};\n border-bottom-color: ${dt('tooltip.background')};\n}\n`;\nconst classes = {\n root: 'p-tooltip p-component',\n arrow: 'p-tooltip-arrow',\n text: 'p-tooltip-text'\n};\nclass TooltipStyle extends BaseStyle {\n name = 'tooltip';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵTooltipStyle_BaseFactory; return function TooltipStyle_Factory(__ngFactoryType__) { return (ɵTooltipStyle_BaseFactory || (ɵTooltipStyle_BaseFactory = i0.ɵɵgetInheritedFactory(TooltipStyle)))(__ngFactoryType__ || TooltipStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TooltipStyle, factory: TooltipStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TooltipStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * Tooltip directive provides advisory information for a component.\n *\n * [Live Demo](https://www.primeng.org/tooltip)\n *\n * @module tooltipstyle\n *\n */\nvar TooltipClasses;\n(function (TooltipClasses) {\n /**\n * Class name of the root element\n */\n TooltipClasses[\"root\"] = \"p-tooltip\";\n /**\n * Class name of the arrow element\n */\n TooltipClasses[\"arrow\"] = \"p-tooltip-arrow\";\n /**\n * Class name of the text element\n */\n TooltipClasses[\"text\"] = \"p-tooltip-text\";\n})(TooltipClasses || (TooltipClasses = {}));\n\n/**\n * Tooltip directive provides advisory information for a component.\n * @group Components\n */\nclass Tooltip extends BaseComponent {\n zone;\n viewContainer;\n /**\n * Position of the tooltip.\n * @group Props\n */\n tooltipPosition;\n /**\n * Event to show the tooltip.\n * @group Props\n */\n tooltipEvent = 'hover';\n /**\n * Target element to attach the overlay, valid values are \"body\", \"target\" or a local ng-F variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n appendTo;\n /**\n * Type of CSS position.\n * @group Props\n */\n positionStyle;\n /**\n * Style class of the tooltip.\n * @group Props\n */\n tooltipStyleClass;\n /**\n * Whether the z-index should be managed automatically to always go on top or have a fixed value.\n * @group Props\n */\n tooltipZIndex;\n /**\n * By default the tooltip contents are rendered as text. Set to false to support html tags in the content.\n * @group Props\n */\n escape = true;\n /**\n * Delay to show the tooltip in milliseconds.\n * @group Props\n */\n showDelay;\n /**\n * Delay to hide the tooltip in milliseconds.\n * @group Props\n */\n hideDelay;\n /**\n * Time to wait in milliseconds to hide the tooltip even it is active.\n * @group Props\n */\n life;\n /**\n * Specifies the additional vertical offset of the tooltip from its default position.\n * @group Props\n */\n positionTop;\n /**\n * Specifies the additional horizontal offset of the tooltip from its default position.\n * @group Props\n */\n positionLeft;\n /**\n * Whether to hide tooltip when hovering over tooltip content.\n * @group Props\n */\n autoHide = true;\n /**\n * Automatically adjusts the element position when there is not enough space on the selected position.\n * @group Props\n */\n fitContent = true;\n /**\n * Whether to hide tooltip on escape key press.\n * @group Props\n */\n hideOnEscape = true;\n /**\n * Content of the tooltip.\n * @group Props\n */\n content;\n /**\n * When present, it specifies that the component should be disabled.\n * @defaultValue false\n * @group Props\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(val) {\n this._disabled = val;\n this.deactivate();\n }\n /**\n * Specifies the tooltip configuration options for the component.\n * @group Props\n */\n tooltipOptions;\n _tooltipOptions = {\n tooltipLabel: null,\n tooltipPosition: 'right',\n tooltipEvent: 'hover',\n appendTo: 'body',\n positionStyle: null,\n tooltipStyleClass: null,\n tooltipZIndex: 'auto',\n escape: true,\n disabled: null,\n showDelay: null,\n hideDelay: null,\n positionTop: null,\n positionLeft: null,\n life: null,\n autoHide: true,\n hideOnEscape: true,\n id: uuid('pn_id_') + '_tooltip'\n };\n _disabled;\n container;\n styleClass;\n tooltipText;\n showTimeout;\n hideTimeout;\n active;\n mouseEnterListener;\n mouseLeaveListener;\n containerMouseleaveListener;\n clickListener;\n focusListener;\n blurListener;\n documentEscapeListener;\n scrollHandler;\n resizeListener;\n _componentStyle = inject(TooltipStyle);\n interactionInProgress = false;\n constructor(zone, viewContainer) {\n super();\n this.zone = zone;\n this.viewContainer = viewContainer;\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n const tooltipEvent = this.getOption('tooltipEvent');\n if (tooltipEvent === 'hover' || tooltipEvent === 'both') {\n this.mouseEnterListener = this.onMouseEnter.bind(this);\n this.mouseLeaveListener = this.onMouseLeave.bind(this);\n this.clickListener = this.onInputClick.bind(this);\n this.el.nativeElement.addEventListener('mouseenter', this.mouseEnterListener);\n this.el.nativeElement.addEventListener('click', this.clickListener);\n this.el.nativeElement.addEventListener('mouseleave', this.mouseLeaveListener);\n }\n if (tooltipEvent === 'focus' || tooltipEvent === 'both') {\n this.focusListener = this.onFocus.bind(this);\n this.blurListener = this.onBlur.bind(this);\n let target = this.el.nativeElement.querySelector('.p-component');\n if (!target) {\n target = this.getTarget(this.el.nativeElement);\n }\n target.addEventListener('focus', this.focusListener);\n target.addEventListener('blur', this.blurListener);\n }\n });\n }\n }\n ngOnChanges(simpleChange) {\n super.ngOnChanges(simpleChange);\n if (simpleChange.tooltipPosition) {\n this.setOption({ tooltipPosition: simpleChange.tooltipPosition.currentValue });\n }\n if (simpleChange.tooltipEvent) {\n this.setOption({ tooltipEvent: simpleChange.tooltipEvent.currentValue });\n }\n if (simpleChange.appendTo) {\n this.setOption({ appendTo: simpleChange.appendTo.currentValue });\n }\n if (simpleChange.positionStyle) {\n this.setOption({ positionStyle: simpleChange.positionStyle.currentValue });\n }\n if (simpleChange.tooltipStyleClass) {\n this.setOption({ tooltipStyleClass: simpleChange.tooltipStyleClass.currentValue });\n }\n if (simpleChange.tooltipZIndex) {\n this.setOption({ tooltipZIndex: simpleChange.tooltipZIndex.currentValue });\n }\n if (simpleChange.escape) {\n this.setOption({ escape: simpleChange.escape.currentValue });\n }\n if (simpleChange.showDelay) {\n this.setOption({ showDelay: simpleChange.showDelay.currentValue });\n }\n if (simpleChange.hideDelay) {\n this.setOption({ hideDelay: simpleChange.hideDelay.currentValue });\n }\n if (simpleChange.life) {\n this.setOption({ life: simpleChange.life.currentValue });\n }\n if (simpleChange.positionTop) {\n this.setOption({ positionTop: simpleChange.positionTop.currentValue });\n }\n if (simpleChange.positionLeft) {\n this.setOption({ positionLeft: simpleChange.positionLeft.currentValue });\n }\n if (simpleChange.disabled) {\n this.setOption({ disabled: simpleChange.disabled.currentValue });\n }\n if (simpleChange.content) {\n this.setOption({ tooltipLabel: simpleChange.content.currentValue });\n if (this.active) {\n if (simpleChange.content.currentValue) {\n if (this.container && this.container.offsetParent) {\n this.updateText();\n this.align();\n }\n else {\n this.show();\n }\n }\n else {\n this.hide();\n }\n }\n }\n if (simpleChange.autoHide) {\n this.setOption({ autoHide: simpleChange.autoHide.currentValue });\n }\n if (simpleChange.id) {\n this.setOption({ id: simpleChange.id.currentValue });\n }\n if (simpleChange.tooltipOptions) {\n this._tooltipOptions = { ...this._tooltipOptions, ...simpleChange.tooltipOptions.currentValue };\n this.deactivate();\n if (this.active) {\n if (this.getOption('tooltipLabel')) {\n if (this.container && this.container.offsetParent) {\n this.updateText();\n this.align();\n }\n else {\n this.show();\n }\n }\n else {\n this.hide();\n }\n }\n }\n }\n isAutoHide() {\n return this.getOption('autoHide');\n }\n onMouseEnter(e) {\n if (!this.container && !this.showTimeout) {\n this.activate();\n }\n }\n onMouseLeave(e) {\n if (!this.isAutoHide()) {\n const valid = hasClass(e.relatedTarget, 'p-tooltip') || hasClass(e.relatedTarget, 'p-tooltip-text') || hasClass(e.relatedTarget, 'p-tooltip-arrow');\n !valid && this.deactivate();\n }\n else {\n this.deactivate();\n }\n }\n onFocus(e) {\n this.activate();\n }\n onBlur(e) {\n this.deactivate();\n }\n onInputClick(e) {\n this.deactivate();\n }\n activate() {\n if (!this.interactionInProgress) {\n this.active = true;\n this.clearHideTimeout();\n if (this.getOption('showDelay'))\n this.showTimeout = setTimeout(() => {\n this.show();\n }, this.getOption('showDelay'));\n else\n this.show();\n if (this.getOption('life')) {\n let duration = this.getOption('showDelay') ? this.getOption('life') + this.getOption('showDelay') : this.getOption('life');\n this.hideTimeout = setTimeout(() => {\n this.hide();\n }, duration);\n }\n if (this.getOption('hideOnEscape')) {\n this.documentEscapeListener = this.renderer.listen('document', 'keydown.escape', () => {\n this.deactivate();\n this.documentEscapeListener();\n });\n }\n this.interactionInProgress = true;\n }\n }\n deactivate() {\n this.interactionInProgress = false;\n this.active = false;\n this.clearShowTimeout();\n if (this.getOption('hideDelay')) {\n this.clearHideTimeout(); //life timeout\n this.hideTimeout = setTimeout(() => {\n this.hide();\n }, this.getOption('hideDelay'));\n }\n else {\n this.hide();\n }\n if (this.documentEscapeListener) {\n this.documentEscapeListener();\n }\n }\n create() {\n if (this.container) {\n this.clearHideTimeout();\n this.remove();\n }\n this.container = document.createElement('div');\n this.container.setAttribute('id', this.getOption('id'));\n this.container.setAttribute('role', 'tooltip');\n let tooltipArrow = document.createElement('div');\n tooltipArrow.className = 'p-tooltip-arrow';\n this.container.appendChild(tooltipArrow);\n this.tooltipText = document.createElement('div');\n this.tooltipText.className = 'p-tooltip-text';\n this.updateText();\n if (this.getOption('positionStyle')) {\n this.container.style.position = this.getOption('positionStyle');\n }\n this.container.appendChild(this.tooltipText);\n if (this.getOption('appendTo') === 'body')\n document.body.appendChild(this.container);\n else if (this.getOption('appendTo') === 'target')\n appendChild(this.container, this.el.nativeElement);\n else\n appendChild(this.getOption('appendTo'), this.container);\n this.container.style.display = 'none';\n if (this.fitContent) {\n this.container.style.width = 'fit-content';\n }\n if (this.isAutoHide()) {\n this.container.style.pointerEvents = 'none';\n }\n else {\n this.container.style.pointerEvents = 'unset';\n this.bindContainerMouseleaveListener();\n }\n }\n bindContainerMouseleaveListener() {\n if (!this.containerMouseleaveListener) {\n const targetEl = this.container ?? this.container.nativeElement;\n this.containerMouseleaveListener = this.renderer.listen(targetEl, 'mouseleave', (e) => {\n this.deactivate();\n });\n }\n }\n unbindContainerMouseleaveListener() {\n if (this.containerMouseleaveListener) {\n this.bindContainerMouseleaveListener();\n this.containerMouseleaveListener = null;\n }\n }\n show() {\n if (!this.getOption('tooltipLabel') || this.getOption('disabled')) {\n return;\n }\n this.create();\n const nativeElement = this.el.nativeElement;\n const pDialogWrapper = nativeElement.closest('p-dialog');\n if (pDialogWrapper) {\n setTimeout(() => {\n this.container && (this.container.style.display = 'inline-block');\n this.container && this.align();\n }, 100);\n }\n else {\n this.container.style.display = 'inline-block';\n this.align();\n }\n fadeIn(this.container, 250);\n if (this.getOption('tooltipZIndex') === 'auto')\n ZIndexUtils.set('tooltip', this.container, this.config.zIndex.tooltip);\n else\n this.container.style.zIndex = this.getOption('tooltipZIndex');\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n }\n hide() {\n if (this.getOption('tooltipZIndex') === 'auto') {\n ZIndexUtils.clear(this.container);\n }\n this.remove();\n }\n updateText() {\n const content = this.getOption('tooltipLabel');\n if (content instanceof TemplateRef) {\n const embeddedViewRef = this.viewContainer.createEmbeddedView(content);\n embeddedViewRef.detectChanges();\n embeddedViewRef.rootNodes.forEach((node) => this.tooltipText.appendChild(node));\n }\n else if (this.getOption('escape')) {\n this.tooltipText.innerHTML = '';\n this.tooltipText.appendChild(document.createTextNode(content));\n }\n else {\n this.tooltipText.innerHTML = content;\n }\n }\n align() {\n let position = this.getOption('tooltipPosition');\n const positionPriority = {\n top: [this.alignTop, this.alignBottom, this.alignRight, this.alignLeft],\n bottom: [this.alignBottom, this.alignTop, this.alignRight, this.alignLeft],\n left: [this.alignLeft, this.alignRight, this.alignTop, this.alignBottom],\n right: [this.alignRight, this.alignLeft, this.alignTop, this.alignBottom]\n };\n for (let [index, alignmentFn] of positionPriority[position].entries()) {\n if (index === 0)\n alignmentFn.call(this);\n else if (this.isOutOfBounds())\n alignmentFn.call(this);\n else\n break;\n }\n }\n getHostOffset() {\n if (this.getOption('appendTo') === 'body' || this.getOption('appendTo') === 'target') {\n let offset = this.el.nativeElement.getBoundingClientRect();\n let targetLeft = offset.left + getWindowScrollLeft();\n let targetTop = offset.top + getWindowScrollTop();\n return { left: targetLeft, top: targetTop };\n }\n else {\n return { left: 0, top: 0 };\n }\n }\n get activeElement() {\n return this.el.nativeElement.nodeName.includes('P-') ? findSingle(this.el.nativeElement, '.p-component') : this.el.nativeElement;\n }\n alignRight() {\n this.preAlign('right');\n const el = this.activeElement;\n const offsetLeft = getOuterWidth(el);\n const offsetTop = (getOuterHeight(el) - getOuterHeight(this.container)) / 2;\n this.alignTooltip(offsetLeft, offsetTop);\n }\n alignLeft() {\n this.preAlign('left');\n let offsetLeft = getOuterWidth(this.container);\n let offsetTop = (getOuterHeight(this.el.nativeElement) - getOuterHeight(this.container)) / 2;\n this.alignTooltip(-offsetLeft, offsetTop);\n }\n alignTop() {\n this.preAlign('top');\n let offsetLeft = (getOuterWidth(this.el.nativeElement) - getOuterWidth(this.container)) / 2;\n let offsetTop = getOuterHeight(this.container);\n this.alignTooltip(offsetLeft, -offsetTop);\n }\n alignBottom() {\n this.preAlign('bottom');\n let offsetLeft = (getOuterWidth(this.el.nativeElement) - getOuterWidth(this.container)) / 2;\n let offsetTop = getOuterHeight(this.el.nativeElement);\n this.alignTooltip(offsetLeft, offsetTop);\n }\n alignTooltip(offsetLeft, offsetTop) {\n let hostOffset = this.getHostOffset();\n let left = hostOffset.left + offsetLeft;\n let top = hostOffset.top + offsetTop;\n this.container.style.left = left + this.getOption('positionLeft') + 'px';\n this.container.style.top = top + this.getOption('positionTop') + 'px';\n }\n setOption(option) {\n this._tooltipOptions = { ...this._tooltipOptions, ...option };\n }\n getOption(option) {\n return this._tooltipOptions[option];\n }\n getTarget(el) {\n return hasClass(el, 'p-inputwrapper') ? findSingle(el, 'input') : el;\n }\n preAlign(position) {\n this.container.style.left = -999 + 'px';\n this.container.style.top = -999 + 'px';\n let defaultClassName = 'p-tooltip p-component p-tooltip-' + position;\n this.container.className = this.getOption('tooltipStyleClass') ? defaultClassName + ' ' + this.getOption('tooltipStyleClass') : defaultClassName;\n }\n isOutOfBounds() {\n let offset = this.container.getBoundingClientRect();\n let targetTop = offset.top;\n let targetLeft = offset.left;\n let width = getOuterWidth(this.container);\n let height = getOuterHeight(this.container);\n let viewport = getViewport();\n return targetLeft + width > viewport.width || targetLeft < 0 || targetTop < 0 || targetTop + height > viewport.height;\n }\n onWindowResize(e) {\n this.hide();\n }\n bindDocumentResizeListener() {\n this.zone.runOutsideAngular(() => {\n this.resizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.resizeListener);\n });\n }\n unbindDocumentResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {\n if (this.container) {\n this.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n unbindEvents() {\n const tooltipEvent = this.getOption('tooltipEvent');\n if (tooltipEvent === 'hover' || tooltipEvent === 'both') {\n this.el.nativeElement.removeEventListener('mouseenter', this.mouseEnterListener);\n this.el.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListener);\n this.el.nativeElement.removeEventListener('click', this.clickListener);\n }\n if (tooltipEvent === 'focus' || tooltipEvent === 'both') {\n let target = this.el.nativeElement.querySelector('.p-component');\n if (!target) {\n target = this.getTarget(this.el.nativeElement);\n }\n target.removeEventListener('focus', this.focusListener);\n target.removeEventListener('blur', this.blurListener);\n }\n this.unbindDocumentResizeListener();\n }\n remove() {\n if (this.container && this.container.parentElement) {\n if (this.getOption('appendTo') === 'body')\n document.body.removeChild(this.container);\n else if (this.getOption('appendTo') === 'target')\n this.el.nativeElement.removeChild(this.container);\n else\n removeChild(this.container, this.getOption('appendTo'));\n }\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.unbindContainerMouseleaveListener();\n this.clearTimeouts();\n this.container = null;\n this.scrollHandler = null;\n }\n clearShowTimeout() {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n }\n clearHideTimeout() {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n clearTimeouts() {\n this.clearShowTimeout();\n this.clearHideTimeout();\n }\n ngOnDestroy() {\n this.unbindEvents();\n super.ngOnDestroy();\n if (this.container) {\n ZIndexUtils.clear(this.container);\n }\n this.remove();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.documentEscapeListener) {\n this.documentEscapeListener();\n }\n }\n static ɵfac = function Tooltip_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Tooltip)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: Tooltip, selectors: [[\"\", \"pTooltip\", \"\"]], inputs: { tooltipPosition: \"tooltipPosition\", tooltipEvent: \"tooltipEvent\", appendTo: \"appendTo\", positionStyle: \"positionStyle\", tooltipStyleClass: \"tooltipStyleClass\", tooltipZIndex: \"tooltipZIndex\", escape: [2, \"escape\", \"escape\", booleanAttribute], showDelay: [2, \"showDelay\", \"showDelay\", numberAttribute], hideDelay: [2, \"hideDelay\", \"hideDelay\", numberAttribute], life: [2, \"life\", \"life\", numberAttribute], positionTop: [2, \"positionTop\", \"positionTop\", numberAttribute], positionLeft: [2, \"positionLeft\", \"positionLeft\", numberAttribute], autoHide: [2, \"autoHide\", \"autoHide\", booleanAttribute], fitContent: [2, \"fitContent\", \"fitContent\", booleanAttribute], hideOnEscape: [2, \"hideOnEscape\", \"hideOnEscape\", booleanAttribute], content: [0, \"pTooltip\", \"content\"], disabled: [0, \"tooltipDisabled\", \"disabled\"], tooltipOptions: \"tooltipOptions\" }, standalone: true, features: [i0.ɵɵProvidersFeature([TooltipStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Tooltip, [{\n type: Directive,\n args: [{\n selector: '[pTooltip]',\n standalone: true,\n providers: [TooltipStyle]\n }]\n }], () => [{ type: i0.NgZone }, { type: i0.ViewContainerRef }], { tooltipPosition: [{\n type: Input\n }], tooltipEvent: [{\n type: Input\n }], appendTo: [{\n type: Input\n }], positionStyle: [{\n type: Input\n }], tooltipStyleClass: [{\n type: Input\n }], tooltipZIndex: [{\n type: Input\n }], escape: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showDelay: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], hideDelay: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], life: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], positionTop: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], positionLeft: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], autoHide: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], fitContent: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], hideOnEscape: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], content: [{\n type: Input,\n args: ['pTooltip']\n }], disabled: [{\n type: Input,\n args: ['tooltipDisabled']\n }], tooltipOptions: [{\n type: Input\n }] }); })();\nclass TooltipModule {\n static ɵfac = function TooltipModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TooltipModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: TooltipModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TooltipModule, [{\n type: NgModule,\n args: [{\n imports: [Tooltip],\n exports: [Tooltip]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(TooltipModule, { imports: [Tooltip], exports: [Tooltip] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Tooltip, TooltipClasses, TooltipModule, TooltipStyle };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, booleanAttribute, numberAttribute, Component, Input, Output, inject, signal, computed, effect, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, HostBinding, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { deepEquals, isNotEmpty, isEmpty, uuid, findSingle, scrollInView, equals, resolveFieldData, focus, unblockBodyScroll, isPrintableCharacter, findLastIndex, getFirstFocusableElement, getLastFocusableElement, getFocusableElements } from '@primeuix/utils';\nimport * as i2 from 'primeng/api';\nimport { SharedModule, TranslationKeys, PrimeTemplate } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { IconField } from 'primeng/iconfield';\nimport { CheckIcon, BlankIcon, TimesIcon, ChevronDownIcon, SearchIcon } from 'primeng/icons';\nimport { InputIcon } from 'primeng/inputicon';\nimport { InputText } from 'primeng/inputtext';\nimport { Overlay } from 'primeng/overlay';\nimport { Ripple } from 'primeng/ripple';\nimport { Scroller } from 'primeng/scroller';\nimport { Tooltip } from 'primeng/tooltip';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-select {\n display: inline-flex;\n cursor: pointer;\n position: relative;\n user-select: none;\n background: ${dt('select.background')};\n border: 1px solid ${dt('select.border.color')};\n transition: background ${dt('select.transition.duration')}, color ${dt('select.transition.duration')}, border-color ${dt('select.transition.duration')},\n outline-color ${dt('select.transition.duration')}, box-shadow ${dt('select.transition.duration')};\n border-radius: ${dt('select.border.radius')};\n outline-color: transparent;\n box-shadow: ${dt('select.shadow')};\n}\n\n.p-select.ng-invalid.ng-dirty {\n border-color: ${dt('select.invalid.border.color')};\n}\n\n.p-select:not(.p-disabled):hover {\n border-color: ${dt('select.hover.border.color')};\n}\n\n.p-select:not(.p-disabled).p-focus {\n border-color: ${dt('select.focus.border.color')};\n box-shadow: ${dt('select.focus.ring.shadow')};\n outline: ${dt('select.focus.ring.width')} ${dt('select.focus.ring.style')} ${dt('select.focus.ring.color')};\n outline-offset: ${dt('select.focus.ring.offset')};\n}\n\n.p-select.p-variant-filled {\n background: ${dt('select.filled.background')};\n}\n\n.p-select.p-variant-filled:not(.p-disabled):hover {\n background: ${dt('select.filled.hover.background')};\n}\n\n.p-select.p-variant-filled.p-focus {\n background: ${dt('select.filled.focus.background')};\n}\n\n.p-select.p-disabled {\n opacity: 1;\n background: ${dt('select.disabled.background')};\n}\n\n.p-select-clear-icon {\n position: absolute;\n top: 50%;\n margin-top: -0.5rem;\n color: ${dt('select.clear.icon.color')};\n inset-inline-end: ${dt('select.dropdown.width')};\n}\n\n.p-select-dropdown {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: transparent;\n color: ${dt('select.dropdown.color')};\n width: ${dt('select.dropdown.width')};\n border-start-end-radius: ${dt('select.border.radius')};\n border-end-end-radius: ${dt('select.border.radius')};\n}\n\n.p-select-label {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n flex: 1 1 auto;\n width: 1%;\n padding: ${dt('select.padding.y')} ${dt('select.padding.x')};\n text-overflow: ellipsis;\n cursor: pointer;\n color: ${dt('select.color')};\n background: transparent;\n border: 0 none;\n outline: 0 none;\n}\n\n.p-select-label.p-placeholder {\n color: ${dt('select.placeholder.color')};\n}\n\n.p-select.ng-invalid.ng-dirty .p-select-label.p-placeholder {\n color: ${dt('select.invalid.placeholder.color')};\n}\n\n.p-select:has(.p-select-clear-icon) .p-select-label {\n padding-inline-end: calc(1rem + ${dt('select.padding.x')});\n}\n\n.p-select.p-disabled .p-select-label {\n color: ${dt('select.disabled.color')};\n}\n\n.p-select-label-empty {\n overflow: hidden;\n opacity: 0;\n}\n\ninput.p-select-label {\n cursor: default;\n}\n\n.p-select .p-select-overlay {\n min-width: 100%;\n}\n\n.p-select-overlay {\n background: ${dt('select.overlay.background')};\n color: ${dt('select.overlay.color')};\n border: 1px solid ${dt('select.overlay.border.color')};\n border-radius: ${dt('select.overlay.border.radius')};\n box-shadow: ${dt('select.overlay.shadow')};\n}\n\n.p-select-header {\n padding: ${dt('select.list.header.padding')};\n}\n\n.p-select-filter {\n width: 100%;\n}\n\n.p-select-list-container {\n overflow: auto;\n}\n\n.p-select-option-group {\n cursor: auto;\n margin: 0;\n padding: ${dt('select.option.group.padding')};\n background: ${dt('select.option.group.background')};\n color: ${dt('select.option.group.color')};\n font-weight: ${dt('select.option.group.font.weight')};\n}\n\n.p-select-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n padding: ${dt('select.list.padding')};\n gap: ${dt('select.list.gap')};\n display: flex;\n flex-direction: column;\n}\n\n.p-select-option {\n cursor: pointer;\n font-weight: normal;\n white-space: nowrap;\n position: relative;\n overflow: hidden;\n display: flex;\n align-items: center;\n padding: ${dt('select.option.padding')};\n border: 0 none;\n color: ${dt('select.option.color')};\n background: transparent;\n transition: background ${dt('select.transition.duration')}, color ${dt('select.transition.duration')}, border-color ${dt('select.transition.duration')},\n box-shadow ${dt('select.transition.duration')}, outline-color ${dt('select.transition.duration')};\n border-radius: ${dt('select.option.border.radius')};\n}\n\n.p-select-option:not(.p-select-option-selected):not(.p-disabled).p-focus {\n background: ${dt('select.option.focus.background')};\n color: ${dt('select.option.focus.color')};\n}\n\n.p-select-option.p-select-option-selected {\n background: ${dt('select.option.selected.background')};\n color: ${dt('select.option.selected.color')};\n}\n\n.p-select-option.p-select-option-selected.p-focus {\n background: ${dt('select.option.selected.focus.background')};\n color: ${dt('select.option.selected.focus.color')};\n}\n\n.p-select-option-check-icon {\n position: relative;\n margin-inline-start: ${dt('select.checkmark.gutter.start')};\n margin-inline-end: ${dt('select.checkmark.gutter.end')};\n color: ${dt('select.checkmark.color')};\n}\n\n.p-select-empty-message {\n padding: ${dt('select.empty.message.padding')};\n}\n\n.p-select-fluid {\n display: flex;\n}\n\n.p-select-sm .p-select-label {\n font-size: ${dt('select.sm.font.size')};\n padding-block: ${dt('select.sm.padding.y')};\n padding-inline: ${dt('select.sm.padding.x')};\n}\n\n.p-select-sm .p-select-dropdown .p-icon {\n font-size: ${dt('select.sm.font.size')};\n width: ${dt('select.sm.font.size')};\n height: ${dt('select.sm.font.size')};\n}\n\n.p-select-lg .p-select-label {\n font-size: ${dt('select.lg.font.size')};\n padding-block: ${dt('select.lg.padding.y')};\n padding-inline: ${dt('select.lg.padding.x')};\n}\n\n.p-select-lg .p-select-dropdown .p-icon {\n font-size: ${dt('select.lg.font.size')};\n width: ${dt('select.lg.font.size')};\n height: ${dt('select.lg.font.size')};\n}\n`;\nconst classes = {\n root: ({ instance }) => [\n 'p-select p-component p-inputwrapper',\n {\n 'p-disabled': instance.disabled,\n 'p-variant-filled': instance.variant ? instance.variant === 'filled' : instance.config.inputStyle() === 'filled',\n 'p-focus': instance.focused,\n 'p-inputwrapper-filled': instance.modelValue() !== undefined && instance.modelValue() !== null,\n 'p-inputwrapper-focus': instance.focused || instance.overlayVisible,\n 'p-select-open': instance.overlayVisible,\n 'p-select-fluid': instance.fluid,\n 'p-select-sm p-inputfield-sm': instance.size === 'small',\n 'p-select-lg p-inputfield-lg': instance.size === 'large'\n }\n ],\n label: ({ instance, props }) => [\n 'p-select-label',\n {\n 'p-placeholder': !props.editable && instance.label === props.placeholder,\n 'p-select-label-empty': !props.editable && !instance.$slots['value'] && (instance.label === 'p-emptylabel' || instance.label.length === 0)\n }\n ],\n clearIcon: 'p-select-clear-icon',\n dropdown: 'p-select-dropdown',\n loadingicon: 'p-select-loading-icon',\n dropdownIcon: 'p-select-dropdown-icon',\n overlay: 'p-select-overlay p-component',\n header: 'p-select-header',\n pcFilter: 'p-select-filter',\n listContainer: 'p-select-list-container',\n list: 'p-select-list',\n optionGroup: 'p-select-option-group',\n optionGroupLabel: 'p-select-option-group-label',\n option: ({ instance, props, state, option, focusedOption }) => [\n 'p-select-option',\n {\n 'p-select-option-selected': instance.isSelected(option) && props.highlightOnSelect,\n 'p-focus': state.focusedOptionIndex === focusedOption,\n 'p-disabled': instance.isOptionDisabled(option)\n }\n ],\n optionLabel: 'p-select-option-label',\n optionCheckIcon: 'p-select-option-check-icon',\n optionBlankIcon: 'p-select-option-blank-icon',\n emptyMessage: 'p-select-empty-message'\n};\nclass SelectStyle extends BaseStyle {\n name = 'select';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵSelectStyle_BaseFactory; return function SelectStyle_Factory(__ngFactoryType__) { return (ɵSelectStyle_BaseFactory || (ɵSelectStyle_BaseFactory = i0.ɵɵgetInheritedFactory(SelectStyle)))(__ngFactoryType__ || SelectStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SelectStyle, factory: SelectStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * Select also known as Select, is used to choose an item from a collection of options.\n *\n * [Live Demo](https://www.primeng.org/select/)\n *\n * @module selectstyle\n *\n */\nvar SelectClasses;\n(function (SelectClasses) {\n /**\n * Class name of the root element\n */\n SelectClasses[\"root\"] = \"p-select\";\n /**\n * Class name of the label element\n */\n SelectClasses[\"label\"] = \"p-select-label\";\n /**\n * Class name of the clear icon element\n */\n SelectClasses[\"clearIcon\"] = \"p-select-clear-icon\";\n /**\n * Class name of the dropdown element\n */\n SelectClasses[\"dropdown\"] = \"p-select-dropdown\";\n /**\n * Class name of the loadingicon element\n */\n SelectClasses[\"loadingicon\"] = \"p-select-loading-icon\";\n /**\n * Class name of the dropdown icon element\n */\n SelectClasses[\"dropdownIcon\"] = \"p-select-dropdown-icon\";\n /**\n * Class name of the overlay element\n */\n SelectClasses[\"overlay\"] = \"p-select-overlay\";\n /**\n * Class name of the header element\n */\n SelectClasses[\"header\"] = \"p-select-header\";\n /**\n * Class name of the filter element\n */\n SelectClasses[\"pcFilter\"] = \"p-select-filter\";\n /**\n * Class name of the list container element\n */\n SelectClasses[\"listContainer\"] = \"p-select-list-container\";\n /**\n * Class name of the list element\n */\n SelectClasses[\"list\"] = \"p-select-list\";\n /**\n * Class name of the option group element\n */\n SelectClasses[\"optionGroup\"] = \"p-select-option-group\";\n /**\n * Class name of the option group label element\n */\n SelectClasses[\"optionGroupLabel\"] = \"p-select-option-group-label\";\n /**\n * Class name of the option element\n */\n SelectClasses[\"option\"] = \"p-select-option\";\n /**\n * Class name of the option label element\n */\n SelectClasses[\"optionLabel\"] = \"p-select-option-label\";\n /**\n * Class name of the option check icon element\n */\n SelectClasses[\"optionCheckIcon\"] = \"p-select-option-check-icon\";\n /**\n * Class name of the option blank icon element\n */\n SelectClasses[\"optionBlankIcon\"] = \"p-select-option-blank-icon\";\n /**\n * Class name of the empty message element\n */\n SelectClasses[\"emptyMessage\"] = \"p-select-empty-message\";\n})(SelectClasses || (SelectClasses = {}));\n\nconst _c0 = a0 => ({ height: a0 });\nconst _c1 = (a0, a1, a2) => ({ \"p-select-option\": true, \"p-select-option-selected\": a0, \"p-disabled\": a1, \"p-focus\": a2 });\nconst _c2 = a0 => ({ $implicit: a0 });\nfunction SelectItem_ng_container_1_CheckIcon_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"CheckIcon\", 5);\n} }\nfunction SelectItem_ng_container_1_BlankIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"BlankIcon\", 6);\n} }\nfunction SelectItem_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, SelectItem_ng_container_1_CheckIcon_1_Template, 1, 0, \"CheckIcon\", 3)(2, SelectItem_ng_container_1_BlankIcon_2_Template, 1, 0, \"BlankIcon\", 4);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.selected);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.selected);\n} }\nfunction SelectItem_span_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n let tmp_1_0;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate((tmp_1_0 = ctx_r0.label) !== null && tmp_1_0 !== undefined ? tmp_1_0 : \"empty\");\n} }\nfunction SelectItem_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nconst _c3 = [\"item\"];\nconst _c4 = [\"group\"];\nconst _c5 = [\"loader\"];\nconst _c6 = [\"selectedItem\"];\nconst _c7 = [\"header\"];\nconst _c8 = [\"filter\"];\nconst _c9 = [\"footer\"];\nconst _c10 = [\"emptyfilter\"];\nconst _c11 = [\"empty\"];\nconst _c12 = [\"dropdownicon\"];\nconst _c13 = [\"loadingicon\"];\nconst _c14 = [\"clearicon\"];\nconst _c15 = [\"filtericon\"];\nconst _c16 = [\"onicon\"];\nconst _c17 = [\"officon\"];\nconst _c18 = [\"cancelicon\"];\nconst _c19 = [\"focusInput\"];\nconst _c20 = [\"editableInput\"];\nconst _c21 = [\"items\"];\nconst _c22 = [\"scroller\"];\nconst _c23 = [\"overlay\"];\nconst _c24 = [\"firstHiddenFocusableEl\"];\nconst _c25 = [\"lastHiddenFocusableEl\"];\nconst _c26 = () => ({ class: \"p-select-clear-icon\" });\nconst _c27 = () => ({ class: \"p-select-dropdown-icon\" });\nconst _c28 = a0 => ({ options: a0 });\nconst _c29 = (a0, a1) => ({ $implicit: a0, options: a1 });\nconst _c30 = () => ({});\nfunction Select_span_0_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r2.label() === \"p-emptylabel\" ? \"\\u00A0\" : ctx_r2.label());\n} }\nfunction Select_span_0_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0, 24);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.selectedItemTemplate || ctx_r2._selectedItemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c2, ctx_r2.selectedOption));\n} }\nfunction Select_span_0_ng_template_4_span_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r2.label() === \"p-emptylabel\" ? \"\\u00A0\" : ctx_r2.label());\n} }\nfunction Select_span_0_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Select_span_0_ng_template_4_span_0_Template, 2, 1, \"span\", 18);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.selectedOption);\n} }\nfunction Select_span_0_Template(rf, ctx) { if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 22, 3);\n i0.ɵɵlistener(\"focus\", function Select_span_0_Template_span_focus_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onInputFocus($event)); })(\"blur\", function Select_span_0_Template_span_blur_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onInputBlur($event)); })(\"keydown\", function Select_span_0_Template_span_keydown_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onKeyDown($event)); });\n i0.ɵɵtemplate(2, Select_span_0_ng_container_2_Template, 2, 1, \"ng-container\", 20)(3, Select_span_0_ng_container_3_Template, 1, 4, \"ng-container\", 23)(4, Select_span_0_ng_template_4_Template, 1, 1, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n let tmp_17_0;\n const defaultPlaceholder_r4 = i0.ɵɵreference(5);\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r2.inputClass)(\"pTooltip\", ctx_r2.tooltip)(\"tooltipPosition\", ctx_r2.tooltipPosition)(\"positionStyle\", ctx_r2.tooltipPositionStyle)(\"tooltipStyleClass\", ctx_r2.tooltipStyleClass)(\"pAutoFocus\", ctx_r2.autofocus);\n i0.ɵɵattribute(\"aria-disabled\", ctx_r2.disabled)(\"id\", ctx_r2.inputId)(\"aria-label\", ctx_r2.ariaLabel || (ctx_r2.label() === \"p-emptylabel\" ? undefined : ctx_r2.label()))(\"aria-labelledby\", ctx_r2.ariaLabelledBy)(\"aria-haspopup\", \"listbox\")(\"aria-expanded\", (tmp_17_0 = ctx_r2.overlayVisible) !== null && tmp_17_0 !== undefined ? tmp_17_0 : false)(\"aria-controls\", ctx_r2.overlayVisible ? ctx_r2.id + \"_list\" : null)(\"tabindex\", !ctx_r2.disabled ? ctx_r2.tabindex : -1)(\"aria-activedescendant\", ctx_r2.focused ? ctx_r2.focusedOptionId : undefined)(\"aria-required\", ctx_r2.required)(\"required\", ctx_r2.required);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.selectedItemTemplate && !ctx_r2._selectedItemTemplate)(\"ngIfElse\", defaultPlaceholder_r4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r2.selectedItemTemplate || ctx_r2._selectedItemTemplate) && ctx_r2.selectedOption);\n} }\nfunction Select_input_1_Template(rf, ctx) { if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 25, 5);\n i0.ɵɵlistener(\"input\", function Select_input_1_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onEditableInput($event)); })(\"keydown\", function Select_input_1_Template_input_keydown_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onKeyDown($event)); })(\"focus\", function Select_input_1_Template_input_focus_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onInputFocus($event)); })(\"blur\", function Select_input_1_Template_input_blur_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onInputBlur($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r2.inputClass)(\"disabled\", ctx_r2.disabled)(\"pAutoFocus\", ctx_r2.autofocus);\n i0.ɵɵattribute(\"id\", ctx_r2.inputId)(\"maxlength\", ctx_r2.maxlength)(\"placeholder\", ctx_r2.modelValue() === undefined || ctx_r2.modelValue() === null ? ctx_r2.placeholder() : undefined)(\"aria-label\", ctx_r2.ariaLabel || (ctx_r2.label() === \"p-emptylabel\" ? undefined : ctx_r2.label()))(\"aria-activedescendant\", ctx_r2.focused ? ctx_r2.focusedOptionId : undefined);\n} }\nfunction Select_ng_container_2_TimesIcon_1_Template(rf, ctx) { if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"TimesIcon\", 27);\n i0.ɵɵlistener(\"click\", function Select_ng_container_2_TimesIcon_1_Template_TimesIcon_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.clear($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-section\", \"clearicon\");\n} }\nfunction Select_ng_container_2_span_2_1_ng_template_0_Template(rf, ctx) { }\nfunction Select_ng_container_2_span_2_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Select_ng_container_2_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Select_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 27);\n i0.ɵɵlistener(\"click\", function Select_ng_container_2_span_2_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.clear($event)); });\n i0.ɵɵtemplate(1, Select_ng_container_2_span_2_1_Template, 1, 0, null, 28);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"data-pc-section\", \"clearicon\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.clearIconTemplate || ctx_r2._clearIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction0(3, _c26));\n} }\nfunction Select_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Select_ng_container_2_TimesIcon_1_Template, 1, 1, \"TimesIcon\", 26)(2, Select_ng_container_2_span_2_Template, 2, 4, \"span\", 26);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.clearIconTemplate && !ctx_r2._clearIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.clearIconTemplate || ctx_r2._clearIconTemplate);\n} }\nfunction Select_ng_container_4_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Select_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Select_ng_container_4_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 29);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.loadingIconTemplate || ctx_r2._loadingIconTemplate);\n} }\nfunction Select_ng_container_4_ng_container_2_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 32);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", \"p-select-loading-icon pi-spin \" + ctx_r2.loadingIcon);\n} }\nfunction Select_ng_container_4_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 33);\n} if (rf & 2) {\n i0.ɵɵclassMap(\"p-select-loading-icon pi pi-spinner pi-spin\");\n} }\nfunction Select_ng_container_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Select_ng_container_4_ng_container_2_span_1_Template, 1, 1, \"span\", 30)(2, Select_ng_container_4_ng_container_2_span_2_Template, 1, 2, \"span\", 31);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.loadingIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.loadingIcon);\n} }\nfunction Select_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Select_ng_container_4_ng_container_1_Template, 2, 1, \"ng-container\", 18)(2, Select_ng_container_4_ng_container_2_Template, 3, 2, \"ng-container\", 18);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.loadingIconTemplate || ctx_r2._loadingIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.loadingIconTemplate && !ctx_r2._loadingIconTemplate);\n} }\nfunction Select_ng_template_5_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 37);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r2.dropdownIcon);\n} }\nfunction Select_ng_template_5_ng_container_0_ChevronDownIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\", 38);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-select-dropdown-icon\");\n} }\nfunction Select_ng_template_5_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Select_ng_template_5_ng_container_0_span_1_Template, 1, 1, \"span\", 35)(2, Select_ng_template_5_ng_container_0_ChevronDownIcon_2_Template, 1, 1, \"ChevronDownIcon\", 36);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.dropdownIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.dropdownIcon);\n} }\nfunction Select_ng_template_5_span_1_1_ng_template_0_Template(rf, ctx) { }\nfunction Select_ng_template_5_span_1_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Select_ng_template_5_span_1_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Select_ng_template_5_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 39);\n i0.ɵɵtemplate(1, Select_ng_template_5_span_1_1_Template, 1, 0, null, 28);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.dropdownIconTemplate || ctx_r2._dropdownIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction0(2, _c27));\n} }\nfunction Select_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Select_ng_template_5_ng_container_0_Template, 3, 2, \"ng-container\", 18)(1, Select_ng_template_5_span_1_Template, 2, 3, \"span\", 34);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.dropdownIconTemplate && !ctx_r2._dropdownIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.dropdownIconTemplate || ctx_r2._dropdownIconTemplate);\n} }\nfunction Select_ng_template_9_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Select_ng_template_9_div_4_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Select_ng_template_9_div_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Select_ng_template_9_div_4_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 28);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.filterTemplate || ctx_r2._filterTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c28, ctx_r2.filterOptions));\n} }\nfunction Select_ng_template_9_div_4_ng_template_2_SearchIcon_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"SearchIcon\");\n} }\nfunction Select_ng_template_9_div_4_ng_template_2_span_5_1_ng_template_0_Template(rf, ctx) { }\nfunction Select_ng_template_9_div_4_ng_template_2_span_5_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Select_ng_template_9_div_4_ng_template_2_span_5_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Select_ng_template_9_div_4_ng_template_2_span_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtemplate(1, Select_ng_template_9_div_4_ng_template_2_span_5_1_Template, 1, 0, null, 29);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.filterIconTemplate || ctx_r2._filterIconTemplate);\n} }\nfunction Select_ng_template_9_div_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-iconfield\")(1, \"input\", 46, 10);\n i0.ɵɵlistener(\"input\", function Select_ng_template_9_div_4_ng_template_2_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onFilterInputChange($event)); })(\"keydown\", function Select_ng_template_9_div_4_ng_template_2_Template_input_keydown_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onFilterKeyDown($event)); })(\"blur\", function Select_ng_template_9_div_4_ng_template_2_Template_input_blur_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onFilterBlur($event)); });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"p-inputicon\");\n i0.ɵɵtemplate(4, Select_ng_template_9_div_4_ng_template_2_SearchIcon_4_Template, 1, 0, \"SearchIcon\", 18)(5, Select_ng_template_9_div_4_ng_template_2_span_5_Template, 2, 1, \"span\", 18);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"pSize\", ctx_r2.size)(\"value\", ctx_r2._filterValue() || \"\")(\"variant\", ctx_r2.variant);\n i0.ɵɵattribute(\"placeholder\", ctx_r2.filterPlaceholder)(\"aria-owns\", ctx_r2.id + \"_list\")(\"aria-label\", ctx_r2.ariaFilterLabel)(\"aria-activedescendant\", ctx_r2.focusedOptionId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.filterIconTemplate && !ctx_r2._filterIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.filterIconTemplate || ctx_r2._filterIconTemplate);\n} }\nfunction Select_ng_template_9_div_4_Template(rf, ctx) { if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 45);\n i0.ɵɵlistener(\"click\", function Select_ng_template_9_div_4_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r9); return i0.ɵɵresetView($event.stopPropagation()); });\n i0.ɵɵtemplate(1, Select_ng_template_9_div_4_ng_container_1_Template, 2, 4, \"ng-container\", 20)(2, Select_ng_template_9_div_4_ng_template_2_Template, 6, 9, \"ng-template\", null, 9, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const builtInFilterElement_r11 = i0.ɵɵreference(3);\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.filterTemplate || ctx_r2._filterTemplate)(\"ngIfElse\", builtInFilterElement_r11);\n} }\nfunction Select_ng_template_9_p_scroller_6_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Select_ng_template_9_p_scroller_6_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Select_ng_template_9_p_scroller_6_ng_template_2_ng_container_0_Template, 1, 0, \"ng-container\", 28);\n} if (rf & 2) {\n const items_r13 = ctx.$implicit;\n const scrollerOptions_r14 = ctx.options;\n i0.ɵɵnextContext(2);\n const buildInItems_r15 = i0.ɵɵreference(9);\n i0.ɵɵproperty(\"ngTemplateOutlet\", buildInItems_r15)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c29, items_r13, scrollerOptions_r14));\n} }\nfunction Select_ng_template_9_p_scroller_6_ng_container_4_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Select_ng_template_9_p_scroller_6_ng_container_4_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Select_ng_template_9_p_scroller_6_ng_container_4_ng_template_1_ng_container_0_Template, 1, 0, \"ng-container\", 28);\n} if (rf & 2) {\n const scrollerOptions_r16 = ctx.options;\n const ctx_r2 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.loaderTemplate || ctx_r2._loaderTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c28, scrollerOptions_r16));\n} }\nfunction Select_ng_template_9_p_scroller_6_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Select_ng_template_9_p_scroller_6_ng_container_4_ng_template_1_Template, 1, 4, \"ng-template\", null, 12, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementContainerEnd();\n} }\nfunction Select_ng_template_9_p_scroller_6_Template(rf, ctx) { if (rf & 1) {\n const _r12 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-scroller\", 47, 11);\n i0.ɵɵlistener(\"onLazyLoad\", function Select_ng_template_9_p_scroller_6_Template_p_scroller_onLazyLoad_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onLazyLoad.emit($event)); });\n i0.ɵɵtemplate(2, Select_ng_template_9_p_scroller_6_ng_template_2_Template, 1, 5, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor)(4, Select_ng_template_9_p_scroller_6_ng_container_4_Template, 3, 0, \"ng-container\", 18);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵstyleMap(i0.ɵɵpureFunction1(8, _c0, ctx_r2.scrollHeight));\n i0.ɵɵproperty(\"items\", ctx_r2.visibleOptions())(\"itemSize\", ctx_r2.virtualScrollItemSize || ctx_r2._itemSize)(\"autoSize\", true)(\"lazy\", ctx_r2.lazy)(\"options\", ctx_r2.virtualScrollOptions);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngIf\", ctx_r2.loaderTemplate || ctx_r2._loaderTemplate);\n} }\nfunction Select_ng_template_9_ng_container_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Select_ng_template_9_ng_container_7_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Select_ng_template_9_ng_container_7_ng_container_1_Template, 1, 0, \"ng-container\", 28);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n i0.ɵɵnextContext();\n const buildInItems_r15 = i0.ɵɵreference(9);\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", buildInItems_r15)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(3, _c29, ctx_r2.visibleOptions(), i0.ɵɵpureFunction0(2, _c30)));\n} }\nfunction Select_ng_template_9_ng_template_8_ng_template_2_ng_container_0_span_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const option_r17 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r2.getOptionGroupLabel(option_r17.optionGroup));\n} }\nfunction Select_ng_template_9_ng_template_8_ng_template_2_ng_container_0_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Select_ng_template_9_ng_template_8_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"li\", 51);\n i0.ɵɵtemplate(2, Select_ng_template_9_ng_template_8_ng_template_2_ng_container_0_span_2_Template, 2, 1, \"span\", 18)(3, Select_ng_template_9_ng_template_8_ng_template_2_ng_container_0_ng_container_3_Template, 1, 0, \"ng-container\", 28);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r17 = i0.ɵɵnextContext();\n const option_r17 = ctx_r17.$implicit;\n const i_r19 = ctx_r17.index;\n const scrollerOptions_r20 = i0.ɵɵnextContext().options;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(5, _c0, scrollerOptions_r20.itemSize + \"px\"));\n i0.ɵɵattribute(\"id\", ctx_r2.id + \"_\" + ctx_r2.getOptionIndex(i_r19, scrollerOptions_r20));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.groupTemplate && !ctx_r2._groupTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.groupTemplate || ctx_r2._groupTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(7, _c2, option_r17.optionGroup));\n} }\nfunction Select_ng_template_9_ng_template_8_ng_template_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n const _r21 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"p-selectItem\", 52);\n i0.ɵɵlistener(\"onClick\", function Select_ng_template_9_ng_template_8_ng_template_2_ng_container_1_Template_p_selectItem_onClick_1_listener($event) { i0.ɵɵrestoreView(_r21); const option_r17 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onOptionSelect($event, option_r17)); })(\"onMouseEnter\", function Select_ng_template_9_ng_template_8_ng_template_2_ng_container_1_Template_p_selectItem_onMouseEnter_1_listener($event) { i0.ɵɵrestoreView(_r21); const i_r19 = i0.ɵɵnextContext().index; const scrollerOptions_r20 = i0.ɵɵnextContext().options; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onOptionMouseEnter($event, ctx_r2.getOptionIndex(i_r19, scrollerOptions_r20))); });\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r17 = i0.ɵɵnextContext();\n const option_r17 = ctx_r17.$implicit;\n const i_r19 = ctx_r17.index;\n const scrollerOptions_r20 = i0.ɵɵnextContext().options;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"id\", ctx_r2.id + \"_\" + ctx_r2.getOptionIndex(i_r19, scrollerOptions_r20))(\"option\", option_r17)(\"checkmark\", ctx_r2.checkmark)(\"selected\", ctx_r2.isSelected(option_r17))(\"label\", ctx_r2.getOptionLabel(option_r17))(\"disabled\", ctx_r2.isOptionDisabled(option_r17))(\"template\", ctx_r2.itemTemplate || ctx_r2._itemTemplate)(\"focused\", ctx_r2.focusedOptionIndex() === ctx_r2.getOptionIndex(i_r19, scrollerOptions_r20))(\"ariaPosInset\", ctx_r2.getAriaPosInset(ctx_r2.getOptionIndex(i_r19, scrollerOptions_r20)))(\"ariaSetSize\", ctx_r2.ariaSetSize);\n} }\nfunction Select_ng_template_9_ng_template_8_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Select_ng_template_9_ng_template_8_ng_template_2_ng_container_0_Template, 4, 9, \"ng-container\", 18)(1, Select_ng_template_9_ng_template_8_ng_template_2_ng_container_1_Template, 2, 10, \"ng-container\", 18);\n} if (rf & 2) {\n const option_r17 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isOptionGroup(option_r17));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.isOptionGroup(option_r17));\n} }\nfunction Select_ng_template_9_ng_template_8_li_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(4);\n i0.ɵɵtextInterpolate1(\" \", ctx_r2.emptyFilterMessageLabel, \" \");\n} }\nfunction Select_ng_template_9_ng_template_8_li_3_Conditional_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0, null, 14);\n} }\nfunction Select_ng_template_9_ng_template_8_li_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Select_ng_template_9_ng_template_8_li_3_Conditional_2_ng_container_0_Template, 2, 0, \"ng-container\", 29);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.emptyFilterTemplate || ctx_r2._emptyFilterTemplate || ctx_r2.emptyTemplate || ctx_r2._emptyTemplate);\n} }\nfunction Select_ng_template_9_ng_template_8_li_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 53);\n i0.ɵɵtemplate(1, Select_ng_template_9_ng_template_8_li_3_Conditional_1_Template, 1, 1)(2, Select_ng_template_9_ng_template_8_li_3_Conditional_2_Template, 1, 1, \"ng-container\");\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const scrollerOptions_r20 = i0.ɵɵnextContext().options;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(2, _c0, scrollerOptions_r20.itemSize + \"px\"));\n i0.ɵɵadvance();\n i0.ɵɵconditional(!ctx_r2.emptyFilterTemplate && !ctx_r2._emptyFilterTemplate && !ctx_r2.emptyTemplate ? 1 : 2);\n} }\nfunction Select_ng_template_9_ng_template_8_li_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(4);\n i0.ɵɵtextInterpolate1(\" \", ctx_r2.emptyMessageLabel, \" \");\n} }\nfunction Select_ng_template_9_ng_template_8_li_4_Conditional_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0, null, 15);\n} }\nfunction Select_ng_template_9_ng_template_8_li_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Select_ng_template_9_ng_template_8_li_4_Conditional_2_ng_container_0_Template, 2, 0, \"ng-container\", 29);\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.emptyTemplate || ctx_r2._emptyTemplate);\n} }\nfunction Select_ng_template_9_ng_template_8_li_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 53);\n i0.ɵɵtemplate(1, Select_ng_template_9_ng_template_8_li_4_Conditional_1_Template, 1, 1)(2, Select_ng_template_9_ng_template_8_li_4_Conditional_2_Template, 1, 1, \"ng-container\");\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const scrollerOptions_r20 = i0.ɵɵnextContext().options;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(2, _c0, scrollerOptions_r20.itemSize + \"px\"));\n i0.ɵɵadvance();\n i0.ɵɵconditional(!ctx_r2.emptyTemplate && !ctx_r2._emptyTemplate ? 1 : 2);\n} }\nfunction Select_ng_template_9_ng_template_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"ul\", 48, 13);\n i0.ɵɵtemplate(2, Select_ng_template_9_ng_template_8_ng_template_2_Template, 2, 2, \"ng-template\", 49)(3, Select_ng_template_9_ng_template_8_li_3_Template, 3, 4, \"li\", 50)(4, Select_ng_template_9_ng_template_8_li_4_Template, 3, 4, \"li\", 50);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const items_r22 = ctx.$implicit;\n const scrollerOptions_r20 = ctx.options;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵstyleMap(scrollerOptions_r20.contentStyle);\n i0.ɵɵproperty(\"ngClass\", scrollerOptions_r20.contentStyleClass);\n i0.ɵɵattribute(\"id\", ctx_r2.id + \"_list\")(\"aria-label\", ctx_r2.listLabel);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", items_r22);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.filterValue && ctx_r2.isEmpty());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.filterValue && ctx_r2.isEmpty());\n} }\nfunction Select_ng_template_9_ng_container_10_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Select_ng_template_9_Template(rf, ctx) { if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 40)(1, \"span\", 41, 6);\n i0.ɵɵlistener(\"focus\", function Select_ng_template_9_Template_span_focus_1_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onFirstHiddenFocus($event)); });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, Select_ng_template_9_ng_container_3_Template, 1, 0, \"ng-container\", 29)(4, Select_ng_template_9_div_4_Template, 4, 2, \"div\", 42);\n i0.ɵɵelementStart(5, \"div\", 43);\n i0.ɵɵtemplate(6, Select_ng_template_9_p_scroller_6_Template, 5, 10, \"p-scroller\", 44)(7, Select_ng_template_9_ng_container_7_Template, 2, 6, \"ng-container\", 18)(8, Select_ng_template_9_ng_template_8_Template, 5, 8, \"ng-template\", null, 7, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(10, Select_ng_template_9_ng_container_10_Template, 1, 0, \"ng-container\", 29);\n i0.ɵɵelementStart(11, \"span\", 41, 8);\n i0.ɵɵlistener(\"focus\", function Select_ng_template_9_Template_span_focus_11_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onLastHiddenFocus($event)); });\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r2.panelStyleClass);\n i0.ɵɵproperty(\"ngClass\", \"p-select-overlay p-component\")(\"ngStyle\", ctx_r2.panelStyle);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"tabindex\", 0)(\"data-p-hidden-accessible\", true)(\"data-p-hidden-focusable\", true);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.headerTemplate || ctx_r2._headerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.filter);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"max-height\", ctx_r2.virtualScroll ? \"auto\" : ctx_r2.scrollHeight || \"auto\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.virtualScroll);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.virtualScroll);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.footerTemplate || ctx_r2._footerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"tabindex\", 0)(\"data-p-hidden-accessible\", true)(\"data-p-hidden-focusable\", true);\n} }\nconst SELECT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Select),\n multi: true\n};\nclass SelectItem extends BaseComponent {\n id;\n option;\n selected;\n focused;\n label;\n disabled;\n visible;\n itemSize;\n ariaPosInset;\n ariaSetSize;\n template;\n checkmark;\n onClick = new EventEmitter();\n onMouseEnter = new EventEmitter();\n onOptionClick(event) {\n this.onClick.emit(event);\n }\n onOptionMouseEnter(event) {\n this.onMouseEnter.emit(event);\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵSelectItem_BaseFactory; return function SelectItem_Factory(__ngFactoryType__) { return (ɵSelectItem_BaseFactory || (ɵSelectItem_BaseFactory = i0.ɵɵgetInheritedFactory(SelectItem)))(__ngFactoryType__ || SelectItem); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SelectItem, selectors: [[\"p-selectItem\"]], inputs: { id: \"id\", option: \"option\", selected: [2, \"selected\", \"selected\", booleanAttribute], focused: [2, \"focused\", \"focused\", booleanAttribute], label: \"label\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], visible: [2, \"visible\", \"visible\", booleanAttribute], itemSize: [2, \"itemSize\", \"itemSize\", numberAttribute], ariaPosInset: \"ariaPosInset\", ariaSetSize: \"ariaSetSize\", template: \"template\", checkmark: [2, \"checkmark\", \"checkmark\", booleanAttribute] }, outputs: { onClick: \"onClick\", onMouseEnter: \"onMouseEnter\" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 4, vars: 22, consts: [[\"role\", \"option\", \"pRipple\", \"\", 3, \"click\", \"mouseenter\", \"id\", \"ngStyle\", \"ngClass\"], [4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"styleClass\", \"p-select-option-check-icon\", 4, \"ngIf\"], [\"styleClass\", \"p-select-option-blank-icon\", 4, \"ngIf\"], [\"styleClass\", \"p-select-option-check-icon\"], [\"styleClass\", \"p-select-option-blank-icon\"]], template: function SelectItem_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 0);\n i0.ɵɵlistener(\"click\", function SelectItem_Template_li_click_0_listener($event) { return ctx.onOptionClick($event); })(\"mouseenter\", function SelectItem_Template_li_mouseenter_0_listener($event) { return ctx.onOptionMouseEnter($event); });\n i0.ɵɵtemplate(1, SelectItem_ng_container_1_Template, 3, 2, \"ng-container\", 1)(2, SelectItem_span_2_Template, 2, 1, \"span\", 1)(3, SelectItem_ng_container_3_Template, 1, 0, \"ng-container\", 2);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵproperty(\"id\", ctx.id)(\"ngStyle\", i0.ɵɵpureFunction1(14, _c0, ctx.itemSize + \"px\"))(\"ngClass\", i0.ɵɵpureFunction3(16, _c1, ctx.selected && !ctx.checkmark, ctx.disabled, ctx.focused));\n i0.ɵɵattribute(\"aria-label\", ctx.label)(\"aria-setsize\", ctx.ariaSetSize)(\"aria-posinset\", ctx.ariaPosInset)(\"aria-selected\", ctx.selected)(\"data-p-focused\", ctx.focused)(\"data-p-highlight\", ctx.selected)(\"data-p-disabled\", ctx.disabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.checkmark);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.template);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(20, _c2, ctx.option));\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, SharedModule, Ripple, CheckIcon, BlankIcon], encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectItem, [{\n type: Component,\n args: [{\n selector: 'p-selectItem',\n standalone: true,\n imports: [CommonModule, SharedModule, Ripple, CheckIcon, BlankIcon],\n template: `\n \n \n \n \n \n {{ label ?? 'empty' }}\n \n \n `\n }]\n }], null, { id: [{\n type: Input\n }], option: [{\n type: Input\n }], selected: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], focused: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], label: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], visible: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], itemSize: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], ariaPosInset: [{\n type: Input\n }], ariaSetSize: [{\n type: Input\n }], template: [{\n type: Input\n }], checkmark: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onClick: [{\n type: Output\n }], onMouseEnter: [{\n type: Output\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectItem, { className: \"SelectItem\" }); })();\n/**\n * Select is used to choose an item from a collection of options.\n * @group Components\n */\nclass Select extends BaseComponent {\n zone;\n filterService;\n /**\n * Unique identifier of the component\n * @group Props\n */\n id;\n /**\n * Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n scrollHeight = '200px';\n /**\n * When specified, displays an input field to filter the items on keyup.\n * @group Props\n */\n filter;\n /**\n * Name of the input element.\n * @group Props\n */\n name;\n /**\n * Inline style of the element.\n * @group Props\n */\n style;\n /**\n * Inline style of the overlay panel element.\n * @group Props\n */\n panelStyle;\n /**\n * Style class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Style class of the overlay panel element.\n * @group Props\n */\n panelStyleClass;\n /**\n * When present, it specifies that the component cannot be edited.\n * @group Props\n */\n readonly;\n /**\n * When present, it specifies that an input field must be filled out before submitting the form.\n * @group Props\n */\n required;\n /**\n * When present, custom value instead of predefined options can be entered using the editable input field.\n * @group Props\n */\n editable;\n /**\n * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n appendTo;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex = 0;\n /**\n * Default text to display when no option is selected.\n * @group Props\n */\n set placeholder(val) {\n this._placeholder.set(val);\n }\n get placeholder() {\n return this._placeholder.asReadonly();\n }\n /**\n * Icon to display in loading state.\n * @group Props\n */\n loadingIcon;\n /**\n * Placeholder text to show when filter input is empty.\n * @group Props\n */\n filterPlaceholder;\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n filterLocale;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant = 'outlined';\n /**\n * Identifier of the accessible input element.\n * @group Props\n */\n inputId;\n /**\n * A property to uniquely identify a value in options.\n * @group Props\n */\n dataKey;\n /**\n * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n * @group Props\n */\n filterBy;\n /**\n * Fields used when filtering the options, defaults to optionLabel.\n * @group Props\n */\n filterFields;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Clears the filter value when hiding the select.\n * @group Props\n */\n resetFilterOnHide = false;\n /**\n * Whether the selected option will be shown with a check mark.\n * @group Props\n */\n checkmark = false;\n /**\n * Icon class of the select icon.\n * @group Props\n */\n dropdownIcon;\n /**\n * Whether the select is in loading state.\n * @group Props\n */\n loading = false;\n /**\n * Name of the label field of an option.\n * @group Props\n */\n optionLabel;\n /**\n * Name of the value field of an option.\n * @group Props\n */\n optionValue;\n /**\n * Name of the disabled field of an option.\n * @group Props\n */\n optionDisabled;\n /**\n * Name of the label field of an option group.\n * @group Props\n */\n optionGroupLabel = 'label';\n /**\n * Name of the options field of an option group.\n * @group Props\n */\n optionGroupChildren = 'items';\n /**\n * Whether to display the first item as the label if no placeholder is defined and value is null.\n * @deprecated since v17.3.0, set initial value by model instead.\n * @group Props\n */\n autoDisplayFirst = true;\n /**\n * Whether to display options as grouped when nested options are provided.\n * @group Props\n */\n group;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n showClear;\n /**\n * Text to display when filtering does not return any results. Defaults to global value in i18n translation configuration.\n * @group Props\n */\n emptyFilterMessage = '';\n /**\n * Text to display when there is no data. Defaults to global value in i18n translation configuration.\n * @group Props\n */\n emptyMessage = '';\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n lazy = false;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n virtualScroll;\n /**\n * Height of an item in the list for VirtualScrolling.\n * @group Props\n */\n virtualScrollItemSize;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n virtualScrollOptions;\n /**\n * Defines the size of the component.\n * @group Props\n */\n size;\n /**\n * Whether to use overlay API feature. The properties of overlay API can be used like an object in it.\n * @group Props\n */\n overlayOptions;\n /**\n * Defines a string that labels the filter input.\n * @group Props\n */\n ariaFilterLabel;\n /**\n * Used to define a aria label attribute the current element.\n * @group Props\n */\n ariaLabel;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Defines how the items are filtered.\n * @group Props\n */\n filterMatchMode = 'contains';\n /**\n * Maximum number of character allows in the editable input field.\n * @group Props\n */\n maxlength;\n /**\n * Advisory information to display in a tooltip on hover.\n * @group Props\n */\n tooltip = '';\n /**\n * Position of the tooltip.\n * @group Props\n */\n tooltipPosition = 'right';\n /**\n * Type of CSS position.\n * @group Props\n */\n tooltipPositionStyle = 'absolute';\n /**\n * Style class of the tooltip.\n * @group Props\n */\n tooltipStyleClass;\n /**\n * Fields used when filtering the options, defaults to optionLabel.\n * @group Props\n */\n focusOnHover = true;\n /**\n * Determines if the option will be selected on focus.\n * @group Props\n */\n selectOnFocus = false;\n /**\n * Whether to focus on the first visible or selected element when the overlay panel is shown.\n * @group Props\n */\n autoOptionFocus = false;\n /**\n * Applies focus to the filter element when the overlay is shown.\n * @group Props\n */\n autofocusFilter = true;\n /**\n * Whether the component should span the full width of its parent.\n * @group Props\n */\n fluid;\n /**\n * When present, it specifies that the component should be disabled.\n * @group Props\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(_disabled) {\n if (_disabled) {\n this.focused = false;\n if (this.overlayVisible)\n this.hide();\n }\n this._disabled = _disabled;\n if (!this.cd.destroyed) {\n this.cd.detectChanges();\n }\n }\n /**\n * Item size of item to be virtual scrolled.\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n get itemSize() {\n return this._itemSize;\n }\n set itemSize(val) {\n this._itemSize = val;\n console.log('The itemSize property is deprecated, use virtualScrollItemSize property instead.');\n }\n _itemSize;\n /**\n * Whether to automatically manage layering.\n * @group Props\n * @deprecated since v14.2.0, use overlayOptions property instead.\n */\n get autoZIndex() {\n return this._autoZIndex;\n }\n set autoZIndex(val) {\n this._autoZIndex = val;\n console.log('The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n _autoZIndex;\n /**\n * Base zIndex value to use in layering.\n * @group Props\n * @deprecated since v14.2.0, use overlayOptions property instead.\n */\n get baseZIndex() {\n return this._baseZIndex;\n }\n set baseZIndex(val) {\n this._baseZIndex = val;\n console.log('The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n _baseZIndex;\n /**\n * Transition options of the show animation.\n * @group Props\n * @deprecated since v14.2.0, use overlayOptions property instead.\n */\n get showTransitionOptions() {\n return this._showTransitionOptions;\n }\n set showTransitionOptions(val) {\n this._showTransitionOptions = val;\n console.log('The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n _showTransitionOptions;\n /**\n * Transition options of the hide animation.\n * @group Props\n * @deprecated since v14.2.0, use overlayOptions property instead.\n */\n get hideTransitionOptions() {\n return this._hideTransitionOptions;\n }\n set hideTransitionOptions(val) {\n this._hideTransitionOptions = val;\n console.log('The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n _hideTransitionOptions;\n /**\n * When specified, filter displays with this value.\n * @group Props\n */\n get filterValue() {\n return this._filterValue();\n }\n set filterValue(val) {\n setTimeout(() => {\n this._filterValue.set(val);\n });\n }\n /**\n * An array of objects to display as the available options.\n * @group Props\n */\n get options() {\n const options = this._options();\n return options;\n }\n set options(val) {\n if (!deepEquals(val, this._options())) {\n this._options.set(val);\n }\n }\n /**\n * Callback to invoke when value of select changes.\n * @param {SelectChangeEvent} event - custom change event.\n * @group Emits\n */\n onChange = new EventEmitter();\n /**\n * Callback to invoke when data is filtered.\n * @param {SelectFilterEvent} event - custom filter event.\n * @group Emits\n */\n onFilter = new EventEmitter();\n /**\n * Callback to invoke when select gets focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onFocus = new EventEmitter();\n /**\n * Callback to invoke when select loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onBlur = new EventEmitter();\n /**\n * Callback to invoke when component is clicked.\n * @param {MouseEvent} event - Mouse event.\n * @group Emits\n */\n onClick = new EventEmitter();\n /**\n * Callback to invoke when select overlay gets visible.\n * @param {AnimationEvent} event - Animation event.\n * @group Emits\n */\n onShow = new EventEmitter();\n /**\n * Callback to invoke when select overlay gets hidden.\n * @param {AnimationEvent} event - Animation event.\n * @group Emits\n */\n onHide = new EventEmitter();\n /**\n * Callback to invoke when select clears the value.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onClear = new EventEmitter();\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {SelectLazyLoadEvent} event - Lazy load event.\n * @group Emits\n */\n onLazyLoad = new EventEmitter();\n _componentStyle = inject(SelectStyle);\n filterViewChild;\n focusInputViewChild;\n editableInputViewChild;\n itemsViewChild;\n scroller;\n overlayViewChild;\n firstHiddenFocusableElementOnOverlay;\n lastHiddenFocusableElementOnOverlay;\n // @todo to be refactored\n get hostClass() {\n const classes = this._componentStyle.classes\n .root({ instance: this })\n .map((cls) => {\n if (typeof cls === 'string') {\n return cls;\n }\n else {\n return Object.keys(cls)\n .filter((key) => cls[key])\n .join(' ');\n }\n })\n .join(' ');\n return classes + ' ' + this.styleClass;\n }\n get hostStyle() {\n return this.style;\n }\n _disabled;\n itemsWrapper;\n /**\n * Custom item template.\n * @group Templates\n */\n itemTemplate;\n /**\n * Custom group template.\n * @group Templates\n */\n groupTemplate;\n /**\n * Custom loader template.\n * @group Templates\n */\n loaderTemplate;\n /**\n * Custom selected item template.\n * @group Templates\n */\n selectedItemTemplate;\n /**\n * Custom header template.\n * @group Templates\n */\n headerTemplate;\n /**\n * Custom filter template.\n * @group Templates\n */\n filterTemplate;\n /**\n * Custom footer template.\n * @group Templates\n */\n footerTemplate;\n /**\n * Custom empty filter template.\n * @group Templates\n */\n emptyFilterTemplate;\n /**\n * Custom empty template.\n * @group Templates\n */\n emptyTemplate;\n /**\n * Custom dropdown icon template.\n * @group Templates\n */\n dropdownIconTemplate;\n /**\n * Custom loading icon template.\n * @group Templates\n */\n loadingIconTemplate;\n /**\n * Custom clear icon template.\n * @group Templates\n */\n clearIconTemplate;\n /**\n * Custom filter icon template.\n * @group Templates\n */\n filterIconTemplate;\n /**\n * Custom on icon template.\n * @group Templates\n */\n onIconTemplate;\n /**\n * Custom off icon template.\n * @group Templates\n */\n offIconTemplate;\n /**\n * Custom cancel icon template.\n * @group Templates\n */\n cancelIconTemplate;\n templates;\n _itemTemplate;\n _selectedItemTemplate;\n _headerTemplate;\n _filterTemplate;\n _footerTemplate;\n _emptyFilterTemplate;\n _emptyTemplate;\n _groupTemplate;\n _loaderTemplate;\n _dropdownIconTemplate;\n _loadingIconTemplate;\n _clearIconTemplate;\n _filterIconTemplate;\n _cancelIconTemplate;\n _onIconTemplate;\n _offIconTemplate;\n filterOptions;\n _options = signal(null);\n _placeholder = signal(undefined);\n modelValue = signal(null);\n value;\n onModelChange = () => { };\n onModelTouched = () => { };\n hover;\n focused;\n overlayVisible;\n optionsChanged;\n panel;\n dimensionsUpdated;\n hoveredItem;\n selectedOptionUpdated;\n _filterValue = signal(null);\n searchValue;\n searchIndex;\n searchTimeout;\n previousSearchChar;\n currentSearchChar;\n preventModelTouched;\n focusedOptionIndex = signal(-1);\n labelId;\n listId;\n clicked = signal(false);\n get emptyMessageLabel() {\n return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);\n }\n get emptyFilterMessageLabel() {\n return this.emptyFilterMessage || this.config.getTranslation(TranslationKeys.EMPTY_FILTER_MESSAGE);\n }\n get isVisibleClearIcon() {\n return this.modelValue() != null && this.hasSelectedOption() && this.showClear && !this.disabled;\n }\n get listLabel() {\n return this.config.getTranslation(TranslationKeys.ARIA)['listLabel'];\n }\n get rootClass() {\n return this._componentStyle.classes.root({ instance: this });\n }\n get inputClass() {\n const label = this.label();\n return {\n 'p-select-label': true,\n 'p-placeholder': this.placeholder() && label === this.placeholder(),\n 'p-select-label-empty': !this.editable && !this.selectedItemTemplate && (label === undefined || label === null || label === 'p-emptylabel' || label.length === 0)\n };\n }\n get panelClass() {\n return {\n 'p-dropdown-panel p-component': true,\n 'p-input-filled': this.config.inputStyle() === 'filled' || this.config.inputVariant() === 'filled',\n 'p-ripple-disabled': this.config.ripple() === false\n };\n }\n get focusedOptionId() {\n return this.focusedOptionIndex() !== -1 ? `${this.id}_${this.focusedOptionIndex()}` : null;\n }\n visibleOptions = computed(() => {\n const options = this.getAllVisibleAndNonVisibleOptions();\n if (this._filterValue()) {\n const _filterBy = this.filterBy || this.optionLabel;\n const filteredOptions = !_filterBy && !this.filterFields && !this.optionValue\n ? this.options.filter((option) => {\n if (option.label) {\n return option.label.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()) !== -1;\n }\n return option.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()) !== -1;\n })\n : this.filterService.filter(options, this.searchFields(), this._filterValue().trim(), this.filterMatchMode, this.filterLocale);\n if (this.group) {\n const optionGroups = this.options || [];\n const filtered = [];\n optionGroups.forEach((group) => {\n const groupChildren = this.getOptionGroupChildren(group);\n const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));\n if (filteredItems.length > 0)\n filtered.push({\n ...group,\n [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems]\n });\n });\n return this.flatOptions(filtered);\n }\n return filteredOptions;\n }\n return options;\n });\n label = computed(() => {\n // use getAllVisibleAndNonVisibleOptions verses just visible options\n // this will find the selected option whether or not the user is currently filtering because the filtered (i.e. visible) options, are a subset of all the options\n const options = this.getAllVisibleAndNonVisibleOptions();\n // use isOptionEqualsModelValue for the use case where the dropdown is initalized with a disabled option\n const selectedOptionIndex = options.findIndex((option) => this.isOptionValueEqualsModelValue(option));\n return selectedOptionIndex !== -1 ? this.getOptionLabel(options[selectedOptionIndex]) : this.placeholder() || 'p-emptylabel';\n });\n filled = computed(() => {\n if (typeof this.modelValue() === 'string')\n return !!this.modelValue();\n return this.label() !== 'p-emptylabel' && this.modelValue() !== undefined && this.modelValue() !== null;\n });\n selectedOption;\n editableInputValue = computed(() => this.getOptionLabel(this.selectedOption) || this.modelValue() || '');\n constructor(zone, filterService) {\n super();\n this.zone = zone;\n this.filterService = filterService;\n effect(() => {\n const modelValue = this.modelValue();\n const visibleOptions = this.visibleOptions();\n if (visibleOptions && isNotEmpty(visibleOptions)) {\n const selectedOptionIndex = this.findSelectedOptionIndex();\n if (selectedOptionIndex !== -1 || modelValue === undefined || (typeof modelValue === 'string' && modelValue.length === 0) || this.isModelValueNotSet() || this.editable) {\n this.selectedOption = visibleOptions[selectedOptionIndex];\n }\n }\n if (isEmpty(visibleOptions) && (modelValue === undefined || this.isModelValueNotSet()) && isNotEmpty(this.selectedOption)) {\n this.selectedOption = null;\n }\n if (modelValue !== undefined && this.editable) {\n this.updateEditableLabel();\n }\n this.cd.markForCheck();\n });\n }\n isModelValueNotSet() {\n return this.modelValue() === null && !this.isOptionValueEqualsModelValue(this.selectedOption);\n }\n getAllVisibleAndNonVisibleOptions() {\n return this.group ? this.flatOptions(this.options) : this.options || [];\n }\n ngOnInit() {\n super.ngOnInit();\n this.id = this.id || uuid('pn_id_');\n this.autoUpdateModel();\n if (this.filterBy) {\n this.filterOptions = {\n filter: (value) => this.onFilterInputChange(value),\n reset: () => this.resetFilter()\n };\n }\n }\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this._itemTemplate = item.template;\n break;\n case 'selectedItem':\n this._selectedItemTemplate = item.template;\n break;\n case 'header':\n this._headerTemplate = item.template;\n break;\n case 'filter':\n this._filterTemplate = item.template;\n break;\n case 'footer':\n this._footerTemplate = item.template;\n break;\n case 'emptyfilter':\n this._emptyFilterTemplate = item.template;\n break;\n case 'empty':\n this._emptyTemplate = item.template;\n break;\n case 'group':\n this._groupTemplate = item.template;\n break;\n case 'loader':\n this._loaderTemplate = item.template;\n break;\n case 'dropdownicon':\n this._dropdownIconTemplate = item.template;\n break;\n case 'loadingicon':\n this._loadingIconTemplate = item.template;\n break;\n case 'clearicon':\n this._clearIconTemplate = item.template;\n break;\n case 'filtericon':\n this._filterIconTemplate = item.template;\n break;\n case 'cancelicon':\n this._cancelIconTemplate = item.template;\n break;\n case 'onicon':\n this._onIconTemplate = item.template;\n break;\n case 'officon':\n this._offIconTemplate = item.template;\n break;\n default:\n this._itemTemplate = item.template;\n break;\n }\n });\n }\n ngAfterViewChecked() {\n if (this.optionsChanged && this.overlayVisible) {\n this.optionsChanged = false;\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n if (this.overlayViewChild) {\n this.overlayViewChild.alignOverlay();\n }\n }, 1);\n });\n }\n if (this.selectedOptionUpdated && this.itemsWrapper) {\n let selectedItem = findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement, 'li.p-highlight');\n if (selectedItem) {\n scrollInView(this.itemsWrapper, selectedItem);\n }\n this.selectedOptionUpdated = false;\n }\n }\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n const optionGroupChildren = this.getOptionGroupChildren(option);\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n return result;\n }, []);\n }\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption()) {\n this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex());\n this.onOptionSelect(null, this.visibleOptions()[this.focusedOptionIndex()], false);\n }\n if (this.autoDisplayFirst && (this.modelValue() === null || this.modelValue() === undefined)) {\n if (!this.placeholder()) {\n const ind = this.findFirstOptionIndex();\n this.onOptionSelect(null, this.visibleOptions()[ind], false, true);\n }\n }\n }\n onOptionSelect(event, option, isHide = true, preventChange = false) {\n if (!this.isSelected(option)) {\n const value = this.getOptionValue(option);\n this.updateModel(value, event);\n this.focusedOptionIndex.set(this.findSelectedOptionIndex());\n preventChange === false && this.onChange.emit({ originalEvent: event, value: value });\n }\n if (isHide) {\n this.hide(true);\n }\n }\n onOptionMouseEnter(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n }\n updateModel(value, event) {\n this.value = value;\n this.onModelChange(value);\n this.modelValue.set(value);\n this.selectedOptionUpdated = true;\n }\n writeValue(value) {\n if (this.filter) {\n this.resetFilter();\n }\n this.value = value;\n this.allowModelChange() && this.onModelChange(value);\n this.modelValue.set(this.value);\n this.updateEditableLabel();\n this.cd.markForCheck();\n }\n allowModelChange() {\n return this.autoDisplayFirst && !this.placeholder() && (this.modelValue() === undefined || this.modelValue() === null) && !this.editable && this.options && this.options.length;\n }\n isSelected(option) {\n return this.isValidOption(option) && this.isOptionValueEqualsModelValue(option);\n }\n isOptionValueEqualsModelValue(option) {\n return equals(this.modelValue(), this.getOptionValue(option), this.equalityKey());\n }\n ngAfterViewInit() {\n if (this.editable) {\n this.updateEditableLabel();\n }\n this.updatePlaceHolderForFloatingLabel();\n }\n updatePlaceHolderForFloatingLabel() {\n const parentElement = this.el.nativeElement.parentElement;\n const isInFloatingLabel = parentElement?.classList.contains('p-float-label');\n if (parentElement && isInFloatingLabel && !this.selectedOption) {\n const label = parentElement.querySelector('label');\n if (label) {\n this._placeholder.set(label.textContent);\n }\n }\n }\n updateEditableLabel() {\n if (this.editableInputViewChild) {\n this.editableInputViewChild.nativeElement.value = this.getOptionLabel(this.selectedOption) || this.modelValue() || '';\n }\n }\n clearEditableLabel() {\n if (this.editableInputViewChild) {\n this.editableInputViewChild.nativeElement.value = '';\n }\n }\n getOptionIndex(index, scrollerOptions) {\n return this.virtualScrollerDisabled ? index : scrollerOptions && scrollerOptions.getItemOptions(index)['index'];\n }\n getOptionLabel(option) {\n return this.optionLabel !== undefined && this.optionLabel !== null ? resolveFieldData(option, this.optionLabel) : option && option.label !== undefined ? option.label : option;\n }\n getOptionValue(option) {\n return this.optionValue && this.optionValue !== null ? resolveFieldData(option, this.optionValue) : !this.optionLabel && option && option.value !== undefined ? option.value : option;\n }\n isOptionDisabled(option) {\n if (this.getOptionValue(this.modelValue()) === this.getOptionValue(option) || (this.getOptionLabel(this.modelValue() === this.getOptionLabel(option)) && option.disabled === false)) {\n return false;\n }\n else {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : option && option.disabled !== undefined ? option.disabled : false;\n }\n }\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel !== undefined && this.optionGroupLabel !== null ? resolveFieldData(optionGroup, this.optionGroupLabel) : optionGroup && optionGroup.label !== undefined ? optionGroup.label : optionGroup;\n }\n getOptionGroupChildren(optionGroup) {\n return this.optionGroupChildren !== undefined && this.optionGroupChildren !== null ? resolveFieldData(optionGroup, this.optionGroupChildren) : optionGroup.items;\n }\n getAriaPosInset(index) {\n return ((this.optionGroupLabel\n ? index -\n this.visibleOptions()\n .slice(0, index)\n .filter((option) => this.isOptionGroup(option)).length\n : index) + 1);\n }\n get ariaSetSize() {\n return this.visibleOptions().filter((option) => !this.isOptionGroup(option)).length;\n }\n /**\n * Callback to invoke on filter reset.\n * @group Method\n */\n resetFilter() {\n this._filterValue.set(null);\n if (this.filterViewChild && this.filterViewChild.nativeElement) {\n this.filterViewChild.nativeElement.value = '';\n }\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n onContainerClick(event) {\n if (this.disabled || this.readonly || this.loading) {\n return;\n }\n this.focusInputViewChild?.nativeElement.focus({ preventScroll: true });\n if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section=\"clearicon\"]')) {\n return;\n }\n else if (!this.overlayViewChild || !this.overlayViewChild.el.nativeElement.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n this.onClick.emit(event);\n this.clicked.set(true);\n this.cd.detectChanges();\n }\n isEmpty() {\n return !this._options() || (this.visibleOptions() && this.visibleOptions().length === 0);\n }\n onEditableInput(event) {\n const value = event.target.value;\n this.searchValue = '';\n const matched = this.searchOptions(event, value);\n !matched && this.focusedOptionIndex.set(-1);\n this.onModelChange(value);\n this.updateModel(value, event);\n setTimeout(() => {\n this.onChange.emit({ originalEvent: event, value: value });\n }, 1);\n !this.overlayVisible && isNotEmpty(value) && this.show();\n }\n /**\n * Displays the panel.\n * @group Method\n */\n show(isFocus) {\n this.overlayVisible = true;\n this.focusedOptionIndex.set(this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex());\n if (isFocus) {\n focus(this.focusInputViewChild?.nativeElement);\n }\n this.cd.markForCheck();\n }\n onOverlayAnimationStart(event) {\n if (event.toState === 'visible') {\n this.itemsWrapper = findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement, this.virtualScroll ? '.p-scroller' : '.p-dropdown-items-wrapper');\n this.virtualScroll && this.scroller?.setContentEl(this.itemsViewChild?.nativeElement);\n if (this.options && this.options.length) {\n if (this.virtualScroll) {\n const selectedIndex = this.modelValue() ? this.focusedOptionIndex() : -1;\n if (selectedIndex !== -1) {\n this.scroller?.scrollToIndex(selectedIndex);\n }\n }\n else {\n let selectedListItem = findSingle(this.itemsWrapper, '.p-dropdown-item.p-highlight');\n if (selectedListItem) {\n selectedListItem.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n }\n }\n if (this.filterViewChild && this.filterViewChild.nativeElement) {\n this.preventModelTouched = true;\n if (this.autofocusFilter && !this.editable) {\n this.filterViewChild.nativeElement.focus();\n }\n }\n this.onShow.emit(event);\n }\n if (event.toState === 'void') {\n this.itemsWrapper = null;\n this.onModelTouched();\n this.onHide.emit(event);\n }\n }\n /**\n * Hides the panel.\n * @group Method\n */\n hide(isFocus) {\n this.overlayVisible = false;\n this.focusedOptionIndex.set(-1);\n this.clicked.set(false);\n this.searchValue = '';\n if (this.overlayOptions?.mode === 'modal') {\n unblockBodyScroll();\n }\n if (this.filter && this.resetFilterOnHide) {\n this.resetFilter();\n }\n if (isFocus) {\n if (this.focusInputViewChild) {\n focus(this.focusInputViewChild?.nativeElement);\n }\n if (this.editable && this.editableInputViewChild) {\n focus(this.editableInputViewChild?.nativeElement);\n }\n }\n this.cd.markForCheck();\n }\n onInputFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n this.focused = true;\n const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.focusedOptionIndex.set(focusedOptionIndex);\n this.overlayVisible && this.scrollInView(this.focusedOptionIndex());\n this.onFocus.emit(event);\n }\n onInputBlur(event) {\n this.focused = false;\n this.onBlur.emit(event);\n if (!this.preventModelTouched) {\n this.onModelTouched();\n }\n this.preventModelTouched = false;\n }\n onKeyDown(event, search = false) {\n if (this.disabled || this.readonly || this.loading) {\n return;\n }\n switch (event.code) {\n //down\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n //up\n case 'ArrowUp':\n this.onArrowUpKey(event, this.editable);\n break;\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, this.editable);\n break;\n case 'Delete':\n this.onDeleteKey(event);\n break;\n case 'Home':\n this.onHomeKey(event, this.editable);\n break;\n case 'End':\n this.onEndKey(event, this.editable);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n //space\n case 'Space':\n this.onSpaceKey(event, search);\n break;\n //enter\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n //escape and tab\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'Backspace':\n this.onBackspaceKey(event, this.editable);\n break;\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!event.metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n !this.editable && this.searchOptions(event, event.key);\n }\n break;\n }\n this.clicked.set(false);\n }\n onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\n break;\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n case 'Home':\n this.onHomeKey(event, true);\n break;\n case 'End':\n this.onEndKey(event, true);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, true);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event, true);\n break;\n default:\n break;\n }\n }\n onFilterBlur(event) {\n this.focusedOptionIndex.set(-1);\n }\n onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n this.editable && this.changeFocusedOptionIndex(event, this.findSelectedOptionIndex());\n }\n else {\n const optionIndex = this.focusedOptionIndex() !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex()) : this.clicked() ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n // const optionIndex = this.focusedOptionIndex() !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex()) : this.findFirstFocusedOptionIndex();\n // this.changeFocusedOptionIndex(event, optionIndex);\n // !this.overlayVisible && this.show();\n event.preventDefault();\n event.stopPropagation();\n }\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex() !== index) {\n this.focusedOptionIndex.set(index);\n this.scrollInView();\n if (this.selectOnFocus) {\n const option = this.visibleOptions()[index];\n this.onOptionSelect(event, option, false);\n }\n }\n }\n get virtualScrollerDisabled() {\n return !this.virtualScroll;\n }\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n if (this.itemsViewChild && this.itemsViewChild.nativeElement) {\n const element = findSingle(this.itemsViewChild.nativeElement, `li[id=\"${id}\"]`);\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n else if (!this.virtualScrollerDisabled) {\n setTimeout(() => {\n this.virtualScroll && this.scroller?.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex());\n }, 0);\n }\n }\n }\n hasSelectedOption() {\n return this.modelValue() !== undefined;\n }\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n }\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n }\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n }\n findFirstOptionIndex() {\n return this.visibleOptions().findIndex((option) => this.isValidOption(option));\n }\n findSelectedOptionIndex() {\n return this.hasSelectedOption() ? this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option)) : -1;\n }\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions().length - 1\n ? this.visibleOptions()\n .slice(index + 1)\n .findIndex((option) => this.isValidOption(option))\n : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n }\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidOption(option)) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n }\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions(), (option) => this.isValidOption(option));\n }\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n }\n isValidOption(option) {\n return option !== undefined && option !== null && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n }\n isOptionGroup(option) {\n return this.optionGroupLabel !== undefined && this.optionGroupLabel !== null && option.optionGroup !== undefined && option.optionGroup !== null && option.group;\n }\n onArrowUpKey(event, pressedInInputText = false) {\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex() !== -1) {\n const option = this.visibleOptions()[this.focusedOptionIndex()];\n this.onOptionSelect(event, option);\n }\n this.overlayVisible && this.hide();\n }\n else {\n const optionIndex = this.focusedOptionIndex() !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex()) : this.clicked() ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n event.stopPropagation();\n }\n onArrowLeftKey(event, pressedInInputText = false) {\n pressedInInputText && this.focusedOptionIndex.set(-1);\n }\n onDeleteKey(event) {\n if (this.showClear) {\n this.clear(event);\n event.preventDefault();\n }\n }\n onHomeKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n if (event.shiftKey) {\n target.setSelectionRange(0, target.value.length);\n }\n else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex.set(-1);\n }\n }\n else {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n }\n onEndKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n const target = event.currentTarget;\n if (event.shiftKey) {\n target.setSelectionRange(0, target.value.length);\n }\n else {\n const len = target.value.length;\n target.setSelectionRange(len, len);\n this.focusedOptionIndex.set(-1);\n }\n }\n else {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n }\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions().length - 1);\n event.preventDefault();\n }\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n }\n onSpaceKey(event, pressedInInputText = false) {\n !this.editable && !pressedInInputText && this.onEnterKey(event);\n }\n onEnterKey(event, pressedInInput = false) {\n if (!this.overlayVisible) {\n this.focusedOptionIndex.set(-1);\n this.onArrowDownKey(event);\n }\n else {\n if (this.focusedOptionIndex() !== -1) {\n const option = this.visibleOptions()[this.focusedOptionIndex()];\n this.onOptionSelect(event, option);\n }\n !pressedInInput && this.hide();\n }\n event.preventDefault();\n }\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n }\n onTabKey(event, pressedInInputText = false) {\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(event.shiftKey ? this.lastHiddenFocusableElementOnOverlay.nativeElement : this.firstHiddenFocusableElementOnOverlay.nativeElement);\n event.preventDefault();\n }\n else {\n if (this.focusedOptionIndex() !== -1 && this.overlayVisible) {\n const option = this.visibleOptions()[this.focusedOptionIndex()];\n this.onOptionSelect(event, option);\n }\n this.overlayVisible && this.hide(this.filter);\n }\n }\n event.stopPropagation();\n }\n onFirstHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.focusInputViewChild?.nativeElement ? getFirstFocusableElement(this.overlayViewChild.el?.nativeElement, ':not(.p-hidden-focusable)') : this.focusInputViewChild?.nativeElement;\n focus(focusableEl);\n }\n onLastHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.focusInputViewChild?.nativeElement ? getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable=\"true\"])') : this.focusInputViewChild?.nativeElement;\n focus(focusableEl);\n }\n hasFocusableElements() {\n return getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n }\n onBackspaceKey(event, pressedInInputText = false) {\n if (pressedInInputText) {\n !this.overlayVisible && this.show();\n }\n }\n searchFields() {\n return this.filterBy?.split(',') || this.filterFields || [this.optionLabel];\n }\n searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n let optionIndex = -1;\n let matched = false;\n if (this.focusedOptionIndex() !== -1) {\n optionIndex = this.visibleOptions()\n .slice(this.focusedOptionIndex())\n .findIndex((option) => this.isOptionMatched(option));\n optionIndex =\n optionIndex === -1\n ? this.visibleOptions()\n .slice(0, this.focusedOptionIndex())\n .findIndex((option) => this.isOptionMatched(option))\n : optionIndex + this.focusedOptionIndex();\n }\n else {\n optionIndex = this.visibleOptions().findIndex((option) => this.isOptionMatched(option));\n }\n if (optionIndex !== -1) {\n matched = true;\n }\n if (optionIndex === -1 && this.focusedOptionIndex() === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n return matched;\n }\n isOptionMatched(option) {\n return this.isValidOption(option) && this.getOptionLabel(option).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));\n }\n onFilterInputChange(event) {\n let value = event.target.value;\n this._filterValue.set(value);\n this.focusedOptionIndex.set(-1);\n this.onFilter.emit({ originalEvent: event, filter: this._filterValue() });\n !this.virtualScrollerDisabled && this.scroller.scrollToIndex(0);\n setTimeout(() => {\n this.overlayViewChild.alignOverlay();\n });\n this.cd.markForCheck();\n }\n applyFocus() {\n if (this.editable)\n findSingle(this.el.nativeElement, '.p-dropdown-label.p-inputtext').focus();\n else\n focus(this.focusInputViewChild?.nativeElement);\n }\n /**\n * Applies focus.\n * @group Method\n */\n focus() {\n this.applyFocus();\n }\n /**\n * Clears the model.\n * @group Method\n */\n clear(event) {\n this.updateModel(null, event);\n this.clearEditableLabel();\n this.onModelTouched();\n this.onChange.emit({ originalEvent: event, value: this.value });\n this.onClear.emit(event);\n this.resetFilter();\n }\n static ɵfac = function Select_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Select)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.FilterService)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Select, selectors: [[\"p-select\"]], contentQueries: function Select_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c3, 4);\n i0.ɵɵcontentQuery(dirIndex, _c4, 4);\n i0.ɵɵcontentQuery(dirIndex, _c5, 4);\n i0.ɵɵcontentQuery(dirIndex, _c6, 4);\n i0.ɵɵcontentQuery(dirIndex, _c7, 4);\n i0.ɵɵcontentQuery(dirIndex, _c8, 4);\n i0.ɵɵcontentQuery(dirIndex, _c9, 4);\n i0.ɵɵcontentQuery(dirIndex, _c10, 4);\n i0.ɵɵcontentQuery(dirIndex, _c11, 4);\n i0.ɵɵcontentQuery(dirIndex, _c12, 4);\n i0.ɵɵcontentQuery(dirIndex, _c13, 4);\n i0.ɵɵcontentQuery(dirIndex, _c14, 4);\n i0.ɵɵcontentQuery(dirIndex, _c15, 4);\n i0.ɵɵcontentQuery(dirIndex, _c16, 4);\n i0.ɵɵcontentQuery(dirIndex, _c17, 4);\n i0.ɵɵcontentQuery(dirIndex, _c18, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.groupTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loaderTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.selectedItemTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.emptyFilterTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.emptyTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loadingIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.clearIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.onIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.offIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.cancelIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, viewQuery: function Select_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c8, 5);\n i0.ɵɵviewQuery(_c19, 5);\n i0.ɵɵviewQuery(_c20, 5);\n i0.ɵɵviewQuery(_c21, 5);\n i0.ɵɵviewQuery(_c22, 5);\n i0.ɵɵviewQuery(_c23, 5);\n i0.ɵɵviewQuery(_c24, 5);\n i0.ɵɵviewQuery(_c25, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.focusInputViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.editableInputViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.scroller = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.overlayViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.firstHiddenFocusableElementOnOverlay = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lastHiddenFocusableElementOnOverlay = _t.first);\n } }, hostVars: 5, hostBindings: function Select_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function Select_click_HostBindingHandler($event) { return ctx.onContainerClick($event); });\n } if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id);\n i0.ɵɵstyleMap(ctx.hostStyle);\n i0.ɵɵclassMap(ctx.hostClass);\n } }, inputs: { id: \"id\", scrollHeight: \"scrollHeight\", filter: [2, \"filter\", \"filter\", booleanAttribute], name: \"name\", style: \"style\", panelStyle: \"panelStyle\", styleClass: \"styleClass\", panelStyleClass: \"panelStyleClass\", readonly: [2, \"readonly\", \"readonly\", booleanAttribute], required: [2, \"required\", \"required\", booleanAttribute], editable: [2, \"editable\", \"editable\", booleanAttribute], appendTo: \"appendTo\", tabindex: [2, \"tabindex\", \"tabindex\", numberAttribute], placeholder: \"placeholder\", loadingIcon: \"loadingIcon\", filterPlaceholder: \"filterPlaceholder\", filterLocale: \"filterLocale\", variant: \"variant\", inputId: \"inputId\", dataKey: \"dataKey\", filterBy: \"filterBy\", filterFields: \"filterFields\", autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute], resetFilterOnHide: [2, \"resetFilterOnHide\", \"resetFilterOnHide\", booleanAttribute], checkmark: [2, \"checkmark\", \"checkmark\", booleanAttribute], dropdownIcon: \"dropdownIcon\", loading: [2, \"loading\", \"loading\", booleanAttribute], optionLabel: \"optionLabel\", optionValue: \"optionValue\", optionDisabled: \"optionDisabled\", optionGroupLabel: \"optionGroupLabel\", optionGroupChildren: \"optionGroupChildren\", autoDisplayFirst: [2, \"autoDisplayFirst\", \"autoDisplayFirst\", booleanAttribute], group: [2, \"group\", \"group\", booleanAttribute], showClear: [2, \"showClear\", \"showClear\", booleanAttribute], emptyFilterMessage: \"emptyFilterMessage\", emptyMessage: \"emptyMessage\", lazy: [2, \"lazy\", \"lazy\", booleanAttribute], virtualScroll: [2, \"virtualScroll\", \"virtualScroll\", booleanAttribute], virtualScrollItemSize: [2, \"virtualScrollItemSize\", \"virtualScrollItemSize\", numberAttribute], virtualScrollOptions: \"virtualScrollOptions\", size: \"size\", overlayOptions: \"overlayOptions\", ariaFilterLabel: \"ariaFilterLabel\", ariaLabel: \"ariaLabel\", ariaLabelledBy: \"ariaLabelledBy\", filterMatchMode: \"filterMatchMode\", maxlength: [2, \"maxlength\", \"maxlength\", numberAttribute], tooltip: \"tooltip\", tooltipPosition: \"tooltipPosition\", tooltipPositionStyle: \"tooltipPositionStyle\", tooltipStyleClass: \"tooltipStyleClass\", focusOnHover: [2, \"focusOnHover\", \"focusOnHover\", booleanAttribute], selectOnFocus: [2, \"selectOnFocus\", \"selectOnFocus\", booleanAttribute], autoOptionFocus: [2, \"autoOptionFocus\", \"autoOptionFocus\", booleanAttribute], autofocusFilter: [2, \"autofocusFilter\", \"autofocusFilter\", booleanAttribute], fluid: [2, \"fluid\", \"fluid\", booleanAttribute], disabled: \"disabled\", itemSize: \"itemSize\", autoZIndex: \"autoZIndex\", baseZIndex: \"baseZIndex\", showTransitionOptions: \"showTransitionOptions\", hideTransitionOptions: \"hideTransitionOptions\", filterValue: \"filterValue\", options: \"options\" }, outputs: { onChange: \"onChange\", onFilter: \"onFilter\", onFocus: \"onFocus\", onBlur: \"onBlur\", onClick: \"onClick\", onShow: \"onShow\", onHide: \"onHide\", onClear: \"onClear\", onLazyLoad: \"onLazyLoad\" }, standalone: true, features: [i0.ɵɵProvidersFeature([SELECT_VALUE_ACCESSOR, SelectStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 11, vars: 15, consts: [[\"elseBlock\", \"\"], [\"overlay\", \"\"], [\"content\", \"\"], [\"focusInput\", \"\"], [\"defaultPlaceholder\", \"\"], [\"editableInput\", \"\"], [\"firstHiddenFocusableEl\", \"\"], [\"buildInItems\", \"\"], [\"lastHiddenFocusableEl\", \"\"], [\"builtInFilterElement\", \"\"], [\"filter\", \"\"], [\"scroller\", \"\"], [\"loader\", \"\"], [\"items\", \"\"], [\"emptyFilter\", \"\"], [\"empty\", \"\"], [\"role\", \"combobox\", 3, \"ngClass\", \"pTooltip\", \"tooltipPosition\", \"positionStyle\", \"tooltipStyleClass\", \"pAutoFocus\", \"focus\", \"blur\", \"keydown\", 4, \"ngIf\"], [\"type\", \"text\", \"aria-haspopup\", \"listbox\", 3, \"ngClass\", \"disabled\", \"pAutoFocus\", \"input\", \"keydown\", \"focus\", \"blur\", 4, \"ngIf\"], [4, \"ngIf\"], [\"role\", \"button\", \"aria-label\", \"dropdown trigger\", \"aria-haspopup\", \"listbox\", 1, \"p-select-dropdown\"], [4, \"ngIf\", \"ngIfElse\"], [3, \"visibleChange\", \"onAnimationStart\", \"onHide\", \"visible\", \"options\", \"target\", \"appendTo\", \"autoZIndex\", \"baseZIndex\", \"showTransitionOptions\", \"hideTransitionOptions\"], [\"role\", \"combobox\", 3, \"focus\", \"blur\", \"keydown\", \"ngClass\", \"pTooltip\", \"tooltipPosition\", \"positionStyle\", \"tooltipStyleClass\", \"pAutoFocus\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", 4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"type\", \"text\", \"aria-haspopup\", \"listbox\", 3, \"input\", \"keydown\", \"focus\", \"blur\", \"ngClass\", \"disabled\", \"pAutoFocus\"], [\"class\", \"p-select-clear-icon\", 3, \"click\", 4, \"ngIf\"], [1, \"p-select-clear-icon\", 3, \"click\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [4, \"ngTemplateOutlet\"], [\"aria-hidden\", \"true\", 3, \"ngClass\", 4, \"ngIf\"], [\"aria-hidden\", \"true\", 3, \"class\", 4, \"ngIf\"], [\"aria-hidden\", \"true\", 3, \"ngClass\"], [\"aria-hidden\", \"true\"], [\"class\", \"p-select-dropdown-icon\", 4, \"ngIf\"], [\"class\", \"p-select-dropdown-icon\", 3, \"ngClass\", 4, \"ngIf\"], [3, \"styleClass\", 4, \"ngIf\"], [1, \"p-select-dropdown-icon\", 3, \"ngClass\"], [3, \"styleClass\"], [1, \"p-select-dropdown-icon\"], [3, \"ngClass\", \"ngStyle\"], [\"role\", \"presentation\", 1, \"p-hidden-accessible\", \"p-hidden-focusable\", 3, \"focus\"], [\"class\", \"p-select-header\", 3, \"click\", 4, \"ngIf\"], [1, \"p-select-list-container\"], [3, \"items\", \"style\", \"itemSize\", \"autoSize\", \"lazy\", \"options\", \"onLazyLoad\", 4, \"ngIf\"], [1, \"p-select-header\", 3, \"click\"], [\"pInputText\", \"\", \"type\", \"text\", \"role\", \"searchbox\", \"autocomplete\", \"off\", 1, \"p-select-filter\", 3, \"input\", \"keydown\", \"blur\", \"pSize\", \"value\", \"variant\"], [3, \"onLazyLoad\", \"items\", \"itemSize\", \"autoSize\", \"lazy\", \"options\"], [\"role\", \"listbox\", 1, \"p-select-list\", 3, \"ngClass\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"class\", \"p-select-empty-message\", \"role\", \"option\", 3, \"ngStyle\", 4, \"ngIf\"], [\"role\", \"option\", 1, \"p-select-option-group\", 3, \"ngStyle\"], [3, \"onClick\", \"onMouseEnter\", \"id\", \"option\", \"checkmark\", \"selected\", \"label\", \"disabled\", \"template\", \"focused\", \"ariaPosInset\", \"ariaSetSize\"], [\"role\", \"option\", 1, \"p-select-empty-message\", 3, \"ngStyle\"]], template: function Select_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵtemplate(0, Select_span_0_Template, 6, 20, \"span\", 16)(1, Select_input_1_Template, 2, 8, \"input\", 17)(2, Select_ng_container_2_Template, 3, 2, \"ng-container\", 18);\n i0.ɵɵelementStart(3, \"div\", 19);\n i0.ɵɵtemplate(4, Select_ng_container_4_Template, 3, 2, \"ng-container\", 20)(5, Select_ng_template_5_Template, 2, 2, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"p-overlay\", 21, 1);\n i0.ɵɵtwoWayListener(\"visibleChange\", function Select_Template_p_overlay_visibleChange_7_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.overlayVisible, $event) || (ctx.overlayVisible = $event); return i0.ɵɵresetView($event); });\n i0.ɵɵlistener(\"onAnimationStart\", function Select_Template_p_overlay_onAnimationStart_7_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onOverlayAnimationStart($event)); })(\"onHide\", function Select_Template_p_overlay_onHide_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.hide()); });\n i0.ɵɵtemplate(9, Select_ng_template_9_Template, 13, 17, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n let tmp_6_0;\n const elseBlock_r23 = i0.ɵɵreference(6);\n i0.ɵɵproperty(\"ngIf\", !ctx.editable);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.editable);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isVisibleClearIcon);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-expanded\", (tmp_6_0 = ctx.overlayVisible) !== null && tmp_6_0 !== undefined ? tmp_6_0 : false)(\"data-pc-section\", \"trigger\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.loading)(\"ngIfElse\", elseBlock_r23);\n i0.ɵɵadvance(3);\n i0.ɵɵtwoWayProperty(\"visible\", ctx.overlayVisible);\n i0.ɵɵproperty(\"options\", ctx.overlayOptions)(\"target\", \"@parent\")(\"appendTo\", ctx.appendTo)(\"autoZIndex\", ctx.autoZIndex)(\"baseZIndex\", ctx.baseZIndex)(\"showTransitionOptions\", ctx.showTransitionOptions)(\"hideTransitionOptions\", ctx.hideTransitionOptions);\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, SelectItem, Overlay, Tooltip, AutoFocus, TimesIcon, ChevronDownIcon, SearchIcon, InputText, IconField, InputIcon, Scroller, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Select, [{\n type: Component,\n args: [{\n selector: 'p-select',\n standalone: true,\n imports: [CommonModule, SelectItem, Overlay, Tooltip, AutoFocus, TimesIcon, ChevronDownIcon, SearchIcon, InputText, IconField, InputIcon, Scroller, SharedModule],\n template: `\n \n {{ label() === 'p-emptylabel' ? ' ' : label() }}\n \n \n {{ label() === 'p-emptylabel' ? ' ' : label() }}\n \n \n \n \n \n \n \n \n \n\n
\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n
\n\n \n \n
\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
    \n \n \n
  • \n {{ getOptionGroupLabel(option.optionGroup) }}\n \n
  • \n
    \n \n \n \n
    \n
  • \n @if (!emptyFilterTemplate && !_emptyFilterTemplate && !emptyTemplate) {\n {{ emptyFilterMessageLabel }}\n } @else {\n \n }\n
  • \n
  • \n @if (!emptyTemplate && !_emptyTemplate) {\n {{ emptyMessageLabel }}\n } @else {\n \n }\n
  • \n
\n
\n
\n \n \n
\n
\n \n `,\n host: {\n '[attr.id]': 'id',\n '(click)': 'onContainerClick($event)'\n },\n providers: [SELECT_VALUE_ACCESSOR, SelectStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{ type: i0.NgZone }, { type: i2.FilterService }], { id: [{\n type: Input\n }], scrollHeight: [{\n type: Input\n }], filter: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], name: [{\n type: Input\n }], style: [{\n type: Input\n }], panelStyle: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], panelStyleClass: [{\n type: Input\n }], readonly: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], required: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], editable: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], appendTo: [{\n type: Input\n }], tabindex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], placeholder: [{\n type: Input\n }], loadingIcon: [{\n type: Input\n }], filterPlaceholder: [{\n type: Input\n }], filterLocale: [{\n type: Input\n }], variant: [{\n type: Input\n }], inputId: [{\n type: Input\n }], dataKey: [{\n type: Input\n }], filterBy: [{\n type: Input\n }], filterFields: [{\n type: Input\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], resetFilterOnHide: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], checkmark: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], dropdownIcon: [{\n type: Input\n }], loading: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], optionLabel: [{\n type: Input\n }], optionValue: [{\n type: Input\n }], optionDisabled: [{\n type: Input\n }], optionGroupLabel: [{\n type: Input\n }], optionGroupChildren: [{\n type: Input\n }], autoDisplayFirst: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], group: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showClear: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], emptyFilterMessage: [{\n type: Input\n }], emptyMessage: [{\n type: Input\n }], lazy: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], virtualScroll: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], virtualScrollItemSize: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], virtualScrollOptions: [{\n type: Input\n }], size: [{\n type: Input\n }], overlayOptions: [{\n type: Input\n }], ariaFilterLabel: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], filterMatchMode: [{\n type: Input\n }], maxlength: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], tooltip: [{\n type: Input\n }], tooltipPosition: [{\n type: Input\n }], tooltipPositionStyle: [{\n type: Input\n }], tooltipStyleClass: [{\n type: Input\n }], focusOnHover: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], selectOnFocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], autoOptionFocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], autofocusFilter: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], fluid: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], disabled: [{\n type: Input\n }], itemSize: [{\n type: Input\n }], autoZIndex: [{\n type: Input\n }], baseZIndex: [{\n type: Input\n }], showTransitionOptions: [{\n type: Input\n }], hideTransitionOptions: [{\n type: Input\n }], filterValue: [{\n type: Input\n }], options: [{\n type: Input\n }], onChange: [{\n type: Output\n }], onFilter: [{\n type: Output\n }], onFocus: [{\n type: Output\n }], onBlur: [{\n type: Output\n }], onClick: [{\n type: Output\n }], onShow: [{\n type: Output\n }], onHide: [{\n type: Output\n }], onClear: [{\n type: Output\n }], onLazyLoad: [{\n type: Output\n }], filterViewChild: [{\n type: ViewChild,\n args: ['filter']\n }], focusInputViewChild: [{\n type: ViewChild,\n args: ['focusInput']\n }], editableInputViewChild: [{\n type: ViewChild,\n args: ['editableInput']\n }], itemsViewChild: [{\n type: ViewChild,\n args: ['items']\n }], scroller: [{\n type: ViewChild,\n args: ['scroller']\n }], overlayViewChild: [{\n type: ViewChild,\n args: ['overlay']\n }], firstHiddenFocusableElementOnOverlay: [{\n type: ViewChild,\n args: ['firstHiddenFocusableEl']\n }], lastHiddenFocusableElementOnOverlay: [{\n type: ViewChild,\n args: ['lastHiddenFocusableEl']\n }], hostClass: [{\n type: HostBinding,\n args: ['class']\n }], hostStyle: [{\n type: HostBinding,\n args: ['style']\n }], itemTemplate: [{\n type: ContentChild,\n args: ['item', { descendants: false }]\n }], groupTemplate: [{\n type: ContentChild,\n args: ['group', { descendants: false }]\n }], loaderTemplate: [{\n type: ContentChild,\n args: ['loader', { descendants: false }]\n }], selectedItemTemplate: [{\n type: ContentChild,\n args: ['selectedItem', { descendants: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: ['header', { descendants: false }]\n }], filterTemplate: [{\n type: ContentChild,\n args: ['filter', { descendants: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: ['footer', { descendants: false }]\n }], emptyFilterTemplate: [{\n type: ContentChild,\n args: ['emptyfilter', { descendants: false }]\n }], emptyTemplate: [{\n type: ContentChild,\n args: ['empty', { descendants: false }]\n }], dropdownIconTemplate: [{\n type: ContentChild,\n args: ['dropdownicon', { descendants: false }]\n }], loadingIconTemplate: [{\n type: ContentChild,\n args: ['loadingicon', { descendants: false }]\n }], clearIconTemplate: [{\n type: ContentChild,\n args: ['clearicon', { descendants: false }]\n }], filterIconTemplate: [{\n type: ContentChild,\n args: ['filtericon', { descendants: false }]\n }], onIconTemplate: [{\n type: ContentChild,\n args: ['onicon', { descendants: false }]\n }], offIconTemplate: [{\n type: ContentChild,\n args: ['officon', { descendants: false }]\n }], cancelIconTemplate: [{\n type: ContentChild,\n args: ['cancelicon', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Select, { className: \"Select\" }); })();\nclass SelectModule {\n static ɵfac = function SelectModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SelectModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SelectModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Select, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectModule, [{\n type: NgModule,\n args: [{\n imports: [Select, SharedModule],\n exports: [Select, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(SelectModule, { imports: [Select, SharedModule], exports: [Select, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SELECT_VALUE_ACCESSOR, Select, SelectClasses, SelectItem, SelectModule, SelectStyle };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, inject, numberAttribute, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport * as i2 from '@angular/forms';\nimport { FormsModule } from '@angular/forms';\nimport * as i3 from 'primeng/api';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleLeftIcon, AngleRightIcon } from 'primeng/icons';\nimport { InputNumber } from 'primeng/inputnumber';\nimport { Ripple } from 'primeng/ripple';\nimport { Select } from 'primeng/select';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-paginator {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n background: ${dt('paginator.background')};\n color: ${dt('paginator.color')};\n padding: ${dt('paginator.padding')};\n border-radius: ${dt('paginator.border.radius')};\n gap: ${dt('paginator.gap')};\n}\n\n.p-paginator-content {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n gap: ${dt('paginator.gap')};\n}\n\n.p-paginator-content-start {\n margin-inline-end: auto;\n}\n\n.p-paginator-content-end {\n margin-inline-start: auto;\n}\n\n.p-paginator-page,\n.p-paginator-next,\n.p-paginator-last,\n.p-paginator-first,\n.p-paginator-prev {\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n user-select: none;\n overflow: hidden;\n position: relative;\n background: ${dt('paginator.nav.button.background')};\n border: 0 none;\n color: ${dt('paginator.nav.button.color')};\n min-width: ${dt('paginator.nav.button.width')};\n height: ${dt('paginator.nav.button.height')};\n transition: background ${dt('paginator.transition.duration')}, color ${dt('paginator.transition.duration')}, outline-color ${dt('paginator.transition.duration')}, box-shadow ${dt('paginator.transition.duration')};\n border-radius: ${dt('paginator.nav.button.border.radius')};\n padding: 0;\n margin: 0;\n}\n\n.p-paginator-page:focus-visible,\n.p-paginator-next:focus-visible,\n.p-paginator-last:focus-visible,\n.p-paginator-first:focus-visible,\n.p-paginator-prev:focus-visible {\n box-shadow: ${dt('paginator.nav.button.focus.ring.shadow')};\n outline: ${dt('paginator.nav.button.focus.ring.width')} ${dt('paginator.nav.button.focus.ring.style')} ${dt('paginator.nav.button.focus.ring.color')};\n outline-offset: ${dt('paginator.nav.button.focus.ring.offset')};\n}\n\n.p-paginator-page:not(.p-disabled):not(.p-paginator-page-selected):hover,\n.p-paginator-first:not(.p-disabled):hover,\n.p-paginator-prev:not(.p-disabled):hover,\n.p-paginator-next:not(.p-disabled):hover,\n.p-paginator-last:not(.p-disabled):hover {\n background: ${dt('paginator.nav.button.hover.background')};\n color: ${dt('paginator.nav.button.hover.color')};\n}\n\n.p-paginator-first:dir(rtl),\n.p-paginator-prev:dir(rtl),\n.p-paginator-next:dir(rtl),\n.p-paginator-last:dir(rtl) {\n transform: rotate(180deg);\n}\n\n.p-paginator-page.p-paginator-page-selected {\n background: ${dt('paginator.nav.button.selected.background')};\n color: ${dt('paginator.nav.button.selected.color')};\n}\n\n.p-paginator-current {\n color: ${dt('paginator.current.page.report.color')};\n}\n\n.p-paginator-pages {\n display: flex;\n align-items: center;\n gap: ${dt('paginator.gap')};\n}\n\n.p-paginator-jtp-input .p-inputtext {\n max-width: ${dt('paginator.jump.to.page.input.max.width')};\n}\n`;\nconst classes = {\n paginator: ({ instance, key }) => [\n 'p-paginator p-component',\n {\n 'p-paginator-default': !instance.hasBreakpoints(),\n [`p-paginator-${key}`]: instance.hasBreakpoints()\n }\n ],\n content: 'p-paginator-content',\n contentStart: 'p-paginator-content-start',\n contentEnd: 'p-paginator-content-end',\n first: ({ instance }) => [\n 'p-paginator-first',\n {\n 'p-disabled': instance.$attrs.disabled\n }\n ],\n firstIcon: 'p-paginator-first-icon',\n prev: ({ instance }) => [\n 'p-paginator-prev',\n {\n 'p-disabled': instance.$attrs.disabled\n }\n ],\n prevIcon: 'p-paginator-prev-icon',\n next: ({ instance }) => [\n 'p-paginator-next',\n {\n 'p-disabled': instance.$attrs.disabled\n }\n ],\n nextIcon: 'p-paginator-next-icon',\n last: ({ instance }) => [\n 'p-paginator-last',\n {\n 'p-disabled': instance.$attrs.disabled\n }\n ],\n lastIcon: 'p-paginator-last-icon',\n pages: 'p-paginator-pages',\n page: ({ props, pageLink }) => [\n 'p-paginator-page',\n {\n 'p-paginator-page-selected': pageLink - 1 === props.page\n }\n ],\n current: 'p-paginator-current',\n pcRowPerPageDropdown: 'p-paginator-rpp-dropdown',\n pcJumpToPageDropdown: 'p-paginator-jtp-dropdown',\n pcJumpToPageInput: 'p-paginator-jtp-input'\n};\nclass PaginatorStyle extends BaseStyle {\n name = 'paginator';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵPaginatorStyle_BaseFactory; return function PaginatorStyle_Factory(__ngFactoryType__) { return (ɵPaginatorStyle_BaseFactory || (ɵPaginatorStyle_BaseFactory = i0.ɵɵgetInheritedFactory(PaginatorStyle)))(__ngFactoryType__ || PaginatorStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PaginatorStyle, factory: PaginatorStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PaginatorStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * Paginator is a generic component to display content in paged format.\n *\n * [Live Demo](https://www.primeng.org/paginator)\n *\n * @module paginatorstyle\n *\n */\nvar PaginatorClasses;\n(function (PaginatorClasses) {\n /**\n * Class name of the paginator element\n */\n PaginatorClasses[\"paginator\"] = \"p-paginator\";\n /**\n * Class name of the content start element\n */\n PaginatorClasses[\"contentStart\"] = \"p-paginator-content-start\";\n /**\n * Class name of the content end element\n */\n PaginatorClasses[\"contentEnd\"] = \"p-paginator-content-end\";\n /**\n * Class name of the first element\n */\n PaginatorClasses[\"first\"] = \"p-paginator-first\";\n /**\n * Class name of the first icon element\n */\n PaginatorClasses[\"firstIcon\"] = \"p-paginator-first-icon\";\n /**\n * Class name of the prev element\n */\n PaginatorClasses[\"prev\"] = \"p-paginator-prev\";\n /**\n * Class name of the prev icon element\n */\n PaginatorClasses[\"prevIcon\"] = \"p-paginator-prev-icon\";\n /**\n * Class name of the next element\n */\n PaginatorClasses[\"next\"] = \"p-paginator-next\";\n /**\n * Class name of the next icon element\n */\n PaginatorClasses[\"nextIcon\"] = \"p-paginator-next-icon\";\n /**\n * Class name of the last element\n */\n PaginatorClasses[\"last\"] = \"p-paginator-last\";\n /**\n * Class name of the last icon element\n */\n PaginatorClasses[\"lastIcon\"] = \"p-paginator-last-icon\";\n /**\n * Class name of the pages element\n */\n PaginatorClasses[\"pages\"] = \"p-paginator-pages\";\n /**\n * Class name of the page element\n */\n PaginatorClasses[\"page\"] = \"p-paginator-page\";\n /**\n * Class name of the current element\n */\n PaginatorClasses[\"current\"] = \"p-paginator-current\";\n /**\n * Class name of the row per page dropdown element\n */\n PaginatorClasses[\"pcRowPerPageDropdown\"] = \"p-paginator-rpp-dropdown\";\n /**\n * Class name of the jump to page dropdown element\n */\n PaginatorClasses[\"pcJumpToPageDropdown\"] = \"p-paginator-jtp-dropdown\";\n /**\n * Class name of the jump to page input element\n */\n PaginatorClasses[\"pcJumpToPageInput\"] = \"p-paginator-jtp-input\";\n})(PaginatorClasses || (PaginatorClasses = {}));\n\nconst _c0 = [\"dropdownicon\"];\nconst _c1 = [\"firstpagelinkicon\"];\nconst _c2 = [\"previouspagelinkicon\"];\nconst _c3 = [\"lastpagelinkicon\"];\nconst _c4 = [\"nextpagelinkicon\"];\nconst _c5 = a0 => ({ \"p-disabled\": a0 });\nconst _c6 = a0 => ({ $implicit: a0 });\nconst _c7 = a0 => ({ \"p-paginator-page-selected\": a0 });\nfunction Paginator_div_0_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Paginator_div_0_div_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 16);\n i0.ɵɵtemplate(1, Paginator_div_0_div_1_ng_container_1_Template, 1, 0, \"ng-container\", 17);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"data-pc-section\", \"start\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.templateLeft)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(3, _c6, ctx_r1.paginatorState));\n} }\nfunction Paginator_div_0_span_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 18);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.currentPageReport);\n} }\nfunction Paginator_div_0_button_3_AngleDoubleLeftIcon_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"AngleDoubleLeftIcon\", 21);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-paginator-first-icon\");\n} }\nfunction Paginator_div_0_button_3_span_2_1_ng_template_0_Template(rf, ctx) { }\nfunction Paginator_div_0_button_3_span_2_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Paginator_div_0_button_3_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Paginator_div_0_button_3_span_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 22);\n i0.ɵɵtemplate(1, Paginator_div_0_button_3_span_2_1_Template, 1, 0, null, 23);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.firstPageLinkIconTemplate || ctx_r1._firstPageLinkIconTemplate);\n} }\nfunction Paginator_div_0_button_3_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 19);\n i0.ɵɵlistener(\"click\", function Paginator_div_0_button_3_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.changePageToFirst($event)); });\n i0.ɵɵtemplate(1, Paginator_div_0_button_3_AngleDoubleLeftIcon_1_Template, 1, 1, \"AngleDoubleLeftIcon\", 6)(2, Paginator_div_0_button_3_span_2_Template, 2, 1, \"span\", 20);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"disabled\", ctx_r1.isFirstPage() || ctx_r1.empty())(\"ngClass\", i0.ɵɵpureFunction1(5, _c5, ctx_r1.isFirstPage() || ctx_r1.empty()));\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getAriaLabel(\"firstPageLabel\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.firstPageLinkIconTemplate && !ctx_r1._firstPageLinkIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.firstPageLinkIconTemplate || ctx_r1._firstPageLinkIconTemplate);\n} }\nfunction Paginator_div_0_AngleLeftIcon_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"AngleLeftIcon\", 21);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-paginator-prev-icon\");\n} }\nfunction Paginator_div_0_span_6_1_ng_template_0_Template(rf, ctx) { }\nfunction Paginator_div_0_span_6_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Paginator_div_0_span_6_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Paginator_div_0_span_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 24);\n i0.ɵɵtemplate(1, Paginator_div_0_span_6_1_Template, 1, 0, null, 23);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.previousPageLinkIconTemplate || ctx_r1._previousPageLinkIconTemplate);\n} }\nfunction Paginator_div_0_span_7_button_1_Template(rf, ctx) { if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 27);\n i0.ɵɵlistener(\"click\", function Paginator_div_0_span_7_button_1_Template_button_click_0_listener($event) { const pageLink_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onPageLinkClick($event, pageLink_r5 - 1)); });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const pageLink_r5 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(4, _c7, pageLink_r5 - 1 == ctx_r1.getPage()));\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getPageAriaLabel(pageLink_r5))(\"aria-current\", pageLink_r5 - 1 == ctx_r1.getPage() ? \"page\" : undefined);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.getLocalization(pageLink_r5), \" \");\n} }\nfunction Paginator_div_0_span_7_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 25);\n i0.ɵɵtemplate(1, Paginator_div_0_span_7_button_1_Template, 2, 6, \"button\", 26);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.pageLinks);\n} }\nfunction Paginator_div_0_p_select_8_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵtextInterpolate(ctx_r1.currentPageReport);\n} }\nfunction Paginator_div_0_p_select_8_ng_container_2_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Paginator_div_0_p_select_8_ng_container_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Paginator_div_0_p_select_8_ng_container_2_ng_template_1_ng_container_0_Template, 1, 0, \"ng-container\", 17);\n} if (rf & 2) {\n const item_r7 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.jumpToPageItemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c6, item_r7));\n} }\nfunction Paginator_div_0_p_select_8_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Paginator_div_0_p_select_8_ng_container_2_ng_template_1_Template, 1, 4, \"ng-template\", 31);\n i0.ɵɵelementContainerEnd();\n} }\nfunction Paginator_div_0_p_select_8_3_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Paginator_div_0_p_select_8_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Paginator_div_0_p_select_8_3_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 23);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.dropdownIconTemplate || ctx_r1._dropdownIconTemplate);\n} }\nfunction Paginator_div_0_p_select_8_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Paginator_div_0_p_select_8_3_ng_template_0_Template, 1, 1, \"ng-template\", 32);\n} }\nfunction Paginator_div_0_p_select_8_Template(rf, ctx) { if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-select\", 28);\n i0.ɵɵlistener(\"onChange\", function Paginator_div_0_p_select_8_Template_p_select_onChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onPageDropdownChange($event)); });\n i0.ɵɵtemplate(1, Paginator_div_0_p_select_8_ng_template_1_Template, 1, 1, \"ng-template\", 29)(2, Paginator_div_0_p_select_8_ng_container_2_Template, 2, 0, \"ng-container\", 30)(3, Paginator_div_0_p_select_8_3_Template, 1, 0, null, 30);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"options\", ctx_r1.pageItems)(\"ngModel\", ctx_r1.getPage())(\"disabled\", ctx_r1.empty())(\"appendTo\", ctx_r1.dropdownAppendTo)(\"scrollHeight\", ctx_r1.dropdownScrollHeight);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getAriaLabel(\"jumpToPageDropdownLabel\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.jumpToPageItemTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.dropdownIconTemplate || ctx_r1._dropdownIconTemplate);\n} }\nfunction Paginator_div_0_AngleRightIcon_10_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"AngleRightIcon\", 21);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-paginator-next-icon\");\n} }\nfunction Paginator_div_0_span_11_1_ng_template_0_Template(rf, ctx) { }\nfunction Paginator_div_0_span_11_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Paginator_div_0_span_11_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Paginator_div_0_span_11_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 33);\n i0.ɵɵtemplate(1, Paginator_div_0_span_11_1_Template, 1, 0, null, 23);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.nextPageLinkIconTemplate || ctx_r1._nextPageLinkIconTemplate);\n} }\nfunction Paginator_div_0_button_12_AngleDoubleRightIcon_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"AngleDoubleRightIcon\", 21);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-paginator-last-icon\");\n} }\nfunction Paginator_div_0_button_12_span_2_1_ng_template_0_Template(rf, ctx) { }\nfunction Paginator_div_0_button_12_span_2_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Paginator_div_0_button_12_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Paginator_div_0_button_12_span_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 36);\n i0.ɵɵtemplate(1, Paginator_div_0_button_12_span_2_1_Template, 1, 0, null, 23);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.lastPageLinkIconTemplate || ctx_r1._lastPageLinkIconTemplate);\n} }\nfunction Paginator_div_0_button_12_Template(rf, ctx) { if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 34);\n i0.ɵɵlistener(\"click\", function Paginator_div_0_button_12_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.changePageToLast($event)); });\n i0.ɵɵtemplate(1, Paginator_div_0_button_12_AngleDoubleRightIcon_1_Template, 1, 1, \"AngleDoubleRightIcon\", 6)(2, Paginator_div_0_button_12_span_2_Template, 2, 1, \"span\", 35);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"disabled\", ctx_r1.isLastPage() || ctx_r1.empty())(\"ngClass\", i0.ɵɵpureFunction1(5, _c5, ctx_r1.isLastPage() || ctx_r1.empty()));\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getAriaLabel(\"lastPageLabel\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.lastPageLinkIconTemplate && !ctx_r1._lastPageLinkIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.lastPageLinkIconTemplate || ctx_r1._lastPageLinkIconTemplate);\n} }\nfunction Paginator_div_0_p_inputnumber_13_Template(rf, ctx) { if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-inputnumber\", 37);\n i0.ɵɵlistener(\"ngModelChange\", function Paginator_div_0_p_inputnumber_13_Template_p_inputnumber_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.changePage($event - 1)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngModel\", ctx_r1.currentPage())(\"disabled\", ctx_r1.empty());\n} }\nfunction Paginator_div_0_p_select_14_ng_container_1_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Paginator_div_0_p_select_14_ng_container_1_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Paginator_div_0_p_select_14_ng_container_1_ng_template_1_ng_container_0_Template, 1, 0, \"ng-container\", 17);\n} if (rf & 2) {\n const item_r11 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.dropdownItemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c6, item_r11));\n} }\nfunction Paginator_div_0_p_select_14_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Paginator_div_0_p_select_14_ng_container_1_ng_template_1_Template, 1, 4, \"ng-template\", 31);\n i0.ɵɵelementContainerEnd();\n} }\nfunction Paginator_div_0_p_select_14_2_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Paginator_div_0_p_select_14_2_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Paginator_div_0_p_select_14_2_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 23);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.dropdownIconTemplate || ctx_r1._dropdownIconTemplate);\n} }\nfunction Paginator_div_0_p_select_14_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Paginator_div_0_p_select_14_2_ng_template_0_Template, 1, 1, \"ng-template\", 32);\n} }\nfunction Paginator_div_0_p_select_14_Template(rf, ctx) { if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-select\", 38);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function Paginator_div_0_p_select_14_Template_p_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.rows, $event) || (ctx_r1.rows = $event); return i0.ɵɵresetView($event); });\n i0.ɵɵlistener(\"onChange\", function Paginator_div_0_p_select_14_Template_p_select_onChange_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onRppChange($event)); });\n i0.ɵɵtemplate(1, Paginator_div_0_p_select_14_ng_container_1_Template, 2, 0, \"ng-container\", 30)(2, Paginator_div_0_p_select_14_2_Template, 1, 0, null, 30);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"options\", ctx_r1.rowsPerPageItems);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.rows);\n i0.ɵɵproperty(\"disabled\", ctx_r1.empty())(\"appendTo\", ctx_r1.dropdownAppendTo)(\"scrollHeight\", ctx_r1.dropdownScrollHeight)(\"ariaLabel\", ctx_r1.getAriaLabel(\"rowsPerPageLabel\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.dropdownItemTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.dropdownIconTemplate || ctx_r1._dropdownIconTemplate);\n} }\nfunction Paginator_div_0_div_15_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Paginator_div_0_div_15_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 39);\n i0.ɵɵtemplate(1, Paginator_div_0_div_15_ng_container_1_Template, 1, 0, \"ng-container\", 17);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"data-pc-section\", \"end\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.templateRight)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(3, _c6, ctx_r1.paginatorState));\n} }\nfunction Paginator_div_0_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵtemplate(1, Paginator_div_0_div_1_Template, 2, 5, \"div\", 2)(2, Paginator_div_0_span_2_Template, 2, 1, \"span\", 3)(3, Paginator_div_0_button_3_Template, 3, 7, \"button\", 4);\n i0.ɵɵelementStart(4, \"button\", 5);\n i0.ɵɵlistener(\"click\", function Paginator_div_0_Template_button_click_4_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.changePageToPrev($event)); });\n i0.ɵɵtemplate(5, Paginator_div_0_AngleLeftIcon_5_Template, 1, 1, \"AngleLeftIcon\", 6)(6, Paginator_div_0_span_6_Template, 2, 1, \"span\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, Paginator_div_0_span_7_Template, 2, 1, \"span\", 8)(8, Paginator_div_0_p_select_8_Template, 4, 8, \"p-select\", 9);\n i0.ɵɵelementStart(9, \"button\", 10);\n i0.ɵɵlistener(\"click\", function Paginator_div_0_Template_button_click_9_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.changePageToNext($event)); });\n i0.ɵɵtemplate(10, Paginator_div_0_AngleRightIcon_10_Template, 1, 1, \"AngleRightIcon\", 6)(11, Paginator_div_0_span_11_Template, 2, 1, \"span\", 11);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(12, Paginator_div_0_button_12_Template, 3, 7, \"button\", 12)(13, Paginator_div_0_p_inputnumber_13_Template, 1, 2, \"p-inputnumber\", 13)(14, Paginator_div_0_p_select_14_Template, 3, 8, \"p-select\", 14)(15, Paginator_div_0_div_15_Template, 2, 5, \"div\", 15);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.styleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx_r1.style)(\"ngClass\", \"p-paginator p-component\");\n i0.ɵɵattribute(\"data-pc-section\", \"paginator\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.templateLeft);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showCurrentPageReport);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showFirstLastIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"disabled\", ctx_r1.isFirstPage() || ctx_r1.empty())(\"ngClass\", i0.ɵɵpureFunction1(25, _c5, ctx_r1.isFirstPage() || ctx_r1.empty()));\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getAriaLabel(\"prevPageLabel\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.previousPageLinkIconTemplate && !ctx_r1._previousPageLinkIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.previousPageLinkIconTemplate || ctx_r1._previousPageLinkIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showPageLinks);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showJumpToPageDropdown);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"disabled\", ctx_r1.isLastPage() || ctx_r1.empty())(\"ngClass\", i0.ɵɵpureFunction1(27, _c5, ctx_r1.isLastPage() || ctx_r1.empty()));\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getAriaLabel(\"nextPageLabel\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.nextPageLinkIconTemplate && !ctx_r1._nextPageLinkIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.nextPageLinkIconTemplate || ctx_r1._nextPageLinkIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showFirstLastIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showJumpToPageInput);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.rowsPerPageOptions);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.templateRight);\n} }\n/**\n * Paginator is a generic component to display content in paged format.\n * @group Components\n */\nclass Paginator extends BaseComponent {\n /**\n * Number of page links to display.\n * @group Props\n */\n pageLinkSize = 5;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n alwaysShow = true;\n /**\n * Target element to attach the dropdown overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n dropdownAppendTo;\n /**\n * Template instance to inject into the left side of the paginator.\n * @param {PaginatorState} context - Paginator state.\n * @group Props\n */\n templateLeft;\n /**\n * Template instance to inject into the right side of the paginator.\n * @param {PaginatorState} context - Paginator state.\n * @group Props\n */\n templateRight;\n /**\n * Target element to attach the dropdown overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n appendTo;\n /**\n * Dropdown height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n dropdownScrollHeight = '200px';\n /**\n * Template of the current page report element. Available placeholders are {currentPage},{totalPages},{rows},{first},{last} and {totalRecords}\n * @group Props\n */\n currentPageReportTemplate = '{currentPage} of {totalPages}';\n /**\n * Whether to display current page report.\n * @group Props\n */\n showCurrentPageReport;\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n showFirstLastIcon = true;\n /**\n * Number of total records.\n * @group Props\n */\n totalRecords = 0;\n /**\n * Data count to display per page.\n * @group Props\n */\n rows = 0;\n /**\n * Array of integer/object values to display inside rows per page dropdown. A object that have 'showAll' key can be added to it to show all data. Exp; [10,20,30,{showAll:'All'}]\n * @group Props\n */\n rowsPerPageOptions;\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n showJumpToPageDropdown;\n /**\n * Whether to display a input to navigate to any page.\n * @group Props\n */\n showJumpToPageInput;\n /**\n * Template instance to inject into the jump to page dropdown item inside in the paginator.\n * @param {Object} context - item instance.\n * @group Props\n */\n jumpToPageItemTemplate;\n /**\n * Whether to show page links.\n * @group Props\n */\n showPageLinks = true;\n /**\n * Locale to be used in formatting.\n * @group Props\n */\n locale;\n /**\n * Template instance to inject into the rows per page dropdown item inside in the paginator.\n * @param {Object} context - item instance.\n * @group Props\n */\n dropdownItemTemplate;\n /**\n * Zero-relative number of the first row to be displayed.\n * @group Props\n */\n get first() {\n return this._first;\n }\n set first(val) {\n this._first = val;\n }\n /**\n * Callback to invoke when page changes, the event object contains information about the new state.\n * @param {PaginatorState} event - Paginator state.\n * @group Emits\n */\n onPageChange = new EventEmitter();\n /**\n * Template for the dropdown icon.\n * @group Templates\n */\n dropdownIconTemplate;\n /**\n * Template for the first page link icon.\n * @group Templates\n */\n firstPageLinkIconTemplate;\n /**\n * Template for the previous page link icon.\n * @group Templates\n */\n previousPageLinkIconTemplate;\n /**\n * Template for the last page link icon.\n * @group Templates\n */\n lastPageLinkIconTemplate;\n /**\n * Template for the next page link icon.\n * @group Templates\n */\n nextPageLinkIconTemplate;\n templates;\n _dropdownIconTemplate;\n _firstPageLinkIconTemplate;\n _previousPageLinkIconTemplate;\n _lastPageLinkIconTemplate;\n _nextPageLinkIconTemplate;\n pageLinks;\n pageItems;\n rowsPerPageItems;\n paginatorState;\n _first = 0;\n _page = 0;\n _componentStyle = inject(PaginatorStyle);\n constructor() {\n super();\n }\n ngOnInit() {\n super.ngOnInit();\n this.updatePaginatorState();\n }\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'dropdownicon':\n this._dropdownIconTemplate = item.template;\n break;\n case 'firstpagelinkicon':\n this._firstPageLinkIconTemplate = item.template;\n break;\n case 'previouspagelinkicon':\n this._previousPageLinkIconTemplate = item.template;\n break;\n case 'lastpagelinkicon':\n this._lastPageLinkIconTemplate = item.template;\n break;\n case 'nextpagelinkicon':\n this._nextPageLinkIconTemplate = item.template;\n break;\n }\n });\n }\n getAriaLabel(labelType) {\n return this.config.translation.aria ? this.config.translation.aria[labelType] : undefined;\n }\n getPageAriaLabel(value) {\n return this.config.translation.aria ? this.config.translation.aria.pageLabel.replace(/{page}/g, `${value}`) : undefined;\n }\n getLocalization(digit) {\n const numerals = [...new Intl.NumberFormat(this.locale, { useGrouping: false }).format(9876543210)].reverse();\n const index = new Map(numerals.map((d, i) => [i, d]));\n if (digit > 9) {\n const numbers = String(digit).split('');\n return numbers.map((number) => index.get(Number(number))).join('');\n }\n else {\n return index.get(digit);\n }\n }\n ngOnChanges(simpleChange) {\n super.ngOnChanges(simpleChange);\n if (simpleChange.totalRecords) {\n this.updatePageLinks();\n this.updatePaginatorState();\n this.updateFirst();\n this.updateRowsPerPageOptions();\n }\n if (simpleChange.first) {\n this._first = simpleChange.first.currentValue;\n this.updatePageLinks();\n this.updatePaginatorState();\n }\n if (simpleChange.rows) {\n this.updatePageLinks();\n this.updatePaginatorState();\n }\n if (simpleChange.rowsPerPageOptions) {\n this.updateRowsPerPageOptions();\n }\n if (simpleChange.pageLinkSize) {\n this.updatePageLinks();\n }\n }\n updateRowsPerPageOptions() {\n if (this.rowsPerPageOptions) {\n this.rowsPerPageItems = [];\n for (let opt of this.rowsPerPageOptions) {\n if (typeof opt == 'object' && opt['showAll']) {\n this.rowsPerPageItems.unshift({ label: opt['showAll'], value: this.totalRecords });\n }\n else {\n this.rowsPerPageItems.push({ label: String(this.getLocalization(opt)), value: opt });\n }\n }\n }\n }\n isFirstPage() {\n return this.getPage() === 0;\n }\n isLastPage() {\n return this.getPage() === this.getPageCount() - 1;\n }\n getPageCount() {\n return Math.ceil(this.totalRecords / this.rows);\n }\n calculatePageLinkBoundaries() {\n let numberOfPages = this.getPageCount(), visiblePages = Math.min(this.pageLinkSize, numberOfPages);\n //calculate range, keep current in middle if necessary\n let start = Math.max(0, Math.ceil(this.getPage() - visiblePages / 2)), end = Math.min(numberOfPages - 1, start + visiblePages - 1);\n //check when approaching to last page\n var delta = this.pageLinkSize - (end - start + 1);\n start = Math.max(0, start - delta);\n return [start, end];\n }\n updatePageLinks() {\n this.pageLinks = [];\n let boundaries = this.calculatePageLinkBoundaries(), start = boundaries[0], end = boundaries[1];\n for (let i = start; i <= end; i++) {\n this.pageLinks.push(i + 1);\n }\n if (this.showJumpToPageDropdown) {\n this.pageItems = [];\n for (let i = 0; i < this.getPageCount(); i++) {\n this.pageItems.push({ label: String(i + 1), value: i });\n }\n }\n }\n changePage(p) {\n var pc = this.getPageCount();\n if (p >= 0 && p < pc) {\n this._first = this.rows * p;\n var state = {\n page: p,\n first: this.first,\n rows: this.rows,\n pageCount: pc\n };\n this.updatePageLinks();\n this.onPageChange.emit(state);\n this.updatePaginatorState();\n }\n }\n updateFirst() {\n const page = this.getPage();\n if (page > 0 && this.totalRecords && this.first >= this.totalRecords) {\n Promise.resolve(null).then(() => this.changePage(page - 1));\n }\n }\n getPage() {\n return Math.floor(this.first / this.rows);\n }\n changePageToFirst(event) {\n if (!this.isFirstPage()) {\n this.changePage(0);\n }\n event.preventDefault();\n }\n changePageToPrev(event) {\n this.changePage(this.getPage() - 1);\n event.preventDefault();\n }\n changePageToNext(event) {\n this.changePage(this.getPage() + 1);\n event.preventDefault();\n }\n changePageToLast(event) {\n if (!this.isLastPage()) {\n this.changePage(this.getPageCount() - 1);\n }\n event.preventDefault();\n }\n onPageLinkClick(event, page) {\n this.changePage(page);\n event.preventDefault();\n }\n onRppChange(event) {\n this.changePage(this.getPage());\n }\n onPageDropdownChange(event) {\n this.changePage(event.value);\n }\n updatePaginatorState() {\n this.paginatorState = {\n page: this.getPage(),\n pageCount: this.getPageCount(),\n rows: this.rows,\n first: this.first,\n totalRecords: this.totalRecords\n };\n }\n empty() {\n return this.getPageCount() === 0;\n }\n currentPage() {\n return this.getPageCount() > 0 ? this.getPage() + 1 : 0;\n }\n get currentPageReport() {\n return this.currentPageReportTemplate\n .replace('{currentPage}', String(this.currentPage()))\n .replace('{totalPages}', String(this.getPageCount()))\n .replace('{first}', String(this.totalRecords > 0 ? this._first + 1 : 0))\n .replace('{last}', String(Math.min(this._first + this.rows, this.totalRecords)))\n .replace('{rows}', String(this.rows))\n .replace('{totalRecords}', String(this.totalRecords));\n }\n static ɵfac = function Paginator_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Paginator)(); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Paginator, selectors: [[\"p-paginator\"]], contentQueries: function Paginator_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, _c1, 4);\n i0.ɵɵcontentQuery(dirIndex, _c2, 4);\n i0.ɵɵcontentQuery(dirIndex, _c3, 4);\n i0.ɵɵcontentQuery(dirIndex, _c4, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.firstPageLinkIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.previousPageLinkIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lastPageLinkIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nextPageLinkIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, inputs: { pageLinkSize: [2, \"pageLinkSize\", \"pageLinkSize\", numberAttribute], style: \"style\", styleClass: \"styleClass\", alwaysShow: [2, \"alwaysShow\", \"alwaysShow\", booleanAttribute], dropdownAppendTo: \"dropdownAppendTo\", templateLeft: \"templateLeft\", templateRight: \"templateRight\", appendTo: \"appendTo\", dropdownScrollHeight: \"dropdownScrollHeight\", currentPageReportTemplate: \"currentPageReportTemplate\", showCurrentPageReport: [2, \"showCurrentPageReport\", \"showCurrentPageReport\", booleanAttribute], showFirstLastIcon: [2, \"showFirstLastIcon\", \"showFirstLastIcon\", booleanAttribute], totalRecords: [2, \"totalRecords\", \"totalRecords\", numberAttribute], rows: [2, \"rows\", \"rows\", numberAttribute], rowsPerPageOptions: \"rowsPerPageOptions\", showJumpToPageDropdown: [2, \"showJumpToPageDropdown\", \"showJumpToPageDropdown\", booleanAttribute], showJumpToPageInput: [2, \"showJumpToPageInput\", \"showJumpToPageInput\", booleanAttribute], jumpToPageItemTemplate: \"jumpToPageItemTemplate\", showPageLinks: [2, \"showPageLinks\", \"showPageLinks\", booleanAttribute], locale: \"locale\", dropdownItemTemplate: \"dropdownItemTemplate\", first: \"first\" }, outputs: { onPageChange: \"onPageChange\" }, standalone: true, features: [i0.ɵɵProvidersFeature([PaginatorStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 1, vars: 1, consts: [[3, \"class\", \"ngStyle\", \"ngClass\", 4, \"ngIf\"], [3, \"ngStyle\", \"ngClass\"], [\"class\", \"p-paginator-content-start\", 4, \"ngIf\"], [\"class\", \"p-paginator-current\", 4, \"ngIf\"], [\"type\", \"button\", \"pRipple\", \"\", \"class\", \"p-paginator-first\", 3, \"disabled\", \"ngClass\", \"click\", 4, \"ngIf\"], [\"type\", \"button\", \"pRipple\", \"\", 1, \"p-paginator-prev\", 3, \"click\", \"disabled\", \"ngClass\"], [3, \"styleClass\", 4, \"ngIf\"], [\"class\", \"p-paginator-prev-icon\", 4, \"ngIf\"], [\"class\", \"p-paginator-pages\", 4, \"ngIf\"], [\"styleClass\", \"p-paginator-jtp-dropdown\", 3, \"options\", \"ngModel\", \"disabled\", \"appendTo\", \"scrollHeight\", \"onChange\", 4, \"ngIf\"], [\"type\", \"button\", \"pRipple\", \"\", 1, \"p-paginator-next\", 3, \"click\", \"disabled\", \"ngClass\"], [\"class\", \"p-paginator-next-icon\", 4, \"ngIf\"], [\"type\", \"button\", \"pRipple\", \"\", \"class\", \"p-paginator-last\", 3, \"disabled\", \"ngClass\", \"click\", 4, \"ngIf\"], [\"class\", \"p-paginator-jtp-input\", 3, \"ngModel\", \"disabled\", \"ngModelChange\", 4, \"ngIf\"], [\"styleClass\", \"p-paginator-rpp-dropdown\", 3, \"options\", \"ngModel\", \"disabled\", \"appendTo\", \"scrollHeight\", \"ariaLabel\", \"ngModelChange\", \"onChange\", 4, \"ngIf\"], [\"class\", \"p-paginator-content-end\", 4, \"ngIf\"], [1, \"p-paginator-content-start\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"p-paginator-current\"], [\"type\", \"button\", \"pRipple\", \"\", 1, \"p-paginator-first\", 3, \"click\", \"disabled\", \"ngClass\"], [\"class\", \"p-paginator-first-icon\", 4, \"ngIf\"], [3, \"styleClass\"], [1, \"p-paginator-first-icon\"], [4, \"ngTemplateOutlet\"], [1, \"p-paginator-prev-icon\"], [1, \"p-paginator-pages\"], [\"type\", \"button\", \"class\", \"p-paginator-page\", \"pRipple\", \"\", 3, \"ngClass\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"type\", \"button\", \"pRipple\", \"\", 1, \"p-paginator-page\", 3, \"click\", \"ngClass\"], [\"styleClass\", \"p-paginator-jtp-dropdown\", 3, \"onChange\", \"options\", \"ngModel\", \"disabled\", \"appendTo\", \"scrollHeight\"], [\"pTemplate\", \"selectedItem\"], [4, \"ngIf\"], [\"pTemplate\", \"item\"], [\"pTemplate\", \"dropdownicon\"], [1, \"p-paginator-next-icon\"], [\"type\", \"button\", \"pRipple\", \"\", 1, \"p-paginator-last\", 3, \"click\", \"disabled\", \"ngClass\"], [\"class\", \"p-paginator-last-icon\", 4, \"ngIf\"], [1, \"p-paginator-last-icon\"], [1, \"p-paginator-jtp-input\", 3, \"ngModelChange\", \"ngModel\", \"disabled\"], [\"styleClass\", \"p-paginator-rpp-dropdown\", 3, \"ngModelChange\", \"onChange\", \"options\", \"ngModel\", \"disabled\", \"appendTo\", \"scrollHeight\", \"ariaLabel\"], [1, \"p-paginator-content-end\"]], template: function Paginator_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Paginator_div_0_Template, 16, 29, \"div\", 0);\n } if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.alwaysShow ? true : ctx.pageLinks && ctx.pageLinks.length > 1);\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, Select, InputNumber, FormsModule, i2.NgControlStatus, i2.NgModel, Ripple, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleLeftIcon, AngleRightIcon, SharedModule, i3.PrimeTemplate], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Paginator, [{\n type: Component,\n args: [{\n selector: 'p-paginator',\n standalone: true,\n imports: [CommonModule, Select, InputNumber, FormsModule, Ripple, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleLeftIcon, AngleRightIcon, SharedModule],\n template: `\n
1\" [attr.data-pc-section]=\"'paginator'\" [attr.data-pc-section]=\"'root'\">\n
\n \n
\n {{ currentPageReport }}\n \n \n \n \n \n \n \n \n \n {{ getLocalization(pageLink) }}\n \n \n \n {{ currentPageReport }}\n \n \n \n \n \n \n \n \n \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 encapsulation: ViewEncapsulation.None,\n providers: [PaginatorStyle]\n }]\n }], () => [], { pageLinkSize: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], alwaysShow: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], dropdownAppendTo: [{\n type: Input\n }], templateLeft: [{\n type: Input\n }], templateRight: [{\n type: Input\n }], appendTo: [{\n type: Input\n }], dropdownScrollHeight: [{\n type: Input\n }], currentPageReportTemplate: [{\n type: Input\n }], showCurrentPageReport: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showFirstLastIcon: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], totalRecords: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], rows: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], rowsPerPageOptions: [{\n type: Input\n }], showJumpToPageDropdown: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showJumpToPageInput: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], jumpToPageItemTemplate: [{\n type: Input\n }], showPageLinks: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], locale: [{\n type: Input\n }], dropdownItemTemplate: [{\n type: Input\n }], first: [{\n type: Input\n }], onPageChange: [{\n type: Output\n }], dropdownIconTemplate: [{\n type: ContentChild,\n args: ['dropdownicon', { descendants: false }]\n }], firstPageLinkIconTemplate: [{\n type: ContentChild,\n args: ['firstpagelinkicon', { descendants: false }]\n }], previousPageLinkIconTemplate: [{\n type: ContentChild,\n args: ['previouspagelinkicon', { descendants: false }]\n }], lastPageLinkIconTemplate: [{\n type: ContentChild,\n args: ['lastpagelinkicon', { descendants: false }]\n }], nextPageLinkIconTemplate: [{\n type: ContentChild,\n args: ['nextpagelinkicon', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Paginator, { className: \"Paginator\" }); })();\nclass PaginatorModule {\n static ɵfac = function PaginatorModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginatorModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PaginatorModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Paginator, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PaginatorModule, [{\n type: NgModule,\n args: [{\n imports: [Paginator, SharedModule],\n exports: [Paginator, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(PaginatorModule, { imports: [Paginator, SharedModule], exports: [Paginator, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Paginator, PaginatorClasses, PaginatorModule, PaginatorStyle };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, inject, Injector, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, Input, Output, ViewChild, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { SharedModule } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-radiobutton {\n position: relative;\n display: inline-flex;\n user-select: none;\n vertical-align: bottom;\n width: ${dt('radiobutton.width')};\n height: ${dt('radiobutton.height')};\n}\n\n.p-radiobutton-input {\n cursor: pointer;\n appearance: none;\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n opacity: 0;\n z-index: 1;\n outline: 0 none;\n border: 1px solid transparent;\n border-radius: 50%;\n}\n\n.p-radiobutton-box {\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n border: 1px solid ${dt('radiobutton.border.color')};\n background: ${dt('radiobutton.background')};\n width: ${dt('radiobutton.width')};\n height: ${dt('radiobutton.height')};\n transition: background ${dt('radiobutton.transition.duration')}, color ${dt('radiobutton.transition.duration')}, border-color ${dt('radiobutton.transition.duration')}, box-shadow ${dt('radiobutton.transition.duration')}, outline-color ${dt('radiobutton.transition.duration')};\n outline-color: transparent;\n box-shadow: ${dt('radiobutton.shadow')};\n}\n\n.p-radiobutton-icon {\n transition-duration: ${dt('radiobutton.transition.duration')};\n background: transparent;\n font-size: ${dt('radiobutton.icon.size')};\n width: ${dt('radiobutton.icon.size')};\n height: ${dt('radiobutton.icon.size')};\n border-radius: 50%;\n backface-visibility: hidden;\n transform: translateZ(0) scale(0.1);\n}\n\n.p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover) .p-radiobutton-box {\n border-color: ${dt('radiobutton.hover.border.color')};\n}\n\n.p-radiobutton-checked .p-radiobutton-box {\n border-color: ${dt('radiobutton.checked.border.color')};\n background: ${dt('radiobutton.checked.background')};\n}\n\n.p-radiobutton-checked .p-radiobutton-box .p-radiobutton-icon {\n background: ${dt('radiobutton.icon.checked.color')};\n transform: translateZ(0) scale(1, 1);\n visibility: visible;\n}\n\n.p-radiobutton-checked:not(.p-disabled):has(.p-radiobutton-input:hover) .p-radiobutton-box {\n border-color: ${dt('radiobutton.checked.hover.border.color')};\n background: ${dt('radiobutton.checked.hover.background')};\n}\n\n.p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover).p-radiobutton-checked .p-radiobutton-box .p-radiobutton-icon {\n background: ${dt('radiobutton.icon.checked.hover.color')};\n}\n\n.p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:focus-visible) .p-radiobutton-box {\n border-color: ${dt('radiobutton.focus.border.color')};\n box-shadow: ${dt('radiobutton.focus.ring.shadow')};\n outline: ${dt('radiobutton.focus.ring.width')} ${dt('radiobutton.focus.ring.style')} ${dt('radiobutton.focus.ring.color')};\n outline-offset: ${dt('radiobutton.focus.ring.offset')};\n}\n\n.p-radiobutton-checked:not(.p-disabled):has(.p-radiobutton-input:focus-visible) .p-radiobutton-box {\n border-color: ${dt('radiobutton.checked.focus.border.color')};\n}\n\n.p-radiobutton.ng-invalid.ng-dirty > .p-radiobutton-box {\n border-color: ${dt('radiobutton.invalid.border.color')};\n}\n\n.p-radiobutton.p-variant-filled .p-radiobutton-box {\n background: ${dt('radiobutton.filled.background')};\n}\n\n.p-radiobutton.p-variant-filled.p-radiobutton-checked .p-radiobutton-box {\n background: ${dt('radiobutton.checked.background')};\n}\n\n.p-radiobutton.p-variant-filled:not(.p-disabled):has(.p-radiobutton-input:hover).p-radiobutton-checked .p-radiobutton-box {\n background: ${dt('radiobutton.checked.hover.background')};\n}\n\n.p-radiobutton.p-disabled {\n opacity: 1;\n}\n\n.p-radiobutton.p-disabled .p-radiobutton-box {\n background: ${dt('radiobutton.disabled.background')};\n border-color: ${dt('radiobutton.checked.disabled.border.color')};\n}\n\n.p-radiobutton-checked.p-disabled .p-radiobutton-box .p-radiobutton-icon {\n background: ${dt('radiobutton.icon.disabled.color')};\n}\n\n.p-radiobutton-sm,\n.p-radiobutton-sm .p-radiobutton-box {\n width: ${dt('radiobutton.sm.width')};\n height: ${dt('radiobutton.sm.height')};\n}\n\n.p-radiobutton-sm .p-radiobutton-icon {\n font-size: ${dt('radiobutton.icon.sm.size')};\n width: ${dt('radiobutton.icon.sm.size')};\n height: ${dt('radiobutton.icon.sm.size')};\n}\n\n.p-radiobutton-lg,\n.p-radiobutton-lg .p-radiobutton-box {\n width: ${dt('radiobutton.lg.width')};\n height: ${dt('radiobutton.lg.height')};\n}\n\n.p-radiobutton-lg .p-radiobutton-icon {\n font-size: ${dt('radiobutton.icon.lg.size')};\n width: ${dt('radiobutton.icon.lg.size')};\n height: ${dt('radiobutton.icon.lg.size')};\n}\n`;\nconst classes = {\n root: ({ instance, props }) => [\n 'p-radiobutton p-component',\n {\n 'p-radiobutton-checked': instance.checked,\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.config.inputStyle === 'filled' || instance.config.inputVariant === 'filled'\n }\n ],\n box: 'p-radiobutton-box',\n input: 'p-radiobutton-input',\n icon: 'p-radiobutton-icon'\n};\nclass RadioButtonStyle extends BaseStyle {\n name = 'radiobutton';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵRadioButtonStyle_BaseFactory; return function RadioButtonStyle_Factory(__ngFactoryType__) { return (ɵRadioButtonStyle_BaseFactory || (ɵRadioButtonStyle_BaseFactory = i0.ɵɵgetInheritedFactory(RadioButtonStyle)))(__ngFactoryType__ || RadioButtonStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: RadioButtonStyle, factory: RadioButtonStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RadioButtonStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * RadioButton is an extension to standard radio button element with theming.\n *\n * [Live Demo](https://www.primeng.org/radiobutton/)\n *\n * @module radiobuttonstyle\n *\n */\nvar RadioButtonClasses;\n(function (RadioButtonClasses) {\n /**\n * Class name of the root element\n */\n RadioButtonClasses[\"root\"] = \"p-radiobutton\";\n /**\n * Class name of the box element\n */\n RadioButtonClasses[\"box\"] = \"p-radiobutton-box\";\n /**\n * Class name of the input element\n */\n RadioButtonClasses[\"input\"] = \"p-radiobutton-input\";\n /**\n * Class name of the icon element\n */\n RadioButtonClasses[\"icon\"] = \"p-radiobutton-icon\";\n})(RadioButtonClasses || (RadioButtonClasses = {}));\n\nconst _c0 = [\"input\"];\nconst _c1 = (a0, a1, a2, a3, a4) => ({ \"p-radiobutton p-component\": true, \"p-radiobutton-checked\": a0, \"p-disabled\": a1, \"p-variant-filled\": a2, \"p-radiobutton-sm p-inputfield-sm\": a3, \"p-radiobutton-lg p-inputfield-lg\": a4 });\nconst RADIO_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioButton),\n multi: true\n};\nclass RadioControlRegistry {\n accessors = [];\n add(control, accessor) {\n this.accessors.push([control, accessor]);\n }\n remove(accessor) {\n this.accessors = this.accessors.filter((c) => {\n return c[1] !== accessor;\n });\n }\n select(accessor) {\n this.accessors.forEach((c) => {\n if (this.isSameGroup(c, accessor) && c[1] !== accessor) {\n c[1].writeValue(accessor.value);\n }\n });\n }\n isSameGroup(controlPair, accessor) {\n if (!controlPair[0].control) {\n return false;\n }\n return controlPair[0].control.root === accessor.control.control.root && controlPair[1].name === accessor.name;\n }\n static ɵfac = function RadioControlRegistry_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RadioControlRegistry)(); };\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: RadioControlRegistry, factory: RadioControlRegistry.ɵfac, providedIn: 'root' });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RadioControlRegistry, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null); })();\n/**\n * RadioButton is an extension to standard radio button element with theming.\n * @group Components\n */\nclass RadioButton extends BaseComponent {\n /**\n * Value of the radiobutton.\n * @group Props\n */\n value;\n /**\n * The name of the form control.\n * @group Props\n */\n formControlName;\n /**\n * Name of the radiobutton group.\n * @group Props\n */\n name;\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n disabled;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant = 'outlined';\n /**\n * Defines the size of the component.\n * @group Props\n */\n size;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n inputId;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Used to define a string that labels the input element.\n * @group Props\n */\n ariaLabel;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Allows to select a boolean value.\n * @group Props\n */\n binary;\n /**\n * Callback to invoke on radio button click.\n * @param {RadioButtonClickEvent} event - Custom click event.\n * @group Emits\n */\n onClick = new EventEmitter();\n /**\n * Callback to invoke when the receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onFocus = new EventEmitter();\n /**\n * Callback to invoke when the loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onBlur = new EventEmitter();\n inputViewChild;\n onModelChange = () => { };\n onModelTouched = () => { };\n checked;\n focused;\n control;\n _componentStyle = inject(RadioButtonStyle);\n injector = inject(Injector);\n registry = inject(RadioControlRegistry);\n ngOnInit() {\n super.ngOnInit();\n this.control = this.injector.get(NgControl);\n this.checkName();\n this.registry.add(this.control, this);\n }\n onChange(event) {\n if (!this.disabled) {\n this.select(event);\n }\n }\n select(event) {\n if (!this.disabled) {\n this.checked = true;\n this.onModelChange(this.value);\n this.registry.select(this);\n this.onClick.emit({ originalEvent: event, value: this.value });\n }\n }\n writeValue(value) {\n if (!this.binary) {\n this.checked = value == this.value;\n }\n else {\n this.checked = !!value;\n }\n if (this.inputViewChild && this.inputViewChild.nativeElement) {\n this.inputViewChild.nativeElement.checked = this.checked;\n }\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n onInputFocus(event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n onInputBlur(event) {\n this.focused = false;\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n /**\n * Applies focus to input field.\n * @group Method\n */\n focus() {\n this.inputViewChild.nativeElement.focus();\n }\n ngOnDestroy() {\n this.registry.remove(this);\n super.ngOnDestroy();\n }\n checkName() {\n if (this.name && this.formControlName && this.name !== this.formControlName) {\n this.throwNameError();\n }\n if (!this.name && this.formControlName) {\n this.name = this.formControlName;\n }\n }\n throwNameError() {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: \n `);\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵRadioButton_BaseFactory; return function RadioButton_Factory(__ngFactoryType__) { return (ɵRadioButton_BaseFactory || (ɵRadioButton_BaseFactory = i0.ɵɵgetInheritedFactory(RadioButton)))(__ngFactoryType__ || RadioButton); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RadioButton, selectors: [[\"p-radioButton\"], [\"p-radiobutton\"], [\"p-radio-button\"]], viewQuery: function RadioButton_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputViewChild = _t.first);\n } }, inputs: { value: \"value\", formControlName: \"formControlName\", name: \"name\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], variant: \"variant\", size: \"size\", tabindex: [2, \"tabindex\", \"tabindex\", numberAttribute], inputId: \"inputId\", ariaLabelledBy: \"ariaLabelledBy\", ariaLabel: \"ariaLabel\", style: \"style\", styleClass: \"styleClass\", autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute], binary: [2, \"binary\", \"binary\", booleanAttribute] }, outputs: { onClick: \"onClick\", onFocus: \"onFocus\", onBlur: \"onBlur\" }, standalone: true, features: [i0.ɵɵProvidersFeature([RADIO_VALUE_ACCESSOR, RadioButtonStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 5, vars: 24, consts: [[\"input\", \"\"], [3, \"ngStyle\", \"ngClass\"], [\"type\", \"radio\", 1, \"p-radiobutton-input\", 3, \"focus\", \"blur\", \"change\", \"checked\", \"disabled\", \"value\", \"pAutoFocus\"], [1, \"p-radiobutton-box\"], [1, \"p-radiobutton-icon\"]], template: function RadioButton_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1)(1, \"input\", 2, 0);\n i0.ɵɵlistener(\"focus\", function RadioButton_Template_input_focus_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputFocus($event)); })(\"blur\", function RadioButton_Template_input_blur_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputBlur($event)); })(\"change\", function RadioButton_Template_input_change_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onChange($event)); });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵelement(4, \"div\", 4);\n i0.ɵɵelementEnd()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx.style)(\"ngClass\", i0.ɵɵpureFunction5(18, _c1, ctx.checked, ctx.disabled, ctx.variant === \"filled\" || ctx.config.inputStyle() === \"filled\" || ctx.config.inputVariant() === \"filled\", ctx.size === \"small\", ctx.size === \"large\"));\n i0.ɵɵattribute(\"data-pc-name\", \"radiobutton\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", ctx.checked)(\"disabled\", ctx.disabled)(\"value\", ctx.value)(\"pAutoFocus\", ctx.autofocus);\n i0.ɵɵattribute(\"id\", ctx.inputId)(\"name\", ctx.name)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-label\", ctx.ariaLabel)(\"tabindex\", ctx.tabindex)(\"aria-checked\", ctx.checked);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"data-pc-section\", \"input\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"icon\");\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgStyle, AutoFocus, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RadioButton, [{\n type: Component,\n args: [{\n selector: 'p-radioButton, p-radiobutton, p-radio-button',\n standalone: true,\n imports: [CommonModule, AutoFocus, SharedModule],\n template: `\n \n \n
\n
\n
\n \n `,\n providers: [RADIO_VALUE_ACCESSOR, RadioButtonStyle],\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], null, { value: [{\n type: Input\n }], formControlName: [{\n type: Input\n }], name: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], variant: [{\n type: Input\n }], size: [{\n type: Input\n }], tabindex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], inputId: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], binary: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onClick: [{\n type: Output\n }], onFocus: [{\n type: Output\n }], onBlur: [{\n type: Output\n }], inputViewChild: [{\n type: ViewChild,\n args: ['input']\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(RadioButton, { className: \"RadioButton\" }); })();\nclass RadioButtonModule {\n static ɵfac = function RadioButtonModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RadioButtonModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: RadioButtonModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [RadioButton, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RadioButtonModule, [{\n type: NgModule,\n args: [{\n imports: [RadioButton, SharedModule],\n exports: [RadioButton, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(RadioButtonModule, { imports: [RadioButton, SharedModule], exports: [RadioButton, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RADIO_VALUE_ACCESSOR, RadioButton, RadioButtonClasses, RadioButtonModule, RadioButtonStyle, RadioControlRegistry };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, inject, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, Input, HostBinding, Output, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Ripple } from 'primeng/ripple';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-togglebutton {\n display: inline-flex;\n cursor: pointer;\n user-select: none;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n color: ${dt('togglebutton.color')};\n background: ${dt('togglebutton.background')};\n border: 1px solid ${dt('togglebutton.border.color')};\n padding: ${dt('togglebutton.padding')};\n font-size: 1rem;\n font-family: inherit;\n font-feature-settings: inherit;\n transition: background ${dt('togglebutton.transition.duration')}, color ${dt('togglebutton.transition.duration')}, border-color ${dt('togglebutton.transition.duration')},\n outline-color ${dt('togglebutton.transition.duration')}, box-shadow ${dt('togglebutton.transition.duration')};\n border-radius: ${dt('togglebutton.border.radius')};\n outline-color: transparent;\n font-weight: ${dt('togglebutton.font.weight')};\n}\n\n.p-togglebutton-content {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: ${dt('togglebutton.gap')};\n}\n\n.p-togglebutton-label,\n.p-togglebutton-icon {\n position: relative;\n transition: none;\n}\n\n.p-togglebutton::before {\n content: \"\";\n background: transparent;\n transition: background ${dt('togglebutton.transition.duration')}, color ${dt('togglebutton.transition.duration')}, border-color ${dt('togglebutton.transition.duration')},\n outline-color ${dt('togglebutton.transition.duration')}, box-shadow ${dt('togglebutton.transition.duration')};\n position: absolute;\n inset-inline-start: ${dt('togglebutton.content.left')};\n top: ${dt('togglebutton.content.top')};\n width: calc(100% - calc(2 * ${dt('togglebutton.content.left')}));\n height: calc(100% - calc(2 * ${dt('togglebutton.content.top')}));\n border-radius: ${dt('togglebutton.border.radius')};\n}\n\n.p-togglebutton.p-togglebutton-checked::before {\n background: ${dt('togglebutton.content.checked.background')};\n box-shadow: ${dt('togglebutton.content.checked.shadow')};\n}\n\n.p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover {\n background: ${dt('togglebutton.hover.background')};\n color: ${dt('togglebutton.hover.color')};\n}\n\n.p-togglebutton.p-togglebutton-checked {\n background: ${dt('togglebutton.checked.background')};\n border-color: ${dt('togglebutton.checked.border.color')};\n color: ${dt('togglebutton.checked.color')};\n}\n\n.p-togglebutton:focus-visible {\n box-shadow: ${dt('togglebutton.focus.ring.shadow')};\n outline: ${dt('togglebutton.focus.ring.width')} ${dt('togglebutton.focus.ring.style')} ${dt('togglebutton.focus.ring.color')};\n outline-offset: ${dt('togglebutton.focus.ring.offset')};\n}\n\n.p-togglebutton.p-invalid {\n border-color: ${dt('togglebutton.invalid.border.color')};\n}\n\n.p-togglebutton:disabled {\n opacity: 1;\n cursor: default;\n background: ${dt('togglebutton.disabled.background')};\n border-color: ${dt('togglebutton.disabled.border.color')};\n color: ${dt('togglebutton.disabled.color')};\n}\n\n.p-togglebutton-icon {\n color: ${dt('togglebutton.icon.color')};\n}\n\n.p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover .p-togglebutton-icon {\n color: ${dt('togglebutton.icon.hover.color')};\n}\n\n.p-togglebutton.p-togglebutton-checked .p-togglebutton-icon {\n color: ${dt('togglebutton.icon.checked.color')};\n}\n\n.p-togglebutton:disabled .p-togglebutton-icon {\n color: ${dt('togglebutton.icon.disabled.color')};\n}\n\n.p-togglebutton-sm {\n padding: ${dt('togglebutton.sm.padding')};\n font-size: ${dt('togglebutton.sm.font.size')};\n}\n\n.p-togglebutton-lg {\n padding: ${dt('togglebutton.lg.padding')};\n font-size: ${dt('togglebutton.lg.font.size')};\n}\n\n/* For PrimeNG (iconPos) */\n\n.p-togglebutton-icon-right {\n order: 1;\n}\n\np-togglebutton.ng-invalid.ng-dirty > .p-togglebutton {\n border-color: ${dt('togglebutton.invalid.border.color')};\n}\n`;\nconst classes = {\n root: ({ instance }) => ({\n 'p-togglebutton p-component': true,\n 'p-togglebutton-checked': instance.checked,\n 'p-disabled': instance.disabled,\n 'p-togglebutton-sm p-inputfield-sm': instance.size === 'small',\n 'p-togglebutton-lg p-inputfield-lg': instance.size === 'large'\n }),\n content: 'p-togglebutton-content',\n icon: 'p-togglebutton-icon',\n label: 'p-togglebutton-label'\n};\nclass ToggleButtonStyle extends BaseStyle {\n name = 'togglebutton';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵToggleButtonStyle_BaseFactory; return function ToggleButtonStyle_Factory(__ngFactoryType__) { return (ɵToggleButtonStyle_BaseFactory || (ɵToggleButtonStyle_BaseFactory = i0.ɵɵgetInheritedFactory(ToggleButtonStyle)))(__ngFactoryType__ || ToggleButtonStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ToggleButtonStyle, factory: ToggleButtonStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ToggleButtonStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * ToggleButton is used to select a boolean value using a button.\n *\n * [Live Demo](https://www.primeng.org/togglebutton/)\n *\n * @module togglebuttonstyle\n *\n */\nvar ToggleButtonClasses;\n(function (ToggleButtonClasses) {\n /**\n * Class name of the root element\n */\n ToggleButtonClasses[\"root\"] = \"p-togglebutton\";\n /**\n * Class name of the icon element\n */\n ToggleButtonClasses[\"icon\"] = \"p-togglebutton-icon\";\n /**\n * Class name of the label element\n */\n ToggleButtonClasses[\"label\"] = \"p-togglebutton-label\";\n})(ToggleButtonClasses || (ToggleButtonClasses = {}));\n\nconst _c0 = [\"icon\"];\nconst _c1 = [\"content\"];\nconst _c2 = a0 => ({ $implicit: a0 });\nconst _c3 = (a0, a1) => ({ \"p-togglebutton-icon\": true, \"p-togglebutton-icon-left\": a0, \"p-togglebutton-icon-right\": a1 });\nfunction ToggleButton_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction ToggleButton_Conditional_3_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 1);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵclassMap(ctx_r0.checked ? ctx_r0.onIcon : ctx_r0.offIcon);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(4, _c3, ctx_r0.iconPos === \"left\", ctx_r0.iconPos === \"right\"));\n i0.ɵɵattribute(\"data-pc-section\", \"icon\");\n} }\nfunction ToggleButton_Conditional_3_Conditional_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, ToggleButton_Conditional_3_Conditional_0_Conditional_0_Template, 1, 7, \"span\", 3);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵconditional(ctx_r0.onIcon || ctx_r0.offIcon ? 0 : -1);\n} }\nfunction ToggleButton_Conditional_3_Conditional_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction ToggleButton_Conditional_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, ToggleButton_Conditional_3_Conditional_1_ng_container_0_Template, 1, 0, \"ng-container\", 2);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.iconTemplate || ctx_r0._iconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c2, ctx_r0.checked));\n} }\nfunction ToggleButton_Conditional_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, ToggleButton_Conditional_3_Conditional_0_Template, 1, 1)(1, ToggleButton_Conditional_3_Conditional_1_Template, 1, 4, \"ng-container\");\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵconditional(!ctx_r0.iconTemplate ? 0 : 1);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"label\"));\n i0.ɵɵattribute(\"data-pc-section\", \"label\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.checked ? ctx_r0.hasOnLabel ? ctx_r0.onLabel : \"\\u00A0\" : ctx_r0.hasOffLabel ? ctx_r0.offLabel : \"\\u00A0\");\n} }\nconst TOGGLEBUTTON_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleButton),\n multi: true\n};\n/**\n * ToggleButton is used to select a boolean value using a button.\n * @group Components\n */\nclass ToggleButton extends BaseComponent {\n /**\n * Label for the on state.\n * @group Props\n */\n onLabel = 'Yes';\n /**\n * Label for the off state.\n * @group Props\n */\n offLabel = 'No';\n /**\n * Icon for the on state.\n * @group Props\n */\n onIcon;\n /**\n * Icon for the off state.\n * @group Props\n */\n offIcon;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n ariaLabel;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n disabled;\n /**\n * Inline style of the element.\n * @group Props\n */\n style;\n /**\n * Style class of the element.\n * @group Props\n */\n styleClass;\n get hostClass() {\n return this.styleClass || '';\n }\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n inputId;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex = 0;\n /**\n * Defines the size of the component.\n * @group Props\n */\n size;\n /**\n * Position of the icon.\n * @group Props\n */\n iconPos = 'left';\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Whether selection can not be cleared.\n * @group Props\n */\n allowEmpty;\n /**\n * Callback to invoke on value change.\n * @param {ToggleButtonChangeEvent} event - Custom change event.\n * @group Emits\n */\n onChange = new EventEmitter();\n /**\n * Custom icon template.\n * @group Templates\n */\n iconTemplate;\n /**\n * Custom content template.\n * @group Templates\n */\n contentTemplate;\n templates;\n checked = false;\n onModelChange = () => { };\n onModelTouched = () => { };\n _componentStyle = inject(ToggleButtonStyle);\n toggle(event) {\n if (!this.disabled && !(this.allowEmpty === false && this.checked)) {\n this.checked = !this.checked;\n this.onModelChange(this.checked);\n this.onModelTouched();\n this.onChange.emit({\n originalEvent: event,\n checked: this.checked\n });\n this.cd.markForCheck();\n }\n }\n onKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n this.toggle(event);\n event.preventDefault();\n break;\n case 'Space':\n this.toggle(event);\n event.preventDefault();\n break;\n }\n }\n onBlur() {\n this.onModelTouched();\n }\n writeValue(value) {\n this.checked = value;\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n get hasOnLabel() {\n return (this.onLabel && this.onLabel.length > 0);\n }\n get hasOffLabel() {\n return (this.onLabel && this.onLabel.length > 0);\n }\n get active() {\n return this.checked === true;\n }\n _iconTemplate;\n _contentTemplate;\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'icon':\n this._iconTemplate = item.template;\n break;\n case 'content':\n this._contentTemplate = item.template;\n break;\n default:\n this._contentTemplate = item.template;\n break;\n }\n });\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵToggleButton_BaseFactory; return function ToggleButton_Factory(__ngFactoryType__) { return (ɵToggleButton_BaseFactory || (ɵToggleButton_BaseFactory = i0.ɵɵgetInheritedFactory(ToggleButton)))(__ngFactoryType__ || ToggleButton); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ToggleButton, selectors: [[\"p-toggleButton\"], [\"p-togglebutton\"], [\"p-toggle-button\"]], contentQueries: function ToggleButton_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, _c1, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.iconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, hostVars: 2, hostBindings: function ToggleButton_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵclassMap(ctx.hostClass);\n } }, inputs: { onLabel: \"onLabel\", offLabel: \"offLabel\", onIcon: \"onIcon\", offIcon: \"offIcon\", ariaLabel: \"ariaLabel\", ariaLabelledBy: \"ariaLabelledBy\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], style: \"style\", styleClass: \"styleClass\", inputId: \"inputId\", tabindex: [2, \"tabindex\", \"tabindex\", numberAttribute], size: \"size\", iconPos: \"iconPos\", autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute], allowEmpty: \"allowEmpty\" }, outputs: { onChange: \"onChange\" }, standalone: true, features: [i0.ɵɵProvidersFeature([TOGGLEBUTTON_VALUE_ACCESSOR, ToggleButtonStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 4, vars: 15, consts: [[\"pRipple\", \"\", \"type\", \"button\", 3, \"click\", \"ngClass\", \"tabindex\", \"disabled\"], [3, \"ngClass\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"class\", \"ngClass\"]], template: function ToggleButton_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"button\", 0);\n i0.ɵɵlistener(\"click\", function ToggleButton_Template_button_click_0_listener($event) { return ctx.toggle($event); });\n i0.ɵɵelementStart(1, \"span\", 1);\n i0.ɵɵtemplate(2, ToggleButton_ng_container_2_Template, 1, 0, \"ng-container\", 2)(3, ToggleButton_Conditional_3_Template, 4, 4, \"span\", 1);\n i0.ɵɵelementEnd()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", ctx.cx(\"root\"))(\"tabindex\", ctx.tabindex)(\"disabled\", ctx.disabled);\n i0.ɵɵattribute(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-pressed\", ctx.checked)(\"data-p-checked\", ctx.active)(\"data-p-disabled\", ctx.disabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx.cx(\"content\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.contentTemplate || ctx._contentTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(13, _c2, ctx.checked));\n i0.ɵɵadvance();\n i0.ɵɵconditional(!ctx.contentTemplate ? 3 : -1);\n } }, dependencies: [Ripple, CommonModule, i1.NgClass, i1.NgTemplateOutlet, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ToggleButton, [{\n type: Component,\n args: [{\n selector: 'p-toggleButton, p-togglebutton, p-toggle-button',\n standalone: true,\n imports: [Ripple, CommonModule, SharedModule],\n template: `\n \n \n \n @if (!contentTemplate) {\n @if (!iconTemplate) {\n @if (onIcon || offIcon) {\n \n }\n } @else {\n \n }\n {{ checked ? (hasOnLabel ? onLabel : ' ') : hasOffLabel ? offLabel : ' ' }}\n }\n \n \n `,\n providers: [TOGGLEBUTTON_VALUE_ACCESSOR, ToggleButtonStyle],\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], null, { onLabel: [{\n type: Input\n }], offLabel: [{\n type: Input\n }], onIcon: [{\n type: Input\n }], offIcon: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], hostClass: [{\n type: HostBinding,\n args: ['class']\n }], inputId: [{\n type: Input\n }], tabindex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], size: [{\n type: Input\n }], iconPos: [{\n type: Input\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], allowEmpty: [{\n type: Input\n }], onChange: [{\n type: Output\n }], iconTemplate: [{\n type: ContentChild,\n args: ['icon', { descendants: false }]\n }], contentTemplate: [{\n type: ContentChild,\n args: ['content', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(ToggleButton, { className: \"ToggleButton\" }); })();\nclass ToggleButtonModule {\n static ɵfac = function ToggleButtonModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ToggleButtonModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ToggleButtonModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [ToggleButton, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ToggleButtonModule, [{\n type: NgModule,\n args: [{\n imports: [ToggleButton, SharedModule],\n exports: [ToggleButton, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(ToggleButtonModule, { imports: [ToggleButton, SharedModule], exports: [ToggleButton, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TOGGLEBUTTON_VALUE_ACCESSOR, ToggleButton, ToggleButtonClasses, ToggleButtonModule, ToggleButtonStyle };\n","import * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, inject, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport * as i1 from '@angular/forms';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { resolveFieldData, equals } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ToggleButton } from 'primeng/togglebutton';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-selectbutton {\n display: inline-flex;\n user-select: none;\n vertical-align: bottom;\n outline-color: transparent;\n border-radius: ${dt('selectbutton.border.radius')};\n}\n\n.p-selectbutton .p-togglebutton {\n border-radius: 0;\n border-width: 1px 1px 1px 0;\n}\n\n.p-selectbutton .p-togglebutton:focus-visible {\n position: relative;\n z-index: 1;\n}\n\n.p-selectbutton p-togglebutton:first-child .p-togglebutton {\n border-left-width: 1px;\n border-start-start-radius: ${dt('selectbutton.border.radius')};\n border-end-start-radius: ${dt('selectbutton.border.radius')};\n}\n\n.p-selectbutton p-togglebutton:last-child .p-togglebutton{\n border-start-end-radius: ${dt('selectbutton.border.radius')};\n border-end-end-radius: ${dt('selectbutton.border.radius')};\n}\n\n.p-selectbutton.ng-invalid.ng-dirty {\n outline: 1px solid ${dt('selectbutton.invalid.border.color')};\n outline-offset: 0;\n}\n`;\nconst classes = {\n root: ({ props }) => [\n 'p-selectbutton p-component',\n {\n 'p-invalid': props.invalid\n }\n ]\n};\nclass SelectButtonStyle extends BaseStyle {\n name = 'selectbutton';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵSelectButtonStyle_BaseFactory; return function SelectButtonStyle_Factory(__ngFactoryType__) { return (ɵSelectButtonStyle_BaseFactory || (ɵSelectButtonStyle_BaseFactory = i0.ɵɵgetInheritedFactory(SelectButtonStyle)))(__ngFactoryType__ || SelectButtonStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SelectButtonStyle, factory: SelectButtonStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectButtonStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * SelectButton is used to choose single or multiple items from a list using buttons.\n *\n * [Live Demo](https://www.primeng.org/selectbutton/)\n *\n * @module selectbuttonstyle\n *\n */\nvar SelectButtonClasses;\n(function (SelectButtonClasses) {\n /**\n * Class name of the root element\n */\n SelectButtonClasses[\"root\"] = \"p-selectbutton\";\n})(SelectButtonClasses || (SelectButtonClasses = {}));\n\nconst _c0 = [\"item\"];\nconst _c1 = (a0, a1) => ({ $implicit: a0, index: a1 });\nfunction SelectButton_For_1_Conditional_1_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction SelectButton_For_1_Conditional_1_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, SelectButton_For_1_Conditional_1_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 3);\n} if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext(2);\n const option_r3 = ctx_r5.$implicit;\n const ɵ$index_1_r4 = ctx_r5.$index;\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r4.itemTemplate || ctx_r4._itemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c1, option_r3, ɵ$index_1_r4));\n} }\nfunction SelectButton_For_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, SelectButton_For_1_Conditional_1_ng_template_0_Template, 1, 5, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n} }\nfunction SelectButton_For_1_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-toggleButton\", 2);\n i0.ɵɵlistener(\"onChange\", function SelectButton_For_1_Template_p_toggleButton_onChange_0_listener($event) { const ctx_r1 = i0.ɵɵrestoreView(_r1); const option_r3 = ctx_r1.$implicit; const ɵ$index_1_r4 = ctx_r1.$index; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onOptionSelect($event, option_r3, ɵ$index_1_r4)); });\n i0.ɵɵtemplate(1, SelectButton_For_1_Conditional_1_Template, 2, 0);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const option_r3 = ctx.$implicit;\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"autofocus\", ctx_r4.autofocus)(\"styleClass\", ctx_r4.styleClass)(\"ngModel\", ctx_r4.isSelected(option_r3))(\"onLabel\", ctx_r4.getOptionLabel(option_r3))(\"offLabel\", ctx_r4.getOptionLabel(option_r3))(\"disabled\", ctx_r4.disabled || ctx_r4.isOptionDisabled(option_r3))(\"allowEmpty\", ctx_r4.allowEmpty)(\"size\", ctx_r4.size);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r4.itemTemplate || ctx_r4._itemTemplate ? 1 : -1);\n} }\nconst SELECTBUTTON_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectButton),\n multi: true\n};\n/**\n * SelectButton is used to choose single or multiple items from a list using buttons.\n * @group Components\n */\nclass SelectButton extends BaseComponent {\n /**\n * An array of selectitems to display as the available options.\n * @group Props\n */\n options;\n /**\n * Name of the label field of an option.\n * @group Props\n */\n optionLabel;\n /**\n * Name of the value field of an option.\n * @group Props\n */\n optionValue;\n /**\n * Name of the disabled field of an option.\n * @group Props\n */\n optionDisabled;\n /**\n * Whether selection can be cleared.\n * @group Props\n */\n unselectable = false;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex = 0;\n /**\n * When specified, allows selecting multiple values.\n * @group Props\n */\n multiple;\n /**\n * Whether selection can not be cleared.\n * @group Props\n */\n allowEmpty = true;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Defines the size of the component.\n * @group Props\n */\n size;\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n disabled;\n /**\n * A property to uniquely identify a value in options.\n * @group Props\n */\n dataKey;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Callback to invoke on input click.\n * @param {SelectButtonOptionClickEvent} event - Custom click event.\n * @group Emits\n */\n onOptionClick = new EventEmitter();\n /**\n * Callback to invoke on selection change.\n * @param {SelectButtonChangeEvent} event - Custom change event.\n * @group Emits\n */\n onChange = new EventEmitter();\n /**\n * Template of an item in the list.\n * @group Templates\n */\n itemTemplate;\n _itemTemplate;\n get equalityKey() {\n return this.optionValue ? null : this.dataKey;\n }\n value;\n onModelChange = () => { };\n onModelTouched = () => { };\n focusedIndex = 0;\n _componentStyle = inject(SelectButtonStyle);\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option.label != undefined ? option.label : option;\n }\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : this.optionLabel || option.value === undefined ? option : option.value;\n }\n isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : option.disabled !== undefined ? option.disabled : false;\n }\n writeValue(value) {\n this.value = value;\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n onOptionSelect(event, option, index) {\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n let selected = this.isSelected(option);\n if (selected && this.unselectable) {\n return;\n }\n let optionValue = this.getOptionValue(option);\n let newValue;\n if (this.multiple) {\n if (selected)\n newValue = this.value.filter((val) => !equals(val, optionValue, this.equalityKey));\n else\n newValue = this.value ? [...this.value, optionValue] : [optionValue];\n }\n else {\n if (selected && !this.allowEmpty) {\n return;\n }\n newValue = selected ? null : optionValue;\n }\n this.focusedIndex = index;\n this.value = newValue;\n this.onModelChange(this.value);\n this.onChange.emit({\n originalEvent: event,\n value: this.value\n });\n this.onOptionClick.emit({\n originalEvent: event,\n option: option,\n index: index\n });\n }\n changeTabIndexes(event, direction) {\n let firstTabableChild, index;\n for (let i = 0; i <= this.el.nativeElement.children.length - 1; i++) {\n if (this.el.nativeElement.children[i].getAttribute('tabindex') === '0')\n firstTabableChild = { elem: this.el.nativeElement.children[i], index: i };\n }\n if (direction === 'prev') {\n if (firstTabableChild.index === 0)\n index = this.el.nativeElement.children.length - 1;\n else\n index = firstTabableChild.index - 1;\n }\n else {\n if (firstTabableChild.index === this.el.nativeElement.children.length - 1)\n index = 0;\n else\n index = firstTabableChild.index + 1;\n }\n this.focusedIndex = index;\n this.el.nativeElement.children[index].focus();\n }\n onFocus(event, index) {\n this.focusedIndex = index;\n }\n onBlur() {\n this.onModelTouched();\n }\n removeOption(option) {\n this.value = this.value.filter((val) => !equals(val, this.getOptionValue(option), this.dataKey));\n }\n isSelected(option) {\n let selected = false;\n const optionValue = this.getOptionValue(option);\n if (this.multiple) {\n if (this.value && Array.isArray(this.value)) {\n for (let val of this.value) {\n if (equals(val, optionValue, this.dataKey)) {\n selected = true;\n break;\n }\n }\n }\n }\n else {\n selected = equals(this.getOptionValue(option), this.value, this.equalityKey);\n }\n return selected;\n }\n templates;\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this._itemTemplate = item.template;\n break;\n }\n });\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵSelectButton_BaseFactory; return function SelectButton_Factory(__ngFactoryType__) { return (ɵSelectButton_BaseFactory || (ɵSelectButton_BaseFactory = i0.ɵɵgetInheritedFactory(SelectButton)))(__ngFactoryType__ || SelectButton); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SelectButton, selectors: [[\"p-selectButton\"], [\"p-selectbutton\"], [\"p-select-button\"]], contentQueries: function SelectButton_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, hostVars: 10, hostBindings: function SelectButton_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.group)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"data-pc-section\", \"root\")(\"data-pc-name\", \"selectbutton\");\n i0.ɵɵstyleMap(ctx.style);\n i0.ɵɵclassProp(\"p-selectbutton\", true)(\"p-component\", true);\n } }, inputs: { options: \"options\", optionLabel: \"optionLabel\", optionValue: \"optionValue\", optionDisabled: \"optionDisabled\", unselectable: [2, \"unselectable\", \"unselectable\", booleanAttribute], tabindex: [2, \"tabindex\", \"tabindex\", numberAttribute], multiple: [2, \"multiple\", \"multiple\", booleanAttribute], allowEmpty: [2, \"allowEmpty\", \"allowEmpty\", booleanAttribute], style: \"style\", styleClass: \"styleClass\", ariaLabelledBy: \"ariaLabelledBy\", size: \"size\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], dataKey: \"dataKey\", autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute] }, outputs: { onOptionClick: \"onOptionClick\", onChange: \"onChange\" }, standalone: true, features: [i0.ɵɵProvidersFeature([SELECTBUTTON_VALUE_ACCESSOR, SelectButtonStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 0, consts: [[\"content\", \"\"], [3, \"autofocus\", \"styleClass\", \"ngModel\", \"onLabel\", \"offLabel\", \"disabled\", \"allowEmpty\", \"size\"], [3, \"onChange\", \"autofocus\", \"styleClass\", \"ngModel\", \"onLabel\", \"offLabel\", \"disabled\", \"allowEmpty\", \"size\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function SelectButton_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, SelectButton_For_1_Template, 2, 9, \"p-toggleButton\", 1, i0.ɵɵrepeaterTrackByIdentity);\n } if (rf & 2) {\n i0.ɵɵrepeater(ctx.options);\n } }, dependencies: [ToggleButton, FormsModule, i1.NgControlStatus, i1.NgModel, CommonModule, i2.NgTemplateOutlet, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectButton, [{\n type: Component,\n args: [{\n selector: 'p-selectButton, p-selectbutton, p-select-button',\n standalone: true,\n imports: [ToggleButton, FormsModule, CommonModule, SharedModule],\n template: `\n @for (option of options; track option; let i = $index) {\n \n @if (itemTemplate || _itemTemplate) {\n \n \n \n }\n \n }\n `,\n providers: [SELECTBUTTON_VALUE_ACCESSOR, SelectButtonStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.p-selectbutton]': 'true',\n '[class.p-component]': 'true',\n '[style]': 'style',\n '[attr.role]': 'group',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.data-pc-section]': \"'root'\",\n '[attr.data-pc-name]': \"'selectbutton'\"\n }\n }]\n }], null, { options: [{\n type: Input\n }], optionLabel: [{\n type: Input\n }], optionValue: [{\n type: Input\n }], optionDisabled: [{\n type: Input\n }], unselectable: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], tabindex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], multiple: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], allowEmpty: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], size: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], dataKey: [{\n type: Input\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onOptionClick: [{\n type: Output\n }], onChange: [{\n type: Output\n }], itemTemplate: [{\n type: ContentChild,\n args: ['item', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectButton, { className: \"SelectButton\" }); })();\nclass SelectButtonModule {\n static ɵfac = function SelectButtonModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SelectButtonModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SelectButtonModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [SelectButton, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectButtonModule, [{\n type: NgModule,\n args: [{\n imports: [SelectButton, SharedModule],\n exports: [SelectButton, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(SelectButtonModule, { imports: [SelectButton, SharedModule], exports: [SelectButton, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SELECTBUTTON_VALUE_ACCESSOR, SelectButton, SelectButtonClasses, SelectButtonModule, SelectButtonStyle };\n","import { trigger, transition, style, animate } from '@angular/animations';\nimport * as i1 from '@angular/common';\nimport { isPlatformBrowser, DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, inject, NgZone, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, ContentChildren, ContentChild, Directive, HostListener, PLATFORM_ID, Inject, Optional, forwardRef, ElementRef, NgModule } from '@angular/core';\nimport * as i5 from '@angular/forms';\nimport { FormsModule } from '@angular/forms';\nimport * as i3 from 'primeng/api';\nimport { OverlayService, FilterService, FilterOperator, FilterMatchMode, PrimeTemplate, TranslationKeys, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport * as i9 from 'primeng/button';\nimport { Button, ButtonModule } from 'primeng/button';\nimport * as i11 from 'primeng/datepicker';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport * as i7 from 'primeng/checkbox';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { ArrowDownIcon } from 'primeng/icons/arrowdown';\nimport { ArrowUpIcon } from 'primeng/icons/arrowup';\nimport { CheckIcon } from 'primeng/icons/check';\nimport { FilterIcon } from 'primeng/icons/filter';\nimport { FilterSlashIcon } from 'primeng/icons/filterslash';\nimport { PlusIcon } from 'primeng/icons/plus';\nimport { SortAltIcon } from 'primeng/icons/sortalt';\nimport { SortAmountDownIcon } from 'primeng/icons/sortamountdown';\nimport { SortAmountUpAltIcon } from 'primeng/icons/sortamountupalt';\nimport { SpinnerIcon } from 'primeng/icons/spinner';\nimport { TrashIcon } from 'primeng/icons/trash';\nimport * as i12 from 'primeng/inputnumber';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport * as i10 from 'primeng/inputtext';\nimport { InputTextModule } from 'primeng/inputtext';\nimport * as i2 from 'primeng/paginator';\nimport { PaginatorModule } from 'primeng/paginator';\nimport * as i6 from 'primeng/radiobutton';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport * as i4 from 'primeng/scroller';\nimport { ScrollerModule } from 'primeng/scroller';\nimport * as i8 from 'primeng/select';\nimport { SelectModule } from 'primeng/select';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { UniqueComponentId, ObjectUtils, ZIndexUtils } from 'primeng/utils';\nimport { Subject } from 'rxjs';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-datatable {\n position: relative;\n}\n\n.p-datatable-table {\n border-spacing: 0;\n border-collapse: separate;\n width: 100%;\n}\n\n.p-datatable-scrollable > .p-datatable-table-container {\n position: relative;\n}\n/* For PrimeNG */\n.p-datatable-scrollable-table > .p-datatable-thead {\n top: 0;\n z-index: 2;\n}\n/* For PrimeNG */\n.p-datatable-scrollable-table > .p-datatable-frozen-tbody {\n position: sticky;\n z-index: 2;\n}\n/* For PrimeNG */\n.p-datatable-scrollable-table > .p-datatable-frozen-tbody:last-child {\n z-index: 1;\n}\n\n.p-datatable-scrollable-table > .p-datatable-tfoot {\n bottom: 0;\n z-index: 1;\n}\n\n.p-datatable-scrollable .p-datatable-frozen-column {\n position: sticky;\n background: ${dt('datatable.header.cell.background')};\n}\n\n.p-datatable-scrollable th.p-datatable-frozen-column {\n z-index: 1;\n}\n\n.p-datatable-scrollable > .p-datatable-table-container > .p-datatable-table > .p-datatable-thead,\n.p-datatable-scrollable > .p-datatable-table-container > .p-virtualscroller > .p-datatable-table > .p-datatable-thead {\n background: ${dt('datatable.header.cell.background')};\n}\n\n.p-datatable-scrollable > .p-datatable-table-container > .p-datatable-table > .p-datatable-tfoot,\n.p-datatable-scrollable > .p-datatable-table-container > .p-virtualscroller > .p-datatable-table > .p-datatable-tfoot {\n background: ${dt('datatable.footer.cell.background')};\n}\n\n.p-datatable-flex-scrollable {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.p-datatable-flex-scrollable > .p-datatable-table-container {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.p-datatable-scrollable-table > .p-datatable-tbody > .p-datatable-row-group-header {\n position: sticky;\n z-index: 1;\n}\n\n.p-datatable-resizable-table > .p-datatable-thead > tr > th,\n.p-datatable-resizable-table > .p-datatable-tfoot > tr > td,\n.p-datatable-resizable-table > .p-datatable-tbody > tr > td {\n overflow: hidden;\n white-space: nowrap;\n}\n\n.p-datatable-resizable-table > .p-datatable-thead > tr > th.p-datatable-resizable-column:not(.p-datatable-frozen-column) {\n background-clip: padding-box;\n position: relative;\n}\n\n.p-datatable-resizable-table-fit > .p-datatable-thead > tr > th.p-datatable-resizable-column:last-child .p-datatable-column-resizer {\n display: none;\n}\n\n.p-datatable-column-resizer {\n display: block;\n position: absolute;\n top: 0;\n inset-inline-end: 0;\n margin: 0;\n width: ${dt('datatable.column.resizer.width')};\n height: 100%;\n padding: 0px;\n cursor: col-resize;\n border: 1px solid transparent;\n}\n\n/*\n.p-datatable-column-header-content {\n display: flex;\n align-items: center;\n gap: ${dt('datatable.header.cell.gap')};\n}\n.p-datatable-thead > tr > th {\n display: flex;\n align-items: center;\n gap: ${dt('datatable.header.cell.gap')};\n}\n*/\n\n.p-datatable-column-resize-indicator {\n width: ${dt('datatable.resize.indicator.width')};\n position: absolute;\n z-index: 10;\n display: none;\n background: ${dt('datatable.resize.indicator.color')};\n}\n\n.p-datatable-row-reorder-indicator-up,\n.p-datatable-row-reorder-indicator-down {\n position: absolute;\n display: none;\n}\n\n.p-datatable-reorderable-column,\n.p-datatable-reorderable-row-handle {\n cursor: move;\n}\n\n.p-datatable-mask {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 3;\n}\n\n.p-datatable-inline-filter {\n display: flex;\n align-items: center;\n width: 100%;\n gap: ${dt('datatable.filter.inline.gap')};\n}\n\n.p-datatable-inline-filter .p-datatable-filter-element-container {\n flex: 1 1 auto;\n width: 1%;\n}\n\n.p-datatable-filter-overlay {\n position: absolute;\n background: ${dt('datatable.filter.overlay.select.background')};\n color: ${dt('datatable.filter.overlay.select.color')};\n border: 1px solid ${dt('datatable.filter.overlay.select.border.color')};\n border-radius: ${dt('datatable.filter.overlay.select.border.radius')};\n box-shadow: ${dt('datatable.filter.overlay.select.shadow')};\n min-width: 12.5rem;\n}\n\n.p-datatable-filter-constraint-list {\n margin: 0;\n list-style: none;\n display: flex;\n flex-direction: column;\n padding: ${dt('datatable.filter.constraint.list.padding')};\n gap: ${dt('datatable.filter.constraint.list.gap')};\n}\n\n.p-datatable-filter-constraint {\n padding: ${dt('datatable.filter.constraint.padding')};\n color: ${dt('datatable.filter.constraint.color')};\n border-radius: ${dt('datatable.filter.constraint.border.radius')};\n cursor: pointer;\n transition: background ${dt('datatable.transition.duration')}, color ${dt('datatable.transition.duration')}, border-color ${dt('datatable.transition.duration')},\n box-shadow ${dt('datatable.transition.duration')};\n}\n\n.p-datatable-filter-constraint-selected {\n background: ${dt('datatable.filter.constraint.selected.background')};\n color: ${dt('datatable.filter.constraint.selected.color')};\n}\n\n.p-datatable-filter-constraint:not(.p-datatable-filter-constraint-selected):not(.p-disabled):hover {\n background: ${dt('datatable.filter.constraint.focus.background')};\n color: ${dt('datatable.filter.constraint.focus.color')};\n}\n\n.p-datatable-filter-constraint:focus-visible {\n outline: 0 none;\n background: ${dt('datatable.filter.constraint.focus.background')};\n color: ${dt('datatable.filter.constraint.focus.color')};\n}\n\n.p-datatable-filter-constraint-selected:focus-visible {\n outline: 0 none;\n background: ${dt('datatable.filter.constraint.selected.focus.background')};\n color: ${dt('datatable.filter.constraint.selected.focus.color')};\n}\n\n.p-datatable-filter-constraint-separator {\n border-top: 1px solid ${dt('datatable.filter.constraint.separator.border.color')};\n}\n\n.p-datatable-popover-filter {\n display: inline-flex;\n margin-inline-start: auto;\n}\n\n.p-datatable-filter-overlay-popover {\n background: ${dt('datatable.filter.overlay.popover.background')};\n color: ${dt('datatable.filter.overlay.popover.color')};\n border: 1px solid ${dt('datatable.filter.overlay.popover.border.color')};\n border-radius: ${dt('datatable.filter.overlay.popover.border.radius')};\n box-shadow: ${dt('datatable.filter.overlay.popover.shadow')};\n min-width: 12.5rem;\n padding: ${dt('datatable.filter.overlay.popover.padding')};\n display: flex;\n flex-direction: column;\n gap: ${dt('datatable.filter.overlay.popover.gap')};\n}\n\n.p-datatable-filter-operator-dropdown, .p-datatable-filter-constraint-dropdown {\n width: 100%;\n}\n\n.p-datatable-filter-rule-list,\n.p-datatable-filter-rule {\n display: flex;\n flex-direction: column;\n gap: ${dt('datatable.filter.overlay.popover.gap')};\n}\n\n.p-datatable-filter-rule {\n border-bottom: 1px solid ${dt('datatable.filter.rule.border.color')};\n}\n\n.p-datatable-filter-rule:last-child {\n border-bottom: 0 none;\n}\n\n.p-datatable-filter-add-rule-button, .p-datatable-filter-remove-rule-button {\n width: 100%;\n}\n\n.p-datatable-filter-remove-button {\n width: 100%;\n}\n\n.p-datatable-filter-buttonbar {\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.p-datatable-virtualscroller-spacer {\n display: flex;\n}\n\n.p-datatable .p-virtualscroller .p-virtualscroller-loading {\n transform: none !important;\n min-height: 0;\n position: sticky;\n top: 0;\n inset-inline-start: 0;\n}\n\n.p-datatable-paginator-top {\n border-color: ${dt('datatable.paginator.top.border.color')};\n border-style: solid;\n border-width: ${dt('datatable.paginator.top.border.width')};\n}\n\n.p-datatable-paginator-bottom {\n border-color: ${dt('datatable.paginator.bottom.border.color')};\n border-style: solid;\n border-width: ${dt('datatable.paginator.bottom.border.width')};\n}\n\n.p-datatable-header {\n background: ${dt('datatable.header.background')};\n color: ${dt('datatable.header.color')};\n border-color: ${dt('datatable.header.border.color')};\n border-style: solid;\n border-width: ${dt('datatable.header.border.width')};\n padding: ${dt('datatable.header.padding')};\n}\n\n.p-datatable-footer {\n background: ${dt('datatable.footer.background')};\n color: ${dt('datatable.footer.color')};\n border-color: ${dt('datatable.footer.border.color')};\n border-style: solid;\n border-width: ${dt('datatable.footer.border.width')};\n padding: ${dt('datatable.footer.padding')};\n}\n\n.p-datatable-thead > tr > th {\n padding: ${dt('datatable.header.cell.padding')};\n background: ${dt('datatable.header.cell.background')};\n border-color: ${dt('datatable.header.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n color: ${dt('datatable.header.cell.color')};\n font-weight: ${dt('datatable.column.title.font.weight')};\n text-align: start;\n transition: background ${dt('datatable.transition.duration')}, color ${dt('datatable.transition.duration')}, border-color ${dt('datatable.transition.duration')},\n outline-color ${dt('datatable.transition.duration')}, box-shadow ${dt('datatable.transition.duration')};\n}\n\n/** For PrimeNG **/\n.p-datatable-thead > tr > th p-columnfilter {\n font-weight: normal;\n}\n/** For PrimeNG End **/\n\n/*\n.p-datatable-column-title {\n font-weight: ${dt('datatable.column.title.font.weight')};\n}\n*/\n\n.p-datatable-tbody > tr {\n outline-color: transparent;\n background: ${dt('datatable.row.background')};\n color: ${dt('datatable.row.color')};\n transition: background ${dt('datatable.transition.duration')}, color ${dt('datatable.transition.duration')}, border-color ${dt('datatable.transition.duration')},\n outline-color ${dt('datatable.transition.duration')}, box-shadow ${dt('datatable.transition.duration')};\n}\n\n.p-datatable-tbody > tr > td {\n text-align: start;\n border-color: ${dt('datatable.body.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n padding: ${dt('datatable.body.cell.padding')};\n}\n\n.p-datatable-hoverable .p-datatable-tbody > tr:not(.p-datatable-row-selected):hover {\n background: ${dt('datatable.row.hover.background')};\n color: ${dt('datatable.row.hover.color')};\n}\n\n.p-datatable-tbody > tr.p-datatable-row-selected {\n background: ${dt('datatable.row.selected.background')};\n color: ${dt('datatable.row.selected.color')};\n}\n\n.p-datatable-tbody > tr:has(+ .p-datatable-row-selected) > td {\n border-bottom-color: ${dt('datatable.body.cell.selected.border.color')};\n}\n\n.p-datatable-tbody > tr.p-datatable-row-selected > td {\n border-bottom-color: ${dt('datatable.body.cell.selected.border.color')};\n}\n\n.p-datatable-tbody > tr:focus-visible,\n.p-datatable-tbody > tr.p-datatable-contextmenu-row-selected {\n box-shadow: ${dt('datatable.row.focus.ring.shadow')};\n outline: ${dt('datatable.row.focus.ring.width')} ${dt('datatable.row.focus.ring.style')} ${dt('datatable.row.focus.ring.color')};\n outline-offset: ${dt('datatable.row.focus.ring.offset')};\n}\n\n.p-datatable-tfoot > tr > td {\n text-align: start;\n padding: ${dt('datatable.footer.cell.padding')};\n border-color: ${dt('datatable.footer.cell.border.color')};\n border-style: solid;\n border-width: 0 0 1px 0;\n color: ${dt('datatable.footer.cell.color')};\n background: ${dt('datatable.footer.cell.background')};\n}\n\n.p-datatable-column-footer {\n font-weight: ${dt('datatable.column.footer.font.weight')};\n}\n\n.p-datatable-sortable-column {\n cursor: pointer;\n user-select: none;\n outline-color: transparent;\n}\n\n.p-datatable-thead > tr > th,\n.p-datatable-sort-icon,\n.p-datatable-sort-badge {\n vertical-align: middle;\n}\n\n.p-datatable-sort-icon {\n color: ${dt('datatable.sort.icon.color')};\n transition: color ${dt('datatable.transition.duration')};\n}\n\n.p-datatable-sortable-column:not(.p-datatable-column-sorted):hover {\n background: ${dt('datatable.header.cell.hover.background')};\n color: ${dt('datatable.header.cell.hover.color')};\n}\n\n.p-datatable-sortable-column:not(.p-datatable-column-sorted):hover .p-datatable-sort-icon {\n color: ${dt('datatable.sort.icon.hover.color')};\n}\n\n.p-datatable-thead > tr > th.p-datatable-column-sorted {\n background: ${dt('datatable.header.cell.selected.background')};\n color: ${dt('datatable.header.cell.selected.color')};\n}\n\n.p-datatable-thead > tr > th.p-datatable-column-sorted .p-datatable-sort-icon {\n color: ${dt('datatable.header.cell.selected.color')};\n}\n\n.p-datatable-sortable-column:focus-visible {\n box-shadow: ${dt('datatable.header.cell.focus.ring.shadow')};\n outline: ${dt('datatable.header.cell.focus.ring.width')} ${dt('datatable.header.cell.focus.ring.style')} ${dt('datatable.header.cell.focus.ring.color')};\n outline-offset: ${dt('datatable.header.cell.focus.ring.offset')};\n}\n\n.p-datatable-hoverable .p-datatable-selectable-row {\n cursor: pointer;\n}\n\n.p-datatable-tbody > tr.p-datatable-dragpoint-top > td {\n box-shadow: inset 0 2px 0 0 ${dt('datatable.drop.point.color')};\n}\n\n.p-datatable-tbody > tr.p-datatable-dragpoint-bottom > td {\n box-shadow: inset 0 -2px 0 0 ${dt('datatable.drop.point.color')};\n}\n\n.p-datatable-loading-icon {\n font-size: ${dt('datatable.loading.icon.size')};\n width: ${dt('datatable.loading.icon.size')};\n height: ${dt('datatable.loading.icon.size')};\n}\n\n.p-datatable-gridlines .p-datatable-header {\n border-width: 1px 1px 0 1px;\n}\n\n.p-datatable-gridlines .p-datatable-footer {\n border-width: 0 1px 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-paginator-top {\n border-width: 1px 1px 0 1px;\n}\n\n.p-datatable-gridlines .p-datatable-paginator-bottom {\n border-width: 0 1px 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-thead > tr > th {\n border-width: 1px 0 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-thead > tr > th:last-child {\n border-width: 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tbody > tr > td {\n border-width: 1px 0 0 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tbody > tr > td:last-child {\n border-width: 1px 1px 0 1px;\n}\n\np-datatable-gridlines .p-datatable-tbody > tr:last-child > td {\n border-width: 1px 0 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tbody > tr:last-child > td:last-child {\n border-width: 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tfoot > tr > td {\n border-width: 1px 0 1px 1px;\n}\n\n.p-datatable-gridlines .p-datatable-tfoot > tr > td:last-child {\n border-width: 1px 1px 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td {\n border-width: 0 0 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td:last-child {\n border-width: 0 1px 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td {\n border-width: 0 0 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td:last-child {\n border-width: 0 1px 1px 1px;\n}\n\n.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td {\n border-width: 0 0 0 1px;\n}\n\n.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td:last-child {\n border-width: 0 1px 0 1px;\n}\n\n.p-datatable.p-datatable-striped .p-datatable-tbody > tr:nth-child(odd) {\n background: ${dt('datatable.row.striped.background')};\n}\n\n.p-datatable.p-datatable-striped .p-datatable-tbody > tr:nth-child(odd).p-datatable-row-selected {\n background: ${dt('datatable.row.selected.background')};\n color: ${dt('datatable.row.selected.color')};\n}\n\n.p-datatable.p-datatable-sm .p-datatable-header {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-sm .p-datatable-thead > tr > th {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-sm .p-datatable-tbody > tr > td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-sm .p-datatable-tfoot > tr > td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-sm .p-datatable-footer {\n padding: 0.375rem 0.5rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-header {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-thead > tr > th {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-tbody>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-tfoot>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable.p-datatable-lg .p-datatable-footer {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-datatable-row-toggle-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n width: ${dt('datatable.row.toggle.button.size')};\n height: ${dt('datatable.row.toggle.button.size')};\n color: ${dt('datatable.row.toggle.button.color')};\n border: 0 none;\n background: transparent;\n cursor: pointer;\n border-radius: ${dt('datatable.row.toggle.button.border.radius')};\n transition: background ${dt('datatable.transition.duration')}, color ${dt('datatable.transition.duration')}, border-color ${dt('datatable.transition.duration')},\n outline-color ${dt('datatable.transition.duration')}, box-shadow ${dt('datatable.transition.duration')};\n outline-color: transparent;\n user-select: none;\n}\n\n.p-datatable-row-toggle-button:enabled:hover {\n color: ${dt('datatable.row.toggle.button.hover.color')};\n background: ${dt('datatable.row.toggle.button.hover.background')};\n}\n\n.p-datatable-tbody > tr.p-datatable-row-selected .p-datatable-row-toggle-button:hover {\n background: ${dt('datatable.row.toggle.button.selected.hover.background')};\n ${dt('datatable.row.toggle.button.selected.hover.color')};\n}\n\n.p-datatable-row-toggle-button:focus-visible {\n box-shadow: ${dt('datatable.row.toggle.button.focus.ring.shadow')};\n outline: ${dt('datatable.row.toggle.button.focus.ring.width')} ${dt('datatable.row.toggle.button.focus.ring.style')} ${dt('datatable.row.toggle.button.focus.ring.color')};\n outline-offset: ${dt('datatable.row.toggle.button.focus.ring.offset')};\n}\n`;\nconst classes = {\n root: ({ instance }) => ({\n 'p-datatable p-component': true,\n 'p-datatable-hoverable': instance.rowHover || instance.selectionMode,\n 'p-datatable-resizable': instance.resizableColumns,\n 'p-datatable-resizable-fit': instance.resizableColumns && instance.columnResizeMode === 'fit',\n 'p-datatable-scrollable': instance.scrollable,\n 'p-datatable-flex-scrollable': instance.scrollable && instance.scrollHeight === 'flex',\n 'p-datatable-striped': instance.stripedRows,\n 'p-datatable-gridlines': instance.showGridlines,\n 'p-datatable-sm': instance.size === 'small',\n 'p-datatable-lg': instance.size === 'large'\n }),\n mask: 'p-datatable-mask p-overlay-mask',\n loadingIcon: 'p-datatable-loading-icon',\n header: 'p-datatable-header',\n pcPaginator: ({ instance }) => 'p-datatable-paginator-' + instance.paginatorPosition,\n tableContainer: 'p-datatable-table-container',\n table: ({ instance }) => ({\n 'p-datatable-table': true,\n 'p-datatable-scrollable-table': instance.scrollable,\n 'p-datatable-resizable-table': instance.resizableColumns,\n 'p-datatable-resizable-table-fit': instance.resizableColumns && instance.columnResizeMode === 'fit'\n }),\n thead: 'p-datatable-thead',\n columnResizer: 'p-datatable-column-resizer',\n columnHeaderContent: 'p-datatable-column-header-content',\n columnTitle: 'p-datatable-column-title',\n columnFooter: 'p-datatable-column-footer',\n sortIcon: 'p-datatable-sort-icon',\n pcSortBadge: 'p-datatable-sort-badge',\n filter: ({ instance }) => ({\n 'p-datatable-filter': true,\n 'p-datatable-inline-filter': instance.display === 'row',\n 'p-datatable-popover-filter': instance.display === 'menu'\n }),\n filterElementContainer: 'p-datatable-filter-element-container',\n pcColumnFilterButton: 'p-datatable-column-filter-button',\n pcColumnFilterClearButton: 'p-datatable-column-filter-clear-button',\n filterOverlay: ({ instance }) => ({\n 'p-datatable-filter-overlay p-component': true,\n 'p-datatable-filter-overlay-popover': instance.display === 'menu'\n }),\n filterConstraintList: 'p-datatable-filter-constraint-list',\n filterConstraint: 'p-datatable-filter-constraint',\n filterConstraintSeparator: 'p-datatable-filter-constraint-separator',\n filterOperator: 'p-datatable-filter-operator',\n pcFilterOperatorDropdown: 'p-datatable-filter-operator-dropdown',\n filterRuleList: 'p-datatable-filter-rule-list',\n filterRule: 'p-datatable-filter-rule',\n pcFilterConstraintDropdown: 'p-datatable-filter-constraint-dropdown',\n pcFilterRemoveRuleButton: 'p-datatable-filter-remove-rule-button',\n pcFilterAddRuleButton: 'p-datatable-filter-add-rule-button',\n filterButtonbar: 'p-datatable-filter-buttonbar',\n pcFilterClearButton: 'p-datatable-filter-clear-button',\n pcFilterApplyButton: 'p-datatable-filter-apply-button',\n tbody: ({ instance }) => ({\n 'p-datatable-tbody': true,\n 'p-datatable-frozen-tbody': instance.frozenValue || instance.frozenBodyTemplate,\n 'p-virtualscroller-content': instance.virtualScroll\n }),\n rowGroupHeader: 'p-datatable-row-group-header',\n rowToggleButton: 'p-datatable-row-toggle-button',\n rowToggleIcon: 'p-datatable-row-toggle-icon',\n rowExpansion: 'p-datatable-row-expansion',\n rowGroupFooter: 'p-datatable-row-group-footer',\n emptyMessage: 'p-datatable-empty-message',\n bodyCell: ({ instance }) => ({\n 'p-datatable-frozen-column': instance.columnProp('frozen')\n }),\n reorderableRowHandle: 'p-datatable-reorderable-row-handle',\n pcRowEditorInit: 'p-datatable-row-editor-init',\n pcRowEditorSave: 'p-datatable-row-editor-save',\n pcRowEditorCancel: 'p-datatable-row-editor-cancel',\n tfoot: 'p-datatable-tfoot',\n footerCell: ({ instance }) => ({\n 'p-datatable-frozen-column': instance.columnProp('frozen')\n }),\n virtualScrollerSpacer: 'p-datatable-virtualscroller-spacer',\n footer: 'p-datatable-tfoot',\n columnResizeIndicator: 'p-datatable-column-resize-indicator',\n rowReorderIndicatorUp: 'p-datatable-row-reorder-indicator-up',\n rowReorderIndicatorDown: 'p-datatable-row-reorder-indicator-down'\n};\nconst inlineStyles = {\n tableContainer: ({ instance }) => ({\n 'max-height': instance.virtualScroll ? '' : instance.scrollHeight,\n overflow: 'auto'\n }),\n thead: { position: 'sticky' },\n tfoot: { position: 'sticky' }\n};\nclass TableStyle extends BaseStyle {\n name = 'datatable';\n theme = theme;\n classes = classes;\n inlineStyles = inlineStyles;\n static ɵfac = /*@__PURE__*/ (() => { let ɵTableStyle_BaseFactory; return function TableStyle_Factory(__ngFactoryType__) { return (ɵTableStyle_BaseFactory || (ɵTableStyle_BaseFactory = i0.ɵɵgetInheritedFactory(TableStyle)))(__ngFactoryType__ || TableStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TableStyle, factory: TableStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * DataTable displays data in tabular format.\n *\n * [Live Demo](https://www.primeng.org/table/)\n *\n * @module tablestyle\n *\n */\nvar TableClasses;\n(function (TableClasses) {\n /**\n * Class name of the root element\n */\n TableClasses[\"root\"] = \"p-datatable\";\n /**\n * Class name of the mask element\n */\n TableClasses[\"mask\"] = \"p-datatable-mask\";\n /**\n * Class name of the loading icon element\n */\n TableClasses[\"loadingIcon\"] = \"p-datatable-loading-icon\";\n /**\n * Class name of the header element\n */\n TableClasses[\"header\"] = \"p-datatable-header\";\n /**\n * Class name of the paginator element\n */\n TableClasses[\"pcPaginator\"] = \"p-datatable-paginator-[position]\";\n /**\n * Class name of the table container element\n */\n TableClasses[\"tableContainer\"] = \"p-datatable-table-container\";\n /**\n * Class name of the table element\n */\n TableClasses[\"table\"] = \"p-datatable-table\";\n /**\n * Class name of the thead element\n */\n TableClasses[\"thead\"] = \"p-datatable-thead\";\n /**\n * Class name of the column resizer element\n */\n TableClasses[\"columnResizer\"] = \"p-datatable-column-resizer\";\n /**\n * Class name of the column header content element\n */\n TableClasses[\"columnHeaderContent\"] = \"p-datatable-column-header-content\";\n /**\n * Class name of the column title element\n */\n TableClasses[\"columnTitle\"] = \"p-datatable-column-title\";\n /**\n * Class name of the sort icon element\n */\n TableClasses[\"sortIcon\"] = \"p-datatable-sort-icon\";\n /**\n * Class name of the sort badge element\n */\n TableClasses[\"pcSortBadge\"] = \"p-datatable-sort-badge\";\n /**\n * Class name of the filter element\n */\n TableClasses[\"filter\"] = \"p-datatable-filter\";\n /**\n * Class name of the filter element container element\n */\n TableClasses[\"filterElementContainer\"] = \"p-datatable-filter-element-container\";\n /**\n * Class name of the column filter button element\n */\n TableClasses[\"pcColumnFilterButton\"] = \"p-datatable-column-filter-button\";\n /**\n * Class name of the column filter clear button element\n */\n TableClasses[\"pcColumnFilterClearButton\"] = \"p-datatable-column-filter-clear-button\";\n /**\n * Class name of the filter overlay element\n */\n TableClasses[\"filterOverlay\"] = \"p-datatable-filter-overlay\";\n /**\n * Class name of the filter constraint list element\n */\n TableClasses[\"filterConstraintList\"] = \"p-datatable-filter-constraint-list\";\n /**\n * Class name of the filter constraint element\n */\n TableClasses[\"filterConstraint\"] = \"p-datatable-filter-constraint\";\n /**\n * Class name of the filter constraint separator element\n */\n TableClasses[\"filterConstraintSeparator\"] = \"p-datatable-filter-constraint-separator\";\n /**\n * Class name of the filter operator element\n */\n TableClasses[\"filterOperator\"] = \"p-datatable-filter-operator\";\n /**\n * Class name of the filter operator dropdown element\n */\n TableClasses[\"pcFilterOperatorDropdown\"] = \"p-datatable-filter-operator-dropdown\";\n /**\n * Class name of the filter rule list element\n */\n TableClasses[\"filterRuleList\"] = \"p-datatable-filter-rule-list\";\n /**\n * Class name of the filter rule element\n */\n TableClasses[\"filterRule\"] = \"p-datatable-filter-rule\";\n /**\n * Class name of the filter constraint dropdown element\n */\n TableClasses[\"pcFilterConstraintDropdown\"] = \"p-datatable-filter-constraint-dropdown\";\n /**\n * Class name of the filter remove rule button element\n */\n TableClasses[\"pcFilterRemoveRuleButton\"] = \"p-datatable-filter-remove-rule-button\";\n /**\n * Class name of the filter add rule button element\n */\n TableClasses[\"pcFilterAddRuleButton\"] = \"p-datatable-filter-add-rule-button\";\n /**\n * Class name of the filter buttonbar element\n */\n TableClasses[\"filterButtonbar\"] = \"p-datatable-filter-buttonbar\";\n /**\n * Class name of the filter clear button element\n */\n TableClasses[\"pcFilterClearButton\"] = \"p-datatable-filter-clear-button\";\n /**\n * Class name of the filter apply button element\n */\n TableClasses[\"pcFilterApplyButton\"] = \"p-datatable-filter-apply-button\";\n /**\n * Class name of the tbody element\n */\n TableClasses[\"tbody\"] = \"p-datatable-tbody\";\n /**\n * Class name of the row group header element\n */\n TableClasses[\"rowGroupHeader\"] = \"p-datatable-row-group-header\";\n /**\n * Class name of the row toggle button element\n */\n TableClasses[\"rowToggleButton\"] = \"p-datatable-row-toggle-button\";\n /**\n * Class name of the row toggle icon element\n */\n TableClasses[\"rowToggleIcon\"] = \"p-datatable-row-toggle-icon\";\n /**\n * Class name of the row expansion element\n */\n TableClasses[\"rowExpansion\"] = \"p-datatable-row-expansion\";\n /**\n * Class name of the row group footer element\n */\n TableClasses[\"rowGroupFooter\"] = \"p-datatable-row-group-footer\";\n /**\n * Class name of the empty message element\n */\n TableClasses[\"emptyMessage\"] = \"p-datatable-empty-message\";\n /**\n * Class name of the reorderable row handle element\n */\n TableClasses[\"reorderableRowHandle\"] = \"p-datatable-reorderable-row-handle\";\n /**\n * Class name of the row editor init element\n */\n TableClasses[\"pcRowEditorInit\"] = \"p-datatable-row-editor-init\";\n /**\n * Class name of the row editor save element\n */\n TableClasses[\"pcRowEditorSave\"] = \"p-datatable-row-editor-save\";\n /**\n * Class name of the row editor cancel element\n */\n TableClasses[\"pcRowEditorCancel\"] = \"p-datatable-row-editor-cancel\";\n /**\n * Class name of the tfoot element\n */\n TableClasses[\"tfoot\"] = \"p-datatable-tfoot\";\n /**\n * Class name of the virtual scroller spacer element\n */\n TableClasses[\"virtualScrollerSpacer\"] = \"p-datatable-virtualscroller-spacer\";\n /**\n * Class name of the footer element\n */\n TableClasses[\"footer\"] = \"p-datatable-footer\";\n /**\n * Class name of the column resize indicator element\n */\n TableClasses[\"columnResizeIndicator\"] = \"p-datatable-column-resize-indicator\";\n /**\n * Class name of the row reorder indicator up element\n */\n TableClasses[\"rowReorderIndicatorUp\"] = \"p-datatable-row-reorder-indicator-up\";\n /**\n * Class name of the row reorder indicator down element\n */\n TableClasses[\"rowReorderIndicatorDown\"] = \"p-datatable-row-reorder-indicator-down\";\n})(TableClasses || (TableClasses = {}));\n\nconst _c0 = [\"header\"];\nconst _c1 = [\"headergrouped\"];\nconst _c2 = [\"body\"];\nconst _c3 = [\"loadingbody\"];\nconst _c4 = [\"caption\"];\nconst _c5 = [\"footer\"];\nconst _c6 = [\"footergrouped\"];\nconst _c7 = [\"summary\"];\nconst _c8 = [\"colgroup\"];\nconst _c9 = [\"expandedrow\"];\nconst _c10 = [\"groupheader\"];\nconst _c11 = [\"groupfooter\"];\nconst _c12 = [\"frozenexpandedrow\"];\nconst _c13 = [\"frozenheader\"];\nconst _c14 = [\"frozenbody\"];\nconst _c15 = [\"frozenfooter\"];\nconst _c16 = [\"frozencolgroup\"];\nconst _c17 = [\"emptymessage\"];\nconst _c18 = [\"paginatorleft\"];\nconst _c19 = [\"paginatorright\"];\nconst _c20 = [\"paginatordropdownitem\"];\nconst _c21 = [\"loadingicon\"];\nconst _c22 = [\"reorderindicatorupicon\"];\nconst _c23 = [\"reorderindicatordownicon\"];\nconst _c24 = [\"sorticon\"];\nconst _c25 = [\"checkboxicon\"];\nconst _c26 = [\"headercheckboxicon\"];\nconst _c27 = [\"paginatordropdownicon\"];\nconst _c28 = [\"paginatorfirstpagelinkicon\"];\nconst _c29 = [\"paginatorlastpagelinkicon\"];\nconst _c30 = [\"paginatorpreviouspagelinkicon\"];\nconst _c31 = [\"paginatornextpagelinkicon\"];\nconst _c32 = [\"container\"];\nconst _c33 = [\"resizeHelper\"];\nconst _c34 = [\"reorderIndicatorUp\"];\nconst _c35 = [\"reorderIndicatorDown\"];\nconst _c36 = [\"wrapper\"];\nconst _c37 = [\"table\"];\nconst _c38 = [\"thead\"];\nconst _c39 = [\"tfoot\"];\nconst _c40 = [\"scroller\"];\nconst _c41 = a0 => ({ height: a0 });\nconst _c42 = (a0, a1) => ({ $implicit: a0, options: a1 });\nconst _c43 = a0 => ({ columns: a0 });\nconst _c44 = a0 => ({ $implicit: a0 });\nfunction Table_div_2_i_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"i\");\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵclassMap(\"p-datatable-loading-icon \" + ctx_r0.loadingIcon);\n} }\nfunction Table_div_2_ng_container_2_SpinnerIcon_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"SpinnerIcon\", 22);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"spin\", true)(\"styleClass\", ctx_r0.cx(\"loadingIcon\"));\n} }\nfunction Table_div_2_ng_container_2_span_2_1_ng_template_0_Template(rf, ctx) { }\nfunction Table_div_2_ng_container_2_span_2_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_div_2_ng_container_2_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Table_div_2_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 19);\n i0.ɵɵtemplate(1, Table_div_2_ng_container_2_span_2_1_Template, 1, 0, null, 23);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"loadingIcon\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.loadingIconTemplate || ctx_r0._loadingIconTemplate);\n} }\nfunction Table_div_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Table_div_2_ng_container_2_SpinnerIcon_1_Template, 1, 2, \"SpinnerIcon\", 21)(2, Table_div_2_ng_container_2_span_2_Template, 2, 2, \"span\", 12);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.loadingIconTemplate && !ctx_r0._loadingIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.loadingIconTemplate || ctx_r0._loadingIconTemplate);\n} }\nfunction Table_div_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19);\n i0.ɵɵtemplate(1, Table_div_2_i_1_Template, 1, 2, \"i\", 20)(2, Table_div_2_ng_container_2_Template, 3, 2, \"ng-container\", 16);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"mask\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.loadingIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.loadingIcon);\n} }\nfunction Table_div_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_div_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19);\n i0.ɵɵtemplate(1, Table_div_3_ng_container_1_Template, 1, 0, \"ng-container\", 23);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"header\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.captionTemplate || ctx_r0._captionTemplate);\n} }\nfunction Table_p_paginator_4_1_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_p_paginator_4_1_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_4_1_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 23);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.paginatorDropdownIconTemplate || ctx_r0._paginatorDropdownIconTemplate);\n} }\nfunction Table_p_paginator_4_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_4_1_ng_template_0_Template, 1, 1, \"ng-template\", 25);\n} }\nfunction Table_p_paginator_4_2_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_p_paginator_4_2_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_4_2_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 23);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.paginatorFirstPageLinkIconTemplate || ctx_r0._paginatorFirstPageLinkIconTemplate);\n} }\nfunction Table_p_paginator_4_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_4_2_ng_template_0_Template, 1, 1, \"ng-template\", 26);\n} }\nfunction Table_p_paginator_4_3_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_p_paginator_4_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_4_3_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 23);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.paginatorPreviousPageLinkIconTemplate || ctx_r0._paginatorPreviousPageLinkIconTemplate);\n} }\nfunction Table_p_paginator_4_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_4_3_ng_template_0_Template, 1, 1, \"ng-template\", 27);\n} }\nfunction Table_p_paginator_4_4_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_p_paginator_4_4_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_4_4_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 23);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.paginatorLastPageLinkIconTemplate || ctx_r0._paginatorLastPageLinkIconTemplate);\n} }\nfunction Table_p_paginator_4_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_4_4_ng_template_0_Template, 1, 1, \"ng-template\", 28);\n} }\nfunction Table_p_paginator_4_5_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_p_paginator_4_5_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_4_5_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 23);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.paginatorNextPageLinkIconTemplate || ctx_r0._paginatorNextPageLinkIconTemplate);\n} }\nfunction Table_p_paginator_4_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_4_5_ng_template_0_Template, 1, 1, \"ng-template\", 29);\n} }\nfunction Table_p_paginator_4_Template(rf, ctx) { if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-paginator\", 24);\n i0.ɵɵlistener(\"onPageChange\", function Table_p_paginator_4_Template_p_paginator_onPageChange_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onPageChange($event)); });\n i0.ɵɵtemplate(1, Table_p_paginator_4_1_Template, 1, 0, null, 16)(2, Table_p_paginator_4_2_Template, 1, 0, null, 16)(3, Table_p_paginator_4_3_Template, 1, 0, null, 16)(4, Table_p_paginator_4_4_Template, 1, 0, null, 16)(5, Table_p_paginator_4_5_Template, 1, 0, null, 16);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"rows\", ctx_r0.rows)(\"first\", ctx_r0.first)(\"totalRecords\", ctx_r0.totalRecords)(\"pageLinkSize\", ctx_r0.pageLinks)(\"alwaysShow\", ctx_r0.alwaysShowPaginator)(\"rowsPerPageOptions\", ctx_r0.rowsPerPageOptions)(\"templateLeft\", ctx_r0.paginatorLeftTemplate)(\"templateRight\", ctx_r0.paginatorRightTemplate)(\"dropdownAppendTo\", ctx_r0.paginatorDropdownAppendTo)(\"dropdownScrollHeight\", ctx_r0.paginatorDropdownScrollHeight)(\"currentPageReportTemplate\", ctx_r0.currentPageReportTemplate)(\"showFirstLastIcon\", ctx_r0.showFirstLastIcon)(\"dropdownItemTemplate\", ctx_r0.paginatorDropdownItemTemplate || ctx_r0._paginatorDropdownItemTemplate)(\"showCurrentPageReport\", ctx_r0.showCurrentPageReport)(\"showJumpToPageDropdown\", ctx_r0.showJumpToPageDropdown)(\"showJumpToPageInput\", ctx_r0.showJumpToPageInput)(\"showPageLinks\", ctx_r0.showPageLinks)(\"styleClass\", ctx_r0.cx(\"pcPaginator\") + \" \" + ctx_r0.paginatorStyleClass && ctx_r0.paginatorStyleClass)(\"locale\", ctx_r0.paginatorLocale);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.paginatorDropdownIconTemplate || ctx_r0._paginatorDropdownIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.paginatorFirstPageLinkIconTemplate || ctx_r0._paginatorFirstPageLinkIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.paginatorPreviousPageLinkIconTemplate || ctx_r0._paginatorPreviousPageLinkIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.paginatorLastPageLinkIconTemplate || ctx_r0._paginatorLastPageLinkIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.paginatorNextPageLinkIconTemplate || ctx_r0._paginatorNextPageLinkIconTemplate);\n} }\nfunction Table_p_scroller_7_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_p_scroller_7_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_scroller_7_ng_template_2_ng_container_0_Template, 1, 0, \"ng-container\", 31);\n} if (rf & 2) {\n const items_r4 = ctx.$implicit;\n const scrollerOptions_r5 = ctx.options;\n i0.ɵɵnextContext(2);\n const buildInTable_r6 = i0.ɵɵreference(10);\n i0.ɵɵproperty(\"ngTemplateOutlet\", buildInTable_r6)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c42, items_r4, scrollerOptions_r5));\n} }\nfunction Table_p_scroller_7_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-scroller\", 30, 3);\n i0.ɵɵlistener(\"onLazyLoad\", function Table_p_scroller_7_Template_p_scroller_onLazyLoad_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onLazyItemLoad($event)); });\n i0.ɵɵtemplate(2, Table_p_scroller_7_ng_template_2_Template, 1, 5, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleMap(i0.ɵɵpureFunction1(15, _c41, ctx_r0.scrollHeight !== \"flex\" ? ctx_r0.scrollHeight : undefined));\n i0.ɵɵproperty(\"items\", ctx_r0.processedData)(\"columns\", ctx_r0.columns)(\"scrollHeight\", ctx_r0.scrollHeight !== \"flex\" ? undefined : \"100%\")(\"itemSize\", ctx_r0.virtualScrollItemSize || ctx_r0._virtualRowHeight)(\"step\", ctx_r0.rows)(\"delay\", ctx_r0.lazy ? ctx_r0.virtualScrollDelay : 0)(\"inline\", true)(\"lazy\", ctx_r0.lazy)(\"loaderDisabled\", true)(\"showSpacer\", false)(\"showLoader\", ctx_r0.loadingBodyTemplate || ctx_r0._loadingBodyTemplate)(\"options\", ctx_r0.virtualScrollOptions)(\"autoSize\", true);\n} }\nfunction Table_ng_container_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_ng_container_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Table_ng_container_8_ng_container_1_Template, 1, 0, \"ng-container\", 31);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const buildInTable_r6 = i0.ɵɵreference(10);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", buildInTable_r6)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(4, _c42, ctx_r0.processedData, i0.ɵɵpureFunction1(2, _c43, ctx_r0.columns)));\n} }\nfunction Table_ng_template_9_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_ng_template_9_ng_container_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_ng_template_9_tbody_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"tbody\", 38);\n} if (rf & 2) {\n const scrollerOptions_r7 = i0.ɵɵnextContext().options;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"tbody\"))(\"value\", ctx_r0.frozenValue)(\"frozenRows\", true)(\"pTableBody\", scrollerOptions_r7.columns)(\"pTableBodyTemplate\", ctx_r0.frozenBodyTemplate || ctx_r0._frozenBodyTemplate)(\"frozen\", true);\n} }\nfunction Table_ng_template_9_tbody_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"tbody\", 39);\n} if (rf & 2) {\n const scrollerOptions_r7 = i0.ɵɵnextContext().options;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleMap(\"height: calc(\" + scrollerOptions_r7.spacerStyle.height + \" - \" + scrollerOptions_r7.rows.length * scrollerOptions_r7.itemSize + \"px);\");\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"virtualScrollerSpacer\"));\n} }\nfunction Table_ng_template_9_tfoot_9_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_ng_template_9_tfoot_9_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"tfoot\", 39, 7);\n i0.ɵɵtemplate(2, Table_ng_template_9_tfoot_9_ng_container_2_Template, 1, 0, \"ng-container\", 31);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const scrollerOptions_r7 = i0.ɵɵnextContext().options;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"footer\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.footerGroupedTemplate || ctx_r0.footerTemplate || ctx_r0._footerTemplate || ctx_r0._footerGroupedTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(3, _c44, scrollerOptions_r7.columns));\n} }\nfunction Table_ng_template_9_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"table\", 32, 5);\n i0.ɵɵtemplate(2, Table_ng_template_9_ng_container_2_Template, 1, 0, \"ng-container\", 31);\n i0.ɵɵelementStart(3, \"thead\", 33, 6);\n i0.ɵɵtemplate(5, Table_ng_template_9_ng_container_5_Template, 1, 0, \"ng-container\", 31);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, Table_ng_template_9_tbody_6_Template, 1, 6, \"tbody\", 34);\n i0.ɵɵelement(7, \"tbody\", 35);\n i0.ɵɵtemplate(8, Table_ng_template_9_tbody_8_Template, 1, 3, \"tbody\", 36)(9, Table_ng_template_9_tfoot_9_Template, 3, 5, \"tfoot\", 37);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const scrollerOptions_r7 = ctx.options;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleMap(ctx_r0.tableStyle);\n i0.ɵɵclassMap(ctx_r0.tableStyleClass);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"table\"));\n i0.ɵɵattribute(\"id\", ctx_r0.id + \"-table\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.colGroupTemplate || ctx_r0._colGroupTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(22, _c44, scrollerOptions_r7.columns));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"thead\"))(\"ngStyle\", ctx_r0.sx(\"thead\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.headerGroupedTemplate || ctx_r0.headerTemplate || ctx_r0._headerTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(24, _c44, scrollerOptions_r7.columns));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.frozenValue || ctx_r0.frozenBodyTemplate || ctx_r0._frozenBodyTemplate);\n i0.ɵɵadvance();\n i0.ɵɵstyleMap(scrollerOptions_r7.contentStyle);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"tbody\", scrollerOptions_r7.contentStyleClass))(\"value\", ctx_r0.dataToRender(scrollerOptions_r7.rows))(\"pTableBody\", scrollerOptions_r7.columns)(\"pTableBodyTemplate\", ctx_r0.bodyTemplate || ctx_r0._bodyTemplate)(\"scrollerOptions\", scrollerOptions_r7);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", scrollerOptions_r7.spacerStyle);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.footerGroupedTemplate || ctx_r0.footerTemplate || ctx_r0._footerTemplate || ctx_r0._footerGroupedTemplate);\n} }\nfunction Table_p_paginator_11_1_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_p_paginator_11_1_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_11_1_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 23);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.paginatorDropdownIconTemplate || ctx_r0._paginatorDropdownIconTemplate);\n} }\nfunction Table_p_paginator_11_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_11_1_ng_template_0_Template, 1, 1, \"ng-template\", 25);\n} }\nfunction Table_p_paginator_11_2_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_p_paginator_11_2_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_11_2_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 23);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.paginatorFirstPageLinkIconTemplate || ctx_r0._paginatorFirstPageLinkIconTemplate);\n} }\nfunction Table_p_paginator_11_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_11_2_ng_template_0_Template, 1, 1, \"ng-template\", 26);\n} }\nfunction Table_p_paginator_11_3_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_p_paginator_11_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_11_3_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 23);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.paginatorPreviousPageLinkIconTemplate || ctx_r0._paginatorPreviousPageLinkIconTemplate);\n} }\nfunction Table_p_paginator_11_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_11_3_ng_template_0_Template, 1, 1, \"ng-template\", 27);\n} }\nfunction Table_p_paginator_11_4_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_p_paginator_11_4_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_11_4_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 23);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.paginatorLastPageLinkIconTemplate || ctx_r0._paginatorLastPageLinkIconTemplate);\n} }\nfunction Table_p_paginator_11_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_11_4_ng_template_0_Template, 1, 1, \"ng-template\", 28);\n} }\nfunction Table_p_paginator_11_5_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_p_paginator_11_5_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_11_5_ng_template_0_ng_container_0_Template, 1, 0, \"ng-container\", 23);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.paginatorNextPageLinkIconTemplate || ctx_r0._paginatorNextPageLinkIconTemplate);\n} }\nfunction Table_p_paginator_11_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_p_paginator_11_5_ng_template_0_Template, 1, 1, \"ng-template\", 29);\n} }\nfunction Table_p_paginator_11_Template(rf, ctx) { if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-paginator\", 24);\n i0.ɵɵlistener(\"onPageChange\", function Table_p_paginator_11_Template_p_paginator_onPageChange_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onPageChange($event)); });\n i0.ɵɵtemplate(1, Table_p_paginator_11_1_Template, 1, 0, null, 16)(2, Table_p_paginator_11_2_Template, 1, 0, null, 16)(3, Table_p_paginator_11_3_Template, 1, 0, null, 16)(4, Table_p_paginator_11_4_Template, 1, 0, null, 16)(5, Table_p_paginator_11_5_Template, 1, 0, null, 16);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"rows\", ctx_r0.rows)(\"first\", ctx_r0.first)(\"totalRecords\", ctx_r0.totalRecords)(\"pageLinkSize\", ctx_r0.pageLinks)(\"alwaysShow\", ctx_r0.alwaysShowPaginator)(\"rowsPerPageOptions\", ctx_r0.rowsPerPageOptions)(\"templateLeft\", ctx_r0.paginatorLeftTemplate || ctx_r0._paginatorLeftTemplate)(\"templateRight\", ctx_r0.paginatorRightTemplate || ctx_r0._paginatorRightTemplate)(\"dropdownAppendTo\", ctx_r0.paginatorDropdownAppendTo)(\"dropdownScrollHeight\", ctx_r0.paginatorDropdownScrollHeight)(\"currentPageReportTemplate\", ctx_r0.currentPageReportTemplate)(\"showFirstLastIcon\", ctx_r0.showFirstLastIcon)(\"dropdownItemTemplate\", ctx_r0.paginatorDropdownItemTemplate || ctx_r0._paginatorDropdownItemTemplate)(\"showCurrentPageReport\", ctx_r0.showCurrentPageReport)(\"showJumpToPageDropdown\", ctx_r0.showJumpToPageDropdown)(\"showJumpToPageInput\", ctx_r0.showJumpToPageInput)(\"showPageLinks\", ctx_r0.showPageLinks)(\"styleClass\", ctx_r0.cx(\"pcPaginator\") + \" \" + ctx_r0.paginatorStyleClass && ctx_r0.paginatorStyleClass)(\"locale\", ctx_r0.paginatorLocale);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.paginatorDropdownIconTemplate || ctx_r0._paginatorDropdownIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.paginatorFirstPageLinkIconTemplate || ctx_r0._paginatorFirstPageLinkIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.paginatorPreviousPageLinkIconTemplate || ctx_r0._paginatorPreviousPageLinkIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.paginatorLastPageLinkIconTemplate || ctx_r0._paginatorLastPageLinkIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.paginatorNextPageLinkIconTemplate || ctx_r0._paginatorNextPageLinkIconTemplate);\n} }\nfunction Table_div_12_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Table_div_12_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19);\n i0.ɵɵtemplate(1, Table_div_12_ng_container_1_Template, 1, 0, \"ng-container\", 23);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"footer\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.summaryTemplate || ctx_r0._summaryTemplate);\n} }\nfunction Table_div_13_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 40, 8);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"columnResizeIndicator\"));\n} }\nfunction Table_span_14_ArrowDownIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ArrowDownIcon\");\n} }\nfunction Table_span_14_3_ng_template_0_Template(rf, ctx) { }\nfunction Table_span_14_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_span_14_3_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Table_span_14_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 40, 9);\n i0.ɵɵtemplate(2, Table_span_14_ArrowDownIcon_2_Template, 1, 0, \"ArrowDownIcon\", 16)(3, Table_span_14_3_Template, 1, 0, null, 23);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"rowReorderIndicatorUp\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.reorderIndicatorUpIconTemplate && !ctx_r0._reorderIndicatorUpIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.reorderIndicatorUpIconTemplate || ctx_r0._reorderIndicatorUpIconTemplate);\n} }\nfunction Table_span_15_ArrowUpIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ArrowUpIcon\");\n} }\nfunction Table_span_15_3_ng_template_0_Template(rf, ctx) { }\nfunction Table_span_15_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Table_span_15_3_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Table_span_15_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 40, 10);\n i0.ɵɵtemplate(2, Table_span_15_ArrowUpIcon_2_Template, 1, 0, \"ArrowUpIcon\", 16)(3, Table_span_15_3_Template, 1, 0, null, 23);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"rowReorderIndicatorDown\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.reorderIndicatorDownIconTemplate && !ctx_r0._reorderIndicatorDownIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.reorderIndicatorDownIconTemplate || ctx_r0._reorderIndicatorDownIconTemplate);\n} }\nconst _c45 = [\"pTableBody\", \"\"];\nconst _c46 = (a0, a1, a2, a3, a4) => ({ $implicit: a0, rowIndex: a1, columns: a2, editing: a3, frozen: a4 });\nconst _c47 = (a0, a1, a2, a3, a4, a5, a6) => ({ $implicit: a0, rowIndex: a1, columns: a2, editing: a3, frozen: a4, rowgroup: a5, rowspan: a6 });\nconst _c48 = (a0, a1, a2, a3, a4, a5) => ({ $implicit: a0, rowIndex: a1, columns: a2, expanded: a3, editing: a4, frozen: a5 });\nconst _c49 = (a0, a1, a2, a3) => ({ $implicit: a0, rowIndex: a1, columns: a2, frozen: a3 });\nconst _c50 = (a0, a1) => ({ $implicit: a0, frozen: a1 });\nfunction TableBody_ng_container_0_ng_template_1_ng_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TableBody_ng_container_0_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 3);\n i0.ɵɵtemplate(1, TableBody_ng_container_0_ng_template_1_ng_container_0_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const rowData_r2 = ctx_r0.$implicit;\n const rowIndex_r3 = ctx_r0.index;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.dt.groupHeaderTemplate || ctx_r3.dt._groupHeaderTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction5(2, _c46, rowData_r2, ctx_r3.getRowIndex(rowIndex_r3), ctx_r3.columns, ctx_r3.dt.editMode === \"row\" && ctx_r3.dt.isRowEditing(rowData_r2), ctx_r3.frozen));\n} }\nfunction TableBody_ng_container_0_ng_template_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TableBody_ng_container_0_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_0_ng_template_1_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const rowData_r2 = ctx_r0.$implicit;\n const rowIndex_r3 = ctx_r0.index;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", rowData_r2 ? ctx_r3.template : ctx_r3.dt.loadingBodyTemplate || ctx_r3.dt._loadingBodyTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction5(2, _c46, rowData_r2, ctx_r3.getRowIndex(rowIndex_r3), ctx_r3.columns, ctx_r3.dt.editMode === \"row\" && ctx_r3.dt.isRowEditing(rowData_r2), ctx_r3.frozen));\n} }\nfunction TableBody_ng_container_0_ng_template_1_ng_container_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TableBody_ng_container_0_ng_template_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_0_ng_template_1_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const rowData_r2 = ctx_r0.$implicit;\n const rowIndex_r3 = ctx_r0.index;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", rowData_r2 ? ctx_r3.template : ctx_r3.dt.loadingBodyTemplate || ctx_r3.dt._loadingBodyTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction7(2, _c47, rowData_r2, ctx_r3.getRowIndex(rowIndex_r3), ctx_r3.columns, ctx_r3.dt.editMode === \"row\" && ctx_r3.dt.isRowEditing(rowData_r2), ctx_r3.frozen, ctx_r3.shouldRenderRowspan(ctx_r3.value, rowData_r2, rowIndex_r3), ctx_r3.calculateRowGroupSize(ctx_r3.value, rowData_r2, rowIndex_r3)));\n} }\nfunction TableBody_ng_container_0_ng_template_1_ng_container_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TableBody_ng_container_0_ng_template_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 3);\n i0.ɵɵtemplate(1, TableBody_ng_container_0_ng_template_1_ng_container_3_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const rowData_r2 = ctx_r0.$implicit;\n const rowIndex_r3 = ctx_r0.index;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.dt.groupFooterTemplate || ctx_r3.dt._groupFooterTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction5(2, _c46, rowData_r2, ctx_r3.getRowIndex(rowIndex_r3), ctx_r3.columns, ctx_r3.dt.editMode === \"row\" && ctx_r3.dt.isRowEditing(rowData_r2), ctx_r3.frozen));\n} }\nfunction TableBody_ng_container_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, TableBody_ng_container_0_ng_template_1_ng_container_0_Template, 2, 8, \"ng-container\", 2)(1, TableBody_ng_container_0_ng_template_1_ng_container_1_Template, 2, 8, \"ng-container\", 0)(2, TableBody_ng_container_0_ng_template_1_ng_container_2_Template, 2, 10, \"ng-container\", 0)(3, TableBody_ng_container_0_ng_template_1_ng_container_3_Template, 2, 8, \"ng-container\", 2);\n} if (rf & 2) {\n const rowData_r2 = ctx.$implicit;\n const rowIndex_r3 = ctx.index;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", (ctx_r3.dt.groupHeaderTemplate || ctx_r3.dt._groupHeaderTemplate) && !ctx_r3.dt.virtualScroll && ctx_r3.dt.rowGroupMode === \"subheader\" && ctx_r3.shouldRenderRowGroupHeader(ctx_r3.value, rowData_r2, rowIndex_r3));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.dt.rowGroupMode !== \"rowspan\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.dt.rowGroupMode === \"rowspan\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r3.dt.groupFooterTemplate || ctx_r3.dt._groupFooterTemplate) && !ctx_r3.dt.virtualScroll && ctx_r3.dt.rowGroupMode === \"subheader\" && ctx_r3.shouldRenderRowGroupFooter(ctx_r3.value, rowData_r2, rowIndex_r3));\n} }\nfunction TableBody_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_0_ng_template_1_Template, 4, 4, \"ng-template\", 1);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r3.value)(\"ngForTrackBy\", ctx_r3.dt.rowTrackBy);\n} }\nfunction TableBody_ng_container_1_ng_template_1_ng_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TableBody_ng_container_1_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_1_ng_template_1_ng_container_0_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n const rowData_r6 = ctx_r4.$implicit;\n const rowIndex_r7 = ctx_r4.index;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction6(2, _c48, rowData_r6, ctx_r3.getRowIndex(rowIndex_r7), ctx_r3.columns, ctx_r3.dt.isRowExpanded(rowData_r6), ctx_r3.dt.editMode === \"row\" && ctx_r3.dt.isRowEditing(rowData_r6), ctx_r3.frozen));\n} }\nfunction TableBody_ng_container_1_ng_template_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TableBody_ng_container_1_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 3);\n i0.ɵɵtemplate(1, TableBody_ng_container_1_ng_template_1_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n const rowData_r6 = ctx_r4.$implicit;\n const rowIndex_r7 = ctx_r4.index;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.dt.groupHeaderTemplate || ctx_r3.dt._groupHeaderTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction6(2, _c48, rowData_r6, ctx_r3.getRowIndex(rowIndex_r7), ctx_r3.columns, ctx_r3.dt.isRowExpanded(rowData_r6), ctx_r3.dt.editMode === \"row\" && ctx_r3.dt.isRowEditing(rowData_r6), ctx_r3.frozen));\n} }\nfunction TableBody_ng_container_1_ng_template_1_ng_container_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TableBody_ng_container_1_ng_template_1_ng_container_2_ng_container_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TableBody_ng_container_1_ng_template_1_ng_container_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 3);\n i0.ɵɵtemplate(1, TableBody_ng_container_1_ng_template_1_ng_container_2_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(2);\n const rowData_r6 = ctx_r4.$implicit;\n const rowIndex_r7 = ctx_r4.index;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.dt.groupFooterTemplate || ctx_r3.dt._groupFooterTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction6(2, _c48, rowData_r6, ctx_r3.getRowIndex(rowIndex_r7), ctx_r3.columns, ctx_r3.dt.isRowExpanded(rowData_r6), ctx_r3.dt.editMode === \"row\" && ctx_r3.dt.isRowEditing(rowData_r6), ctx_r3.frozen));\n} }\nfunction TableBody_ng_container_1_ng_template_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_1_ng_template_1_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 4)(2, TableBody_ng_container_1_ng_template_1_ng_container_2_ng_container_2_Template, 2, 9, \"ng-container\", 2);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n const rowData_r6 = ctx_r4.$implicit;\n const rowIndex_r7 = ctx_r4.index;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.dt.expandedRowTemplate || ctx_r3.dt._expandedRowTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction4(3, _c49, rowData_r6, ctx_r3.getRowIndex(rowIndex_r7), ctx_r3.columns, ctx_r3.frozen));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r3.dt.groupFooterTemplate || ctx_r3.dt._groupFooterTemplate) && ctx_r3.dt.rowGroupMode === \"subheader\" && ctx_r3.shouldRenderRowGroupFooter(ctx_r3.value, rowData_r6, ctx_r3.getRowIndex(rowIndex_r7)));\n} }\nfunction TableBody_ng_container_1_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, TableBody_ng_container_1_ng_template_1_ng_container_0_Template, 2, 9, \"ng-container\", 0)(1, TableBody_ng_container_1_ng_template_1_ng_container_1_Template, 2, 9, \"ng-container\", 2)(2, TableBody_ng_container_1_ng_template_1_ng_container_2_Template, 3, 8, \"ng-container\", 0);\n} if (rf & 2) {\n const rowData_r6 = ctx.$implicit;\n const rowIndex_r7 = ctx.index;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", !(ctx_r3.dt.groupHeaderTemplate && ctx_r3.dt._groupHeaderTemplate));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r3.dt.groupHeaderTemplate || ctx_r3.dt._groupHeaderTemplate) && ctx_r3.dt.rowGroupMode === \"subheader\" && ctx_r3.shouldRenderRowGroupHeader(ctx_r3.value, rowData_r6, ctx_r3.getRowIndex(rowIndex_r7)));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.dt.isRowExpanded(rowData_r6));\n} }\nfunction TableBody_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_1_ng_template_1_Template, 3, 3, \"ng-template\", 1);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r3.value)(\"ngForTrackBy\", ctx_r3.dt.rowTrackBy);\n} }\nfunction TableBody_ng_container_2_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TableBody_ng_container_2_ng_template_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TableBody_ng_container_2_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_2_ng_template_1_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r7 = i0.ɵɵnextContext();\n const rowData_r9 = ctx_r7.$implicit;\n const rowIndex_r10 = ctx_r7.index;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.dt.frozenExpandedRowTemplate || ctx_r3.dt._frozenExpandedRowTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction4(2, _c49, rowData_r9, ctx_r3.getRowIndex(rowIndex_r10), ctx_r3.columns, ctx_r3.frozen));\n} }\nfunction TableBody_ng_container_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, TableBody_ng_container_2_ng_template_1_ng_container_0_Template, 1, 0, \"ng-container\", 4)(1, TableBody_ng_container_2_ng_template_1_ng_container_1_Template, 2, 7, \"ng-container\", 0);\n} if (rf & 2) {\n const rowData_r9 = ctx.$implicit;\n const rowIndex_r10 = ctx.index;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction6(3, _c48, rowData_r9, ctx_r3.getRowIndex(rowIndex_r10), ctx_r3.columns, ctx_r3.dt.isRowExpanded(rowData_r9), ctx_r3.dt.editMode === \"row\" && ctx_r3.dt.isRowEditing(rowData_r9), ctx_r3.frozen));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.dt.isRowExpanded(rowData_r9));\n} }\nfunction TableBody_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_2_ng_template_1_Template, 2, 10, \"ng-template\", 1);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r3.value)(\"ngForTrackBy\", ctx_r3.dt.rowTrackBy);\n} }\nfunction TableBody_ng_container_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TableBody_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_3_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.dt.loadingBodyTemplate || ctx_r3.dt._loadingBodyTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c50, ctx_r3.columns, ctx_r3.frozen));\n} }\nfunction TableBody_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TableBody_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_4_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.dt.emptyMessageTemplate || ctx_r3.dt._emptyMessageTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c50, ctx_r3.columns, ctx_r3.frozen));\n} }\nfunction SortIcon_ng_container_0_SortAltIcon_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"SortAltIcon\", 4);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-sortable-column-icon\");\n} }\nfunction SortIcon_ng_container_0_SortAmountUpAltIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"SortAmountUpAltIcon\", 4);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-sortable-column-icon\");\n} }\nfunction SortIcon_ng_container_0_SortAmountDownIcon_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"SortAmountDownIcon\", 4);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-sortable-column-icon\");\n} }\nfunction SortIcon_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, SortIcon_ng_container_0_SortAltIcon_1_Template, 1, 1, \"SortAltIcon\", 3)(2, SortIcon_ng_container_0_SortAmountUpAltIcon_2_Template, 1, 1, \"SortAmountUpAltIcon\", 3)(3, SortIcon_ng_container_0_SortAmountDownIcon_3_Template, 1, 1, \"SortAmountDownIcon\", 3);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.sortOrder === 0);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.sortOrder === 1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.sortOrder === -1);\n} }\nfunction SortIcon_span_1_1_ng_template_0_Template(rf, ctx) { }\nfunction SortIcon_span_1_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, SortIcon_span_1_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction SortIcon_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵtemplate(1, SortIcon_span_1_1_Template, 1, 0, null, 6);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.dt.sortIconTemplate || ctx_r0.dt._sortIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c44, ctx_r0.sortOrder));\n} }\nfunction SortIcon_span_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 7);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.getBadgeValue());\n} }\nconst _c51 = [\"input\"];\nconst _c52 = [\"output\"];\nfunction CellEditor_ng_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction CellEditor_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, CellEditor_ng_container_0_ng_container_1_Template, 1, 0, \"ng-container\", 1);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.inputTemplate || ctx_r0._inputTemplate);\n} }\nfunction CellEditor_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction CellEditor_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, CellEditor_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 1);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.outputTemplate || ctx_r0._outputTemplate);\n} }\nconst _c53 = [\"rb\"];\nfunction TableCheckbox_ng_container_1_ng_template_1_0_ng_template_0_Template(rf, ctx) { }\nfunction TableCheckbox_ng_container_1_ng_template_1_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, TableCheckbox_ng_container_1_ng_template_1_0_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction TableCheckbox_ng_container_1_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, TableCheckbox_ng_container_1_ng_template_1_0_Template, 1, 0, null, 3);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.dt.checkboxIconTemplate || ctx_r0.dt._checkboxIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c44, ctx_r0.checked));\n} }\nfunction TableCheckbox_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableCheckbox_ng_container_1_ng_template_1_Template, 1, 4, \"ng-template\", 2);\n i0.ɵɵelementContainerEnd();\n} }\nfunction TableHeaderCheckbox_ng_container_1_ng_template_1_0_ng_template_0_Template(rf, ctx) { }\nfunction TableHeaderCheckbox_ng_container_1_ng_template_1_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, TableHeaderCheckbox_ng_container_1_ng_template_1_0_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction TableHeaderCheckbox_ng_container_1_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, TableHeaderCheckbox_ng_container_1_ng_template_1_0_Template, 1, 0, null, 3);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.dt.headerCheckboxIconTemplate || ctx_r0.dt._headerCheckboxIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c44, ctx_r0.checked));\n} }\nfunction TableHeaderCheckbox_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableHeaderCheckbox_ng_container_1_ng_template_1_Template, 1, 4, \"ng-template\", 2);\n i0.ɵɵelementContainerEnd();\n} }\nconst _c54 = [\"filter\"];\nconst _c55 = [\"filtericon\"];\nconst _c56 = [\"removeruleicon\"];\nconst _c57 = [\"addruleicon\"];\nconst _c58 = [\"clearfiltericon\"];\nconst _c59 = [\"clearBtn\"];\nfunction ColumnFilter_p_columnFilterFormElement_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"p-columnFilterFormElement\", 8);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"type\", ctx_r0.type)(\"field\", ctx_r0.field)(\"ariaLabel\", ctx_r0.ariaLabel)(\"filterConstraint\", ctx_r0.dt.filters[ctx_r0.field])(\"filterTemplate\", ctx_r0.filterTemplate)(\"placeholder\", ctx_r0.placeholder)(\"minFractionDigits\", ctx_r0.minFractionDigits)(\"maxFractionDigits\", ctx_r0.maxFractionDigits)(\"prefix\", ctx_r0.prefix)(\"suffix\", ctx_r0.suffix)(\"locale\", ctx_r0.locale)(\"localeMatcher\", ctx_r0.localeMatcher)(\"currency\", ctx_r0.currency)(\"currencyDisplay\", ctx_r0.currencyDisplay)(\"useGrouping\", ctx_r0.useGrouping)(\"showButtons\", ctx_r0.showButtons);\n} }\nfunction ColumnFilter_p_button_2_ng_template_1_FilterIcon_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"FilterIcon\");\n} }\nfunction ColumnFilter_p_button_2_ng_template_1_span_1_1_ng_template_0_Template(rf, ctx) { }\nfunction ColumnFilter_p_button_2_ng_template_1_span_1_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, ColumnFilter_p_button_2_ng_template_1_span_1_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction ColumnFilter_p_button_2_ng_template_1_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 12);\n i0.ɵɵtemplate(1, ColumnFilter_p_button_2_ng_template_1_span_1_1_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.filterIconTemplate || ctx_r0._filterIconTemplate);\n} }\nfunction ColumnFilter_p_button_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, ColumnFilter_p_button_2_ng_template_1_FilterIcon_0_Template, 1, 0, \"FilterIcon\", 10)(1, ColumnFilter_p_button_2_ng_template_1_span_1_Template, 2, 1, \"span\", 11);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.filterIconTemplate && !ctx_r0._filterIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.filterIconTemplate || ctx_r0._filterIconTemplate);\n} }\nfunction ColumnFilter_p_button_2_Template(rf, ctx) { if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-button\", 9);\n i0.ɵɵlistener(\"click\", function ColumnFilter_p_button_2_Template_p_button_click_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.toggleMenu($event)); })(\"keydown\", function ColumnFilter_p_button_2_Template_p_button_keydown_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onToggleButtonKeyDown($event)); });\n i0.ɵɵtemplate(1, ColumnFilter_p_button_2_ng_template_1_Template, 2, 2, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n let tmp_7_0;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"styleClass\", ctx_r0.cx(\"pcColumnFilterButton\"))(\"ariaLabel\", ctx_r0.filterMenuButtonAriaLabel)(\"buttonProps\", ctx_r0.filterButtonProps == null ? null : ctx_r0.filterButtonProps.filter);\n i0.ɵɵattribute(\"aria-haspopup\", true)(\"aria-controls\", ctx_r0.overlayVisible ? ctx_r0.overlayId : null)(\"aria-expanded\", (tmp_7_0 = ctx_r0.overlayVisible) !== null && tmp_7_0 !== undefined ? tmp_7_0 : false);\n} }\nfunction ColumnFilter_p_button_3_ng_template_1_FilterSlashIcon_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"FilterSlashIcon\");\n} }\nfunction ColumnFilter_p_button_3_ng_template_1_1_ng_template_0_Template(rf, ctx) { }\nfunction ColumnFilter_p_button_3_ng_template_1_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, ColumnFilter_p_button_3_ng_template_1_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction ColumnFilter_p_button_3_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, ColumnFilter_p_button_3_ng_template_1_FilterSlashIcon_0_Template, 1, 0, \"FilterSlashIcon\", 10)(1, ColumnFilter_p_button_3_ng_template_1_1_Template, 1, 0, null, 13);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.clearFilterIconTemplate && !ctx_r0._clearFilterIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.clearFilterIconTemplate || ctx_r0._clearFilterIconTemplate);\n} }\nfunction ColumnFilter_p_button_3_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-button\", 14);\n i0.ɵɵlistener(\"onClick\", function ColumnFilter_p_button_3_Template_p_button_onClick_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.clearFilter()); });\n i0.ɵɵtemplate(1, ColumnFilter_p_button_3_ng_template_1_Template, 2, 2, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"styleClass\", ctx_r0.cx(\"pcColumnfilterClearButton\"))(\"ariaLabel\", ctx_r0.clearButtonLabel)(\"buttonProps\", ctx_r0.filterButtonProps == null ? null : ctx_r0.filterButtonProps.inline == null ? null : ctx_r0.filterButtonProps.inline.clear);\n} }\nfunction ColumnFilter_div_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction ColumnFilter_div_4_ul_2_li_1_Template(rf, ctx) { if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 19);\n i0.ɵɵlistener(\"click\", function ColumnFilter_div_4_ul_2_li_1_Template_li_click_0_listener() { const matchMode_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.onRowMatchModeChange(matchMode_r7.value)); })(\"keydown\", function ColumnFilter_div_4_ul_2_li_1_Template_li_keydown_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.onRowMatchModeKeyDown($event)); })(\"keydown.enter\", function ColumnFilter_div_4_ul_2_li_1_Template_li_keydown_enter_0_listener() { const matchMode_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.onRowMatchModeChange(matchMode_r7.value)); });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const matchMode_r7 = ctx.$implicit;\n const i_r8 = ctx.index;\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵclassProp(\"p-datatable-filter-constraint-selected\", ctx_r0.isRowMatchModeSelected(matchMode_r7.value));\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"filterConstraint\"));\n i0.ɵɵattribute(\"tabindex\", i_r8 === 0 ? \"0\" : null);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", matchMode_r7.label, \" \");\n} }\nfunction ColumnFilter_div_4_ul_2_Template(rf, ctx) { if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ul\", 3);\n i0.ɵɵtemplate(1, ColumnFilter_div_4_ul_2_li_1_Template, 2, 5, \"li\", 18);\n i0.ɵɵelement(2, \"li\", 3);\n i0.ɵɵelementStart(3, \"li\", 19);\n i0.ɵɵlistener(\"click\", function ColumnFilter_div_4_ul_2_Template_li_click_3_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onRowClearItemClick()); })(\"keydown\", function ColumnFilter_div_4_ul_2_Template_li_keydown_3_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onRowMatchModeKeyDown($event)); })(\"keydown.enter\", function ColumnFilter_div_4_ul_2_Template_li_keydown_enter_3_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onRowClearItemClick()); });\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"filterConstraintList\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r0.matchModes);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"filterConstraintSeparator\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"filterConstraint\"));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.noFilterLabel, \" \");\n} }\nfunction ColumnFilter_div_4_ng_template_3_div_0_Template(rf, ctx) { if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"p-select\", 24);\n i0.ɵɵlistener(\"ngModelChange\", function ColumnFilter_div_4_ng_template_3_div_0_Template_p_select_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.onOperatorChange($event)); });\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"filterOperator\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"options\", ctx_r0.operatorOptions)(\"ngModel\", ctx_r0.operator)(\"styleClass\", ctx_r0.cx(\"pcFilterOperatorDropdown\"));\n} }\nfunction ColumnFilter_div_4_ng_template_3_div_2_p_select_1_Template(rf, ctx) { if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-select\", 24);\n i0.ɵɵlistener(\"ngModelChange\", function ColumnFilter_div_4_ng_template_3_div_2_p_select_1_Template_p_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r10); const fieldConstraint_r11 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.onMenuMatchModeChange($event, fieldConstraint_r11)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const fieldConstraint_r11 = i0.ɵɵnextContext().$implicit;\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"options\", ctx_r0.matchModes)(\"ngModel\", fieldConstraint_r11.matchMode)(\"styleClass\", ctx_r0.cx(\"pcFilterConstraintDropdown\"));\n} }\nfunction ColumnFilter_div_4_ng_template_3_div_2_p_button_4_TrashIcon_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"TrashIcon\");\n} }\nfunction ColumnFilter_div_4_ng_template_3_div_2_p_button_4_2_ng_template_0_Template(rf, ctx) { }\nfunction ColumnFilter_div_4_ng_template_3_div_2_p_button_4_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, ColumnFilter_div_4_ng_template_3_div_2_p_button_4_2_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction ColumnFilter_div_4_ng_template_3_div_2_p_button_4_Template(rf, ctx) { if (rf & 1) {\n const _r12 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-button\", 28);\n i0.ɵɵlistener(\"onClick\", function ColumnFilter_div_4_ng_template_3_div_2_p_button_4_Template_p_button_onClick_0_listener() { i0.ɵɵrestoreView(_r12); const fieldConstraint_r11 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.removeConstraint(fieldConstraint_r11)); });\n i0.ɵɵtemplate(1, ColumnFilter_div_4_ng_template_3_div_2_p_button_4_TrashIcon_1_Template, 1, 0, \"TrashIcon\", 10)(2, ColumnFilter_div_4_ng_template_3_div_2_p_button_4_2_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"styleClass\", ctx_r0.cx(\"pcFilterRemoveRuleButton\"))(\"text\", true)(\"ariaLabel\", ctx_r0.removeRuleButtonLabel)(\"label\", ctx_r0.removeRuleButtonLabel)(\"buttonProps\", ctx_r0.filterButtonProps == null ? null : ctx_r0.filterButtonProps.popover == null ? null : ctx_r0.filterButtonProps.popover.removeRule);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.removeRuleIconTemplate && !ctx_r0._removeRuleIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.removeRuleIconTemplate || ctx_r0._removeRuleIconTemplate);\n} }\nfunction ColumnFilter_div_4_ng_template_3_div_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 3);\n i0.ɵɵtemplate(1, ColumnFilter_div_4_ng_template_3_div_2_p_select_1_Template, 1, 3, \"p-select\", 25);\n i0.ɵɵelement(2, \"p-columnFilterFormElement\", 26);\n i0.ɵɵelementStart(3, \"div\");\n i0.ɵɵtemplate(4, ColumnFilter_div_4_ng_template_3_div_2_p_button_4_Template, 3, 7, \"p-button\", 27);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const fieldConstraint_r11 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"filterRule\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.showMatchModes && ctx_r0.matchModes);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r0.type)(\"field\", ctx_r0.field)(\"filterConstraint\", fieldConstraint_r11)(\"filterTemplate\", ctx_r0.filterTemplate || ctx_r0._filterTemplate)(\"placeholder\", ctx_r0.placeholder)(\"minFractionDigits\", ctx_r0.minFractionDigits)(\"maxFractionDigits\", ctx_r0.maxFractionDigits)(\"prefix\", ctx_r0.prefix)(\"suffix\", ctx_r0.suffix)(\"locale\", ctx_r0.locale)(\"localeMatcher\", ctx_r0.localeMatcher)(\"currency\", ctx_r0.currency)(\"currencyDisplay\", ctx_r0.currencyDisplay)(\"useGrouping\", ctx_r0.useGrouping);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.showRemoveIcon);\n} }\nfunction ColumnFilter_div_4_ng_template_3_div_3_PlusIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"PlusIcon\");\n} }\nfunction ColumnFilter_div_4_ng_template_3_div_3_3_ng_template_0_Template(rf, ctx) { }\nfunction ColumnFilter_div_4_ng_template_3_div_3_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, ColumnFilter_div_4_ng_template_3_div_3_3_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction ColumnFilter_div_4_ng_template_3_div_3_Template(rf, ctx) { if (rf & 1) {\n const _r13 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\")(1, \"p-button\", 29);\n i0.ɵɵlistener(\"onClick\", function ColumnFilter_div_4_ng_template_3_div_3_Template_p_button_onClick_1_listener() { i0.ɵɵrestoreView(_r13); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.addConstraint()); });\n i0.ɵɵtemplate(2, ColumnFilter_div_4_ng_template_3_div_3_PlusIcon_2_Template, 1, 0, \"PlusIcon\", 10)(3, ColumnFilter_div_4_ng_template_3_div_3_3_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"label\", ctx_r0.addRuleButtonLabel)(\"styleClass\", ctx_r0.cx(\"pcFilterAddRuleButton\"))(\"text\", true)(\"buttonProps\", ctx_r0.filterButtonProps == null ? null : ctx_r0.filterButtonProps.popover == null ? null : ctx_r0.filterButtonProps.popover.addRule);\n i0.ɵɵattribute(\"aria-label\", ctx_r0.addRuleButtonLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.addRuleIconTemplate && !ctx_r0._addRuleIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.addRuleIconTemplate || ctx_r0._addRuleIconTemplate);\n} }\nfunction ColumnFilter_div_4_ng_template_3_p_button_5_Template(rf, ctx) { if (rf & 1) {\n const _r14 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-button\", 30, 2);\n i0.ɵɵlistener(\"onClick\", function ColumnFilter_div_4_ng_template_3_p_button_5_Template_p_button_onClick_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.clearFilter()); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"outlined\", true)(\"label\", ctx_r0.clearButtonLabel)(\"buttonProps\", ctx_r0.filterButtonProps == null ? null : ctx_r0.filterButtonProps.popover == null ? null : ctx_r0.filterButtonProps.popover.clear);\n i0.ɵɵattribute(\"aria-label\", ctx_r0.clearButtonLabel);\n} }\nfunction ColumnFilter_div_4_ng_template_3_p_button_6_Template(rf, ctx) { if (rf & 1) {\n const _r15 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-button\", 31);\n i0.ɵɵlistener(\"onClick\", function ColumnFilter_div_4_ng_template_3_p_button_6_Template_p_button_onClick_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.applyFilter()); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"label\", ctx_r0.applyButtonLabel)(\"buttonProps\", ctx_r0.filterButtonProps == null ? null : ctx_r0.filterButtonProps.popover == null ? null : ctx_r0.filterButtonProps.popover.apply);\n i0.ɵɵattribute(\"aria-label\", ctx_r0.applyButtonLabel);\n} }\nfunction ColumnFilter_div_4_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, ColumnFilter_div_4_ng_template_3_div_0_Template, 2, 4, \"div\", 20);\n i0.ɵɵelementStart(1, \"div\", 3);\n i0.ɵɵtemplate(2, ColumnFilter_div_4_ng_template_3_div_2_Template, 5, 17, \"div\", 21);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, ColumnFilter_div_4_ng_template_3_div_3_Template, 4, 7, \"div\", 10);\n i0.ɵɵelementStart(4, \"div\", 3);\n i0.ɵɵtemplate(5, ColumnFilter_div_4_ng_template_3_p_button_5_Template, 2, 4, \"p-button\", 22)(6, ColumnFilter_div_4_ng_template_3_p_button_6_Template, 1, 3, \"p-button\", 23);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.isShowOperator);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"filterRuleList\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r0.fieldConstraints);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.isShowAddConstraint);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"filterButtonbar\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.showClearButton);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.showApplyButton);\n} }\nfunction ColumnFilter_div_4_ng_container_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction ColumnFilter_div_4_Template(rf, ctx) { if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 15);\n i0.ɵɵlistener(\"click\", function ColumnFilter_div_4_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onContentClick()); })(\"@overlayAnimation.start\", function ColumnFilter_div_4_Template_div_animation_overlayAnimation_start_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onOverlayAnimationStart($event)); })(\"@overlayAnimation.done\", function ColumnFilter_div_4_Template_div_animation_overlayAnimation_done_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onOverlayAnimationEnd($event)); })(\"keydown.escape\", function ColumnFilter_div_4_Template_div_keydown_escape_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onEscape()); });\n i0.ɵɵtemplate(1, ColumnFilter_div_4_ng_container_1_Template, 1, 0, \"ng-container\", 16)(2, ColumnFilter_div_4_ul_2_Template, 5, 5, \"ul\", 17)(3, ColumnFilter_div_4_ng_template_3_Template, 7, 7, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor)(5, ColumnFilter_div_4_ng_container_5_Template, 1, 0, \"ng-container\", 16);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const menu_r16 = i0.ɵɵreference(4);\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.cx(\"filterOverlay\"))(\"id\", ctx_r0.overlayId)(\"@overlayAnimation\", \"visible\");\n i0.ɵɵattribute(\"aria-modal\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.headerTemplate || ctx_r0._headerTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(10, _c44, ctx_r0.field));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.display === \"row\")(\"ngIfElse\", menu_r16);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.footerTemplate || ctx_r0._footerTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(12, _c44, ctx_r0.field));\n} }\nconst _c60 = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) => ({ $implicit: a0, filterCallback: a1, type: a2, field: a3, filterConstraint: a4, placeholder: a5, minFractionDigits: a6, maxFractionDigits: a7, prefix: a8, suffix: a9, locale: a10, localeMatcher: a11, currency: a12, currencyDisplay: a13, useGrouping: a14, showButtons: a15 });\nfunction ColumnFilterFormElement_ng_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction ColumnFilterFormElement_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, ColumnFilterFormElement_ng_container_0_ng_container_1_Template, 1, 0, \"ng-container\", 2);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.filterTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunctionV(2, _c60, [ctx_r0.filterConstraint.value, ctx_r0.filterCallback, ctx_r0.type, ctx_r0.field, ctx_r0.filterConstraint, ctx_r0.placeholder, ctx_r0.minFractionDigits, ctx_r0.maxFractionDigits, ctx_r0.prefix, ctx_r0.suffix, ctx_r0.locale, ctx_r0.localeMatcher, ctx_r0.currency, ctx_r0.currencyDisplay, ctx_r0.useGrouping, ctx_r0.showButtons]));\n} }\nfunction ColumnFilterFormElement_ng_template_1_input_1_Template(rf, ctx) { if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 8);\n i0.ɵɵlistener(\"input\", function ColumnFilterFormElement_ng_template_1_input_1_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onModelChange($event.target.value)); })(\"keydown.enter\", function ColumnFilterFormElement_ng_template_1_input_1_Template_input_keydown_enter_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onTextInputEnterKeyDown($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ariaLabel\", ctx_r0.ariaLabel)(\"value\", ctx_r0.filterConstraint == null ? null : ctx_r0.filterConstraint.value);\n i0.ɵɵattribute(\"placeholder\", ctx_r0.placeholder);\n} }\nfunction ColumnFilterFormElement_ng_template_1_p_inputNumber_2_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-inputNumber\", 9);\n i0.ɵɵlistener(\"ngModelChange\", function ColumnFilterFormElement_ng_template_1_p_inputNumber_2_Template_p_inputNumber_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onModelChange($event)); })(\"onKeyDown\", function ColumnFilterFormElement_ng_template_1_p_inputNumber_2_Template_p_inputNumber_onKeyDown_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onNumericInputKeyDown($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngModel\", ctx_r0.filterConstraint == null ? null : ctx_r0.filterConstraint.value)(\"showButtons\", ctx_r0.showButtons)(\"minFractionDigits\", ctx_r0.minFractionDigits)(\"maxFractionDigits\", ctx_r0.maxFractionDigits)(\"ariaLabel\", ctx_r0.ariaLabel)(\"prefix\", ctx_r0.prefix)(\"suffix\", ctx_r0.suffix)(\"placeholder\", ctx_r0.placeholder)(\"mode\", ctx_r0.currency ? \"currency\" : \"decimal\")(\"locale\", ctx_r0.locale)(\"localeMatcher\", ctx_r0.localeMatcher)(\"currency\", ctx_r0.currency)(\"currencyDisplay\", ctx_r0.currencyDisplay)(\"useGrouping\", ctx_r0.useGrouping);\n} }\nfunction ColumnFilterFormElement_ng_template_1_p_checkbox_3_Template(rf, ctx) { if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-checkbox\", 10);\n i0.ɵɵlistener(\"ngModelChange\", function ColumnFilterFormElement_ng_template_1_p_checkbox_3_Template_p_checkbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onModelChange($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"indeterminate\", true)(\"binary\", true)(\"ngModel\", ctx_r0.filterConstraint == null ? null : ctx_r0.filterConstraint.value);\n} }\nfunction ColumnFilterFormElement_ng_template_1_p_datepicker_4_Template(rf, ctx) { if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-datepicker\", 11);\n i0.ɵɵlistener(\"ngModelChange\", function ColumnFilterFormElement_ng_template_1_p_datepicker_4_Template_p_datepicker_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onModelChange($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ariaLabel\", ctx_r0.ariaLabel)(\"placeholder\", ctx_r0.placeholder)(\"ngModel\", ctx_r0.filterConstraint == null ? null : ctx_r0.filterConstraint.value);\n} }\nfunction ColumnFilterFormElement_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 3);\n i0.ɵɵtemplate(1, ColumnFilterFormElement_ng_template_1_input_1_Template, 1, 3, \"input\", 4)(2, ColumnFilterFormElement_ng_template_1_p_inputNumber_2_Template, 1, 14, \"p-inputNumber\", 5)(3, ColumnFilterFormElement_ng_template_1_p_checkbox_3_Template, 1, 3, \"p-checkbox\", 6)(4, ColumnFilterFormElement_ng_template_1_p_datepicker_4_Template, 1, 3, \"p-datepicker\", 7);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngSwitch\", ctx_r0.type);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"text\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"numeric\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"boolean\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"date\");\n} }\nclass TableService {\n sortSource = new Subject();\n selectionSource = new Subject();\n contextMenuSource = new Subject();\n valueSource = new Subject();\n totalRecordsSource = new Subject();\n columnsSource = new Subject();\n sortSource$ = this.sortSource.asObservable();\n selectionSource$ = this.selectionSource.asObservable();\n contextMenuSource$ = this.contextMenuSource.asObservable();\n valueSource$ = this.valueSource.asObservable();\n totalRecordsSource$ = this.totalRecordsSource.asObservable();\n columnsSource$ = this.columnsSource.asObservable();\n onSort(sortMeta) {\n this.sortSource.next(sortMeta);\n }\n onSelectionChange() {\n this.selectionSource.next(null);\n }\n onContextMenu(data) {\n this.contextMenuSource.next(data);\n }\n onValueChange(value) {\n this.valueSource.next(value);\n }\n onTotalRecordsChange(value) {\n this.totalRecordsSource.next(value);\n }\n onColumnsChange(columns) {\n this.columnsSource.next(columns);\n }\n static ɵfac = function TableService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableService)(); };\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TableService, factory: TableService.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableService, [{\n type: Injectable\n }], null, null); })();\n/**\n * Table displays data in tabular format.\n * @group Components\n */\nclass Table extends BaseComponent {\n /**\n * An array of objects to represent dynamic columns that are frozen.\n * @group Props\n */\n frozenColumns;\n /**\n * An array of objects to display as frozen.\n * @group Props\n */\n frozenValue;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Inline style of the table.\n * @group Props\n */\n tableStyle;\n /**\n * Style class of the table.\n * @group Props\n */\n tableStyleClass;\n /**\n * When specified as true, enables the pagination.\n * @group Props\n */\n paginator;\n /**\n * Number of page links to display in paginator.\n * @group Props\n */\n pageLinks = 5;\n /**\n * Array of integer/object values to display inside rows per page dropdown of paginator\n * @group Props\n */\n rowsPerPageOptions;\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n alwaysShowPaginator = true;\n /**\n * Position of the paginator, options are \"top\", \"bottom\" or \"both\".\n * @group Props\n */\n paginatorPosition = 'bottom';\n /**\n * Custom style class for paginator\n * @group Props\n */\n paginatorStyleClass;\n /**\n * Target element to attach the paginator dropdown overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n paginatorDropdownAppendTo;\n /**\n * Paginator dropdown height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n paginatorDropdownScrollHeight = '200px';\n /**\n * Template of the current page report element. Available placeholders are {currentPage},{totalPages},{rows},{first},{last} and {totalRecords}\n * @group Props\n */\n currentPageReportTemplate = '{currentPage} of {totalPages}';\n /**\n * Whether to display current page report.\n * @group Props\n */\n showCurrentPageReport;\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n showJumpToPageDropdown;\n /**\n * Whether to display a input to navigate to any page.\n * @group Props\n */\n showJumpToPageInput;\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n showFirstLastIcon = true;\n /**\n * Whether to show page links.\n * @group Props\n */\n showPageLinks = true;\n /**\n * Sort order to use when an unsorted column gets sorted by user interaction.\n * @group Props\n */\n defaultSortOrder = 1;\n /**\n * Defines whether sorting works on single column or on multiple columns.\n * @group Props\n */\n sortMode = 'single';\n /**\n * When true, resets paginator to first page after sorting. Available only when sortMode is set to single.\n * @group Props\n */\n resetPageOnSort = true;\n /**\n * Specifies the selection mode, valid values are \"single\" and \"multiple\".\n * @group Props\n */\n selectionMode;\n /**\n * When enabled with paginator and checkbox selection mode, the select all checkbox in the header will select all rows on the current page.\n * @group Props\n */\n selectionPageOnly;\n /**\n * Selected row with a context menu.\n * @group Props\n */\n contextMenuSelection;\n /**\n * Callback to invoke on context menu selection change.\n * @param {*} object - row data.\n * @group Emits\n */\n contextMenuSelectionChange = new EventEmitter();\n /**\n * Defines the behavior of context menu selection, in \"separate\" mode context menu updates contextMenuSelection property whereas in joint mode selection property is used instead so that when row selection is enabled, both row selection and context menu selection use the same property.\n * @group Props\n */\n contextMenuSelectionMode = 'separate';\n /**\n * A property to uniquely identify a record in data.\n * @group Props\n */\n dataKey;\n /**\n * Defines whether metaKey should be considered for the selection. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n metaKeySelection = false;\n /**\n * Defines if the row is selectable.\n * @group Props\n */\n rowSelectable;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.\n * @group Props\n */\n rowTrackBy = (index, item) => item;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n lazy = false;\n /**\n * Whether to call lazy loading on initialization.\n * @group Props\n */\n lazyLoadOnInit = true;\n /**\n * Algorithm to define if a row is selected, valid values are \"equals\" that compares by reference and \"deepEquals\" that compares all fields.\n * @group Props\n */\n compareSelectionBy = 'deepEquals';\n /**\n * Character to use as the csv separator.\n * @group Props\n */\n csvSeparator = ',';\n /**\n * Name of the exported file.\n * @group Props\n */\n exportFilename = 'download';\n /**\n * An array of FilterMetadata objects to provide external filters.\n * @group Props\n */\n filters = {};\n /**\n * An array of fields as string to use in global filtering.\n * @group Props\n */\n globalFilterFields;\n /**\n * Delay in milliseconds before filtering the data.\n * @group Props\n */\n filterDelay = 300;\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n filterLocale;\n /**\n * Map instance to keep the expanded rows where key of the map is the data key of the row.\n * @group Props\n */\n expandedRowKeys = {};\n /**\n * Map instance to keep the rows being edited where key of the map is the data key of the row.\n * @group Props\n */\n editingRowKeys = {};\n /**\n * Whether multiple rows can be expanded at any time. Valid values are \"multiple\" and \"single\".\n * @group Props\n */\n rowExpandMode = 'multiple';\n /**\n * Enables scrollable tables.\n * @group Props\n */\n scrollable;\n /**\n * Orientation of the scrolling, options are \"vertical\", \"horizontal\" and \"both\".\n * @group Props\n * @deprecated Property is obselete since v14.2.0.\n */\n scrollDirection = 'vertical';\n /**\n * Type of the row grouping, valid values are \"subheader\" and \"rowspan\".\n * @group Props\n */\n rowGroupMode;\n /**\n * Height of the scroll viewport in fixed pixels or the \"flex\" keyword for a dynamic size.\n * @group Props\n */\n scrollHeight;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n virtualScroll;\n /**\n * Height of a row to use in calculations of virtual scrolling.\n * @group Props\n */\n virtualScrollItemSize;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n virtualScrollOptions;\n /**\n * Threshold in milliseconds to delay lazy loading during scrolling.\n * @group Props\n */\n virtualScrollDelay = 250;\n /**\n * Width of the frozen columns container.\n * @group Props\n */\n frozenWidth;\n /**\n * Defines if the table is responsive.\n * @group Props\n * @deprecated table is always responsive with scrollable behavior.\n */\n get responsive() {\n return this._responsive;\n }\n set responsive(val) {\n this._responsive = val;\n console.log('responsive property is deprecated as table is always responsive with scrollable behavior.');\n }\n _responsive;\n /**\n * Local ng-template varilable of a ContextMenu.\n * @group Props\n */\n contextMenu;\n /**\n * When enabled, columns can be resized using drag and drop.\n * @group Props\n */\n resizableColumns;\n /**\n * Defines whether the overall table width should change on column resize, valid values are \"fit\" and \"expand\".\n * @group Props\n */\n columnResizeMode = 'fit';\n /**\n * When enabled, columns can be reordered using drag and drop.\n * @group Props\n */\n reorderableColumns;\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n loading;\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n loadingIcon;\n /**\n * Whether to show the loading mask when loading property is true.\n * @group Props\n */\n showLoader = true;\n /**\n * Adds hover effect to rows without the need for selectionMode. Note that tr elements that can be hovered need to have \"p-selectable-row\" class for rowHover to work.\n * @group Props\n */\n rowHover;\n /**\n * Whether to use the default sorting or a custom one using sortFunction.\n * @group Props\n */\n customSort;\n /**\n * Whether to use the initial sort badge or not.\n * @group Props\n */\n showInitialSortBadge = true;\n /**\n * Whether the cell widths scale according to their content or not. Deprecated: Table layout is always \"auto\".\n * @group Props\n */\n autoLayout;\n /**\n * Export function.\n * @group Props\n */\n exportFunction;\n /**\n * Custom export header of the column to be exported as CSV.\n * @group Props\n */\n exportHeader;\n /**\n * Unique identifier of a stateful table to use in state storage.\n * @group Props\n */\n stateKey;\n /**\n * Defines where a stateful table keeps its state, valid values are \"session\" for sessionStorage and \"local\" for localStorage.\n * @group Props\n */\n stateStorage = 'session';\n /**\n * Defines the editing mode, valid values are \"cell\" and \"row\".\n * @group Props\n */\n editMode = 'cell';\n /**\n * Field name to use in row grouping.\n * @group Props\n */\n groupRowsBy;\n /**\n * Defines the size of the table.\n * @group Props\n */\n size;\n /**\n * Whether to show grid lines between cells.\n * @group Props\n */\n showGridlines;\n /**\n * Whether to display rows with alternating colors.\n * @group Props\n */\n stripedRows;\n /**\n * Order to sort when default row grouping is enabled.\n * @group Props\n */\n groupRowsByOrder = 1;\n /**\n * Defines the responsive mode, valid options are \"stack\" and \"scroll\".\n * @group Props\n */\n responsiveLayout = 'scroll';\n /**\n * The breakpoint to define the maximum width boundary when using stack responsive layout.\n * @group Props\n */\n breakpoint = '960px';\n /**\n * Locale to be used in paginator formatting.\n * @group Props\n */\n paginatorLocale;\n /**\n * An array of objects to display.\n * @group Props\n */\n get value() {\n return this._value;\n }\n set value(val) {\n this._value = val;\n }\n /**\n * An array of objects to represent dynamic columns.\n * @group Props\n */\n get columns() {\n return this._columns;\n }\n set columns(cols) {\n this._columns = cols;\n }\n /**\n * Index of the first row to be displayed.\n * @group Props\n */\n get first() {\n return this._first;\n }\n set first(val) {\n this._first = val;\n }\n /**\n * Number of rows to display per page.\n * @group Props\n */\n get rows() {\n return this._rows;\n }\n set rows(val) {\n this._rows = val;\n }\n /**\n * Number of total records, defaults to length of value when not defined.\n * @group Props\n */\n get totalRecords() {\n return this._totalRecords;\n }\n set totalRecords(val) {\n this._totalRecords = val;\n this.tableService.onTotalRecordsChange(this._totalRecords);\n }\n /**\n * Name of the field to sort data by default.\n * @group Props\n */\n get sortField() {\n return this._sortField;\n }\n set sortField(val) {\n this._sortField = val;\n }\n /**\n * Order to sort when default sorting is enabled.\n * @group Props\n */\n get sortOrder() {\n return this._sortOrder;\n }\n set sortOrder(val) {\n this._sortOrder = val;\n }\n /**\n * An array of SortMeta objects to sort the data by default in multiple sort mode.\n * @group Props\n */\n get multiSortMeta() {\n return this._multiSortMeta;\n }\n set multiSortMeta(val) {\n this._multiSortMeta = val;\n }\n /**\n * Selected row in single mode or an array of values in multiple mode.\n * @group Props\n */\n get selection() {\n return this._selection;\n }\n set selection(val) {\n this._selection = val;\n }\n /**\n * Indicates the height of rows to be scrolled.\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n get virtualRowHeight() {\n return this._virtualRowHeight;\n }\n set virtualRowHeight(val) {\n this._virtualRowHeight = val;\n console.log('The virtualRowHeight property is deprecated.');\n }\n /**\n * Whether all data is selected.\n * @group Props\n */\n get selectAll() {\n return this._selection;\n }\n set selectAll(val) {\n this._selection = val;\n }\n /**\n * Emits when the all of the items selected or unselected.\n * @param {TableSelectAllChangeEvent} event - custom all selection change event.\n * @group Emits\n */\n selectAllChange = new EventEmitter();\n /**\n * Callback to invoke on selection changed.\n * @param {any | null} value - selected data.\n * @group Emits\n */\n selectionChange = new EventEmitter();\n /**\n * Callback to invoke when a row is selected.\n * @param {TableRowSelectEvent} event - custom select event.\n * @group Emits\n */\n onRowSelect = new EventEmitter();\n /**\n * Callback to invoke when a row is unselected.\n * @param {TableRowUnSelectEvent} event - custom unselect event.\n * @group Emits\n */\n onRowUnselect = new EventEmitter();\n /**\n * Callback to invoke when pagination occurs.\n * @param {TablePageEvent} event - custom pagination event.\n * @group Emits\n */\n onPage = new EventEmitter();\n /**\n * Callback to invoke when a column gets sorted.\n * @param {Object} object - sort meta.\n * @group Emits\n */\n onSort = new EventEmitter();\n /**\n * Callback to invoke when data is filtered.\n * @param {TableFilterEvent} event - custom filtering event.\n * @group Emits\n */\n onFilter = new EventEmitter();\n /**\n * Callback to invoke when paging, sorting or filtering happens in lazy mode.\n * @param {TableLazyLoadEvent} event - custom lazy loading event.\n * @group Emits\n */\n onLazyLoad = new EventEmitter();\n /**\n * Callback to invoke when a row is expanded.\n * @param {TableRowExpandEvent} event - custom row expand event.\n * @group Emits\n */\n onRowExpand = new EventEmitter();\n /**\n * Callback to invoke when a row is collapsed.\n * @param {TableRowCollapseEvent} event - custom row collapse event.\n * @group Emits\n */\n onRowCollapse = new EventEmitter();\n /**\n * Callback to invoke when a row is selected with right click.\n * @param {TableContextMenuSelectEvent} event - custom context menu select event.\n * @group Emits\n */\n onContextMenuSelect = new EventEmitter();\n /**\n * Callback to invoke when a column is resized.\n * @param {TableColResizeEvent} event - custom column resize event.\n * @group Emits\n */\n onColResize = new EventEmitter();\n /**\n * Callback to invoke when a column is reordered.\n * @param {TableColumnReorderEvent} event - custom column reorder event.\n * @group Emits\n */\n onColReorder = new EventEmitter();\n /**\n * Callback to invoke when a row is reordered.\n * @param {TableRowReorderEvent} event - custom row reorder event.\n * @group Emits\n */\n onRowReorder = new EventEmitter();\n /**\n * Callback to invoke when a cell switches to edit mode.\n * @param {TableEditInitEvent} event - custom edit init event.\n * @group Emits\n */\n onEditInit = new EventEmitter();\n /**\n * Callback to invoke when cell edit is completed.\n * @param {TableEditCompleteEvent} event - custom edit complete event.\n * @group Emits\n */\n onEditComplete = new EventEmitter();\n /**\n * Callback to invoke when cell edit is cancelled with escape key.\n * @param {TableEditCancelEvent} event - custom edit cancel event.\n * @group Emits\n */\n onEditCancel = new EventEmitter();\n /**\n * Callback to invoke when state of header checkbox changes.\n * @param {TableHeaderCheckboxToggleEvent} event - custom header checkbox event.\n * @group Emits\n */\n onHeaderCheckboxToggle = new EventEmitter();\n /**\n * A function to implement custom sorting, refer to sorting section for details.\n * @param {any} any - sort meta.\n * @group Emits\n */\n sortFunction = new EventEmitter();\n /**\n * Callback to invoke on pagination.\n * @param {number} number - first element.\n * @group Emits\n */\n firstChange = new EventEmitter();\n /**\n * Callback to invoke on rows change.\n * @param {number} number - Row count.\n * @group Emits\n */\n rowsChange = new EventEmitter();\n /**\n * Callback to invoke table state is saved.\n * @param {TableState} object - table state.\n * @group Emits\n */\n onStateSave = new EventEmitter();\n /**\n * Callback to invoke table state is restored.\n * @param {TableState} object - table state.\n * @group Emits\n */\n onStateRestore = new EventEmitter();\n containerViewChild;\n resizeHelperViewChild;\n reorderIndicatorUpViewChild;\n reorderIndicatorDownViewChild;\n wrapperViewChild;\n tableViewChild;\n tableHeaderViewChild;\n tableFooterViewChild;\n scroller;\n _templates;\n _virtualRowHeight = 28;\n _value = [];\n _columns;\n _totalRecords = 0;\n _first = 0;\n _rows;\n filteredValue;\n // @todo will be refactored later\n _headerTemplate;\n headerTemplate;\n _headerGroupedTemplate;\n headerGroupedTemplate;\n _bodyTemplate;\n bodyTemplate;\n _loadingBodyTemplate;\n loadingBodyTemplate;\n _captionTemplate;\n captionTemplate;\n _footerTemplate;\n footerTemplate;\n _footerGroupedTemplate;\n footerGroupedTemplate;\n _summaryTemplate;\n summaryTemplate;\n _colGroupTemplate;\n colGroupTemplate;\n _expandedRowTemplate;\n expandedRowTemplate;\n _groupHeaderTemplate;\n groupHeaderTemplate;\n _groupFooterTemplate;\n groupFooterTemplate;\n _frozenExpandedRowTemplate;\n frozenExpandedRowTemplate;\n _frozenHeaderTemplate;\n frozenHeaderTemplate;\n _frozenBodyTemplate;\n frozenBodyTemplate;\n _frozenFooterTemplate;\n frozenFooterTemplate;\n _frozenColGroupTemplate;\n frozenColGroupTemplate;\n _emptyMessageTemplate;\n emptyMessageTemplate;\n _paginatorLeftTemplate;\n paginatorLeftTemplate;\n _paginatorRightTemplate;\n paginatorRightTemplate;\n _paginatorDropdownItemTemplate;\n paginatorDropdownItemTemplate;\n _loadingIconTemplate;\n loadingIconTemplate;\n _reorderIndicatorUpIconTemplate;\n reorderIndicatorUpIconTemplate;\n _reorderIndicatorDownIconTemplate;\n reorderIndicatorDownIconTemplate;\n _sortIconTemplate;\n sortIconTemplate;\n _checkboxIconTemplate;\n checkboxIconTemplate;\n _headerCheckboxIconTemplate;\n headerCheckboxIconTemplate;\n _paginatorDropdownIconTemplate;\n paginatorDropdownIconTemplate;\n _paginatorFirstPageLinkIconTemplate;\n paginatorFirstPageLinkIconTemplate;\n _paginatorLastPageLinkIconTemplate;\n paginatorLastPageLinkIconTemplate;\n _paginatorPreviousPageLinkIconTemplate;\n paginatorPreviousPageLinkIconTemplate;\n _paginatorNextPageLinkIconTemplate;\n paginatorNextPageLinkIconTemplate;\n selectionKeys = {};\n lastResizerHelperX;\n reorderIconWidth;\n reorderIconHeight;\n draggedColumn;\n draggedRowIndex;\n droppedRowIndex;\n rowDragging;\n dropPosition;\n editingCell;\n editingCellData;\n editingCellField;\n editingCellRowIndex;\n selfClick;\n documentEditListener;\n _multiSortMeta;\n _sortField;\n _sortOrder = 1;\n preventSelectionSetterPropagation;\n _selection;\n _selectAll = null;\n anchorRowIndex;\n rangeRowIndex;\n filterTimeout;\n initialized;\n rowTouched;\n restoringSort;\n restoringFilter;\n stateRestored;\n columnOrderStateRestored;\n columnWidthsState;\n tableWidthState;\n overlaySubscription;\n resizeColumnElement;\n columnResizing = false;\n rowGroupHeaderStyleObject = {};\n id = UniqueComponentId();\n styleElement;\n responsiveStyleElement;\n overlayService = inject(OverlayService);\n filterService = inject(FilterService);\n tableService = inject(TableService);\n zone = inject(NgZone);\n _componentStyle = inject(TableStyle);\n ngOnInit() {\n super.ngOnInit();\n if (this.lazy && this.lazyLoadOnInit) {\n if (!this.virtualScroll) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n if (this.restoringFilter) {\n this.restoringFilter = false;\n }\n }\n if (this.responsiveLayout === 'stack') {\n this.createResponsiveStyle();\n }\n this.initialized = true;\n }\n ngAfterContentInit() {\n this._templates.forEach((item) => {\n switch (item.getType()) {\n case 'caption':\n this.captionTemplate = item.template;\n break;\n case 'header':\n this.headerTemplate = item.template;\n break;\n case 'headergrouped':\n this.headerGroupedTemplate = item.template;\n break;\n case 'body':\n this.bodyTemplate = item.template;\n break;\n case 'loadingbody':\n this.loadingBodyTemplate = item.template;\n break;\n case 'footer':\n this.footerTemplate = item.template;\n break;\n case 'footergrouped':\n this.footerGroupedTemplate = item.template;\n break;\n case 'summary':\n this.summaryTemplate = item.template;\n break;\n case 'colgroup':\n this.colGroupTemplate = item.template;\n break;\n case 'rowexpansion':\n this.expandedRowTemplate = item.template;\n break;\n case 'groupheader':\n this.groupHeaderTemplate = item.template;\n break;\n case 'groupfooter':\n this.groupFooterTemplate = item.template;\n break;\n case 'frozenheader':\n this.frozenHeaderTemplate = item.template;\n break;\n case 'frozenbody':\n this.frozenBodyTemplate = item.template;\n break;\n case 'frozenfooter':\n this.frozenFooterTemplate = item.template;\n break;\n case 'frozencolgroup':\n this.frozenColGroupTemplate = item.template;\n break;\n case 'frozenrowexpansion':\n this.frozenExpandedRowTemplate = item.template;\n break;\n case 'emptymessage':\n this.emptyMessageTemplate = item.template;\n break;\n case 'paginatorleft':\n this.paginatorLeftTemplate = item.template;\n break;\n case 'paginatorright':\n this.paginatorRightTemplate = item.template;\n break;\n case 'paginatordropdownicon':\n this.paginatorDropdownIconTemplate = item.template;\n break;\n case 'paginatordropdownitem':\n this.paginatorDropdownItemTemplate = item.template;\n break;\n case 'paginatorfirstpagelinkicon':\n this.paginatorFirstPageLinkIconTemplate = item.template;\n break;\n case 'paginatorlastpagelinkicon':\n this.paginatorLastPageLinkIconTemplate = item.template;\n break;\n case 'paginatorpreviouspagelinkicon':\n this.paginatorPreviousPageLinkIconTemplate = item.template;\n break;\n case 'paginatornextpagelinkicon':\n this.paginatorNextPageLinkIconTemplate = item.template;\n break;\n case 'loadingicon':\n this.loadingIconTemplate = item.template;\n break;\n case 'reorderindicatorupicon':\n this.reorderIndicatorUpIconTemplate = item.template;\n break;\n case 'reorderindicatordownicon':\n this.reorderIndicatorDownIconTemplate = item.template;\n break;\n case 'sorticon':\n this.sortIconTemplate = item.template;\n break;\n case 'checkboxicon':\n this.checkboxIconTemplate = item.template;\n break;\n case 'headercheckboxicon':\n this.headerCheckboxIconTemplate = item.template;\n break;\n }\n });\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (isPlatformBrowser(this.platformId)) {\n if (this.isStateful() && this.resizableColumns) {\n this.restoreColumnWidths();\n }\n }\n }\n ngOnChanges(simpleChange) {\n super.ngOnChanges(simpleChange);\n if (simpleChange.value) {\n if (this.isStateful() && !this.stateRestored && isPlatformBrowser(this.platformId)) {\n this.restoreState();\n }\n this._value = simpleChange.value.currentValue;\n if (!this.lazy) {\n this.totalRecords = this._value ? this._value.length : 0;\n if (this.sortMode == 'single' && (this.sortField || this.groupRowsBy))\n this.sortSingle();\n else if (this.sortMode == 'multiple' && (this.multiSortMeta || this.groupRowsBy))\n this.sortMultiple();\n else if (this.hasFilter())\n //sort already filters\n this._filter();\n }\n this.tableService.onValueChange(simpleChange.value.currentValue);\n }\n if (simpleChange.columns) {\n if (!this.isStateful()) {\n this._columns = simpleChange.columns.currentValue;\n this.tableService.onColumnsChange(simpleChange.columns.currentValue);\n }\n if (this._columns && this.isStateful() && this.reorderableColumns && !this.columnOrderStateRestored) {\n this.restoreColumnOrder();\n this.tableService.onColumnsChange(this._columns);\n }\n }\n if (simpleChange.sortField) {\n this._sortField = simpleChange.sortField.currentValue;\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n if (simpleChange.groupRowsBy) {\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n if (simpleChange.sortOrder) {\n this._sortOrder = simpleChange.sortOrder.currentValue;\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n if (simpleChange.groupRowsByOrder) {\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n if (simpleChange.multiSortMeta) {\n this._multiSortMeta = simpleChange.multiSortMeta.currentValue;\n if (this.sortMode === 'multiple' && (this.initialized || (!this.lazy && !this.virtualScroll))) {\n this.sortMultiple();\n }\n }\n if (simpleChange.selection) {\n this._selection = simpleChange.selection.currentValue;\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n }\n this.preventSelectionSetterPropagation = false;\n }\n if (simpleChange.selectAll) {\n this._selectAll = simpleChange.selectAll.currentValue;\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n if (this.isStateful()) {\n this.saveState();\n }\n }\n this.preventSelectionSetterPropagation = false;\n }\n }\n get processedData() {\n return this.filteredValue || this.value || [];\n }\n _initialColWidths;\n dataToRender(data) {\n const _data = data || this.processedData;\n if (_data && this.paginator) {\n const first = this.lazy ? 0 : this.first;\n return _data.slice(first, first + this.rows);\n }\n return _data;\n }\n updateSelectionKeys() {\n if (this.dataKey && this._selection) {\n this.selectionKeys = {};\n if (Array.isArray(this._selection)) {\n for (let data of this._selection) {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(data, this.dataKey))] = 1;\n }\n }\n else {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(this._selection, this.dataKey))] = 1;\n }\n }\n }\n onPageChange(event) {\n this.first = event.first;\n this.rows = event.rows;\n this.onPage.emit({\n first: this.first,\n rows: this.rows\n });\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n this.firstChange.emit(this.first);\n this.rowsChange.emit(this.rows);\n this.tableService.onValueChange(this.value);\n if (this.isStateful()) {\n this.saveState();\n }\n this.anchorRowIndex = null;\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n sort(event) {\n let originalEvent = event.originalEvent;\n if (this.sortMode === 'single') {\n this._sortOrder = this.sortField === event.field ? this.sortOrder * -1 : this.defaultSortOrder;\n this._sortField = event.field;\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n this.sortSingle();\n }\n if (this.sortMode === 'multiple') {\n let metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n let sortMeta = this.getSortMeta(event.field);\n if (sortMeta) {\n if (!metaKey) {\n this._multiSortMeta = [\n {\n field: event.field,\n order: sortMeta.order * -1\n }\n ];\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n }\n else {\n sortMeta.order = sortMeta.order * -1;\n }\n }\n else {\n if (!metaKey || !this.multiSortMeta) {\n this._multiSortMeta = [];\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n }\n }\n this._multiSortMeta.push({\n field: event.field,\n order: this.defaultSortOrder\n });\n }\n this.sortMultiple();\n }\n if (this.isStateful()) {\n this.saveState();\n }\n this.anchorRowIndex = null;\n }\n sortSingle() {\n let field = this.sortField || this.groupRowsBy;\n let order = this.sortField ? this.sortOrder : this.groupRowsByOrder;\n if (this.groupRowsBy && this.sortField && this.groupRowsBy !== this.sortField) {\n this._multiSortMeta = [this.getGroupRowsMeta(), { field: this.sortField, order: this.sortOrder }];\n this.sortMultiple();\n return;\n }\n if (field && order) {\n if (this.restoringSort) {\n this.restoringSort = false;\n }\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else if (this.value) {\n if (this.customSort) {\n this.sortFunction.emit({\n data: this.value,\n mode: this.sortMode,\n field: field,\n order: order\n });\n }\n else {\n this.value.sort((data1, data2) => {\n let value1 = ObjectUtils.resolveFieldData(data1, field);\n let value2 = ObjectUtils.resolveFieldData(data2, field);\n let result = null;\n if (value1 == null && value2 != null)\n result = -1;\n else if (value1 != null && value2 == null)\n result = 1;\n else if (value1 == null && value2 == null)\n result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string')\n result = value1.localeCompare(value2);\n else\n result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return order * result;\n });\n this._value = [...this.value];\n }\n if (this.hasFilter()) {\n this._filter();\n }\n }\n let sortMeta = {\n field: field,\n order: order\n };\n this.onSort.emit(sortMeta);\n this.tableService.onSort(sortMeta);\n }\n }\n sortMultiple() {\n if (this.groupRowsBy) {\n if (!this._multiSortMeta)\n this._multiSortMeta = [this.getGroupRowsMeta()];\n else if (this.multiSortMeta[0].field !== this.groupRowsBy)\n this._multiSortMeta = [this.getGroupRowsMeta(), ...this._multiSortMeta];\n }\n if (this.multiSortMeta) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else if (this.value) {\n if (this.customSort) {\n this.sortFunction.emit({\n data: this.value,\n mode: this.sortMode,\n multiSortMeta: this.multiSortMeta\n });\n }\n else {\n this.value.sort((data1, data2) => {\n return this.multisortField(data1, data2, this.multiSortMeta, 0);\n });\n this._value = [...this.value];\n }\n if (this.hasFilter()) {\n this._filter();\n }\n }\n this.onSort.emit({\n multisortmeta: this.multiSortMeta\n });\n this.tableService.onSort(this.multiSortMeta);\n }\n }\n multisortField(data1, data2, multiSortMeta, index) {\n const value1 = ObjectUtils.resolveFieldData(data1, multiSortMeta[index].field);\n const value2 = ObjectUtils.resolveFieldData(data2, multiSortMeta[index].field);\n if (ObjectUtils.compare(value1, value2, this.filterLocale) === 0) {\n return multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, multiSortMeta, index + 1) : 0;\n }\n return this.compareValuesOnSort(value1, value2, multiSortMeta[index].order);\n }\n compareValuesOnSort(value1, value2, order) {\n return ObjectUtils.sort(value1, value2, order, this.filterLocale, this.sortOrder);\n }\n getSortMeta(field) {\n if (this.multiSortMeta && this.multiSortMeta.length) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field === field) {\n return this.multiSortMeta[i];\n }\n }\n }\n return null;\n }\n isSorted(field) {\n if (this.sortMode === 'single') {\n return this.sortField && this.sortField === field;\n }\n else if (this.sortMode === 'multiple') {\n let sorted = false;\n if (this.multiSortMeta) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field == field) {\n sorted = true;\n break;\n }\n }\n }\n return sorted;\n }\n }\n handleRowClick(event) {\n let target = event.originalEvent.target;\n let targetNode = target.nodeName;\n let parentNode = target.parentElement && target.parentElement.nodeName;\n if (targetNode == 'INPUT' || targetNode == 'BUTTON' || targetNode == 'A' || parentNode == 'INPUT' || parentNode == 'BUTTON' || parentNode == 'A' || DomHandler.hasClass(event.originalEvent.target, 'p-clickable')) {\n return;\n }\n if (this.selectionMode) {\n let rowData = event.rowData;\n let rowIndex = event.rowIndex;\n this.preventSelectionSetterPropagation = true;\n if (this.isMultipleSelectionMode() && event.originalEvent.shiftKey && this.anchorRowIndex != null) {\n DomHandler.clearSelection();\n if (this.rangeRowIndex != null) {\n this.clearSelectionRange(event.originalEvent);\n }\n this.rangeRowIndex = rowIndex;\n this.selectRange(event.originalEvent, rowIndex);\n }\n else {\n let selected = this.isSelected(rowData);\n if (!selected && !this.isRowSelectable(rowData, rowIndex)) {\n return;\n }\n let metaSelection = this.rowTouched ? false : this.metaKeySelection;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n if (metaSelection) {\n let metaKey = event.originalEvent.metaKey || event.originalEvent.ctrlKey;\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(null);\n }\n else {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row'\n });\n }\n else {\n if (this.isSingleSelectionMode()) {\n this._selection = rowData;\n this.selectionChange.emit(rowData);\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this._selection = this.selection || [];\n }\n else {\n this._selection = [];\n this.selectionKeys = {};\n }\n this._selection = [...this.selection, rowData];\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n }\n }\n else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n }\n else {\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n else if (this.selectionMode === 'multiple') {\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n else {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: rowIndex\n });\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n }\n }\n this.tableService.onSelectionChange();\n if (this.isStateful()) {\n this.saveState();\n }\n }\n this.rowTouched = false;\n }\n handleRowTouchEnd(event) {\n this.rowTouched = true;\n }\n handleRowRightClick(event) {\n if (this.contextMenu) {\n const rowData = event.rowData;\n const rowIndex = event.rowIndex;\n if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = rowData;\n this.contextMenuSelectionChange.emit(rowData);\n this.onContextMenuSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.rowIndex\n });\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(rowData);\n }\n else if (this.contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n if (!selected) {\n if (!this.isRowSelectable(rowData, rowIndex)) {\n return;\n }\n if (this.isSingleSelectionMode()) {\n this.selection = rowData;\n this.selectionChange.emit(rowData);\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n else if (this.isMultipleSelectionMode()) {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n this.tableService.onSelectionChange();\n this.contextMenu.show(event.originalEvent);\n this.onContextMenuSelect.emit({\n originalEvent: event,\n data: rowData,\n index: event.rowIndex\n });\n }\n }\n }\n selectRange(event, rowIndex) {\n let rangeStart, rangeEnd;\n if (this.anchorRowIndex > rowIndex) {\n rangeStart = rowIndex;\n rangeEnd = this.anchorRowIndex;\n }\n else if (this.anchorRowIndex < rowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = rowIndex;\n }\n else {\n rangeStart = rowIndex;\n rangeEnd = rowIndex;\n }\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n let rangeRowsData = [];\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = this.filteredValue ? this.filteredValue[i] : this.value[i];\n if (!this.isSelected(rangeRowData)) {\n if (!this.isRowSelectable(rangeRowData, rowIndex)) {\n continue;\n }\n rangeRowsData.push(rangeRowData);\n this._selection = [...this.selection, rangeRowData];\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event,\n data: rangeRowsData,\n type: 'row'\n });\n }\n clearSelectionRange(event) {\n let rangeStart, rangeEnd;\n let rangeRowIndex = this.rangeRowIndex;\n let anchorRowIndex = this.anchorRowIndex;\n if (rangeRowIndex > anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n else if (rangeRowIndex < anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n }\n else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = this.value[i];\n let selectionIndex = this.findIndexInSelection(rangeRowData);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n this.onRowUnselect.emit({\n originalEvent: event,\n data: rangeRowData,\n type: 'row'\n });\n }\n }\n isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys[ObjectUtils.resolveFieldData(rowData, this.dataKey)] !== undefined;\n }\n else {\n if (Array.isArray(this.selection))\n return this.findIndexInSelection(rowData) > -1;\n else\n return this.equals(rowData, this.selection);\n }\n }\n return false;\n }\n findIndexInSelection(rowData) {\n let index = -1;\n if (this.selection && this.selection.length) {\n for (let i = 0; i < this.selection.length; i++) {\n if (this.equals(rowData, this.selection[i])) {\n index = i;\n break;\n }\n }\n }\n return index;\n }\n isRowSelectable(data, index) {\n if (this.rowSelectable && !this.rowSelectable({ data, index })) {\n return false;\n }\n return true;\n }\n toggleRowWithRadio(event, rowData) {\n this.preventSelectionSetterPropagation = true;\n if (this.selection != rowData) {\n if (!this.isRowSelectable(rowData, event.rowIndex)) {\n return;\n }\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'radiobutton'\n });\n if (this.dataKey) {\n this.selectionKeys = {};\n this.selectionKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] = 1;\n }\n }\n else {\n this._selection = null;\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'radiobutton'\n });\n }\n this.tableService.onSelectionChange();\n if (this.isStateful()) {\n this.saveState();\n }\n }\n toggleRowWithCheckbox(event, rowData) {\n this.selection = this.selection || [];\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n this.preventSelectionSetterPropagation = true;\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'checkbox'\n });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n else {\n if (!this.isRowSelectable(rowData, event.rowIndex)) {\n return;\n }\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'checkbox'\n });\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n this.tableService.onSelectionChange();\n if (this.isStateful()) {\n this.saveState();\n }\n }\n toggleRowsWithCheckbox(event, check) {\n if (this._selectAll !== null) {\n this.selectAllChange.emit({ originalEvent: event, checked: check });\n }\n else {\n const data = this.selectionPageOnly ? this.dataToRender(this.processedData) : this.processedData;\n let selection = this.selectionPageOnly && this._selection ? this._selection.filter((s) => !data.some((d) => this.equals(s, d))) : [];\n if (check) {\n selection = this.frozenValue ? [...selection, ...this.frozenValue, ...data] : [...selection, ...data];\n selection = this.rowSelectable ? selection.filter((data, index) => this.rowSelectable({ data, index })) : selection;\n }\n this._selection = selection;\n this.preventSelectionSetterPropagation = true;\n this.updateSelectionKeys();\n this.selectionChange.emit(this._selection);\n this.tableService.onSelectionChange();\n this.onHeaderCheckboxToggle.emit({\n originalEvent: event,\n checked: check\n });\n if (this.isStateful()) {\n this.saveState();\n }\n }\n }\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : ObjectUtils.equals(data1, data2, this.dataKey);\n }\n /* Legacy Filtering for custom elements */\n filter(value, field, matchMode) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n if (!this.isFilterBlank(value)) {\n this.filters[field] = { value: value, matchMode: matchMode };\n }\n else if (this.filters[field]) {\n delete this.filters[field];\n }\n this.filterTimeout = setTimeout(() => {\n this._filter();\n this.filterTimeout = null;\n }, this.filterDelay);\n this.anchorRowIndex = null;\n }\n filterGlobal(value, matchMode) {\n this.filter(value, 'global', matchMode);\n }\n isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (Array.isArray(filter) && filter.length == 0))\n return true;\n else\n return false;\n }\n return true;\n }\n _filter() {\n if (!this.restoringFilter) {\n this.first = 0;\n this.firstChange.emit(this.first);\n }\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else {\n if (!this.value) {\n return;\n }\n if (!this.hasFilter()) {\n this.filteredValue = null;\n if (this.paginator) {\n this.totalRecords = this.value ? this.value.length : 0;\n }\n }\n else {\n let globalFilterFieldsArray;\n if (this.filters['global']) {\n if (!this.columns && !this.globalFilterFields)\n throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');\n else\n globalFilterFieldsArray = this.globalFilterFields || this.columns;\n }\n this.filteredValue = [];\n for (let i = 0; i < this.value.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop) && prop !== 'global') {\n localFiltered = true;\n let filterField = prop;\n let filterMeta = this.filters[filterField];\n if (Array.isArray(filterMeta)) {\n for (let meta of filterMeta) {\n localMatch = this.executeLocalFilter(filterField, this.value[i], meta);\n if ((meta.operator === FilterOperator.OR && localMatch) || (meta.operator === FilterOperator.AND && !localMatch)) {\n break;\n }\n }\n }\n else {\n localMatch = this.executeLocalFilter(filterField, this.value[i], filterMeta);\n }\n if (!localMatch) {\n break;\n }\n }\n }\n if (this.filters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (let j = 0; j < globalFilterFieldsArray.length; j++) {\n let globalFilterField = globalFilterFieldsArray[j].field || globalFilterFieldsArray[j];\n globalMatch = this.filterService.filters[this.filters['global'].matchMode](ObjectUtils.resolveFieldData(this.value[i], globalFilterField), this.filters['global'].value, this.filterLocale);\n if (globalMatch) {\n break;\n }\n }\n }\n let matches;\n if (this.filters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n }\n else {\n matches = localFiltered && localMatch;\n }\n if (matches) {\n this.filteredValue.push(this.value[i]);\n }\n }\n if (this.filteredValue.length === this.value.length) {\n this.filteredValue = null;\n }\n if (this.paginator) {\n this.totalRecords = this.filteredValue ? this.filteredValue.length : this.value ? this.value.length : 0;\n }\n }\n }\n this.onFilter.emit({\n filters: this.filters,\n filteredValue: this.filteredValue || this.value\n });\n this.tableService.onValueChange(this.value);\n if (this.isStateful() && !this.restoringFilter) {\n this.saveState();\n }\n if (this.restoringFilter) {\n this.restoringFilter = false;\n }\n this.cd.markForCheck();\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n executeLocalFilter(field, rowData, filterMeta) {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = ObjectUtils.resolveFieldData(rowData, field);\n let filterConstraint = this.filterService.filters[filterMatchMode];\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n }\n hasFilter() {\n let empty = true;\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop)) {\n empty = false;\n break;\n }\n }\n return !empty;\n }\n createLazyLoadMetadata() {\n return {\n first: this.first,\n rows: this.rows,\n sortField: this.sortField,\n sortOrder: this.sortOrder,\n filters: this.filters,\n globalFilter: this.filters && this.filters['global'] ? this.filters['global'].value : null,\n multiSortMeta: this.multiSortMeta,\n forceUpdate: () => this.cd.detectChanges()\n };\n }\n clear() {\n this._sortField = null;\n this._sortOrder = this.defaultSortOrder;\n this._multiSortMeta = null;\n this.tableService.onSort(null);\n this.clearFilterValues();\n this.filteredValue = null;\n this.first = 0;\n this.firstChange.emit(this.first);\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else {\n this.totalRecords = this._value ? this._value.length : 0;\n }\n }\n clearFilterValues() {\n for (const [, filterMetadata] of Object.entries(this.filters)) {\n if (Array.isArray(filterMetadata)) {\n for (let filter of filterMetadata) {\n filter.value = null;\n }\n }\n else if (filterMetadata) {\n filterMetadata.value = null;\n }\n }\n }\n reset() {\n this.clear();\n }\n getExportHeader(column) {\n return column[this.exportHeader] || column.header || column.field;\n }\n /**\n * Data export method.\n * @param {ExportCSVOptions} object - Export options.\n * @group Method\n */\n exportCSV(options) {\n let data;\n let csv = '';\n let columns = this.columns;\n if (options && options.selectionOnly) {\n data = this.selection || [];\n }\n else if (options && options.allValues) {\n data = this.value || [];\n }\n else {\n data = this.filteredValue || this.value;\n if (this.frozenValue) {\n data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n }\n const exportableColumns = columns.filter((column) => column.exportable !== false && column.field);\n //headers\n csv += exportableColumns.map((column) => '\"' + this.getExportHeader(column) + '\"').join(this.csvSeparator);\n //body\n const body = data\n .map((record) => exportableColumns\n .map((column) => {\n let cellData = ObjectUtils.resolveFieldData(record, column.field);\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: column.field\n });\n }\n else\n cellData = String(cellData).replace(/\"/g, '\"\"');\n }\n else\n cellData = '';\n return '\"' + cellData + '\"';\n })\n .join(this.csvSeparator))\n .join('\\n');\n if (body.length) {\n csv += '\\n' + body;\n }\n let blob = new Blob([new Uint8Array([0xef, 0xbb, 0xbf]), csv], {\n type: 'text/csv;charset=utf-8;'\n });\n let link = this.renderer.createElement('a');\n link.style.display = 'none';\n this.renderer.appendChild(this.document.body, link);\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', this.exportFilename + '.csv');\n link.click();\n }\n else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n this.document.defaultView.open(encodeURI(csv));\n }\n this.renderer.removeChild(this.document.body, link);\n }\n onLazyItemLoad(event) {\n this.onLazyLoad.emit({\n ...this.createLazyLoadMetadata(),\n ...event,\n rows: event.last - event.first\n });\n }\n /**\n * Resets scroll to top.\n * @group Method\n */\n resetScrollTop() {\n if (this.virtualScroll)\n this.scrollToVirtualIndex(0);\n else\n this.scrollTo({ top: 0 });\n }\n /**\n * Scrolls to given index when using virtual scroll.\n * @param {number} index - index of the element.\n * @group Method\n */\n scrollToVirtualIndex(index) {\n this.scroller && this.scroller.scrollToIndex(index);\n }\n /**\n * Scrolls to given index.\n * @param {ScrollToOptions} options - scroll options.\n * @group Method\n */\n scrollTo(options) {\n if (this.virtualScroll) {\n this.scroller?.scrollTo(options);\n }\n else if (this.wrapperViewChild && this.wrapperViewChild.nativeElement) {\n if (this.wrapperViewChild.nativeElement.scrollTo) {\n this.wrapperViewChild.nativeElement.scrollTo(options);\n }\n else {\n this.wrapperViewChild.nativeElement.scrollLeft = options.left;\n this.wrapperViewChild.nativeElement.scrollTop = options.top;\n }\n }\n }\n updateEditingCell(cell, data, field, index) {\n this.editingCell = cell;\n this.editingCellData = data;\n this.editingCellField = field;\n this.editingCellRowIndex = index;\n this.bindDocumentEditListener();\n }\n isEditingCellValid() {\n return this.editingCell && DomHandler.find(this.editingCell, '.ng-invalid.ng-dirty').length === 0;\n }\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = this.renderer.listen(this.document, 'click', (event) => {\n if (this.editingCell && !this.selfClick && this.isEditingCellValid()) {\n DomHandler.removeClass(this.editingCell, 'p-cell-editing');\n this.editingCell = null;\n this.onEditComplete.emit({\n field: this.editingCellField,\n data: this.editingCellData,\n originalEvent: event,\n index: this.editingCellRowIndex\n });\n this.editingCellField = null;\n this.editingCellData = null;\n this.editingCellRowIndex = null;\n this.unbindDocumentEditListener();\n this.cd.markForCheck();\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n }\n this.selfClick = false;\n });\n }\n }\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n this.documentEditListener();\n this.documentEditListener = null;\n }\n }\n initRowEdit(rowData) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n this.editingRowKeys[dataKeyValue] = true;\n }\n saveRowEdit(rowData, rowElement) {\n if (DomHandler.find(rowElement, '.ng-invalid.ng-dirty').length === 0) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n }\n cancelRowEdit(rowData) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n toggleRow(rowData, event) {\n if (!this.dataKey && !this.groupRowsBy) {\n throw new Error('dataKey or groupRowsBy must be defined to use row expansion');\n }\n let dataKeyValue = this.groupRowsBy ? String(ObjectUtils.resolveFieldData(rowData, this.groupRowsBy)) : String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n if (this.expandedRowKeys[dataKeyValue] != null) {\n delete this.expandedRowKeys[dataKeyValue];\n this.onRowCollapse.emit({\n originalEvent: event,\n data: rowData\n });\n }\n else {\n if (this.rowExpandMode === 'single') {\n this.expandedRowKeys = {};\n }\n this.expandedRowKeys[dataKeyValue] = true;\n this.onRowExpand.emit({\n originalEvent: event,\n data: rowData\n });\n }\n if (event) {\n event.preventDefault();\n }\n if (this.isStateful()) {\n this.saveState();\n }\n }\n isRowExpanded(rowData) {\n return this.groupRowsBy ? this.expandedRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.groupRowsBy))] === true : this.expandedRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] === true;\n }\n isRowEditing(rowData) {\n return this.editingRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] === true;\n }\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n }\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n }\n onColumnResizeBegin(event) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild?.nativeElement).left;\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n if (event.type == 'touchstart') {\n this.lastResizerHelperX = event.changedTouches[0].clientX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft;\n }\n else {\n this.lastResizerHelperX = event.pageX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft;\n }\n this.onColumnResize(event);\n event.preventDefault();\n }\n onColumnResize(event) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild?.nativeElement).left;\n DomHandler.addClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n this.resizeHelperViewChild.nativeElement.style.height = this.containerViewChild?.nativeElement.offsetHeight + 'px';\n this.resizeHelperViewChild.nativeElement.style.top = 0 + 'px';\n if (event.type == 'touchmove') {\n this.resizeHelperViewChild.nativeElement.style.left = event.changedTouches[0].clientX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft + 'px';\n }\n else {\n this.resizeHelperViewChild.nativeElement.style.left = event.pageX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft + 'px';\n }\n this.resizeHelperViewChild.nativeElement.style.display = 'block';\n }\n onColumnResizeEnd() {\n let delta = this.resizeHelperViewChild?.nativeElement.offsetLeft - this.lastResizerHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth.replace(/[^\\d.]/g, '') || 15;\n if (newColumnWidth >= minWidth) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n }\n else if (this.columnResizeMode === 'expand') {\n this._initialColWidths = this._totalTableWidth();\n let tableWidth = this.tableViewChild?.nativeElement.offsetWidth + delta;\n this.setResizeTableWidth(tableWidth + 'px');\n this.resizeTableCells(newColumnWidth, null);\n }\n this.onColResize.emit({\n element: this.resizeColumnElement,\n delta: delta\n });\n if (this.isStateful()) {\n this.saveState();\n }\n }\n this.resizeHelperViewChild.nativeElement.style.display = 'none';\n DomHandler.removeClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n }\n _totalTableWidth() {\n let widths = [];\n const tableHead = DomHandler.findSingle(this.containerViewChild.nativeElement, '.p-datatable-thead');\n let headers = DomHandler.find(tableHead, 'tr > th');\n headers.forEach((header) => widths.push(DomHandler.getOuterWidth(header)));\n return widths;\n }\n onColumnDragStart(event, columnElement) {\n this.reorderIconWidth = DomHandler.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement);\n this.reorderIconHeight = DomHandler.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement);\n this.draggedColumn = columnElement;\n event.dataTransfer.setData('text', 'b'); // For firefox\n }\n onColumnDragEnter(event, dropHeader) {\n if (this.reorderableColumns && this.draggedColumn && dropHeader) {\n event.preventDefault();\n let containerOffset = DomHandler.getOffset(this.containerViewChild?.nativeElement);\n let dropHeaderOffset = DomHandler.getOffset(dropHeader);\n if (this.draggedColumn != dropHeader) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'preorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropHeader, 'preorderablecolumn');\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let targetTop = containerOffset.top - dropHeaderOffset.top;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n this.reorderIndicatorUpViewChild.nativeElement.style.top = dropHeaderOffset.top - containerOffset.top - (this.reorderIconHeight - 1) + 'px';\n this.reorderIndicatorDownViewChild.nativeElement.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n if (event.pageX > columnCenter) {\n this.reorderIndicatorUpViewChild.nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.reorderIconWidth / 2) + 'px';\n this.reorderIndicatorDownViewChild.nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.reorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n }\n else {\n this.reorderIndicatorUpViewChild.nativeElement.style.left = targetLeft - Math.ceil(this.reorderIconWidth / 2) + 'px';\n this.reorderIndicatorDownViewChild.nativeElement.style.left = targetLeft - Math.ceil(this.reorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n this.reorderIndicatorUpViewChild.nativeElement.style.display = 'block';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'block';\n }\n else {\n event.dataTransfer.dropEffect = 'none';\n }\n }\n }\n onColumnDragLeave(event) {\n if (this.reorderableColumns && this.draggedColumn) {\n event.preventDefault();\n }\n }\n onColumnDrop(event, dropColumn) {\n event.preventDefault();\n if (this.draggedColumn) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'preorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropColumn, 'preorderablecolumn');\n let allowDrop = dragIndex != dropIndex;\n if (allowDrop && ((dropIndex - dragIndex == 1 && this.dropPosition === -1) || (dragIndex - dropIndex == 1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n if (allowDrop && dropIndex < dragIndex && this.dropPosition === 1) {\n dropIndex = dropIndex + 1;\n }\n if (allowDrop && dropIndex > dragIndex && this.dropPosition === -1) {\n dropIndex = dropIndex - 1;\n }\n if (allowDrop) {\n ObjectUtils.reorderArray(this.columns, dragIndex, dropIndex);\n this.onColReorder.emit({\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: this.columns\n });\n if (this.isStateful()) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.saveState();\n });\n });\n }\n }\n if (this.resizableColumns && this.resizeColumnElement) {\n let width = this.columnResizeMode === 'expand' ? this._initialColWidths : this._totalTableWidth();\n ObjectUtils.reorderArray(width, dragIndex + 1, dropIndex + 1);\n this.updateStyleElement(width, dragIndex, null, null);\n }\n this.reorderIndicatorUpViewChild.nativeElement.style.display = 'none';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'none';\n this.draggedColumn.draggable = false;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n }\n resizeTableCells(newColumnWidth, nextColumnWidth) {\n let colIndex = DomHandler.index(this.resizeColumnElement);\n let width = this.columnResizeMode === 'expand' ? this._initialColWidths : this._totalTableWidth();\n this.updateStyleElement(width, colIndex, newColumnWidth, nextColumnWidth);\n }\n updateStyleElement(width, colIndex, newColumnWidth, nextColumnWidth) {\n this.destroyStyleElement();\n this.createStyleElement();\n let innerHTML = '';\n width.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important;`;\n innerHTML += `\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n this.renderer.setProperty(this.styleElement, 'innerHTML', innerHTML);\n }\n onRowDragStart(event, index) {\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n }\n onRowDragOver(event, index, rowElement) {\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowY = DomHandler.getOffset(rowElement).top;\n let pageY = event.pageY;\n let rowMidY = rowY + DomHandler.getOuterHeight(rowElement) / 2;\n let prevRowElement = rowElement.previousElementSibling;\n if (pageY < rowMidY) {\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n this.droppedRowIndex = index;\n if (prevRowElement)\n DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n else {\n if (prevRowElement)\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n this.droppedRowIndex = index + 1;\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n }\n }\n onRowDragLeave(event, rowElement) {\n let prevRowElement = rowElement.previousElementSibling;\n if (prevRowElement) {\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-top');\n }\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n }\n onRowDrop(event, rowElement) {\n if (this.droppedRowIndex != null) {\n let dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n ObjectUtils.reorderArray(this.value, this.draggedRowIndex, dropIndex);\n if (this.virtualScroll) {\n // TODO: Check\n this._value = [...this._value];\n }\n this.onRowReorder.emit({\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex\n });\n }\n //cleanup\n this.onRowDragLeave(event, rowElement);\n this.onRowDragEnd(event);\n }\n isEmpty() {\n let data = this.filteredValue || this.value;\n return data == null || data.length == 0;\n }\n getBlockableElement() {\n return this.el.nativeElement.children[0];\n }\n getStorage() {\n if (isPlatformBrowser(this.platformId)) {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n case 'session':\n return window.sessionStorage;\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n }\n else {\n throw new Error('Browser storage is not available in the server side.');\n }\n }\n isStateful() {\n return this.stateKey != null;\n }\n saveState() {\n const storage = this.getStorage();\n let state = {};\n if (this.paginator) {\n state.first = this.first;\n state.rows = this.rows;\n }\n if (this.sortField) {\n state.sortField = this.sortField;\n state.sortOrder = this.sortOrder;\n }\n if (this.multiSortMeta) {\n state.multiSortMeta = this.multiSortMeta;\n }\n if (this.hasFilter()) {\n state.filters = this.filters;\n }\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n if (this.reorderableColumns) {\n this.saveColumnOrder(state);\n }\n if (this.selection) {\n state.selection = this.selection;\n }\n if (Object.keys(this.expandedRowKeys).length) {\n state.expandedRowKeys = this.expandedRowKeys;\n }\n storage.setItem(this.stateKey, JSON.stringify(state));\n this.onStateSave.emit(state);\n }\n clearState() {\n const storage = this.getStorage();\n if (this.stateKey) {\n storage.removeItem(this.stateKey);\n }\n }\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n const dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n const reviver = function (key, value) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n return value;\n };\n if (stateString) {\n let state = JSON.parse(stateString, reviver);\n if (this.paginator) {\n if (this.first !== undefined) {\n this.first = state.first;\n this.firstChange.emit(this.first);\n }\n if (this.rows !== undefined) {\n this.rows = state.rows;\n this.rowsChange.emit(this.rows);\n }\n }\n if (state.sortField) {\n this.restoringSort = true;\n this._sortField = state.sortField;\n this._sortOrder = state.sortOrder;\n }\n if (state.multiSortMeta) {\n this.restoringSort = true;\n this._multiSortMeta = state.multiSortMeta;\n }\n if (state.filters) {\n this.restoringFilter = true;\n this.filters = state.filters;\n }\n if (this.resizableColumns) {\n this.columnWidthsState = state.columnWidths;\n this.tableWidthState = state.tableWidth;\n }\n // if (this.reorderableColumns) {\n // this.restoreColumnOrder();\n // }\n if (state.expandedRowKeys) {\n this.expandedRowKeys = state.expandedRowKeys;\n }\n if (state.selection) {\n Promise.resolve(null).then(() => this.selectionChange.emit(state.selection));\n }\n this.stateRestored = true;\n this.onStateRestore.emit(state);\n }\n }\n saveColumnWidths(state) {\n let widths = [];\n let headers = DomHandler.find(this.containerViewChild?.nativeElement, '.p-datatable-thead > tr > th');\n headers.forEach((header) => widths.push(DomHandler.getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = DomHandler.getOuterWidth(this.tableViewChild?.nativeElement);\n }\n }\n setResizeTableWidth(width) {\n this.tableViewChild.nativeElement.style.width = width;\n this.tableViewChild.nativeElement.style.minWidth = width;\n }\n restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.setResizeTableWidth(this.tableWidthState + 'px');\n }\n if (ObjectUtils.isNotEmpty(widths)) {\n this.createStyleElement();\n let innerHTML = '';\n widths.forEach((width, index) => {\n let style = `width: ${width}px !important; max-width: ${width}px !important`;\n innerHTML += `\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n this.styleElement.innerHTML = innerHTML;\n }\n }\n }\n saveColumnOrder(state) {\n if (this.columns) {\n let columnOrder = [];\n this.columns.map((column) => {\n columnOrder.push(column.field || column.key);\n });\n state.columnOrder = columnOrder;\n }\n }\n restoreColumnOrder() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n if (stateString) {\n let state = JSON.parse(stateString);\n let columnOrder = state.columnOrder;\n if (columnOrder) {\n let reorderedColumns = [];\n columnOrder.map((key) => {\n let col = this.findColumnByKey(key);\n if (col) {\n reorderedColumns.push(col);\n }\n });\n this.columnOrderStateRestored = true;\n this.columns = reorderedColumns;\n }\n }\n }\n findColumnByKey(key) {\n if (this.columns) {\n for (let col of this.columns) {\n if (col.key === key || col.field === key)\n return col;\n else\n continue;\n }\n }\n else {\n return null;\n }\n }\n createStyleElement() {\n this.styleElement = this.renderer.createElement('style');\n this.styleElement.type = 'text/css';\n this.renderer.appendChild(this.document.head, this.styleElement);\n DomHandler.setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);\n }\n getGroupRowsMeta() {\n return { field: this.groupRowsBy, order: this.groupRowsByOrder };\n }\n createResponsiveStyle() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.responsiveStyleElement) {\n this.responsiveStyleElement = this.renderer.createElement('style');\n this.responsiveStyleElement.type = 'text/css';\n this.renderer.appendChild(this.document.head, this.responsiveStyleElement);\n let innerHTML = `\n @media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-table-container > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-datatable-column-title {\n display: block;\n }\n }\n `;\n this.renderer.setProperty(this.responsiveStyleElement, 'innerHTML', innerHTML);\n }\n }\n }\n destroyResponsiveStyle() {\n if (this.responsiveStyleElement) {\n this.renderer.removeChild(this.document.head, this.responsiveStyleElement);\n this.responsiveStyleElement = null;\n }\n }\n destroyStyleElement() {\n if (this.styleElement) {\n this.renderer.removeChild(this.document.head, this.styleElement);\n this.styleElement = null;\n }\n }\n ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.initialized = null;\n this.destroyStyleElement();\n this.destroyResponsiveStyle();\n super.ngOnDestroy();\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵTable_BaseFactory; return function Table_Factory(__ngFactoryType__) { return (ɵTable_BaseFactory || (ɵTable_BaseFactory = i0.ɵɵgetInheritedFactory(Table)))(__ngFactoryType__ || Table); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Table, selectors: [[\"p-table\"]], contentQueries: function Table_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, _c1, 4);\n i0.ɵɵcontentQuery(dirIndex, _c2, 4);\n i0.ɵɵcontentQuery(dirIndex, _c3, 4);\n i0.ɵɵcontentQuery(dirIndex, _c4, 4);\n i0.ɵɵcontentQuery(dirIndex, _c5, 4);\n i0.ɵɵcontentQuery(dirIndex, _c6, 4);\n i0.ɵɵcontentQuery(dirIndex, _c7, 4);\n i0.ɵɵcontentQuery(dirIndex, _c8, 4);\n i0.ɵɵcontentQuery(dirIndex, _c9, 4);\n i0.ɵɵcontentQuery(dirIndex, _c10, 4);\n i0.ɵɵcontentQuery(dirIndex, _c11, 4);\n i0.ɵɵcontentQuery(dirIndex, _c12, 4);\n i0.ɵɵcontentQuery(dirIndex, _c13, 4);\n i0.ɵɵcontentQuery(dirIndex, _c14, 4);\n i0.ɵɵcontentQuery(dirIndex, _c15, 4);\n i0.ɵɵcontentQuery(dirIndex, _c16, 4);\n i0.ɵɵcontentQuery(dirIndex, _c17, 4);\n i0.ɵɵcontentQuery(dirIndex, _c18, 4);\n i0.ɵɵcontentQuery(dirIndex, _c19, 4);\n i0.ɵɵcontentQuery(dirIndex, _c20, 4);\n i0.ɵɵcontentQuery(dirIndex, _c21, 4);\n i0.ɵɵcontentQuery(dirIndex, _c22, 4);\n i0.ɵɵcontentQuery(dirIndex, _c23, 4);\n i0.ɵɵcontentQuery(dirIndex, _c24, 4);\n i0.ɵɵcontentQuery(dirIndex, _c25, 4);\n i0.ɵɵcontentQuery(dirIndex, _c26, 4);\n i0.ɵɵcontentQuery(dirIndex, _c27, 4);\n i0.ɵɵcontentQuery(dirIndex, _c28, 4);\n i0.ɵɵcontentQuery(dirIndex, _c29, 4);\n i0.ɵɵcontentQuery(dirIndex, _c30, 4);\n i0.ɵɵcontentQuery(dirIndex, _c31, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._headerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._headerGroupedTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._bodyTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._loadingBodyTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._captionTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._footerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._footerGroupedTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._summaryTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._colGroupTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._expandedRowTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._groupHeaderTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._groupFooterTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._frozenExpandedRowTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._frozenHeaderTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._frozenBodyTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._frozenFooterTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._frozenColGroupTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._emptyMessageTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._paginatorLeftTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._paginatorRightTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._paginatorDropdownItemTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._loadingIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._reorderIndicatorUpIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._reorderIndicatorDownIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._sortIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._checkboxIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._headerCheckboxIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._paginatorDropdownIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._paginatorFirstPageLinkIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._paginatorLastPageLinkIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._paginatorPreviousPageLinkIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._paginatorNextPageLinkIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._templates = _t);\n } }, viewQuery: function Table_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c32, 5);\n i0.ɵɵviewQuery(_c33, 5);\n i0.ɵɵviewQuery(_c34, 5);\n i0.ɵɵviewQuery(_c35, 5);\n i0.ɵɵviewQuery(_c36, 5);\n i0.ɵɵviewQuery(_c37, 5);\n i0.ɵɵviewQuery(_c38, 5);\n i0.ɵɵviewQuery(_c39, 5);\n i0.ɵɵviewQuery(_c40, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.resizeHelperViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.reorderIndicatorUpViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.reorderIndicatorDownViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.wrapperViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tableViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tableHeaderViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tableFooterViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.scroller = _t.first);\n } }, inputs: { frozenColumns: \"frozenColumns\", frozenValue: \"frozenValue\", style: \"style\", styleClass: \"styleClass\", tableStyle: \"tableStyle\", tableStyleClass: \"tableStyleClass\", paginator: [2, \"paginator\", \"paginator\", booleanAttribute], pageLinks: [2, \"pageLinks\", \"pageLinks\", numberAttribute], rowsPerPageOptions: \"rowsPerPageOptions\", alwaysShowPaginator: [2, \"alwaysShowPaginator\", \"alwaysShowPaginator\", booleanAttribute], paginatorPosition: \"paginatorPosition\", paginatorStyleClass: \"paginatorStyleClass\", paginatorDropdownAppendTo: \"paginatorDropdownAppendTo\", paginatorDropdownScrollHeight: \"paginatorDropdownScrollHeight\", currentPageReportTemplate: \"currentPageReportTemplate\", showCurrentPageReport: [2, \"showCurrentPageReport\", \"showCurrentPageReport\", booleanAttribute], showJumpToPageDropdown: [2, \"showJumpToPageDropdown\", \"showJumpToPageDropdown\", booleanAttribute], showJumpToPageInput: [2, \"showJumpToPageInput\", \"showJumpToPageInput\", booleanAttribute], showFirstLastIcon: [2, \"showFirstLastIcon\", \"showFirstLastIcon\", booleanAttribute], showPageLinks: [2, \"showPageLinks\", \"showPageLinks\", booleanAttribute], defaultSortOrder: [2, \"defaultSortOrder\", \"defaultSortOrder\", numberAttribute], sortMode: \"sortMode\", resetPageOnSort: [2, \"resetPageOnSort\", \"resetPageOnSort\", booleanAttribute], selectionMode: \"selectionMode\", selectionPageOnly: [2, \"selectionPageOnly\", \"selectionPageOnly\", booleanAttribute], contextMenuSelection: \"contextMenuSelection\", contextMenuSelectionMode: \"contextMenuSelectionMode\", dataKey: \"dataKey\", metaKeySelection: [2, \"metaKeySelection\", \"metaKeySelection\", booleanAttribute], rowSelectable: \"rowSelectable\", rowTrackBy: \"rowTrackBy\", lazy: [2, \"lazy\", \"lazy\", booleanAttribute], lazyLoadOnInit: [2, \"lazyLoadOnInit\", \"lazyLoadOnInit\", booleanAttribute], compareSelectionBy: \"compareSelectionBy\", csvSeparator: \"csvSeparator\", exportFilename: \"exportFilename\", filters: \"filters\", globalFilterFields: \"globalFilterFields\", filterDelay: [2, \"filterDelay\", \"filterDelay\", numberAttribute], filterLocale: \"filterLocale\", expandedRowKeys: \"expandedRowKeys\", editingRowKeys: \"editingRowKeys\", rowExpandMode: \"rowExpandMode\", scrollable: [2, \"scrollable\", \"scrollable\", booleanAttribute], scrollDirection: \"scrollDirection\", rowGroupMode: \"rowGroupMode\", scrollHeight: \"scrollHeight\", virtualScroll: [2, \"virtualScroll\", \"virtualScroll\", booleanAttribute], virtualScrollItemSize: [2, \"virtualScrollItemSize\", \"virtualScrollItemSize\", numberAttribute], virtualScrollOptions: \"virtualScrollOptions\", virtualScrollDelay: [2, \"virtualScrollDelay\", \"virtualScrollDelay\", numberAttribute], frozenWidth: \"frozenWidth\", responsive: \"responsive\", contextMenu: \"contextMenu\", resizableColumns: [2, \"resizableColumns\", \"resizableColumns\", booleanAttribute], columnResizeMode: \"columnResizeMode\", reorderableColumns: [2, \"reorderableColumns\", \"reorderableColumns\", booleanAttribute], loading: [2, \"loading\", \"loading\", booleanAttribute], loadingIcon: \"loadingIcon\", showLoader: [2, \"showLoader\", \"showLoader\", booleanAttribute], rowHover: [2, \"rowHover\", \"rowHover\", booleanAttribute], customSort: [2, \"customSort\", \"customSort\", booleanAttribute], showInitialSortBadge: [2, \"showInitialSortBadge\", \"showInitialSortBadge\", booleanAttribute], autoLayout: [2, \"autoLayout\", \"autoLayout\", booleanAttribute], exportFunction: \"exportFunction\", exportHeader: \"exportHeader\", stateKey: \"stateKey\", stateStorage: \"stateStorage\", editMode: \"editMode\", groupRowsBy: \"groupRowsBy\", size: \"size\", showGridlines: [2, \"showGridlines\", \"showGridlines\", booleanAttribute], stripedRows: [2, \"stripedRows\", \"stripedRows\", booleanAttribute], groupRowsByOrder: [2, \"groupRowsByOrder\", \"groupRowsByOrder\", numberAttribute], responsiveLayout: \"responsiveLayout\", breakpoint: \"breakpoint\", paginatorLocale: \"paginatorLocale\", value: \"value\", columns: \"columns\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", sortField: \"sortField\", sortOrder: \"sortOrder\", multiSortMeta: \"multiSortMeta\", selection: \"selection\", virtualRowHeight: \"virtualRowHeight\", selectAll: \"selectAll\" }, outputs: { contextMenuSelectionChange: \"contextMenuSelectionChange\", selectAllChange: \"selectAllChange\", selectionChange: \"selectionChange\", onRowSelect: \"onRowSelect\", onRowUnselect: \"onRowUnselect\", onPage: \"onPage\", onSort: \"onSort\", onFilter: \"onFilter\", onLazyLoad: \"onLazyLoad\", onRowExpand: \"onRowExpand\", onRowCollapse: \"onRowCollapse\", onContextMenuSelect: \"onContextMenuSelect\", onColResize: \"onColResize\", onColReorder: \"onColReorder\", onRowReorder: \"onRowReorder\", onEditInit: \"onEditInit\", onEditComplete: \"onEditComplete\", onEditCancel: \"onEditCancel\", onHeaderCheckboxToggle: \"onHeaderCheckboxToggle\", sortFunction: \"sortFunction\", firstChange: \"firstChange\", rowsChange: \"rowsChange\", onStateSave: \"onStateSave\", onStateRestore: \"onStateRestore\" }, features: [i0.ɵɵProvidersFeature([TableService, TableStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 16, vars: 17, consts: [[\"container\", \"\"], [\"wrapper\", \"\"], [\"buildInTable\", \"\"], [\"scroller\", \"\"], [\"content\", \"\"], [\"table\", \"\"], [\"thead\", \"\"], [\"tfoot\", \"\"], [\"resizeHelper\", \"\"], [\"reorderIndicatorUp\", \"\"], [\"reorderIndicatorDown\", \"\"], [3, \"ngStyle\", \"ngClass\"], [3, \"ngClass\", 4, \"ngIf\"], [3, \"rows\", \"first\", \"totalRecords\", \"pageLinkSize\", \"alwaysShow\", \"rowsPerPageOptions\", \"templateLeft\", \"templateRight\", \"dropdownAppendTo\", \"dropdownScrollHeight\", \"currentPageReportTemplate\", \"showFirstLastIcon\", \"dropdownItemTemplate\", \"showCurrentPageReport\", \"showJumpToPageDropdown\", \"showJumpToPageInput\", \"showPageLinks\", \"styleClass\", \"locale\", \"onPageChange\", 4, \"ngIf\"], [3, \"ngClass\", \"ngStyle\"], [3, \"items\", \"columns\", \"style\", \"scrollHeight\", \"itemSize\", \"step\", \"delay\", \"inline\", \"lazy\", \"loaderDisabled\", \"showSpacer\", \"showLoader\", \"options\", \"autoSize\", \"onLazyLoad\", 4, \"ngIf\"], [4, \"ngIf\"], [\"style\", \"display:none\", 3, \"ngClass\", 4, \"ngIf\"], [\"style\", \"display: none;\", 3, \"ngClass\", 4, \"ngIf\"], [3, \"ngClass\"], [3, \"class\", 4, \"ngIf\"], [3, \"spin\", \"styleClass\", 4, \"ngIf\"], [3, \"spin\", \"styleClass\"], [4, \"ngTemplateOutlet\"], [3, \"onPageChange\", \"rows\", \"first\", \"totalRecords\", \"pageLinkSize\", \"alwaysShow\", \"rowsPerPageOptions\", \"templateLeft\", \"templateRight\", \"dropdownAppendTo\", \"dropdownScrollHeight\", \"currentPageReportTemplate\", \"showFirstLastIcon\", \"dropdownItemTemplate\", \"showCurrentPageReport\", \"showJumpToPageDropdown\", \"showJumpToPageInput\", \"showPageLinks\", \"styleClass\", \"locale\"], [\"pTemplate\", \"dropdownicon\"], [\"pTemplate\", \"firstpagelinkicon\"], [\"pTemplate\", \"previouspagelinkicon\"], [\"pTemplate\", \"lastpagelinkicon\"], [\"pTemplate\", \"nextpagelinkicon\"], [3, \"onLazyLoad\", \"items\", \"columns\", \"scrollHeight\", \"itemSize\", \"step\", \"delay\", \"inline\", \"lazy\", \"loaderDisabled\", \"showSpacer\", \"showLoader\", \"options\", \"autoSize\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"role\", \"table\", 3, \"ngClass\"], [\"role\", \"rowgroup\", 3, \"ngClass\", \"ngStyle\"], [\"role\", \"rowgroup\", 3, \"ngClass\", \"value\", \"frozenRows\", \"pTableBody\", \"pTableBodyTemplate\", \"frozen\", 4, \"ngIf\"], [\"role\", \"rowgroup\", 3, \"ngClass\", \"value\", \"pTableBody\", \"pTableBodyTemplate\", \"scrollerOptions\"], [\"role\", \"rowgroup\", 3, \"style\", \"ngClass\", 4, \"ngIf\"], [\"role\", \"rowgroup\", 3, \"ngClass\", 4, \"ngIf\"], [\"role\", \"rowgroup\", 3, \"ngClass\", \"value\", \"frozenRows\", \"pTableBody\", \"pTableBodyTemplate\", \"frozen\"], [\"role\", \"rowgroup\", 3, \"ngClass\"], [2, \"display\", \"none\", 3, \"ngClass\"]], template: function Table_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 11, 0);\n i0.ɵɵtemplate(2, Table_div_2_Template, 3, 3, \"div\", 12)(3, Table_div_3_Template, 2, 2, \"div\", 12)(4, Table_p_paginator_4_Template, 6, 24, \"p-paginator\", 13);\n i0.ɵɵelementStart(5, \"div\", 14, 1);\n i0.ɵɵtemplate(7, Table_p_scroller_7_Template, 4, 17, \"p-scroller\", 15)(8, Table_ng_container_8_Template, 2, 7, \"ng-container\", 16)(9, Table_ng_template_9_Template, 10, 26, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(11, Table_p_paginator_11_Template, 6, 24, \"p-paginator\", 13)(12, Table_div_12_Template, 2, 2, \"div\", 12)(13, Table_div_13_Template, 2, 1, \"div\", 17)(14, Table_span_14_Template, 4, 3, \"span\", 18)(15, Table_span_15_Template, 4, 3, \"span\", 18);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx.style)(\"ngClass\", ctx.cx(\"root\"));\n i0.ɵɵattribute(\"id\", ctx.id);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.loading && ctx.showLoader);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.captionTemplate || ctx._captionTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.paginator && (ctx.paginatorPosition === \"top\" || ctx.paginatorPosition == \"both\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx.cx(\"tableContainer\"))(\"ngStyle\", ctx.sx(\"tableContainer\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.virtualScroll);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.virtualScroll);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.paginator && (ctx.paginatorPosition === \"bottom\" || ctx.paginatorPosition == \"both\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.summaryTemplate || ctx._summaryTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.resizableColumns);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.reorderableColumns);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.reorderableColumns);\n } }, dependencies: () => [i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, i2.Paginator, i3.PrimeTemplate, i4.Scroller, ArrowDownIcon,\n ArrowUpIcon,\n SpinnerIcon, TableBody], encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Table, [{\n type: Component,\n args: [{\n selector: 'p-table',\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 \n \n \n\n
\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n\n
\n \n
\n\n
\n \n \n \n \n \n \n \n \n
\n `,\n providers: [TableService, TableStyle],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n }]\n }], null, { frozenColumns: [{\n type: Input\n }], frozenValue: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], tableStyle: [{\n type: Input\n }], tableStyleClass: [{\n type: Input\n }], paginator: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], pageLinks: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], rowsPerPageOptions: [{\n type: Input\n }], alwaysShowPaginator: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], paginatorPosition: [{\n type: Input\n }], paginatorStyleClass: [{\n type: Input\n }], paginatorDropdownAppendTo: [{\n type: Input\n }], paginatorDropdownScrollHeight: [{\n type: Input\n }], currentPageReportTemplate: [{\n type: Input\n }], showCurrentPageReport: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showJumpToPageDropdown: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showJumpToPageInput: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showFirstLastIcon: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showPageLinks: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], defaultSortOrder: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], sortMode: [{\n type: Input\n }], resetPageOnSort: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], selectionMode: [{\n type: Input\n }], selectionPageOnly: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], contextMenuSelection: [{\n type: Input\n }], contextMenuSelectionChange: [{\n type: Output\n }], contextMenuSelectionMode: [{\n type: Input\n }], dataKey: [{\n type: Input\n }], metaKeySelection: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], rowSelectable: [{\n type: Input\n }], rowTrackBy: [{\n type: Input\n }], lazy: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], lazyLoadOnInit: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], compareSelectionBy: [{\n type: Input\n }], csvSeparator: [{\n type: Input\n }], exportFilename: [{\n type: Input\n }], filters: [{\n type: Input\n }], globalFilterFields: [{\n type: Input\n }], filterDelay: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], filterLocale: [{\n type: Input\n }], expandedRowKeys: [{\n type: Input\n }], editingRowKeys: [{\n type: Input\n }], rowExpandMode: [{\n type: Input\n }], scrollable: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], scrollDirection: [{\n type: Input\n }], rowGroupMode: [{\n type: Input\n }], scrollHeight: [{\n type: Input\n }], virtualScroll: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], virtualScrollItemSize: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], virtualScrollOptions: [{\n type: Input\n }], virtualScrollDelay: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], frozenWidth: [{\n type: Input\n }], responsive: [{\n type: Input\n }], contextMenu: [{\n type: Input\n }], resizableColumns: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], columnResizeMode: [{\n type: Input\n }], reorderableColumns: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], loading: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], loadingIcon: [{\n type: Input\n }], showLoader: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], rowHover: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], customSort: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showInitialSortBadge: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], autoLayout: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], exportFunction: [{\n type: Input\n }], exportHeader: [{\n type: Input\n }], stateKey: [{\n type: Input\n }], stateStorage: [{\n type: Input\n }], editMode: [{\n type: Input\n }], groupRowsBy: [{\n type: Input\n }], size: [{\n type: Input\n }], showGridlines: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], stripedRows: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], groupRowsByOrder: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], responsiveLayout: [{\n type: Input\n }], breakpoint: [{\n type: Input\n }], paginatorLocale: [{\n type: Input\n }], value: [{\n type: Input\n }], columns: [{\n type: Input\n }], first: [{\n type: Input\n }], rows: [{\n type: Input\n }], totalRecords: [{\n type: Input\n }], sortField: [{\n type: Input\n }], sortOrder: [{\n type: Input\n }], multiSortMeta: [{\n type: Input\n }], selection: [{\n type: Input\n }], virtualRowHeight: [{\n type: Input\n }], selectAll: [{\n type: Input\n }], selectAllChange: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], onRowSelect: [{\n type: Output\n }], onRowUnselect: [{\n type: Output\n }], onPage: [{\n type: Output\n }], onSort: [{\n type: Output\n }], onFilter: [{\n type: Output\n }], onLazyLoad: [{\n type: Output\n }], onRowExpand: [{\n type: Output\n }], onRowCollapse: [{\n type: Output\n }], onContextMenuSelect: [{\n type: Output\n }], onColResize: [{\n type: Output\n }], onColReorder: [{\n type: Output\n }], onRowReorder: [{\n type: Output\n }], onEditInit: [{\n type: Output\n }], onEditComplete: [{\n type: Output\n }], onEditCancel: [{\n type: Output\n }], onHeaderCheckboxToggle: [{\n type: Output\n }], sortFunction: [{\n type: Output\n }], firstChange: [{\n type: Output\n }], rowsChange: [{\n type: Output\n }], onStateSave: [{\n type: Output\n }], onStateRestore: [{\n type: Output\n }], containerViewChild: [{\n type: ViewChild,\n args: ['container']\n }], resizeHelperViewChild: [{\n type: ViewChild,\n args: ['resizeHelper']\n }], reorderIndicatorUpViewChild: [{\n type: ViewChild,\n args: ['reorderIndicatorUp']\n }], reorderIndicatorDownViewChild: [{\n type: ViewChild,\n args: ['reorderIndicatorDown']\n }], wrapperViewChild: [{\n type: ViewChild,\n args: ['wrapper']\n }], tableViewChild: [{\n type: ViewChild,\n args: ['table']\n }], tableHeaderViewChild: [{\n type: ViewChild,\n args: ['thead']\n }], tableFooterViewChild: [{\n type: ViewChild,\n args: ['tfoot']\n }], scroller: [{\n type: ViewChild,\n args: ['scroller']\n }], _templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }], _headerTemplate: [{\n type: ContentChild,\n args: ['header', { descendants: false }]\n }], _headerGroupedTemplate: [{\n type: ContentChild,\n args: ['headergrouped', { descendants: false }]\n }], _bodyTemplate: [{\n type: ContentChild,\n args: ['body', { descendants: false }]\n }], _loadingBodyTemplate: [{\n type: ContentChild,\n args: ['loadingbody', { descendants: false }]\n }], _captionTemplate: [{\n type: ContentChild,\n args: ['caption', { descendants: false }]\n }], _footerTemplate: [{\n type: ContentChild,\n args: ['footer', { descendants: false }]\n }], _footerGroupedTemplate: [{\n type: ContentChild,\n args: ['footergrouped', { descendants: false }]\n }], _summaryTemplate: [{\n type: ContentChild,\n args: ['summary', { descendants: false }]\n }], _colGroupTemplate: [{\n type: ContentChild,\n args: ['colgroup', { descendants: false }]\n }], _expandedRowTemplate: [{\n type: ContentChild,\n args: ['expandedrow', { descendants: false }]\n }], _groupHeaderTemplate: [{\n type: ContentChild,\n args: ['groupheader', { descendants: false }]\n }], _groupFooterTemplate: [{\n type: ContentChild,\n args: ['groupfooter', { descendants: false }]\n }], _frozenExpandedRowTemplate: [{\n type: ContentChild,\n args: ['frozenexpandedrow', { descendants: false }]\n }], _frozenHeaderTemplate: [{\n type: ContentChild,\n args: ['frozenheader', { descendants: false }]\n }], _frozenBodyTemplate: [{\n type: ContentChild,\n args: ['frozenbody', { descendants: false }]\n }], _frozenFooterTemplate: [{\n type: ContentChild,\n args: ['frozenfooter', { descendants: false }]\n }], _frozenColGroupTemplate: [{\n type: ContentChild,\n args: ['frozencolgroup', { descendants: false }]\n }], _emptyMessageTemplate: [{\n type: ContentChild,\n args: ['emptymessage', { descendants: false }]\n }], _paginatorLeftTemplate: [{\n type: ContentChild,\n args: ['paginatorleft', { descendants: false }]\n }], _paginatorRightTemplate: [{\n type: ContentChild,\n args: ['paginatorright', { descendants: false }]\n }], _paginatorDropdownItemTemplate: [{\n type: ContentChild,\n args: ['paginatordropdownitem', { descendants: false }]\n }], _loadingIconTemplate: [{\n type: ContentChild,\n args: ['loadingicon', { descendants: false }]\n }], _reorderIndicatorUpIconTemplate: [{\n type: ContentChild,\n args: ['reorderindicatorupicon', { descendants: false }]\n }], _reorderIndicatorDownIconTemplate: [{\n type: ContentChild,\n args: ['reorderindicatordownicon', { descendants: false }]\n }], _sortIconTemplate: [{\n type: ContentChild,\n args: ['sorticon', { descendants: false }]\n }], _checkboxIconTemplate: [{\n type: ContentChild,\n args: ['checkboxicon', { descendants: false }]\n }], _headerCheckboxIconTemplate: [{\n type: ContentChild,\n args: ['headercheckboxicon', { descendants: false }]\n }], _paginatorDropdownIconTemplate: [{\n type: ContentChild,\n args: ['paginatordropdownicon', { descendants: false }]\n }], _paginatorFirstPageLinkIconTemplate: [{\n type: ContentChild,\n args: ['paginatorfirstpagelinkicon', { descendants: false }]\n }], _paginatorLastPageLinkIconTemplate: [{\n type: ContentChild,\n args: ['paginatorlastpagelinkicon', { descendants: false }]\n }], _paginatorPreviousPageLinkIconTemplate: [{\n type: ContentChild,\n args: ['paginatorpreviouspagelinkicon', { descendants: false }]\n }], _paginatorNextPageLinkIconTemplate: [{\n type: ContentChild,\n args: ['paginatornextpagelinkicon', { descendants: false }]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Table, { className: \"Table\" }); })();\nclass TableBody {\n dt;\n tableService;\n cd;\n el;\n columns;\n template;\n get value() {\n return this._value;\n }\n set value(val) {\n this._value = val;\n if (this.frozenRows) {\n this.updateFrozenRowStickyPosition();\n }\n if (this.dt.scrollable && this.dt.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n frozen;\n frozenRows;\n scrollerOptions;\n subscription;\n _value;\n ngAfterViewInit() {\n if (this.frozenRows) {\n this.updateFrozenRowStickyPosition();\n }\n if (this.dt.scrollable && this.dt.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n constructor(dt, tableService, cd, el) {\n this.dt = dt;\n this.tableService = tableService;\n this.cd = cd;\n this.el = el;\n this.subscription = this.dt.tableService.valueSource$.subscribe(() => {\n if (this.dt.virtualScroll) {\n this.cd.detectChanges();\n }\n });\n }\n shouldRenderRowGroupHeader(value, rowData, i) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let prevRowData = value[i - (1 + this.dt._first)];\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n }\n else {\n return true;\n }\n }\n shouldRenderRowGroupFooter(value, rowData, i) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let nextRowData = value[i + (1 + this.dt._first)];\n if (nextRowData) {\n let nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== nextRowFieldData;\n }\n else {\n return true;\n }\n }\n shouldRenderRowspan(value, rowData, i) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let prevRowData = value[i - 1];\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n }\n else {\n return true;\n }\n }\n calculateRowGroupSize(value, rowData, index) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = value[++index];\n if (nextRowData) {\n nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dt.groupRowsBy);\n }\n else {\n break;\n }\n }\n return groupRowSpan === 1 ? null : groupRowSpan;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n updateFrozenRowStickyPosition() {\n this.el.nativeElement.style.top = DomHandler.getOuterHeight(this.el.nativeElement.previousElementSibling) + 'px';\n }\n updateFrozenRowGroupHeaderStickyPosition() {\n if (this.el.nativeElement.previousElementSibling) {\n let tableHeaderHeight = DomHandler.getOuterHeight(this.el.nativeElement.previousElementSibling);\n this.dt.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n }\n }\n getScrollerOption(option, options) {\n if (this.dt.virtualScroll) {\n options = options || this.scrollerOptions;\n return options ? options[option] : null;\n }\n return null;\n }\n getRowIndex(rowIndex) {\n const index = this.dt.paginator ? this.dt.first + rowIndex : rowIndex;\n const getItemOptions = this.getScrollerOption('getItemOptions');\n return getItemOptions ? getItemOptions(index).index : index;\n }\n static ɵfac = function TableBody_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableBody)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableBody, selectors: [[\"\", \"pTableBody\", \"\"]], inputs: { columns: [0, \"pTableBody\", \"columns\"], template: [0, \"pTableBodyTemplate\", \"template\"], value: \"value\", frozen: [2, \"frozen\", \"frozen\", booleanAttribute], frozenRows: [2, \"frozenRows\", \"frozenRows\", booleanAttribute], scrollerOptions: \"scrollerOptions\" }, features: [i0.ɵɵInputTransformsFeature], attrs: _c45, decls: 5, vars: 5, consts: [[4, \"ngIf\"], [\"ngFor\", \"\", 3, \"ngForOf\", \"ngForTrackBy\"], [\"role\", \"row\", 4, \"ngIf\"], [\"role\", \"row\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function TableBody_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, TableBody_ng_container_0_Template, 2, 2, \"ng-container\", 0)(1, TableBody_ng_container_1_Template, 2, 2, \"ng-container\", 0)(2, TableBody_ng_container_2_Template, 2, 2, \"ng-container\", 0)(3, TableBody_ng_container_3_Template, 2, 5, \"ng-container\", 0)(4, TableBody_ng_container_4_Template, 2, 5, \"ng-container\", 0);\n } if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", !ctx.dt.expandedRowTemplate && !ctx.dt._expandedRowTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx.dt.expandedRowTemplate || ctx.dt._expandedRowTemplate) && !(ctx.frozen && (ctx.dt.frozenExpandedRowTemplate || ctx.dt._frozenExpandedRowTemplate)));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx.dt.frozenExpandedRowTemplate || ctx.dt._frozenExpandedRowTemplate) && ctx.frozen);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.dt.loading);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.dt.isEmpty() && !ctx.dt.loading);\n } }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet], encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableBody, [{\n type: Component,\n args: [{\n selector: '[pTableBody]',\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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], { columns: [{\n type: Input,\n args: ['pTableBody']\n }], template: [{\n type: Input,\n args: ['pTableBodyTemplate']\n }], value: [{\n type: Input\n }], frozen: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], frozenRows: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], scrollerOptions: [{\n type: Input\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TableBody, { className: \"TableBody\" }); })();\nclass RowGroupHeader {\n dt;\n constructor(dt) {\n this.dt = dt;\n }\n get getFrozenRowGroupHeaderStickyPosition() {\n return this.dt.rowGroupHeaderStyleObject ? this.dt.rowGroupHeaderStyleObject.top : '';\n }\n static ɵfac = function RowGroupHeader_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RowGroupHeader)(i0.ɵɵdirectiveInject(Table)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: RowGroupHeader, selectors: [[\"\", \"pRowGroupHeader\", \"\"]], hostAttrs: [1, \"p-datatable-row-group-header\"], hostVars: 2, hostBindings: function RowGroupHeader_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵstyleProp(\"top\", ctx.getFrozenRowGroupHeaderStickyPosition);\n } } });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RowGroupHeader, [{\n type: Directive,\n args: [{\n selector: '[pRowGroupHeader]',\n host: {\n class: 'p-datatable-row-group-header',\n '[style.top]': 'getFrozenRowGroupHeaderStickyPosition'\n }\n }]\n }], () => [{ type: Table }], null); })();\nclass FrozenColumn {\n el;\n zone;\n get frozen() {\n return this._frozen;\n }\n set frozen(val) {\n this._frozen = val;\n Promise.resolve(null).then(() => this.updateStickyPosition());\n }\n alignFrozen = 'left';\n constructor(el, zone) {\n this.el = el;\n this.zone = zone;\n }\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.recalculateColumns();\n }, 1000);\n });\n }\n recalculateColumns() {\n const siblings = DomHandler.siblings(this.el.nativeElement);\n const index = DomHandler.index(this.el.nativeElement);\n const time = (siblings.length - index + 1) * 50;\n setTimeout(() => {\n this.updateStickyPosition();\n }, time);\n }\n _frozen = true;\n updateStickyPosition() {\n if (this._frozen) {\n if (this.alignFrozen === 'right') {\n let right = 0;\n let next = this.el.nativeElement.nextElementSibling;\n if (next) {\n right = DomHandler.getOuterWidth(next) + (parseFloat(next.style.right) || 0);\n }\n this.el.nativeElement.style.right = right + 'px';\n }\n else {\n let left = 0;\n let prev = this.el.nativeElement.previousElementSibling;\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + (parseFloat(prev.style.left) || 0);\n }\n this.el.nativeElement.style.left = left + 'px';\n }\n const filterRow = this.el.nativeElement?.parentElement?.nextElementSibling;\n if (filterRow) {\n let index = DomHandler.index(this.el.nativeElement);\n if (filterRow.children && filterRow.children[index]) {\n filterRow.children[index].style.left = this.el.nativeElement.style.left;\n filterRow.children[index].style.right = this.el.nativeElement.style.right;\n }\n }\n }\n }\n static ɵfac = function FrozenColumn_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FrozenColumn)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: FrozenColumn, selectors: [[\"\", \"pFrozenColumn\", \"\"]], hostVars: 4, hostBindings: function FrozenColumn_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"resize\", function FrozenColumn_resize_HostBindingHandler($event) { return ctx.recalculateColumns($event); }, false, i0.ɵɵresolveWindow);\n } if (rf & 2) {\n i0.ɵɵclassProp(\"p-datatable-frozen-column\", ctx.frozen)(\"p-datatable-frozen-column-left\", ctx.alignFrozen === \"left\");\n } }, inputs: { frozen: \"frozen\", alignFrozen: \"alignFrozen\" } });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FrozenColumn, [{\n type: Directive,\n args: [{\n selector: '[pFrozenColumn]',\n host: {\n '[class.p-datatable-frozen-column]': 'frozen',\n '[class.p-datatable-frozen-column-left]': 'alignFrozen === \"left\"'\n }\n }]\n }], () => [{ type: i0.ElementRef }, { type: i0.NgZone }], { frozen: [{\n type: Input\n }], alignFrozen: [{\n type: Input\n }], recalculateColumns: [{\n type: HostListener,\n args: ['window:resize', ['$event']]\n }] }); })();\nclass SortableColumn {\n dt;\n field;\n pSortableColumnDisabled;\n sorted;\n sortOrder;\n subscription;\n constructor(dt) {\n this.dt = dt;\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n });\n }\n }\n ngOnInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n updateSortState() {\n let sorted = false;\n let sortOrder = 0;\n if (this.dt.sortMode === 'single') {\n sorted = this.dt.isSorted(this.field);\n sortOrder = this.dt.sortOrder;\n }\n else if (this.dt.sortMode === 'multiple') {\n const sortMeta = this.dt.getSortMeta(this.field);\n sorted = !!sortMeta;\n sortOrder = sortMeta ? sortMeta.order : 0;\n }\n this.sorted = sorted;\n this.sortOrder = sorted ? (sortOrder === 1 ? 'ascending' : 'descending') : 'none';\n }\n onClick(event) {\n if (this.isEnabled() && !this.isFilterElement(event.target)) {\n this.updateSortState();\n this.dt.sort({\n originalEvent: event,\n field: this.field\n });\n DomHandler.clearSelection();\n }\n }\n onEnterKey(event) {\n this.onClick(event);\n event.preventDefault();\n }\n isEnabled() {\n return this.pSortableColumnDisabled !== true;\n }\n isFilterElement(element) {\n return this.isFilterElementIconOrButton(element) || this.isFilterElementIconOrButton(element?.parentElement?.parentElement);\n }\n isFilterElementIconOrButton(element) {\n return DomHandler.hasClass(element, 'pi-filter-icon') || DomHandler.hasClass(element, 'p-column-filter-menu-button');\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n static ɵfac = function SortableColumn_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SortableColumn)(i0.ɵɵdirectiveInject(Table)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SortableColumn, selectors: [[\"\", \"pSortableColumn\", \"\"]], hostVars: 7, hostBindings: function SortableColumn_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function SortableColumn_click_HostBindingHandler($event) { return ctx.onClick($event); })(\"keydown.space\", function SortableColumn_keydown_space_HostBindingHandler($event) { return ctx.onEnterKey($event); })(\"keydown.enter\", function SortableColumn_keydown_enter_HostBindingHandler($event) { return ctx.onEnterKey($event); });\n } if (rf & 2) {\n i0.ɵɵattribute(\"tabindex\", ctx.isEnabled() ? \"0\" : null)(\"role\", \"columnheader\")(\"aria-sort\", ctx.sortOrder);\n i0.ɵɵclassProp(\"p-datatable-sortable-column\", ctx.isEnabled())(\"p-datatable-column-sorted\", ctx.sorted);\n } }, inputs: { field: [0, \"pSortableColumn\", \"field\"], pSortableColumnDisabled: [2, \"pSortableColumnDisabled\", \"pSortableColumnDisabled\", booleanAttribute] }, features: [i0.ɵɵInputTransformsFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SortableColumn, [{\n type: Directive,\n args: [{\n selector: '[pSortableColumn]',\n host: {\n '[class.p-datatable-sortable-column]': 'isEnabled()',\n '[class.p-datatable-column-sorted]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"',\n '[attr.aria-sort]': 'sortOrder'\n }\n }]\n }], () => [{ type: Table }], { field: [{\n type: Input,\n args: ['pSortableColumn']\n }], pSortableColumnDisabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], onEnterKey: [{\n type: HostListener,\n args: ['keydown.space', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.enter', ['$event']]\n }] }); })();\nclass SortIcon {\n dt;\n cd;\n field;\n subscription;\n sortOrder;\n constructor(dt, cd) {\n this.dt = dt;\n this.cd = cd;\n this.subscription = this.dt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n });\n }\n ngOnInit() {\n this.updateSortState();\n }\n onClick(event) {\n event.preventDefault();\n }\n updateSortState() {\n if (this.dt.sortMode === 'single') {\n this.sortOrder = this.dt.isSorted(this.field) ? this.dt.sortOrder : 0;\n }\n else if (this.dt.sortMode === 'multiple') {\n let sortMeta = this.dt.getSortMeta(this.field);\n this.sortOrder = sortMeta ? sortMeta.order : 0;\n }\n this.cd.markForCheck();\n }\n getMultiSortMetaIndex() {\n let multiSortMeta = this.dt._multiSortMeta;\n let index = -1;\n if (multiSortMeta && this.dt.sortMode === 'multiple' && this.dt.showInitialSortBadge && multiSortMeta.length > 1) {\n for (let i = 0; i < multiSortMeta.length; i++) {\n let meta = multiSortMeta[i];\n if (meta.field === this.field || meta.field === this.field) {\n index = i;\n break;\n }\n }\n }\n return index;\n }\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n return this.dt.groupRowsBy && index > -1 ? index : index + 1;\n }\n isMultiSorted() {\n return this.dt.sortMode === 'multiple' && this.getMultiSortMetaIndex() > -1;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n static ɵfac = function SortIcon_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SortIcon)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SortIcon, selectors: [[\"p-sortIcon\"]], inputs: { field: \"field\" }, decls: 3, vars: 3, consts: [[4, \"ngIf\"], [\"class\", \"p-sortable-column-icon\", 4, \"ngIf\"], [\"class\", \"p-sortable-column-badge\", 4, \"ngIf\"], [3, \"styleClass\", 4, \"ngIf\"], [3, \"styleClass\"], [1, \"p-sortable-column-icon\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"p-sortable-column-badge\"]], template: function SortIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, SortIcon_ng_container_0_Template, 4, 3, \"ng-container\", 0)(1, SortIcon_span_1_Template, 2, 4, \"span\", 1)(2, SortIcon_span_2_Template, 2, 1, \"span\", 2);\n } if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", !(ctx.dt.sortIconTemplate && ctx.dt._sortIconTemplate));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.dt.sortIconTemplate || ctx.dt._sortIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isMultiSorted());\n } }, dependencies: () => [i1.NgIf, i1.NgTemplateOutlet, SortAltIcon,\n SortAmountUpAltIcon,\n SortAmountDownIcon], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SortIcon, [{\n type: Component,\n args: [{\n selector: 'p-sortIcon',\n template: `\n \n \n \n \n \n \n \n \n {{ getBadgeValue() }}\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{ type: Table }, { type: i0.ChangeDetectorRef }], { field: [{\n type: Input\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(SortIcon, { className: \"SortIcon\" }); })();\nclass SelectableRow {\n dt;\n tableService;\n el;\n data;\n index;\n pSelectableRowDisabled;\n selected;\n subscription;\n constructor(dt, tableService, el) {\n this.dt = dt;\n this.tableService = tableService;\n this.el = el;\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n setRowTabIndex() {\n if (this.dt.selectionMode === 'single' || this.dt.selectionMode === 'multiple') {\n return !this.dt.selection ? 0 : this.dt.anchorRowIndex === this.index ? 0 : -1;\n }\n }\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n onClick(event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n onTouchEnd(event) {\n if (this.isEnabled()) {\n this.dt.handleRowTouchEnd(event);\n }\n }\n onKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event);\n break;\n case 'Enter':\n this.onEnterKey(event);\n break;\n default:\n if (event.code === 'KeyA' && (event.metaKey || event.ctrlKey) && this.dt.selectionMode === 'multiple') {\n const data = this.dt.dataToRender(this.dt.processedData);\n this.dt.selection = [...data];\n this.dt.selectRange(event, data.length - 1);\n event.preventDefault();\n }\n break;\n }\n }\n onArrowDownKey(event) {\n if (!this.isEnabled()) {\n return;\n }\n const row = event.currentTarget;\n const nextRow = this.findNextSelectableRow(row);\n if (nextRow) {\n nextRow.focus();\n }\n event.preventDefault();\n }\n onArrowUpKey(event) {\n if (!this.isEnabled()) {\n return;\n }\n const row = event.currentTarget;\n const prevRow = this.findPrevSelectableRow(row);\n if (prevRow) {\n prevRow.focus();\n }\n event.preventDefault();\n }\n onEnterKey(event) {\n if (!this.isEnabled()) {\n return;\n }\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n onEndKey(event) {\n const lastRow = this.findLastSelectableRow();\n lastRow && this.focusRowChange(this.el.nativeElement, lastRow);\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dt.dataToRender(this.dt.rows);\n const lastSelectableRowIndex = DomHandler.getAttribute(lastRow, 'index');\n this.dt.anchorRowIndex = lastSelectableRowIndex;\n this.dt.selection = data.slice(this.index, data.length);\n this.dt.selectRange(event, this.index);\n }\n event.preventDefault();\n }\n onHomeKey(event) {\n const firstRow = this.findFirstSelectableRow();\n firstRow && this.focusRowChange(this.el.nativeElement, firstRow);\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dt.dataToRender(this.dt.rows);\n const firstSelectableRowIndex = DomHandler.getAttribute(firstRow, 'index');\n this.dt.anchorRowIndex = this.dt.anchorRowIndex || firstSelectableRowIndex;\n this.dt.selection = data.slice(0, this.index + 1);\n this.dt.selectRange(event, this.index);\n }\n event.preventDefault();\n }\n onSpaceKey(event) {\n const isInput = event.target instanceof HTMLInputElement || event.target instanceof HTMLSelectElement || event.target instanceof HTMLTextAreaElement;\n if (isInput) {\n return;\n }\n else {\n this.onEnterKey(event);\n if (event.shiftKey && this.dt.selection !== null) {\n const data = this.dt.dataToRender(this.dt.rows);\n let index;\n if (ObjectUtils.isNotEmpty(this.dt.selection) && this.dt.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n firstSelectedRowIndex = ObjectUtils.findIndexInList(this.dt.selection[0], data);\n lastSelectedRowIndex = ObjectUtils.findIndexInList(this.dt.selection[this.dt.selection.length - 1], data);\n index = this.index <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n }\n else {\n index = ObjectUtils.findIndexInList(this.dt.selection, data);\n }\n this.dt.anchorRowIndex = index;\n this.dt.selection = index !== this.index ? data.slice(Math.min(index, this.index), Math.max(index, this.index) + 1) : [this.data];\n this.dt.selectRange(event, this.index);\n }\n event.preventDefault();\n }\n }\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n DomHandler.focus(currentFocusedRow);\n }\n findLastSelectableRow() {\n const rows = DomHandler.find(this.dt.el.nativeElement, '.p-datatable-selectable-row');\n return rows ? rows[rows.length - 1] : null;\n }\n findFirstSelectableRow() {\n const firstRow = DomHandler.findSingle(this.dt.el.nativeElement, '.p-datatable-selectable-row');\n return firstRow;\n }\n findNextSelectableRow(row) {\n let nextRow = row.nextElementSibling;\n if (nextRow) {\n if (DomHandler.hasClass(nextRow, 'p-selectable-row'))\n return nextRow;\n else\n return this.findNextSelectableRow(nextRow);\n }\n else {\n return null;\n }\n }\n findPrevSelectableRow(row) {\n let prevRow = row.previousElementSibling;\n if (prevRow) {\n if (DomHandler.hasClass(prevRow, 'p-selectable-row'))\n return prevRow;\n else\n return this.findPrevSelectableRow(prevRow);\n }\n else {\n return null;\n }\n }\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n static ɵfac = function SelectableRow_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SelectableRow)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService), i0.ɵɵdirectiveInject(i0.ElementRef)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SelectableRow, selectors: [[\"\", \"pSelectableRow\", \"\"]], hostVars: 6, hostBindings: function SelectableRow_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function SelectableRow_click_HostBindingHandler($event) { return ctx.onClick($event); })(\"touchend\", function SelectableRow_touchend_HostBindingHandler($event) { return ctx.onTouchEnd($event); })(\"keydown\", function SelectableRow_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); });\n } if (rf & 2) {\n i0.ɵɵattribute(\"tabindex\", ctx.setRowTabIndex())(\"data-p-selectable-row\", true);\n i0.ɵɵclassProp(\"p-datatable-selectable-row\", ctx.isEnabled())(\"p-datatable-row-selected\", ctx.selected);\n } }, inputs: { data: [0, \"pSelectableRow\", \"data\"], index: [0, \"pSelectableRowIndex\", \"index\"], pSelectableRowDisabled: [2, \"pSelectableRowDisabled\", \"pSelectableRowDisabled\", booleanAttribute] }, features: [i0.ɵɵInputTransformsFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectableRow, [{\n type: Directive,\n args: [{\n selector: '[pSelectableRow]',\n host: {\n '[class.p-datatable-selectable-row]': 'isEnabled()',\n '[class.p-datatable-row-selected]': 'selected',\n '[attr.tabindex]': 'setRowTabIndex()',\n '[attr.data-p-selectable-row]': 'true'\n }\n }]\n }], () => [{ type: Table }, { type: TableService }, { type: i0.ElementRef }], { data: [{\n type: Input,\n args: ['pSelectableRow']\n }], index: [{\n type: Input,\n args: ['pSelectableRowIndex']\n }], pSelectableRowDisabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], onTouchEnd: [{\n type: HostListener,\n args: ['touchend', ['$event']]\n }], onKeyDown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] }); })();\nclass SelectableRowDblClick {\n dt;\n tableService;\n data;\n index;\n pSelectableRowDisabled;\n selected;\n subscription;\n constructor(dt, tableService) {\n this.dt = dt;\n this.tableService = tableService;\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n onClick(event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n static ɵfac = function SelectableRowDblClick_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SelectableRowDblClick)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SelectableRowDblClick, selectors: [[\"\", \"pSelectableRowDblClick\", \"\"]], hostVars: 4, hostBindings: function SelectableRowDblClick_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"dblclick\", function SelectableRowDblClick_dblclick_HostBindingHandler($event) { return ctx.onClick($event); });\n } if (rf & 2) {\n i0.ɵɵclassProp(\"p-selectable-row\", ctx.isEnabled())(\"p-highlight\", ctx.selected);\n } }, inputs: { data: [0, \"pSelectableRowDblClick\", \"data\"], index: [0, \"pSelectableRowIndex\", \"index\"], pSelectableRowDisabled: [2, \"pSelectableRowDisabled\", \"pSelectableRowDisabled\", booleanAttribute] }, features: [i0.ɵɵInputTransformsFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectableRowDblClick, [{\n type: Directive,\n args: [{\n selector: '[pSelectableRowDblClick]',\n host: {\n '[class.p-selectable-row]': 'isEnabled()',\n '[class.p-highlight]': 'selected'\n }\n }]\n }], () => [{ type: Table }, { type: TableService }], { data: [{\n type: Input,\n args: ['pSelectableRowDblClick']\n }], index: [{\n type: Input,\n args: ['pSelectableRowIndex']\n }], pSelectableRowDisabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onClick: [{\n type: HostListener,\n args: ['dblclick', ['$event']]\n }] }); })();\nclass ContextMenuRow {\n dt;\n tableService;\n el;\n data;\n index;\n pContextMenuRowDisabled;\n selected;\n subscription;\n constructor(dt, tableService, el) {\n this.dt = dt;\n this.tableService = tableService;\n this.el = el;\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.contextMenuSource$.subscribe((data) => {\n this.selected = this.dt.equals(this.data, data);\n });\n }\n }\n onContextMenu(event) {\n if (this.isEnabled()) {\n this.dt.handleRowRightClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n this.el.nativeElement.focus();\n event.preventDefault();\n }\n }\n isEnabled() {\n return this.pContextMenuRowDisabled !== true;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n static ɵfac = function ContextMenuRow_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ContextMenuRow)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService), i0.ɵɵdirectiveInject(i0.ElementRef)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ContextMenuRow, selectors: [[\"\", \"pContextMenuRow\", \"\"]], hostVars: 3, hostBindings: function ContextMenuRow_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"contextmenu\", function ContextMenuRow_contextmenu_HostBindingHandler($event) { return ctx.onContextMenu($event); });\n } if (rf & 2) {\n i0.ɵɵattribute(\"tabindex\", ctx.isEnabled() ? 0 : undefined);\n i0.ɵɵclassProp(\"p-highlight-contextmenu\", ctx.selected);\n } }, inputs: { data: [0, \"pContextMenuRow\", \"data\"], index: [0, \"pContextMenuRowIndex\", \"index\"], pContextMenuRowDisabled: [2, \"pContextMenuRowDisabled\", \"pContextMenuRowDisabled\", booleanAttribute] }, features: [i0.ɵɵInputTransformsFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ContextMenuRow, [{\n type: Directive,\n args: [{\n selector: '[pContextMenuRow]',\n host: {\n '[class.p-highlight-contextmenu]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n }]\n }], () => [{ type: Table }, { type: TableService }, { type: i0.ElementRef }], { data: [{\n type: Input,\n args: ['pContextMenuRow']\n }], index: [{\n type: Input,\n args: ['pContextMenuRowIndex']\n }], pContextMenuRowDisabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onContextMenu: [{\n type: HostListener,\n args: ['contextmenu', ['$event']]\n }] }); })();\nclass RowToggler {\n dt;\n data;\n pRowTogglerDisabled;\n constructor(dt) {\n this.dt = dt;\n }\n onClick(event) {\n if (this.isEnabled()) {\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n }\n }\n isEnabled() {\n return this.pRowTogglerDisabled !== true;\n }\n static ɵfac = function RowToggler_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RowToggler)(i0.ɵɵdirectiveInject(Table)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: RowToggler, selectors: [[\"\", \"pRowToggler\", \"\"]], hostBindings: function RowToggler_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function RowToggler_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } }, inputs: { data: [0, \"pRowToggler\", \"data\"], pRowTogglerDisabled: [2, \"pRowTogglerDisabled\", \"pRowTogglerDisabled\", booleanAttribute] }, features: [i0.ɵɵInputTransformsFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RowToggler, [{\n type: Directive,\n args: [{\n selector: '[pRowToggler]'\n }]\n }], () => [{ type: Table }], { data: [{\n type: Input,\n args: ['pRowToggler']\n }], pRowTogglerDisabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\nclass ResizableColumn {\n document;\n platformId;\n renderer;\n dt;\n el;\n zone;\n pResizableColumnDisabled;\n resizer;\n resizerMouseDownListener;\n resizerTouchStartListener;\n resizerTouchMoveListener;\n resizerTouchEndListener;\n documentMouseMoveListener;\n documentMouseUpListener;\n constructor(document, platformId, renderer, dt, el, zone) {\n this.document = document;\n this.platformId = platformId;\n this.renderer = renderer;\n this.dt = dt;\n this.el = el;\n this.zone = zone;\n }\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-datatable-resizable-column');\n this.resizer = this.renderer.createElement('span');\n this.renderer.addClass(this.resizer, 'p-datatable-column-resizer');\n this.renderer.appendChild(this.el.nativeElement, this.resizer);\n this.zone.runOutsideAngular(() => {\n this.resizerMouseDownListener = this.renderer.listen(this.resizer, 'mousedown', this.onMouseDown.bind(this));\n this.resizerTouchStartListener = this.renderer.listen(this.resizer, 'touchstart', this.onTouchStart.bind(this));\n });\n }\n }\n }\n bindDocumentEvents() {\n this.zone.runOutsideAngular(() => {\n this.documentMouseMoveListener = this.renderer.listen(this.document, 'mousemove', this.onDocumentMouseMove.bind(this));\n this.documentMouseUpListener = this.renderer.listen(this.document, 'mouseup', this.onDocumentMouseUp.bind(this));\n this.resizerTouchMoveListener = this.renderer.listen(this.resizer, 'touchmove', this.onTouchMove.bind(this));\n this.resizerTouchEndListener = this.renderer.listen(this.resizer, 'touchend', this.onTouchEnd.bind(this));\n });\n }\n unbindDocumentEvents() {\n if (this.documentMouseMoveListener) {\n this.documentMouseMoveListener();\n this.documentMouseMoveListener = null;\n }\n if (this.documentMouseUpListener) {\n this.documentMouseUpListener();\n this.documentMouseUpListener = null;\n }\n if (this.resizerTouchMoveListener) {\n this.resizerTouchMoveListener();\n this.resizerTouchMoveListener = null;\n }\n if (this.resizerTouchEndListener) {\n this.resizerTouchEndListener();\n this.resizerTouchEndListener = null;\n }\n }\n onMouseDown(event) {\n this.dt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n onTouchStart(event) {\n this.dt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n onTouchMove(event) {\n this.dt.onColumnResize(event);\n }\n onDocumentMouseMove(event) {\n this.dt.onColumnResize(event);\n }\n onDocumentMouseUp(event) {\n this.dt.onColumnResizeEnd();\n this.unbindDocumentEvents();\n }\n onTouchEnd(event) {\n this.dt.onColumnResizeEnd();\n this.unbindDocumentEvents();\n }\n isEnabled() {\n return this.pResizableColumnDisabled !== true;\n }\n ngOnDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizerMouseDownListener();\n this.resizerMouseDownListener = null;\n }\n this.unbindDocumentEvents();\n }\n static ɵfac = function ResizableColumn_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ResizableColumn)(i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ResizableColumn, selectors: [[\"\", \"pResizableColumn\", \"\"]], hostAttrs: [1, \"p-datatable-resizable-column\"], inputs: { pResizableColumnDisabled: [2, \"pResizableColumnDisabled\", \"pResizableColumnDisabled\", booleanAttribute] }, features: [i0.ɵɵInputTransformsFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ResizableColumn, [{\n type: Directive,\n args: [{\n selector: '[pResizableColumn]',\n host: {\n class: 'p-datatable-resizable-column'\n }\n }]\n }], () => [{ type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: i0.Renderer2 }, { type: Table }, { type: i0.ElementRef }, { type: i0.NgZone }], { pResizableColumnDisabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }] }); })();\nclass ReorderableColumn {\n platformId;\n renderer;\n dt;\n el;\n zone;\n pReorderableColumnDisabled;\n dragStartListener;\n dragOverListener;\n dragEnterListener;\n dragLeaveListener;\n mouseDownListener;\n constructor(platformId, renderer, dt, el, zone) {\n this.platformId = platformId;\n this.renderer = renderer;\n this.dt = dt;\n this.el = el;\n this.zone = zone;\n }\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.renderer.listen(this.el.nativeElement, 'mousedown', this.onMouseDown.bind(this));\n this.dragStartListener = this.renderer.listen(this.el.nativeElement, 'dragstart', this.onDragStart.bind(this));\n this.dragOverListener = this.renderer.listen(this.el.nativeElement, 'dragover', this.onDragOver.bind(this));\n this.dragEnterListener = this.renderer.listen(this.el.nativeElement, 'dragenter', this.onDragEnter.bind(this));\n this.dragLeaveListener = this.renderer.listen(this.el.nativeElement, 'dragleave', this.onDragLeave.bind(this));\n });\n }\n }\n unbindEvents() {\n if (this.mouseDownListener) {\n this.mouseDownListener();\n this.mouseDownListener = null;\n }\n if (this.dragStartListener) {\n this.dragStartListener();\n this.dragStartListener = null;\n }\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n if (this.dragEnterListener) {\n this.dragEnterListener();\n this.dragEnterListener = null;\n }\n if (this.dragLeaveListener) {\n this.dragLeaveListener();\n this.dragLeaveListener = null;\n }\n }\n onMouseDown(event) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || DomHandler.hasClass(event.target, 'p-datatable-column-resizer'))\n this.el.nativeElement.draggable = false;\n else\n this.el.nativeElement.draggable = true;\n }\n onDragStart(event) {\n this.dt.onColumnDragStart(event, this.el.nativeElement);\n }\n onDragOver(event) {\n event.preventDefault();\n }\n onDragEnter(event) {\n this.dt.onColumnDragEnter(event, this.el.nativeElement);\n }\n onDragLeave(event) {\n this.dt.onColumnDragLeave(event);\n }\n onDrop(event) {\n if (this.isEnabled()) {\n this.dt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n isEnabled() {\n return this.pReorderableColumnDisabled !== true;\n }\n ngOnDestroy() {\n this.unbindEvents();\n }\n static ɵfac = function ReorderableColumn_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReorderableColumn)(i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ReorderableColumn, selectors: [[\"\", \"pReorderableColumn\", \"\"]], hostAttrs: [1, \"p-datatable-reorderable-column\"], hostBindings: function ReorderableColumn_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"drop\", function ReorderableColumn_drop_HostBindingHandler($event) { return ctx.onDrop($event); });\n } }, inputs: { pReorderableColumnDisabled: [2, \"pReorderableColumnDisabled\", \"pReorderableColumnDisabled\", booleanAttribute] }, features: [i0.ɵɵInputTransformsFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ReorderableColumn, [{\n type: Directive,\n args: [{\n selector: '[pReorderableColumn]',\n host: {\n class: 'p-datatable-reorderable-column'\n }\n }]\n }], () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: i0.Renderer2 }, { type: Table }, { type: i0.ElementRef }, { type: i0.NgZone }], { pReorderableColumnDisabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onDrop: [{\n type: HostListener,\n args: ['drop', ['$event']]\n }] }); })();\nclass EditableColumn {\n dt;\n el;\n zone;\n data;\n field;\n rowIndex;\n pEditableColumnDisabled;\n pFocusCellSelector;\n overlayEventListener;\n constructor(dt, el, zone) {\n this.dt = dt;\n this.el = el;\n this.zone = zone;\n }\n ngOnChanges(changes) {\n if (this.el.nativeElement && !changes.data?.firstChange) {\n this.dt.updateEditingCell(this.el.nativeElement, this.data, this.field, this.rowIndex);\n }\n }\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-editable-column');\n }\n }\n onClick(event) {\n if (this.isEnabled()) {\n this.dt.selfClick = true;\n if (this.dt.editingCell) {\n if (this.dt.editingCell !== this.el.nativeElement) {\n if (!this.dt.isEditingCellValid()) {\n return;\n }\n this.closeEditingCell(true, event);\n this.openCell();\n }\n }\n else {\n this.openCell();\n }\n }\n }\n openCell() {\n this.dt.updateEditingCell(this.el.nativeElement, this.data, this.field, this.rowIndex);\n DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n this.dt.onEditInit.emit({\n field: this.field,\n data: this.data,\n index: this.rowIndex\n });\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusCellSelector = this.pFocusCellSelector || 'input, textarea, select';\n let focusableElement = DomHandler.findSingle(this.el.nativeElement, focusCellSelector);\n if (focusableElement) {\n focusableElement.focus();\n }\n }, 50);\n });\n this.overlayEventListener = (e) => {\n if (this.el && this.el.nativeElement.contains(e.target)) {\n this.dt.selfClick = true;\n }\n };\n this.dt.overlaySubscription = this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener);\n }\n closeEditingCell(completed, event) {\n const eventData = {\n field: this.dt.editingCellField,\n data: this.dt.editingCellData,\n originalEvent: event,\n index: this.dt.editingCellRowIndex\n };\n if (completed) {\n this.dt.onEditComplete.emit(eventData);\n }\n else {\n this.dt.onEditCancel.emit(eventData);\n this.dt.value.forEach((element) => {\n if (element[this.dt.editingCellField] === this.data) {\n element[this.dt.editingCellField] = this.dt.editingCellData;\n }\n });\n }\n DomHandler.removeClass(this.dt.editingCell, 'p-cell-editing');\n this.dt.editingCell = null;\n this.dt.editingCellData = null;\n this.dt.editingCellField = null;\n this.dt.unbindDocumentEditListener();\n if (this.dt.overlaySubscription) {\n this.dt.overlaySubscription.unsubscribe();\n }\n }\n onEnterKeyDown(event) {\n if (this.isEnabled() && !event.shiftKey) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n event.preventDefault();\n }\n }\n onTabKeyDown(event) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n event.preventDefault();\n }\n }\n onEscapeKeyDown(event) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(false, event);\n }\n event.preventDefault();\n }\n }\n onShiftKeyDown(event) {\n if (this.isEnabled()) {\n if (event.shiftKey)\n this.moveToPreviousCell(event);\n else {\n this.moveToNextCell(event);\n }\n }\n }\n onArrowDown(event) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findNextEditableColumnByIndex(currentCell, cellIndex);\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n event.preventDefault();\n }\n }\n }\n onArrowUp(event) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findPrevEditableColumnByIndex(currentCell, cellIndex);\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n event.preventDefault();\n }\n }\n }\n onArrowLeft(event) {\n if (this.isEnabled()) {\n this.moveToPreviousCell(event);\n }\n }\n onArrowRight(event) {\n if (this.isEnabled()) {\n this.moveToNextCell(event);\n }\n }\n findCell(element) {\n if (element) {\n let cell = element;\n while (cell && !DomHandler.hasClass(cell, 'p-cell-editing')) {\n cell = cell.parentElement;\n }\n return cell;\n }\n else {\n return null;\n }\n }\n moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findPreviousEditableColumn(currentCell);\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n }\n moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findNextEditableColumn(currentCell);\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n else {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n }\n }\n }\n findPreviousEditableColumn(cell) {\n let prevCell = cell.previousElementSibling;\n if (!prevCell) {\n let previousRow = cell.parentElement?.previousElementSibling;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n if (prevCell) {\n if (DomHandler.hasClass(prevCell, 'p-editable-column'))\n return prevCell;\n else\n return this.findPreviousEditableColumn(prevCell);\n }\n else {\n return null;\n }\n }\n findNextEditableColumn(cell) {\n let nextCell = cell.nextElementSibling;\n if (!nextCell) {\n let nextRow = cell.parentElement?.nextElementSibling;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n if (nextCell) {\n if (DomHandler.hasClass(nextCell, 'p-editable-column'))\n return nextCell;\n else\n return this.findNextEditableColumn(nextCell);\n }\n else {\n return null;\n }\n }\n findNextEditableColumnByIndex(cell, index) {\n let nextRow = cell.parentElement?.nextElementSibling;\n if (nextRow) {\n let nextCell = nextRow.children[index];\n if (nextCell && DomHandler.hasClass(nextCell, 'p-editable-column')) {\n return nextCell;\n }\n return null;\n }\n else {\n return null;\n }\n }\n findPrevEditableColumnByIndex(cell, index) {\n let prevRow = cell.parentElement?.previousElementSibling;\n if (prevRow) {\n let prevCell = prevRow.children[index];\n if (prevCell && DomHandler.hasClass(prevCell, 'p-editable-column')) {\n return prevCell;\n }\n return null;\n }\n else {\n return null;\n }\n }\n isEnabled() {\n return this.pEditableColumnDisabled !== true;\n }\n ngOnDestroy() {\n if (this.dt.overlaySubscription) {\n this.dt.overlaySubscription.unsubscribe();\n }\n }\n static ɵfac = function EditableColumn_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EditableColumn)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: EditableColumn, selectors: [[\"\", \"pEditableColumn\", \"\"]], hostBindings: function EditableColumn_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function EditableColumn_click_HostBindingHandler($event) { return ctx.onClick($event); })(\"keydown.enter\", function EditableColumn_keydown_enter_HostBindingHandler($event) { return ctx.onEnterKeyDown($event); })(\"keydown.tab\", function EditableColumn_keydown_tab_HostBindingHandler($event) { return ctx.onShiftKeyDown($event); })(\"keydown.escape\", function EditableColumn_keydown_escape_HostBindingHandler($event) { return ctx.onEscapeKeyDown($event); })(\"keydown.shift.tab\", function EditableColumn_keydown_shift_tab_HostBindingHandler($event) { return ctx.onShiftKeyDown($event); })(\"keydown.meta.tab\", function EditableColumn_keydown_meta_tab_HostBindingHandler($event) { return ctx.onShiftKeyDown($event); })(\"keydown.arrowdown\", function EditableColumn_keydown_arrowdown_HostBindingHandler($event) { return ctx.onArrowDown($event); })(\"keydown.arrowup\", function EditableColumn_keydown_arrowup_HostBindingHandler($event) { return ctx.onArrowUp($event); })(\"keydown.arrowleft\", function EditableColumn_keydown_arrowleft_HostBindingHandler($event) { return ctx.onArrowLeft($event); })(\"keydown.arrowright\", function EditableColumn_keydown_arrowright_HostBindingHandler($event) { return ctx.onArrowRight($event); });\n } }, inputs: { data: [0, \"pEditableColumn\", \"data\"], field: [0, \"pEditableColumnField\", \"field\"], rowIndex: [0, \"pEditableColumnRowIndex\", \"rowIndex\"], pEditableColumnDisabled: [2, \"pEditableColumnDisabled\", \"pEditableColumnDisabled\", booleanAttribute], pFocusCellSelector: \"pFocusCellSelector\" }, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EditableColumn, [{\n type: Directive,\n args: [{\n selector: '[pEditableColumn]'\n }]\n }], () => [{ type: Table }, { type: i0.ElementRef }, { type: i0.NgZone }], { data: [{\n type: Input,\n args: ['pEditableColumn']\n }], field: [{\n type: Input,\n args: ['pEditableColumnField']\n }], rowIndex: [{\n type: Input,\n args: ['pEditableColumnRowIndex']\n }], pEditableColumnDisabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], pFocusCellSelector: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], onEnterKeyDown: [{\n type: HostListener,\n args: ['keydown.enter', ['$event']]\n }], onTabKeyDown: [{\n type: HostListener,\n args: ['keydown.tab', ['$event']]\n }], onEscapeKeyDown: [{\n type: HostListener,\n args: ['keydown.escape', ['$event']]\n }], onShiftKeyDown: [{\n type: HostListener,\n args: ['keydown.tab', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.shift.tab', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.meta.tab', ['$event']]\n }], onArrowDown: [{\n type: HostListener,\n args: ['keydown.arrowdown', ['$event']]\n }], onArrowUp: [{\n type: HostListener,\n args: ['keydown.arrowup', ['$event']]\n }], onArrowLeft: [{\n type: HostListener,\n args: ['keydown.arrowleft', ['$event']]\n }], onArrowRight: [{\n type: HostListener,\n args: ['keydown.arrowright', ['$event']]\n }] }); })();\nclass EditableRow {\n el;\n data;\n pEditableRowDisabled;\n constructor(el) {\n this.el = el;\n }\n isEnabled() {\n return this.pEditableRowDisabled !== true;\n }\n static ɵfac = function EditableRow_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EditableRow)(i0.ɵɵdirectiveInject(i0.ElementRef)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: EditableRow, selectors: [[\"\", \"pEditableRow\", \"\"]], inputs: { data: [0, \"pEditableRow\", \"data\"], pEditableRowDisabled: [2, \"pEditableRowDisabled\", \"pEditableRowDisabled\", booleanAttribute] }, features: [i0.ɵɵInputTransformsFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EditableRow, [{\n type: Directive,\n args: [{\n selector: '[pEditableRow]'\n }]\n }], () => [{ type: i0.ElementRef }], { data: [{\n type: Input,\n args: ['pEditableRow']\n }], pEditableRowDisabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }] }); })();\nclass InitEditableRow {\n dt;\n editableRow;\n constructor(dt, editableRow) {\n this.dt = dt;\n this.editableRow = editableRow;\n }\n onClick(event) {\n this.dt.initRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n static ɵfac = function InitEditableRow_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InitEditableRow)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(EditableRow)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: InitEditableRow, selectors: [[\"\", \"pInitEditableRow\", \"\"]], hostAttrs: [1, \"p-datatable-row-editor-init\"], hostBindings: function InitEditableRow_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function InitEditableRow_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } } });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InitEditableRow, [{\n type: Directive,\n args: [{\n selector: '[pInitEditableRow]',\n host: {\n class: 'p-datatable-row-editor-init'\n }\n }]\n }], () => [{ type: Table }, { type: EditableRow }], { onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\nclass SaveEditableRow {\n dt;\n editableRow;\n constructor(dt, editableRow) {\n this.dt = dt;\n this.editableRow = editableRow;\n }\n onClick(event) {\n this.dt.saveRowEdit(this.editableRow.data, this.editableRow.el.nativeElement);\n event.preventDefault();\n }\n static ɵfac = function SaveEditableRow_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SaveEditableRow)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(EditableRow)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SaveEditableRow, selectors: [[\"\", \"pSaveEditableRow\", \"\"]], hostAttrs: [1, \"p-datatable-row-editor-save\"], hostBindings: function SaveEditableRow_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function SaveEditableRow_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } } });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SaveEditableRow, [{\n type: Directive,\n args: [{\n selector: '[pSaveEditableRow]',\n host: {\n class: 'p-datatable-row-editor-save'\n }\n }]\n }], () => [{ type: Table }, { type: EditableRow }], { onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\nclass CancelEditableRow {\n dt;\n editableRow;\n constructor(dt, editableRow) {\n this.dt = dt;\n this.editableRow = editableRow;\n }\n onClick(event) {\n this.dt.cancelRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n static ɵfac = function CancelEditableRow_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CancelEditableRow)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(EditableRow)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: CancelEditableRow, selectors: [[\"\", \"pCancelEditableRow\", \"\"]], hostAttrs: [1, \"p-datatable-row-editor-cancel\"], hostBindings: function CancelEditableRow_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function CancelEditableRow_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } } });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CancelEditableRow, [{\n type: Directive,\n args: [{\n selector: '[pCancelEditableRow]',\n host: {\n class: 'p-datatable-row-editor-cancel'\n }\n }]\n }], () => [{ type: Table }, { type: EditableRow }], { onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\nclass CellEditor {\n dt;\n editableColumn;\n editableRow;\n _templates;\n _inputTemplate;\n _outputTemplate;\n inputTemplate;\n outputTemplate;\n constructor(dt, editableColumn, editableRow) {\n this.dt = dt;\n this.editableColumn = editableColumn;\n this.editableRow = editableRow;\n }\n ngAfterContentInit() {\n this._templates.forEach((item) => {\n switch (item.getType()) {\n case 'input':\n this.inputTemplate = item.template;\n break;\n case 'output':\n this.outputTemplate = item.template;\n break;\n }\n });\n }\n get editing() {\n return (this.dt.editingCell && this.editableColumn && this.dt.editingCell === this.editableColumn.el.nativeElement) || (this.editableRow && this.dt.editMode === 'row' && this.dt.isRowEditing(this.editableRow.data));\n }\n static ɵfac = function CellEditor_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CellEditor)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(EditableColumn, 8), i0.ɵɵdirectiveInject(EditableRow, 8)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CellEditor, selectors: [[\"p-cellEditor\"]], contentQueries: function CellEditor_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c51, 5);\n i0.ɵɵcontentQuery(dirIndex, _c52, 5);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._inputTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._outputTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._templates = _t);\n } }, decls: 2, vars: 2, consts: [[4, \"ngIf\"], [4, \"ngTemplateOutlet\"]], template: function CellEditor_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, CellEditor_ng_container_0_Template, 2, 1, \"ng-container\", 0)(1, CellEditor_ng_container_1_Template, 2, 1, \"ng-container\", 0);\n } if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.editing);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.editing);\n } }, dependencies: [i1.NgIf, i1.NgTemplateOutlet], encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CellEditor, [{\n type: Component,\n args: [{\n selector: 'p-cellEditor',\n template: `\n \n \n \n \n \n \n `,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{ type: Table }, { type: EditableColumn, decorators: [{\n type: Optional\n }] }, { type: EditableRow, decorators: [{\n type: Optional\n }] }], { _templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }], _inputTemplate: [{\n type: ContentChild,\n args: ['input']\n }], _outputTemplate: [{\n type: ContentChild,\n args: ['output']\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(CellEditor, { className: \"CellEditor\" }); })();\nclass TableRadioButton {\n dt;\n cd;\n disabled;\n value;\n index;\n inputId;\n name;\n ariaLabel;\n inputViewChild;\n checked;\n focused;\n subscription;\n constructor(dt, cd) {\n this.dt = dt;\n this.cd = cd;\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value);\n this.ariaLabel = this.ariaLabel || this.dt.config.translation.aria ? (this.checked ? this.dt.config.translation.aria.selectRow : this.dt.config.translation.aria.unselectRow) : undefined;\n this.cd.markForCheck();\n });\n }\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n onClick(event) {\n if (!this.disabled) {\n this.dt.toggleRowWithRadio({\n originalEvent: event.originalEvent,\n rowIndex: this.index\n }, this.value);\n this.inputViewChild?.inputViewChild.nativeElement?.focus();\n }\n DomHandler.clearSelection();\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n static ɵfac = function TableRadioButton_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableRadioButton)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableRadioButton, selectors: [[\"p-tableRadioButton\"]], viewQuery: function TableRadioButton_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c53, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputViewChild = _t.first);\n } }, inputs: { disabled: [2, \"disabled\", \"disabled\", booleanAttribute], value: \"value\", index: [2, \"index\", \"index\", numberAttribute], inputId: \"inputId\", name: \"name\", ariaLabel: \"ariaLabel\" }, features: [i0.ɵɵInputTransformsFeature], decls: 2, vars: 7, consts: [[\"rb\", \"\"], [3, \"ngModelChange\", \"onClick\", \"ngModel\", \"disabled\", \"inputId\", \"name\", \"ariaLabel\", \"binary\", \"value\"]], template: function TableRadioButton_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-radioButton\", 1, 0);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function TableRadioButton_Template_p_radioButton_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.checked, $event) || (ctx.checked = $event); return i0.ɵɵresetView($event); });\n i0.ɵɵlistener(\"onClick\", function TableRadioButton_Template_p_radioButton_onClick_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onClick($event)); });\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx.checked);\n i0.ɵɵproperty(\"disabled\", ctx.disabled)(\"inputId\", ctx.inputId)(\"name\", ctx.name)(\"ariaLabel\", ctx.ariaLabel)(\"binary\", true)(\"value\", ctx.value);\n } }, dependencies: [i5.NgControlStatus, i5.NgModel, i6.RadioButton], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableRadioButton, [{\n type: Component,\n args: [{\n selector: 'p-tableRadioButton',\n template: ` `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{ type: Table }, { type: i0.ChangeDetectorRef }], { disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], value: [{\n type: Input\n }], index: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], inputId: [{\n type: Input\n }], name: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], inputViewChild: [{\n type: ViewChild,\n args: ['rb']\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TableRadioButton, { className: \"TableRadioButton\" }); })();\nclass TableCheckbox {\n dt;\n tableService;\n cd;\n disabled;\n value;\n index;\n inputId;\n name;\n required;\n ariaLabel;\n checked;\n focused;\n subscription;\n constructor(dt, tableService, cd) {\n this.dt = dt;\n this.tableService = tableService;\n this.cd = cd;\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value) && !this.disabled;\n this.ariaLabel = this.ariaLabel || this.dt.config.translation.aria ? (this.checked ? this.dt.config.translation.aria.selectRow : this.dt.config.translation.aria.unselectRow) : undefined;\n this.cd.markForCheck();\n });\n }\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n onClick(event) {\n if (!this.disabled) {\n this.dt.toggleRowWithCheckbox({\n originalEvent: event,\n rowIndex: this.index\n }, this.value);\n }\n DomHandler.clearSelection();\n }\n onFocus() {\n this.focused = true;\n }\n onBlur() {\n this.focused = false;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n static ɵfac = function TableCheckbox_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableCheckbox)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableCheckbox, selectors: [[\"p-tableCheckbox\"]], inputs: { disabled: [2, \"disabled\", \"disabled\", booleanAttribute], value: \"value\", index: [2, \"index\", \"index\", numberAttribute], inputId: \"inputId\", name: \"name\", required: [2, \"required\", \"required\", booleanAttribute], ariaLabel: \"ariaLabel\" }, features: [i0.ɵɵInputTransformsFeature], decls: 2, vars: 5, consts: [[3, \"ngModelChange\", \"onChange\", \"ngModel\", \"binary\", \"disabled\", \"ariaLabel\"], [4, \"ngIf\"], [\"pTemplate\", \"icon\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function TableCheckbox_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"p-checkbox\", 0);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function TableCheckbox_Template_p_checkbox_ngModelChange_0_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.checked, $event) || (ctx.checked = $event); return $event; });\n i0.ɵɵlistener(\"onChange\", function TableCheckbox_Template_p_checkbox_onChange_0_listener($event) { return ctx.onClick($event); });\n i0.ɵɵtemplate(1, TableCheckbox_ng_container_1_Template, 2, 0, \"ng-container\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx.checked);\n i0.ɵɵproperty(\"binary\", true)(\"disabled\", ctx.disabled)(\"ariaLabel\", ctx.ariaLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.dt.checkboxIconTemplate || ctx.dt._checkboxIconTemplate);\n } }, dependencies: [i1.NgIf, i1.NgTemplateOutlet, i3.PrimeTemplate, i5.NgControlStatus, i5.NgModel, i7.Checkbox], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableCheckbox, [{\n type: Component,\n args: [{\n selector: 'p-tableCheckbox',\n template: `\n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }], { disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], value: [{\n type: Input\n }], index: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], inputId: [{\n type: Input\n }], name: [{\n type: Input\n }], required: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], ariaLabel: [{\n type: Input\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TableCheckbox, { className: \"TableCheckbox\" }); })();\nclass TableHeaderCheckbox {\n dt;\n tableService;\n cd;\n disabled;\n inputId;\n name;\n ariaLabel;\n checked;\n focused;\n selectionChangeSubscription;\n valueChangeSubscription;\n constructor(dt, tableService, cd) {\n this.dt = dt;\n this.tableService = tableService;\n this.cd = cd;\n this.valueChangeSubscription = this.dt.tableService.valueSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n this.ariaLabel = this.ariaLabel || this.dt.config.translation.aria ? (this.checked ? this.dt.config.translation.aria.selectAll : this.dt.config.translation.aria.unselectAll) : undefined;\n });\n this.selectionChangeSubscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n onClick(event) {\n if (!this.disabled) {\n if (this.dt.value && this.dt.value.length > 0) {\n this.dt.toggleRowsWithCheckbox(event, this.checked);\n }\n }\n DomHandler.clearSelection();\n }\n onFocus() {\n this.focused = true;\n }\n onBlur() {\n this.focused = false;\n }\n isDisabled() {\n return this.disabled || !this.dt.value || !this.dt.value.length;\n }\n ngOnDestroy() {\n if (this.selectionChangeSubscription) {\n this.selectionChangeSubscription.unsubscribe();\n }\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n updateCheckedState() {\n this.cd.markForCheck();\n if (this.dt._selectAll !== null) {\n return this.dt._selectAll;\n }\n else {\n const data = this.dt.selectionPageOnly ? this.dt.dataToRender(this.dt.processedData) : this.dt.processedData;\n const val = this.dt.frozenValue ? [...this.dt.frozenValue, ...data] : data;\n const selectableVal = this.dt.rowSelectable ? val.filter((data, index) => this.dt.rowSelectable({ data, index })) : val;\n return ObjectUtils.isNotEmpty(selectableVal) && ObjectUtils.isNotEmpty(this.dt.selection) && selectableVal.every((v) => this.dt.selection.some((s) => this.dt.equals(v, s)));\n }\n }\n static ɵfac = function TableHeaderCheckbox_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableHeaderCheckbox)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableHeaderCheckbox, selectors: [[\"p-tableHeaderCheckbox\"]], inputs: { disabled: [2, \"disabled\", \"disabled\", booleanAttribute], inputId: \"inputId\", name: \"name\", ariaLabel: \"ariaLabel\" }, features: [i0.ɵɵInputTransformsFeature], decls: 2, vars: 5, consts: [[3, \"ngModelChange\", \"onChange\", \"ngModel\", \"binary\", \"disabled\", \"ariaLabel\"], [4, \"ngIf\"], [\"pTemplate\", \"icon\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function TableHeaderCheckbox_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"p-checkbox\", 0);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function TableHeaderCheckbox_Template_p_checkbox_ngModelChange_0_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.checked, $event) || (ctx.checked = $event); return $event; });\n i0.ɵɵlistener(\"onChange\", function TableHeaderCheckbox_Template_p_checkbox_onChange_0_listener($event) { return ctx.onClick($event); });\n i0.ɵɵtemplate(1, TableHeaderCheckbox_ng_container_1_Template, 2, 0, \"ng-container\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx.checked);\n i0.ɵɵproperty(\"binary\", true)(\"disabled\", ctx.isDisabled())(\"ariaLabel\", ctx.ariaLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.dt.headerCheckboxIconTemplate || ctx.dt._headerCheckboxIconTemplate);\n } }, dependencies: [i1.NgIf, i1.NgTemplateOutlet, i3.PrimeTemplate, i5.NgControlStatus, i5.NgModel, i7.Checkbox], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableHeaderCheckbox, [{\n type: Component,\n args: [{\n selector: 'p-tableHeaderCheckbox',\n template: `\n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }], { disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], inputId: [{\n type: Input\n }], name: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TableHeaderCheckbox, { className: \"TableHeaderCheckbox\" }); })();\nclass ReorderableRowHandle {\n el;\n constructor(el) {\n this.el = el;\n }\n ngAfterViewInit() {\n // DomHandler.addClass(this.el.nativeElement, 'p-datatable-reorderable-row-handle');\n }\n static ɵfac = function ReorderableRowHandle_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReorderableRowHandle)(i0.ɵɵdirectiveInject(i0.ElementRef)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ReorderableRowHandle, selectors: [[\"\", \"pReorderableRowHandle\", \"\"]], hostAttrs: [1, \"p-datatable-reorderable-row-handle\"] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ReorderableRowHandle, [{\n type: Directive,\n args: [{\n selector: '[pReorderableRowHandle]',\n host: {\n class: 'p-datatable-reorderable-row-handle'\n }\n }]\n }], () => [{ type: i0.ElementRef }], null); })();\nclass ReorderableRow {\n renderer;\n dt;\n el;\n zone;\n index;\n pReorderableRowDisabled;\n mouseDownListener;\n dragStartListener;\n dragEndListener;\n dragOverListener;\n dragLeaveListener;\n dropListener;\n constructor(renderer, dt, el, zone) {\n this.renderer = renderer;\n this.dt = dt;\n this.el = el;\n this.zone = zone;\n }\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.el.nativeElement.droppable = true;\n this.bindEvents();\n }\n }\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.renderer.listen(this.el.nativeElement, 'mousedown', this.onMouseDown.bind(this));\n this.dragStartListener = this.renderer.listen(this.el.nativeElement, 'dragstart', this.onDragStart.bind(this));\n this.dragEndListener = this.renderer.listen(this.el.nativeElement, 'dragend', this.onDragEnd.bind(this));\n this.dragOverListener = this.renderer.listen(this.el.nativeElement, 'dragover', this.onDragOver.bind(this));\n this.dragLeaveListener = this.renderer.listen(this.el.nativeElement, 'dragleave', this.onDragLeave.bind(this));\n });\n }\n unbindEvents() {\n if (this.mouseDownListener) {\n this.mouseDownListener();\n this.mouseDownListener = null;\n }\n if (this.dragStartListener) {\n this.dragStartListener();\n this.dragStartListener = null;\n }\n if (this.dragEndListener) {\n this.dragEndListener();\n this.dragEndListener = null;\n }\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n if (this.dragLeaveListener) {\n this.dragLeaveListener();\n this.dragLeaveListener = null;\n }\n }\n onMouseDown(event) {\n const targetElement = event.target;\n const isHandleClicked = this.isHandleElement(targetElement);\n this.el.nativeElement.draggable = isHandleClicked;\n }\n isHandleElement(element) {\n if (element?.classList.contains('p-datatable-reorderable-row-handle')) {\n return true;\n }\n if (element?.parentElement && !['TD', 'TR'].includes(element?.parentElement?.tagName)) {\n return this.isHandleElement(element?.parentElement);\n }\n return false;\n }\n onDragStart(event) {\n this.dt.onRowDragStart(event, this.index);\n }\n onDragEnd(event) {\n this.dt.onRowDragEnd(event);\n this.el.nativeElement.draggable = false;\n }\n onDragOver(event) {\n this.dt.onRowDragOver(event, this.index, this.el.nativeElement);\n event.preventDefault();\n }\n onDragLeave(event) {\n this.dt.onRowDragLeave(event, this.el.nativeElement);\n }\n isEnabled() {\n return this.pReorderableRowDisabled !== true;\n }\n onDrop(event) {\n if (this.isEnabled() && this.dt.rowDragging) {\n this.dt.onRowDrop(event, this.el.nativeElement);\n }\n event.preventDefault();\n }\n ngOnDestroy() {\n this.unbindEvents();\n }\n static ɵfac = function ReorderableRow_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReorderableRow)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ReorderableRow, selectors: [[\"\", \"pReorderableRow\", \"\"]], hostBindings: function ReorderableRow_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"drop\", function ReorderableRow_drop_HostBindingHandler($event) { return ctx.onDrop($event); });\n } }, inputs: { index: [0, \"pReorderableRow\", \"index\"], pReorderableRowDisabled: [2, \"pReorderableRowDisabled\", \"pReorderableRowDisabled\", booleanAttribute] }, features: [i0.ɵɵInputTransformsFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ReorderableRow, [{\n type: Directive,\n args: [{\n selector: '[pReorderableRow]'\n }]\n }], () => [{ type: i0.Renderer2 }, { type: Table }, { type: i0.ElementRef }, { type: i0.NgZone }], { index: [{\n type: Input,\n args: ['pReorderableRow']\n }], pReorderableRowDisabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onDrop: [{\n type: HostListener,\n args: ['drop', ['$event']]\n }] }); })();\nclass ColumnFilter extends BaseComponent {\n /**\n * Property represented by the column.\n * @group Props\n */\n field;\n /**\n * Type of the input.\n * @group Props\n */\n type = 'text';\n /**\n * Filter display.\n * @group Props\n */\n display = 'row';\n /**\n * Decides whether to display filter menu popup.\n * @group Props\n */\n showMenu = true;\n /**\n * Filter match mode.\n * @group Props\n */\n matchMode;\n /**\n * Filter operator.\n * @defaultValue 'AND'\n * @group Props\n */\n operator = FilterOperator.AND;\n /**\n * Decides whether to display filter operator.\n * @group Props\n */\n showOperator = true;\n /**\n * Decides whether to display clear filter button.\n * @group Props\n */\n showClearButton = true;\n /**\n * Decides whether to display apply filter button.\n * @group Props\n */\n showApplyButton = true;\n /**\n * Decides whether to display filter match modes.\n * @group Props\n */\n showMatchModes = true;\n /**\n * Decides whether to display add filter button.\n * @group Props\n */\n showAddButton = true;\n /**\n * Decides whether to close popup on clear button click.\n * @group Props\n */\n hideOnClear = false;\n /**\n * Filter placeholder.\n * @group Props\n */\n placeholder;\n /**\n * Filter match mode options.\n * @group Props\n */\n matchModeOptions;\n /**\n * Defines maximum amount of constraints.\n * @group Props\n */\n maxConstraints = 2;\n /**\n * Defines minimum fraction of digits.\n * @group Props\n */\n minFractionDigits;\n /**\n * Defines maximum fraction of digits.\n * @group Props\n */\n maxFractionDigits;\n /**\n * Defines prefix of the filter.\n * @group Props\n */\n prefix;\n /**\n * Defines suffix of the filter.\n * @group Props\n */\n suffix;\n /**\n * Defines filter locale.\n * @group Props\n */\n locale;\n /**\n * Defines filter locale matcher.\n * @group Props\n */\n localeMatcher;\n /**\n * Enables currency input.\n * @group Props\n */\n currency;\n /**\n * Defines the display of the currency input.\n * @group Props\n */\n currencyDisplay;\n /**\n * Defines if filter grouping will be enabled.\n * @group Props\n */\n useGrouping = true;\n /**\n * Defines the visibility of buttons.\n * @group Props\n */\n showButtons = true;\n /**\n * Defines the aria-label of the form element.\n * @group Props\n */\n ariaLabel;\n /**\n * Used to pass all filter button property object\n * @defaultValue {\n filter: { severity: 'secondary', text: true, rounded: true },\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true }\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' }\n }\n }\n */\n filterButtonProps = {\n filter: { severity: 'secondary', text: true, rounded: true },\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true }\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' }\n }\n };\n /**\n * Callback to invoke on overlay is shown.\n * @param {AnimationEvent} originalEvent - animation event.\n * @group Emits\n */\n onShow = new EventEmitter();\n /**\n * Callback to invoke on overlay is hidden.\n * @param {AnimationEvent} originalEvent - animation event.\n * @group Emits\n */\n onHide = new EventEmitter();\n icon;\n clearButtonViewChild;\n _templates;\n overlaySubscription;\n _headerTemplate;\n headerTemplate;\n _filterTemplate;\n filterTemplate;\n _footerTemplate;\n footerTemplate;\n _filterIconTemplate;\n filterIconTemplate;\n _removeRuleIconTemplate;\n removeRuleIconTemplate;\n _addRuleIconTemplate;\n addRuleIconTemplate;\n _clearFilterIconTemplate;\n clearFilterIconTemplate;\n operatorOptions;\n overlayVisible;\n overlay;\n scrollHandler;\n documentClickListener;\n documentResizeListener;\n matchModes;\n translationSubscription;\n resetSubscription;\n selfClick;\n overlayEventListener;\n overlayId;\n get fieldConstraints() {\n return this.dt.filters ? this.dt.filters[this.field] : null;\n }\n get showRemoveIcon() {\n return this.fieldConstraints ? this.fieldConstraints.length > 1 : false;\n }\n get showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n }\n get isShowOperator() {\n return this.showOperator && this.type !== 'boolean';\n }\n get isShowAddConstraint() {\n return this.showAddButton && this.type !== 'boolean' && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n }\n get showMenuButtonLabel() {\n return this.config.getTranslation(TranslationKeys.SHOW_FILTER_MENU);\n }\n get applyButtonLabel() {\n return this.config.getTranslation(TranslationKeys.APPLY);\n }\n get clearButtonLabel() {\n return this.config.getTranslation(TranslationKeys.CLEAR);\n }\n get addRuleButtonLabel() {\n return this.config.getTranslation(TranslationKeys.ADD_RULE);\n }\n get removeRuleButtonLabel() {\n return this.config.getTranslation(TranslationKeys.REMOVE_RULE);\n }\n get noFilterLabel() {\n return this.config.getTranslation(TranslationKeys.NO_FILTER);\n }\n get filterMenuButtonAriaLabel() {\n return this.config.translation ? (this.overlayVisible ? this.config.translation.aria.hideFilterMenu : this.config.translation.aria.showFilterMenu) : undefined;\n }\n get removeRuleButtonAriaLabel() {\n return this.config.translation ? this.config.translation.removeRule : undefined;\n }\n get filterOperatorAriaLabel() {\n return this.config.translation ? this.config.translation.aria.filterOperator : undefined;\n }\n get filterConstraintAriaLabel() {\n return this.config.translation ? this.config.translation.aria.filterConstraint : undefined;\n }\n dt = inject(Table);\n overlayService = inject(OverlayService);\n hostName = 'Table';\n parentInstance = inject(forwardRef(() => Table));\n ngOnInit() {\n super.ngOnInit();\n this.overlayId = UniqueComponentId();\n if (!this.dt.filters[this.field]) {\n this.initFieldFilterConstraint();\n }\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n });\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n }\n generateMatchModeOptions() {\n this.matchModes =\n this.matchModeOptions ||\n this.config.filterMatchModeOptions[this.type]?.map((key) => {\n return {\n label: this.config.getTranslation(key),\n value: key\n };\n });\n }\n generateOperatorOptions() {\n this.operatorOptions = [\n {\n label: this.config.getTranslation(TranslationKeys.MATCH_ALL),\n value: FilterOperator.AND\n },\n {\n label: this.config.getTranslation(TranslationKeys.MATCH_ANY),\n value: FilterOperator.OR\n }\n ];\n }\n ngAfterContentInit() {\n this._templates.forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n case 'filter':\n this.filterTemplate = item.template;\n break;\n case 'footer':\n this.footerTemplate = item.template;\n break;\n case 'filtericon':\n this.filterIconTemplate = item.template;\n break;\n case 'clearfiltericon':\n this.clearFilterIconTemplate = item.template;\n break;\n case 'removeruleicon':\n this.removeRuleIconTemplate = item.template;\n break;\n case 'addruleicon':\n this.addRuleIconTemplate = item.template;\n break;\n default:\n this.filterTemplate = item.template;\n break;\n }\n });\n }\n initFieldFilterConstraint() {\n let defaultMatchMode = this.getDefaultMatchMode();\n this.dt.filters[this.field] =\n this.display == 'row'\n ? { value: null, matchMode: defaultMatchMode }\n : [\n {\n value: null,\n matchMode: defaultMatchMode,\n operator: this.operator\n }\n ];\n }\n onMenuMatchModeChange(value, filterMeta) {\n filterMeta.matchMode = value;\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n onRowMatchModeChange(matchMode) {\n const fieldFilter = this.dt.filters[this.field];\n fieldFilter.matchMode = matchMode;\n if (fieldFilter.value) {\n this.dt._filter();\n }\n this.hide();\n }\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n switch (event.key) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n event.preventDefault();\n break;\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n event.preventDefault();\n break;\n }\n }\n onRowClearItemClick() {\n this.clearFilter();\n this.hide();\n }\n isRowMatchModeSelected(matchMode) {\n return this.dt.filters[this.field].matchMode === matchMode;\n }\n addConstraint() {\n this.dt.filters[this.field].push({\n value: null,\n matchMode: this.getDefaultMatchMode(),\n operator: this.getDefaultOperator()\n });\n DomHandler.focus(this.clearButtonViewChild.nativeElement);\n }\n removeConstraint(filterMeta) {\n this.dt.filters[this.field] = this.dt.filters[this.field].filter((meta) => meta !== filterMeta);\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n DomHandler.focus(this.clearButtonViewChild.nativeElement);\n }\n onOperatorChange(value) {\n this.dt.filters[this.field].forEach((filterMeta) => {\n filterMeta.operator = value;\n this.operator = value;\n });\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n event.stopPropagation();\n }\n onToggleButtonKeyDown(event) {\n switch (event.key) {\n case 'Escape':\n case 'Tab':\n this.overlayVisible = false;\n break;\n case 'ArrowDown':\n if (this.overlayVisible) {\n let focusable = DomHandler.getFocusableElements(this.overlay);\n if (focusable) {\n focusable[0].focus();\n }\n event.preventDefault();\n }\n else if (event.altKey) {\n this.overlayVisible = true;\n event.preventDefault();\n }\n break;\n case 'Enter':\n this.toggleMenu(event);\n event.preventDefault();\n break;\n }\n }\n onEscape() {\n this.overlayVisible = false;\n this.icon?.nativeElement.focus();\n }\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n if (nextItem)\n return DomHandler.hasClass(nextItem, 'p-datatable-filter-constraint-separator') ? this.findNextItem(nextItem) : nextItem;\n else\n return item.parentElement?.firstElementChild;\n }\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n if (prevItem)\n return DomHandler.hasClass(prevItem, 'p-datatable-filter-constraint-separator') ? this.findPrevItem(prevItem) : prevItem;\n else\n return item.parentElement?.lastElementChild;\n }\n onContentClick() {\n this.selfClick = true;\n }\n onOverlayAnimationStart(event) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n this.renderer.appendChild(this.document.body, this.overlay);\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n DomHandler.absolutePosition(this.overlay, this.icon?.nativeElement);\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n this.overlayEventListener = (e) => {\n if (this.overlay && this.overlay.contains(e.target)) {\n this.selfClick = true;\n }\n };\n this.overlaySubscription = this.overlayService.clickObservable.subscribe(this.overlayEventListener);\n this.onShow.emit({ originalEvent: event });\n break;\n case 'void':\n this.onOverlayHide();\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n break;\n }\n }\n onOverlayAnimationEnd(event) {\n switch (event.toState) {\n case 'visible':\n this.focusOnFirstElement();\n break;\n case 'void':\n ZIndexUtils.clear(event.element);\n this.onHide.emit({ originalEvent: event });\n break;\n }\n }\n focusOnFirstElement() {\n if (this.overlay) {\n DomHandler.focus(DomHandler.getFirstFocusableElement(this.overlay, ''));\n }\n }\n getDefaultMatchMode() {\n if (this.matchMode) {\n return this.matchMode;\n }\n else {\n if (this.type === 'text')\n return FilterMatchMode.STARTS_WITH;\n else if (this.type === 'numeric')\n return FilterMatchMode.EQUALS;\n else if (this.type === 'date')\n return FilterMatchMode.DATE_IS;\n else\n return FilterMatchMode.CONTAINS;\n }\n }\n getDefaultOperator() {\n return this.dt.filters ? this.dt.filters[this.field][0].operator : this.operator;\n }\n hasRowFilter() {\n return this.dt.filters[this.field] && !this.dt.isFilterBlank(this.dt.filters[this.field].value);\n }\n get hasFilter() {\n let fieldFilter = this.dt.filters[this.field];\n if (fieldFilter) {\n if (Array.isArray(fieldFilter))\n return !this.dt.isFilterBlank(fieldFilter[0].value);\n else\n return !this.dt.isFilterBlank(fieldFilter.value);\n }\n return false;\n }\n isOutsideClicked(event) {\n return !(DomHandler.hasClass(this.overlay?.nextElementSibling, 'p-overlay') ||\n DomHandler.hasClass(this.overlay?.nextElementSibling, 'p-popover') ||\n this.overlay?.isSameNode(event.target) ||\n this.overlay?.contains(event.target) ||\n this.icon?.nativeElement.isSameNode(event.target) ||\n this.icon?.nativeElement.contains(event.target) ||\n DomHandler.hasClass(event.target, 'p-datatable-filter-add-rule-button') ||\n DomHandler.hasClass(event.target.parentElement, 'p-datatable-filter-add-rule-button') ||\n DomHandler.hasClass(event.target, 'p-datatable-filter-remove-rule-button') ||\n DomHandler.hasClass(event.target.parentElement, 'p-datatable-filter-remove-rule-button'));\n }\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n const documentTarget = this.el ? this.el.nativeElement.ownerDocument : 'document';\n this.documentClickListener = this.renderer.listen(documentTarget, 'mousedown', (event) => {\n const dialogElements = document.querySelectorAll('[role=\"dialog\"]');\n const targetIsColumnFilterMenuButton = event.target.closest('.p-datatable-column-filter-button');\n if (this.overlayVisible && this.isOutsideClicked(event) && (targetIsColumnFilterMenuButton || dialogElements?.length <= 1)) {\n this.hide();\n }\n this.selfClick = false;\n });\n }\n }\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n this.selfClick = false;\n }\n }\n bindDocumentResizeListener() {\n if (!this.documentResizeListener) {\n this.documentResizeListener = this.renderer.listen(this.document.defaultView, 'resize', (event) => {\n if (this.overlayVisible && !DomHandler.isTouchDevice()) {\n this.hide();\n }\n });\n }\n }\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.icon?.nativeElement, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n hide() {\n this.overlayVisible = false;\n this.cd.markForCheck();\n }\n onOverlayHide() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n }\n clearFilter() {\n this.initFieldFilterConstraint();\n this.dt._filter();\n if (this.hideOnClear)\n this.hide();\n }\n applyFilter() {\n this.dt._filter();\n this.hide();\n }\n ngOnDestroy() {\n if (this.overlay) {\n this.renderer.appendChild(this.el.nativeElement, this.overlay);\n ZIndexUtils.clear(this.overlay);\n this.onOverlayHide();\n }\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n if (this.resetSubscription) {\n this.resetSubscription.unsubscribe();\n }\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵColumnFilter_BaseFactory; return function ColumnFilter_Factory(__ngFactoryType__) { return (ɵColumnFilter_BaseFactory || (ɵColumnFilter_BaseFactory = i0.ɵɵgetInheritedFactory(ColumnFilter)))(__ngFactoryType__ || ColumnFilter); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ColumnFilter, selectors: [[\"p-columnFilter\"]], contentQueries: function ColumnFilter_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, _c54, 4);\n i0.ɵɵcontentQuery(dirIndex, _c5, 4);\n i0.ɵɵcontentQuery(dirIndex, _c55, 4);\n i0.ɵɵcontentQuery(dirIndex, _c56, 4);\n i0.ɵɵcontentQuery(dirIndex, _c57, 4);\n i0.ɵɵcontentQuery(dirIndex, _c58, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._headerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._filterTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._footerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._filterIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._removeRuleIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._addRuleIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._clearFilterIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._templates = _t);\n } }, viewQuery: function ColumnFilter_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(Button, 5, ElementRef);\n i0.ɵɵviewQuery(_c59, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.icon = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.clearButtonViewChild = _t.first);\n } }, inputs: { field: \"field\", type: \"type\", display: \"display\", showMenu: [2, \"showMenu\", \"showMenu\", booleanAttribute], matchMode: \"matchMode\", operator: \"operator\", showOperator: [2, \"showOperator\", \"showOperator\", booleanAttribute], showClearButton: [2, \"showClearButton\", \"showClearButton\", booleanAttribute], showApplyButton: [2, \"showApplyButton\", \"showApplyButton\", booleanAttribute], showMatchModes: [2, \"showMatchModes\", \"showMatchModes\", booleanAttribute], showAddButton: [2, \"showAddButton\", \"showAddButton\", booleanAttribute], hideOnClear: [2, \"hideOnClear\", \"hideOnClear\", booleanAttribute], placeholder: \"placeholder\", matchModeOptions: \"matchModeOptions\", maxConstraints: [2, \"maxConstraints\", \"maxConstraints\", numberAttribute], minFractionDigits: [2, \"minFractionDigits\", \"minFractionDigits\", (value) => numberAttribute(value, null)], maxFractionDigits: [2, \"maxFractionDigits\", \"maxFractionDigits\", (value) => numberAttribute(value, null)], prefix: \"prefix\", suffix: \"suffix\", locale: \"locale\", localeMatcher: \"localeMatcher\", currency: \"currency\", currencyDisplay: \"currencyDisplay\", useGrouping: [2, \"useGrouping\", \"useGrouping\", booleanAttribute], showButtons: [2, \"showButtons\", \"showButtons\", booleanAttribute], ariaLabel: \"ariaLabel\", filterButtonProps: \"filterButtonProps\" }, outputs: { onShow: \"onShow\", onHide: \"onHide\" }, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 5, consts: [[\"icon\", \"\"], [\"menu\", \"\"], [\"clearBtn\", \"\"], [3, \"ngClass\"], [\"class\", \"p-fluid\", 3, \"type\", \"field\", \"ariaLabel\", \"filterConstraint\", \"filterTemplate\", \"placeholder\", \"minFractionDigits\", \"maxFractionDigits\", \"prefix\", \"suffix\", \"locale\", \"localeMatcher\", \"currency\", \"currencyDisplay\", \"useGrouping\", \"showButtons\", 4, \"ngIf\"], [3, \"styleClass\", \"ariaLabel\", \"buttonProps\", \"click\", \"keydown\", 4, \"ngIf\"], [3, \"styleClass\", \"ariaLabel\", \"buttonProps\", \"onClick\", 4, \"ngIf\"], [\"role\", \"dialog\", 3, \"ngClass\", \"id\", \"click\", \"keydown.escape\", 4, \"ngIf\"], [1, \"p-fluid\", 3, \"type\", \"field\", \"ariaLabel\", \"filterConstraint\", \"filterTemplate\", \"placeholder\", \"minFractionDigits\", \"maxFractionDigits\", \"prefix\", \"suffix\", \"locale\", \"localeMatcher\", \"currency\", \"currencyDisplay\", \"useGrouping\", \"showButtons\"], [3, \"click\", \"keydown\", \"styleClass\", \"ariaLabel\", \"buttonProps\"], [4, \"ngIf\"], [\"class\", \"pi-filter-icon\", 4, \"ngIf\"], [1, \"pi-filter-icon\"], [4, \"ngTemplateOutlet\"], [3, \"onClick\", \"styleClass\", \"ariaLabel\", \"buttonProps\"], [\"role\", \"dialog\", 3, \"click\", \"keydown.escape\", \"ngClass\", \"id\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"ngClass\", 4, \"ngIf\", \"ngIfElse\"], [3, \"ngClass\", \"p-datatable-filter-constraint-selected\", \"click\", \"keydown\", \"keydown.enter\", 4, \"ngFor\", \"ngForOf\"], [3, \"click\", \"keydown\", \"keydown.enter\", \"ngClass\"], [3, \"ngClass\", 4, \"ngIf\"], [3, \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [3, \"outlined\", \"label\", \"buttonProps\", \"onClick\", 4, \"ngIf\"], [\"size\", \"small\", 3, \"label\", \"buttonProps\", \"onClick\", 4, \"ngIf\"], [3, \"ngModelChange\", \"options\", \"ngModel\", \"styleClass\"], [3, \"options\", \"ngModel\", \"styleClass\", \"ngModelChange\", 4, \"ngIf\"], [3, \"type\", \"field\", \"filterConstraint\", \"filterTemplate\", \"placeholder\", \"minFractionDigits\", \"maxFractionDigits\", \"prefix\", \"suffix\", \"locale\", \"localeMatcher\", \"currency\", \"currencyDisplay\", \"useGrouping\"], [\"severity\", \"danger\", \"size\", \"small\", 3, \"styleClass\", \"text\", \"ariaLabel\", \"label\", \"buttonProps\", \"onClick\", 4, \"ngIf\"], [\"severity\", \"danger\", \"size\", \"small\", 3, \"onClick\", \"styleClass\", \"text\", \"ariaLabel\", \"label\", \"buttonProps\"], [\"type\", \"button\", \"size\", \"small\", 3, \"onClick\", \"label\", \"styleClass\", \"text\", \"buttonProps\"], [3, \"onClick\", \"outlined\", \"label\", \"buttonProps\"], [\"size\", \"small\", 3, \"onClick\", \"label\", \"buttonProps\"]], template: function ColumnFilter_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 3);\n i0.ɵɵtemplate(1, ColumnFilter_p_columnFilterFormElement_1_Template, 1, 16, \"p-columnFilterFormElement\", 4)(2, ColumnFilter_p_button_2_Template, 3, 6, \"p-button\", 5)(3, ColumnFilter_p_button_3_Template, 3, 3, \"p-button\", 6)(4, ColumnFilter_div_4_Template, 6, 14, \"div\", 7);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵproperty(\"ngClass\", ctx.cx(\"filter\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.display === \"row\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showMenuButton);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showClearButton && ctx.display === \"row\" && ctx.hasFilter);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showMenu && ctx.overlayVisible);\n } }, dependencies: () => [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i8.Select, i5.NgControlStatus, i5.NgModel, i9.Button, FilterIcon,\n FilterSlashIcon,\n PlusIcon,\n TrashIcon, ColumnFilterFormElement], encapsulation: 2, data: { animation: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('.12s cubic-bezier(0, 0, 0.2, 1)')]), transition(':leave', [animate('.1s linear', style({ opacity: 0 }))])])] } });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ColumnFilter, [{\n type: Component,\n args: [{\n selector: 'p-columnFilter',\n template: `\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n {{ matchMode.label }}\n \n
  • \n
  • \n {{ noFilterLabel }}\n
  • \n
\n \n
\n \n
\n
\n
\n \n \n
\n \n \n \n \n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n
\n
\n \n
\n \n `,\n animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('.12s cubic-bezier(0, 0, 0.2, 1)')]), transition(':leave', [animate('.1s linear', style({ opacity: 0 }))])])],\n encapsulation: ViewEncapsulation.None\n }]\n }], null, { field: [{\n type: Input\n }], type: [{\n type: Input\n }], display: [{\n type: Input\n }], showMenu: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], matchMode: [{\n type: Input\n }], operator: [{\n type: Input\n }], showOperator: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showClearButton: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showApplyButton: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showMatchModes: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showAddButton: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], hideOnClear: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], placeholder: [{\n type: Input\n }], matchModeOptions: [{\n type: Input\n }], maxConstraints: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], minFractionDigits: [{\n type: Input,\n args: [{ transform: (value) => numberAttribute(value, null) }]\n }], maxFractionDigits: [{\n type: Input,\n args: [{ transform: (value) => numberAttribute(value, null) }]\n }], prefix: [{\n type: Input\n }], suffix: [{\n type: Input\n }], locale: [{\n type: Input\n }], localeMatcher: [{\n type: Input\n }], currency: [{\n type: Input\n }], currencyDisplay: [{\n type: Input\n }], useGrouping: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showButtons: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], ariaLabel: [{\n type: Input\n }], filterButtonProps: [{\n type: Input\n }], onShow: [{\n type: Output\n }], onHide: [{\n type: Output\n }], icon: [{\n type: ViewChild,\n args: [Button, { static: false, read: ElementRef }]\n }], clearButtonViewChild: [{\n type: ViewChild,\n args: ['clearBtn']\n }], _templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }], _headerTemplate: [{\n type: ContentChild,\n args: ['header', { descendants: false }]\n }], _filterTemplate: [{\n type: ContentChild,\n args: ['filter', { descendants: false }]\n }], _footerTemplate: [{\n type: ContentChild,\n args: ['footer', { descendants: false }]\n }], _filterIconTemplate: [{\n type: ContentChild,\n args: ['filtericon', { descendants: false }]\n }], _removeRuleIconTemplate: [{\n type: ContentChild,\n args: ['removeruleicon', { descendants: false }]\n }], _addRuleIconTemplate: [{\n type: ContentChild,\n args: ['addruleicon', { descendants: false }]\n }], _clearFilterIconTemplate: [{\n type: ContentChild,\n args: ['clearfiltericon', { descendants: false }]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(ColumnFilter, { className: \"ColumnFilter\" }); })();\nclass ColumnFilterFormElement {\n dt;\n colFilter;\n field;\n type;\n filterConstraint;\n filterTemplate;\n placeholder;\n minFractionDigits;\n maxFractionDigits;\n prefix;\n suffix;\n locale;\n localeMatcher;\n currency;\n currencyDisplay;\n useGrouping = true;\n ariaLabel;\n get showButtons() {\n return this.colFilter.showButtons;\n }\n filterCallback;\n constructor(dt, colFilter) {\n this.dt = dt;\n this.colFilter = colFilter;\n }\n ngOnInit() {\n this.filterCallback = (value) => {\n this.filterConstraint.value = value;\n this.dt._filter();\n };\n }\n onModelChange(value) {\n this.filterConstraint.value = value;\n if (this.type === 'date' || this.type === 'boolean' || value === '') {\n this.dt._filter();\n }\n }\n onTextInputEnterKeyDown(event) {\n this.dt._filter();\n event.preventDefault();\n }\n onNumericInputKeyDown(event) {\n if (event.key === 'Enter') {\n this.dt._filter();\n event.preventDefault();\n }\n }\n static ɵfac = function ColumnFilterFormElement_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ColumnFilterFormElement)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(ColumnFilter)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ColumnFilterFormElement, selectors: [[\"p-columnFilterFormElement\"]], inputs: { field: \"field\", type: \"type\", filterConstraint: \"filterConstraint\", filterTemplate: \"filterTemplate\", placeholder: \"placeholder\", minFractionDigits: [2, \"minFractionDigits\", \"minFractionDigits\", (value) => numberAttribute(value, null)], maxFractionDigits: [2, \"maxFractionDigits\", \"maxFractionDigits\", (value) => numberAttribute(value, null)], prefix: \"prefix\", suffix: \"suffix\", locale: \"locale\", localeMatcher: \"localeMatcher\", currency: \"currency\", currencyDisplay: \"currencyDisplay\", useGrouping: [2, \"useGrouping\", \"useGrouping\", booleanAttribute], ariaLabel: \"ariaLabel\" }, features: [i0.ɵɵInputTransformsFeature], decls: 3, vars: 2, consts: [[\"builtInElement\", \"\"], [4, \"ngIf\", \"ngIfElse\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"ngSwitch\"], [\"type\", \"text\", \"pInputText\", \"\", 3, \"ariaLabel\", \"value\", \"input\", \"keydown.enter\", 4, \"ngSwitchCase\"], [3, \"ngModel\", \"showButtons\", \"minFractionDigits\", \"maxFractionDigits\", \"ariaLabel\", \"prefix\", \"suffix\", \"placeholder\", \"mode\", \"locale\", \"localeMatcher\", \"currency\", \"currencyDisplay\", \"useGrouping\", \"ngModelChange\", \"onKeyDown\", 4, \"ngSwitchCase\"], [3, \"indeterminate\", \"binary\", \"ngModel\", \"ngModelChange\", 4, \"ngSwitchCase\"], [\"appendTo\", \"body\", 3, \"ariaLabel\", \"placeholder\", \"ngModel\", \"ngModelChange\", 4, \"ngSwitchCase\"], [\"type\", \"text\", \"pInputText\", \"\", 3, \"input\", \"keydown.enter\", \"ariaLabel\", \"value\"], [3, \"ngModelChange\", \"onKeyDown\", \"ngModel\", \"showButtons\", \"minFractionDigits\", \"maxFractionDigits\", \"ariaLabel\", \"prefix\", \"suffix\", \"placeholder\", \"mode\", \"locale\", \"localeMatcher\", \"currency\", \"currencyDisplay\", \"useGrouping\"], [3, \"ngModelChange\", \"indeterminate\", \"binary\", \"ngModel\"], [\"appendTo\", \"body\", 3, \"ngModelChange\", \"ariaLabel\", \"placeholder\", \"ngModel\"]], template: function ColumnFilterFormElement_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, ColumnFilterFormElement_ng_container_0_Template, 2, 19, \"ng-container\", 1)(1, ColumnFilterFormElement_ng_template_1_Template, 5, 5, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n const builtInElement_r6 = i0.ɵɵreference(2);\n i0.ɵɵproperty(\"ngIf\", ctx.filterTemplate)(\"ngIfElse\", builtInElement_r6);\n } }, dependencies: [i1.NgIf, i1.NgTemplateOutlet, i1.NgSwitch, i1.NgSwitchCase, i10.InputText, i5.NgControlStatus, i5.NgModel, i11.DatePicker, i12.InputNumber, i7.Checkbox], encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ColumnFilterFormElement, [{\n type: Component,\n args: [{\n selector: 'p-columnFilterFormElement',\n template: `\n \n \n \n \n \n \n \n \n\n \n \n \n `,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{ type: Table }, { type: ColumnFilter }], { field: [{\n type: Input\n }], type: [{\n type: Input\n }], filterConstraint: [{\n type: Input\n }], filterTemplate: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], minFractionDigits: [{\n type: Input,\n args: [{ transform: (value) => numberAttribute(value, null) }]\n }], maxFractionDigits: [{\n type: Input,\n args: [{ transform: (value) => numberAttribute(value, null) }]\n }], prefix: [{\n type: Input\n }], suffix: [{\n type: Input\n }], locale: [{\n type: Input\n }], localeMatcher: [{\n type: Input\n }], currency: [{\n type: Input\n }], currencyDisplay: [{\n type: Input\n }], useGrouping: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], ariaLabel: [{\n type: Input\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(ColumnFilterFormElement, { className: \"ColumnFilterFormElement\" }); })();\nclass TableModule {\n static ɵfac = function TableModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: TableModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [TableStyle], imports: [CommonModule,\n PaginatorModule,\n InputTextModule,\n SelectModule,\n FormsModule,\n ButtonModule,\n SelectButtonModule,\n DatePickerModule,\n InputNumberModule,\n CheckboxModule,\n ScrollerModule,\n ArrowDownIcon,\n ArrowUpIcon,\n SpinnerIcon,\n SortAltIcon,\n SortAmountUpAltIcon,\n SortAmountDownIcon,\n CheckIcon,\n FilterIcon,\n FilterSlashIcon,\n PlusIcon,\n TrashIcon,\n RadioButtonModule, SharedModule,\n ScrollerModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableModule, [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n PaginatorModule,\n InputTextModule,\n SelectModule,\n FormsModule,\n ButtonModule,\n SelectButtonModule,\n DatePickerModule,\n InputNumberModule,\n CheckboxModule,\n ScrollerModule,\n ArrowDownIcon,\n ArrowUpIcon,\n SpinnerIcon,\n SortAltIcon,\n SortAmountUpAltIcon,\n SortAmountDownIcon,\n CheckIcon,\n FilterIcon,\n FilterSlashIcon,\n PlusIcon,\n TrashIcon,\n RadioButtonModule\n ],\n exports: [\n Table,\n SharedModule,\n SortableColumn,\n FrozenColumn,\n RowGroupHeader,\n SelectableRow,\n RowToggler,\n ContextMenuRow,\n ResizableColumn,\n ReorderableColumn,\n EditableColumn,\n CellEditor,\n SortIcon,\n TableRadioButton,\n TableCheckbox,\n TableHeaderCheckbox,\n ReorderableRowHandle,\n ReorderableRow,\n SelectableRowDblClick,\n EditableRow,\n InitEditableRow,\n SaveEditableRow,\n CancelEditableRow,\n ColumnFilter,\n ColumnFilterFormElement,\n ScrollerModule\n ],\n declarations: [\n Table,\n SortableColumn,\n FrozenColumn,\n RowGroupHeader,\n SelectableRow,\n RowToggler,\n ContextMenuRow,\n ResizableColumn,\n ReorderableColumn,\n EditableColumn,\n CellEditor,\n TableBody,\n SortIcon,\n TableRadioButton,\n TableCheckbox,\n TableHeaderCheckbox,\n ReorderableRowHandle,\n ReorderableRow,\n SelectableRowDblClick,\n EditableRow,\n InitEditableRow,\n SaveEditableRow,\n CancelEditableRow,\n ColumnFilter,\n ColumnFilterFormElement\n ],\n providers: [TableStyle]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(TableModule, { declarations: [Table, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, TableBody, SortIcon, TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ColumnFilter, ColumnFilterFormElement], imports: [CommonModule,\n PaginatorModule,\n InputTextModule,\n SelectModule,\n FormsModule,\n ButtonModule,\n SelectButtonModule,\n DatePickerModule,\n InputNumberModule,\n CheckboxModule,\n ScrollerModule,\n ArrowDownIcon,\n ArrowUpIcon,\n SpinnerIcon,\n SortAltIcon,\n SortAmountUpAltIcon,\n SortAmountDownIcon,\n CheckIcon,\n FilterIcon,\n FilterSlashIcon,\n PlusIcon,\n TrashIcon,\n RadioButtonModule], exports: [Table, SharedModule, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, SortIcon, TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ColumnFilter, ColumnFilterFormElement, ScrollerModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CancelEditableRow, CellEditor, ColumnFilter, ColumnFilterFormElement, ContextMenuRow, EditableColumn, EditableRow, FrozenColumn, InitEditableRow, ReorderableColumn, ReorderableRow, ReorderableRowHandle, ResizableColumn, RowGroupHeader, RowToggler, SaveEditableRow, SelectableRow, SelectableRowDblClick, SortIcon, SortableColumn, Table, TableBody, TableCheckbox, TableClasses, TableHeaderCheckbox, TableModule, TableRadioButton, TableService, TableStyle };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-skeleton {\n overflow: hidden;\n background: ${dt('skeleton.background')};\n border-radius: ${dt('skeleton.border.radius')};\n}\n\n.p-skeleton::after {\n content: \"\";\n animation: p-skeleton-animation 1.2s infinite;\n height: 100%;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n transform: translateX(-100%);\n z-index: 1;\n background: linear-gradient(90deg, rgba(255, 255, 255, 0), ${dt('skeleton.animation.background')}, rgba(255, 255, 255, 0));\n}\n\n[dir='rtl'] .p-skeleton::after {\n animation-name: p-skeleton-animation-rtl;\n}\n\n.p-skeleton-circle {\n border-radius: 50%;\n}\n\n.p-skeleton-animation-none::after {\n animation: none;\n}\n\n@keyframes p-skeleton-animation {\n from {\n transform: translateX(-100%);\n }\n to {\n transform: translateX(100%);\n }\n}\n\n@keyframes p-skeleton-animation-rtl {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n`;\nconst inlineStyles = {\n root: { position: 'relative' }\n};\nconst classes = {\n root: ({ props }) => [\n 'p-skeleton p-component',\n {\n 'p-skeleton-circle': props.shape === 'circle',\n 'p-skeleton-animation-none': props.animation === 'none'\n }\n ]\n};\nclass SkeletonStyle extends BaseStyle {\n name = 'skeleton';\n theme = theme;\n classes = classes;\n inlineStyles = inlineStyles;\n static ɵfac = /*@__PURE__*/ (() => { let ɵSkeletonStyle_BaseFactory; return function SkeletonStyle_Factory(__ngFactoryType__) { return (ɵSkeletonStyle_BaseFactory || (ɵSkeletonStyle_BaseFactory = i0.ɵɵgetInheritedFactory(SkeletonStyle)))(__ngFactoryType__ || SkeletonStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SkeletonStyle, factory: SkeletonStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SkeletonStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * Skeleton is a placeholder to display instead of the actual content.\n *\n * [Live Demo](https://www.primeng.org/skeleton/)\n *\n * @module skeletonstyle\n *\n */\nvar SkeletonClasses;\n(function (SkeletonClasses) {\n /**\n * Class name of the root element\n */\n SkeletonClasses[\"root\"] = \"p-skeleton\";\n})(SkeletonClasses || (SkeletonClasses = {}));\n\n/**\n * Skeleton is a placeholder to display instead of the actual content.\n * @group Components\n */\nclass Skeleton extends BaseComponent {\n /**\n * Class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Inline style of the element.\n * @group Props\n */\n style;\n /**\n * Shape of the element.\n * @group Props\n */\n shape = 'rectangle';\n /**\n * Type of the animation.\n * @gruop Props\n */\n animation = 'wave';\n /**\n * Border radius of the element, defaults to value from theme.\n * @group Props\n */\n borderRadius;\n /**\n * Size of the skeleton.\n * @group Props\n */\n size;\n /**\n * Width of the element.\n * @group Props\n */\n width = '100%';\n /**\n * Height of the element.\n * @group Props\n */\n height = '1rem';\n _componentStyle = inject(SkeletonStyle);\n containerClass() {\n return {\n 'p-skeleton p-component': true,\n 'p-skeleton-circle': this.shape === 'circle',\n 'p-skeleton-animation-none': this.animation === 'none'\n };\n }\n get containerStyle() {\n const inlineStyles = this._componentStyle?.inlineStyles['root'];\n let style;\n if (this.size)\n style = { ...this.style, ...inlineStyles, width: this.size, height: this.size, borderRadius: this.borderRadius };\n else\n style = { ...inlineStyles, width: this.width, height: this.height, borderRadius: this.borderRadius, ...this.style };\n return style;\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵSkeleton_BaseFactory; return function Skeleton_Factory(__ngFactoryType__) { return (ɵSkeleton_BaseFactory || (ɵSkeleton_BaseFactory = i0.ɵɵgetInheritedFactory(Skeleton)))(__ngFactoryType__ || Skeleton); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Skeleton, selectors: [[\"p-skeleton\"]], inputs: { styleClass: \"styleClass\", style: \"style\", shape: \"shape\", animation: \"animation\", borderRadius: \"borderRadius\", size: \"size\", width: \"width\", height: \"height\" }, standalone: true, features: [i0.ɵɵProvidersFeature([SkeletonStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 1, vars: 7, consts: [[3, \"ngClass\", \"ngStyle\"]], template: function Skeleton_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", ctx.containerClass())(\"ngStyle\", ctx.containerStyle);\n i0.ɵɵattribute(\"data-pc-name\", \"skeleton\")(\"aria-hidden\", true)(\"data-pc-section\", \"root\");\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgStyle, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Skeleton, [{\n type: Component,\n args: [{\n selector: 'p-skeleton',\n standalone: true,\n imports: [CommonModule, SharedModule],\n template: `
`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [SkeletonStyle]\n }]\n }], null, { styleClass: [{\n type: Input\n }], style: [{\n type: Input\n }], shape: [{\n type: Input\n }], animation: [{\n type: Input\n }], borderRadius: [{\n type: Input\n }], size: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Skeleton, { className: \"Skeleton\" }); })();\nclass SkeletonModule {\n static ɵfac = function SkeletonModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SkeletonModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SkeletonModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Skeleton, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SkeletonModule, [{\n type: NgModule,\n args: [{\n imports: [Skeleton, SharedModule],\n exports: [Skeleton, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(SkeletonModule, { imports: [Skeleton, SharedModule], exports: [Skeleton, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Skeleton, SkeletonClasses, SkeletonModule, SkeletonStyle };\n","import { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i2 from '@angular/common';\nimport { isPlatformBrowser, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, inject, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChild, ContentChildren, HostListener, NgModule } from '@angular/core';\nimport { isIOS, appendChild, absolutePosition, getOffset, addClass, findSingle, isTouchDevice } from '@primeuix/utils';\nimport * as i1 from 'primeng/api';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { TimesIcon } from 'primeng/icons';\nimport { Ripple } from 'primeng/ripple';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-popover {\n margin-top: ${dt('popover.gutter')};\n background: ${dt('popover.background')};\n color: ${dt('popover.color')};\n border: 1px solid ${dt('popover.border.color')};\n border-radius: ${dt('popover.border.radius')};\n box-shadow: ${dt('popover.shadow')};\n position: absolute\n}\n\n.p-popover-content {\n padding: ${dt('popover.content.padding')};\n}\n\n.p-popover-flipped {\n margin-top: calc(${dt('popover.gutter')} * -1);\n margin-bottom: ${dt('popover.gutter')};\n}\n\n.p-popover-enter-from {\n opacity: 0;\n transform: scaleY(0.8);\n}\n\n.p-popover-leave-to {\n opacity: 0;\n}\n\n.p-popover-enter-active {\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n}\n\n.p-popover-leave-active {\n transition: opacity 0.1s linear;\n}\n\n.p-popover:after,\n.p-popover:before {\n bottom: 100%;\n left: ${dt('popover.arrow.offset')};\n content: \" \";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.p-popover:after {\n border-width: calc(${dt('popover.gutter')} - 2px);\n margin-left: calc(-1 * (${dt('popover.gutter')} - 2px));\n border-style: solid;\n border-color: transparent;\n border-bottom-color: ${dt('popover.background')};\n}\n\n.p-popover:before {\n border-width: ${dt('popover.gutter')};\n margin-left: calc(-1 * ${dt('popover.gutter')});\n border-style: solid;\n border-color: transparent;\n border-bottom-color: ${dt('popover.border.color')};\n}\n\n.p-popover-flipped:after,\n.p-popover-flipped:before {\n bottom: auto;\n top: 100%;\n}\n\n.p-popover.p-popover-flipped:after {\n border-bottom-color: transparent;\n border-top-color: ${dt('popover.background')};\n}\n\n.p-popover.p-popover-flipped:before {\n border-bottom-color: transparent;\n border-top-color: ${dt('popover.border.color')};\n}\n\n`;\nconst classes = {\n root: 'p-popover p-component',\n content: 'p-popover-content'\n};\nclass PopoverStyle extends BaseStyle {\n name = 'popover';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵPopoverStyle_BaseFactory; return function PopoverStyle_Factory(__ngFactoryType__) { return (ɵPopoverStyle_BaseFactory || (ɵPopoverStyle_BaseFactory = i0.ɵɵgetInheritedFactory(PopoverStyle)))(__ngFactoryType__ || PopoverStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PopoverStyle, factory: PopoverStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PopoverStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * Popover is a container component positioned as connected to its target.\n *\n * [Live Demo](https://www.primeng.org/popover)\n *\n * @module popoverstyle\n *\n */\nvar PopoverClasses;\n(function (PopoverClasses) {\n /**\n * Class name of the root element\n */\n PopoverClasses[\"root\"] = \"p-popover\";\n /**\n * Class name of the content element\n */\n PopoverClasses[\"content\"] = \"p-popover-content\";\n})(PopoverClasses || (PopoverClasses = {}));\n\nconst _c0 = [\"content\"];\nconst _c1 = [\"closeicon\"];\nconst _c2 = [\"*\"];\nconst _c3 = (a0, a1) => ({ showTransitionParams: a0, hideTransitionParams: a1 });\nconst _c4 = (a0, a1) => ({ value: a0, params: a1 });\nfunction OverlayPanel_div_0_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction OverlayPanel_div_0_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵlistener(\"click\", function OverlayPanel_div_0_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOverlayClick($event)); })(\"@animation.start\", function OverlayPanel_div_0_Template_div_animation_animation_start_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onAnimationStart($event)); })(\"@animation.done\", function OverlayPanel_div_0_Template_div_animation_animation_done_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onAnimationEnd($event)); });\n i0.ɵɵelementStart(1, \"div\", 2);\n i0.ɵɵlistener(\"click\", function OverlayPanel_div_0_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onContentClick($event)); })(\"mousedown\", function OverlayPanel_div_0_Template_div_mousedown_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onContentClick($event)); });\n i0.ɵɵprojection(2);\n i0.ɵɵtemplate(3, OverlayPanel_div_0_ng_container_3_Template, 1, 0, \"ng-container\", 3);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.styleClass);\n i0.ɵɵproperty(\"ngClass\", \"p-popover p-component\")(\"ngStyle\", ctx_r1.style)(\"@animation\", i0.ɵɵpureFunction2(12, _c4, ctx_r1.overlayVisible ? \"open\" : \"close\", i0.ɵɵpureFunction2(9, _c3, ctx_r1.showTransitionOptions, ctx_r1.hideTransitionOptions)));\n i0.ɵɵattribute(\"aria-modal\", ctx_r1.overlayVisible)(\"aria-label\", ctx_r1.ariaLabel)(\"aria-labelledBy\", ctx_r1.ariaLabelledBy);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.contentTemplate || ctx_r1._contentTemplate);\n} }\n/**\n * OverlayPanel is a container component positioned as connected to its target.\n * @group Components\n * @deprecated Use Popover component instead.\n */\nclass OverlayPanel extends BaseComponent {\n zone;\n overlayService;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n ariaLabel;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Enables to hide the overlay when outside is clicked.\n * @group Props\n */\n dismissable = true;\n /**\n * When enabled, displays a close icon at top right corner.\n * @group Props\n */\n showCloseIcon;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Target element to attach the panel, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n appendTo = 'body';\n /**\n * Whether to automatically manage layering.\n * @group Props\n */\n autoZIndex = true;\n /**\n * Aria label of the close icon.\n * @group Props\n */\n ariaCloseLabel;\n /**\n * Base zIndex value to use in layering.\n * @group Props\n */\n baseZIndex = 0;\n /**\n * When enabled, first button receives focus on show.\n * @group Props\n */\n focusOnShow = true;\n /**\n * Transition options of the show animation.\n * @group Props\n */\n showTransitionOptions = '.12s cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation.\n * @group Props\n */\n hideTransitionOptions = '.1s linear';\n /**\n * Callback to invoke when an overlay becomes visible.\n * @group Emits\n */\n onShow = new EventEmitter();\n /**\n * Callback to invoke when an overlay gets hidden.\n * @group Emits\n */\n onHide = new EventEmitter();\n container;\n overlayVisible = false;\n render = false;\n isOverlayAnimationInProgress = false;\n selfClick = false;\n documentClickListener;\n target;\n willHide;\n scrollHandler;\n documentResizeListener;\n contentTemplate;\n closeIconTemplate;\n templates;\n _contentTemplate;\n destroyCallback;\n overlayEventListener;\n overlaySubscription;\n _componentStyle = inject(PopoverStyle);\n constructor(zone, overlayService) {\n super();\n this.zone = zone;\n this.overlayService = overlayService;\n console.log('OverlayPanel is deprecated. Use Popover instead.');\n }\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this._contentTemplate = item.template;\n break;\n default:\n this._contentTemplate = item.template;\n break;\n }\n this.cd.markForCheck();\n });\n }\n bindDocumentClickListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.documentClickListener) {\n let documentEvent = isIOS() ? 'touchstart' : 'click';\n const documentTarget = this.el ? this.el.nativeElement.ownerDocument : this.document;\n this.documentClickListener = this.renderer.listen(documentTarget, documentEvent, (event) => {\n if (!this.dismissable) {\n return;\n }\n if (!this.container?.contains(event.target) && this.target !== event.target && !this.target.contains(event.target) && !this.selfClick) {\n this.hide();\n }\n this.selfClick = false;\n this.cd.markForCheck();\n });\n }\n }\n }\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n this.selfClick = false;\n }\n }\n /**\n * Toggles the visibility of the panel.\n * @param {Event} event - Browser event\n * @param {Target} target - Target element.\n * @group Method\n */\n toggle(event, target) {\n if (this.isOverlayAnimationInProgress) {\n return;\n }\n if (this.overlayVisible) {\n if (this.hasTargetChanged(event, target)) {\n this.destroyCallback = () => {\n this.show(null, target || event.currentTarget || event.target);\n };\n }\n this.hide();\n }\n else {\n this.show(event, target);\n }\n }\n /**\n * Displays the panel.\n * @param {Event} event - Browser event\n * @param {Target} target - Target element.\n * @group Method\n */\n show(event, target) {\n target && event && event.stopPropagation();\n if (this.isOverlayAnimationInProgress) {\n return;\n }\n this.target = target || event.currentTarget || event.target;\n this.overlayVisible = true;\n this.render = true;\n this.cd.markForCheck();\n }\n onOverlayClick(event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\n this.selfClick = true;\n }\n onContentClick(event) {\n const targetElement = event.target;\n this.selfClick = event.offsetX < targetElement.clientWidth && event.offsetY < targetElement.clientHeight;\n }\n hasTargetChanged(event, target) {\n return this.target != null && this.target !== (target || event.currentTarget || event.target);\n }\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n this.renderer.appendChild(this.document.body, this.container);\n else\n appendChild(this.appendTo, this.container);\n }\n }\n restoreAppend() {\n if (this.container && this.appendTo) {\n this.renderer.appendChild(this.el.nativeElement, this.container);\n }\n }\n align() {\n if (this.autoZIndex) {\n ZIndexUtils.set('overlay', this.container, this.baseZIndex + this.config.zIndex.overlay);\n }\n absolutePosition(this.container, this.target, false);\n const containerOffset = getOffset(this.container);\n const targetOffset = getOffset(this.target);\n const borderRadius = this.document.defaultView?.getComputedStyle(this.container).getPropertyValue('border-radius');\n let arrowLeft = 0;\n if (containerOffset.left < targetOffset.left) {\n arrowLeft = targetOffset.left - containerOffset.left - parseFloat(borderRadius) * 2;\n }\n this.container?.style.setProperty('--overlayArrowLeft', `${arrowLeft}px`);\n if (containerOffset.top < targetOffset.top) {\n addClass(this.container, 'p-popover-flipped');\n if (this.showCloseIcon) {\n this.renderer.setStyle(this.container, 'margin-top', '-30px');\n }\n }\n }\n onAnimationStart(event) {\n if (event.toState === 'open') {\n this.container = event.element;\n this.appendContainer();\n this.align();\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n if (this.focusOnShow) {\n this.focus();\n }\n this.overlayEventListener = (e) => {\n if (this.container && this.container.contains(e.target)) {\n this.selfClick = true;\n }\n };\n this.overlaySubscription = this.overlayService.clickObservable.subscribe(this.overlayEventListener);\n this.onShow.emit(null);\n }\n this.isOverlayAnimationInProgress = true;\n }\n onAnimationEnd(event) {\n switch (event.toState) {\n case 'void':\n if (this.destroyCallback) {\n this.destroyCallback();\n this.destroyCallback = null;\n }\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n break;\n case 'close':\n if (this.autoZIndex) {\n ZIndexUtils.clear(this.container);\n }\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n this.onContainerDestroy();\n this.onHide.emit({});\n this.render = false;\n break;\n }\n this.isOverlayAnimationInProgress = false;\n }\n focus() {\n let focusable = findSingle(this.container, '[autofocus]');\n if (focusable) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => focusable.focus(), 5);\n });\n }\n }\n /**\n * Hides the panel.\n * @group Method\n */\n hide() {\n this.overlayVisible = false;\n this.cd.markForCheck();\n }\n onCloseClick(event) {\n this.hide();\n event.preventDefault();\n }\n onEscapeKeydown(event) {\n this.hide();\n }\n onWindowResize() {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n }\n bindDocumentResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.documentResizeListener) {\n const window = this.document.defaultView;\n this.documentResizeListener = this.renderer.listen(window, 'resize', this.onWindowResize.bind(this));\n }\n }\n }\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n bindScrollListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n onContainerDestroy() {\n if (!this.cd.destroyed) {\n this.target = null;\n }\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n }\n ngOnDestroy() {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.container && this.autoZIndex) {\n ZIndexUtils.clear(this.container);\n }\n if (!this.cd.destroyed) {\n this.target = null;\n }\n this.destroyCallback = null;\n if (this.container) {\n this.restoreAppend();\n this.onContainerDestroy();\n }\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n static ɵfac = function OverlayPanel_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || OverlayPanel)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.OverlayService)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OverlayPanel, selectors: [[\"p-overlayPanel\"], [\"p-overlaypanel\"]], contentQueries: function OverlayPanel_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, _c1, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.closeIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, hostBindings: function OverlayPanel_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"keydown.escape\", function OverlayPanel_keydown_escape_HostBindingHandler($event) { return ctx.onEscapeKeydown($event); }, false, i0.ɵɵresolveDocument);\n } }, inputs: { ariaLabel: \"ariaLabel\", ariaLabelledBy: \"ariaLabelledBy\", dismissable: [2, \"dismissable\", \"dismissable\", booleanAttribute], showCloseIcon: [2, \"showCloseIcon\", \"showCloseIcon\", booleanAttribute], style: \"style\", styleClass: \"styleClass\", appendTo: \"appendTo\", autoZIndex: [2, \"autoZIndex\", \"autoZIndex\", booleanAttribute], ariaCloseLabel: \"ariaCloseLabel\", baseZIndex: [2, \"baseZIndex\", \"baseZIndex\", numberAttribute], focusOnShow: [2, \"focusOnShow\", \"focusOnShow\", booleanAttribute], showTransitionOptions: \"showTransitionOptions\", hideTransitionOptions: \"hideTransitionOptions\" }, outputs: { onShow: \"onShow\", onHide: \"onHide\" }, features: [i0.ɵɵProvidersFeature([PopoverStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c2, decls: 1, vars: 1, consts: [[\"role\", \"dialog\", 3, \"ngClass\", \"ngStyle\", \"class\", \"click\", 4, \"ngIf\"], [\"role\", \"dialog\", 3, \"click\", \"ngClass\", \"ngStyle\"], [1, \"p-popover-content\", 3, \"click\", \"mousedown\"], [4, \"ngTemplateOutlet\"]], template: function OverlayPanel_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, OverlayPanel_div_0_Template, 4, 15, \"div\", 0);\n } if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.render);\n } }, dependencies: [i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle], encapsulation: 2, data: { animation: [\n trigger('animation', [\n state('void', style({\n transform: 'scaleY(0.8)',\n opacity: 0\n })),\n state('close', style({\n opacity: 0\n })),\n state('open', style({\n transform: 'translateY(0)',\n opacity: 1\n })),\n transition('void => open', animate('{{showTransitionParams}}')),\n transition('open => close', animate('{{hideTransitionParams}}'))\n ])\n ] }, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayPanel, [{\n type: Component,\n args: [{\n selector: 'p-overlayPanel, p-overlaypanel',\n standalone: false,\n template: `\n \n
\n \n \n
\n \n `,\n animations: [\n trigger('animation', [\n state('void', style({\n transform: 'scaleY(0.8)',\n opacity: 0\n })),\n state('close', style({\n opacity: 0\n })),\n state('open', style({\n transform: 'translateY(0)',\n opacity: 1\n })),\n transition('void => open', animate('{{showTransitionParams}}')),\n transition('open => close', animate('{{hideTransitionParams}}'))\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [PopoverStyle]\n }]\n }], () => [{ type: i0.NgZone }, { type: i1.OverlayService }], { ariaLabel: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], dismissable: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showCloseIcon: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], appendTo: [{\n type: Input\n }], autoZIndex: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], ariaCloseLabel: [{\n type: Input\n }], baseZIndex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], focusOnShow: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showTransitionOptions: [{\n type: Input\n }], hideTransitionOptions: [{\n type: Input\n }], onShow: [{\n type: Output\n }], onHide: [{\n type: Output\n }], contentTemplate: [{\n type: ContentChild,\n args: ['content', { descendants: false }]\n }], closeIconTemplate: [{\n type: ContentChild,\n args: ['closeicon', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }], onEscapeKeydown: [{\n type: HostListener,\n args: ['document:keydown.escape', ['$event']]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(OverlayPanel, { className: \"OverlayPanel\" }); })();\nclass OverlayPanelModule {\n static ɵfac = function OverlayPanelModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || OverlayPanelModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: OverlayPanelModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, SharedModule, TimesIcon, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayPanelModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, Ripple, SharedModule, TimesIcon],\n exports: [OverlayPanel, SharedModule],\n declarations: [OverlayPanel]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(OverlayPanelModule, { declarations: [OverlayPanel], imports: [CommonModule, Ripple, SharedModule, TimesIcon], exports: [OverlayPanel, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { OverlayPanel, OverlayPanelModule, PopoverClasses, PopoverStyle };\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { VehicleIndicatorTypeNamePipe } from './vehicle-indicator-type-name.pipe';\r\nimport { VehicleIndicatorTypeUnitPipe } from './vehicle-indicator-type-unit.pipe';\r\nimport { TimeFormatPipe } from './time-format.pipe';\r\nimport { FullAddressPipe } from './full-address.pipe';\r\nimport { DriverFullNamePipe } from './driver-full-name.pipe';\r\nimport { DateLabelPipe } from './date-label.pipe';\r\nimport { StatusTimeFormatPipe } from './status-time-format.pipe';\r\nimport { EmptytPipe } from './empty.pipe';\r\nimport { HoursTimeFormatPipe } from './hours-time-format.pipe';\r\nimport { CorrectUrlPipe } from './correct-url.pipe';\r\nimport { PrepareTimePipe } from './prepare-time.pipe';\r\nimport { TranslateByTextPipe } from './translate-by-text.pipe';\r\nimport { AreaTypeImgPipe } from './area-type-img.pipe';\r\nimport { FilterArrByPropValuePipe } from './filter-arr-by-prop-value.pipe';\r\nimport { FormatSecondsToHumanizePipe } from './format-seconds-to-humanize.pipe';\r\nimport { FilterTachoListPipe } from './filter-tacho-list.pipe';\r\nimport { TimeDifferencePipe } from './time-difference.pipe';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tVehicleIndicatorTypeNamePipe,\r\n\t\tVehicleIndicatorTypeUnitPipe,\r\n\t\tTimeFormatPipe,\r\n\t\tFullAddressPipe,\r\n\t\tDriverFullNamePipe,\r\n\t\tDateLabelPipe,\r\n\t\tStatusTimeFormatPipe,\r\n\t\tEmptytPipe,\r\n\t\tHoursTimeFormatPipe,\r\n\t\tCorrectUrlPipe,\r\n\t\tPrepareTimePipe,\r\n \t\tTranslateByTextPipe,\r\n\t\tAreaTypeImgPipe,\r\n\t\tFilterArrByPropValuePipe,\r\n\t\tFormatSecondsToHumanizePipe,\r\n\t\tFilterTachoListPipe,\r\n \t\tTimeDifferencePipe,\r\n\t],\r\n\texports: [\r\n\t\tVehicleIndicatorTypeNamePipe,\r\n\t\tVehicleIndicatorTypeUnitPipe,\r\n\t\tTimeFormatPipe,\r\n\t\tFullAddressPipe,\r\n\t\tDriverFullNamePipe,\r\n\t\tDateLabelPipe,\r\n\t\tStatusTimeFormatPipe,\r\n\t\tEmptytPipe,\r\n\t\tHoursTimeFormatPipe,\r\n\t\tCorrectUrlPipe,\r\n\t\tPrepareTimePipe,\r\n\t\tTranslateByTextPipe,\r\n\t\tAreaTypeImgPipe,\r\n\t\tFilterArrByPropValuePipe,\r\n\t\tFormatSecondsToHumanizePipe,\r\n\t\tFilterTachoListPipe,\r\n\t\tTimeDifferencePipe,\r\n\t],\r\n\tproviders: [\r\n\t],\r\n\r\n})\r\nexport class PipesModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { InProgressDirective } from './in.progress/in-progress.directive';\r\nimport { FieldErrorsDirective } from './field.errors/field-errors.directive';\r\nimport { ClearOnForcusDirective } from './clear.on.focus/clear-on-forcus.directive';\r\nimport { RadioCheckboCustomColorDirective } from './radio-checkbo-custom-color.directive';\r\nimport { DropdownHoverDirective } from './dropdown-hover.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n InProgressDirective,\r\n FieldErrorsDirective,\r\n ClearOnForcusDirective,\r\n RadioCheckboCustomColorDirective,\r\n DropdownHoverDirective\r\n ],\r\n imports: [\r\n ],\r\n exports: [\r\n InProgressDirective,\r\n FieldErrorsDirective,\r\n ClearOnForcusDirective,\r\n RadioCheckboCustomColorDirective,\r\n DropdownHoverDirective,\r\n ],\r\n providers: [\r\n ],\r\n})\r\nexport class DirectivesModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filterArrByPropValue'\r\n})\r\nexport class FilterArrByPropValuePipe implements PipeTransform {\r\n\r\n transform(value: string, arr: any[], propName: string): any[] {\r\n if (!value?.length) {\r\n return arr;\r\n }\r\n\r\n return arr.filter(item => \r\n item[propName].toLowerCase().includes(value.toLowerCase())\r\n );\r\n }\r\n\r\n}\r\n","import { AfterViewInit, Directive, Input, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appRadioCheckboCustomColor]'\r\n})\r\nexport class RadioCheckboCustomColorDirective implements AfterViewInit {\r\n\r\n @Input() public colorCheckbox: string;\r\n\r\n constructor(private readonly viewRef: ViewContainerRef) {}\r\n\r\n private get checkboxRef(): HTMLElement {\r\n const checkboxWrapper = this.viewRef.element.nativeElement;\r\n return checkboxWrapper?.querySelector('.p-radiobutton-box') as HTMLElement as any;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setColors();\r\n }\r\n\r\n private setColors(): void {\r\n const element = this.checkboxRef;\r\n element.style.background = this.colorCheckbox;\r\n element.style.borderColor = this.colorCheckbox;\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n \r\n {{optionsSelectedCount}}\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n {{_data.dropdownLabel}}\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
\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
\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
\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FilterVehicleType } from '@src/app/enum/filters-vehicle.enum';\r\n\r\nimport { isEqual } from 'lodash';\r\n\r\nimport { ICheckboxValueFilters, IFilterVehicle, ISubmitFilters } from '@src/app/interfaces/filters-vehicle.interface';\r\nimport { OverlayPanel, OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { BehaviorSubject, Subscription, debounceTime } from 'rxjs';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PipesModule } from '@commons/pipes/pipes.module';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport {RadioButtonModule} from 'primeng/radiobutton';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { DirectivesModule } from '@commons/directives/directives.module';\r\n\r\nconst imports = [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n OverlayPanelModule,\r\n TranslateModule,\r\n CommonModule,\r\n PipesModule,\r\n ButtonModule,\r\n RadioButtonModule,\r\n CheckboxModule,\r\n DirectivesModule,\r\n];\r\n\r\n@Component({\r\n selector: 'app-filter-control',\r\n templateUrl: './filter-control.component.html',\r\n styleUrls: ['./filter-control.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.Default,\r\n standalone: true,\r\n imports,\r\n})\r\nexport class FilterControlComponent implements OnInit, OnDestroy {\r\n public readonly FILTER_VEHICLE_TYPE = FilterVehicleType;\r\n\r\n @Input('selectedControlValue') public set selectedControlValue(data: ISubmitFilters) {\r\n if (data && !isEqual(data.selectedControlValue, this._selectedControlValue)) {\r\n this._selectedControlValue = data.selectedControlValue;\r\n }\r\n }\r\n @Input('data') public set setData(data: IFilterVehicle) {\r\n this._data = data;\r\n this.setControls();\r\n };\r\n @Input() public optionsSelectedCount: number;\r\n @Input() public isVisibleSearchInput: boolean;\r\n\r\n @Output() public onSubmitFilters$: EventEmitter = new EventEmitter();\r\n\r\n public _selectedControlValue: any;\r\n public checkboxValues: ICheckboxValueFilters[] = [];\r\n public isLoading: boolean;\r\n public _data: IFilterVehicle;\r\n\r\n public searchInputValue$: BehaviorSubject = new BehaviorSubject(null as any);\r\n public searchValue: string = '';\r\n public searchValuePipe: string = '';\r\n\r\n private ComponentSubsc: Subscription = new Subscription();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.onChangeSearchInputValue();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n }\r\n\r\n public submit(modal: OverlayPanel): void {\r\n this.onSubmitFilters$.emit({\r\n selectedControlValue: this._selectedControlValue,\r\n checkboxValues: this.checkboxValues.filter(item => item.checkboxValue),\r\n });\r\n modal.hide();\r\n }\r\n\r\n public onShowDropdown(): void {\r\n document.getElementsByClassName('p-overlaypanel-content').item(0)?.classList.add('overlay-unset-padding');\r\n }\r\n\r\n public clearFilters(modal: OverlayPanel): void {\r\n this.clearFiltersValue();\r\n this.submit(modal);\r\n }\r\n\r\n public clearFiltersValue(): void {\r\n this._selectedControlValue = null;\r\n this.clearCheckboxValues();\r\n }\r\n\r\n private onChangeSearchInputValue(): void {\r\n const sub = this.searchInputValue$.pipe(debounceTime(150)).subscribe(\r\n (data) => {\r\n this.searchValuePipe = data;\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private setControls(): void {\r\n if (this._data.type === FilterVehicleType.Group) {\r\n this.checkboxValues = this._data.options.map(\r\n (item) => ({\r\n optionValue: item.value,\r\n checkboxValue: false, // TODO:\r\n data: item.data,\r\n })\r\n );\r\n }\r\n }\r\n\r\n private clearCheckboxValues(): void {\r\n this.checkboxValues = this.checkboxValues.map(item => ({...item, checkboxValue: false}));\r\n }\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { calculateVehicleTimeInCurrentState } from '@src/app/utils/vehicle-fncs';\r\n\r\n@Component({\r\n selector: 'app-calculate-time',\r\n templateUrl: './calculate-time.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styles: [`\r\n span {\r\n font-size: 11px;\r\n color: #000000;\r\n font-weight: normal;\r\n }\r\n `]\r\n})\r\nexport class CalculateTimeComponent {\r\n\r\n @Input('data') set data(value: Vehicle) {\r\n this.calculate(value);\r\n }\r\n\r\n public value: number;\r\n\r\n constructor() { }\r\n\r\n private calculate(data: Vehicle): void { \r\n this.value = calculateVehicleTimeInCurrentState(data);\r\n }\r\n\r\n}\r\n","\r\n {{value|statusTimeFormat}}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { findVehicleSpeedParamValue } from '@src/app/utils/params-binary-vehicle';\r\n\r\n@Component({\r\n selector: 'app-calculate-speed',\r\n templateUrl: './calculate-speed.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./calculate-speed.component.scss'],\r\n})\r\nexport class CalculateSpeedComponent {\r\n \r\n @Input('data') set data(value: Vehicle) {\r\n this.calculate(value);\r\n }\r\n\r\n public value: number;\r\n public maxSpeed: number;\r\n\r\n constructor() { }\r\n\r\n private calculate(data: Vehicle): void {\r\n this.value = findVehicleSpeedParamValue(data);\r\n this.maxSpeed = data.LL?.SL || 9999;\r\n }\r\n\r\n}\r\n","
\r\n = maxSpeed,\r\n 'no-speed-max': value < maxSpeed\r\n }\"\r\n class=\"vehicle-speed\"\r\n >\r\n \r\n {{ value | number: '1.0-0' }} km/h\r\n \r\n
\r\n\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\n\r\n@Component({\r\n selector: 'app-e-toll-status',\r\n templateUrl: './e-toll-status.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ETollStatusComponent {\r\n\r\n @Input() public data: Vehicle;\r\n @Input() public isSentGeo?: boolean;\r\n\r\n constructor() { }\r\n\r\n}\r\n","
\r\n
\r\n\r\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, numberAttribute, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-progressbar {\n position: relative;\n overflow: hidden;\n height: ${dt('progressbar.height')};\n background: ${dt('progressbar.background')};\n border-radius: ${dt('progressbar.border.radius')};\n}\n\n.p-progressbar-value {\n margin: 0;\n background: ${dt('progressbar.value.background')};\n}\n\n.p-progressbar-label {\n color: ${dt('progressbar.label.color')};\n font-size: ${dt('progressbar.label.font.size')};\n font-weight: ${dt('progressbar.label.font.weight')};\n}\n\n.p-progressbar-determinate .p-progressbar-value {\n height: 100%;\n width: 0%;\n position: absolute;\n display: none;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n transition: width 1s ease-in-out;\n}\n\n.p-progressbar-determinate .p-progressbar-label {\n display: inline-flex;\n}\n\n.p-progressbar-indeterminate .p-progressbar-value::before {\n content: \"\";\n position: absolute;\n background: inherit;\n top: 0;\n inset-inline-start: 0;\n bottom: 0;\n will-change: inset-inline-start, inset-inline-end;\n animation: p-progressbar-indeterminate-anim 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n}\n\n.p-progressbar-indeterminate .p-progressbar-value::after {\n content: \"\";\n position: absolute;\n background: inherit;\n top: 0;\n inset-inline-start: 0;\n bottom: 0;\n will-change: inset-inline-start, inset-inline-end;\n animation: p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\n animation-delay: 1.15s;\n}\n\n@-webkit-keyframes p-progressbar-indeterminate-anim {\n 0% {\n inset-inline-start: -35%;\n inset-inline-end: 100%;\n }\n 60% {\n inset-inline-start: 100%;\n inset-inline-end: -90%;\n }\n 100% {\n inset-inline-start: 100%;\n inset-inline-end: -90%;\n }\n}\n@keyframes p-progressbar-indeterminate-anim {\n 0% {\n inset-inline-start: -35%;\n inset-inline-end: 100%;\n }\n 60% {\n inset-inline-start: 100%;\n inset-inline-end: -90%;\n }\n 100% {\n inset-inline-start: 100%;\n inset-inline-end: -90%;\n }\n}\n@-webkit-keyframes p-progressbar-indeterminate-anim-short {\n 0% {\n inset-inline-start: -200%;\n inset-inline-end: 100%;\n }\n 60% {\n inset-inline-start: 107%;\n inset-inline-end: -8%;\n }\n 100% {\n inset-inline-start: 107%;\n inset-inline-end: -8%;\n }\n}\n@keyframes p-progressbar-indeterminate-anim-short {\n 0% {\n inset-inline-start: -200%;\n inset-inline-end: 100%;\n }\n 60% {\n inset-inline-start: 107%;\n inset-inline-end: -8%;\n }\n 100% {\n inset-inline-start: 107%;\n inset-inline-end: -8%;\n }\n}\n`;\nconst classes = {\n root: ({ instance }) => [\n 'p-progressbar p-component',\n {\n 'p-progressbar-determinate': instance.determinate,\n 'p-progressbar-indeterminate': instance.indeterminate\n }\n ],\n value: 'p-progressbar-value',\n label: 'p-progressbar-label'\n};\nclass ProgressBarStyle extends BaseStyle {\n name = 'progressbar';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵProgressBarStyle_BaseFactory; return function ProgressBarStyle_Factory(__ngFactoryType__) { return (ɵProgressBarStyle_BaseFactory || (ɵProgressBarStyle_BaseFactory = i0.ɵɵgetInheritedFactory(ProgressBarStyle)))(__ngFactoryType__ || ProgressBarStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ProgressBarStyle, factory: ProgressBarStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ProgressBarStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * ProgressBar is a process status indicator.\n *\n * [Live Demo](https://www.primeng.org/progressbar)\n *\n * @module progressbarstyle\n *\n */\nvar ProgressBarClasses;\n(function (ProgressBarClasses) {\n /**\n * Class name of the root element\n */\n ProgressBarClasses[\"root\"] = \"p-progressbar\";\n /**\n * Class name of the value element\n */\n ProgressBarClasses[\"value\"] = \"p-progressbar-value\";\n /**\n * Class name of the label element\n */\n ProgressBarClasses[\"label\"] = \"p-progressbar-label\";\n})(ProgressBarClasses || (ProgressBarClasses = {}));\n\nconst _c0 = [\"content\"];\nconst _c1 = (a0, a1) => ({ \"p-progressbar p-component\": true, \"p-progressbar-determinate\": a0, \"p-progressbar-indeterminate\": a1 });\nconst _c2 = a0 => ({ $implicit: a0 });\nfunction ProgressBar_div_1_div_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵstyleProp(\"display\", ctx_r0.value != null && ctx_r0.value !== 0 ? \"flex\" : \"none\");\n i0.ɵɵattribute(\"data-pc-section\", \"label\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate2(\"\", ctx_r0.value, \"\", ctx_r0.unit, \"\");\n} }\nfunction ProgressBar_div_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction ProgressBar_div_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"div\", 4);\n i0.ɵɵtemplate(2, ProgressBar_div_1_div_2_Template, 2, 5, \"div\", 5)(3, ProgressBar_div_1_ng_container_3_Template, 1, 0, \"ng-container\", 6);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r0.valueStyleClass);\n i0.ɵɵstyleProp(\"width\", ctx_r0.value + \"%\")(\"background\", ctx_r0.color);\n i0.ɵɵproperty(\"ngClass\", \"p-progressbar-value p-progressbar-value-animate\");\n i0.ɵɵattribute(\"data-pc-section\", \"value\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.showValue && !ctx_r0.contentTemplate && !ctx_r0._contentTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.contentTemplate || ctx_r0._contentTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(11, _c2, ctx_r0.value));\n} }\nfunction ProgressBar_div_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 7);\n i0.ɵɵelement(1, \"div\", 8);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r0.valueStyleClass);\n i0.ɵɵproperty(\"ngClass\", \"p-progressbar-indeterminate-container\");\n i0.ɵɵattribute(\"data-pc-section\", \"container\");\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"background\", ctx_r0.color);\n i0.ɵɵattribute(\"data-pc-section\", \"value\");\n} }\n/**\n * ProgressBar is a process status indicator.\n * @group Components\n */\nclass ProgressBar extends BaseComponent {\n /**\n * Current value of the progress.\n * @group Props\n */\n value;\n /**\n * Whether to display the progress bar value.\n * @group Props\n */\n showValue = true;\n /**\n * Style class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Style class of the value element.\n * @group Props\n */\n valueStyleClass;\n /**\n * Inline style of the element.\n * @group Props\n */\n style;\n /**\n * Unit sign appended to the value.\n * @group Props\n */\n unit = '%';\n /**\n * Defines the mode of the progress\n * @group Props\n */\n mode = 'determinate';\n /**\n * Color for the background of the progress.\n * @group Props\n */\n color;\n /**\n * Template of the content.\n * @group templates\n */\n contentTemplate;\n _componentStyle = inject(ProgressBarStyle);\n templates;\n _contentTemplate;\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this._contentTemplate = item.template;\n break;\n default:\n this._contentTemplate = item.template;\n }\n });\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵProgressBar_BaseFactory; return function ProgressBar_Factory(__ngFactoryType__) { return (ɵProgressBar_BaseFactory || (ɵProgressBar_BaseFactory = i0.ɵɵgetInheritedFactory(ProgressBar)))(__ngFactoryType__ || ProgressBar); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProgressBar, selectors: [[\"p-progressBar\"], [\"p-progressbar\"], [\"p-progress-bar\"]], contentQueries: function ProgressBar_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, inputs: { value: [2, \"value\", \"value\", numberAttribute], showValue: [2, \"showValue\", \"showValue\", booleanAttribute], styleClass: \"styleClass\", valueStyleClass: \"valueStyleClass\", style: \"style\", unit: \"unit\", mode: \"mode\", color: \"color\" }, standalone: true, features: [i0.ɵɵProvidersFeature([ProgressBarStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 3, vars: 14, consts: [[\"role\", \"progressbar\", 3, \"ngStyle\", \"ngClass\"], [\"style\", \"display:flex\", 3, \"ngClass\", \"class\", \"width\", \"background\", 4, \"ngIf\"], [3, \"ngClass\", \"class\", 4, \"ngIf\"], [2, \"display\", \"flex\", 3, \"ngClass\"], [1, \"p-progressbar-label\"], [3, \"display\", 4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"ngClass\"], [1, \"p-progressbar-value\", \"p-progressbar-value-animate\"]], template: function ProgressBar_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, ProgressBar_div_1_Template, 4, 13, \"div\", 1)(2, ProgressBar_div_2_Template, 2, 7, \"div\", 2);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx.style)(\"ngClass\", i0.ɵɵpureFunction2(11, _c1, ctx.mode === \"determinate\", ctx.mode === \"indeterminate\"));\n i0.ɵɵattribute(\"aria-valuemin\", 0)(\"aria-valuenow\", ctx.value)(\"aria-valuemax\", 100)(\"data-pc-name\", \"progressbar\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.mode === \"determinate\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.mode === \"indeterminate\");\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ProgressBar, [{\n type: Component,\n args: [{\n selector: 'p-progressBar, p-progressbar, p-progress-bar',\n standalone: true,\n imports: [CommonModule, SharedModule],\n template: `\n \n
\n
\n
{{ value }}{{ unit }}
\n \n
\n
\n
\n
\n
\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [ProgressBarStyle]\n }]\n }], null, { value: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], showValue: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], styleClass: [{\n type: Input\n }], valueStyleClass: [{\n type: Input\n }], style: [{\n type: Input\n }], unit: [{\n type: Input\n }], mode: [{\n type: Input\n }], color: [{\n type: Input\n }], contentTemplate: [{\n type: ContentChild,\n args: ['content', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(ProgressBar, { className: \"ProgressBar\" }); })();\nclass ProgressBarModule {\n static ɵfac = function ProgressBarModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ProgressBarModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ProgressBarModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [ProgressBar, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ProgressBarModule, [{\n type: NgModule,\n args: [{\n imports: [ProgressBar, SharedModule],\n exports: [ProgressBar, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(ProgressBarModule, { imports: [ProgressBar, SharedModule], exports: [ProgressBar, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ProgressBar, ProgressBarClasses, ProgressBarModule, ProgressBarStyle };\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { ParameterTypeEnum } from '@commons/enums/parameter-type.enum';\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\n\r\n@Component({\r\n selector: 'app-singal-status',\r\n templateUrl: './gps-status.component.html',\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n styles: [`\r\n ::ng-deep {\r\n .p-progressbar {\r\n height: 4px;\r\n }\r\n .p-progressbar-determinate .p-progressbar-value-animate {\r\n transition: none !important;\r\n }\r\n }\r\n `]\r\n})\r\nexport class SingalStatusComponent {\r\n\r\n @Input('data') set data(value: Vehicle) {\r\n setTimeout(() => {\r\n this.calculate(value);\r\n }, 0);\r\n }\r\n @Input() public parameterType: ParameterTypeEnum;\r\n @Input() public scaleMax: number;\r\n\r\n public value: number = 0;\r\n\r\n constructor() { }\r\n\r\n private calculate(data: Vehicle): void {\r\n const control = data.ControlIndicators?.find(p => p && p.Tp === this.parameterType);\r\n if (control) {\r\n this.value = this.calculatePercentge(this.scaleMax, control?.LV?.V);\r\n }\r\n }\r\n\r\n private calculatePercentge(total: number, currentValue: number): number {\r\n return (currentValue / total) * 100;\r\n }\r\n\r\n}\r\n","\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { ParameterTypeEnum } from '@commons/enums/parameter-type.enum';\r\n\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { VehicleControlIndicator } from '@commons/models/domain/VehicleControlIndicator';\r\n\r\n@Component({\r\n selector: 'app-fuel-status',\r\n templateUrl: './fuel-status.component.html',\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class FuelStatusComponent {\r\n\r\n @Input('data') set data(value: Vehicle) {\r\n this.calculate(value);\r\n }\r\n\r\n public fuelState?: VehicleControlIndicator | null;\r\n\r\n constructor() { }\r\n\r\n private calculate(data: Vehicle): void {\r\n const control = data.ControlIndicators?.find(item => item.Tp === ParameterTypeEnum.Fuel && item.LV);\r\n if (control) {\r\n this.fuelState = control;\r\n }\r\n }\r\n\r\n}\r\n","\r\n {{ (fuelState?.LV?.V | number: '1.1-1') }} {{ fuelState?.LV?.V ? 'L' : '' }}\r\n\r\n","\r\n \r\n \r\n {{value}}\r\n \r\n \r\n \r\n {{(value || 0) | number:'1.0-0'}} {{unit}}\r\n \r\n\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport {get} from 'lodash';\r\n\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\n\r\n@Component({\r\n selector: 'app-vehicle-text-value-control',\r\n templateUrl: './vehicle-text-value-control.component.html',\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class VehicleTextValueControlComponent {\r\n\r\n @Input('data') set data(value: Vehicle) {\r\n setTimeout(() => {\r\n this.calculate(value);\r\n }, 0);\r\n }\r\n @Input() public group: number;\r\n @Input() public paramPathToDisplay: string;\r\n @Input() public unit: string\r\n @Input() public isParamValue: boolean;\r\n @Input() public isCopyActive: boolean;\r\n\r\n public value: any;\r\n\r\n constructor() { }\r\n\r\n private calculate(data: Vehicle): void {\r\n if (this.isParamValue) {\r\n this.value = get(data, this.paramPathToDisplay, '-');\r\n return;\r\n }\r\n\r\n let control = (data.ControlIndicators || []).filter(o => o && o.Group === this.group);\r\n let value = (control && control.length > 0 && control[0].LV) ? control[0].LV : null;\r\n if (value) {\r\n this.value = get(value, this.paramPathToDisplay, '-');\r\n }\r\n }\r\n\r\n public copyValue(value?: string): void {\r\n value && navigator.clipboard.writeText(value);\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 \r\n \r\n \r\n\r\n 0\">\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n {{ count ? (\"+\" + count) : param.Nm.slice(0,2) }}\r\n \r\n
\r\n
\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { Consts } from '@commons/consts/consts';\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { VehicleControlIndicator } from '@commons/models/domain/VehicleControlIndicator';\r\nimport { filterBinaryParams } from '@src/app/utils/params-binary-vehicle';\r\n\r\n@Component({\r\n selector: 'app-controls-status',\r\n templateUrl: './controls-status.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./control-status.component.scss'],\r\n})\r\nexport class ControlsStatusComponent {\r\n\r\n @Input('data') set data(value: Vehicle) {\r\n this.getControls(value);\r\n }\r\n\r\n public controls: VehicleControlIndicator[] = [];\r\n public hiddenControlCount: number = 0;\r\n\r\n constructor() { }\r\n\r\n private getControls(data: Vehicle): void {\r\n const params = data ? data.ControlIndicators?.filter(param => param && Consts.binaryIndicators.indexOf(param.Tp) !== -1) : [];\r\n this.controls = params ? params.filter(item => filterBinaryParams(item)).sort((a, b) => (a.Nm >= b.Nm ? 1 : -1)) : [];\r\n this.hiddenControlCount = this.controls.length - 3;\r\n this.controls = this.controls.splice(0, 3);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { isVehicleBlocked } from '@src/app/utils/params-binary-vehicle';\r\n\r\n@Component({\r\n selector: 'app-lock-status',\r\n templateUrl: './lock-status.component.html',\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n styleUrls: ['./lock-status.component.scss'],\r\n})\r\nexport class LockStatusComponent {\r\n\r\n @Input('data') set data(value: Vehicle) {\r\n this.vehicle = value;\r\n this.setStatus(value);\r\n }\r\n\r\n public vehicle: Vehicle;\r\n public isBlocked: boolean;\r\n \r\n constructor() { }\r\n\r\n private setStatus(data: Vehicle): void {\r\n if (data?.blockerParametrId || data?.blockerParametrIdOut2) {\r\n this.isBlocked = isVehicleBlocked(data);\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({ name: 'hoursTimeFormat' })\r\nexport class HoursTimeFormatPipe implements PipeTransform {\r\n\r\n private formatZeros(num: number): string {\r\n return (num < 10 ? '0' : '') + num;\r\n }\r\n\r\n public transform(seconds: number): string {\r\n const minutes = Math.ceil(seconds / 60);\r\n\r\n let rest = minutes;\r\n\r\n const hours = Math.floor((rest) / 60);\r\n rest = rest - hours * 60;\r\n\r\n const mins = Math.floor((rest) / 1);\r\n\r\n const res = this.formatZeros(hours) + ':' + this.formatZeros(mins);\r\n\r\n return res;\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 {{ activeSlotData?.DD ? ((activeSlotData.DD / 1) | hoursTimeFormat) : '' }}\r\n \r\n \r\n {{ activeSlotData?.DW ? ((activeSlotData.DW / 1) | hoursTimeFormat) : '' }}\r\n \r\n \r\n {{ activeSlotData?.DR ? ((activeSlotData.DR / 1) | hoursTimeFormat) : '' }}\r\n \r\n \r\n {{ activeSlotData?.DRd ? ((activeSlotData.DRd / 1) | hoursTimeFormat) : '' }}\r\n \r\n \r\n\r\n \r\n Brak\r\n \r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\r\n\r\nimport { Driver } from '@commons/models/domain/Driver';\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { VehicleTachoSlot } from '@commons/models/domain/VehicleTacho';\r\nimport { MappingService } from '@commons/services/mapping/mapping.service';\r\nimport { getActiveTachoSlot } from '@src/app/utils/vehicle-fncs';\r\n\r\n@Component({\r\n selector: 'app-tacho-status-full-list',\r\n templateUrl: './tacho-status-full-list.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./tacho-status-full-list.component.scss']\r\n})\r\nexport class TachoStatusFullListComponent {\r\n \r\n @Input('data') set data(value: Vehicle) {\r\n this.vehicle = value;\r\n\r\n if (!value.TC) {\r\n this.isLoading = false;\r\n this.isNoDriver = true;\r\n }\r\n else if (value.Tacho) {\r\n this.setTachoData();\r\n }\r\n }\r\n\r\n public vehicle: Vehicle;\r\n public isLoading: boolean = true;\r\n public isNoDriver: boolean;\r\n public currentStateTacho?: number;\r\n public driver?: Driver;\r\n public activeSlotData!: VehicleTachoSlot;\r\n\r\n constructor(\r\n private changeDetRef: ChangeDetectorRef,\r\n ) { }\r\n\r\n private setTachoData(): void {\r\n if (this.vehicle.Tacho) {\r\n const slotData = getActiveTachoSlot(this.vehicle);\r\n if (slotData) {\r\n this.setActiveSlot(slotData);\r\n return;\r\n }\r\n this.isNoDriver = true;\r\n }\r\n this.isLoading = false;\r\n this.changeDetRef.markForCheck();\r\n }\r\n\r\n private setActiveSlot(slotData: VehicleTachoSlot): void {\r\n this.currentStateTacho = MappingService.convertTachoStatus(slotData.St);\r\n this.activeSlotData = {...(slotData || {})};\r\n this.isLoading = false;\r\n }\r\n\r\n}\r\n","/**!\n * Sortable 1.15.3\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar version = \"1.15.3\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !! /*@__PURE__*/navigator.userAgent.match(pattern);\n }\n}\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction matches( /**HTMLElement*/el, /**String*/selector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n return false;\n}\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\nfunction closest( /**HTMLElement*/el, /**String*/selector, /**HTMLElement*/ctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n return null;\n}\nvar R_SPACE = /\\s+/g;\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\nfunction css(el, prop, val) {\n var style = el && el.style;\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n } while (!selfOnly && (el = el.parentNode));\n }\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n return matrixFn && new matrixFn(appliedTransforms);\n}\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n return list;\n }\n return [];\n}\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode;\n\n // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect();\n\n // Set relative to edges of padding box of container\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n } while (container = container.parentNode);\n }\n }\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n\n /* jshint boss:true */\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n return false;\n}\n\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\nfunction getChild(el, childNum, options, includeDragEl) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n currentChild++;\n }\n i++;\n }\n return null;\n}\n\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n return last || null;\n}\n\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\nfunction index(el, selector) {\n var index = 0;\n if (!el || !el.parentNode) {\n return -1;\n }\n\n /* jshint boss:true */\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n return index;\n}\n\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n return [offsetLeft, offsetTop];\n}\n\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n return -1;\n}\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n } while (elem = elem.parentNode);\n return getWindowScrollingElement();\n}\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n return dst;\n}\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\nvar _throttleTimeout;\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\nfunction getChildContainingRectFromElement(container, options, ghostEl) {\n var rect = {};\n Array.from(container.children).forEach(function (child) {\n var _rect$left, _rect$top, _rect$right, _rect$bottom;\n if (!closest(child, options.draggable, container, false) || child.animated || child === ghostEl) return;\n var childRect = getRect(child);\n rect.left = Math.min((_rect$left = rect.left) !== null && _rect$left !== void 0 ? _rect$left : Infinity, childRect.left);\n rect.top = Math.min((_rect$top = rect.top) !== null && _rect$top !== void 0 ? _rect$top : Infinity, childRect.top);\n rect.right = Math.max((_rect$right = rect.right) !== null && _rect$right !== void 0 ? _rect$right : -Infinity, childRect.right);\n rect.bottom = Math.max((_rect$bottom = rect.bottom) !== null && _rect$bottom !== void 0 ? _rect$bottom : -Infinity, childRect.bottom);\n });\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect);\n\n // If animating: compensate for current animation\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n target.toRect = toRect;\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) &&\n // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n }\n\n // if fromRect != toRect: animate\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n if (!time) {\n time = _this.options.animation;\n }\n _this.animate(target, animatingRect, toRect, time);\n }\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n this.forRepaintDummy = repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\nfunction repaint(target) {\n return target.offsetWidth;\n}\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n plugins.forEach(function (p) {\n if (p.pluginName === plugin.pluginName) {\n throw \"Sortable: Cannot mount plugin \".concat(plugin.pluginName, \" more than once\");\n }\n });\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n this.eventCanceled = false;\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return;\n // Fire global events if it exists in this sortable\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n\n // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized;\n\n // Add default options from plugin\n _extends(defaults, initialized.defaults);\n });\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return;\n\n // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1);\n // Support for new CustomEvent feature\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar _excluded = [\"evt\"];\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, _excluded);\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread2({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\n ghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n\n _silent = false,\n savedInputChecked = [];\n\n/** @const */\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\n supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return;\n // false when <= IE11\n if (IE11OrLess) {\n return false;\n }\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n }(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n },\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n },\n /**\r\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\r\n * @param {Number} x X position\r\n * @param {Number} y Y position\r\n * @return {HTMLElement} Element of the first found nearest Sortable\r\n */\n _detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n var threshold = sortable[expando].options.emptyInsertThreshold;\n if (!threshold || lastChild(sortable)) return;\n var rect = getRect(sortable),\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n if (insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n },\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n var group = {};\n var originalGroup = options.group;\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n },\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n },\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n };\n\n// #1184 fix - Prevent click event on fallback if dragged but item not changed position\nif (documentExists && !ChromeForAndroid) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n if (nearest) {\n // Create imitation event\n var event = {};\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n nearest[expando]._onDragOver(event);\n }\n }\n};\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n\n/**\r\n * @class Sortable\r\n * @param {HTMLElement} el\r\n * @param {Object} [options]\r\n */\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n this.el = el; // root element\n this.options = options = _extends({}, options);\n\n // Export instance\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && !Safari,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults);\n\n // Set default options\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n _prepareGroup(options);\n\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n // Setup drag mode\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n }\n\n // Bind events\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n sortables.push(this.el);\n\n // Restore sorting\n options.store && options.store.get && this.sort(options.store.get(this) || []);\n\n // Add animation state manager\n _extends(this, AnimationStateManager());\n}\nSortable.prototype = /** @lends Sortable.prototype */{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart( /** Event|TouchEvent */evt) {\n if (!evt.cancelable) return;\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n _saveInputCheckedState(el);\n\n // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n if (dragEl) {\n return;\n }\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n }\n\n // cancel dnd if original target is content editable\n if (originalTarget.isContentEditable) {\n return;\n }\n\n // Safari ignores further event handling after mousedown\n if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') {\n return;\n }\n target = closest(target, options.draggable, el, false);\n if (target && target.animated) {\n return;\n }\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n }\n\n // Get the index of the dragged element within its parent\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable);\n\n // Check filter\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n }\n\n // Prepare `dragstart`\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart( /** Event */evt, /** Touch */touch, /** HTMLElement */target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n if (Sortable.eventCanceled) {\n _this._onDrop();\n return;\n }\n // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n _this._disableDelayedDragEvents();\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n }\n\n // Bind the events: dragstart/dragend\n _this._triggerDragStart(evt, touch);\n\n // Drag start event\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n });\n\n // Chosen item\n toggleClass(dragEl, options.chosenClass, true);\n };\n\n // Disable \"draggable\"\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop);\n\n // Make dragEl draggable (must be before delay for FireFox)\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n pluginEvent('delayStart', this, {\n evt: evt\n });\n\n // Delay is impossible for native DnD in Edge or IE\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler( /** TouchEvent|PointerEvent **/e) {\n var touch = e.touches ? e.touches[0] : e;\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart( /** Event */evt, /** Touch */touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n awaitingDragStarted = false;\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n var options = this.options;\n\n // Apply effect\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost();\n\n // Drag start event\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n _hideGhostForTarget();\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n target = parent; // store last element\n }\n /* jshint boss:true */ while (parent = getParentOrHost(parent));\n }\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove( /**TouchEvent*/evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1);\n\n // only set the status to dragging, when we are actually dragging\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n this._onDragStart(evt, true);\n }\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options;\n\n // Position absolutely\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl);\n\n // Set transform-origin\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart( /**Event*/evt, /**boolean*/fallback) {\n var _this = this;\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n pluginEvent('setupClone', this);\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.removeAttribute(\"id\");\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n this._hideClone();\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n }\n\n // #1143: IFrame support workaround\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n _this._hideClone();\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true);\n\n // Set proper drop events\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n on(document, 'drop', _this);\n\n // #1276 fix:\n css(dragEl, 'transform', 'translateZ(0)');\n }\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver( /**Event*/evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n if (_silent) return;\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread2({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n }\n\n // Capture animation state\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n _this.captureAnimationState();\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n }\n\n // Return invocation when dragEl is inserted (or completed)\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n }\n\n // Animation\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n }\n\n // Null lastTarget if it is not inside a previously swapped element\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n }\n\n // no bubbling and not fallback\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n\n // Do not detect for empty insert if already inserted\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n }\n\n // Call when dragEl has been inserted\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n ignoreNextClick = false;\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n if (revert) {\n parentEl = rootEl; // actualization\n capture();\n this._hideClone();\n dragOverEvent('revert');\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n return completed(true);\n }\n var elLastChild = lastChild(el, options.draggable);\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // Insert to end of list\n\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n }\n\n // if there is a last element, it is the target\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n if (target) {\n targetRect = getRect(target);\n }\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n if (elLastChild && elLastChild.nextSibling) {\n // the last draggable element is not the last node\n el.insertBefore(dragEl, elLastChild.nextSibling);\n } else {\n el.appendChild(dragEl);\n }\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\n // Insert to start of list\n var firstChild = getChild(el, 0, options, true);\n if (firstChild === dragEl) {\n return completed(false);\n }\n target = firstChild;\n targetRect = getRect(target);\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\n capture();\n el.insertBefore(dragEl, firstChild);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n }\n // If dragEl is already beside target: Do not insert\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n }\n\n // Undo chrome's scroll adjustment (has no effect on other browsers)\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n parentEl = dragEl.parentNode; // actualization\n\n // must be done before animation\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n changed();\n return completed(true);\n }\n }\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop( /**Event*/evt) {\n var el = this.el,\n options = this.options;\n\n // Get the index of the dragged element within its parent\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode;\n\n // Get again after plugin event\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n if (Sortable.eventCanceled) {\n this._nulling();\n return;\n }\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n _cancelNextTick(this.cloneId);\n _cancelNextTick(this._dragStartId);\n\n // Unbind events\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n this._offMoveEvents();\n this._offUpEvents();\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n css(dragEl, 'transform', '');\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n _disableDraggable(dragEl);\n dragEl.style['will-change'] = '';\n\n // Remove classes\n // ghostClass is added in dragStarted\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n toggleClass(dragEl, this.options.chosenClass, false);\n\n // Drag stop event\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n // Remove event\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n });\n\n // drag from one list and drop into another\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n });\n\n // Save sorting\n this.save();\n }\n }\n }\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent( /**Event*/evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n break;\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n _globalDragOver(evt);\n }\n break;\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n /**\r\n * Serializes the item into an array of string.\r\n * @returns {String[]}\r\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n for (; i < n; i++) {\n el = children[i];\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n return order;\n },\n /**\r\n * Sorts the elements according to the array.\r\n * @param {String[]} order order of the items\r\n */\n sort: function sort(order, useAnimation) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n useAnimation && this.captureAnimationState();\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n useAnimation && this.animateAll();\n },\n /**\r\n * Save the current sorting\r\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n /**\r\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\r\n * @param {HTMLElement} el\r\n * @param {String} [selector] default: `options.draggable`\r\n * @returns {HTMLElement|null}\r\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n /**\r\n * Set/get option\r\n * @param {string} name\r\n * @param {*} [value]\r\n * @returns {*}\r\n */\n option: function option(name, value) {\n var options = this.options;\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n /**\r\n * Destroy\r\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n }\n // Remove draggable attributes\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n this._onDrop();\n this._disableDelayedDragEvents();\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n return;\n }\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return;\n\n // show clone at dragEl or original position\n if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\nfunction _globalDragOver( /**Event*/evt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n evt.cancelable && evt.preventDefault();\n}\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal;\n // Support for new CustomEvent feature\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n return retVal;\n}\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\nfunction _unsilent() {\n _silent = false;\n}\nfunction _ghostIsFirst(evt, vertical, sortable) {\n var firstElRect = getRect(getChild(sortable.el, 0, sortable.options, true));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX < childContainingRect.left - spacer || evt.clientY < firstElRect.top && evt.clientX < firstElRect.right : evt.clientY < childContainingRect.top - spacer || evt.clientY < firstElRect.bottom && evt.clientX < firstElRect.left;\n}\nfunction _ghostIsLast(evt, vertical, sortable) {\n var lastElRect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX > childContainingRect.right + spacer || evt.clientY > lastElRect.bottom && evt.clientX > lastElRect.left : evt.clientY > childContainingRect.bottom + spacer || evt.clientX > lastElRect.right && evt.clientY > lastElRect.top;\n}\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n invert = invert || invertSwap;\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n return 0;\n}\n\n/**\r\n * Gets the direction dragEl must be swapped relative to target in order to make it\r\n * seem that dragEl has been \"inserted\" into that element's position\r\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\r\n * @return {Number} Direction dragEl must be swapped\r\n */\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n\n/**\r\n * Generate id\r\n * @param {HTMLElement} el\r\n * @returns {String}\r\n * @private\r\n */\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n while (i--) {\n sum += str.charCodeAt(i);\n }\n return sum.toString(36);\n}\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n}\n\n// Fixed #973:\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n}\n\n// Export utils\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild,\n expando: expando\n};\n\n/**\r\n * Get the Sortable instance of an element\r\n * @param {HTMLElement} element The element\r\n * @return {Sortable|undefined} The instance of Sortable\r\n */\nSortable.get = function (element) {\n return element[expando];\n};\n\n/**\r\n * Mount a plugin to Sortable\r\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\r\n */\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n\n/**\r\n * Create sortable instance\r\n * @param {HTMLElement} el\r\n * @param {Object} [options]\r\n */\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n};\n\n// Export\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n forceAutoScrollFallback: false,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n };\n\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt;\n\n // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback);\n\n // Listener for pointer element change\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval();\n // Detect for pointer elem change, emulating native DnD behaviour\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn;\n\n // New scroll root, set scrollEl\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n var layersOut = 0;\n var currentParent = scrollEl;\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n }\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\nfunction Revert() {}\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n this.sortable.animateAll();\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\nfunction Remove() {}\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\n multiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\n folding = false,\n // Folding any other time\n dragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n if (!sortable.options.avoidImplicitDeselect) {\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n }\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n avoidImplicitDeselect: false,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n dataTransfer.setData('Text', data);\n }\n };\n }\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n sortable._hideClone();\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n });\n\n // Sort multi-drag elements\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n\n sortable.captureAnimationState();\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n }\n\n // Remove all auxiliary multidrag items from el, if sorting enabled\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n initialFolding = false;\n // If leaving sort:false root, or already folding - Fold to new location\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute);\n\n // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n }\n\n // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n activeSortable._showClone(sortable);\n\n // Unfold animation for clones if showing from hidden\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children;\n\n // Multi-drag selection\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvent: evt\n });\n\n // Modifier activated, select from last to dragEl\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvent: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvent: evt\n });\n }\n }\n\n // Multi-drag drop\n if (dragStarted && this.isMultiDrag) {\n folding = false;\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect;\n\n // Prepare unfold animation\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n }\n\n // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n multiDragIndex++;\n });\n\n // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n if (update) {\n dispatchSortableEvent('update');\n dispatchSortableEvent('sort');\n }\n }\n }\n\n // Must be done after capturing individual rects (scroll bar)\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n multiDragSortable = toSortable;\n }\n\n // Remove clones if necessary\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return;\n\n // Only deselect if selection is in this sortable\n if (multiDragSortable !== this.sortable) return;\n\n // Only deselect if target is not item in this sortable\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return;\n\n // Only deselect if left click\n if (evt && evt.button !== 0) return;\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvent: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n multiDragSortable = sortable;\n }\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n });\n\n // multiDragElements will already be sorted if folding\n var newIndex;\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n return key;\n }\n }\n });\n}\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","import {sortBy, indexOf} from 'lodash';\r\n\r\nexport function sortByOrderId(orderArray: number[], itemsArray: any[]) {\r\n return sortBy(itemsArray, item => {\r\n const index = indexOf(orderArray, item.id);\r\n if (index === -1) {\r\n return orderArray.length;\r\n }\r\n return index;\r\n });\r\n}\r\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, inject, numberAttribute, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SharedModule } from 'primeng/api';\nimport * as i2 from 'primeng/autofocus';\nimport { AutoFocusModule } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-toggleswitch {\n display: inline-block;\n width: ${dt('toggleswitch.width')};\n height: ${dt('toggleswitch.height')};\n\n}\n\n.p-toggleswitch-input {\n cursor: pointer;\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n opacity: 0;\n z-index: 1;\n outline: 0 none;\n border-radius: ${dt('toggleswitch.border.radius')};\n}\n\n.p-toggleswitch-slider {\n display: inline-block;\n cursor: pointer;\n width: 100%;\n height: 100%;\n border-width: ${dt('toggleswitch.border.width')};\n border-style: solid;\n border-color: ${dt('toggleswitch.border.color')};\n background: ${dt('toggleswitch.background')};\n transition: background ${dt('toggleswitch.transition.duration')}, color ${dt('toggleswitch.transition.duration')}, border-color ${dt('toggleswitch.transition.duration')}, outline-color ${dt('toggleswitch.transition.duration')}, box-shadow ${dt('toggleswitch.transition.duration')};\n border-radius: ${dt('toggleswitch.border.radius')};\n outline-color: transparent;\n box-shadow: ${dt('toggleswitch.shadow')};\n}\n\n.p-toggleswitch-slider:before {\n position: absolute;\n content: \"\";\n top: 50%;\n background: ${dt('toggleswitch.handle.background')};\n width: ${dt('toggleswitch.handle.size')};\n height: ${dt('toggleswitch.handle.size')};\n left: ${dt('toggleswitch.gap')};\n margin-top: calc(-1 * calc(${dt('toggleswitch.handle.size')} / 2));\n border-radius: ${dt('toggleswitch.handle.border.radius')};\n transition: background ${dt('toggleswitch.transition.duration')}, left ${dt('toggleswitch.slide.duration')};\n}\n\n.p-toggleswitch.p-toggleswitch-checked .p-toggleswitch-slider {\n background: ${dt('toggleswitch.checked.background')};\n border-color: ${dt('toggleswitch.checked.border.color')};\n}\n\n.p-toggleswitch.p-toggleswitch-checked .p-toggleswitch-slider:before {\n background: ${dt('toggleswitch.handle.checked.background')};\n left: calc(${dt('toggleswitch.width')} - calc(${dt('toggleswitch.handle.size')} + ${dt('toggleswitch.gap')}));\n}\n\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover) .p-toggleswitch-slider {\n background: ${dt('toggleswitch.hover.background')};\n border-color: ${dt('toggleswitch.hover.border.color')};\n}\n\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover) .p-toggleswitch-slider:before {\n background: ${dt('toggleswitch.handle.hover.background')};\n}\n\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover).p-toggleswitch-checked .p-toggleswitch-slider {\n background: ${dt('toggleswitch.checked.hover.background')};\n border-color: ${dt('toggleswitch.checked.hover.border.color')};\n}\n\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover).p-toggleswitch-checked .p-toggleswitch-slider:before {\n background: ${dt('toggleswitch.handle.checked.hover.background')};\n}\n\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:focus-visible) .p-toggleswitch-slider {\n box-shadow: ${dt('toggleswitch.focus.ring.shadow')};\n outline: ${dt('toggleswitch.focus.ring.width')} ${dt('toggleswitch.focus.ring.style')} ${dt('toggleswitch.focus.ring.color')};\n outline-offset: ${dt('toggleswitch.focus.ring.offset')};\n}\n\n.p-toggleswitch.p-invalid > .p-toggleswitch-slider {\n border-color: ${dt('toggleswitch.invalid.border.color')};\n}\n\n.p-toggleswitch.p-disabled {\n opacity: 1;\n}\n\n.p-toggleswitch.p-disabled .p-toggleswitch-slider {\n background: ${dt('toggleswitch.disabled.background')};\n}\n\n.p-toggleswitch.p-disabled .p-toggleswitch-slider:before {\n background: ${dt('toggleswitch.handle.disabled.background')};\n}\n`;\nconst inlineStyles = {\n root: { position: 'relative' }\n};\nconst classes = {\n root: ({ instance }) => ({\n 'p-toggleswitch p-component': true,\n 'p-toggleswitch-checked': instance.checked(),\n 'p-disabled': instance.disabled,\n 'p-invalid': instance.invalid\n }),\n input: 'p-toggleswitch-input',\n slider: 'p-toggleswitch-slider'\n};\nclass InputSwitchStyle extends BaseStyle {\n name = 'toggleswitch';\n theme = theme;\n classes = classes;\n inlineStyles = inlineStyles;\n static ɵfac = /*@__PURE__*/ (() => { let ɵInputSwitchStyle_BaseFactory; return function InputSwitchStyle_Factory(__ngFactoryType__) { return (ɵInputSwitchStyle_BaseFactory || (ɵInputSwitchStyle_BaseFactory = i0.ɵɵgetInheritedFactory(InputSwitchStyle)))(__ngFactoryType__ || InputSwitchStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: InputSwitchStyle, factory: InputSwitchStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputSwitchStyle, [{\n type: Injectable\n }], null, null); })();\n\nconst _c0 = [\"input\"];\nconst INPUTSWITCH_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputSwitch),\n multi: true\n};\n/**\n * InputSwitch is used to select a boolean value.\n * @group Components\n */\nclass InputSwitch extends BaseComponent {\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex;\n /**\n * Identifier of the input element.\n * @group Props\n */\n inputId;\n /**\n * Name of the input element.\n * @group Props\n */\n name;\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n disabled;\n /**\n * When present, it specifies that the component cannot be edited.\n * @group Props\n */\n readonly;\n /**\n * Value in checked state.\n * @group Props\n */\n trueValue = true;\n /**\n * Value in unchecked state.\n * @group Props\n */\n falseValue = false;\n /**\n * Used to define a string that autocomplete attribute the current element.\n * @group Props\n */\n ariaLabel;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Callback to invoke when the on value change.\n * @param {InputSwitchChangeEvent} event - Custom change event.\n * @group Emits\n */\n onChange = new EventEmitter();\n input;\n modelValue = false;\n focused = false;\n onModelChange = () => { };\n onModelTouched = () => { };\n _componentStyle = inject(InputSwitchStyle);\n onClick(event) {\n if (!this.disabled && !this.readonly) {\n this.modelValue = this.checked() ? this.falseValue : this.trueValue;\n this.onModelChange(this.modelValue);\n this.onChange.emit({\n originalEvent: event,\n checked: this.modelValue\n });\n this.input.nativeElement.focus();\n }\n }\n onFocus() {\n this.focused = true;\n }\n onBlur() {\n this.focused = false;\n this.onModelTouched();\n }\n writeValue(value) {\n this.modelValue = value;\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n checked() {\n return this.modelValue === this.trueValue;\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵInputSwitch_BaseFactory; return function InputSwitch_Factory(__ngFactoryType__) { return (ɵInputSwitch_BaseFactory || (ɵInputSwitch_BaseFactory = i0.ɵɵgetInheritedFactory(InputSwitch)))(__ngFactoryType__ || InputSwitch); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: InputSwitch, selectors: [[\"p-inputSwitch\"], [\"p-inputswitch\"]], viewQuery: function InputSwitch_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);\n } }, inputs: { style: \"style\", styleClass: \"styleClass\", tabindex: [2, \"tabindex\", \"tabindex\", numberAttribute], inputId: \"inputId\", name: \"name\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], readonly: [2, \"readonly\", \"readonly\", booleanAttribute], trueValue: \"trueValue\", falseValue: \"falseValue\", ariaLabel: \"ariaLabel\", ariaLabelledBy: \"ariaLabelledBy\", autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute] }, outputs: { onChange: \"onChange\" }, standalone: true, features: [i0.ɵɵProvidersFeature([INPUTSWITCH_VALUE_ACCESSOR, InputSwitchStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 5, vars: 22, consts: [[\"input\", \"\"], [3, \"click\", \"ngClass\", \"ngStyle\"], [1, \"p-hidden-accessible\"], [\"type\", \"checkbox\", \"role\", \"switch\", 3, \"focus\", \"blur\", \"ngClass\", \"checked\", \"disabled\", \"pAutoFocus\"], [3, \"ngClass\"]], template: function InputSwitch_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵlistener(\"click\", function InputSwitch_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onClick($event)); });\n i0.ɵɵelementStart(1, \"div\", 2)(2, \"input\", 3, 0);\n i0.ɵɵlistener(\"focus\", function InputSwitch_Template_input_focus_2_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onFocus()); })(\"blur\", function InputSwitch_Template_input_blur_2_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onBlur()); });\n i0.ɵɵelementEnd()();\n i0.ɵɵelement(4, \"span\", 4);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", ctx.cx(\"root\"))(\"ngStyle\", ctx.sx(\"root\"))(\"ngStyle\", ctx.style);\n i0.ɵɵattribute(\"data-pc-name\", \"inputswitch\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"hiddenInputWrapper\")(\"data-p-hidden-accessible\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx.cx(\"input\"))(\"checked\", ctx.checked())(\"disabled\", ctx.disabled)(\"pAutoFocus\", ctx.autofocus);\n i0.ɵɵattribute(\"id\", ctx.inputId)(\"aria-checked\", ctx.checked())(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-label\", ctx.ariaLabel)(\"name\", ctx.name)(\"tabindex\", ctx.tabindex)(\"data-pc-section\", \"hiddenInput\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngClass\", ctx.cx(\"slider\"));\n i0.ɵɵattribute(\"data-pc-section\", \"slider\");\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgStyle, AutoFocusModule, i2.AutoFocus, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputSwitch, [{\n type: Component,\n args: [{\n selector: 'p-inputSwitch, p-inputswitch',\n standalone: true,\n imports: [CommonModule, AutoFocusModule, SharedModule],\n template: `\n
\n
\n \n
\n \n
\n `,\n providers: [INPUTSWITCH_VALUE_ACCESSOR, InputSwitchStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], null, { style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], tabindex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], inputId: [{\n type: Input\n }], name: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], readonly: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], trueValue: [{\n type: Input\n }], falseValue: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onChange: [{\n type: Output\n }], input: [{\n type: ViewChild,\n args: ['input']\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(InputSwitch, { className: \"InputSwitch\" }); })();\nclass InputSwitchModule {\n static ɵfac = function InputSwitchModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InputSwitchModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: InputSwitchModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [InputSwitch, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputSwitchModule, [{\n type: NgModule,\n args: [{\n imports: [InputSwitch, SharedModule],\n exports: [InputSwitch, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(InputSwitchModule, { imports: [InputSwitch, SharedModule], exports: [InputSwitch, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { INPUTSWITCH_VALUE_ACCESSOR, InputSwitch, InputSwitchModule, InputSwitchStyle };\n","
\r\n \r\n \r\n
\r\n \r\n {{'listConfig'|translate}}\r\n \r\n \r\n
\r\n \r\n {{'instructionsConfigList'|translate}}\r\n \r\n\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n {{item.title}}\r\n \r\n\r\n
\r\n \r\n \r\n {{item.description}}\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 \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n BZ\r\n
\r\n
\r\n KL\r\n
\r\n
\r\n KP\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","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\r\n\r\nimport Sortable from 'sortablejs';\r\n\r\nimport { VehicleFullColumnId } from '@src/app/enum/vehicle-full.enum';\r\nimport { IVehicleFullColumnSort } from '@src/app/interfaces/vehicle.interface';\r\nimport { sortByOrderId } from '@src/app/utils/common-fncs';\r\nimport { LOCAL_STORAGE_VAR } from '@src/app/utils/localstorage';\r\nimport { getConfigSavedListSortColumns } from '@src/app/utils/vehicle-list-fncs';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-list-full-vehicle-column-config',\r\n templateUrl: './list-full-vehicle-column-config.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./list-full-vehicle-column-config.component.scss'],\r\n})\r\nexport class ListFullVehicleColumnConfigComponent implements OnInit, AfterViewInit {\r\n @ViewChild('list') private listRef: ElementRef;\r\n\r\n @Output() public onSave$: EventEmitter = new EventEmitter();\r\n @Output() public onHide$: EventEmitter = new EventEmitter();\r\n\r\n public readonly COLUMN_ID = VehicleFullColumnId;\r\n\r\n public readonly DEFAULT_COLUMNS_SORT = [\r\n { title: this.translate.instant('labels.name'), isVisible: true, id: VehicleFullColumnId.name, description: 'Opel Vivaro' },\r\n { title: this.translate.instant('labels.status'), isVisible: true, id: VehicleFullColumnId.status },\r\n { title: this.translate.instant('labels.time'), isVisible: true, id: VehicleFullColumnId.time, description: '25 min' },\r\n { title: this.translate.instant('labels.speed'), isVisible: true, id: VehicleFullColumnId.speed, description: '89 km/h' },\r\n { title: this.translate.instant('labels.address'), isVisible: true, id: VehicleFullColumnId.adress, description: 'PL, Kutno, Krótka 2' },\r\n { title: this.translate.instant('labels.driver'), isVisible: true, id: VehicleFullColumnId.driver, description: 'Adam Nowak' },\r\n { title: 'E-TOLL', isVisible: true, id: VehicleFullColumnId.etoll },\r\n { title: 'SENT', isVisible: true, id: VehicleFullColumnId.sent },\r\n { title: this.translate.instant('labels.gps'), isVisible: true, id: VehicleFullColumnId.gps },\r\n { title: this.translate.instant('labels.gsm'), isVisible: true, id: VehicleFullColumnId.gsm },\r\n { title: this.translate.instant('labels.fuel'), isVisible: true, id: VehicleFullColumnId.fuel, description: '45 L'},\r\n { title: this.translate.instant('vehicle-indicator.rpm'), isVisible: true, id: VehicleFullColumnId.rpm, description: '2100 rpm'},\r\n { title: this.translate.instant('sensors'), isVisible: true, id: VehicleFullColumnId.sensor },\r\n { title: this.translate.instant('labels.tacho'), isVisible: true, id: VehicleFullColumnId.tacho, description: 'Tachograf'},\r\n { title: this.translate.instant('deviceId'), isVisible: true, id: VehicleFullColumnId.numberId, description: '111100000' },\r\n { title: this.translate.instant('create-account.id'), isVisible: true, id: VehicleFullColumnId.id, description: '222200000' },\r\n { title: this.translate.instant('blocked'), isVisible: true, id: VehicleFullColumnId.lock },\r\n { title: this.translate.instant('networkType'), isVisible: true, id: VehicleFullColumnId.networkType, description: '2G/5G' },\r\n ];\r\n\r\n public columnsSort: any[] = [];\r\n public sortable: Sortable;\r\n\r\n constructor(private translate: TranslateService) {\r\n this.initList();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterViewInit(): void {\r\n this.draggableInit();\r\n }\r\n\r\n public restoreDefaultConfig(): void {\r\n const defaultConfig: IVehicleFullColumnSort[] = [...this.DEFAULT_COLUMNS_SORT].map(item => ({ id: item.id, isVisible: true }));\r\n this.save(defaultConfig);\r\n }\r\n\r\n public save(data: IVehicleFullColumnSort[] = this.getSortedColumns()): void {\r\n localStorage.setItem(LOCAL_STORAGE_VAR.VEHICLE_FULL_LIST_SORT_COLUMNS_CONFIG, JSON.stringify(data));\r\n this.onSave$.emit(data);\r\n }\r\n\r\n private getSortedColumns(): IVehicleFullColumnSort[] {\r\n const sortedIds = this.sortable.toArray();\r\n const sortedColumns = sortedIds.map((item: string) => this.columnsSort.find(el => el.id == item as any));\r\n return sortedColumns.map((item) => ({ id: item!.id, isVisible: item!.isVisible }));\r\n }\r\n\r\n private initList(): void {\r\n const savedConfig = getConfigSavedListSortColumns();\r\n const defaultConfig = [...this.DEFAULT_COLUMNS_SORT].map(el => {\r\n const columnInSavedConfig = savedConfig.find(item => item.id === el.id);\r\n return {\r\n ...el,\r\n isVisible: columnInSavedConfig ? columnInSavedConfig.isVisible : true,\r\n }\r\n });\r\n this.columnsSort = sortByOrderId(savedConfig.map(item => item.id), defaultConfig);\r\n }\r\n\r\n private draggableInit(): void {\r\n this.sortable = Sortable.create(this.listRef.nativeElement, {\r\n handle: '.column',\r\n animation: 150,\r\n filter: '.no-drag',\r\n onMove: function (evt) {\r\n const targetElement = evt.related;\r\n const draggedElement = evt.dragged;\r\n if (targetElement.classList.contains('no-drag') || draggedElement.classList.contains('no-drag')) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n });\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { IVehicleFullColumnSort } from '@src/app/interfaces/vehicle.interface';\r\nimport { sortByOrderId } from '@src/app/utils/common-fncs';\r\n\r\n@Pipe({\r\n name: 'sortVehicleFullListColumns'\r\n})\r\nexport class SortVehicleFullListColumnsPipe implements PipeTransform {\r\n\r\n transform(config: IVehicleFullColumnSort[], cols: any[]): any[] {\r\n if (!config?.length) {\r\n return cols;\r\n }\r\n const filterHiddenCols = cols.filter(col => {\r\n const configColumn = config.find(el => el.id === col.id);\r\n return configColumn ? configColumn.isVisible : true;\r\n });\r\n const sortedColumnsId = config.map(item => item.id);\r\n return sortByOrderId(sortedColumnsId, filterHiddenCols);\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 \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\r\n
\r\n \r\n \r\n \r\n \r\n {{ col.header }}\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 \r\n \r\n\r\n \r\n \r\n {{ rowData.Nm }}\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 {{ rowData.LastDriver ? (rowData.LastDriver | fullName) : '-' }}\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 \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 \r\n \r\n \r\n\r\n \r\n \r\n {{ rowData.DN }}\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 \r\n \r\n \r\n\r\n
\r\n \r\n\r\n \r\n\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\n\r\nimport { debounceTime, distinctUntilChanged, filter, fromEvent, map, of, pairwise, Subject, Subscription, switchMap, takeUntil, tap } from 'rxjs';\r\n\r\nimport { ParameterTypeEnum } from '@commons/enums/parameter-type.enum';\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { VehicleService } from '@commons/services/vehicle/vehicle.service';\r\nimport { PermissionService } from '@shared/services/permission.service';\r\nimport { VehicleListFilterRequest } from '@commons/models/remote.request/VehicleListFilterRequest';\r\nimport { IFilterVehicle, IFilterVehicleOption, ISubmitFilters } from '@src/app/interfaces/filters-vehicle.interface';\r\nimport { OptionItem } from '@commons/models/other/option-item.model';\r\nimport { TranslateHelperService } from '@shared/services/translate-helper.service';\r\nimport { Consts } from '@commons/consts/consts';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FilterLockType, FilterVehicleType } from '@src/app/enum/filters-vehicle.enum';\r\nimport { TagsListFilterRequest } from '@commons/models/remote.request/TagsListFilterRequest';\r\nimport { Tag } from '@commons/models/domain/Tag';\r\nimport { WebAccessService } from '@commons/services/web.access/web-access.service';\r\nimport { get, isNumber } from 'lodash';\r\nimport { findVehicleSpeedParamValue, isVehicleBlocked } from '@src/app/utils/params-binary-vehicle';\r\nimport { DriverFullNamePipe } from '@commons/pipes/driver-full-name.pipe';\r\nimport { LOCAL_STORAGE_VAR } from '@src/app/utils/localstorage';\r\nimport { MapService } from '@commons/services/map/map/map.service';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { calculateVehicleTimeInCurrentState, getVehicleCoords } from '@src/app/utils/vehicle-fncs';\r\nimport { NewNavigationService } from '@shared/services/new-navigation.service';\r\nimport { VehicleFullColumnId } from '@src/app/enum/vehicle-full.enum';\r\nimport { IVehicleFullColumnSort } from '@src/app/interfaces/vehicle.interface';\r\nimport { getConfigSavedListSortColumns } from '@src/app/utils/vehicle-list-fncs';\r\n\r\nconst ANIMATION_TOGGLE_LIST_TIME = 150;\r\nconst TIME_OUT_FOR_LOADING_TRANSLATES = 1000;\r\n\r\n@Component({\r\n selector: 'app-list-vehicle-bottom',\r\n templateUrl: './list-vehicle-bottom.component.html',\r\n styleUrls: ['./list-vehicle-bottom.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [DriverFullNamePipe],\r\n})\r\nexport class ListVehicleBottomComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @ViewChild('resize', { static: true }) resizeElement!: ElementRef;\r\n @ViewChild('listWrapper', { static: true }) listWrapper!: ElementRef;\r\n @ViewChild('listVehicleBottom', { static: true }) containerRef!: ElementRef;\r\n\r\n private mouseMoveSubscription!: Subscription;\r\n private componentSubsc: Subscription = new Subscription();\r\n private onChangeVehicleFollowSubsc: Subscription;\r\n private initialY: number = 0;\r\n private onChangeingPanelHeight: boolean;\r\n\r\n public sortField: string = '';\r\n public sortOrder: number = 1;\r\n public isVisibleList: boolean;\r\n public isVisibleConfigColumnPanel: boolean;\r\n\r\n\r\n public form: FormGroup;\r\n public cars: any[] = [];\r\n public cols: any[] = [];\r\n public scrollHeight: string = this.getVehicleListHeightLocalStorage();\r\n public hasBlockerReadPermissionUser: boolean;\r\n\r\n public vehicles: Vehicle[] = [];\r\n\r\n public onChangePanelHeight$: Subject = new Subject();\r\n public isVisibleLoader: boolean;\r\n public readonly PARAMETER_TYPE = ParameterTypeEnum;\r\n public readonly filteredStatuses = [\r\n { filterType: 0, statuses: [] },\r\n { filterType: 1, statuses: [3, 4, 5] },\r\n { filterType: 2, statuses: [1] },\r\n { filterType: 4, statuses: [2] },\r\n { filterType: 6, statuses: [6] }\r\n ];\r\n public readonly columnsWidth: any = {\r\n controls: 'min-width: 170px; max-width: 170px;',\r\n vehicleName: 'min-width: 200px; max-width: 200px;',\r\n deviceID: 'min-width: 160px; max-width: 160px;',\r\n sentGeoID: 'min-width: 160px; max-width: 160px;',\r\n address: 'min-width: 220px; max-width: 220px;',\r\n driver: 'min-width: 120px; max-width: 120px;',\r\n speed: 'min-width: 100px; max-width: 100px;',\r\n lock: 'min-width: 120px; max-width: 120px;',\r\n time: 'min-width: 80px; max-width: 80px;',\r\n rpm: 'min-width: 90px; max-width: 90px;',\r\n etoll: 'min-width: 90px; max-width: 90px;',\r\n sent: 'min-width: 90px; max-width: 90px;',\r\n tacho: 'min-width: 150px; max-width: 150px; text-align: center;',\r\n networkType: 'min-width: 85px; max-width: 85px;',\r\n };\r\n public sortableColumns: any = {\r\n vehicleName: 'vehicleName',\r\n St: 'St',\r\n speed: 'speed',\r\n driver: 'driver',\r\n etoll: 'etoll',\r\n gps: 'gps',\r\n gsm: 'gsm',\r\n fuel: 'fuel',\r\n rpm: 'rpm',\r\n deviceID: 'deviceID',\r\n sentGeoID: 'sentGeoID',\r\n lock: 'lock',\r\n networkType: 'networkType',\r\n time: 'time',\r\n sent: 'sent',\r\n };\r\n\r\n // filters\r\n public filtersStatusConfig: IFilterVehicle;\r\n public vehicleStatuses: OptionItem[] = [];\r\n public filtersStatusCurrentFilters: ISubmitFilters;\r\n public isVisibleLockFilter: boolean;\r\n\r\n public filtersLockConfig: IFilterVehicle;\r\n public filtersGroupConfig: IFilterVehicle;\r\n public filtersGroupCurrentFilters: ISubmitFilters;\r\n public filtersLockCurrentFilters: ISubmitFilters;\r\n\r\n // sort columns\r\n public configListSortColumns: IVehicleFullColumnSort[] = getConfigSavedListSortColumns() || [];\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private vehicleService: VehicleService,\r\n private permissionService: PermissionService,\r\n private translateHelperService: TranslateHelperService,\r\n private translate: TranslateService,\r\n private webAccess: WebAccessService,\r\n private driverFullNamePipe: DriverFullNamePipe,\r\n private renderer2: Renderer2,\r\n private mapService: MapService,\r\n private router: Router,\r\n public newNavigationService: NewNavigationService,\r\n ) {\r\n this.form = this.fb.group({\r\n Field: ['Description'],\r\n Status: null,\r\n Statuses: [],\r\n Phrase: [null],\r\n Tags: [[]],\r\n IgnitionBlockerState: [null],\r\n });\r\n this.setDefaultConfigColumnsList();\r\n this.checkIfUserCanVisibleBlockerInfo();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.onChangeRoutePage();\r\n this.onChangeVisibleList();\r\n this.onChangeFiltersFormValue();\r\n this.onChangePanelHeight();\r\n this.setTranslations();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.resizeInit();\r\n this.setInitContainerHeight();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.mouseMoveSubscription?.unsubscribe();\r\n this.componentSubsc?.unsubscribe();\r\n this.onChangeVehicleFollowSubsc?.unsubscribe();\r\n }\r\n\r\n private setDefaultConfigColumnsList(): void {\r\n setTimeout(() => {\r\n this.cols = [\r\n { field: 'vehicleName', header: this.translate.instant('labels.name'), id: VehicleFullColumnId.name },\r\n { field: 'St', header: this.translate.instant('labels.status'), id: VehicleFullColumnId.status },\r\n { field: 'time', header: this.translate.instant('labels.time'), id: VehicleFullColumnId.time },\r\n { field: 'speed', header: this.translate.instant('labels.speed'), id: VehicleFullColumnId.speed },\r\n { field: 'address', header: this.translate.instant('labels.address'), id: VehicleFullColumnId.adress },\r\n { field: 'driver', header: this.translate.instant('labels.driver'), id: VehicleFullColumnId.driver },\r\n { field: 'etoll', header: 'e-TOLL', id: VehicleFullColumnId.etoll },\r\n { field: 'sent', header: 'SENT', id: VehicleFullColumnId.sent },\r\n { field: 'gps', header: this.translate.instant('labels.gps'), id: VehicleFullColumnId.gps },\r\n { field: 'gsm', header: this.translate.instant('labels.gsm'), id: VehicleFullColumnId.gsm },\r\n { field: 'fuel', header: this.translate.instant('labels.fuel'), id: VehicleFullColumnId.fuel },\r\n { field: 'rpm', header: this.translate.instant('vehicle-indicator.rpm'), id: VehicleFullColumnId.rpm },\r\n { field: 'controls', header: this.translate.instant('sensors'), id: VehicleFullColumnId.sensor },\r\n { field: 'tacho', header: this.translate.instant('labels.tacho'), id: VehicleFullColumnId.tacho },\r\n { field: 'deviceID', header: this.translate.instant('deviceId'), id: VehicleFullColumnId.numberId },\r\n { field: 'sentGeoID', header: this.translate.instant('create-account.id'), id: VehicleFullColumnId.id },\r\n { field: 'networkType', header: this.translate.instant('networkType'), id: VehicleFullColumnId.networkType },\r\n ];\r\n if (this.hasBlockerReadPermissionUser) {\r\n this.cols = [...this.cols, { field: 'lock', header: this.translate.instant('blocked'), id: VehicleFullColumnId.lock }];\r\n }\r\n }, TIME_OUT_FOR_LOADING_TRANSLATES);\r\n }\r\n\r\n public prepareListToDisplayWithConfigSort(data: IVehicleFullColumnSort[] = getConfigSavedListSortColumns()): void {\r\n this.configListSortColumns = [...data];\r\n this.isVisibleConfigColumnPanel = false;\r\n }\r\n\r\n private goToVehicleLocation(vehicleData: Vehicle): void {\r\n const coords = getVehicleCoords(vehicleData);\r\n this.mapService.showPointWithZoom(coords, 14);\r\n }\r\n\r\n private followVehicle(data: Vehicle): void {\r\n this.onChangeVehicleFollowSubsc?.unsubscribe();\r\n this.goToVehicleLocation(data);\r\n }\r\n\r\n public onClickVehicle(data: Vehicle): void {\r\n this.followVehicle(data);\r\n }\r\n\r\n private onChangeRoutePage(): void {\r\n this.router.events.subscribe(data => {\r\n if (data instanceof NavigationEnd) {\r\n if (data.url === '/panel/vehicle-full-list') {\r\n this.mapService.isVisibleVehicleList$.next(true);\r\n return;\r\n }\r\n this.mapService.isVisibleVehicleList$.next(false);\r\n }\r\n });\r\n }\r\n\r\n private onChangeVisibleList(): void {\r\n this.mapService.isVisibleVehicleList$.pipe(distinctUntilChanged()).subscribe((isVisible) => {\r\n if (isVisible) {\r\n this.showContainer();\r\n return;\r\n }\r\n this.hideModal();\r\n });\r\n }\r\n\r\n private showContainer(): void {\r\n this.isVisibleList = true;\r\n this.containerRef.nativeElement.classList.add('is-visible');\r\n this.containerRef.nativeElement.classList.remove('hide');\r\n this.getVehiclesList();\r\n setTimeout(() => {\r\n this.setPositionMapBottomControls();\r\n }, ANIMATION_TOGGLE_LIST_TIME);\r\n }\r\n\r\n private hideModal(): void {\r\n this.onChangeVehicleFollowSubsc?.unsubscribe();\r\n this.containerRef.nativeElement.classList.add('hide');\r\n this.defaultPositionMapBottomControls();\r\n setTimeout(() => {\r\n this.containerRef.nativeElement.classList.remove('is-visible');\r\n this.isVisibleList = false;\r\n }, ANIMATION_TOGGLE_LIST_TIME);\r\n }\r\n\r\n private get zoomControlsMapRef(): ChildNode {\r\n return document.getElementById('map-controls')?.firstChild as ChildNode;\r\n }\r\n\r\n private get mapContentRef(): Element {\r\n return document.getElementsByClassName('leaflet-container').item(0) as Element;\r\n }\r\n\r\n private setPositionMapBottomControls(listHeight: number = this.getContainerListHeightPx(0).number): void {\r\n const newMapHeight = window.innerHeight - listHeight;\r\n this.renderer2.setStyle(this.zoomControlsMapRef, 'height', `${ newMapHeight }px`);\r\n this.renderer2.setStyle(this.mapContentRef, 'height', `${ newMapHeight }px`);\r\n this.mapService.map?.invalidateSize();\r\n }\r\n\r\n private defaultPositionMapBottomControls(): void {\r\n this.renderer2.removeStyle(this.zoomControlsMapRef, 'height');\r\n this.renderer2.setStyle(this.mapContentRef, 'height', '100vh');\r\n this.mapService.map?.invalidateSize();\r\n }\r\n\r\n public onHideModal(): void {\r\n this.mapService.isVisibleVehicleList$.next(false);\r\n }\r\n\r\n public handleOnSelectedTags(selectedTags: Tag[]): void {\r\n this.form.controls['Tags'].setValue(selectedTags);\r\n }\r\n\r\n private getVehicleControlNumberByGroupId(data: Vehicle, groupId: number): number {\r\n let control = (data.ControlIndicators || []).filter(o => o && o.Group === groupId);\r\n let value = (control && control.length > 0 && control[0].LV) ? control[0].LV : null;\r\n return value?.V;\r\n }\r\n\r\n private sortVehicles(data: Vehicle[]): void {\r\n const list = [...data];\r\n\r\n list.sort((a, b) => {\r\n let result = 0;\r\n const aField: any = get(a, this.sortField, '');\r\n const bField: any = get(b, this.sortField, '');\r\n\r\n if (!this.sortField || this.sortField === 'vehicleName') {\r\n result = a.Nm!.localeCompare(b.Nm!);\r\n }\r\n if (this.sortField === 'St') {\r\n result = (aField as number) - (bField as number);\r\n }\r\n if (this.sortField === 'networkType') {\r\n result = (a.DN || '1G').localeCompare((b.DN || '1G'));\r\n }\r\n if (this.sortField === 'speed') {\r\n result = findVehicleSpeedParamValue(a) - findVehicleSpeedParamValue(b);\r\n }\r\n if (this.sortField === 'driver') {\r\n result = this.driverFullNamePipe.transform(a.LastDriver).localeCompare(this.driverFullNamePipe.transform(b.LastDriver));\r\n }\r\n if (this.sortField === 'etoll') {\r\n result = (a.ES as number) - (b.ES as number);\r\n }\r\n if (this.sortField === 'sent') {\r\n result = (a.SG as number) - (b.SG as number);\r\n }\r\n if (this.sortField === 'gps') {\r\n const aData = a.ControlIndicators?.find(p => p && p.Tp === 21)?.LV?.V;\r\n const bData = b.ControlIndicators?.find(p => p && p.Tp === 21)?.LV?.V;\r\n result = aData - bData;\r\n }\r\n if (this.sortField === 'gsm') {\r\n const aData = a.ControlIndicators?.find(p => p && p.Tp === 22)?.LV?.V;\r\n const bData = b.ControlIndicators?.find(p => p && p.Tp === 22)?.LV?.V;\r\n result = aData - bData;\r\n }\r\n if (this.sortField === 'fuel') {\r\n const aData = a.ControlIndicators?.find(item => item.Tp === ParameterTypeEnum.Fuel && item.LV)?.LV?.V || 0;\r\n const bData = b.ControlIndicators?.find(item => item.Tp === ParameterTypeEnum.Fuel && item.LV)?.LV?.V || 0;\r\n result = aData - bData\r\n }\r\n if (this.sortField === 'rpm') {\r\n const aData = this.getVehicleControlNumberByGroupId(a, 7);\r\n const bData = this.getVehicleControlNumberByGroupId(b, 7);\r\n result = aData - bData;\r\n }\r\n if (this.sortField === 'deviceID') {\r\n result = a.SN.localeCompare(b.SN);\r\n }\r\n if (this.sortField === 'sentGeoID') {\r\n result = a.SentGeoId.localeCompare(b.SentGeoId);\r\n }\r\n if (this.sortField === 'lock') {\r\n const aLock = isVehicleBlocked(a);\r\n const bLock = isVehicleBlocked(b);\r\n result = (!aLock && !bLock) ? (a.St as number) - (b.St as number) : (aLock === bLock) ? 0 : (aLock ? 1 : -1);\r\n }\r\n if (this.sortField === 'time') {\r\n const aTime = calculateVehicleTimeInCurrentState(a) || 0;\r\n const bTime = calculateVehicleTimeInCurrentState(b) || 0;\r\n result = aTime - bTime;\r\n }\r\n return this.sortOrder * result;\r\n });\r\n this.vehicles = [...list];\r\n }\r\n\r\n public setColumnSorted(event: any): void {\r\n this.sortField = event.field;\r\n this.sortOrder = event.order;\r\n this.sortVehicles(this.vehicles);\r\n }\r\n\r\n public onSubmitFilters(data: any, filterData: IFilterVehicle): void {\r\n if (filterData.type === FilterVehicleType.Status) {\r\n this.form.get('Status')?.setValue(data?.selectedControlValue);\r\n this.filtersStatusCurrentFilters = {...data};\r\n return;\r\n }\r\n if (filterData.type === FilterVehicleType.Group) {\r\n this.filtersGroupCurrentFilters = {...data};\r\n if (data.selectedControlValue) {\r\n const tagData = this.filtersGroupConfig.options.find(item => item.value === data.selectedControlValue);\r\n this.handleOnSelectedTags([tagData?.data]);\r\n return;\r\n }\r\n this.handleOnSelectedTags([]);\r\n return;\r\n }\r\n if (filterData.type === FilterVehicleType.Blocking) {\r\n this.form.get('IgnitionBlockerState')?.setValue(data?.selectedControlValue);\r\n this.filtersLockCurrentFilters = {...data};\r\n return;\r\n }\r\n }\r\n\r\n private onChangeFiltersFormValue(): void {\r\n const sub = this.form.valueChanges.pipe(\r\n tap(() => this.isVisibleLoader = true),\r\n debounceTime(300),\r\n ).subscribe(\r\n (data) => {\r\n let statuses: number[] = [];\r\n\r\n if (data.Status !== null) {\r\n statuses = this.filteredStatuses.find(function (f) { return f.filterType === data.Status; })?.statuses || [] as any;\r\n }\r\n\r\n const filters = {\r\n ...data,\r\n Statuses: statuses,\r\n IgnitionBlockerState: isNumber(data?.IgnitionBlockerState) ? data.IgnitionBlockerState === FilterLockType.Lock ? true : false : undefined,\r\n } as VehicleListFilterRequest;\r\n\r\n this.vehicleService.findVehicle(filters);\r\n }\r\n );\r\n this.componentSubsc.add(sub);\r\n }\r\n\r\n private resizeInit(): void {\r\n const mouseDown$ = fromEvent(this.resizeElement.nativeElement, 'mousedown');\r\n const mouseMove$ = fromEvent(document, 'mousemove');\r\n const mouseUp$ = fromEvent(document, 'mouseup');\r\n\r\n this.mouseMoveSubscription = mouseDown$.pipe(\r\n map(event => event.y),\r\n switchMap(startY => {\r\n this.initialY = startY;\r\n this.onChangeingPanelHeight = true;\r\n return mouseMove$.pipe(\r\n map(moveEvent => moveEvent.y),\r\n pairwise(),\r\n map(([previousY, currentY]) => previousY - currentY),\r\n filter((dy) => {\r\n if (dy !== 0) {\r\n this.isVisibleLoader = true;\r\n }\r\n return dy !== 0;\r\n }),\r\n takeUntil(mouseUp$)\r\n );\r\n }),\r\n debounceTime(1),\r\n distinctUntilChanged(),\r\n ).subscribe(dy => {\r\n const parent = this.resizeElement.nativeElement.parentElement;\r\n const currentHeight = parseInt(getComputedStyle(parent).height, 10);\r\n parent.style.height = `${currentHeight + dy}px`;\r\n this.setPositionMapBottomControls();\r\n this.onChangePanelHeight$.next();\r\n });\r\n }\r\n\r\n private getCurrentListWrapperHeight(): number {\r\n const currentHeight = parseInt(getComputedStyle(this.listWrapper.nativeElement).height, 10);\r\n return currentHeight;\r\n }\r\n\r\n private setListHeight(): void {\r\n this.scrollHeight = `${this.getCurrentListWrapperHeight() - 20}px`;\r\n this.setVehicleListHeightLocalStorage(this.scrollHeight);\r\n }\r\n\r\n private onChangePanelHeight(): void {\r\n const sub = this.onChangePanelHeight$.pipe(debounceTime(1000)).subscribe(() => {\r\n this.setListHeight();\r\n this.isVisibleLoader = false;\r\n this.onChangeingPanelHeight = false;\r\n });\r\n this.componentSubsc.add(sub);\r\n }\r\n\r\n private getVehiclesList(): void {\r\n const sub = this.vehicleService.getListFiltered$()\r\n .subscribe(vehicles => {\r\n if (this.isVisibleList) {\r\n this.sortVehicles(vehicles);\r\n\r\n setTimeout(() => {\r\n if (!this.onChangeingPanelHeight) {\r\n this.isVisibleLoader = false;\r\n }\r\n }, 1000);\r\n }\r\n });\r\n this.componentSubsc.add(sub);\r\n }\r\n\r\n private checkIfUserCanVisibleBlockerInfo(): void {\r\n this.hasBlockerReadPermissionUser = this.permissionService.hasBlockerRead() || this.permissionService.hasBlockerReadWrite();\r\n }\r\n\r\n /* filters */\r\n private setTranslations(): void {\r\n this.vehicleStatuses = this.translateHelperService.translateOptionItems(Consts.vehicleStatuses);\r\n this.setFiltersConfig();\r\n }\r\n\r\n private setFiltersConfig(): void {\r\n setTimeout(() => {\r\n const filtersStatusOptions: IFilterVehicleOption[] = this.vehicleStatuses.map(({ checkboxColor, label, value, data }) => ({ checkboxColor, label, value, data })) as IFilterVehicleOption[];\r\n this.filtersStatusConfig = {\r\n filterLabel: this.translate.instant('labels.status'),\r\n type: FilterVehicleType.Status,\r\n dropdownLabel: this.translate.instant('filterByStatuses'),\r\n options: filtersStatusOptions\r\n };\r\n this.filtersGroupConfig = {\r\n filterLabel: this.translate.instant('vehicle-indicator.group'),\r\n type: FilterVehicleType.Group,\r\n dropdownLabel: this.translate.instant('showOnlyGroup'),\r\n options: [],\r\n };\r\n this.filtersLockConfig = {\r\n filterLabel: this.translate.instant('blocked'),\r\n type: FilterVehicleType.Blocking,\r\n dropdownLabel: this.translate.instant('displayOnly'),\r\n options: [\r\n { label: this.translate.instant('unBlockVehicles'), value: FilterLockType.Unblock },\r\n { label: this.translate.instant('blockedVehicles'), value: FilterLockType.Lock }\r\n ],\r\n };\r\n this.getGroups();\r\n }, TIME_OUT_FOR_LOADING_TRANSLATES);\r\n }\r\n\r\n private getGroups(): void {\r\n if (!this.filtersGroupConfig?.options.length) {\r\n of({Phrase: '', TagType: 0})\r\n .pipe(\r\n switchMap(request => this.webAccess.GetTagsListByFilter(request))\r\n )\r\n .subscribe(response => {\r\n this.filtersGroupConfig = {\r\n ...this.filtersGroupConfig,\r\n options: response.Result.map(item => ({ label: item.L, value: item.Id, data: item })) as IFilterVehicleOption[],\r\n };\r\n }); \r\n }\r\n }\r\n\r\n private setVehicleListHeightLocalStorage(height: string): void {\r\n localStorage.setItem(LOCAL_STORAGE_VAR.VEHICLE_LIST_HEIGHT, height);\r\n localStorage.setItem(LOCAL_STORAGE_VAR.VEHICLE_BOTTOM_LIST_WRAPPER_HEIGHT, this.getContainerListHeightPx().px);\r\n }\r\n\r\n private getVehicleListHeightLocalStorage(): string {\r\n return localStorage.getItem(LOCAL_STORAGE_VAR.VEHICLE_LIST_HEIGHT) || '432px';\r\n }\r\n\r\n private setInitContainerHeight(): void {\r\n const height = localStorage.getItem(LOCAL_STORAGE_VAR.VEHICLE_BOTTOM_LIST_WRAPPER_HEIGHT) || '526px';\r\n this.renderer2.setStyle(this.containerRef.nativeElement, 'height', height);\r\n }\r\n\r\n private getContainerListHeightPx(addPxToHeight: number = 0): {px: string, number:number } {\r\n const currentHeight = parseInt(getComputedStyle(this.containerRef.nativeElement).height, 10);\r\n return {\r\n px: `${currentHeight + addPxToHeight}px`,\r\n number: currentHeight,\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 \r\n\r\n \r\n \r\n\r\n
\r\n\r\n \r\n
\r\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {animate, state, style, transition, trigger} from '@angular/animations';\r\n\r\nimport {PanelNavigationService} from '@commons/services/navigation/panel-navigation.service';\r\nimport {MapService} from '@commons/services/map/map/map.service';\r\nimport {MapControlService} from '@commons/services/map/control/map-control.serivce';\r\n\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\n\r\nimport {MapPanelService} from \"@map-panel/services/map-panel.service\";\r\nimport { MapActionType } from '../enum/map.enum';\r\nimport { debounceTime, Subscription } from 'rxjs';\r\n\r\n/**\r\n * Komponent bazowy mapy. Wszelka komunikacja i konfiguracja odbywa się z poziomu tego komponentu.\r\n */\r\n@Component({\r\n selector: 'tk-map',\r\n templateUrl: './map.component.html',\r\n styleUrls: ['./map.component.less'],\r\n animations: [\r\n trigger('segmentChange', [\r\n state('default', style({\r\n left: '56px',\r\n right: '0px',\r\n bottom: '0px'\r\n })),\r\n state('onlyMap', style({\r\n left: '0px',\r\n right: '0px',\r\n bottom: '0px'\r\n })),\r\n state('left-1', style({\r\n left: '416px'\r\n })),\r\n state('left-2', style({\r\n left: '778px'\r\n })),\r\n state('right-1', style({\r\n right: '360px'\r\n })),\r\n state('right-2', style({\r\n right: '120px'\r\n })),\r\n state('bottom-1', style({\r\n bottom: '360px'\r\n })),\r\n transition('* => *', [\r\n animate('0.1s')\r\n ]),\r\n ])\r\n ]\r\n})\r\nexport class MapComponent extends BaseComponent implements OnDestroy, OnInit {\r\n\r\n @Input() public hasAccessToAreas: boolean;\r\n @Input() public isAreasPanelActive: boolean;\r\n\r\n @Output() public onClickModule$: EventEmitter = new EventEmitter();\r\n\r\n isMapPanelVisible = false;\r\n visibleSegments?: number;\r\n panelHeight = 0;\r\n public isVisibleMapLoader: boolean;\r\n\r\n private prevPanelHeight?: number;\r\n private isResizeTimeout: any;\r\n\r\n get mapContentClasses(): string {\r\n let result = '';\r\n\r\n switch (this.visibleSegments) {\r\n case 1:\r\n result = 'map-padding-left-1';\r\n break;\r\n\r\n case 2:\r\n result = 'map-padding-left-2';\r\n break;\r\n\r\n case 3:\r\n result = 'map-padding-bottom-1';\r\n break;\r\n }\r\n\r\n if (this.isMapPanelVisible) {\r\n result += ' map-padding-right-2';\r\n }\r\n\r\n return result;\r\n }\r\n\r\n constructor(\r\n private panelNavigationService: PanelNavigationService,\r\n private mapService: MapService,\r\n private mapControlService: MapControlService,\r\n private mapPanelService: MapPanelService,\r\n ) {\r\n super();\r\n this.subToVisibilitySub();\r\n this.subToMapControlSizeChange();\r\n this.subToMapPanelVisibilityService();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.onChangeLoaderState();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll();\r\n }\r\n\r\n onAnimationFinished(event: any) {\r\n this.mapService.resizeMap();\r\n }\r\n\r\n private onChangeLoaderState(): void {\r\n const sub = this.mapService.isVisibleMapLoader$.subscribe((data) => {\r\n this.isVisibleMapLoader = data;\r\n });\r\n this.addToUnsubscribe(sub);\r\n }\r\n\r\n private subToMapPanelVisibilityService() {\r\n this.mapPanelService.isMapPanelVisibleSubject.subscribe(isVisible => {\r\n this.isMapPanelVisible = isVisible;\r\n this.mapService.resizeMap();\r\n });\r\n }\r\n\r\n private subToVisibilitySub() {\r\n this.addToUnsubscribe(\r\n this.panelNavigationService.getVisibilitySubject().subscribe(result => {\r\n if (result.subsites) {\r\n // driver-lite\r\n if (result.subsites.indexOf('driver-lite') !== -1) {\r\n this.visibleSegments = 1;\r\n\r\n // driver-details\r\n } else if (result.subsites.indexOf('driver-details') !== -1) {\r\n this.visibleSegments = 2;\r\n\r\n // vehicle-lite\r\n } else if (result.subsites.indexOf('vehicle-lite') !== -1) {\r\n this.visibleSegments = 1;\r\n\r\n // vehicle-details\r\n } else if (result.subsites.indexOf('vehicle-details') !== -1) {\r\n this.visibleSegments = 2;\r\n\r\n // vehicle-full\r\n } else if (result.subsites.indexOf('vehicle-full') !== -1) {\r\n this.visibleSegments = 3;\r\n if (this.prevPanelHeight) {\r\n this.panelHeight = this.prevPanelHeight;\r\n }\r\n if (!this.panelHeight) {\r\n this.panelHeight = 320;\r\n }\r\n\r\n // vehicle-details-only\r\n } else if (result.subsites.indexOf('vehicle-details-only') !== -1) {\r\n this.visibleSegments = 1;\r\n\r\n // event-lite\r\n } else if (result.subsites.indexOf('event-lite') !== -1) {\r\n this.visibleSegments = 1;\r\n\r\n // area-lite\r\n } else if (result.subsites.indexOf('area-lite') !== -1) {\r\n this.visibleSegments = 1;\r\n\r\n } else {\r\n this.visibleSegments = 0;\r\n }\r\n }\r\n\r\n if (this.visibleSegments !== 3) {\r\n this.panelHeight = 0;\r\n }\r\n\r\n this.mapService.resizeMap();\r\n }));\r\n }\r\n\r\n private subToMapControlSizeChange() {\r\n // zmiana wysokosci\r\n this.addToUnsubscribe(\r\n this.mapControlService.getResizeSubject().subscribe(result => {\r\n // tylko dla dolnego\r\n if (this.visibleSegments === 3) {\r\n\r\n if (this.isResizeTimeout) {\r\n clearTimeout(this.isResizeTimeout);\r\n }\r\n\r\n const height = window.innerHeight\r\n || document.documentElement.clientHeight\r\n || document.body.clientHeight;\r\n\r\n const eventHeight = result;\r\n\r\n let panelHeight = (height - eventHeight);\r\n if (panelHeight < 30) {\r\n panelHeight = 30;\r\n }\r\n\r\n if (eventHeight <= 0) {\r\n panelHeight = height;\r\n }\r\n\r\n this.prevPanelHeight = this.panelHeight;\r\n this.panelHeight = panelHeight;\r\n\r\n this.isResizeTimeout = setTimeout(() => {\r\n this.mapService.resizeMap();\r\n }, 300);\r\n }\r\n }));\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-close-button',\r\n templateUrl: './close-button.component.html',\r\n styles: []\r\n})\r\nexport class CloseButtonComponent implements OnInit {\r\n\r\n @Input() width = 'w-4';\r\n @Input() height = 'h-4';\r\n\r\n @Output() close = new EventEmitter();\r\n\r\n isHovered = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onHover(isHoverd: boolean) {\r\n this.isHovered = isHoverd;\r\n }\r\n\r\n onClick() {\r\n this.close.emit();\r\n }\r\n\r\n getClass(): string {\r\n const hoveredClass = this.isHovered ? 'tk-i-close-blue' : 'tk-i-close';\r\n return `${this.width} ${this.height} ${hoveredClass}`;\r\n }\r\n\r\n}\r\n","
\r\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-arrow-left-button',\r\n templateUrl: './arrow-left-button.component.html',\r\n styles: []\r\n})\r\nexport class ArrowLeftButtonComponent implements OnInit {\r\n\r\n @Output() close = new EventEmitter();\r\n\r\n isHovered = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onHover(isHoverd: boolean) {\r\n this.isHovered = isHoverd;\r\n }\r\n\r\n onClick() {\r\n this.close.emit();\r\n }\r\n\r\n}\r\n","
\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n {{userInitials}}\r\n
\r\n
\r\n \r\n {{user?.FirstName}} {{user?.LastName}}\r\n \r\n \r\n {{user?.Email}}\r\n \r\n \r\n {{user?.Phone}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n \r\n {{item.title}}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\n\r\nimport {User} from \"@commons/models/domain/User\";\r\n\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\nimport {UserHttpService} from \"@shared/services-http/user-http.service\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-profile-data',\r\n templateUrl: './profile-data.component.html',\r\n styleUrls: ['./profile-data.component.scss']\r\n})\r\nexport class ProfileDataComponent implements OnInit {\r\n\r\n @Input() isPasswordChanged = false;\r\n @Output() onPasswordChange = new EventEmitter();\r\n @Output() onRedirectToAccountData = new EventEmitter();\r\n\r\n isVisible = false;\r\n\r\n public menuList: {title: string, img: string, height: string, colorText?: string, onClick: () => void}[] = [\r\n {title: this.translate.instant('yourProfile.accountData'), img: '/assets/img/user-circle-gear.svg', height: '20px', onClick: () => this.onRedirectToAccountData.emit() },\r\n {title: this.translate.instant('yourProfile.changePassword'), img: '/assets/img/password.svg', height: '15px', onClick: () => this.onNavigateToPasswordChange() },\r\n {title: this.translate.instant('yourProfile.knowledgebase'), img: '/assets/img/helpicon.svg', height: '18px', onClick: () => this.help() },\r\n {title: this.translate.instant('yourProfile.logout'), img: '/assets/img/logout.svg', height: '18px', colorText: '#FF0032', onClick: () => this.logout() }\r\n ];\r\n\r\n get user(): User | undefined {\r\n return this.userHttpService?.userViewModel?.user;\r\n }\r\n\r\n get userInitials(): string {\r\n return this.userHttpService?.userViewModel?.initials ?? '';\r\n }\r\n\r\n constructor(\r\n private newNavigationService: NewNavigationService,\r\n private userHttpService: UserHttpService,\r\n private translate: TranslateService,\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n private onNavigateToPasswordChange(): void {\r\n this.onPasswordChange.emit();\r\n }\r\n\r\n private logout(): void {\r\n this.newNavigationService.toLogout();\r\n }\r\n\r\n private help(): void {\r\n window.open('https://support.tekom.pl/portal/pl/kb', '_blank');\r\n }\r\n\r\n}\r\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass EyeSlashIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵEyeSlashIcon_BaseFactory; return function EyeSlashIcon_Factory(__ngFactoryType__) { return (ɵEyeSlashIcon_BaseFactory || (ɵEyeSlashIcon_BaseFactory = i0.ɵɵgetInheritedFactory(EyeSlashIcon)))(__ngFactoryType__ || EyeSlashIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EyeSlashIcon, selectors: [[\"EyeSlashIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M13.9414 6.74792C13.9437 6.75295 13.9455 6.757 13.9469 6.76003C13.982 6.8394 14.0001 6.9252 14.0001 7.01195C14.0001 7.0987 13.982 7.1845 13.9469 7.26386C13.6004 8.00059 13.1711 8.69549 12.6674 9.33515C12.6115 9.4071 12.54 9.46538 12.4582 9.50556C12.3765 9.54574 12.2866 9.56678 12.1955 9.56707C12.0834 9.56671 11.9737 9.53496 11.8788 9.47541C11.7838 9.41586 11.7074 9.3309 11.6583 9.23015C11.6092 9.12941 11.5893 9.01691 11.6008 8.90543C11.6124 8.79394 11.6549 8.68793 11.7237 8.5994C12.1065 8.09726 12.4437 7.56199 12.7313 6.99995C12.2595 6.08027 10.3402 2.8014 6.99732 2.8014C6.63723 2.80218 6.27816 2.83969 5.92569 2.91336C5.77666 2.93304 5.62568 2.89606 5.50263 2.80972C5.37958 2.72337 5.29344 2.59398 5.26125 2.44714C5.22907 2.30031 5.2532 2.14674 5.32885 2.01685C5.40451 1.88696 5.52618 1.79021 5.66978 1.74576C6.10574 1.64961 6.55089 1.60134 6.99732 1.60181C11.5916 1.60181 13.7864 6.40856 13.9414 6.74792ZM2.20333 1.61685C2.35871 1.61411 2.5091 1.67179 2.6228 1.77774L12.2195 11.3744C12.3318 11.4869 12.3949 11.6393 12.3949 11.7983C12.3949 11.9572 12.3318 12.1097 12.2195 12.2221C12.107 12.3345 11.9546 12.3976 11.7956 12.3976C11.6367 12.3976 11.4842 12.3345 11.3718 12.2221L10.5081 11.3584C9.46549 12.0426 8.24432 12.4042 6.99729 12.3981C2.403 12.3981 0.208197 7.59135 0.0532336 7.25198C0.0509364 7.24694 0.0490875 7.2429 0.0476856 7.23986C0.0162332 7.16518 3.05176e-05 7.08497 3.05176e-05 7.00394C3.05176e-05 6.92291 0.0162332 6.8427 0.0476856 6.76802C0.631261 5.47831 1.46902 4.31959 2.51084 3.36119L1.77509 2.62545C1.66914 2.51175 1.61146 2.36136 1.61421 2.20597C1.61695 2.05059 1.6799 1.90233 1.78979 1.79244C1.89968 1.68254 2.04794 1.6196 2.20333 1.61685ZM7.45314 8.35147L5.68574 6.57609V6.5361C5.5872 6.78938 5.56498 7.06597 5.62183 7.33173C5.67868 7.59749 5.8121 7.84078 6.00563 8.03158C6.19567 8.21043 6.43052 8.33458 6.68533 8.39089C6.94014 8.44721 7.20543 8.43359 7.45314 8.35147ZM1.26327 6.99994C1.7351 7.91163 3.64645 11.1985 6.99729 11.1985C7.9267 11.2048 8.8408 10.9618 9.64438 10.4947L8.35682 9.20718C7.86027 9.51441 7.27449 9.64491 6.69448 9.57752C6.11446 9.51014 5.57421 9.24881 5.16131 8.83592C4.74842 8.42303 4.4871 7.88277 4.41971 7.30276C4.35232 6.72274 4.48282 6.13697 4.79005 5.64041L3.35855 4.2089C2.4954 5.00336 1.78523 5.94935 1.26327 6.99994Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function EyeSlashIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EyeSlashIcon, [{\n type: Component,\n args: [{\n selector: 'EyeSlashIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(EyeSlashIcon, { className: \"EyeSlashIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { EyeSlashIcon };\n","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass EyeIcon extends BaseIcon {\n static ɵfac = /*@__PURE__*/ (() => { let ɵEyeIcon_BaseFactory; return function EyeIcon_Factory(__ngFactoryType__) { return (ɵEyeIcon_BaseFactory || (ɵEyeIcon_BaseFactory = i0.ɵɵgetInheritedFactory(EyeIcon)))(__ngFactoryType__ || EyeIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EyeIcon, selectors: [[\"EyeIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 5, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M0.0535499 7.25213C0.208567 7.59162 2.40413 12.4 7 12.4C11.5959 12.4 13.7914 7.59162 13.9465 7.25213C13.9487 7.2471 13.9506 7.24304 13.952 7.24001C13.9837 7.16396 14 7.08239 14 7.00001C14 6.91762 13.9837 6.83605 13.952 6.76001C13.9506 6.75697 13.9487 6.75292 13.9465 6.74788C13.7914 6.4084 11.5959 1.60001 7 1.60001C2.40413 1.60001 0.208567 6.40839 0.0535499 6.74788C0.0512519 6.75292 0.0494023 6.75697 0.048 6.76001C0.0163137 6.83605 0 6.91762 0 7.00001C0 7.08239 0.0163137 7.16396 0.048 7.24001C0.0494023 7.24304 0.0512519 7.2471 0.0535499 7.25213ZM7 11.2C3.664 11.2 1.736 7.92001 1.264 7.00001C1.736 6.08001 3.664 2.80001 7 2.80001C10.336 2.80001 12.264 6.08001 12.736 7.00001C12.264 7.92001 10.336 11.2 7 11.2ZM5.55551 9.16182C5.98308 9.44751 6.48576 9.6 7 9.6C7.68891 9.59789 8.349 9.32328 8.83614 8.83614C9.32328 8.349 9.59789 7.68891 9.59999 7C9.59999 6.48576 9.44751 5.98308 9.16182 5.55551C8.87612 5.12794 8.47006 4.7947 7.99497 4.59791C7.51988 4.40112 6.99711 4.34963 6.49276 4.44995C5.98841 4.55027 5.52513 4.7979 5.16152 5.16152C4.7979 5.52513 4.55027 5.98841 4.44995 6.49276C4.34963 6.99711 4.40112 7.51988 4.59791 7.99497C4.7947 8.47006 5.12794 8.87612 5.55551 9.16182ZM6.2222 5.83594C6.45243 5.6821 6.7231 5.6 7 5.6C7.37065 5.6021 7.72553 5.75027 7.98762 6.01237C8.24972 6.27446 8.39789 6.62934 8.4 7C8.4 7.27689 8.31789 7.54756 8.16405 7.77779C8.01022 8.00802 7.79157 8.18746 7.53575 8.29343C7.27994 8.39939 6.99844 8.42711 6.72687 8.37309C6.4553 8.31908 6.20584 8.18574 6.01005 7.98994C5.81425 7.79415 5.68091 7.54469 5.6269 7.27312C5.57288 7.00155 5.6006 6.72006 5.70656 6.46424C5.81253 6.20842 5.99197 5.98977 6.2222 5.83594Z\", \"fill\", \"currentColor\"]], template: function EyeIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EyeIcon, [{\n type: Component,\n args: [{\n selector: 'EyeIcon',\n standalone: true,\n template: `\n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(EyeIcon, { className: \"EyeIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { EyeIcon };\n","import { trigger, transition, style, animate } from '@angular/animations';\nimport * as i1 from '@angular/common';\nimport { isPlatformBrowser, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, signal, booleanAttribute, Directive, Input, HostListener, Pipe, forwardRef, EventEmitter, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Output, ViewChild, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { addClass, absolutePosition, removeClass, hasClass, isTouchDevice, getOuterWidth, relativePosition } from '@primeuix/utils';\nimport { OverlayService, TranslationKeys, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { TimesIcon, EyeSlashIcon, EyeIcon } from 'primeng/icons';\nimport { InputText } from 'primeng/inputtext';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-password {\n display: inline-flex;\n position: relative;\n}\n\n.p-password .p-password-overlay {\n min-width: 100%;\n}\n\n.p-password-meter {\n height: ${dt('password.meter.height')};\n background: ${dt('password.meter.background')};\n border-radius: ${dt('password.meter.border.radius')};\n}\n\n.p-password-meter-label {\n height: 100%;\n width: 0;\n transition: width 1s ease-in-out;\n border-radius: ${dt('password.meter.border.radius')};\n}\n\n.p-password-meter-weak {\n background: ${dt('password.strength.weak.background')};\n}\n\n.p-password-meter-medium {\n background: ${dt('password.strength.medium.background')};\n}\n\n.p-password-meter-strong {\n background: ${dt('password.strength.strong.background')};\n}\n\n.p-password-fluid {\n display: flex;\n}\n\n.p-password-fluid .p-password-input {\n width: 100%;\n}\n\n.p-password-input::-ms-reveal,\n.p-password-input::-ms-clear {\n display: none;\n}\n\n.p-password-overlay {\n position: absolute;\n padding: ${dt('password.overlay.padding')};\n background: ${dt('password.overlay.background')};\n color: ${dt('password.overlay.color')};\n border: 1px solid ${dt('password.overlay.border.color')};\n box-shadow: ${dt('password.overlay.shadow')};\n border-radius: ${dt('password.overlay.border.radius')};\n}\n\n.p-password-content {\n display: flex;\n flex-direction: column;\n gap: ${dt('password.content.gap')};\n}\n\n.p-password-toggle-mask-icon {\n inset-inline-end: ${dt('form.field.padding.x')};\n color: ${dt('password.icon.color')};\n position: absolute;\n top: 50%;\n margin-top: calc(-1 * calc(${dt('icon.size')} / 2));\n width: ${dt('icon.size')};\n height: ${dt('icon.size')};\n}\n\n.p-password:has(.p-password-toggle-mask-icon) .p-password-input {\n padding-inline-end: calc((${dt('form.field.padding.x')} * 2) + ${dt('icon.size')});\n}\n\n/* For PrimeNG */\np-password.ng-invalid.ng-dirty .p-inputtext {\n border-color: ${dt('inputtext.invalid.border.color')};\n}\n\np-password.ng-invalid.ng-dirty .p-inputtext:enabled:focus {\n border-color: ${dt('inputtext.focus.border.color')};\n}\n\np-password.ng-invalid.ng-dirty .p-inputtext::placeholder {\n color: ${dt('inputtext.invalid.placeholder.color')};\n}\n\n.p-password-clear-icon {\n position: absolute;\n top: 50%;\n margin-top: -0.5rem;\n cursor: pointer;\n inset-inline-end: ${dt('form.field.padding.x')};\n color: ${dt('form.field.icon.color')};\n}\n\n.p-password-fluid-directive {\n width:100%\n}\n`;\nconst inlineStyles = {\n root: ({ instance }) => ({ position: instance.appendTo === 'self' ? 'relative' : undefined })\n};\nconst classes = {\n root: ({ instance }) => ({\n 'p-password p-component p-inputwrapper': true,\n 'p-inputwrapper-filled': instance.filled(),\n 'p-inputwrapper-focus': instance.focused,\n 'p-password-fluid': instance.hasFluid\n }),\n pcInput: 'p-password-input',\n maskIcon: 'p-password-toggle-mask-icon p-password-mask-icon',\n unmaskIcon: 'p-password-toggle-mask-icon p-password-unmask-icon',\n overlay: 'p-password-overlay p-component',\n content: 'p-password-content',\n meter: 'p-password-meter',\n meterLabel: ({ instance }) => `p-password-meter-label ${instance.meter ? 'p-password-meter-' + instance.meter.strength : ''}`,\n meterText: 'p-password-meter-text'\n};\nclass PasswordStyle extends BaseStyle {\n name = 'password';\n theme = theme;\n classes = classes;\n inlineStyles = inlineStyles;\n static ɵfac = /*@__PURE__*/ (() => { let ɵPasswordStyle_BaseFactory; return function PasswordStyle_Factory(__ngFactoryType__) { return (ɵPasswordStyle_BaseFactory || (ɵPasswordStyle_BaseFactory = i0.ɵɵgetInheritedFactory(PasswordStyle)))(__ngFactoryType__ || PasswordStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PasswordStyle, factory: PasswordStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PasswordStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * Password displays strength indicator for password fields.\n *\n * [Live Demo](https://www.primeng.org/password/)\n *\n * @module passwordstyle\n *\n */\nvar PasswordClasses;\n(function (PasswordClasses) {\n /**\n * Class name of the root element\n */\n PasswordClasses[\"root\"] = \"p-password\";\n /**\n * Class name of the pt input element\n */\n PasswordClasses[\"pcInput\"] = \"p-password-input\";\n /**\n * Class name of the mask icon element\n */\n PasswordClasses[\"maskIcon\"] = \"p-password-mask-icon\";\n /**\n * Class name of the unmask icon element\n */\n PasswordClasses[\"unmaskIcon\"] = \"p-password-unmask-icon\";\n /**\n * Class name of the overlay element\n */\n PasswordClasses[\"overlay\"] = \"p-password-overlay\";\n /**\n * Class name of the meter element\n */\n PasswordClasses[\"meter\"] = \"p-password-meter\";\n /**\n * Class name of the meter label element\n */\n PasswordClasses[\"meterLabel\"] = \"p-password-meter-label\";\n /**\n * Class name of the meter text element\n */\n PasswordClasses[\"meterText\"] = \"p-password-meter-text\";\n})(PasswordClasses || (PasswordClasses = {}));\n\nconst _c0 = [\"content\"];\nconst _c1 = [\"footer\"];\nconst _c2 = [\"header\"];\nconst _c3 = [\"clearicon\"];\nconst _c4 = [\"headericon\"];\nconst _c5 = [\"showicon\"];\nconst _c6 = [\"input\"];\nconst _c7 = () => ({ class: \"p-password-toggle-mask-icon p-password-mask-icon\" });\nconst _c8 = (a0, a1) => ({ showTransitionParams: a0, hideTransitionParams: a1 });\nconst _c9 = a0 => ({ value: \"visible\", params: a0 });\nconst _c10 = a0 => ({ width: a0 });\nfunction Password_ng_container_5_TimesIcon_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"TimesIcon\", 8);\n i0.ɵɵlistener(\"click\", function Password_ng_container_5_TimesIcon_1_Template_TimesIcon_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.clear()); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-section\", \"clearIcon\");\n} }\nfunction Password_ng_container_5_3_ng_template_0_Template(rf, ctx) { }\nfunction Password_ng_container_5_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Password_ng_container_5_3_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Password_ng_container_5_Template(rf, ctx) { if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Password_ng_container_5_TimesIcon_1_Template, 1, 1, \"TimesIcon\", 7);\n i0.ɵɵelementStart(2, \"span\", 8);\n i0.ɵɵlistener(\"click\", function Password_ng_container_5_Template_span_click_2_listener() { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.clear()); });\n i0.ɵɵtemplate(3, Password_ng_container_5_3_Template, 1, 0, null, 9);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r3.clearIconTemplate && !ctx_r3._clearIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"clearIcon\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.clearIconTemplate || ctx_r3._clearIconTemplate);\n} }\nfunction Password_ng_container_6_ng_container_1_EyeSlashIcon_1_Template(rf, ctx) { if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"EyeSlashIcon\", 12);\n i0.ɵɵlistener(\"click\", function Password_ng_container_6_ng_container_1_EyeSlashIcon_1_Template_EyeSlashIcon_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.onMaskToggle()); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-section\", \"hideIcon\");\n} }\nfunction Password_ng_container_6_ng_container_1_span_2_1_ng_template_0_Template(rf, ctx) { }\nfunction Password_ng_container_6_ng_container_1_span_2_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Password_ng_container_6_ng_container_1_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Password_ng_container_6_ng_container_1_span_2_Template(rf, ctx) { if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 13);\n i0.ɵɵlistener(\"click\", function Password_ng_container_6_ng_container_1_span_2_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.onMaskToggle()); });\n i0.ɵɵtemplate(1, Password_ng_container_6_ng_container_1_span_2_1_Template, 1, 0, null, 14);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.hideIconTemplate || ctx_r3._hideIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction0(2, _c7));\n} }\nfunction Password_ng_container_6_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Password_ng_container_6_ng_container_1_EyeSlashIcon_1_Template, 1, 1, \"EyeSlashIcon\", 10)(2, Password_ng_container_6_ng_container_1_span_2_Template, 2, 3, \"span\", 11);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r3.hideIconTemplate && !ctx_r3._hideIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.hideIconTemplate || ctx_r3._hideIconTemplate);\n} }\nfunction Password_ng_container_6_ng_container_2_EyeIcon_1_Template(rf, ctx) { if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"EyeIcon\", 12);\n i0.ɵɵlistener(\"click\", function Password_ng_container_6_ng_container_2_EyeIcon_1_Template_EyeIcon_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.onMaskToggle()); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-section\", \"showIcon\");\n} }\nfunction Password_ng_container_6_ng_container_2_span_2_1_ng_template_0_Template(rf, ctx) { }\nfunction Password_ng_container_6_ng_container_2_span_2_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Password_ng_container_6_ng_container_2_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Password_ng_container_6_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 13);\n i0.ɵɵlistener(\"click\", function Password_ng_container_6_ng_container_2_span_2_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.onMaskToggle()); });\n i0.ɵɵtemplate(1, Password_ng_container_6_ng_container_2_span_2_1_Template, 1, 0, null, 9);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.showIconTemplate || ctx_r3._showIconTemplate);\n} }\nfunction Password_ng_container_6_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Password_ng_container_6_ng_container_2_EyeIcon_1_Template, 1, 1, \"EyeIcon\", 10)(2, Password_ng_container_6_ng_container_2_span_2_Template, 2, 1, \"span\", 11);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r3.showIconTemplate && !ctx_r3._showIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.showIconTemplate || ctx_r3._showIconTemplate);\n} }\nfunction Password_ng_container_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Password_ng_container_6_ng_container_1_Template, 3, 2, \"ng-container\", 5)(2, Password_ng_container_6_ng_container_2_Template, 3, 2, \"ng-container\", 5);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.unmasked);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r3.unmasked);\n} }\nfunction Password_div_7_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Password_div_7_ng_container_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Password_div_7_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Password_div_7_ng_container_3_ng_container_1_Template, 1, 0, \"ng-container\", 9);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.contentTemplate || ctx_r3._contentTemplate);\n} }\nfunction Password_div_7_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 17)(1, \"div\", 18);\n i0.ɵɵelement(2, \"div\", 3);\n i0.ɵɵpipe(3, \"mapper\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"div\", 19);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"meter\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpipeBind2(3, 6, ctx_r3.meter, ctx_r3.strengthClass))(\"ngStyle\", i0.ɵɵpureFunction1(9, _c10, ctx_r3.meter ? ctx_r3.meter.width : \"\"));\n i0.ɵɵattribute(\"data-pc-section\", \"meterLabel\");\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"data-pc-section\", \"info\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r3.infoText);\n} }\nfunction Password_div_7_ng_container_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Password_div_7_Template(rf, ctx) { if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 15, 1);\n i0.ɵɵlistener(\"click\", function Password_div_7_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onOverlayClick($event)); })(\"@overlayAnimation.start\", function Password_div_7_Template_div_animation_overlayAnimation_start_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onAnimationStart($event)); })(\"@overlayAnimation.done\", function Password_div_7_Template_div_animation_overlayAnimation_done_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onAnimationEnd($event)); });\n i0.ɵɵtemplate(2, Password_div_7_ng_container_2_Template, 1, 0, \"ng-container\", 9)(3, Password_div_7_ng_container_3_Template, 2, 1, \"ng-container\", 16)(4, Password_div_7_ng_template_4_Template, 6, 11, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor)(6, Password_div_7_ng_container_6_Template, 1, 0, \"ng-container\", 9);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const content_r10 = i0.ɵɵreference(5);\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@overlayAnimation\", i0.ɵɵpureFunction1(9, _c9, i0.ɵɵpureFunction2(6, _c8, ctx_r3.showTransitionOptions, ctx_r3.hideTransitionOptions)));\n i0.ɵɵattribute(\"data-pc-section\", \"panel\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.headerTemplate || ctx_r3._headerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.contentTemplate || ctx_r3._contentTemplate)(\"ngIfElse\", content_r10);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.footerTemplate || ctx_r3._footerTemplate);\n} }\n/**\n * Password directive.\n * @group Components\n */\n// strengthClass(meter: any) {\n// return `p-password-meter-label p-password-meter${meter?.strength ? `-${meter.strength}` : ''}`;\n// }\nclass PasswordDirective extends BaseComponent {\n zone;\n /**\n * Text to prompt password entry. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n promptLabel = 'Enter a password';\n /**\n * Text for a weak password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n weakLabel = 'Weak';\n /**\n * Text for a medium password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n mediumLabel = 'Medium';\n /**\n * Text for a strong password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n strongLabel = 'Strong';\n /**\n * Whether to show the strength indicator or not.\n * @group Props\n */\n feedback = true;\n /**\n * Sets the visibility of the password field.\n * @group Props\n */\n set showPassword(show) {\n this.el.nativeElement.type = show ? 'text' : 'password';\n }\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant = 'outlined';\n /**\n * Spans 100% width of the container when enabled.\n * @group Props\n */\n fluid = false;\n panel;\n meter;\n info;\n filled;\n content;\n label;\n scrollHandler;\n documentResizeListener;\n _componentStyle = inject(PasswordStyle);\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return this.fluid || !!fluidComponent;\n }\n constructor(zone) {\n super();\n this.zone = zone;\n }\n ngDoCheck() {\n this.updateFilledState();\n }\n onInput(e) {\n this.updateFilledState();\n }\n updateFilledState() {\n this.filled = this.el.nativeElement.value && this.el.nativeElement.value.length;\n }\n createPanel() {\n if (isPlatformBrowser(this.platformId)) {\n this.panel = this.renderer.createElement('div');\n this.renderer.addClass(this.panel, 'p-password-overlay');\n this.renderer.addClass(this.panel, 'p-component');\n this.content = this.renderer.createElement('div');\n this.renderer.addClass(this.content, 'p-password-content');\n this.renderer.appendChild(this.panel, this.content);\n this.meter = this.renderer.createElement('div');\n this.renderer.addClass(this.meter, 'p-password-meter');\n this.renderer.appendChild(this.content, this.meter);\n this.label = this.renderer.createElement('div');\n this.renderer.addClass(this.label, 'p-password-meter-label');\n this.renderer.appendChild(this.meter, this.label);\n this.info = this.renderer.createElement('div');\n this.renderer.addClass(this.info, 'p-password-meter-text');\n this.renderer.setProperty(this.info, 'textContent', this.promptLabel);\n this.renderer.appendChild(this.content, this.info);\n this.renderer.setStyle(this.panel, 'minWidth', `${this.el.nativeElement.offsetWidth}px`);\n this.renderer.appendChild(document.body, this.panel);\n this.updateMeter();\n }\n }\n showOverlay() {\n if (this.feedback) {\n if (!this.panel) {\n this.createPanel();\n }\n this.renderer.setStyle(this.panel, 'zIndex', String(++DomHandler.zindex));\n this.renderer.setStyle(this.panel, 'display', 'block');\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n addClass(this.panel, 'p-connected-overlay-visible');\n this.bindScrollListener();\n this.bindDocumentResizeListener();\n }, 1);\n });\n absolutePosition(this.panel, this.el.nativeElement);\n }\n }\n hideOverlay() {\n if (this.feedback && this.panel) {\n addClass(this.panel, 'p-connected-overlay-hidden');\n removeClass(this.panel, 'p-connected-overlay-visible');\n this.unbindScrollListener();\n this.unbindDocumentResizeListener();\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.ngOnDestroy();\n }, 150);\n });\n }\n }\n onFocus() {\n this.showOverlay();\n }\n onBlur() {\n this.hideOverlay();\n }\n labelSignal = signal('');\n onKeyup(e) {\n if (this.feedback) {\n let value = e.target.value, label = null, meterPos = null;\n if (value.length === 0) {\n label = this.promptLabel;\n meterPos = '0px 0px';\n }\n else {\n var score = this.testStrength(value);\n if (score < 30) {\n label = this.weakLabel;\n meterPos = '0px -10px';\n }\n else if (score >= 30 && score < 80) {\n label = this.mediumLabel;\n meterPos = '0px -20px';\n }\n else if (score >= 80) {\n label = this.strongLabel;\n meterPos = '0px -30px';\n }\n this.labelSignal.set(label);\n this.updateMeter();\n }\n if (!this.panel || !hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.showOverlay();\n }\n this.renderer.setStyle(this.meter, 'backgroundPosition', meterPos);\n this.info.textContent = label;\n }\n }\n updateMeter() {\n if (this.labelSignal()) {\n const label = this.labelSignal();\n const strengthClass = this.strengthClass(label.toLowerCase());\n const width = this.getWidth(label.toLowerCase());\n this.renderer.addClass(this.meter, strengthClass);\n this.renderer.setStyle(this.meter, 'width', width);\n this.info.textContent = label;\n }\n }\n getWidth(label) {\n return label === 'weak' ? '33.33%' : label === 'medium' ? '66.66%' : label === 'strong' ? '100%' : '';\n }\n strengthClass(label) {\n return `p-password-meter${label ? `-${label}` : ''}`;\n }\n testStrength(str) {\n let grade = 0;\n let val;\n val = str.match('[0-9]');\n grade += this.normalize(val ? val.length : 1 / 4, 1) * 25;\n val = str.match('[a-zA-Z]');\n grade += this.normalize(val ? val.length : 1 / 2, 3) * 10;\n val = str.match('[!@#$%^&*?_~.,;=]');\n grade += this.normalize(val ? val.length : 1 / 6, 1) * 35;\n val = str.match('[A-Z]');\n grade += this.normalize(val ? val.length : 1 / 6, 1) * 30;\n grade *= str.length / 8;\n return grade > 100 ? 100 : grade;\n }\n normalize(x, y) {\n let diff = x - y;\n if (diff <= 0)\n return x / y;\n else\n return 1 + 0.5 * (x / (x + y / 4));\n }\n get disabled() {\n return this.el.nativeElement.disabled;\n }\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {\n if (hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.hideOverlay();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n bindDocumentResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.documentResizeListener) {\n const window = this.document.defaultView;\n this.documentResizeListener = this.renderer.listen(window, 'resize', this.onWindowResize.bind(this));\n }\n }\n }\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n onWindowResize() {\n if (!isTouchDevice()) {\n this.hideOverlay();\n }\n }\n ngOnDestroy() {\n if (this.panel) {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n this.unbindDocumentResizeListener();\n this.renderer.removeChild(this.document.body, this.panel);\n this.panel = null;\n this.meter = null;\n this.info = null;\n }\n super.ngOnDestroy();\n }\n static ɵfac = function PasswordDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PasswordDirective)(i0.ɵɵdirectiveInject(i0.NgZone)); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PasswordDirective, selectors: [[\"\", \"pPassword\", \"\"]], hostAttrs: [1, \"p-password\", \"p-inputtext\", \"p-component\", \"p-inputwrapper\"], hostVars: 6, hostBindings: function PasswordDirective_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"input\", function PasswordDirective_input_HostBindingHandler($event) { return ctx.onInput($event); })(\"focus\", function PasswordDirective_focus_HostBindingHandler() { return ctx.onFocus(); })(\"blur\", function PasswordDirective_blur_HostBindingHandler() { return ctx.onBlur(); })(\"keyup\", function PasswordDirective_keyup_HostBindingHandler($event) { return ctx.onKeyup($event); });\n } if (rf & 2) {\n i0.ɵɵclassProp(\"p-inputwrapper-filled\", ctx.filled)(\"p-variant-filled\", ctx.variant === \"filled\" || ctx.config.inputStyle() === \"filled\" || ctx.config.inputVariant() === \"filled\")(\"p-password-fluid-directive\", ctx.hasFluid);\n } }, inputs: { promptLabel: \"promptLabel\", weakLabel: \"weakLabel\", mediumLabel: \"mediumLabel\", strongLabel: \"strongLabel\", feedback: [2, \"feedback\", \"feedback\", booleanAttribute], showPassword: \"showPassword\", variant: \"variant\", fluid: [2, \"fluid\", \"fluid\", booleanAttribute] }, standalone: true, features: [i0.ɵɵProvidersFeature([PasswordStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PasswordDirective, [{\n type: Directive,\n args: [{\n selector: '[pPassword]',\n standalone: true,\n host: {\n class: 'p-password p-inputtext p-component p-inputwrapper',\n '[class.p-inputwrapper-filled]': 'filled',\n '[class.p-variant-filled]': 'variant === \"filled\" || config.inputStyle() === \"filled\" || config.inputVariant() === \"filled\"',\n '[class.p-password-fluid-directive]': 'hasFluid'\n },\n providers: [PasswordStyle]\n }]\n }], () => [{ type: i0.NgZone }], { promptLabel: [{\n type: Input\n }], weakLabel: [{\n type: Input\n }], mediumLabel: [{\n type: Input\n }], strongLabel: [{\n type: Input\n }], feedback: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showPassword: [{\n type: Input\n }], variant: [{\n type: Input\n }], fluid: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onInput: [{\n type: HostListener,\n args: ['input', ['$event']]\n }], onFocus: [{\n type: HostListener,\n args: ['focus']\n }], onBlur: [{\n type: HostListener,\n args: ['blur']\n }], onKeyup: [{\n type: HostListener,\n args: ['keyup', ['$event']]\n }] }); })();\nclass MapperPipe {\n transform(value, mapper, ...args) {\n return mapper(value, ...args);\n }\n static ɵfac = function MapperPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MapperPipe)(); };\n static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: \"mapper\", type: MapperPipe, pure: true, standalone: true });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MapperPipe, [{\n type: Pipe,\n args: [{\n name: 'mapper',\n pure: true,\n standalone: true\n }]\n }], null, null); })();\nconst Password_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Password),\n multi: true\n};\n/**\n * Password displays strength indicator for password fields.\n * @group Components\n */\nclass Password extends BaseComponent {\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n ariaLabel;\n /**\n * Whether the component should span the full width of its parent.\n * @group Props\n */\n fluid;\n /**\n * Specifies one or more IDs in the DOM that labels the input field.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Label of the input for accessibility.\n * @group Props\n */\n label;\n /**\n * Indicates whether the component is disabled or not.\n * @group Props\n */\n disabled;\n /**\n * Text to prompt password entry. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n promptLabel;\n /**\n * Regex value for medium regex.\n * @group Props\n */\n mediumRegex = '^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})';\n /**\n * Regex value for strong regex.\n * @group Props\n */\n strongRegex = '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})';\n /**\n * Text for a weak password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n weakLabel;\n /**\n * Text for a medium password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n mediumLabel;\n /**\n * specifies the maximum number of characters allowed in the input element.\n * @group Props\n */\n maxLength;\n /**\n * Text for a strong password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n strongLabel;\n /**\n * Identifier of the accessible input element.\n * @group Props\n */\n inputId;\n /**\n * Whether to show the strength indicator or not.\n * @group Props\n */\n feedback = true;\n /**\n * Id of the element or \"body\" for document where the overlay should be appended to.\n * @group Props\n */\n appendTo;\n /**\n * Whether to show an icon to display the password as plain text.\n * @group Props\n */\n toggleMask;\n /**\n * Defines the size of the component.\n * @group Props\n */\n size;\n /**\n * Style class of the input field.\n * @group Props\n */\n inputStyleClass;\n /**\n * Style class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Inline style of the input field.\n * @group Props\n */\n inputStyle;\n /**\n * Transition options of the show animation.\n * @group Props\n */\n showTransitionOptions = '.12s cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation.\n * @group Props\n */\n hideTransitionOptions = '.1s linear';\n /**\n * Specify automated assistance in filling out password by browser.\n * @group Props\n */\n autocomplete;\n /**\n * Advisory information to display on input.\n * @group Props\n */\n placeholder;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n showClear = false;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant = 'outlined';\n /**\n * Callback to invoke when the component receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onFocus = new EventEmitter();\n /**\n * Callback to invoke when the component loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onBlur = new EventEmitter();\n /**\n * Callback to invoke when clear button is clicked.\n * @group Emits\n */\n onClear = new EventEmitter();\n input;\n contentTemplate;\n footerTemplate;\n headerTemplate;\n clearIconTemplate;\n hideIconTemplate;\n showIconTemplate;\n templates;\n _contentTemplate;\n _footerTemplate;\n _headerTemplate;\n _clearIconTemplate;\n _hideIconTemplate;\n _showIconTemplate;\n overlayVisible = false;\n meter;\n infoText;\n focused = false;\n unmasked = false;\n mediumCheckRegExp;\n strongCheckRegExp;\n resizeListener;\n scrollHandler;\n overlay;\n value = null;\n onModelChange = () => { };\n onModelTouched = () => { };\n translationSubscription;\n _componentStyle = inject(PasswordStyle);\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return this.fluid || !!fluidComponent;\n }\n overlayService = inject(OverlayService);\n ngOnInit() {\n super.ngOnInit();\n this.infoText = this.promptText();\n this.mediumCheckRegExp = new RegExp(this.mediumRegex);\n this.strongCheckRegExp = new RegExp(this.strongRegex);\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.updateUI(this.value || '');\n });\n }\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this._contentTemplate = item.template;\n break;\n case 'header':\n this._headerTemplate = item.template;\n break;\n case 'footer':\n this._footerTemplate = item.template;\n break;\n case 'clearicon':\n this._clearIconTemplate = item.template;\n break;\n case 'hideicon':\n this._hideIconTemplate = item.template;\n break;\n case 'showicon':\n this._showIconTemplate = item.template;\n break;\n default:\n this._contentTemplate = item.template;\n break;\n }\n });\n }\n onAnimationStart(event) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n this.appendContainer();\n this.alignOverlay();\n this.bindScrollListener();\n this.bindResizeListener();\n break;\n case 'void':\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.overlay = null;\n break;\n }\n }\n onAnimationEnd(event) {\n switch (event.toState) {\n case 'void':\n ZIndexUtils.clear(event.element);\n break;\n }\n }\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n this.renderer.appendChild(this.document.body, this.overlay);\n else\n this.document.getElementById(this.appendTo).appendChild(this.overlay);\n }\n }\n alignOverlay() {\n if (this.appendTo) {\n this.overlay.style.minWidth = getOuterWidth(this.input.nativeElement) + 'px';\n absolutePosition(this.overlay, this.input.nativeElement);\n }\n else {\n relativePosition(this.overlay, this.input.nativeElement);\n }\n }\n onInput(event) {\n this.value = event.target.value;\n this.onModelChange(this.value);\n }\n onInputFocus(event) {\n this.focused = true;\n if (this.feedback) {\n this.overlayVisible = true;\n }\n this.onFocus.emit(event);\n }\n onInputBlur(event) {\n this.focused = false;\n if (this.feedback) {\n this.overlayVisible = false;\n }\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n onKeyUp(event) {\n if (this.feedback) {\n let value = event.target.value;\n this.updateUI(value);\n if (event.code === 'Escape') {\n this.overlayVisible && (this.overlayVisible = false);\n return;\n }\n if (!this.overlayVisible) {\n this.overlayVisible = true;\n }\n }\n }\n updateUI(value) {\n let label = null;\n let meter = null;\n switch (this.testStrength(value)) {\n case 1:\n label = this.weakText();\n meter = {\n strength: 'weak',\n width: '33.33%'\n };\n break;\n case 2:\n label = this.mediumText();\n meter = {\n strength: 'medium',\n width: '66.66%'\n };\n break;\n case 3:\n label = this.strongText();\n meter = {\n strength: 'strong',\n width: '100%'\n };\n break;\n default:\n label = this.promptText();\n meter = null;\n break;\n }\n this.meter = meter;\n this.infoText = label;\n }\n onMaskToggle() {\n this.unmasked = !this.unmasked;\n }\n onOverlayClick(event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\n }\n testStrength(str) {\n let level = 0;\n if (this.strongCheckRegExp.test(str))\n level = 3;\n else if (this.mediumCheckRegExp.test(str))\n level = 2;\n else if (str.length)\n level = 1;\n return level;\n }\n writeValue(value) {\n if (value === undefined)\n this.value = null;\n else\n this.value = value;\n if (this.feedback)\n this.updateUI(this.value || '');\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n bindScrollListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.input.nativeElement, () => {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n }\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.resizeListener) {\n const window = this.document.defaultView;\n this.resizeListener = this.renderer.listen(window, 'resize', () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.overlayVisible = false;\n }\n });\n }\n }\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n unbindResizeListener() {\n if (this.resizeListener) {\n this.resizeListener();\n this.resizeListener = null;\n }\n }\n containerClass(toggleMask) {\n return { 'p-password p-component p-inputwrapper': true, 'p-input-icon-right': toggleMask };\n }\n get rootClass() {\n return this._componentStyle.classes.root({ instance: this });\n }\n inputFieldClass(disabled) {\n return { 'p-password-input': true, 'p-disabled': disabled };\n }\n strengthClass(meter) {\n return `p-password-meter-label p-password-meter${meter?.strength ? `-${meter.strength}` : ''}`;\n }\n filled() {\n return this.value != null && this.value.toString().length > 0;\n }\n promptText() {\n return this.promptLabel || this.getTranslation(TranslationKeys.PASSWORD_PROMPT);\n }\n weakText() {\n return this.weakLabel || this.getTranslation(TranslationKeys.WEAK);\n }\n mediumText() {\n return this.mediumLabel || this.getTranslation(TranslationKeys.MEDIUM);\n }\n strongText() {\n return this.strongLabel || this.getTranslation(TranslationKeys.STRONG);\n }\n restoreAppend() {\n if (this.overlay && this.appendTo) {\n if (this.appendTo === 'body')\n this.renderer.removeChild(this.document.body, this.overlay);\n else\n this.document.getElementById(this.appendTo).removeChild(this.overlay);\n }\n }\n inputType(unmasked) {\n return unmasked ? 'text' : 'password';\n }\n getTranslation(option) {\n return this.config.getTranslation(option);\n }\n clear() {\n this.value = null;\n this.onModelChange(this.value);\n this.writeValue(this.value);\n this.onClear.emit();\n }\n ngOnDestroy() {\n if (this.overlay) {\n ZIndexUtils.clear(this.overlay);\n this.overlay = null;\n }\n this.restoreAppend();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵPassword_BaseFactory; return function Password_Factory(__ngFactoryType__) { return (ɵPassword_BaseFactory || (ɵPassword_BaseFactory = i0.ɵɵgetInheritedFactory(Password)))(__ngFactoryType__ || Password); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Password, selectors: [[\"p-password\"]], contentQueries: function Password_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, _c1, 4);\n i0.ɵɵcontentQuery(dirIndex, _c2, 4);\n i0.ɵɵcontentQuery(dirIndex, _c3, 4);\n i0.ɵɵcontentQuery(dirIndex, _c4, 4);\n i0.ɵɵcontentQuery(dirIndex, _c5, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.clearIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.hideIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.showIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, viewQuery: function Password_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c6, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);\n } }, inputs: { ariaLabel: \"ariaLabel\", fluid: [2, \"fluid\", \"fluid\", booleanAttribute], ariaLabelledBy: \"ariaLabelledBy\", label: \"label\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], promptLabel: \"promptLabel\", mediumRegex: \"mediumRegex\", strongRegex: \"strongRegex\", weakLabel: \"weakLabel\", mediumLabel: \"mediumLabel\", maxLength: [2, \"maxLength\", \"maxLength\", numberAttribute], strongLabel: \"strongLabel\", inputId: \"inputId\", feedback: [2, \"feedback\", \"feedback\", booleanAttribute], appendTo: \"appendTo\", toggleMask: [2, \"toggleMask\", \"toggleMask\", booleanAttribute], size: \"size\", inputStyleClass: \"inputStyleClass\", styleClass: \"styleClass\", style: \"style\", inputStyle: \"inputStyle\", showTransitionOptions: \"showTransitionOptions\", hideTransitionOptions: \"hideTransitionOptions\", autocomplete: \"autocomplete\", placeholder: \"placeholder\", showClear: [2, \"showClear\", \"showClear\", booleanAttribute], autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute], variant: \"variant\" }, outputs: { onFocus: \"onFocus\", onBlur: \"onBlur\", onClear: \"onClear\" }, standalone: true, features: [i0.ɵɵProvidersFeature([Password_VALUE_ACCESSOR, PasswordStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 8, vars: 33, consts: [[\"input\", \"\"], [\"overlay\", \"\"], [\"content\", \"\"], [3, \"ngClass\", \"ngStyle\"], [\"pInputText\", \"\", 3, \"input\", \"focus\", \"blur\", \"keyup\", \"disabled\", \"pSize\", \"ngClass\", \"ngStyle\", \"value\", \"variant\", \"pAutoFocus\"], [4, \"ngIf\"], [\"class\", \"p-password-overlay p-component\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"p-password-clear-icon\", 3, \"click\", 4, \"ngIf\"], [1, \"p-password-clear-icon\", 3, \"click\"], [4, \"ngTemplateOutlet\"], [\"class\", \"p-password-toggle-mask-icon p-password-mask-icon\", 3, \"click\", 4, \"ngIf\"], [3, \"click\", 4, \"ngIf\"], [1, \"p-password-toggle-mask-icon\", \"p-password-mask-icon\", 3, \"click\"], [3, \"click\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"p-password-overlay\", \"p-component\", 3, \"click\"], [4, \"ngIf\", \"ngIfElse\"], [1, \"p-password-content\"], [1, \"p-password-meter\"], [1, \"p-password-meter-text\"]], template: function Password_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"input\", 4, 0);\n i0.ɵɵpipe(3, \"mapper\");\n i0.ɵɵpipe(4, \"mapper\");\n i0.ɵɵlistener(\"input\", function Password_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInput($event)); })(\"focus\", function Password_Template_input_focus_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputFocus($event)); })(\"blur\", function Password_Template_input_blur_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputBlur($event)); })(\"keyup\", function Password_Template_input_keyup_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onKeyUp($event)); });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, Password_ng_container_5_Template, 4, 3, \"ng-container\", 5)(6, Password_ng_container_6_Template, 3, 2, \"ng-container\", 5)(7, Password_div_7_Template, 7, 11, \"div\", 6);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", ctx.rootClass)(\"ngStyle\", ctx.style);\n i0.ɵɵattribute(\"data-pc-name\", \"password\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance();\n i0.ɵɵclassMap(ctx.inputStyleClass);\n i0.ɵɵproperty(\"disabled\", ctx.disabled)(\"pSize\", ctx.size)(\"ngClass\", i0.ɵɵpipeBind2(3, 27, ctx.disabled, ctx.inputFieldClass))(\"ngStyle\", ctx.inputStyle)(\"value\", ctx.value)(\"variant\", ctx.variant)(\"pAutoFocus\", ctx.autofocus);\n i0.ɵɵattribute(\"label\", ctx.label)(\"aria-label\", ctx.ariaLabel)(\"aria-labelledBy\", ctx.ariaLabelledBy)(\"id\", ctx.inputId)(\"type\", i0.ɵɵpipeBind2(4, 30, ctx.unmasked, ctx.inputType))(\"placeholder\", ctx.placeholder)(\"autocomplete\", ctx.autocomplete)(\"maxlength\", ctx.maxLength)(\"data-pc-section\", \"input\");\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngIf\", ctx.showClear && ctx.value != null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.toggleMask);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.overlayVisible);\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, InputText, AutoFocus, TimesIcon, EyeSlashIcon, EyeIcon, MapperPipe, SharedModule], encapsulation: 2, data: { animation: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}')]), transition(':leave', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))])])] }, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Password, [{\n type: Component,\n args: [{\n selector: 'p-password',\n standalone: true,\n imports: [CommonModule, InputText, AutoFocus, TimesIcon, EyeSlashIcon, EyeIcon, MapperPipe, SharedModule],\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
\n
\n
\n
{{ infoText }}
\n
\n
\n \n
\n \n `,\n animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}')]), transition(':leave', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))])])],\n providers: [Password_VALUE_ACCESSOR, PasswordStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], null, { ariaLabel: [{\n type: Input\n }], fluid: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], ariaLabelledBy: [{\n type: Input\n }], label: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], promptLabel: [{\n type: Input\n }], mediumRegex: [{\n type: Input\n }], strongRegex: [{\n type: Input\n }], weakLabel: [{\n type: Input\n }], mediumLabel: [{\n type: Input\n }], maxLength: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], strongLabel: [{\n type: Input\n }], inputId: [{\n type: Input\n }], feedback: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], appendTo: [{\n type: Input\n }], toggleMask: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], size: [{\n type: Input\n }], inputStyleClass: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], style: [{\n type: Input\n }], inputStyle: [{\n type: Input\n }], showTransitionOptions: [{\n type: Input\n }], hideTransitionOptions: [{\n type: Input\n }], autocomplete: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], showClear: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], variant: [{\n type: Input\n }], onFocus: [{\n type: Output\n }], onBlur: [{\n type: Output\n }], onClear: [{\n type: Output\n }], input: [{\n type: ViewChild,\n args: ['input']\n }], contentTemplate: [{\n type: ContentChild,\n args: ['content', { descendants: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: ['footer', { descendants: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: ['header', { descendants: false }]\n }], clearIconTemplate: [{\n type: ContentChild,\n args: ['clearicon', { descendants: false }]\n }], hideIconTemplate: [{\n type: ContentChild,\n args: ['headericon', { descendants: false }]\n }], showIconTemplate: [{\n type: ContentChild,\n args: ['showicon', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Password, { className: \"Password\" }); })();\nclass PasswordModule {\n static ɵfac = function PasswordModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PasswordModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PasswordModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Password, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PasswordModule, [{\n type: NgModule,\n args: [{\n imports: [Password, PasswordDirective, SharedModule],\n exports: [PasswordDirective, Password, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(PasswordModule, { imports: [Password, PasswordDirective, SharedModule], exports: [PasswordDirective, Password, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MapperPipe, Password, PasswordClasses, PasswordDirective, PasswordModule, PasswordStyle, Password_VALUE_ACCESSOR };\n","
\r\n\r\n
\r\n \r\n\r\n
\r\n
{{'password-change-shared.password-requirements-part1' | translate}}
\r\n
{{'password-change-shared.password-requirements-part2' | translate}}
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n {{getErrorMessage(newPasswordCtrl)}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{getErrorMessage(newPasswordRepeatCtrl)}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n ValidationErrors,\r\n ValidatorFn,\r\n Validators\r\n} from \"@angular/forms\";\r\nimport {ActivatedRoute} from \"@angular/router\";\r\n\r\nimport {fromEvent} from \"rxjs\";\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\nimport {SetPasswordRequest} from \"@commons/models/remote.request/SetPasswordRequest\";\r\nimport {CustomValidators} from \"@commons/validators/validators\";\r\nimport {WebAccessService} from '@commons/services/web.access/web-access.service';\r\n\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\nimport {UserHttpService} from \"@shared/services-http/user-http.service\";\r\n\r\n@Component({\r\n selector: 'app-change-password',\r\n templateUrl: './change-password.component.html',\r\n styleUrls: ['./change-password.component.scss']\r\n})\r\nexport class ChangePasswordComponent extends BaseComponent implements OnInit {\r\n\r\n @Output() passwordChanged = new EventEmitter();\r\n\r\n private readonly oldPasswordIncorrectErrorCode = 9;\r\n private readonly requiredErrorKey = 'required';\r\n private readonly weekPasswordErrorKey = 'weekPassword';\r\n private readonly passwordsNotEqualErrorKey = 'passwordsNotEqual';\r\n private readonly oldPasswordIncorrectErrorKey = 'oldPasswordIncorrect';\r\n\r\n fieldIsRequiredErrorMessage = '';\r\n passwordRequirementsErrorMessage = '';\r\n passwordsNotEqualErrorMessage = '';\r\n oldPasswordErrorMessage = '';\r\n\r\n form!: FormGroup;\r\n isLoading = false;\r\n oldPasswordError = false;\r\n\r\n oldPasswordCtrl = new FormControl('', Validators.compose([Validators.required, this.oldPasswordValidator()]));\r\n newPasswordCtrl = new FormControl('', Validators.compose([Validators.required, CustomValidators.passwordStrength, this.passwordsEqualValidator()]));\r\n newPasswordRepeatCtrl = new FormControl('', Validators.compose([Validators.required, CustomValidators.passwordStrength, this.passwordsEqualValidator()]));\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private webAccessService: WebAccessService,\r\n private formBuilder: FormBuilder,\r\n private userHttpService: UserHttpService,\r\n private translateService: TranslateService\r\n ) {\r\n super();\r\n this.setTranslations();\r\n }\r\n\r\n private setTranslations() {\r\n this.translateService.get('errors.field-is-required').subscribe(t => this.fieldIsRequiredErrorMessage = t);\r\n this.translateService.get('password-change-shared.password-requirements-error').subscribe(t => this.passwordRequirementsErrorMessage = t);\r\n this.translateService.get('password-change-shared.passwords-not-equal-error').subscribe(t => this.passwordsNotEqualErrorMessage = t);\r\n this.translateService.get('change-password.old-password').subscribe(t => this.oldPasswordErrorMessage = t);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createForm();\r\n this.subscribeToFormValueChanges();\r\n this.subscribeToKeyboardEnter();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n getErrorMessageElementId(controlName: string, control: AbstractControl): string {\r\n let errorName = '';\r\n\r\n if (control.hasError(this.requiredErrorKey))\r\n errorName = this.requiredErrorKey;\r\n\r\n else if (control.hasError(this.weekPasswordErrorKey))\r\n errorName = this.weekPasswordErrorKey;\r\n\r\n else if (control.hasError(this.passwordsNotEqualErrorKey))\r\n errorName = this.passwordsNotEqualErrorKey;\r\n\r\n else if (control.hasError(this.oldPasswordIncorrectErrorKey))\r\n errorName = this.oldPasswordIncorrectErrorKey;\r\n\r\n return `${controlName}-error-${errorName}`;\r\n }\r\n\r\n getErrorMessage(control: AbstractControl): string {\r\n if (control.hasError(this.requiredErrorKey))\r\n return this.fieldIsRequiredErrorMessage;\r\n\r\n if (control.hasError(this.weekPasswordErrorKey))\r\n return this.passwordRequirementsErrorMessage;\r\n\r\n if (control.hasError(this.passwordsNotEqualErrorKey))\r\n return this.passwordsNotEqualErrorMessage;\r\n\r\n if (control.hasError(this.oldPasswordIncorrectErrorKey))\r\n return this.oldPasswordErrorMessage;\r\n\r\n return \"\";\r\n }\r\n\r\n onSave() {\r\n this.form.markAllAsTouched();\r\n this.oldPasswordError = false;\r\n this.oldPasswordCtrl.updateValueAndValidity();\r\n\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n\r\n this.isLoading = true;\r\n this.userHttpService.setUserPassword(this.getSetPasswordRequest())\r\n .subscribe({\r\n next: (result) => {\r\n if (result.ErrorCode === this.oldPasswordIncorrectErrorCode)\r\n this.afterChangePasswordError();\r\n else\r\n this.afterChangePassword();\r\n },\r\n });\r\n }\r\n\r\n private getSetPasswordRequest(): SetPasswordRequest {\r\n const model = {\r\n OldPassword: this.oldPasswordCtrl.value,\r\n NewPassword: this.newPasswordCtrl.value,\r\n } as SetPasswordRequest;\r\n return model;\r\n }\r\n\r\n private afterChangePasswordError() {\r\n this.isLoading = false;\r\n this.oldPasswordError = true;\r\n this.oldPasswordCtrl.setErrors({oldPasswordIncorrect: true});\r\n this.oldPasswordCtrl.updateValueAndValidity({emitEvent: false});\r\n }\r\n\r\n private afterChangePassword() {\r\n this.isLoading = false;\r\n this.passwordChanged.emit(true);\r\n }\r\n\r\n private passwordsEqualValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n\r\n const arePasswordsNotEqual =\r\n this.form != null &&\r\n this.form.controls != null &&\r\n this.newPasswordCtrl.value !== this.newPasswordRepeatCtrl.value\r\n\r\n return arePasswordsNotEqual ? {passwordsNotEqual: true} : null;\r\n };\r\n }\r\n\r\n private oldPasswordValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n return this.oldPasswordError ? {oldPasswordIncorrect: true} : null;\r\n };\r\n }\r\n\r\n private subscribeToFormValueChanges() {\r\n this.addToUnsubscribe(this.form.valueChanges.subscribe(newValue => {\r\n this.arePasswordsNotEqual(newValue);\r\n }));\r\n }\r\n\r\n private arePasswordsNotEqual(newValue: string) {\r\n const notEqual = this.newPasswordCtrl.value !== this.newPasswordRepeatCtrl.value;\r\n\r\n this.newPasswordCtrl.setErrors({passwordsNotEqual: notEqual ?? null});\r\n this.newPasswordCtrl.updateValueAndValidity({emitEvent: false});\r\n\r\n this.newPasswordRepeatCtrl.setErrors({passwordsNotEqual: notEqual ?? null});\r\n this.newPasswordRepeatCtrl.updateValueAndValidity({emitEvent: false});\r\n }\r\n\r\n private createForm() {\r\n this.form = this.formBuilder.group({\r\n oldPassword: this.oldPasswordCtrl,\r\n newPassword: this.newPasswordCtrl,\r\n newPasswordRepeat: this.newPasswordRepeatCtrl,\r\n });\r\n }\r\n\r\n private subscribeToKeyboardEnter() {\r\n this.addToUnsubscribe(fromEvent(document, 'keyup').subscribe(e => {\r\n const event = e as KeyboardEvent;\r\n if (event.key === 'Enter') {\r\n this.onSave();\r\n }\r\n }));\r\n }\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\n\r\nimport { User } from '@commons/models/domain/User';\r\nimport { UserHttpService } from '@shared/services-http/user-http.service';\r\n\r\n@Component({\r\n selector: 'app-account-data-form',\r\n templateUrl: './account-data-form.component.html',\r\n styleUrls: ['./account-data-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AccountDataFormComponent implements OnInit {\r\n\r\n public form: FormGroup = new FormGroup({\r\n firstName: new FormControl(''),\r\n lastName: new FormControl(''),\r\n phone: new FormControl(''),\r\n email: new FormControl(''),\r\n });\r\n\r\n get user(): User | undefined {\r\n return this.userHttpService?.userViewModel?.user;\r\n }\r\n\r\n constructor(\r\n private userHttpService: UserHttpService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.setData();\r\n }\r\n\r\n public setData(): void {\r\n this.form.patchValue({\r\n firstName: this.user?.FirstName,\r\n lastName: this.user?.LastName,\r\n phone: this.user?.Phone,\r\n email: this.user?.Email,\r\n });\r\n this.form.disable();\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
\r\n \r\n
","
\r\n\r\n
\r\n {{'user-profile.header' | translate}}\r\n \r\n
\r\n\r\n
\r\n \r\n {{'user-profile.password-change' | translate}}\r\n
\r\n\r\n
\r\n \r\n {{'Dane konta' | translate}}\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n {{'user-profile.password-changed' | translate}}\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 \r\n\r\n \r\n\r\n \r\n\r\n
\r\n","import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\nimport {animate, sequence, style, transition, trigger} from \"@angular/animations\";\r\n\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\n\r\n@Component({\r\n selector: 'app-profile',\r\n templateUrl: './profile.component.html',\r\n styles: [],\r\n animations: [\r\n trigger('openClose', [\r\n transition(\":enter\", [style({transform: 'translateX(264px)'}), animate('0.1s')]),\r\n transition(\":leave\", [sequence([style({right: '0px'}), animate('0.1s', style({right: '-264px'}))])]),\r\n ])\r\n ]\r\n})\r\nexport class ProfileComponent implements OnInit, OnChanges {\r\n\r\n @Input() isVisible = false;\r\n\r\n isPasswordChangeVisible = false;\r\n wasPasswordChanged = false;\r\n isAccountDataVisible = false;\r\n messageIntervalWidthPercent = 0;\r\n\r\n constructor(\r\n private newNavigationService: NewNavigationService,\r\n ) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // zmiana wybranego modułu\r\n this.isPasswordChangeVisible = !this.isVisible;\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onNavigateToPasswordChange() {\r\n this.isPasswordChangeVisible = !this.isPasswordChangeVisible;\r\n }\r\n\r\n public onRedirectToAccountData(): void {\r\n this.isAccountDataVisible = true;\r\n }\r\n\r\n onNavigateToMain() {\r\n this.newNavigationService.toMainPanel();\r\n }\r\n\r\n onLogout() {\r\n this.newNavigationService.toLogout();\r\n }\r\n\r\n onPasswordChanged(passwordChanged: boolean) {\r\n this.isPasswordChangeVisible = false;\r\n this.wasPasswordChanged = passwordChanged;\r\n this.runMessageInterval();\r\n }\r\n\r\n private runMessageInterval() {\r\n this.messageIntervalWidthPercent = 100;\r\n\r\n const interval = setInterval(() => {\r\n if (this.messageIntervalWidthPercent <= 0) {\r\n this.messageIntervalWidthPercent = 0;\r\n this.wasPasswordChanged = false;\r\n clearInterval(interval);\r\n return;\r\n }\r\n this.messageIntervalWidthPercent -= 1;\r\n }, 100);\r\n }\r\n\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\nimport {NewNavigationService} from '@shared/services/new-navigation.service';\r\n\r\n@Component({\r\n selector: 'app-help',\r\n templateUrl: './help.component.html',\r\n})\r\nexport class HelpComponent implements OnInit {\r\n\r\n @Input() isVisible = false;\r\n\r\n constructor(\r\n private newNavigationService: NewNavigationService,\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onKnowledgeDatabase() {\r\n window.open('https://confluence.tekom.pl/display/TES', '_blank')!.focus();\r\n }\r\n\r\n onRemoteHelp() {\r\n window.open('https://get.teamviewer.com/6rhbgm7', '_blank')!.focus();\r\n }\r\n\r\n onClose() {\r\n this.newNavigationService.toMainPanel();\r\n }\r\n}\r\n","
\r\n {{'help.help-header' | translate}}\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
{{'help.issue-question' | translate}}
\r\n\r\n
\r\n
{{'help.goto-info-part1' | translate}}
\r\n
{{'help.goto-info-part2' | translate}}
\r\n
\r\n\r\n \r\n\r\n
{{'help.need-help' | translate}}
\r\n\r\n
\r\n
{{'help.write-or-call' | translate}}
\r\n \r\n
\r\n
\r\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import {isDevMode} from \"@angular/core\";\r\n\r\nimport {isAfter, isBefore, parseISO} from \"date-fns\";\r\n\r\nimport {Vehicle} from \"@commons/models/domain/Vehicle\";\r\n\r\nimport {DataSharingLink} from \"@data-sharing/models/data-sharing-link\";\r\n\r\nexport class LinkViewModel {\r\n\r\n get isActive(): boolean {\r\n if (!this.link.startDate && !this.link.endDate)\r\n return true;\r\n\r\n const currentDate = new Date();\r\n const isAfterEndDate = this.link.endDate ? isAfter(currentDate, parseISO(this.link.endDate)) : false;\r\n const isBeforeStartDate = this.link.startDate ? isBefore(currentDate, parseISO(this.link.startDate)) : false;\r\n\r\n return !(isAfterEndDate || isBeforeStartDate);\r\n }\r\n\r\n get url(): string {\r\n return this.getLinkBeginning() + this.link.token;\r\n }\r\n\r\n get name(): string {\r\n return this.link?.name;\r\n }\r\n\r\n get startDate(): Date {\r\n const result = new Date(this.link.startDate);\r\n return result;\r\n }\r\n\r\n get endDate(): Date | undefined {\r\n const result = this.link?.endDate ? new Date(this.link?.endDate) : undefined;\r\n return result;\r\n }\r\n\r\n constructor(\r\n public link: DataSharingLink,\r\n public fullVehicles: Vehicle[],\r\n public isSelected = false\r\n ) {\r\n }\r\n\r\n private getLinkBeginning() {\r\n return (isDevMode() ? 'http://' : 'https://') + window.location.host + '/share/';\r\n }\r\n\r\n getVehicleShortName(name: string, maxLength = 25): string {\r\n return name.slice(0, maxLength) + (name.length >= maxLength ? '...' : '');\r\n }\r\n}\r\n","\r\n
\r\n\r\n
\r\n {{'data-sharing.link-added' | translate}}\r\n
\r\n\r\n
\r\n
\r\n \r\n {{model.url}}\r\n
\r\n
\r\n\r\n
\r\n \r\n {{'data-sharing.valid' | translate}}:\r\n \r\n {{model.link.startDate | date:'short'}} - {{model.link.endDate | date:'short'}}\r\n \r\n \r\n {{'labels.always' | translate | titlecase}}\r\n \r\n \r\n\r\n \r\n {{'labels.vehicles' | translate | titlecase}}:\r\n \r\n {{model.fullVehicles.length}}\r\n \r\n \r\n\r\n \r\n \r\n {{'labels.copy-all-data' | translate}}\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {TitleCasePipe} from \"@angular/common\";\r\n\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\nimport {LinkViewModel} from '@data-sharing/view-models/link-view-model';\r\n\r\n@Component({\r\n selector: 'dsm-added-link-modal',\r\n templateUrl: './added-link-modal.component.html',\r\n})\r\nexport class AddedLinkModalComponent implements OnInit {\r\n\r\n private alwaysTrans = '';\r\n private fromTrans = '';\r\n private toTrans = '';\r\n private line1 = '';\r\n private line2 = '';\r\n private line3 = '';\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public model: LinkViewModel,\r\n private matDialogRef: MatDialogRef,\r\n private translateService: TranslateService\r\n ) {\r\n this.setTranslations();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n allDataAsText(): string {\r\n const vehicles = this.model.fullVehicles.map(x => x.Nm).join('\\n');\r\n const validTo = this.model.link.endDate ?\r\n `${this.fromTrans} ${this.model.link.startDate} ${this.toTrans} ${this.model.link.endDate}` :\r\n this.alwaysTrans;\r\n\r\n const text =\r\n this.line1 +\r\n '\\n' +\r\n this.model.url + '\\n' +\r\n '\\n' +\r\n this.line2 + ` ${validTo}` + '\\n' +\r\n '\\n' +\r\n this.line3 + '\\n' +\r\n '\\n' +\r\n vehicles;\r\n\r\n return text;\r\n }\r\n\r\n onClose() {\r\n this.matDialogRef.close();\r\n }\r\n\r\n private setTranslations() {\r\n this.translateService.get('labels.always').subscribe(x => this.alwaysTrans = new TitleCasePipe().transform(x));\r\n this.translateService.get('labels.from').subscribe(x => this.fromTrans = new TitleCasePipe().transform(x));\r\n this.translateService.get('labels.to').subscribe(x => this.toTrans = new TitleCasePipe().transform(x));\r\n this.translateService.get('data-sharing.clipboard-line1').subscribe(x => this.line1 = x);\r\n this.translateService.get('data-sharing.clipboard-line2').subscribe(x => this.line2 = x);\r\n this.translateService.get('data-sharing.clipboard-line3').subscribe(x => this.line3 = x);\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\nimport {Observable} from \"rxjs\";\r\n\r\nimport {BaseHttpService} from \"@shared/services-http/base-http.service\";\r\nimport {PermissionService} from \"@shared/services/permission.service\";\r\n\r\nimport {DataSharingLink} from \"@data-sharing/models/data-sharing-link\";\r\nimport {DataSharingLinkPatchRequest} from \"@data-sharing/http-services/requests/data-sharing-link-patch.request\";\r\nimport {PostLinkRequest} from \"@data-sharing/http-services/requests/post-link.request\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataSharingHttpService extends BaseHttpService {\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private permissionService: PermissionService\r\n ) {\r\n super();\r\n }\r\n\r\n getAll(): Observable {\r\n if (this.permissionService.hasDataSharingAdmin())\r\n return this.httpClient.get(this.getNewApiUrl('/shareLinks/all'));\r\n else\r\n return this.httpClient.get(this.getNewApiUrl('/shareLinks'));\r\n }\r\n\r\n delete(linksIds: number[]): Observable {\r\n return this.httpClient.delete(this.getNewApiUrl('/shareLinks'), {body: linksIds});\r\n }\r\n\r\n patch(linkId: number, request: DataSharingLinkPatchRequest): Observable {\r\n return this.httpClient.patch(this.getNewApiUrl('/shareLinks/' + linkId), request);\r\n }\r\n\r\n post(request: PostLinkRequest): Observable {\r\n return this.httpClient.post(this.getNewApiUrl('/shareLinks'), request);\r\n }\r\n\r\n nameExists(name: string): Observable {\r\n return this.httpClient.get(this.getNewApiUrl('/shareLinks/nameExists/' + name));\r\n }\r\n}\r\n","
\r\n \r\n \r\n {{label}}\r\n
\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sm-button-transparent',\r\n templateUrl: './button-transparent.component.html'\r\n})\r\nexport class ButtonTransparentComponent implements OnInit {\r\n\r\n @Input() label = '';\r\n\r\n isHoverd = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onMouseOver() {\r\n this.isHoverd = true;\r\n }\r\n\r\n onMouseLeave() {\r\n this.isHoverd = false;\r\n }\r\n}\r\n","
\r\n\r\n
{{'labels.loading-data' | translate}}
\r\n \r\n
{{'data-sharing.select-for-sharing' | translate}}
\r\n\r\n \r\n {{'data-sharing.find-vehicle' | translate}}\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 \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
{{row.Nm}}
\r\n
\r\n
{{'data-sharing.column-name' | translate}}{{item.name}}
\r\n
{{'labels.no-data' | translate}}
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport {\r\n FormBuilder,\r\n FormControl,\r\n} from \"@angular/forms\";\r\nimport {SelectionModel} from \"@angular/cdk/collections\";\r\nimport {MatTableDataSource} from \"@angular/material/table\";\r\n\r\nimport {VehicleService} from \"@commons/services/vehicle/vehicle.service\";\r\nimport {Vehicle} from \"@commons/models/domain/Vehicle\";\r\n\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\n\r\n@Component({\r\n selector: 'dsm-vehicles-list',\r\n templateUrl: './vehicles-list.component.html',\r\n styleUrls: ['./vehicles-list.component.less'],\r\n})\r\nexport class VehiclesListComponent extends BaseComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Input() selectedVehicles: number[] = [];\r\n\r\n @Output() selectionChanged = new EventEmitter();\r\n\r\n isLoading = true;\r\n allVehicles: Vehicle[] = [];\r\n\r\n searchCtrl = new FormControl('');\r\n isSelectedAllCtrl = new FormControl(false);\r\n\r\n displayedColumns: string[] = ['select'];\r\n selectionModel = new SelectionModel(true, []);\r\n dataSource: MatTableDataSource = new MatTableDataSource([]);\r\n\r\n form = this.formBuilder.group({\r\n search: this.searchCtrl,\r\n isSelectedAll: this.isSelectedAllCtrl\r\n });\r\n\r\n get currentFilter(): string {\r\n const filter = this.searchCtrl.value ? this.searchCtrl.value.toString() : '';\r\n return filter;\r\n }\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private vehicleService: VehicleService\r\n ) {\r\n super();\r\n\r\n this.dataSource.filterPredicate = this.filterPredicate;\r\n\r\n this.subToSelectedVehiclesChanges();\r\n this.subToSearchValueChanges();\r\n\r\n this.loadVehicles();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.selectedVehicles &&\r\n this.allVehicles &&\r\n this.selectedVehicles.length !== this.allVehicles.length) {\r\n this.isSelectedAllCtrl.setValue(false);\r\n }\r\n\r\n if (this.selectedVehicles) {\r\n this.selectionModel?.clear();\r\n const matchedFullVehicles = this.allVehicles.filter(x => this.selectedVehicles.some(sv => sv == x.Id));\r\n this.selectionModel.select(...matchedFullVehicles);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n filterPredicate(vehicle: Vehicle, filter: string): boolean {\r\n filter = filter.toLowerCase();\r\n const result = vehicle.Nm.toLowerCase().includes(filter);\r\n return result;\r\n }\r\n\r\n onSelectAll() {\r\n const filtered = this.allVehicles.filter(x => this.filterPredicate(x, this.currentFilter));\r\n this.selectionModel.select(...filtered);\r\n }\r\n\r\n private subToSelectedVehiclesChanges() {\r\n this.addToUnsubscribe(\r\n this.selectionModel.changed.subscribe(() => {\r\n this.selectionChanged.emit(this.selectionModel.selected);\r\n })\r\n );\r\n }\r\n\r\n private subToSearchValueChanges() {\r\n this.addToUnsubscribe(\r\n this.searchCtrl.valueChanges.subscribe(filter => {\r\n if (filter || filter === '')\r\n this.dataSource.filter = filter.trim().toLowerCase();\r\n })\r\n );\r\n }\r\n\r\n private loadVehicles() {\r\n let interval = setInterval(() => {\r\n if (this.allVehicles.length === 0) {\r\n this.vehicleService.getList$().subscribe(vehicles => {\r\n this.isLoading = false;\r\n this.allVehicles = vehicles;\r\n this.dataSource.data = this.allVehicles;\r\n });\r\n }\r\n else {\r\n clearInterval(interval);\r\n }\r\n }, 100);\r\n }\r\n\r\n}\r\n","
\r\n\r\n
{{'labels.loading-data' | translate}}
\r\n \r\n\r\n
\r\n
{{selectedVehiclesCount}}
\r\n\r\n
{{'data-sharing.selected-vehicles' | translate}}
\r\n\r\n
\r\n
\r\n
\r\n
{{'labels.remove-all' | translate}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n {{'data-sharing.select-vehicles-on-list' | translate}}\r\n \r\n \r\n
\r\n
\r\n {{getVehicleShortName(vehicle.Nm)}}\r\n \r\n
\r\n \r\n +{{vehiclesAboveLimitCount}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n","import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\n\r\nimport {Vehicle} from \"@commons/models/domain/Vehicle\";\r\nimport {VehicleService} from \"@commons/services/vehicle/vehicle.service\";\r\n\r\n@Component({\r\n selector: 'dsm-selected-vehicles',\r\n templateUrl: './selected-vehicles.component.html',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: SelectedVehiclesComponent,\r\n multi: true\r\n }]\r\n})\r\nexport class SelectedVehiclesComponent implements ControlValueAccessor, OnInit, OnChanges {\r\n\r\n @Input() isViewMode = false;\r\n\r\n readonly vehicleLimitCount = 14;\r\n\r\n displayedFullVehicles?: Vehicle[];\r\n inputVehiclesIds?: number[];\r\n isVehiclesLimitExceeded = false;\r\n isLoading = true;\r\n allFullVehicles: Vehicle[] = [];\r\n\r\n get selectedVehiclesCount(): number {\r\n return this.inputVehiclesIds ? this.inputVehiclesIds.length : 0;\r\n }\r\n\r\n get isAnyVehicleSelected(): boolean {\r\n return this.selectedVehiclesCount > 0;\r\n }\r\n\r\n get vehiclesAboveLimitCount(): number {\r\n return this.inputVehiclesIds ? this.inputVehiclesIds.length - this.vehicleLimitCount : 0;\r\n }\r\n\r\n constructor(\r\n private vehicleService: VehicleService,\r\n ) {\r\n this.loadVehicles();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onChange: any = () => {\r\n }\r\n\r\n onTouched: any = () => {\r\n }\r\n\r\n writeValue(vehicles: number[]): void {\r\n this.inputVehiclesIds = vehicles;\r\n this.displayVehicles();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n getVehicleShortName(name: string): string {\r\n const maxLength = 25;\r\n return name.slice(0, maxLength) + (name.length >= maxLength ? '...' : '');\r\n }\r\n\r\n onRemoveVehicle(vehicleId: number) {\r\n if (!this.isViewMode) {\r\n this.inputVehiclesIds = this.inputVehiclesIds?.filter(x => x !== vehicleId);\r\n this.displayVehicles();\r\n this.onChange(this.inputVehiclesIds);\r\n }\r\n }\r\n\r\n onRemoveAll() {\r\n this.inputVehiclesIds = [];\r\n this.displayedFullVehicles = [];\r\n this.onChange([]);\r\n }\r\n\r\n private loadVehicles() {\r\n let interval = setInterval(() => {\r\n if (this.allFullVehicles.length === 0) {\r\n this.vehicleService.getList$().subscribe(vehicles => {\r\n this.allFullVehicles = vehicles;\r\n this.displayVehicles();\r\n });\r\n }\r\n else {\r\n clearInterval(interval);\r\n }\r\n }, 100);\r\n }\r\n\r\n private displayVehicles() {\r\n this.isVehiclesLimitExceeded = this.inputVehiclesIds != null && this.inputVehiclesIds?.length > 24;\r\n\r\n const fullVehiclesToDisplay = this.allFullVehicles.filter(v => this.inputVehiclesIds?.some(id => id === v.Id));\r\n this.displayedFullVehicles = this.isVehiclesLimitExceeded ?\r\n fullVehiclesToDisplay?.slice(0, this.vehicleLimitCount) : fullVehiclesToDisplay;\r\n\r\n this.isLoading = false;\r\n }\r\n}\r\n","
\r\n {{'labels.name' | translate | titlecase}}\r\n \r\n {{'labels.name' | translate | titlecase}}\r\n \r\n \r\n {{getErrorMessage(nameCtrl)}}\r\n \r\n \r\n
\r\n","import {AfterViewInit, Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormBuilder,\r\n FormControl,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n Validators\r\n} from \"@angular/forms\";\r\nimport {MatInput} from \"@angular/material/input\";\r\n\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\n\r\n@Component({\r\n selector: 'dsm-link-name',\r\n templateUrl: './link-name.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: LinkNameComponent,\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: LinkNameComponent,\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class LinkNameComponent extends BaseComponent implements ControlValueAccessor, OnInit, AfterViewInit, OnDestroy {\r\n\r\n private readonly minLengthErrorKey = 'minlength';\r\n private readonly maxLengthErrorKey = 'maxlength';\r\n\r\n private fieldIsRequiredErrorMessage = '';\r\n private minLengthErrorMessage = '';\r\n private maxLengthErrorMessage = '';\r\n\r\n private readonly requiredErrorKey = 'required';\r\n\r\n @ViewChild('name') input?: MatInput;\r\n\r\n nameCtrl = new FormControl('', [Validators.required, Validators.minLength(3), Validators.maxLength(50)]);\r\n\r\n form = this.formBuilder.group({\r\n name: this.nameCtrl,\r\n });\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private translateService: TranslateService\r\n ) {\r\n super();\r\n this.setTranslations();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.input?.focus();\r\n }\r\n\r\n onChange: any = () => {\r\n }\r\n\r\n onTouched: any = () => {\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.form.controls.name.setValue(obj);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate({ value }: FormControl) {\r\n const isNotValid = this.nameCtrl.invalid;\r\n const result = isNotValid && {\r\n invalid: true\r\n };\r\n console.warn(JSON.stringify(result));\r\n return result;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addToUnsubscribe(\r\n this.form.controls.name.valueChanges.subscribe(newValue => {\r\n this.onChange(newValue);\r\n }));\r\n }\r\n\r\n getErrorMessageElementId(controlName: string, control: AbstractControl): string {\r\n let errorName = '';\r\n\r\n if (control.hasError(this.requiredErrorKey))\r\n errorName = this.requiredErrorKey;\r\n else if (control.hasError(this.minLengthErrorKey))\r\n errorName = this.minLengthErrorKey;\r\n else if (control.hasError(this.maxLengthErrorKey))\r\n errorName = this.maxLengthErrorKey;\r\n\r\n return `${controlName}-error-${errorName}`;\r\n }\r\n\r\n getErrorMessage(control: AbstractControl): string {\r\n if (control.hasError(this.requiredErrorKey))\r\n return this.fieldIsRequiredErrorMessage;\r\n\r\n if (control.hasError(this.minLengthErrorKey))\r\n return this.minLengthErrorMessage;\r\n\r\n if (control.hasError(this.maxLengthErrorKey))\r\n return this.maxLengthErrorMessage;\r\n\r\n return \"\";\r\n }\r\n\r\n private setTranslations() {\r\n this.translateService.get('errors.field-is-required').subscribe(t => this.fieldIsRequiredErrorMessage = t);\r\n this.translateService.get('errors.min-X-characters', {min: 3}).subscribe(t => this.minLengthErrorMessage = t);\r\n this.translateService.get('errors.max-X-characters', {max: 50}).subscribe(t => this.maxLengthErrorMessage = t);\r\n }\r\n\r\n}\r\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\n\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","
\r\n\r\n {{'data-sharing.activity' | translate}}\r\n\r\n
\r\n\r\n
\r\n
\r\n
{{'labels.always' | translate | titlecase}}
\r\n
\r\n\r\n
\r\n
{{'data-sharing.in-given-time' | translate}}
\r\n
\r\n
\r\n\r\n
\r\n \r\n {{'data-sharing.active-from' | translate}}\r\n \r\n \r\n {{getErrorMessage(startDateCtrl)}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{'labels.apply' | translate | titlecase}}\r\n \r\n \r\n
\r\n\r\n \r\n {{'data-sharing.active-to' | translate}}\r\n \r\n \r\n {{getErrorMessage(endDateCtrl)}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{'labels.apply' | translate | titlecase}}\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport {AbstractControl, FormBuilder, FormControl, ValidationErrors, ValidatorFn, Validators} from \"@angular/forms\";\r\n\r\nimport {addDays, addMilliseconds, endOfDay, isAfter, isBefore, setSeconds} from \"date-fns\";\r\n\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\n\r\nimport {LinkDateRangeModel} from \"@data-sharing/routes/link-view/link-date-range.model\";\r\n\r\n@Component({\r\n selector: 'dsm-link-activity',\r\n templateUrl: './link-activity.component.html',\r\n})\r\nexport class LinkActivityComponent extends BaseComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n\r\n @Input() isViewMode = false;\r\n @Input() readonlyDateRange?: LinkDateRangeModel;\r\n\r\n @Output() dateChanged = new EventEmitter();\r\n\r\n private readonly requiredErrorKey = 'required';\r\n private readonly startDateAfterEndDateErrorKey = 'startDateAfterEndDate';\r\n private readonly endDateBeforeStartDateErrorKey = 'endDateBeforeStartDate';\r\n readonly endOfNextDay = addMilliseconds(endOfDay(addDays(new Date(), 1)), -100);//-100 milliseconds to not round date to 0 next day by api at save\r\n\r\n isAlwaysSelected = false;\r\n isDateRangeButtonSelected = true;\r\n isAlwaysButtonVisible = true;\r\n isDateRangeButtonVisible = true;\r\n\r\n fieldIsRequiredErrorMessage = '';\r\n startDateAfterEndDateMessage = '';\r\n endDateBeforeStartDateMessage = '';\r\n\r\n startDateCtrl = new FormControl(setSeconds(new Date(), 0), [Validators.required, this.startDateAfterEndDateValidator()]);\r\n endDateCtrl = new FormControl(this.endOfNextDay, [this.endDateBeforeStartDateValidator()]);\r\n\r\n form = this.formBuilder.group({\r\n startDate: this.startDateCtrl,\r\n endDate: this.endDateCtrl\r\n });\r\n\r\n minDate = new Date();\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private translateService: TranslateService\r\n ) {\r\n super();\r\n this.setTranslations();\r\n this.subToFormsValueChanges();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.emitDateRangeDateChanged();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.isViewMode)\r\n this.setViewMode();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n onAlways() {\r\n if (this.isViewMode)\r\n return;\r\n\r\n this.isAlwaysSelected = !this.isAlwaysSelected;\r\n this.isDateRangeButtonSelected = !this.isAlwaysSelected;\r\n\r\n const dateRangeModel = {} as LinkDateRangeModel;\r\n dateRangeModel.startDate = this.startDateCtrl.value ?? undefined;\r\n dateRangeModel.endDate = undefined;\r\n\r\n this.dateChanged.emit(dateRangeModel);\r\n }\r\n\r\n onDateRangeSelected() {\r\n if (this.isViewMode)\r\n return;\r\n\r\n this.isDateRangeButtonSelected = !this.isDateRangeButtonSelected;\r\n this.isAlwaysSelected = !this.isDateRangeButtonSelected;\r\n\r\n this.emitDateRangeDateChanged();\r\n }\r\n\r\n getErrorMessage(control: AbstractControl): string {\r\n if (control.hasError(this.requiredErrorKey))\r\n return this.fieldIsRequiredErrorMessage;\r\n\r\n if (control.hasError(this.startDateAfterEndDateErrorKey))\r\n return this.startDateAfterEndDateMessage;\r\n\r\n if (control.hasError(this.endDateBeforeStartDateErrorKey))\r\n return this.endDateBeforeStartDateMessage;\r\n\r\n return \"\";\r\n }\r\n\r\n getErrorMessageElementId(controlName: string, control: AbstractControl): string {\r\n let errorName = '';\r\n\r\n if (control.hasError(this.requiredErrorKey))\r\n errorName = this.requiredErrorKey;\r\n\r\n else if (control.hasError(this.startDateAfterEndDateErrorKey))\r\n errorName = this.startDateAfterEndDateErrorKey;\r\n\r\n else if (control.hasError(this.endDateBeforeStartDateErrorKey))\r\n errorName = this.endDateBeforeStartDateErrorKey;\r\n\r\n return `${controlName}-error-${errorName}`;\r\n }\r\n\r\n private emitDateRangeDateChanged() {\r\n const dateRangeModel = {} as LinkDateRangeModel;\r\n dateRangeModel.startDate = this.startDateCtrl.value ?? undefined;\r\n dateRangeModel.endDate = this.endDateCtrl.value ?? undefined;\r\n\r\n this.dateChanged.emit(dateRangeModel);\r\n }\r\n\r\n private setTranslations() {\r\n this.translateService.get('errors.field-is-required').subscribe(t => this.fieldIsRequiredErrorMessage = t);\r\n this.translateService.get('errors.start-date-after-end-date').subscribe(t => this.startDateAfterEndDateMessage = t);\r\n this.translateService.get('errors.end-date-before-start-date').subscribe(t => this.endDateBeforeStartDateMessage = t);\r\n }\r\n\r\n private setViewMode() {\r\n const isAlways = this.readonlyDateRange?.endDate === undefined;\r\n this.isAlwaysSelected = isAlways;\r\n this.isDateRangeButtonSelected = !isAlways;\r\n\r\n if (!isAlways) {\r\n this.startDateCtrl.setValue(this.readonlyDateRange!.startDate!);\r\n this.endDateCtrl.setValue(this.readonlyDateRange!.endDate!);\r\n }\r\n\r\n this.isAlwaysButtonVisible = this.isAlwaysSelected;\r\n this.isDateRangeButtonVisible = this.isDateRangeButtonSelected;\r\n }\r\n\r\n private subToFormsValueChanges() {\r\n this.addToUnsubscribe(\r\n this.startDateCtrl.valueChanges.subscribe(newDate => this.onStartDateChanged(newDate)));\r\n\r\n this.addToUnsubscribe(\r\n this.endDateCtrl.valueChanges.subscribe(newDate => this.onEndDateChanged(newDate)));\r\n }\r\n\r\n private onStartDateChanged(newDate: Date | null) {\r\n if (newDate) {\r\n newDate = setSeconds(newDate, 59);\r\n this.startDateCtrl.setValue(newDate, {emitEvent: false});\r\n this.endDateCtrl.updateValueAndValidity({onlySelf: true, emitEvent: false});\r\n }\r\n const dateRangeModel = {} as LinkDateRangeModel;\r\n dateRangeModel.startDate = newDate ?? undefined;\r\n dateRangeModel.endDate = this.endDateCtrl.value ?? undefined;\r\n this.dateChanged.emit(dateRangeModel);\r\n }\r\n\r\n private onEndDateChanged(newDate: Date | null | undefined) {\r\n if (newDate) {\r\n newDate = setSeconds(newDate, 59);\r\n this.endDateCtrl.setValue(newDate, {emitEvent: false});\r\n this.startDateCtrl.updateValueAndValidity({onlySelf: true, emitEvent: false});\r\n }\r\n const dateRangeModel = {} as LinkDateRangeModel;\r\n dateRangeModel.startDate = this.startDateCtrl.value ?? undefined;\r\n dateRangeModel.endDate = this.endDateCtrl.value ?? undefined;\r\n this.dateChanged.emit(dateRangeModel);\r\n }\r\n\r\n private startDateAfterEndDateValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const start = this.startDateCtrl?.value;\r\n const end = this.endDateCtrl?.value;\r\n\r\n return start && end && isAfter(start, end) ? {startDateAfterEndDate: true} : null;\r\n };\r\n }\r\n\r\n private endDateBeforeStartDateValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const start = this.startDateCtrl?.value;\r\n const end = this.endDateCtrl?.value;\r\n\r\n return start && end && isBefore(end, start) ? {endDateBeforeStartDate: true} : null;\r\n };\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n \r\n {{header}}\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\r\n
{{formError}}
\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","import {AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\r\nimport {FormBuilder, FormControl, Validators} from \"@angular/forms\";\r\n\r\nimport {parseISO} from 'date-fns';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\nimport {Vehicle} from \"@commons/models/domain/Vehicle\";\r\n\r\nimport {LinkViewModel} from '@data-sharing/view-models/link-view-model';\r\nimport {LinkDateRangeModel} from \"@data-sharing/routes/link-view/link-date-range.model\";\r\nimport {DataSharingLink} from \"@data-sharing/models/data-sharing-link\";\r\nimport {DataSharingHttpService} from \"@data-sharing/http-services/data-sharing-http.service\";\r\n\r\nimport {NewApiErrorResult} from \"@shared/services-http/responses/new-api-error.result\";\r\n\r\n@Component({\r\n selector: 'dsm-link-view',\r\n templateUrl: './link-view.component.html',\r\n styleUrls: ['./link-view.component.less']\r\n})\r\nexport class LinkViewComponent implements OnInit, OnChanges, AfterViewInit {\r\n\r\n @Input() inputLinkViewModel?: LinkViewModel;\r\n\r\n @Output() linkAdded = new EventEmitter();\r\n\r\n isLoading = false;\r\n isViewMode = false;\r\n existingLinkDateRange?: LinkDateRangeModel;\r\n fullSelectedVehicles: Vehicle[] = [];\r\n isAlwaysValid = false;\r\n createNewLinkTrans = '';\r\n noWorkerErrorMessage = '';\r\n nameAlreadyUsed = '';\r\n formError = '';\r\n\r\n nameCtrl = new FormControl('', [Validators.required, Validators.min(3), Validators.max(50)]);\r\n vehiclesCtrl = new FormControl([], [Validators.required, Validators.minLength(1)]);\r\n startDateCtrl = new FormControl(new Date(), [Validators.required]);\r\n endDateCtrl = new FormControl(undefined);\r\n\r\n form = this.formBuilder.group({\r\n name: this.nameCtrl,\r\n vehicles: this.vehiclesCtrl,\r\n startDate: this.startDateCtrl,\r\n endDate: this.endDateCtrl\r\n });\r\n\r\n get header(): string {\r\n return this.isViewMode ? `Link - ${this.inputLinkViewModel?.name}` : this.createNewLinkTrans;\r\n }\r\n\r\n get isFormValid(): boolean {\r\n return this.form.valid;\r\n }\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private dataSharingHttpService: DataSharingHttpService,\r\n private translateService: TranslateService,\r\n ) {\r\n this.setTranslations();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.inputLinkViewModel)\r\n this.initViewMode();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n onVehiclesSelected(vehicles: Vehicle[]) {\r\n this.fullSelectedVehicles = vehicles;\r\n this.vehiclesCtrl.setValue(vehicles.map(x => x.Id));\r\n }\r\n\r\n onBackToList() {\r\n this.linkAdded.emit(undefined);\r\n }\r\n\r\n onDateRangeChanged(newDateRange: LinkDateRangeModel) {\r\n this.startDateCtrl.setValue(newDateRange?.startDate ?? null);\r\n this.endDateCtrl.setValue(newDateRange?.endDate ?? null);\r\n\r\n this.isAlwaysValid = newDateRange.endDate == null;\r\n }\r\n\r\n onSave() {\r\n this.isLoading = true;\r\n\r\n this.dataSharingHttpService.nameExists(this.nameCtrl.value!).subscribe({\r\n next: (nameExists) => {\r\n this.beforeSave(nameExists);\r\n },\r\n error: (err) => this.onSaveError(err.error)\r\n });\r\n }\r\n\r\n onCancel() {\r\n if (!this.isLoading)\r\n this.linkAdded.emit(undefined);\r\n }\r\n\r\n private beforeSave(nameExists: boolean) {\r\n if (nameExists) {\r\n this.formError = this.nameAlreadyUsed;\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n if (!this.form.valid) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.saveLink();\r\n }\r\n\r\n private saveLink() {\r\n const newLink = this.getNewDataSharingLink();\r\n this.dataSharingHttpService.post(newLink).subscribe({\r\n next: (savedLink) => {\r\n this.isLoading = false;\r\n this.linkAdded.emit(new LinkViewModel(savedLink, this.fullSelectedVehicles));\r\n },\r\n error: (err) => this.onSaveError(err.error)\r\n }\r\n );\r\n }\r\n\r\n private setTranslations() {\r\n this.translateService.get('data-sharing.create-link').subscribe(x => this.createNewLinkTrans = x);\r\n this.translateService.get('data-sharing.no-worker-error').subscribe(x => this.noWorkerErrorMessage = x);\r\n this.translateService.get('errors.name-already-used').subscribe(x => this.nameAlreadyUsed = x);\r\n }\r\n\r\n private onSaveError(err: NewApiErrorResult) {\r\n if (err.type) {\r\n switch (err.type) {\r\n case 'UserHasNoWorker':\r\n this.formError = this.noWorkerErrorMessage;\r\n break;\r\n case 'ShareLinkNameExistsForWorker':\r\n this.formError = this.nameAlreadyUsed;\r\n break;\r\n }\r\n }\r\n this.isLoading = false;\r\n }\r\n\r\n private getNewDataSharingLink(): DataSharingLink {\r\n let newLink = {} as DataSharingLink;\r\n newLink.name = this.nameCtrl.value!;\r\n newLink.vehicles = this.vehiclesCtrl.value ?? [];\r\n //date-fns nie obsługuje formatu ISO z literą Z na końcu chodzi niby jest tak w dokumentacji dlatego używam toISOString()\r\n //https://github.com/date-fns/date-fns/issues/2151\r\n newLink.startDate = this.startDateCtrl.value!.toISOString();\r\n newLink.endDate = this.isAlwaysValid ? undefined : this.endDateCtrl.value!.toISOString();\r\n\r\n return newLink;\r\n }\r\n\r\n private initViewMode() {\r\n if (!this.inputLinkViewModel)\r\n return;\r\n\r\n this.isViewMode = true;\r\n\r\n this.nameCtrl.setValue(this.inputLinkViewModel.link.name);\r\n this.vehiclesCtrl.setValue(this.inputLinkViewModel.link.vehicles);\r\n\r\n this.startDateCtrl.setValue(parseISO(this.inputLinkViewModel.link.startDate!));\r\n\r\n if (this.inputLinkViewModel?.link?.endDate)\r\n this.endDateCtrl.setValue(parseISO(this.inputLinkViewModel.link.endDate));\r\n\r\n this.existingLinkDateRange = {} as LinkDateRangeModel;\r\n this.existingLinkDateRange.startDate = this.inputLinkViewModel.startDate;\r\n this.existingLinkDateRange.endDate =\r\n this.inputLinkViewModel.link?.endDate ? this.inputLinkViewModel.endDate : undefined;\r\n }\r\n}\r\n","\r\n
\r\n\r\n
{{questionTrans}}
\r\n\r\n
\r\n
{{model.link.name}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from \"@angular/material/dialog\";\r\n\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\nimport {LinkViewModel} from \"@data-sharing/view-models/link-view-model\";\r\nimport {DataSharingHttpService} from \"@data-sharing/http-services/data-sharing-http.service\";\r\n\r\n@Component({\r\n selector: 'dsm-confirm-links-removal-modal',\r\n templateUrl: './confirm-links-removal-modal.component.html',\r\n})\r\nexport class ConfirmLinksRemovalModalComponent implements OnInit {\r\n\r\n isLoading = false;\r\n questionTrans = '';\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public models: LinkViewModel[],\r\n private matDialogRef: MatDialogRef,\r\n private dataSharingHttpService: DataSharingHttpService,\r\n private translateService: TranslateService\r\n ) {\r\n this.translateService.get('data-sharing.remove-links-question', {count: this.models.length})\r\n .subscribe(t => this.questionTrans = t);\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onClose() {\r\n if (!this.isLoading)\r\n this.matDialogRef.close(false);\r\n }\r\n\r\n onRemove() {\r\n this.isLoading = true;\r\n\r\n this.dataSharingHttpService.delete(this.models.map(x => x.link.id)).subscribe(() => {\r\n this.isLoading = false;\r\n this.matDialogRef.close(true);\r\n });\r\n }\r\n\r\n}\r\n","import {Injectable, isDevMode} from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MatTableHelperService {\r\n\r\n constructor() {\r\n }\r\n\r\n isAllSelected(selectionModelLength: number, filteredDataLength: number): boolean {\r\n const result = selectionModelLength === filteredDataLength;\r\n // if (isDevMode())\r\n // console.warn('selectionModelLength=' + selectionModelLength + ' filteredDataLength=' + filteredDataLength + ' isAllSelected=' + result);\r\n\r\n return result;\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\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 \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{'labels.name' | translate | titlecase}}{{item.name}}{{'labels.status' | translate | titlecase}}\r\n
\r\n \r\n \r\n {{(item.isActive ? activeTranslation : inactiveTranslation) | titlecase}}\r\n \r\n \r\n {{item.endDate | date: 'short'}}\r\n {{'labels.always' | translate}}\r\n \r\n
\r\n
{{'labels.vehicles' | translate | titlecase}}\r\n
\r\n
\r\n {{'labels.loading-data' | translate}}\r\n
\r\n \r\n \r\n {{item.getVehicleShortName(vehicle.Nm, 25)}}\r\n \r\n \r\n\r\n showVehiclesCount\"\r\n class=\"flex justify-center items-center w-auto h-6 rounded-full text-center text-xs tk-bg-blue text-white \">\r\n +{{item.fullVehicles.length - showVehiclesCount}}\r\n \r\n
\r\n
{{'data-sharing.column-link' | translate}}\r\n \r\n \r\n \r\n mycar.tekom.pl/share...\r\n \r\n \r\n
\r\n
\r\n {{'labels.loading-data' | translate}}\r\n \r\n {{'labels.no-data' | translate}}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {{this.selectionModel.selected.length}}{{'labels.selected' | translate}}\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {MatSort} from '@angular/material/sort';\r\nimport {SelectionModel} from '@angular/cdk/collections';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\n\r\nimport {Vehicle} from \"@commons/models/domain/Vehicle\";\r\n\r\nimport {LinkViewModel} from \"@data-sharing/view-models/link-view-model\";\r\nimport {\r\n ConfirmLinksRemovalModalComponent\r\n} from \"@data-sharing/routes/links-list/components/confirm-links-removal-modal/confirm-links-removal-modal.component\";\r\n\r\nimport {DialogService} from \"@shared/services/dialog.service\";\r\nimport {MatTableHelperService} from \"@shared/modules/material/mat-table-helper.service\";\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: 'dsm-links-list-table',\r\n templateUrl: './links-list-table.component.html',\r\n styleUrls: ['./links-list-table.component.less']\r\n})\r\nexport class LinksListTableComponent implements OnInit, OnChanges {\r\n\r\n @Input() isLoading = false;\r\n @Input() vehicles: Vehicle[] = [];\r\n @Input() search = '';\r\n\r\n @Input() rows: LinkViewModel[] = [];\r\n\r\n @Output() viewLink = new EventEmitter();\r\n @Output() reloadList = new EventEmitter();\r\n\r\n @ViewChild(MatSort) set setMatSort(matSort: MatSort) {\r\n if (matSort) {\r\n this.matSort = matSort;\r\n this.dataSource.sort = this.matSort;\r\n }\r\n }\r\n\r\n private matSort?: MatSort;\r\n readonly showVehiclesCount = 2;\r\n\r\n selectedRow?: LinkViewModel;\r\n displayedColumns: string[] = ['select', 'name', 'endDate', 'vehicles', 'url'];\r\n selectionModel = new SelectionModel(true, []);\r\n dataSource: MatTableDataSource = new MatTableDataSource([]);\r\n activeTranslation = '';\r\n inactiveTranslation = '';\r\n\r\n get isRemoveActive(): boolean {\r\n return this.selectionModel.selected.length > 0;\r\n }\r\n\r\n get isAllSelected(): boolean {\r\n const filter = this.search ? this.search : '';\r\n const selectedLength = this.selectionModel.selected.filter(x => this.filterPredicate(x, filter)).length;\r\n const allItemsLength = this.search ? this.dataSource.filteredData.length : this.dataSource.data.length;\r\n\r\n return this.matTableHelperService.isAllSelected(selectedLength, allItemsLength);\r\n }\r\n\r\n get isAllChecked(): boolean {\r\n const result = this.selectionModel.hasValue() && this.isAllSelected;\r\n return result;\r\n }\r\n\r\n get isIndeterminateChecked(): boolean {\r\n const result = this.selectionModel.hasValue() &&\r\n this.dataSource.filteredData.some(x => this.selectionModel.isSelected(x)) &&\r\n !this.isAllSelected;\r\n return result;\r\n }\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private matTableHelperService: MatTableHelperService,\r\n private translateService: TranslateService,\r\n ) {\r\n this.setTranslations();\r\n this.dataSource.filterPredicate = this.filterPredicate;\r\n this.dataSource.sortData = this.sortData();\r\n }\r\n\r\n private setTranslations() {\r\n this.translateService.get('labels.active').subscribe(x => this.activeTranslation = x);\r\n this.translateService.get('labels.inactive').subscribe(x => this.inactiveTranslation = x);\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.rows) {\r\n this.dataSource.data = this.rows;\r\n this.setLinksVehicles();\r\n }\r\n\r\n if (this.vehicles && this.vehicles.length > 0 && this.rows.length === 0)\r\n this.setLinksVehicles();\r\n\r\n if (this.search || this.search === '')\r\n this.dataSource.filter = this.search.trim().toLowerCase();\r\n }\r\n\r\n onRowSelected(linkViewModel: LinkViewModel) {\r\n this.selectedRow = linkViewModel;\r\n this.viewLink.emit(this.selectedRow);\r\n }\r\n\r\n onRemove() {\r\n if (!this.isRemoveActive)\r\n return;\r\n\r\n const dialogRef = this.dialogService.open(ConfirmLinksRemovalModalComponent, this.selectionModel.selected);\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.selectionModel.clear();\r\n this.reloadList.emit();\r\n }\r\n });\r\n }\r\n\r\n onSelectAll() {\r\n if (this.isAllSelected) {\r\n this.selectionModel.clear();\r\n return;\r\n }\r\n this.selectionModel.select(...this.dataSource.filteredData);\r\n }\r\n\r\n onOpenLink(model: LinkViewModel) {\r\n window.open(model.url, '_blank')!.focus();\r\n }\r\n\r\n private setLinksVehicles() {\r\n for (let model of this.rows) {\r\n const vehicles = this.vehicles.filter(v => model.link.vehicles.some(lv => lv === v.Id));\r\n model.fullVehicles = vehicles;\r\n }\r\n }\r\n\r\n private sortData() {\r\n let sortFunction =\r\n (items: LinkViewModel[], sort: MatSort): LinkViewModel[] => {\r\n if (!sort.active || sort.direction === '') {\r\n return items;\r\n }\r\n return items.sort((a: LinkViewModel, b: LinkViewModel) => {\r\n let comparatorResult = 0;\r\n switch (sort.active) {\r\n case 'name':\r\n comparatorResult = a.link.name.localeCompare(b.name);\r\n break;\r\n\r\n case 'endDate':\r\n return this.sortEndDate(a, b);\r\n }\r\n return comparatorResult * (sort.direction == 'asc' ? 1 : -1);\r\n });\r\n };\r\n return sortFunction;\r\n }\r\n\r\n private sortEndDate(a: LinkViewModel, b: LinkViewModel): number {\r\n if (a.link?.endDate == undefined)\r\n return 1;\r\n\r\n if (b.link?.endDate == undefined)\r\n return -1;\r\n\r\n const a1 = new Date(a.link?.endDate).getTime();\r\n const b1 = new Date(b.link?.endDate).getTime();\r\n const result = a1 - b1;\r\n // console.warn( 'result='+result + ' a=' + a.link.endDate + ' b=' + b.link.endDate);\r\n return result;\r\n }\r\n\r\n private filterPredicate(data: LinkViewModel, filter: string): boolean {\r\n filter = filter.toLowerCase();\r\n const result =\r\n data.link.name.toLowerCase().includes(filter) ||\r\n data.url.toLowerCase().includes(filter) ||\r\n data.fullVehicles.some(x => x.Nm.toLowerCase().includes(filter));\r\n return result;\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport { FormBuilder, FormControl } from '@angular/forms';\r\n\r\nimport { BaseComponent } from '@shared/components/base-component';\r\n\r\n@Component({\r\n selector: 'dsm-search-input',\r\n templateUrl: './search-input.component.html',\r\n})\r\nexport class SearchInputComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n @Input() label?: string;\r\n @Output() searchChanged = new EventEmitter();\r\n\r\n searchCtrl = new FormControl('');\r\n\r\n form = this.formBuilder.group({\r\n search: this.searchCtrl,\r\n });\r\n\r\n constructor(\r\n private formBuilder: FormBuilder\r\n ) {\r\n super();\r\n\r\n this.subToSearchValueChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n private subToSearchValueChanges() {\r\n this.addToUnsubscribe(\r\n this.searchCtrl.valueChanges.subscribe(() => {\r\n if (this.searchCtrl.valid || this.searchCtrl.value?.length === 0)\r\n this.searchChanged.emit(this.searchCtrl.value ?? '');\r\n }));\r\n }\r\n\r\n}\r\n","\r\n {{label}}\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\r\n\r\n\r\n","import {Component, OnInit} from '@angular/core';\r\n\r\nimport {VehicleService} from '@commons/services/vehicle/vehicle.service';\r\nimport {Vehicle} from \"@commons/models/domain/Vehicle\";\r\n\r\nimport {DialogService} from \"@shared/services/dialog.service\";\r\n\r\nimport {LinkViewModel} from \"@data-sharing/view-models/link-view-model\";\r\nimport {AddedLinkModalComponent} from './components/added-link-modal/added-link-modal.component';\r\nimport {DataSharingHttpService} from \"@data-sharing/http-services/data-sharing-http.service\";\r\n\r\n@Component({\r\n selector: 'dsm-links-list',\r\n templateUrl: './links-list.component.html',\r\n styleUrls: ['./links-list.component.less']\r\n})\r\nexport class LinksListComponent implements OnInit {\r\n\r\n isLoading = false;\r\n isListVisible = true;\r\n isAddLinkVisible = false;\r\n vehicles: Vehicle[] = [];\r\n search = '';\r\n linkToView?: LinkViewModel;\r\n rows: LinkViewModel[] = [];\r\n\r\n constructor(\r\n private vehicleService: VehicleService,\r\n private dialogService: DialogService,\r\n private dataSharingHttpService: DataSharingHttpService\r\n\r\n ) {\r\n this.loadVehicles();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadLinks();\r\n }\r\n\r\n onViewLink(linkViewModel: LinkViewModel) {\r\n this.linkToView = linkViewModel;\r\n\r\n this.isListVisible = false;\r\n this.isAddLinkVisible = true;\r\n }\r\n\r\n onAddLink() {\r\n this.isListVisible = !this.isListVisible;\r\n this.isAddLinkVisible = !this.isAddLinkVisible;\r\n\r\n if (this.isAddLinkVisible)\r\n this.linkToView = undefined;\r\n }\r\n\r\n onLinkAdded(linkViewModel: LinkViewModel) {\r\n this.isListVisible = true;\r\n this.isAddLinkVisible = false;\r\n\r\n if (linkViewModel) {\r\n this.dialogService.open(AddedLinkModalComponent, linkViewModel);\r\n this.rows.push(linkViewModel);\r\n }\r\n }\r\n\r\n private loadVehicles() {\r\n let interval = setInterval(() => {\r\n if (this.vehicles.length === 0) {\r\n this.vehicleService.getList$().subscribe(vehicles => {\r\n this.vehicles = vehicles;\r\n });\r\n } else {\r\n clearInterval(interval);\r\n }\r\n }, 100);\r\n }\r\n\r\n private loadLinks() {\r\n this.isLoading = true;\r\n this.dataSharingHttpService.getAll().subscribe(links => {\r\n const models = [];\r\n for (const link of links) {\r\n let model = new LinkViewModel(link, []);\r\n models.push(model);\r\n }\r\n this.rows = models;\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n onSearchChanged(search: string) {\r\n this.search = search;\r\n }\r\n\r\n onReloadList() {\r\n this.loadLinks();\r\n }\r\n}\r\n","
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n {{'data-sharing.integration-info' | translate}}\r\n
\r\n
\r\n \r\n \r\n {{'contact.phone' | translate}}\r\n \r\n \r\n {{'labels.or' | translate}}\r\n \r\n \r\n {{'contact.email' | translate}}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n {{'labels.no-result' | translate}}\r\n
\r\n
\r\n\r\n
\r\n","import {Component, OnInit} from '@angular/core';\r\n\r\nexport interface integrationItem {\r\n name: string;\r\n url: string;\r\n}\r\n\r\n@Component({\r\n selector: 'dsm-integrations',\r\n templateUrl: './integrations.component.html',\r\n styleUrls: ['./integrations.component.less']\r\n})\r\nexport class IntegrationsComponent implements OnInit {\r\n\r\n allIntegrations: integrationItem[] = [\r\n {name: 'agheera', url: 'integracja-agheera-gmbh-z-systemem-mycar-business'},\r\n {name: 'asstra', url: 'integracja-asstra-z-systemem-mycar-business'},\r\n // {name: 'carmen', url: ''},\r\n {name: 'co3', url: 'integracja-co3-z-systemem-mycar-business'},\r\n {name: 'eago-systems', url: 'integracja-eago-cz-z-systemem-mycar-business'},\r\n {name: 'e-track', url: 'integracja-trans-eu-z-systemem-mycar-business'},\r\n {name: 'fire-tms', url: 'integracja-firetms-z-systemem-mycar-business'},\r\n // {name: 'four-kites', url: 'display/MYC/FourKites'},\r\n {name: 'gefco', url: 'integracja-gefco-t-t-z-systemem-mycar-business'},\r\n {name: 'kart-gis', url: 'integracja-kartgis-z-systemem-mycar-business'},\r\n {name: 'kiedy-przyjedzie', url: 'integracja-kiedyprzyjedzie-pl-z-systemem-mycar-business'},\r\n {name: 'kurier-system', url: 'integracja-kurier-system-z-systemem-mycar-business'},\r\n {name: 'linkway', url: 'integracja-linkway-integrator-z-systemem-mycar-business'},\r\n {name: 'lkw-walter', url: 'integracja-lkw-walter-z-systemem-mycar-business'},\r\n // {name: 'spedtrans', url: ''},\r\n {name: 'nic', url: 'integracja-nic-place-z-systemem-mycar-business-7-11-2022'},\r\n {name: 'project44', url: 'integracja-project44-z-systemem-mycar-business'},\r\n {name: 'shippeo', url: 'integracja-shippeo-z-systemem-mycar-business'},\r\n {name: 'sky-logic', url: 'integracja-skylogic-tms-benson-consultants-z-systemem-mycar-business'},\r\n {name: 'softra', url: 'integracja-softra-z-systemem-mycar-business'},\r\n {name: 'sostmeier', url: 'integracja-sostmeier-gmbh-co-kg-z-systemem-mycar-business'},\r\n {name: 'timocom', url: 'integracja-timocom-z-systemem-mycar-business'},\r\n {name: 'trans-eu', url: 'integracja-trans-eu-z-systemem-mycar-business'},\r\n {name: 'van-group', url: 'integracja-van-group-z-systemem-mycar-business'},\r\n {name: 'wialon', url: 'integracja-wialon-z-systemem-mycar-business'},\r\n // {name: 'descrtes', url: ''},\r\n ];\r\n\r\n filtered: integrationItem[] = [];\r\n\r\n constructor() {\r\n this.allIntegrations = this.allIntegrations.sort(this.sort);\r\n this.filtered = this.getClone(this.allIntegrations);\r\n }\r\n\r\n private getClone(array: integrationItem[]): integrationItem[] {\r\n return JSON.parse(JSON.stringify(array)) as integrationItem[];\r\n }\r\n\r\n private sort(a: integrationItem, b: integrationItem) {\r\n if (a.name > b.name) {\r\n return 1;\r\n }\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n\r\n getSrc(item: integrationItem): string {\r\n return '/assets/images/data-sharing/intergrations/' + item.name + '.png';\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onSearchChanged(filter: string) {\r\n this.filtered = this.getClone(this.allIntegrations.filter(x => x.name.includes(filter)));\r\n }\r\n\r\n onOpenWebsite(url: string) {\r\n window.open('https://support.tekom.pl/portal/pl/kb/articles/' + url, '_blank')!.focus();\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
{{'data-sharing.data-sharing-label' | translate}}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n {{'data-sharing.link-with-vehicles' | translate}}\r\n
\r\n
\r\n \r\n\r\n
\r\n\r\n \r\n \r\n
\r\n {{'data-sharing.for-external-systems' | translate}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n","import {Component, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'dsm-root-route',\r\n templateUrl: './root-route.component.html',\r\n styleUrls: ['root-route.component.less']\r\n})\r\nexport class RootRouteComponent {\r\n\r\n}\r\n","
\r\n\r\n
\r\n {{'map-panel.header' | translate}}\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
{{'map-panel.emapa' | translate}}
\r\n\r\n \r\n
\r\n
{{'map-panel.google-map' | translate}}
\r\n\r\n
\r\n
{{'map-panel.google-satellite' | translate}}
\r\n
\r\n\r\n
\r\n
{{'map-panel.osm' | translate}}
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\r\nimport {animate, sequence, style, transition, trigger} from \"@angular/animations\";\r\n\r\nimport {MapService} from \"@commons/services/map/map/map.service\";\r\n\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\nimport {NewNavigationService} from '@shared/services/new-navigation.service';\r\n\r\nimport {MapLayerType} from '@src/app/map/map-layers';\r\n\r\nimport {MapPanelService} from \"@map-panel/services/map-panel.service\";\r\nimport {PermissionService} from \"@shared/services/permission.service\";\r\nimport {AuthenticationService} from \"@shared/services/authentication/authentication.service\";\r\nimport {take} from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'mp-map-panel',\r\n templateUrl: './map-panel.component.html',\r\n styleUrls: ['./map-panel.component.scss'],\r\n animations: [\r\n trigger('openClose', [\r\n transition(\":enter\", [style({transform: 'translateX(120px)'}), animate('0.1s')]),\r\n transition(\":leave\", [sequence([style({\r\n right: '0px',\r\n 'z-index': 0\r\n }), animate('0.1s', style({right: '-120px'}))])]),\r\n ])\r\n ]\r\n})\r\nexport class MapPanelComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n @Input() isVisible = false;\r\n\r\n isGoogleMapsVisible = this.permissionService.hasClientSelection();\r\n\r\n get isEmapaSelected(): boolean {\r\n return this.mapService.currentMapLayerType === MapLayerType.emapa;\r\n }\r\n\r\n get isOpenStreetSelected(): boolean {\r\n return this.mapService.currentMapLayerType === MapLayerType.osm;\r\n }\r\n\r\n // get isOpenStreetTransportSelected(): boolean {\r\n // return this.mapService.currentMapLayerType === MapLayerType.osmTransport;\r\n // }\r\n\r\n get isGoogleMapsSelected(): boolean {\r\n return this.mapService.currentMapLayerType === MapLayerType.googleRoadmap;\r\n }\r\n\r\n get isGoogleSatelliteSelected(): boolean {\r\n return this.mapService.currentMapLayerType === MapLayerType.googleHybrid;\r\n }\r\n\r\n constructor(\r\n private newNavigationService: NewNavigationService,\r\n private mapService: MapService,\r\n private mapPanelService: MapPanelService,\r\n private permissionService: PermissionService,\r\n private authenticationService: AuthenticationService\r\n ) {\r\n super();\r\n this.setIsGoogleMapsVisible();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onClosePanel() {\r\n this.mapPanelService.isMapPanelVisibleSubject.next(false);\r\n }\r\n\r\n onSetEmapa() {\r\n this.mapService.setMapLayer(MapLayerType.emapa);\r\n }\r\n\r\n onSetOpenStreet() {\r\n this.mapService.setMapLayer(MapLayerType.osm);\r\n }\r\n\r\n // onSetOpenStreetTransport() {\r\n // this.mapService.setMapLayer(MapLayerType.osmTransport);\r\n // }\r\n\r\n onSetGoogleRoadmap() {\r\n this.mapService.setMapLayer(MapLayerType.googleRoadmap);\r\n }\r\n\r\n onSetGoogleHybrid() {\r\n this.mapService.setMapLayer(MapLayerType.googleHybrid);\r\n }\r\n\r\n private setIsGoogleMapsVisible() {\r\n this.authenticationService.isAuthenticated$.pipe(take(1)).subscribe(isFinished => {\r\n if (isFinished) {\r\n this.isGoogleMapsVisible = this.authenticationService.isTekomUser;\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport {Subject} from \"rxjs\";\r\n\r\nimport {VehicleListItem} from \"@handover/view-models/vehicle-list-item\";\r\nimport {HandoverListItem} from \"@handover/view-models/handover-list-item\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HandoverNotificationsService {\r\n\r\n filterTextChangeSubject$ = new Subject();\r\n filterStatusChangeSubject$ = new Subject();\r\n selectedVehicleChanged$ = new Subject();\r\n isWorkerStatementVisible$ = new Subject();\r\n selectedHandoverChanged$ = new Subject();\r\n handoverImagesLoaded$ = new Subject();\r\n\r\n constructor() { }\r\n}\r\n\r\nexport enum FilterType {\r\n All = 1,\r\n Available = 2,\r\n Given = 3\r\n}\r\n","import {DescriptionWithImages, HandoverModel} from \"@handover/view-models/handover.model\";\r\nimport {GetHandoverResponse, RawHandoverPart} from \"@handover/http-services/responses/get-handover.response\";\r\n\r\nimport {environment} from \"@src/environments/environment\";\r\n\r\nexport class GetHandoverResponseMapper {\r\n mapToHandoverModel(response: GetHandoverResponse, isGiven: boolean): HandoverModel {\r\n const model = {} as HandoverModel;\r\n model.isGiven = isGiven;\r\n model.driverFullName = `${response?.WN} ${response.WS}`;\r\n model.phone = response.WP;\r\n model.statement = response.WST;\r\n model.isCreatedOnDesktop = response.BG.QR === \"\";\r\n\r\n if (response.HE)\r\n this.setClientData(response, model);\r\n\r\n // Zwracane przez api będą zawsze 2 obiekty o ile został już wykonany zwrot.\r\n // Wyświetlane jest tylko przekazanie lub tylko zwrot i potrzebna jest informacja z zewnątrz co ma zostać zmapowane do modelu protokołu dla UI.\r\n const givenRaw = response?.BG;\r\n model.givenId = givenRaw?.HID;\r\n const returnRaw = response?.ED;\r\n model.returnId = returnRaw?.HID;\r\n if (isGiven) {\r\n this.mapRawHandoverToHandoverModel(givenRaw, model);\r\n } else {\r\n this.mapRawHandoverToHandoverModel(returnRaw, model);\r\n }\r\n\r\n this.setAllImagesCount(model);\r\n\r\n return model;\r\n }\r\n\r\n private setClientData(response: GetHandoverResponse, model: HandoverModel) {\r\n model.clientData = [];\r\n model.clientData.push(response?.HE.line1);\r\n model.clientData.push(response?.HE.line2);\r\n model.clientData.push(response?.HE.line3);\r\n }\r\n\r\n private mapRawHandoverToHandoverModel(rawHandover: RawHandoverPart, model: HandoverModel) {\r\n model.uniqueNumber = rawHandover.NR;\r\n model.place = rawHandover?.PL;\r\n model.date = rawHandover?.DA;\r\n model.createDate = rawHandover?.DAC;\r\n model.workerIdNumber = rawHandover?.WC;\r\n model.vehicleName = rawHandover?.NM;\r\n model.fuel = rawHandover?.FL;\r\n model.mileage = rawHandover?.OV;\r\n model.equipmentItems = rawHandover?.EQ.map(x => x?.NA);\r\n model.transferringPerson = `${rawHandover.SN} ${rawHandover.SS}`;\r\n model.token = rawHandover.QR;\r\n\r\n this.setGeneralSection(rawHandover, model);\r\n this.setDamagesSection(rawHandover, model);\r\n this.setCommentsSection(rawHandover, model);\r\n this.setSignatureSection(rawHandover, model);\r\n }\r\n\r\n private setCommentsSection(rawHandover: RawHandoverPart, model: HandoverModel) {\r\n const section = rawHandover?.PG.find(x => x.TP == HandoverGalleryType.comment);\r\n if (section) {\r\n model.comments = [];\r\n for (let img of section?.IMG) {\r\n const comment = {} as DescriptionWithImages;\r\n comment.desc = img?.DS;\r\n comment.imageUrls = img.PIC.map(x => this.getImageSrc(model.givenId, x?.ESI));\r\n model.comments.push(comment);\r\n }\r\n }\r\n }\r\n\r\n private setDamagesSection(rawHandover: RawHandoverPart, model: HandoverModel) {\r\n const section = rawHandover?.PG.find(x => x.TP == HandoverGalleryType.damage);\r\n if (section) {\r\n model.damages = [];\r\n for (let img of section?.IMG) {\r\n const damage = {} as DescriptionWithImages;\r\n damage.desc = img?.DS;\r\n damage.imageUrls = img.PIC.map(x => this.getImageSrc(model.givenId, x?.ESI));\r\n model.damages.push(damage);\r\n }\r\n }\r\n }\r\n\r\n private setGeneralSection(rawHandover: RawHandoverPart, model: HandoverModel) {\r\n const section = rawHandover?.PG.find(x => x.TP == HandoverGalleryType.general);\r\n if (section) {\r\n model.general = {} as DescriptionWithImages;\r\n model.general.desc = section?.IMG[0].DS;\r\n model.general.imageUrls = section?.IMG[0].PIC.map(x => this.getImageSrc(model.givenId, x?.ESI));\r\n }\r\n }\r\n\r\n private setSignatureSection(rawHandover: RawHandoverPart, model: HandoverModel) {\r\n const section = rawHandover?.PG.find(x => x.TP == HandoverGalleryType.signature);\r\n if (section) {\r\n model.driverSignatureUrl = section?.IMG[0].PIC.map(x => this.getImageSrc(model.givenId, x?.ESI))[0];\r\n }\r\n }\r\n\r\n private getImageSrc(handoverId: string, imageId: string): string {\r\n return `${environment.logosApiUrl}/handovers/${handoverId}/photos/${imageId.replace('\"', '').replace('\"', '')}`;\r\n }\r\n\r\n private setAllImagesCount(model: HandoverModel) {\r\n let count = model.general?.imageUrls.length ?? 0;\r\n\r\n if (model.damages) {\r\n for (let damage of model.damages) {\r\n count += damage?.imageUrls?.length ?? 0;\r\n }\r\n }\r\n\r\n if (model.comments) {\r\n for (let comment of model.comments) {\r\n count += comment?.imageUrls?.length ?? 0;\r\n }\r\n }\r\n\r\n model.allImagesCount = count;\r\n }\r\n\r\n}\r\n\r\nenum HandoverGalleryType {\r\n signature = 1,\r\n general = 2,\r\n damage = 3,\r\n comment = 4\r\n}\r\n","import {GetVehiclesResponse} from \"@handover/http-services/responses/get-vehicles.response\";\r\nimport {VehicleListItem} from \"@handover/view-models/vehicle-list-item\";\r\n\r\nexport class GetVehicleResponseMapper {\r\n mapToVehicleListItem(responses: GetVehiclesResponse[]): VehicleListItem[] {\r\n const models: VehicleListItem[] = [];\r\n\r\n for (let vehicle of responses) {\r\n const model = {} as VehicleListItem;\r\n model.vehicleId = vehicle.ID;\r\n model.isAvailable = vehicle.DR == null;\r\n if (vehicle.DR) {\r\n model.driverId = vehicle.DR.ID;\r\n }\r\n models.push(model);\r\n }\r\n\r\n return models.sort((a, b) => Number(b.isAvailable) - Number(a.isAvailable));\r\n }\r\n}\r\n","import {parseISO} from \"date-fns\";\r\n\r\nimport {GetVehicleHandoversResponse} from \"@handover/http-services/responses/get-vehicle-handovers.response\";\r\nimport {HandoverListItem} from \"@handover/view-models/handover-list-item\";\r\n\r\nexport class GetVehicleHandoversResponseMapper {\r\n mapToHandoverListItem(responses: GetVehicleHandoversResponse[]): HandoverListItem[] {\r\n const models: HandoverListItem[] = [];\r\n\r\n for (let response of responses) {\r\n const givenItem = {} as HandoverListItem;\r\n this.setHandoverItemCommonData(response, givenItem);\r\n givenItem.isReturn = false;\r\n givenItem.date = parseISO(response?.BG?.HD);\r\n givenItem.tokenQR = response?.BG?.QR;\r\n\r\n models.push(givenItem);\r\n\r\n if (response?.ED) {\r\n const returnItem = {} as HandoverListItem;\r\n this.setHandoverItemCommonData(response, returnItem);\r\n returnItem.handoverReturnId = response?.ED.ID;\r\n returnItem.isReturn = true;\r\n returnItem.date = parseISO(response?.ED?.HD);\r\n returnItem.tokenQR = response.ED?.QR;\r\n\r\n models.push(returnItem);\r\n }\r\n }\r\n\r\n return models.sort((a, b) => Number(b.date) - Number(a.date));\r\n }\r\n\r\n private setHandoverItemCommonData(response: GetVehicleHandoversResponse, item: HandoverListItem) {\r\n item.handoverGivenId = response.ID;\r\n item.driverFullName = `${response.FN} ${response.LN}`;\r\n item.initials = `${response.FN[0]}${response.LN[0]}`;\r\n item.isCreatedOnDesktop = response.BG.QR === \"\";\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\nimport {map, Observable} from \"rxjs\";\r\n\r\nimport {BaseHttpService} from \"@shared/services-http/base-http.service\";\r\n\r\nimport {GetVehiclesResponse} from './responses/get-vehicles.response';\r\n\r\nimport {VehicleListItem} from \"@handover/view-models/vehicle-list-item\";\r\nimport {HandoverListItem} from \"@handover/view-models/handover-list-item\";\r\nimport {GetVehicleHandoversResponse} from \"@handover/http-services/responses/get-vehicle-handovers.response\";\r\nimport {GetHandoverResponse} from \"@handover/http-services/responses/get-handover.response\";\r\nimport {GetHandoverResponseMapper} from \"@handover/http-services/mappers/get-handover-response-mapper\";\r\nimport {HandoverModel} from \"@handover/view-models/handover.model\";\r\nimport {GetVehicleResponseMapper} from \"@handover/http-services/mappers/get-vehicle-response-mapper\";\r\nimport {GetVehicleHandoversResponseMapper} from \"@handover/http-services/mappers/get-vehicle-handovers-response-mapper\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HandoverHttpService extends BaseHttpService {\r\n\r\n private readonly getHandoverResponseMapper = new GetHandoverResponseMapper();\r\n private readonly getVehicleResponseMapper = new GetVehicleResponseMapper();\r\n private readonly getVehicleHandoversResponseMapper = new GetVehicleHandoversResponseMapper();\r\n\r\n constructor(private httpClient: HttpClient) {\r\n super();\r\n }\r\n\r\n getVehicles(vehicleIds: number[]): Observable {\r\n return this.httpClient.post(this.getNewApiUrl('/handover/vehicles/gethandoverdriver'), vehicleIds)\r\n .pipe(map(response => this.getVehicleResponseMapper.mapToVehicleListItem(response)));\r\n }\r\n\r\n getVehicleHandovers(vehicleId: number): Observable {\r\n return this.httpClient.get(this.getNewApiUrl('/handovers/vehicle/') + vehicleId)\r\n .pipe(map(response => this.getVehicleHandoversResponseMapper.mapToHandoverListItem(response)));\r\n }\r\n\r\n getStatement(): Observable {\r\n return this.httpClient.get(this.getNewApiUrl('/globalConfig/worker-statement'));\r\n }\r\n\r\n setStatement(value: string): Observable {\r\n return this.httpClient.patch(this.getNewApiUrl('/globalConfig/worker-statement'), {text: value});\r\n }\r\n\r\n getHandover(handoverId: number, returnId?: number): Observable {\r\n const mapGiven = returnId == null;\r\n return this.httpClient.get(this.getNewApiUrl(`/handovers/${handoverId}`))\r\n .pipe(map(x => this.getHandoverResponseMapper.mapToHandoverModel(x, mapGiven)));\r\n }\r\n\r\n getHandoverByToken(token: string): Observable {\r\n return this.httpClient.get(this.getNewApiUrl(`/handovers/token/${token}`))\r\n .pipe(map(x => {\r\n const isGiven = x.BG.QR === token;\r\n return this.getHandoverResponseMapper.mapToHandoverModel(x, isGiven);\r\n }));\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
{{model?.vehicleName | tkSlice:25}}
\r\n\r\n
\r\n
\r\n
{{'handover.status-available' | translate}}
\r\n
\r\n
\r\n \r\n {{model?.driverFullName}}\r\n \r\n\r\n
\r\n
\r\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\r\n\r\nimport {VehicleListItem} from \"@handover/view-models/vehicle-list-item\";\r\n\r\n@Component({\r\n selector: 'handovermod-vehicle-item',\r\n templateUrl: './vehicle-item.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class VehicleItemComponent {\r\n @Input() model?: VehicleListItem = {} as VehicleListItem;\r\n @Input() isSelected = false;\r\n\r\n get elementId(): string {\r\n return `vehicle-${this.model?.vehicleId}`;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
{{'labels.loading-data' | translate}}
\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
{{'handover.no-vehicles-for-filter' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n","import {Component, NgZone, OnDestroy, OnInit} from '@angular/core';\r\n\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\nimport {NewDataStoreService} from \"@shared/services/new-data-store.service\";\r\n\r\nimport {HandoverHttpService} from \"@handover/http-services/handover-http.service\";\r\nimport {VehicleListItem} from \"@handover/view-models/vehicle-list-item\";\r\nimport {\r\n FilterType,\r\n HandoverNotificationsService\r\n} from \"@handover/routes/main-route/services/handover-notifications.service\";\r\nimport { VehicleService } from '@commons/services/vehicle/vehicle.service';\r\n\r\nimport { map, filter, Subscription } from 'rxjs';\r\nimport { isEqual } from 'lodash';\r\n\r\n@Component({\r\n selector: 'handovermod-vehicles-list',\r\n templateUrl: './vehicles-list.component.html',\r\n styleUrls: ['./vehicles-list.component.less'],\r\n})\r\nexport class VehiclesListComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n filteredVehicles?: VehicleListItem[];\r\n allVehicles?: VehicleListItem[];\r\n selectedVehicleId?: number;\r\n isLoading = true;\r\n\r\n private filterText = '';\r\n private filterStatus = 0;\r\n\r\n private vehiclesIds: number[] = [];\r\n\r\n private getVehiclesSubsc: Subscription;\r\n\r\n constructor(\r\n private handoverHttpService: HandoverHttpService,\r\n private handoverNotificationsService: HandoverNotificationsService,\r\n private newDataStoreService: NewDataStoreService,\r\n private vehicleService: VehicleService,\r\n private zone: NgZone,\r\n ) {\r\n super();\r\n this.subToFilterChanged();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getVehicles();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.getVehiclesSubsc?.unsubscribe();\r\n }\r\n\r\n private getVehicles(): void {\r\n this.zone.run(() => {\r\n this.getVehiclesSubsc = this.vehicleService.getList$().pipe(\r\n map(data => data.map(item => item.Id)),\r\n filter(data => !isEqual(data, this.vehiclesIds)),\r\n )\r\n .subscribe(ids => {\r\n this.vehiclesIds = [...ids];\r\n this.getHandoversVehicle();\r\n });\r\n });\r\n }\r\n\r\n private getHandoversVehicle(ids: number[] = this.vehiclesIds): void {\r\n this.handoverHttpService.getVehicles(ids).subscribe(result => {\r\n this.setVehiclesNames(result);\r\n this.setVehiclesDrivers(result);\r\n this.filteredVehicles = this.allVehicles = result;\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n isItemSelected(vehicle: VehicleListItem): boolean {\r\n return this.selectedVehicleId === vehicle.vehicleId;\r\n }\r\n\r\n onSelect(vehicle?: VehicleListItem) {\r\n if (vehicle?.vehicleId !== this.selectedVehicleId) {\r\n this.selectedVehicleId = vehicle?.vehicleId;\r\n this.handoverNotificationsService.selectedVehicleChanged$.next(vehicle);\r\n this.handoverNotificationsService.selectedHandoverChanged$.next(undefined);\r\n }\r\n }\r\n\r\n private setVehiclesDrivers(items: VehicleListItem[]) {\r\n const drivers = this.newDataStoreService.getDrivers();\r\n items?.forEach(v => {\r\n if (v.driverId) {\r\n const driver = drivers.find(d => d.Id === v.driverId);\r\n if (driver)\r\n v.driverFullName = `${driver.FN} ${driver.LN}`;\r\n else\r\n console.error('No driver for id=' + v.driverId);\r\n }\r\n });\r\n }\r\n\r\n private setVehiclesNames(items: VehicleListItem[]) {\r\n const vehicles = this.newDataStoreService.getVehicles();\r\n items?.forEach(v => {\r\n const matched = vehicles.find(d => d.Id === v.vehicleId);\r\n if (matched)\r\n v.vehicleName = matched.Nm;\r\n else\r\n console.error('No vehicle for id=' + v.vehicleId);\r\n });\r\n }\r\n\r\n private filterList() {\r\n this.onSelect(undefined);\r\n this.filteredVehicles = this.allVehicles?.filter(v => {\r\n const result = this.textFilter(v) && this.statusFilter(v);\r\n return result;\r\n });\r\n }\r\n\r\n private textFilter(v: VehicleListItem): boolean {\r\n let result = false;\r\n if (this.filterText) {\r\n result = v.vehicleName?.toLowerCase().includes(this.filterText) || v.driverFullName?.toLowerCase().includes(this.filterText);\r\n } else {\r\n result = true;\r\n }\r\n return result;\r\n }\r\n\r\n private statusFilter(v: VehicleListItem): boolean {\r\n let result = false;\r\n if (this.filterStatus) {\r\n switch (this.filterStatus) {\r\n case FilterType.All:\r\n result = true;\r\n break;\r\n\r\n case FilterType.Available:\r\n result = v.isAvailable === true;\r\n break;\r\n\r\n case FilterType.Given:\r\n result = v.isAvailable === false;\r\n break;\r\n\r\n default:\r\n console.error(`Not supported status=${this.filterStatus}`);\r\n }\r\n } else {\r\n result = true;\r\n }\r\n return result;\r\n }\r\n\r\n private subToFilterChanged() {\r\n this.addToUnsubscribe(\r\n this.handoverNotificationsService.filterTextChangeSubject$.subscribe(text => {\r\n this.filterText = text;\r\n this.filterList();\r\n }));\r\n\r\n this.addToUnsubscribe(\r\n this.handoverNotificationsService.filterStatusChangeSubject$.subscribe(status => {\r\n this.filterStatus = status;\r\n this.filterList();\r\n }));\r\n }\r\n\r\n}\r\n","import {ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {FormBuilder, FormControl} from \"@angular/forms\";\r\n\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\n\r\nimport {FilterType, HandoverNotificationsService} from \"@handover/routes/main-route/services/handover-notifications.service\";\r\n\r\n@Component({\r\n selector: 'handovermod-vehicles-filter',\r\n templateUrl: './vehicles-filter.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class VehiclesFilterComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n readonly FilterType = FilterType;\r\n\r\n readonly statues: string[] = [];\r\n searchCtrl = new FormControl('');\r\n\r\n form = this.formBuilder.group({\r\n search: this.searchCtrl,\r\n });\r\n\r\n private currentFilter = FilterType.All;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private translateService: TranslateService,\r\n private handoverNotificationsService: HandoverNotificationsService\r\n ) {\r\n super();\r\n this.setTranslations();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addToUnsubscribe(\r\n this.form.controls.search.valueChanges.subscribe(newValue => {\r\n this.handoverNotificationsService.filterTextChangeSubject$.next(newValue?.toLowerCase() ?? '');\r\n }));\r\n }\r\n\r\n isFilterSelected(filter: number): boolean {\r\n return this.currentFilter === filter;\r\n }\r\n\r\n onFilterSelected(filter: number) {\r\n this.currentFilter = filter;\r\n this.handoverNotificationsService.filterStatusChangeSubject$.next(this.currentFilter);\r\n }\r\n\r\n private setTranslations() {\r\n this.translateService.get([\r\n 'labels.all',\r\n 'handover.filter-available',\r\n 'handover.filter-given'])\r\n .subscribe(t => {\r\n Object.entries(t).forEach((x) => this.statues.push(x[1]));\r\n });\r\n }\r\n\r\n onClean() {\r\n this.form.controls.search.setValue('');\r\n this.onFilterSelected(FilterType.All);\r\n }\r\n}\r\n","
\r\n\r\n \r\n {{'labels.search' | translate | titlecase}}\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
{{'labels.all' | translate | titlecase}}
\r\n
\r\n\r\n
\r\n
{{'handover.filter-available' | translate | titlecase}}
\r\n
\r\n\r\n
\r\n
{{'handover.filter-given' | translate | titlecase}}
\r\n
\r\n\r\n
{{'labels.clear' | translate | titlecase}}
\r\n\r\n
\r\n
\r\n\r\n\r\n","import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';\r\nimport {MatDialogRef} from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover-limited-access-modal',\r\n templateUrl: './handover-limited-access-modal.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverLimitedAccessModalComponent implements OnInit {\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef,\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onContact() {\r\n this.matDialogRef.close();\r\n }\r\n\r\n onClose() {\r\n this.matDialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n {{'limitingAccess'|translate}}\r\n
\r\n
{{'limitingAccessDescPart1'|translate}}
\r\n
{{'limitingAccessDescPart2'|translate}}
\r\n
{{'limitingAccessDescPart3'|translate}}
\r\n
{{'limitingAccessDescPart4'|translate}}
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\r\n\r\nimport {HandoverListItem} from \"@handover/view-models/handover-list-item\";\r\n\r\n@Component({\r\n selector: 'handovermod-handovers-list-item',\r\n templateUrl: './handovers-list-item.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoversListItemComponent {\r\n @Input() item?: HandoverListItem;\r\n @Input() isSelected = false;\r\n}\r\n","
\r\n\r\n
\r\n\r\n
\r\n
\r\n {{(item?.isReturn ? 'handover.status-return' : 'handover.status-given') | translate}}\r\n
\r\n
{{item?.date | date: 'short'}}
\r\n
\r\n\r\n
\r\n\r\n
\r\n {{item?.initials}}\r\n
\r\n\r\n
{{item?.driverFullName}}
\r\n
\r\n\r\n
\r\n","
\r\n\r\n
{{'handover.handovers-for-vehicle' | translate}}
\r\n
{{selectedVehicle?.vehicleName}}
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n","import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core';\r\n\r\nimport {HandoverListItem} from \"@handover/view-models/handover-list-item\";\r\nimport {VehicleListItem} from \"@handover/view-models/vehicle-list-item\";\r\nimport {HandoverNotificationsService} from \"@handover/routes/main-route/services/handover-notifications.service\";\r\nimport {\r\n HandoverLimitedAccessModalComponent\r\n} from \"@handover/routes/main-route/components/vehicle-handovers-list/components/handover-limited-access-modal/handover-limited-access-modal.component\";\r\nimport {DialogService} from \"@shared/services/dialog.service\";\r\n\r\n@Component({\r\n selector: 'handovermod-vehicle-handovers-list',\r\n templateUrl: './vehicle-handovers-list.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class VehicleHandoversListComponent implements OnInit {\r\n\r\n @Input() selectedVehicle?: VehicleListItem;\r\n @Input() handovers?: HandoverListItem[];\r\n\r\n private selectedItem?: HandoverListItem;\r\n\r\n constructor(\r\n private handoverNotificationsService: HandoverNotificationsService,\r\n private dialogService: DialogService\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n isItemSelected(item: HandoverListItem): boolean {\r\n return this.selectedItem?.handoverGivenId === item.handoverGivenId &&\r\n this.selectedItem.handoverReturnId === item.handoverReturnId;\r\n }\r\n\r\n onSelect(handover: HandoverListItem) {\r\n if (handover.isCreatedOnDesktop) {\r\n this.dialogService.open(HandoverLimitedAccessModalComponent);\r\n }\r\n\r\n const ifClickeOtherProtocol = this.selectedItem?.tokenQR !== handover.tokenQR;\r\n if (ifClickeOtherProtocol) {\r\n this.selectedItem = handover;\r\n this.handoverNotificationsService.selectedHandoverChanged$.next(this.selectedItem);\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport {DomSanitizer, SafeUrl} from \"@angular/platform-browser\";\r\n\r\nimport {map, Observable} from \"rxjs\";\r\n\r\n@Pipe({\r\n name: 'secureImage'\r\n})\r\nexport class SecureImagePipe implements PipeTransform {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private sanitizer: DomSanitizer\r\n ) {\r\n }\r\n\r\n transform(url: string): Observable {\r\n return this.http.get(url, {responseType: 'blob'}).pipe(\r\n map(x => this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(x))));\r\n }\r\n\r\n}\r\n","import {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from \"@angular/material/dialog\";\r\nimport {map, Observable, tap} from \"rxjs\";\r\nimport {DomSanitizer, SafeUrl} from \"@angular/platform-browser\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport {imageOverlay} from \"leaflet\";\r\n\r\n@Component({\r\n selector: 'sharedm-image-modal',\r\n templateUrl: './image-modal.component.html',\r\n styleUrls: ['./image-modal.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ImageModalComponent {\r\n\r\n image?: any;\r\n isLoading = true;\r\n // private zoomLevel = 1;\r\n\r\n // get scale(): string {\r\n // return ` scale(${this.zoomLevel})`;\r\n // }\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public imageUrl: string,\r\n private matDialogRef: MatDialogRef,\r\n private httpClient: HttpClient,\r\n private domSanitizer: DomSanitizer\r\n ) {\r\n this.transform(imageUrl);\r\n }\r\n\r\n transform(url: string) {\r\n this.httpClient.get(url, {responseType: 'blob'}).subscribe({\r\n next: (imageAsBase64) => {\r\n this.image = this.domSanitizer.bypassSecurityTrustUrl(URL.createObjectURL(imageAsBase64));\r\n this.isLoading = false;\r\n },\r\n });\r\n }\r\n\r\n onClose() {\r\n this.matDialogRef.close();\r\n }\r\n\r\n // onZoomIn() {\r\n // this.zoomLevel++;\r\n // }\r\n //\r\n // onZoomOut() {\r\n // if (this.zoomLevel > 1)\r\n // this.zoomLevel--;\r\n // else if (this.zoomLevel > 0.1)\r\n // this.zoomLevel = this.zoomLevel - 0.1;\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
\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
{{desc}}
\r\n \r\n
{{'handover.no-description' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core';\r\n\r\nimport {ImageModalComponent} from '@shared/components/image-modal/image-modal.component';\r\nimport {DialogService} from \"@shared/services/dialog.service\";\r\n\r\nimport {HandoverModel} from \"@handover/view-models/handover.model\";\r\nimport {HandoverNotificationsService} from \"@handover/routes/main-route/services/handover-notifications.service\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover-section',\r\n templateUrl: './handover-section.component.html',\r\n styleUrls: ['./handover-section.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverSectionComponent implements OnInit {\r\n\r\n @Input() desc? = '';\r\n @Input() images?: string[] = [];\r\n @Input() model?: HandoverModel;\r\n\r\n get isImagesVisible(): boolean {\r\n return this.images != null && this.images?.length > 0;\r\n }\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private handoverNotificationsService: HandoverNotificationsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n openImage(image: string) {\r\n this.dialogService.open(ImageModalComponent, image);\r\n }\r\n\r\n onImageLoaded() {\r\n this.model!.allImagesCount--;\r\n if (this.model?.allImagesCount === 0) {\r\n this.handoverNotificationsService.handoverImagesLoaded$.next(true);\r\n }\r\n }\r\n}\r\n","
\r\n
{{'handover.damages' |translate}}
\r\n
\r\n
\r\n
\r\n {{'handover.no-damages' | translate}}\r\n
\r\n
\r\n\r\n \r\n\r\n","import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core';\r\n\r\nimport {HandoverModel} from \"@handover/view-models/handover.model\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover-damages',\r\n templateUrl: './handover-damages.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverDamagesComponent implements OnInit {\r\n\r\n @Input() model?: HandoverModel;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
{{'handover.main-images' |translate}}
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n {{'handover.no-general-images' | translate}}\r\n
\r\n
\r\n","import {ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\nimport {HandoverModel} from \"@handover/view-models/handover.model\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover-general',\r\n templateUrl: './handover-general.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverGeneralComponent implements OnInit {\r\n\r\n @Input() model?: HandoverModel;\r\n\r\n get hasDescOrImages(): boolean {\r\n const hasDesc = this.model?.general?.desc != null && this.model!.general!.desc!.length > 0;\r\n const hasImages = this.model?.general?.imageUrls != null && this.model!.general!.imageUrls!.length > 0;\r\n return hasDesc || hasImages;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","
\r\n
{{'handover.comments' |translate}}
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n {{'handover.no-comments' | translate}}\r\n
\r\n
\r\n","import {ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\nimport {HandoverModel} from \"@handover/view-models/handover.model\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover-comments',\r\n templateUrl: './handover-comments.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverCommentsComponent implements OnInit {\r\n\r\n @Input() model?: HandoverModel;\r\n\r\n constructor() {\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
{{'handover.equipment' |translate}}
\r\n
\r\n
\r\n \r\n {{item}}\r\n \r\n
\r\n\r\n\r\n
\r\n {{'handover.no-equipment' | translate}}\r\n
\r\n
\r\n","import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core';\r\n\r\nimport {HandoverModel} from \"@handover/view-models/handover.model\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover-equipment',\r\n templateUrl: './handover-equipment.component.html',\r\n styleUrls: ['./handover-equipment.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HandoverEquipmentComponent implements OnInit {\r\n\r\n @Input() model?: HandoverModel;\r\n\r\n get hasEquipment(): boolean {\r\n return this.model?.equipmentItems != null && this.model?.equipmentItems.length > 0;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
{{'labels.vehicle' | translate | titlecase}}
\r\n
{{model?.vehicleName}}
\r\n
\r\n {{'labels.mileage' | translate}}:\r\n {{model?.mileage}} {{'measure-unit.kilometers-short' | translate}}\r\n {{'labels.fuel' | translate | titlecase}}:\r\n {{model?.fuel}}\r\n
\r\n
\r\n
{{fromOrToDriverTrans}}
\r\n
{{model?.driverFullName}}
\r\n
\r\n {{'handover.id-number' | translate}}\r\n {{model?.workerIdNumber}}\r\n {{'contact.phone-prefix' | translate | titlecase}}:\r\n {{model?.phone}}\r\n
\r\n
\r\n\r\n\r\n {{'labels.none' | translate}}\r\n\r\n","import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core';\r\n\r\nimport {HandoverModel} from \"@handover/view-models/handover.model\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover-header',\r\n templateUrl: './handover-header.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverHeaderComponent implements OnInit {\r\n\r\n @Input() model?: HandoverModel;\r\n @Input() fromOrToDriverTrans = '';\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n {{(model?.isGiven ? 'handover.report-title-given' : 'handover.report-title-return') | translate}} {{this.model?.uniqueNumber}}\r\n
\r\n
\r\n
{{item}}
\r\n
\r\n \r\n {{'handover.empty-field' | translate}}\r\n \r\n
\r\n
\r\n\r\n
\r\n {{model?.place}} {{model?.date | date:'medium'}}\r\n
\r\n \r\n {{'handover.empty-field' | translate}}\r\n \r\n
\r\n","import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core';\r\n\r\nimport {HandoverModel} from \"@handover/view-models/handover.model\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover-top-label',\r\n templateUrl: './handover-top-label.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverTopLabelComponent implements OnInit {\r\n\r\n @Input() model?: HandoverModel;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
{{'handover.statement' | translate}}
\r\n
{{model?.statement}}
\r\n\r\n
{{'handover.no-statement' | translate}}
\r\n
\r\n","import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core';\r\nimport {HandoverModel} from \"@handover/view-models/handover.model\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover-statement',\r\n templateUrl: './handover-statement.component.html',\r\n styleUrls: ['./handover-statement.component.scss']\r\n // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverStatementComponent implements OnInit {\r\n\r\n @Input() model?: HandoverModel;\r\n\r\n get hasStatement(): boolean {\r\n return this.model?.statement != null && this.model?.statement.length > 0;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n {{'handover.transferring-person' | translate}}\r\n {{model?.transferringPerson}}\r\n
\r\n
\r\n \r\n
\r\n {{'handover.driver-signature' | translate}}\r\n {{model?.driverFullName}}\r\n
\r\n
\r\n","import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core';\r\nimport {HandoverModel} from \"@handover/view-models/handover.model\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover-signature',\r\n templateUrl: './handover-signature.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverSignatureComponent implements OnInit {\r\n\r\n @Input() model?: HandoverModel;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core';\r\nimport {HandoverModel} from \"@handover/view-models/handover.model\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover-bottom-label',\r\n templateUrl: './handover-bottom-label.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverBottomLabelComponent implements OnInit {\r\n\r\n @Input() model?: HandoverModel;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
{{'handover.footer' | translate}} {{model?.createDate | date:'medium'}}
\r\n
\r\n","import {ChangeDetectionStrategy, Component, Input, isDevMode, OnInit} from '@angular/core';\r\n\r\nimport {DialogService} from \"@shared/services/dialog.service\";\r\n\r\nimport {HandoverModel} from \"@handover/view-models/handover.model\";\r\nimport {\r\n HandoverLimitedAccessModalComponent\r\n} from \"@handover/routes/main-route/components/vehicle-handovers-list/components/handover-limited-access-modal/handover-limited-access-modal.component\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover-menu',\r\n templateUrl: './handover-menu.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverMenuComponent implements OnInit {\r\n\r\n @Input() model?: HandoverModel;\r\n\r\n constructor(\r\n private dialogService: DialogService\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onCopyLink() {\r\n if (this.model?.isCreatedOnDesktop) {\r\n this.dialogService.open(HandoverLimitedAccessModalComponent);\r\n return;\r\n }\r\n\r\n navigator.clipboard.writeText(this.getHanoverUrl());\r\n }\r\n\r\n onPrint() {\r\n if (this.model?.isCreatedOnDesktop) {\r\n this.dialogService.open(HandoverLimitedAccessModalComponent);\r\n return;\r\n }\r\n\r\n window.open(this.getHanoverUrl(), '_blank')!.focus();\r\n }\r\n\r\n private getHanoverUrl(): string {\r\n const protocol = window.location.host.includes('localhost') ? 'http://' : 'https://';\r\n const url = `${protocol}${window.location.host}/handover/${this.model?.token}`;\r\n return url;\r\n }\r\n}\r\n","
\r\n \r\n\r\n \r\n
\r\n","
\r\n
\r\n \r\n
{{'labels.loading-data' | translate}}
\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 \r\n
\r\n \r\n
\r\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {MatDialogRef} from \"@angular/material/dialog\";\r\n\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\nimport {DialogService} from \"@shared/services/dialog.service\";\r\n\r\nimport {HandoverHttpService} from \"@handover/http-services/handover-http.service\";\r\nimport {HandoverNotificationsService} from \"@handover/routes/main-route/services/handover-notifications.service\";\r\nimport {HandoverModel} from '@handover/view-models/handover.model';\r\n\r\nimport {\r\n LoadingInitialDataComponent\r\n} from \"@layout/panel/components/loading-initial-data/loading-initial-data.component\";\r\nimport {tap} from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'handoverm-handover',\r\n templateUrl: './handover.component.html',\r\n styleUrls: ['/handover.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n isLoading = true;\r\n model?: HandoverModel;\r\n fromOrToDriverTrans = '';\r\n fromDriverTrans = '';\r\n toDriverTrans = '';\r\n isPrintMode = false;\r\n token = '';\r\n\r\n private loadingInitialDataComponentRef?: MatDialogRef;\r\n\r\n constructor(\r\n private handoverHttpService: HandoverHttpService,\r\n private handoverNotificationsService: HandoverNotificationsService,\r\n private translateService: TranslateService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private activatedRoute: ActivatedRoute,\r\n private dialogService: DialogService\r\n ) {\r\n super();\r\n this.setTranslations();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.token = this.activatedRoute.snapshot.paramMap.get('token') as string;\r\n if (this.token) {\r\n this.getHandoverByToken();\r\n } else {\r\n const givenId = this.activatedRoute.snapshot.paramMap.get('given-id') as string;\r\n if (givenId) {\r\n this.getHandoverByGivenId(givenId);\r\n } else\r\n this.subToSelectedHandoverIdChanged();\r\n }\r\n }\r\n\r\n private getHandoverByToken() {\r\n this.loadingInitialDataComponentRef = this.dialogService.open(LoadingInitialDataComponent);\r\n this.isPrintMode = true;\r\n this.handoverHttpService.getHandoverByToken(this.token).subscribe(handoverModel => {\r\n this.afterHandoverLoaded(handoverModel);\r\n });\r\n }\r\n\r\n private subToHandoverImagesLoaded() {\r\n if (this.model!.allImagesCount > 0) {\r\n this.handoverNotificationsService.handoverImagesLoaded$.subscribe(() => {\r\n this.loadingInitialDataComponentRef?.close();\r\n setTimeout(() => {\r\n if (this.isPrintMode)\r\n window.print();\r\n }, 2000);\r\n });\r\n } else {\r\n this.loadingInitialDataComponentRef?.close();\r\n }\r\n }\r\n\r\n private getHandoverByGivenId(givenId: string) {\r\n this.isPrintMode = true;\r\n const returnId = this.activatedRoute.snapshot.paramMap.get('return-id') ?? undefined;\r\n const returnAsNumber = isNaN(Number(returnId)) ? undefined : Number(returnId);\r\n this.getHandover(Number(givenId), returnAsNumber).subscribe();\r\n }\r\n\r\n private setTranslations() {\r\n this.translateService.get('handover.from-driver').subscribe(trans => this.fromDriverTrans = trans);\r\n this.translateService.get('handover.to-driver').subscribe(trans => this.toDriverTrans = trans);\r\n }\r\n\r\n private subToSelectedHandoverIdChanged() {\r\n this.addToUnsubscribe(\r\n this.handoverNotificationsService.selectedHandoverChanged$.subscribe(handoverListItem => {\r\n if (handoverListItem) {\r\n this.getHandover(handoverListItem.handoverGivenId, handoverListItem.handoverReturnId).subscribe(() => {\r\n if (this.model!.allImagesCount > 0)\r\n this.loadingInitialDataComponentRef = this.dialogService.open(LoadingInitialDataComponent);\r\n });\r\n }\r\n }));\r\n }\r\n\r\n private getHandover(handoverId: number, returnId?: number) {\r\n return this.handoverHttpService.getHandover(handoverId, returnId)\r\n .pipe(tap((handoverModel) => this.afterHandoverLoaded(handoverModel)));\r\n }\r\n\r\n private afterHandoverLoaded(handoverModel: HandoverModel) {\r\n this.model = handoverModel;\r\n this.subToHandoverImagesLoaded();\r\n this.fromOrToDriverTrans = this.model?.isGiven ? this.toDriverTrans : this.fromOrToDriverTrans;\r\n this.isLoading = false;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
\r\n \r\n
{{'labels.loading-data' | translate}}
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'handover.select-vehicle' | translate}}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
{{'handover.no-protocols-for-vehicle' | translate}}
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
{{'handover.select-protocol' | translate}}
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\n\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\n\r\nimport {HandoverNotificationsService} from \"@handover/routes/main-route/services/handover-notifications.service\";\r\nimport {HandoverHttpService} from \"@handover/http-services/handover-http.service\";\r\nimport {VehicleListItem} from \"@handover/view-models/vehicle-list-item\";\r\nimport {HandoverListItem} from \"@handover/view-models/handover-list-item\";\r\n\r\n@Component({\r\n selector: 'handovermod-right-panel',\r\n templateUrl: './right-panel.component.html',\r\n})\r\nexport class RightPanelComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n isVehicleSelected = false;\r\n selectedVehicle?: VehicleListItem;\r\n handovers?: HandoverListItem[];\r\n hasAnyHandovers = false;\r\n isLoading = false;\r\n isHandoverVisible = false;\r\n\r\n get isSelectProtocolInfoVisible(): boolean {\r\n return this.hasAnyHandovers && !this.isLoading && !this.isHandoverVisible;\r\n }\r\n\r\n constructor(\r\n private handoverNotificationsService: HandoverNotificationsService,\r\n private handoverHttpService: HandoverHttpService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subToSelectedVehicleChanged();\r\n\r\n this.addToUnsubscribe(\r\n this.handoverNotificationsService.selectedHandoverChanged$.subscribe(handoverId => {\r\n this.isHandoverVisible = handoverId != null;\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n private subToSelectedVehicleChanged() {\r\n this.addToUnsubscribe(\r\n this.handoverNotificationsService.selectedVehicleChanged$.subscribe(vehicle => {\r\n this.isLoading = true;\r\n this.hasAnyHandovers = false;\r\n this.isVehicleSelected = vehicle != null;\r\n this.selectedVehicle = vehicle;\r\n if (this.selectedVehicle) {\r\n this.loadHandoversForVehicle(this.selectedVehicle.vehicleId);\r\n } else {\r\n this.handovers = [];\r\n this.isLoading = false;\r\n }\r\n })\r\n );\r\n }\r\n\r\n private loadHandoversForVehicle(vehicleId: number) {\r\n this.handoverHttpService.getVehicleHandovers(vehicleId).subscribe(handovers => {\r\n this.handovers = handovers.sort((a, b) => b.date.getTime() - a.date.getTime());\r\n this.hasAnyHandovers = this.handovers.length > 0;\r\n this.isLoading = false;\r\n });\r\n }\r\n}\r\n","
\r\n\r\n
\r\n \r\n {{'handover.statement-header' | translate}}\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
{{'labels.loading-data' | translate}}
\r\n
\r\n
\r\n\r\n \r\n
{{'handover.statement-add' | translate}}
\r\n
{{'handover.statement-add-desc' | translate}}
\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\r\n
\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {FormBuilder, FormControl, Validators} from \"@angular/forms\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport {HandoverNotificationsService} from \"@handover/routes/main-route/services/handover-notifications.service\";\r\nimport {HandoverHttpService} from \"@handover/http-services/handover-http.service\";\r\nimport { NotificationService } from '@commons/services/notification/notification.service';\r\n\r\n@Component({\r\n selector: 'handovermod-worker-statement',\r\n templateUrl: './worker-statement.component.html',\r\n})\r\nexport class WorkerStatementComponent implements OnInit {\r\n\r\n isLoading = true;\r\n isSaving = false;\r\n public maxLengthRegulations: number = 30000;\r\n\r\n public form = this.formBuilder.group({\r\n text: new FormControl('', [Validators.required])\r\n });\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private handoverNotificationsService: HandoverNotificationsService,\r\n private handoverHttpService: HandoverHttpService,\r\n private translate: TranslateService,\r\n private notificationService: NotificationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.handoverHttpService.getStatement().subscribe(\r\n statement => {\r\n this.form.controls.text.setValue(statement);\r\n this.isLoading = false;\r\n },\r\n () => {\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n\r\n public onSave(): void {\r\n if (!this.isValidRegulationText()) {\r\n alert(this.translate.instant('handover.max-length-regulations-error', { value: this.maxLengthRegulations }));\r\n return;\r\n }\r\n\r\n this.isSaving = true;\r\n const statement = this.form.controls.text.value?.trim() ?? '';\r\n this.handoverHttpService.setStatement(statement).subscribe(\r\n () => {\r\n this.onSuccessSaveRegulations();\r\n },\r\n () => {\r\n this.isSaving = false;\r\n this.notificationService.showError('Wystąpił problem, spróbuj jeszcze raz.');\r\n },\r\n );\r\n }\r\n\r\n onGoToList() {\r\n this.handoverNotificationsService.isWorkerStatementVisible$.next(false);\r\n }\r\n\r\n onCancel() {\r\n this.handoverNotificationsService.isWorkerStatementVisible$.next(false);\r\n }\r\n\r\n private isValidRegulationText(): boolean {\r\n const { text } = this.form.value;\r\n const ifTextLengthValid = (text && text?.length <= this.maxLengthRegulations);\r\n\r\n if (!text || ifTextLengthValid) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private onSuccessSaveRegulations(): void {\r\n this.isSaving = false;\r\n this.notificationService.showSuccess('Poprawnie zapisano regulamin.');\r\n this.onGoToList();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n \r\n

\r\n {{ 'handover.activate-functionality' | translate }}\r\n

\r\n \r\n {{ 'handover.activate-functionality-description' | translate }}\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { User } from '@commons/models/domain/User';\r\nimport { UserHttpService } from '@shared/services-http/user-http.service';\r\n\r\n@Component({\r\n selector: 'app-handover-add',\r\n templateUrl: './handover-add.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HandoverAddComponent {\r\n\r\n public emailIsSended: boolean;\r\n\r\n private get user(): User | undefined {\r\n return this.userHttpService?.userViewModel?.user;\r\n }\r\n\r\n constructor(private userHttpService: UserHttpService) { }\r\n\r\n public sendEmail(): void {\r\n const email = \"rozwoj@tekom.pl\";\r\n const subject = \"Elektroniczne protokoły przekazania pojazdu\";\r\n const msgBody = `Jestem zainteresowany funkcją elektronicznych protokołów. Proszę o kontakt: ${ this.user?.Email }`;\r\n this.emailIsSended = true;\r\n window.open(`mailto:${email}?subject=${subject}&body=${msgBody}`);\r\n }\r\n}\r\n","
\r\n\r\n
\r\n {{'handover.header' | translate}}\r\n\r\n \r\n
\r\n {{'handover.edit-worker-statement' | translate}}\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
\r\n
\r\n\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\n\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\n\r\nimport {HandoverNotificationsService} from \"@handover/routes/main-route/services/handover-notifications.service\";\r\nimport { PermissionService } from '@shared/services/permission.service';\r\n\r\n@Component({\r\n selector: 'handovermod-main-route',\r\n templateUrl: './main-route.component.html',\r\n styleUrls: ['./main-route.component.scss']\r\n})\r\nexport class MainRouteComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n isStatementVisible = false;\r\n public hasAccessToHandover: boolean;\r\n\r\n constructor(\r\n private newNavigationService: NewNavigationService,\r\n private handoverNotificationsService: HandoverNotificationsService,\r\n private permissionService: PermissionService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setPermissions();\r\n this.addToUnsubscribe(\r\n this.handoverNotificationsService.isWorkerStatementVisible$.subscribe(isVisible => this.isStatementVisible = isVisible)\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n private setPermissions(): void {\r\n this.hasAccessToHandover = this.permissionService.hasHandover();\r\n }\r\n\r\n onClose() {\r\n this.newNavigationService.toMainPanel();\r\n }\r\n\r\n onShowStatement() {\r\n this.handoverNotificationsService.isWorkerStatementVisible$.next(true);\r\n }\r\n\r\n\r\n}\r\n","export enum AreaPanelViewMode {\r\n List = 1,\r\n Form = 2,\r\n}\r\n","export enum AreaTypeEnum {\r\n\r\n Polygon = 1,\r\n Circle = 2,\r\n Line = 3\r\n}\r\n","import { Injectable, NgZone } from '@angular/core';\r\n\r\nimport { Observable, Subject, Subscription, debounceTime, fromEvent } from 'rxjs';\r\n\r\nimport {\r\n LineUtil, DomUtil, Point as LPoint,\r\n DomEvent, FeatureGroup, Map, LatLng, Circle, CircleMarkerOptions,\r\n Polygon, Polyline, PolylineOptions, LeafletMouseEvent, Marker, Icon,\r\n Popup, DivIcon, Layer, polyline, Path, latLng, point, latLngBounds\r\n} from 'leaflet';\r\n\r\nimport { MapService } from '../../map/map.service';\r\n\r\nimport { AreaTypeEnum } from '../../../../enums/area-type.enum';\r\nimport { Point } from '../../../../models/domain/Point';\r\nimport { Area } from '../../../../models/domain/Area';\r\nimport { Consts } from '../../../../consts/consts';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nexport enum State {\r\n Default,\r\n\r\n CircleOrigin,\r\n CircleRadiusInit,\r\n CircleRadius,\r\n CircleDone,\r\n\r\n PolygonFirstVertex,\r\n PolygonSecondVertexInit,\r\n PolygonSecondVertex,\r\n PolygonDone,\r\n\r\n LineFirstPoint,\r\n LineSecondPointInit,\r\n LineSecondPoint,\r\n LineDone\r\n}\r\n\r\n\r\nclass CreatorMarker extends Circle {\r\n segment?: LatLng[];\r\n}\r\n\r\n\r\n/**\r\n * Provides area drawing utilities\r\n */\r\n@Injectable()\r\nexport class AreaDrawerService {\r\n\r\n /**\r\n * Area to draw\r\n */\r\n private area?: Area;\r\n\r\n /**\r\n * Feature group, needed for hiding/showing area on map\r\n */\r\n private group?: FeatureGroup;\r\n\r\n /**\r\n * Subject for sending drawn area\r\n */\r\n private drawnAreaSubject: Subject = new Subject();\r\n\r\n /**\r\n * Returns drawn area stream\r\n */\r\n public get drawnArea$(): Observable {\r\n return this.drawnAreaSubject.asObservable();\r\n }\r\n\r\n /**\r\n * State\r\n */\r\n private state: State = State.Default;\r\n\r\n /**\r\n * Setter of service state\r\n */\r\n public set areaDrawerState(state: State) {\r\n this.state = state;\r\n }\r\n\r\n /**\r\n * Flag indicating whether given area should be in edition mode\r\n */\r\n private inEdition?: boolean;\r\n\r\n /**\r\n * Flag indicating whether shape is editable\r\n */\r\n private editable?: boolean;\r\n\r\n /**\r\n * Subject for selected arena communication: area drawer service -> list lite component\r\n */\r\n public selectedAreaSubject: Subject = new Subject();\r\n\r\n /**\r\n * Subject for drawing ended signal communication: area create component & area form component -> area drawer service\r\n */\r\n public drawingDoneSubject: Subject = new Subject();\r\n\r\n /**\r\n * Point creator's marker's movement event handler function: needed for removing after drawing is done\r\n */\r\n private creatorMovementHandler: (event: LeafletMouseEvent) => void;\r\n\r\n /**\r\n * Point creator's marker's click event handler function: needed for removing after drawing is done\r\n */\r\n private creatorClickHandler: (event: LeafletMouseEvent) => void;\r\n\r\n /**\r\n * Point creator marker\r\n */\r\n private creator?: CreatorMarker;\r\n\r\n /**\r\n * Latlng of previous mouse down on shape - needed for smooth translation of shape\r\n */\r\n private mousePrev?: LatLng;\r\n\r\n /**\r\n * Flag indicating whether circle slider is in fixed position\r\n */\r\n private IS_SLIDER_FIXED = true;\r\n\r\n /**\r\n * Default area thickness\r\n */\r\n private CIRCLE_DEFAULT_THICKNESS = 1;\r\n private LINE_DEFAULT_THICKNESS = 1;\r\n private POLYGON_DEFAULT_THICKNESS = 1;\r\n\r\n private AREA_COLOR = '#4196FF';\r\n private AREA_COLOR_OPACITY = 0.15;\r\n\r\n /**\r\n * Costructor of service\r\n * @param $map map service\r\n */\r\n\r\n\r\n public onClickEditTooltipArea$: Subject = new Subject();\r\n public onClickDeleteTooltipArea$: Subject = new Subject();\r\n\r\n public constructor(\r\n private $map: MapService,\r\n private $zone: NgZone,\r\n private translate: TranslateService,\r\n ) {\r\n\r\n // Build creator movement event handler callback\r\n this.creatorMovementHandler = (event) => {\r\n const mouse = (event as LeafletMouseEvent).latlng;\r\n if (this.creator && this.group) {\r\n this.group.removeLayer(this.creator);\r\n this.creator = undefined;\r\n }\r\n this.creator = this.getCreatorMarker(this.area!, mouse);\r\n if (this.creator && this.group) {\r\n this.group.addLayer(this.creator);\r\n }\r\n };\r\n\r\n // Build creator click event handler callback\r\n this.creatorClickHandler = (event) => {\r\n\r\n this.$zone.run(() => {\r\n\r\n if (this.creator) {\r\n // Add new vertex to area\r\n this.addVertexToArea(this.creator.getLatLng(), this.area!);\r\n // Push changes\r\n this.drawnAreaSubject.next(this.area!);\r\n // Redraw area\r\n this.remove();\r\n this.setArea(this.area, this.inEdition);\r\n this.draw();\r\n }\r\n });\r\n };\r\n\r\n // When drawing is done\r\n this.drawingDoneSubject.subscribe(nothing => {\r\n this.removeCreatorEventHandlers();\r\n });\r\n\r\n // Subscribe for map events\r\n this.$map.mapEvent$.subscribe((mapEvent: any) => {\r\n\r\n // Exit if area does not exist or existing area is being modificated\r\n if (!this.area || this.area.Id) {\r\n return;\r\n }\r\n\r\n // Exit when shape is done\r\n if (this.state === State.CircleDone ||\r\n this.state === State.LineDone ||\r\n this.state === State.PolygonDone) {\r\n return;\r\n }\r\n\r\n switch (this.area.Tp) {\r\n\r\n // Circle\r\n case AreaTypeEnum.Circle:\r\n\r\n if (this.state === State.Default) {\r\n this.state = State.CircleOrigin;\r\n }\r\n\r\n // Origin\r\n if (this.state === State.CircleOrigin) {\r\n // Mouse down\r\n if (mapEvent.mapEventType === 'mousedown') {\r\n const event = mapEvent.event as LeafletMouseEvent;\r\n const origin: Point = {\r\n Lat: event.latlng.lat.toString(),\r\n Lon: event.latlng.lng.toString(),\r\n };\r\n this.area.Coords.push(origin);\r\n this.state = State.CircleRadiusInit;\r\n }\r\n }\r\n\r\n // Radius init\r\n if (this.state === State.CircleRadiusInit) {\r\n // Mouse move\r\n if (mapEvent.mapEventType === 'mousemove') {\r\n const event = mapEvent.event as LeafletMouseEvent;\r\n const pointOnCircle: Point = {\r\n Lat: this.area.Coords[0].Lat,\r\n Lon: event.latlng.lng.toString()\r\n };\r\n this.area.Coords.push(pointOnCircle);\r\n this.state = State.CircleRadius;\r\n }\r\n }\r\n\r\n // Radius\r\n if (this.state === State.CircleRadius) {\r\n // Mouse move\r\n if (mapEvent.mapEventType === 'mousemove') {\r\n const event = mapEvent.event as LeafletMouseEvent;\r\n const pointOnCircle = this.area.Coords[1];\r\n let pointLat_: string;\r\n let pointLon_: string;\r\n if (this.IS_SLIDER_FIXED) {\r\n const zoom = this.$map.map!.getZoom();\r\n const origin = this.convertToLatLng(this.area.Coords[0]);\r\n const originPro = this.$map.map!.project(origin, zoom);\r\n const eventPro = this.$map.map!.project(event.latlng, zoom);\r\n const xDiff = eventPro.x - originPro.x;\r\n const yDiff = eventPro.y - originPro.y;\r\n const distance = Math.sqrt(Math.pow(xDiff, 2) + Math.pow(yDiff, 2));\r\n const pointPro = originPro.clone();\r\n pointPro.x += distance;\r\n const _point = this.$map.map!.unproject(pointPro, zoom);\r\n pointLat_ = _point.lat.toString();\r\n pointLon_ = _point.lng.toString();\r\n } else {\r\n pointLat_ = event.latlng.lat.toString();\r\n pointLon_ = event.latlng.lng.toString();\r\n }\r\n pointOnCircle.Lat = pointLat_;\r\n pointOnCircle.Lon = pointLon_;\r\n\r\n\r\n\r\n this.drawnAreaSubject.next(this.area);\r\n }\r\n // Mouse up\r\n if (mapEvent.mapEventType === 'mouseup') {\r\n this.state = State.CircleDone;\r\n }\r\n }\r\n\r\n break;\r\n\r\n\r\n // Polygon\r\n case AreaTypeEnum.Polygon:\r\n\r\n if (this.state === State.Default) {\r\n this.state = State.PolygonFirstVertex;\r\n }\r\n\r\n // First vertex\r\n if (this.state === State.PolygonFirstVertex) {\r\n // Mouse down\r\n if (mapEvent.mapEventType === 'mousedown') {\r\n const event = mapEvent.event as LeafletMouseEvent;\r\n const v1: Point = {\r\n Lat: event.latlng.lat.toString(),\r\n Lon: event.latlng.lng.toString(),\r\n };\r\n this.area.Coords.push(v1);\r\n this.state = State.PolygonSecondVertexInit;\r\n }\r\n }\r\n\r\n // Second vertex init\r\n if (this.state === State.PolygonSecondVertexInit) {\r\n // Mouse move\r\n if (mapEvent.mapEventType === 'mousemove') {\r\n const event = mapEvent.event as LeafletMouseEvent;\r\n const v1 = this.area.Coords[0];\r\n const v2: Point = { Lat: v1.Lat, Lon: event.latlng.lng.toString() };\r\n const v3: Point = { Lat: event.latlng.lng.toString(), Lon: event.latlng.lng.toString() };\r\n const v4: Point = { Lat: event.latlng.lng.toString(), Lon: v1.Lon };\r\n this.area.Coords.push(v2);\r\n this.area.Coords.push(v3);\r\n this.area.Coords.push(v4);\r\n this.state = State.PolygonSecondVertex;\r\n }\r\n }\r\n\r\n // Second vertex\r\n if (this.state === State.PolygonSecondVertex) {\r\n // Mouse move\r\n if (mapEvent.mapEventType === 'mousemove') {\r\n const event = mapEvent.event as LeafletMouseEvent;\r\n const v1 = this.area.Coords[0];\r\n const v2 = this.area.Coords[1];\r\n const v3 = this.area.Coords[2];\r\n const v4 = this.area.Coords[3];\r\n v2.Lon = event.latlng.lng.toString();\r\n v3.Lat = event.latlng.lat.toString();\r\n v3.Lon = event.latlng.lng.toString();\r\n v4.Lat = event.latlng.lat.toString();\r\n this.drawnAreaSubject.next(this.area);\r\n }\r\n // Mouse up\r\n if (mapEvent.mapEventType === 'mouseup') {\r\n this.state = State.PolygonDone;\r\n }\r\n }\r\n\r\n break;\r\n\r\n\r\n // Line\r\n case AreaTypeEnum.Line:\r\n\r\n if (this.state === State.Default) {\r\n this.state = State.LineFirstPoint;\r\n }\r\n\r\n // First point\r\n if (this.state === State.LineFirstPoint) {\r\n // Mouse down\r\n if (mapEvent.mapEventType === 'mousedown') {\r\n const event = mapEvent.event as LeafletMouseEvent;\r\n const first: Point = {\r\n Lat: event.latlng.lat.toString(),\r\n Lon: event.latlng.lng.toString(),\r\n };\r\n this.area.Coords.push(first);\r\n this.state = State.LineSecondPointInit;\r\n }\r\n }\r\n\r\n // Second point init\r\n if (this.state === State.LineSecondPointInit) {\r\n // Mouse move\r\n if (mapEvent.mapEventType === 'mousemove') {\r\n const event = mapEvent.event as LeafletMouseEvent;\r\n const second: Point = {\r\n Lat: event.latlng.lat.toString(),\r\n Lon: event.latlng.lng.toString(),\r\n };\r\n this.area.Coords.push(second);\r\n this.state = State.LineSecondPoint;\r\n }\r\n }\r\n\r\n // Second point\r\n if (this.state === State.LineSecondPoint) {\r\n // Mouse move\r\n if (mapEvent.mapEventType === 'mousemove') {\r\n const event = mapEvent.event as LeafletMouseEvent;\r\n const second = this.area.Coords[1];\r\n second.Lat = event.latlng.lat.toString();\r\n second.Lon = event.latlng.lng.toString();\r\n this.drawnAreaSubject.next(this.area);\r\n }\r\n // Mouse up\r\n if (mapEvent.mapEventType === 'mouseup') {\r\n this.state = State.LineDone;\r\n }\r\n }\r\n\r\n break;\r\n }\r\n\r\n // Redraw area\r\n this.remove();\r\n this.setArea(this.area, this.inEdition);\r\n this.draw();\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Sets area to draw\r\n * @param area area to draw\r\n * @param inEdition flag indicating whether given area should be in edition mode\r\n * @param editable flag indicating whether given area is editable\r\n */\r\n public setArea(area?: Area, inEdition: boolean = false, editable: boolean = true): void {\r\n this.inEdition = inEdition;\r\n this.editable = editable;\r\n\r\n // When editing existing shape set state to Done\r\n if (area && area.Id) {\r\n if (area.Tp === AreaTypeEnum.Circle) {\r\n this.state = State.CircleDone;\r\n } else if (area.Tp === AreaTypeEnum.Polygon) {\r\n this.state = State.PolygonDone;\r\n } else if (area.Tp === AreaTypeEnum.Line) {\r\n this.state = State.LineDone;\r\n }\r\n }\r\n\r\n // Set up stuff according to area type\r\n if (area && this.inEdition) {\r\n if (area.Tp === AreaTypeEnum.Circle) {\r\n // empty\r\n } else if (area.Tp === AreaTypeEnum.Polygon) {\r\n this.addCreatorEventHandlers();\r\n } else if (area.Tp === AreaTypeEnum.Line) {\r\n this.addCreatorEventHandlers();\r\n }\r\n }\r\n\r\n this.area = area;\r\n }\r\n\r\n\r\n /**\r\n * Draws given area on a map\r\n */\r\n public draw(): any {\r\n\r\n if (!this.area) {\r\n return;\r\n }\r\n\r\n if (this.$map.map && this.inEdition) {\r\n this.$map.map.dragging.disable();\r\n DomUtil.addClass(this.$map.map.getContainer(), 'crosshair-cursor-enabled');\r\n }\r\n\r\n this.area = { \r\n ...this.area,\r\n Cl: this.area?.Cl?.replace('00', ''),\r\n };\r\n if (this.area.Tp === AreaTypeEnum.Circle) {\r\n return this.drawCircle(this.area, this.inEdition!, this.editable!);\r\n\r\n } else if (this.area.Tp === AreaTypeEnum.Polygon) {\r\n return this.drawPolygon(this.area, this.inEdition!, this.editable!);\r\n\r\n } else if (this.area.Tp === AreaTypeEnum.Line) {\r\n return this.drawLine(this.area, this.inEdition!, this.editable!);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Removes all drawn areas\r\n */\r\n public remove(): void {\r\n\r\n if (this.$map.map) {\r\n this.$map.map.dragging.enable();\r\n DomUtil.removeClass(this.$map.map.getContainer(), 'crosshair-cursor-enabled');\r\n }\r\n\r\n this.$map.groups.areas.clearLayers();\r\n this.group = undefined;\r\n\r\n this.removeCreatorEventHandlers();\r\n }\r\n\r\n\r\n /**\r\n * Fit to bounds to visible area\r\n */\r\n public fitBoundsToVisibleArea(bounds: any = this.$map.groups.areas.getBounds()): void {\r\n if (bounds && bounds.isValid()) {\r\n this.$map.map!.fitBounds(bounds, Consts.MapPadding);\r\n }\r\n }\r\n\r\n\r\n\r\n private calculateProperPoint(a: any, b: any, r: number): any {\r\n\r\n const sin = Math.sin;\r\n const asin = Math.asin;\r\n const cos = Math.cos;\r\n const atan2 = Math.atan2;\r\n\r\n const R = 6371e3;\r\n\r\n const aLat = parseFloat(a.Lat) * Math.PI / 180;\r\n const aLng = parseFloat(a.Lon) * Math.PI / 180;\r\n const bLat = aLat; // parseFloat(b.Lat) * Math.PI / 180;\r\n\r\n const diff = r * (360 / (cos(aLat) * R));\r\n\r\n // const bLng = parseFloat(b.Lon) * Math.PI / 180;\r\n const bLng = aLng + diff;\r\n\r\n\r\n\r\n // calculate bearing\r\n const X = sin(bLng - aLng) * cos(bLat);\r\n const Y = cos(aLat) * sin(bLat) - sin(aLat) * cos(bLat) * cos(bLng - aLng);\r\n const B = atan2(X, Y);\r\n\r\n const _cLat = asin(sin(aLat) * cos(r / R) + cos(aLat) * sin(r / R) * cos(B));\r\n const _c1 = (sin(B) * sin(r / R) * cos(aLat));\r\n const _c2 = (cos(r / R) - sin(aLat) * sin(_cLat));\r\n const _c3 = atan2(_c1, _c2);\r\n const _cLng = aLng + _c3;\r\n\r\n const cLat = _cLat * 180 / Math.PI;\r\n const cLng = _cLng * 180 / Math.PI;\r\n\r\n const _b = { Lat: cLat.toString(), Lon: cLng.toString() };\r\n\r\n return _b;\r\n }\r\n\r\n /**\r\n * Draws circle on a map\r\n * @param area area to draw\r\n * @param inEdition flag indicating whether given area should be in edition mode\r\n * @param editable flag indicating whether given area is editable\r\n */\r\n private drawCircle(area: Area, inEdition: boolean, editable: boolean): Circle {\r\n\r\n // Area Group\r\n this.group = new FeatureGroup();\r\n this.$map.groups.areas.addLayer(this.group);\r\n\r\n if (area.Coords.length === 1) {\r\n\r\n // Small radius\r\n const origin = this.convertToLatLng(area.Coords[0]);\r\n const radius = 30; // in pixels\r\n\r\n // Options\r\n const weight = this.getWeightInPixels(area);\r\n const options: CircleMarkerOptions = { weight };\r\n\r\n // Draw circle\r\n const circle = new Circle(origin, radius, options);\r\n this.group.addLayer(circle);\r\n\r\n } else if (area.Coords.length === 2) {\r\n\r\n // Compute radius\r\n const origin = this.convertToLatLng(area.Coords[0]);\r\n const pointOnCircle = this.convertToLatLng(area.Coords[1]);\r\n const radius = this.$map.map!.distance(origin, pointOnCircle); // in pixels\r\n\r\n\r\n\r\n // Options\r\n const weight = this.getWeightInPixels(area);\r\n const options: any = {\r\n weight,\r\n fillOpacity: this.AREA_COLOR_OPACITY,\r\n color: area?.Cl || this.AREA_COLOR,\r\n areaData: { ...area },\r\n };\r\n\r\n // Draw circle\r\n const circle = new Circle(origin, radius, options);\r\n !this.inEdition && this.customPopupArea(circle, options.areaData);\r\n\r\n this.group.addLayer(circle);\r\n\r\n // Edition mode\r\n if (inEdition) {\r\n\r\n let pointForMarker = this.convertToLatLng(area.Coords[1]);\r\n\r\n if (area.Coords[0].Lat !== area.Coords[1].Lat) {\r\n const properpoint = this.calculateProperPoint(area.Coords[0], area.Coords[1], radius);\r\n pointForMarker = this.convertToLatLng(properpoint);\r\n }\r\n\r\n // Draw slider\r\n const icon = new DivIcon({ html: '
' });\r\n const slider = new Marker([pointForMarker.lat, pointForMarker.lng], {\r\n icon: icon\r\n // icon: new Icon({\r\n // iconUrl: '/assets/img/slider.png',\r\n // iconSize: [32, 26], // size of the icon\r\n // iconAnchor: [16, 13], // point of the icon which will correspond to marker's location\r\n // })\r\n });\r\n this.group.addLayer(slider);\r\n\r\n // Events\r\n // Slider Events\r\n const mousemoveSlider = (event: LeafletMouseEvent) => {\r\n // Refresh slider\r\n const mouse = event.latlng;\r\n const originLng = parseFloat(area.Coords[0].Lon);\r\n let newLat = mouse.lat;\r\n let newLng = mouse.lng;\r\n if (this.IS_SLIDER_FIXED) {\r\n newLat = slider.getLatLng().lat;\r\n newLng = mouse.lng > originLng ? mouse.lng : originLng;\r\n }\r\n slider.setLatLng([newLat, newLng]);\r\n // Refresh circle\r\n const _origin = area.Coords[0];\r\n const _pointOnCircle = area.Coords[1];\r\n _pointOnCircle.Lat = newLat.toString();\r\n _pointOnCircle.Lon = newLng.toString();\r\n const _radius = this.$map.map!.distance(\r\n this.convertToLatLng(_origin),\r\n this.convertToLatLng(_pointOnCircle)\r\n );\r\n circle.setRadius(_radius);\r\n // Push changes\r\n this.$zone.run(() => {\r\n this.drawnAreaSubject.next(area);\r\n });\r\n };\r\n\r\n slider.on('mousedown', (event) => {\r\n this.$map.map!.on('mousemove', mousemoveSlider);\r\n });\r\n\r\n this.$map.map!.on('mouseup', (event) => {\r\n this.$map.map!.off('mousemove', mousemoveSlider);\r\n });\r\n\r\n // Circle Events\r\n this.bindEventsToShape(circle, area, [slider]);\r\n\r\n } else if (editable) {\r\n\r\n // Draw edit popup if not in edition mode and area is editable\r\n // this.bindEditPopupTo(circle);\r\n\r\n }\r\n\r\n // Draw label\r\n // circle.bindTooltip(area.AreaName, { className: 'area-label', permanent: true, direction: 'center' });\r\n return circle;\r\n }\r\n\r\n return null as any;\r\n }\r\n\r\n\r\n /**\r\n * Draws polygon on a map\r\n * @param area area to draw\r\n * @param inEdition flag indicating whether given area should be in edition mode\r\n * @param editable flag indicating whether given area is editable\r\n */\r\n private drawPolygon(area: Area, inEdition: boolean, editable: boolean): Polygon {\r\n\r\n // Area Group\r\n this.group = new FeatureGroup();\r\n this.$map.groups.areas.addLayer(this.group);\r\n\r\n if (area.Coords.length > 0) {\r\n\r\n // Options\r\n const weight = this.getWeightInPixels(area);\r\n const options: any = {\r\n weight,\r\n color: area?.Cl || this.AREA_COLOR,\r\n fillOpacity: this.AREA_COLOR_OPACITY,\r\n dashArray: this.state === State.PolygonSecondVertex ? '20 20' : '',\r\n areaData: { ...area },\r\n };\r\n\r\n // Draw polygon\r\n const polygon = new Polygon(this.convertToLatLngs(area.Coords), options);\r\n !this.inEdition && this.customPopupArea(polygon, options.areaData);\r\n\r\n this.group.addLayer(polygon);\r\n\r\n // Edition mode\r\n if (inEdition) {\r\n\r\n // Markers\r\n const markers = (this.state === State.PolygonDone) ? this.buildMarkers(polygon, area) : [];\r\n\r\n // Polygon Events\r\n this.bindEventsToShape(polygon, area, markers);\r\n\r\n } else if (editable) {\r\n\r\n // Draw edit popup if not in edition mode and area is editable\r\n // this.bindEditPopupTo(polygon);\r\n\r\n }\r\n\r\n return polygon;\r\n // Draw label\r\n // polygon.bindTooltip(area.AreaName, { className: 'area-label', permanent: true, direction: 'center' });\r\n }\r\n\r\n return null as any;\r\n }\r\n\r\n\r\n /**\r\n * Draws line on a map\r\n * @param area area to draw\r\n * @param inEdition flag indicating whether given area should be in edition mode\r\n * @param editable flag indicating whether given area is editable\r\n */\r\n private drawLine(area: Area, inEdition: boolean, editable: boolean): Polyline {\r\n\r\n // Area Group\r\n this.group = new FeatureGroup();\r\n this.$map.groups.areas.addLayer(this.group);\r\n\r\n if (area.Coords.length > 0) {\r\n\r\n // Options\r\n const weight = this.getWeightInPixels(area);\r\n const options: any = {\r\n weight,\r\n color: area?.Cl || this.AREA_COLOR,\r\n fillOpacity: this.AREA_COLOR_OPACITY,\r\n dashArray: this.state === State.LineSecondPoint ? '20 20' : '',\r\n areaData: { ...area },\r\n };\r\n\r\n // Draw line\r\n const line = new Polyline(this.convertToLatLngs(area.Coords), options);\r\n !this.inEdition && this.customPopupArea(line, options.areaData);\r\n this.group.addLayer(line);\r\n\r\n // Edition mode\r\n if (inEdition) {\r\n\r\n // Markers\r\n const markers = (this.state === State.LineDone) ? this.buildMarkers(line, area) : [];\r\n\r\n // Line Events\r\n this.bindEventsToShape(line, area, markers);\r\n\r\n } else if (editable) {\r\n\r\n // Draw edit popup if not in edition mode and area is editable\r\n // this.bindEditPopupTo(line);\r\n\r\n }\r\n\r\n // Draw label\r\n // line.bindTooltip(area.AreaName, { className: `area-label`, permanent: true, direction: 'center', interactive: true });\r\n return line;\r\n }\r\n return null as any;\r\n }\r\n\r\n\r\n /**\r\n * Compute line weight in pixels from given area thickness\r\n * @param area area\r\n */\r\n private getWeightInPixels(area: Area): number {\r\n\r\n if (area.Tp === AreaTypeEnum.Circle) {\r\n return this.CIRCLE_DEFAULT_THICKNESS;\r\n } else if (area.Tp === AreaTypeEnum.Polygon) {\r\n return Math.floor(this.POLYGON_DEFAULT_THICKNESS);\r\n } else if (area.Tp === AreaTypeEnum.Line) {\r\n {\r\n // const metresPerPixel = 40075016.686 *\r\n // Math.abs(Math.cos(this.$map.map.getCenter().lat * 180 / Math.PI)) / Math.pow(2, this.$map.map.getZoom() + 8);\r\n const weight = area.Th / 5.0; // thickness = 100-105 m -> weight = 20 px\r\n return Math.floor(weight);\r\n }\r\n }\r\n throw new Error(\"Unsupported AreaType: \" + area.Tp);\r\n }\r\n\r\n\r\n /**\r\n * Binds edit popup to marker\r\n * @param layer leaflet layer\r\n */\r\n private bindEditPopupTo(layer: Layer) {\r\n\r\n\r\n // Draw popup\r\n const _Popup = Popup.extend({ options: { areaId: null } });\r\n const popup = new _Popup();\r\n popup.className = 'area-edit-popup';\r\n popup.closeButton = false;\r\n popup.keepInView = false;\r\n popup.autoPan = false;\r\n popup.areaId = this.area!.Id;\r\n\r\n const html = this.getAreaEditPopupHtml();\r\n popup.setContent(html);\r\n layer.bindPopup(popup);\r\n\r\n const handler = () => {\r\n // Event is fired outside angular context\r\n this.$zone.run(() => {\r\n this.selectedAreaSubject.next(this.area!);\r\n });\r\n };\r\n\r\n layer.on('click', (evt) => {\r\n // const _latLng = layer.getTooltip().getLatLng();\r\n // popup.setLatLng(_latLng);\r\n });\r\n\r\n\r\n // Popup Events\r\n layer.on('popupopen', (event) => {\r\n DomEvent.addListener(popup.getElement(), 'click', handler);\r\n const _latLng = layer.getTooltip()!.getLatLng();\r\n popup.setLatLng(_latLng);\r\n });\r\n\r\n layer.on('popupclose', (event) => {\r\n DomEvent.removeListener(popup.getElement(), 'click', handler);\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Returns area edit popup HTML\r\n */\r\n private getAreaEditPopupHtml(): string {\r\n\r\n const html = `\r\n
\r\n Edytuj\r\n
\r\n `;\r\n\r\n return html;\r\n }\r\n\r\n\r\n /**\r\n * Converts given point to Leaflet's LatLng object\r\n * @param point\r\n */\r\n private convertToLatLng(_point: Point): LatLng {\r\n\r\n return new LatLng(parseFloat(_point.Lat), parseFloat(_point.Lon));\r\n }\r\n\r\n\r\n /**\r\n * Converts array of points to array of leaflet's latlngs\r\n * @param points points\r\n */\r\n private convertToLatLngs(points: Point[]): LatLng[] {\r\n\r\n const latLngs: LatLng[] = [];\r\n\r\n for (const _point of points) {\r\n const _latLng = this.convertToLatLng(_point);\r\n latLngs.push(_latLng);\r\n }\r\n\r\n return latLngs;\r\n }\r\n\r\n\r\n /**\r\n *\r\n * @param shape\r\n * @param area\r\n * @param markers\r\n */\r\n private bindEventsToShape(shape: any, area: Area, markers: Marker[] | Circle[]): void {\r\n\r\n const mousemove = (event: LeafletMouseEvent) => {\r\n this.$zone.run(() => {\r\n\r\n // Refresh shape\r\n const mouse = event.latlng;\r\n this.moveShape(shape, area, markers, mouse, this.mousePrev!);\r\n this.mousePrev = mouse;\r\n // Push changes\r\n this.drawnAreaSubject.next(area);\r\n });\r\n };\r\n\r\n\r\n shape.on('mousedown', (event: LeafletMouseEvent) => {\r\n this.mousePrev = event.latlng;\r\n this.$map.map!.on('mousemove', mousemove);\r\n });\r\n\r\n this.$map.map!.on('mouseup', (event) => {\r\n this.mousePrev = undefined;\r\n this.$map.map!.off('mousemove', mousemove);\r\n });\r\n\r\n // When poligon or line is done draw point creator marker\r\n if (this.state === State.PolygonDone || this.state === State.LineDone) {\r\n\r\n this.$map.map!.on('mousemove', this.creatorMovementHandler);\r\n\r\n shape.on('mouseout', () => {\r\n this.$map.map!.on('mousemove', this.creatorMovementHandler);\r\n });\r\n\r\n shape.on('mouseover', () => {\r\n this.$map.map!.off('mousemove', this.creatorMovementHandler);\r\n if (this.creator && this.group) {\r\n this.group.removeLayer(this.creator);\r\n this.creator = undefined;\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n /**\r\n *\r\n * @param shape\r\n * @param area\r\n * @param markers\r\n * @param mouse\r\n * @param mousePrev\r\n */\r\n private moveShape(shape: any, area: Area, markers: Marker[] | Circle[], mouse: LatLng, mousePrev: LatLng): void {\r\n\r\n // Compute difference vector\r\n const latDiff = mouse.lat - mousePrev.lat;\r\n const lngDiff = mouse.lng - mousePrev.lng;\r\n\r\n // Refresh area\r\n for (const _point of area.Coords) {\r\n _point.Lat = (parseFloat(_point.Lat) + latDiff).toString();\r\n _point.Lon = (parseFloat(_point.Lon) + lngDiff).toString();\r\n }\r\n\r\n // Refresh markers\r\n for (const marker of markers) {\r\n const latlng = marker.getLatLng();\r\n latlng.lat += latDiff;\r\n latlng.lng += lngDiff;\r\n marker.setLatLng(latlng);\r\n }\r\n\r\n // Refresh shape\r\n if (shape.setLatLngs) {\r\n shape.setLatLngs(this.convertToLatLngs(area.Coords));\r\n } else if (shape.setLatLng) {\r\n shape.setLatLng(this.convertToLatLng(area.Coords[0]));\r\n }\r\n\r\n // Refresh tooltip\r\n const tooltip = shape.getTooltip();\r\n shape.unbindTooltip();\r\n shape.bindTooltip(tooltip);\r\n }\r\n\r\n\r\n /**\r\n *\r\n * @param shape\r\n * @param area\r\n */\r\n private buildMarkers(shape: any, area: Area): Marker[] {\r\n\r\n const markers: Marker[] = [];\r\n\r\n for (const _point of area.Coords) {\r\n\r\n // const marker = new Circle(this.convertToLatLng(_point), 0, {\r\n // weight: 10// * Math.log(this.getWeightInPixels(area)) // Make icon as thick circle\r\n // });\r\n\r\n const icon = new DivIcon({ html: '
' });\r\n const marker = new Marker(this.convertToLatLng(_point), { icon: icon });\r\n\r\n this.group!.addLayer(marker);\r\n markers.push(marker);\r\n\r\n // Bind delete point popup for polygon or line\r\n if (area.Tp === AreaTypeEnum.Polygon || area.Tp === AreaTypeEnum.Line) {\r\n this.bindDeletePointPopupTo(marker, area);\r\n }\r\n\r\n // Point marker Events\r\n this.bindEventsToMarker(shape, area, marker, _point);\r\n }\r\n\r\n return markers;\r\n }\r\n\r\n\r\n /**\r\n *\r\n * @param shape\r\n * @param area\r\n * @param marker\r\n * @param point\r\n */\r\n private bindEventsToMarker(shape: any, area: Area, marker: Marker, _point: Point): void {\r\n\r\n const mousemove = (event: any) => {\r\n this.$zone.run(() => {\r\n // Refresh marker\r\n this.moveMarker(shape, event, area, marker, _point);\r\n // Push changes\r\n this.drawnAreaSubject.next(area);\r\n // marker.setStyle({ color: '#aac8ff' });\r\n });\r\n };\r\n\r\n marker.on('mousedown', (event) => {\r\n this.$map.map!.on('mousemove', mousemove);\r\n });\r\n\r\n this.$map.map!.on('mouseup', (event) => {\r\n this.$map.map!.off('mousemove', mousemove);\r\n // marker.setStyle({ color: this.AREA_COLOR });\r\n });\r\n\r\n marker.on('mouseover', (event) => {\r\n // marker.setStyle({ color: '#aac8ff' });\r\n });\r\n\r\n marker.on('mouseout', (event) => {\r\n // marker.setStyle({ color: this.AREA_COLOR });\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n /**\r\n * Binds delete point popup to marker\r\n * @param marker marker\r\n * @param area area\r\n */\r\n private bindDeletePointPopupTo(marker: Marker, area: Area): void {\r\n\r\n // Draw popup\r\n const popup = new Popup({ 'className': 'delete-point-popup', 'closeButton': false, 'keepInView': false, autoPan: false });\r\n popup.setContent(this.getDeletePointPopupHtml());\r\n marker.bindPopup(popup);\r\n\r\n // Popup Events\r\n let lastMouseDown: number; // time in millis\r\n marker.on('mousedown', (event) => {\r\n lastMouseDown = new Date().getTime();\r\n });\r\n\r\n\r\n const handler = () => {\r\n this.$zone.run(() => {\r\n\r\n if ((area.Tp === AreaTypeEnum.Polygon && area.Coords.length > 3) ||\r\n (area.Tp === AreaTypeEnum.Line && area.Coords.length > 2)) {\r\n // Remove vertex from area\r\n this.removeVertexFromArea(marker.getLatLng(), area);\r\n // Push changes\r\n this.drawnAreaSubject.next(area);\r\n // Redraw area\r\n this.remove();\r\n this.setArea(area, this.inEdition);\r\n this.draw();\r\n }\r\n });\r\n };\r\n\r\n marker.on('popupopen', (event) => {\r\n const now = new Date().getTime();\r\n if (now - lastMouseDown > 300) {\r\n marker.closePopup();\r\n return;\r\n }\r\n DomEvent.addListener(popup.getElement()!, 'click', handler);\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Returns delete point popup HTML\r\n */\r\n private getDeletePointPopupHtml(): string {\r\n\r\n const html = `\r\n
\r\n \r\n
\r\n `;\r\n\r\n return html;\r\n }\r\n\r\n\r\n /**\r\n * Moves marker to given point\r\n * @param shape shape\r\n * @param event leaflet mouse event\r\n * @param area area\r\n * @param marker marker to move\r\n * @param point point where to move marker\r\n */\r\n private moveMarker(shape: any, event: LeafletMouseEvent, area: Area, marker: Marker, _point: Point): void {\r\n\r\n // Refresh point\r\n const latlng = (event as LeafletMouseEvent).latlng;\r\n _point.Lat = latlng.lat.toString();\r\n _point.Lon = latlng.lng.toString();\r\n\r\n // Refresh marker\r\n marker.setLatLng(this.convertToLatLng(_point));\r\n\r\n // Refresh shape\r\n shape.setLatLngs(this.convertToLatLngs(area.Coords));\r\n\r\n // Refresh tooltip\r\n const tooltip = shape.getTooltip();\r\n shape.unbindTooltip();\r\n shape.bindTooltip(tooltip);\r\n }\r\n\r\n\r\n /**\r\n * Creates and returns point creator marker\r\n * @param area area\r\n * @param point point\r\n */\r\n private getCreatorMarker(area: Area, _point: LatLng): CreatorMarker | undefined {\r\n\r\n const zoom = this.$map.map!.getZoom();\r\n const pointPro = this.$map.map!.project(_point, zoom);\r\n\r\n const segment = this.getClosestAreaSegment(area, _point);\r\n const segmentPro = segment.map(p => this.$map.map!.project(p, zoom));\r\n\r\n const orthoPro = LineUtil.closestPointOnSegment(pointPro, segmentPro[0], segmentPro[1]);\r\n const ortho = this.$map.map!.unproject(orthoPro, zoom);\r\n\r\n let marker: CreatorMarker | undefined = undefined;\r\n if (!this.isNearAreaVertex(ortho, area)) { // && !this.arePointsNear(pointPro, orthoPro)) {\r\n let a = this.getWeightInPixels(area);\r\n if (a <= 3) {\r\n a = 3;\r\n }\r\n marker = new CreatorMarker(ortho, 0, {\r\n weight: 10 * Math.log(a), // Make icon as thick circle\r\n color: '#aaa'\r\n });\r\n marker.segment = segment;\r\n }\r\n\r\n return marker;\r\n }\r\n\r\n\r\n /**\r\n * Returns closest segments to given point\r\n * @param area area\r\n * @param point point\r\n */\r\n private getClosestAreaSegment(area: Area, _point: LatLng): LatLng[] {\r\n\r\n const zoom = this.$map.map!.getZoom();\r\n const sortedPoints: Point[] = area.Coords.slice();\r\n const segments: LatLng[][] = [];\r\n const init = area.Tp === AreaTypeEnum.Polygon ? 0 : 1;\r\n\r\n for (let i = init; i < area.Coords.length; ++i) {\r\n\r\n const left = (i === 0) ? area.Coords[area.Coords.length - 1] : area.Coords[i - 1];\r\n const right = area.Coords[i];\r\n\r\n segments.push(this.convertToLatLngs([left, right]));\r\n }\r\n\r\n const pointPro = this.$map.map!.project(_point, zoom);\r\n const segmentsPro = segments.map(s => s.map(p => this.$map.map!.project(p, zoom)));\r\n\r\n segmentsPro.sort((a, b) => {\r\n const closestAPro = LineUtil.closestPointOnSegment(pointPro, a[0], a[1]);\r\n const closestBPro = LineUtil.closestPointOnSegment(pointPro, b[0], b[1]);\r\n const closestA = this.$map.map!.unproject(closestAPro, zoom);\r\n const closestB = this.$map.map!.unproject(closestBPro, zoom);\r\n const distA = this.$map.map!.distance(closestA, _point);\r\n const distB = this.$map.map!.distance(closestB, _point);\r\n return distA - distB;\r\n });\r\n\r\n const closest = segmentsPro[0].map(p => this.$map.map!.unproject(p, zoom));\r\n\r\n return closest;\r\n }\r\n\r\n\r\n /**\r\n * Checks whether point is near any vertex of area\r\n * @param point point\r\n * @param area area\r\n */\r\n private isNearAreaVertex(_point: LatLng, area: Area): boolean {\r\n\r\n const zoom = this.$map.map!.getZoom();\r\n const pointPro = this.$map.map!.project(_point, zoom);\r\n\r\n const vertices = area.Coords.slice().map(p => this.convertToLatLng(p));\r\n const verticesPro = vertices.map(p => this.$map.map!.project(p, zoom));\r\n\r\n for (const vertexPro of verticesPro) {\r\n if (this.arePointsNear(pointPro, vertexPro)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n /**\r\n * Checks whether two given points are near each other\r\n * @param p1 first point\r\n * @param p2 second point\r\n */\r\n public arePointsNear(p1: LPoint, p2: LPoint): boolean {\r\n\r\n const limitRadius = 10; // in pixels\r\n const xDiff = p1.x - p2.x;\r\n const yDiff = p1.y - p2.y;\r\n return Math.pow(xDiff, 2) + Math.pow(yDiff, 2) < Math.pow(limitRadius, 2);\r\n }\r\n\r\n\r\n /**\r\n * Adds vertex to area\r\n * @param vertex vertex\r\n * @param area area\r\n */\r\n private addVertexToArea(vertex: LatLng, area: Area): void {\r\n\r\n const found = area.Coords.find(_point => this.creator!.segment![1].equals(this.convertToLatLng(_point)));\r\n if (found) {\r\n const fresh = { Lat: vertex.lat.toString(), Lon: vertex.lng.toString() } as Point;\r\n area.Coords.splice(area.Coords.indexOf(found), 0, fresh);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Remove vertex from area\r\n * @param vertex vertex\r\n * @param area area\r\n */\r\n private removeVertexFromArea(vertex: LatLng, area: Area): void {\r\n\r\n const found = area.Coords.find(_point => vertex.equals(this.convertToLatLng(_point)));\r\n if (found) {\r\n area.Coords.splice(area.Coords.indexOf(found), 1);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Adds creator event hadler callbacks\r\n */\r\n public addCreatorEventHandlers(): void {\r\n\r\n if (this.$map.map) {\r\n this.$map.map.on('mousemove', this.creatorMovementHandler);\r\n this.$map.map.on('click', this.creatorClickHandler);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Removes creator event hadler callbacks\r\n */\r\n public removeCreatorEventHandlers(): void {\r\n\r\n if (this.$map.map) {\r\n this.$map.map.off('mousemove', this.creatorMovementHandler);\r\n this.$map.map.off('click', this.creatorClickHandler);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Shows area on the map\r\n */\r\n showArea(area: Area): void {\r\n this.setArea();\r\n this.remove();\r\n this.setArea(area);\r\n this.draw();\r\n this.fitBoundsToVisibleArea();\r\n }\r\n\r\n // Add popup to squar, and show/hide when mouse hover square, with area data\r\n private customPopupArea = (square: any, areaData: Area): void => {\r\n const customPopupStructureHTML = (): string => {\r\n const icon = (): string => {\r\n if (areaData.Tp === AreaTypeEnum.Circle) {\r\n return '/assets/img/areas/active@3x.png';\r\n }\r\n if (areaData.Tp === AreaTypeEnum.Line) {\r\n return '/assets/img/areas/active_3@2x.png';\r\n }\r\n return '/assets/img/areas/active_4@2x.png';\r\n };\r\n return `\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n \r\n ${ areaData.Nm }\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n `;\r\n };\r\n let onClickEditSubsc: Subscription;\r\n let onClickDeleteSubsc: Subscription;\r\n let mouseMoveSubsc: Subscription;\r\n const onMouseMove = (): void => {\r\n mouseMoveSubsc = fromEvent(document, 'mousemove')\r\n .pipe(debounceTime(50))\r\n .subscribe(\r\n (event) => {\r\n const htmlElementUnderMouse = document.elementFromPoint(event.clientX, event.clientY);\r\n if (htmlElementUnderMouse) {\r\n const ifSquareOrPopup = \r\n (htmlElementUnderMouse.className as any)?.animVal === 'leaflet-interactive' ||\r\n htmlElementUnderMouse.className?.includes('custom-popup') ||\r\n htmlElementUnderMouse.className?.includes('leaflet-popup-content-wrapper');\r\n \r\n if (!ifSquareOrPopup) {\r\n onHidePopup();\r\n }\r\n }\r\n }\r\n );\r\n }\r\n const onClickEdit = (): void => {\r\n onClickEditSubsc = fromEvent(document, 'click').subscribe(\r\n (event) => {\r\n const htmlElementUnderMouse = document.elementFromPoint(event.clientX, event.clientY);\r\n const isEditBtn = htmlElementUnderMouse?.id === 'custom-popup-edit';\r\n if (isEditBtn) {\r\n const ifAreaListIsHidden = document.getElementById('container-areas');\r\n if (!ifAreaListIsHidden?.classList.contains('is-visible')) {\r\n document.getElementById('map-icon-areas')?.click();\r\n }\r\n this.onClickEditTooltipArea$.next(areaData);\r\n }\r\n }\r\n );\r\n };\r\n const onClickDelete = (): void => {\r\n onClickDeleteSubsc = fromEvent(document, 'click').subscribe(\r\n (event) => {\r\n const htmlElementUnderMouse = document.elementFromPoint(event.clientX, event.clientY);\r\n const isEditBtn = htmlElementUnderMouse?.id === 'custom-popup-delete';\r\n if (isEditBtn) {\r\n this.onClickDeleteTooltipArea$.next(areaData);\r\n }\r\n }\r\n );\r\n };\r\n const onHidePopup = (): void => {\r\n square.closePopup();\r\n mouseMoveSubsc.unsubscribe();\r\n onClickEditSubsc?.unsubscribe();\r\n onClickDeleteSubsc?.unsubscribe();\r\n };\r\n square.bindPopup(customPopupStructureHTML());\r\n square.on('mouseover', function(this: typeof square) {\r\n onMouseMove();\r\n this.openPopup();\r\n onClickEdit();\r\n onClickDelete();\r\n square.getPopup()?.getElement()?.classList.add('popup-square');\r\n });\r\n };\r\n\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject, map, Observable, Subject, switchMap, tap } from 'rxjs';\r\n\r\nimport { IAreaService } from '../../interfaces/IAreaService';\r\nimport { WebAccessService } from '../web.access/web-access.service';\r\nimport { AreaListFilterRequest } from '../../models/remote.request/AreaListFilterRequest';\r\nimport { Area } from '../../models/domain/Area';\r\nimport { Point } from '../../models/domain/Point';\r\nimport { AreaDetailsRequest } from '../../models/remote.request/AreaDetailsRequest';\r\nimport { CustomError } from '../../models/other/CustomError.model';\r\n\r\n@Injectable()\r\nexport class AreaService implements IAreaService {\r\n\r\n private areaListSubject: BehaviorSubject = new BehaviorSubject([]);\r\n private filterRequestSubject: Subject = new Subject();\r\n\r\n constructor(\r\n private $webAccess: WebAccessService\r\n ) {\r\n // Build event list stream\r\n this.filterRequestSubject.pipe(\r\n switchMap(filter => this.$webAccess.GetAreaListByFilter(filter)),\r\n map(response => response.Result as any[]),\r\n tap(result => {\r\n for (const area of result) {\r\n switch (area.Tp) {\r\n case 5:\r\n area.Tp = 1;\r\n break;\r\n case 3:\r\n area.Tp = 2;\r\n break;\r\n default:\r\n area.Tp = 3;\r\n break;\r\n }\r\n area.Coords = (area.P || []).map((p: any) =>\r\n {\r\n Lat: p.Lat.toString().replace(',', '.'),\r\n Lon: p.Lon.toString().replace(',', '.')\r\n });\r\n }\r\n }),\r\n map(result => result as Area[]))\r\n .subscribe(events => {\r\n this.areaListSubject.next(events);\r\n });\r\n }\r\n\r\n public getAreaList$(): Observable {\r\n return this.areaListSubject.asObservable();\r\n }\r\n\r\n public findArea$(filter: AreaListFilterRequest): void {\r\n this.areaListSubject.next([]); //TODO GB - był null\r\n this.filterRequestSubject.next(filter);\r\n }\r\n\r\n public getAreaDetails$(areaId: number): Observable {\r\n return this.$webAccess.GetAreaDetails(areaId).pipe(\r\n map(result => result.Result),\r\n tap(result => {\r\n result = this.objectToModel(result);\r\n }));\r\n }\r\n\r\n public notifyDrawingChanges$(area: Area): Observable {\r\n throw new CustomError('Method not implemented.');\r\n }\r\n\r\n public prepareAreaDetails$(areaId: number): Observable {\r\n throw new CustomError('Method not implemented.');\r\n }\r\n\r\n\r\n public deleteAreaDetails$(areaId: number): Observable {\r\n return this.$webAccess.DeleteAreaDetails(areaId).pipe(map(result => { }));\r\n }\r\n\r\n public saveAreaDetails$(area: Area): Observable {\r\n\r\n const sub: Subject = new Subject();\r\n\r\n let areaType = area.Tp;\r\n switch (areaType) {\r\n case 1:\r\n areaType = 5;\r\n break;\r\n case 2:\r\n areaType = 3;\r\n break;\r\n default:\r\n areaType = 4;\r\n break;\r\n }\r\n\r\n let counter = 1;\r\n const coords = area.Coords.map(c => {\r\n 'Lat': c.Lat, 'Lon': c.Lon, Id: counter++\r\n });\r\n\r\n const request = {\r\n AreaName: area.Nm,\r\n AreaPoints: coords,\r\n AreaTags: area.Tg,\r\n AreaThickness: area.Th,\r\n AreaType: areaType,\r\n Color: area.Cl,\r\n };\r\n\r\n if (area.Id) {\r\n request.AreaId = area.Id;\r\n this.$webAccess.UpdateAreaDetails(request).pipe(\r\n map(response => response.Result as any),\r\n map(result => this.objectToModel(result)),\r\n map(response => response as Area))\r\n .subscribe(_area => {\r\n sub.next(_area);\r\n });\r\n } else {\r\n this.$webAccess.AddAreaDetails(request).pipe(\r\n map(response => response.Result as any),\r\n map(result => this.objectToModel(result)),\r\n map(response => response as Area))\r\n .subscribe(_area => {\r\n sub.next(_area);\r\n });\r\n }\r\n\r\n return sub.asObservable();\r\n }\r\n\r\n private objectToModel(result: any): any {\r\n switch (result.Tp) {\r\n case 5:\r\n result.Tp = 1;\r\n break;\r\n case 3:\r\n result.Tp = 2;\r\n break;\r\n default:\r\n result.Tp = 3;\r\n break;\r\n }\r\n result.Coords = (result.P || []).map((p: any) =>\r\n {\r\n Lat: p.Lat.toString().replace(',', '.'),\r\n Lon: p.Lon.toString().replace(',', '.')\r\n });\r\n\r\n return result;\r\n }\r\n}\r\n","import { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, forwardRef, model, input, computed, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, HostListener, EventEmitter, booleanAttribute, numberAttribute, HostBinding, Input, Output, ContentChildren, signal, NgModule } from '@angular/core';\nimport { findSingle, getAttribute, focus, uuid } from '@primeuix/utils';\nimport { Header, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ChevronDownIcon, ChevronUpIcon } from 'primeng/icons';\nimport * as i1 from 'primeng/ripple';\nimport { Ripple } from 'primeng/ripple';\nimport { transformToBoolean } from 'primeng/utils';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-accordionpanel {\n display: flex;\n flex-direction: column;\n border-style: solid;\n border-width: ${dt('accordion.panel.border.width')};\n border-color: ${dt('accordion.panel.border.color')};\n}\n\n.p-accordionheader {\n all: unset;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ${dt('accordion.header.padding')};\n color: ${dt('accordion.header.color')};\n background: ${dt('accordion.header.background')};\n border-style: solid;\n border-width: ${dt('accordion.header.border.width')};\n border-color: ${dt('accordion.header.border.color')};\n font-weight: ${dt('accordion.header.font.weight')};\n border-radius: ${dt('accordion.header.border.radius')};\n transition: background ${dt('accordion.transition.duration')}; color ${dt('accordion.transition.duration')}color ${dt('accordion.transition.duration')}, outline-color ${dt('accordion.transition.duration')}, box-shadow ${dt('accordion.transition.duration')};\n outline-color: transparent;\n position: relative;\n overflow: hidden;\n}\n\n.p-accordionpanel:first-child > .p-accordionheader {\n border-width: ${dt('accordion.header.first.border.width')};\n border-start-start-radius: ${dt('accordion.header.first.top.border.radius')};\n border-start-end-radius: ${dt('accordion.header.first.top.border.radius')};\n}\n\n.p-accordionpanel:last-child > .p-accordionheader {\n border-end-start-radius: ${dt('accordion.header.last.bottom.border.radius')};\n border-end-end-radius: ${dt('accordion.header.last.bottom.border.radius')};\n}\n\n.p-accordionpanel:last-child.p-accordionpanel-active > .p-accordionheader {\n border-end-start-radius: ${dt('accordion.header.last.active.bottom.border.radius')};\n border-end-end-radius:${dt('accordion.header.last.active.bottom.border.radius')};\n}\n\n.p-accordionheader-toggle-icon {\n color: ${dt('accordion.header.toggle.icon.color')};\n}\n\n.p-accordionpanel:not(.p-disabled) .p-accordionheader:focus-visible {\n box-shadow: ${dt('accordion.header.focus.ring.shadow')};\n outline: ${dt('accordion.header.focus.ring.width')} ${dt('accordion.header.focus.ring.style')} ${dt('accordion.header.focus.ring.color')};\n outline-offset: ${dt('accordion.header.focus.ring.offset')};\n}\n\n.p-accordionpanel:not(.p-accordionpanel-active):not(.p-disabled) > .p-accordionheader:hover {\n background: ${dt('accordion.header.hover.background')};\n color: ${dt('accordion.header.hover.color')}\n}\n\n.p-accordionpanel:not(.p-accordionpanel-active):not(.p-disabled) .p-accordionheader:hover .p-accordionheader-toggle-icon {\n color: ${dt('accordion.header.toggle.icon.hover.color')};\n}\n\n.p-accordionpanel:not(.p-disabled).p-accordionpanel-active > .p-accordionheader {\n background: ${dt('accordion.header.active.background')};\n color: ${dt('accordion.header.active.color')}\n}\n\n.p-accordionpanel:not(.p-disabled).p-accordionpanel-active > .p-accordionheader .p-accordionheader-toggle-icon {\n color: ${dt('accordion.header.toggle.icon.active.color')};\n}\n\n.p-accordionpanel:not(.p-disabled).p-accordionpanel-active > .p-accordionheader:hover {\n background: ${dt('accordion.header.active.hover.background')};\n color: ${dt('accordion.header.active.hover.color')}\n}\n\n.p-accordionpanel:not(.p-disabled).p-accordionpanel-active > .p-accordionheader:hover .p-accordionheader-toggle-icon {\n color: ${dt('accordion.header.toggle.icon.active.hover.color')};\n}\n\n.p-accordioncontent-content {\n border-style: solid;\n border-width: ${dt('accordion.content.border.width')};\n border-color: ${dt('accordion.content.border.color')};\n background-color: ${dt('accordion.content.background')};\n color: ${dt('accordion.content.color')};\n padding: ${dt('accordion.content.padding')}\n}\n\n/*For PrimeNG*/\n\n.p-accordion .p-accordioncontent {\n overflow: hidden;\n}\n\n.p-accordionpanel.p-accordioncontent:not(.ng-animating) {\n overflow: inherit;\n}\n\n.p-accordionheader-toggle-icon.icon-start {\n order: -1;\n}\n\n.p-accordionheader:has(.p-accordionheader-toggle-icon.icon-start) {\n justify-content: flex-start;\n gap: ${dt('accordion.header.padding')};\n}\n`;\nconst classes = {\n root: 'p-accordion p-component'\n};\nclass AccordionStyle extends BaseStyle {\n name = 'accordion';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionStyle_BaseFactory; return function AccordionStyle_Factory(__ngFactoryType__) { return (ɵAccordionStyle_BaseFactory || (ɵAccordionStyle_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionStyle)))(__ngFactoryType__ || AccordionStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AccordionStyle, factory: AccordionStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AccordionStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * Accordion groups a collection of contents in tabs.\n *\n * [Live Demo](https://www.primeng.org/accordion/)\n *\n * @module accordionstyle\n *\n */\nvar AccordionClasses;\n(function (AccordionClasses) {\n /**\n * Class name of the root element\n */\n AccordionClasses[\"root\"] = \"p-accordion\";\n /**\n * Class name of the content wrapper\n */\n AccordionClasses[\"contentwrapper\"] = \"p-accordioncontent\";\n /**\n * Class name of the content\n */\n AccordionClasses[\"content\"] = \"p-accordioncontent-content\";\n /**\n * Class name of the header\n */\n AccordionClasses[\"header\"] = \"p-accordionheader\";\n /**\n * Class name of the toggle icon\n */\n AccordionClasses[\"toggleicon\"] = \"p-accordionheader-toggle-icon\";\n /**\n * Class name of the panel\n */\n AccordionClasses[\"panel\"] = \"p-accordionpanel\";\n})(AccordionClasses || (AccordionClasses = {}));\n\nconst _c0 = [\"*\"];\nconst _c1 = [\"toggleicon\"];\nconst _c2 = a0 => ({ active: a0 });\nfunction AccordionHeader_Conditional_1_0_ng_template_0_Template(rf, ctx) { }\nfunction AccordionHeader_Conditional_1_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, AccordionHeader_Conditional_1_0_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction AccordionHeader_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, AccordionHeader_Conditional_1_0_Template, 1, 0, null, 0);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.toggleicon)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c2, ctx_r0.active()));\n} }\nfunction AccordionHeader_Conditional_2_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 4);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵclassMap(ctx_r0.pcAccordion.collapseIcon);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.pcAccordion.iconClass);\n i0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction AccordionHeader_Conditional_2_ng_container_0_ChevronDownIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\", 4);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.pcAccordion.iconClass);\n i0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction AccordionHeader_Conditional_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, AccordionHeader_Conditional_2_ng_container_0_span_1_Template, 1, 4, \"span\", 2)(2, AccordionHeader_Conditional_2_ng_container_0_ChevronDownIcon_2_Template, 1, 2, \"ChevronDownIcon\", 3);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.pcAccordion.collapseIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.pcAccordion.collapseIcon);\n} }\nfunction AccordionHeader_Conditional_2_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 4);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵclassMap(ctx_r0.pcAccordion.expandIcon);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.pcAccordion.iconClass);\n i0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction AccordionHeader_Conditional_2_ng_container_1_ChevronUpIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronUpIcon\", 4);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.pcAccordion.iconClass);\n i0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction AccordionHeader_Conditional_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, AccordionHeader_Conditional_2_ng_container_1_span_1_Template, 1, 4, \"span\", 2)(2, AccordionHeader_Conditional_2_ng_container_1_ChevronUpIcon_2_Template, 1, 2, \"ChevronUpIcon\", 3);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.pcAccordion.expandIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.pcAccordion.expandIcon);\n} }\nfunction AccordionHeader_Conditional_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, AccordionHeader_Conditional_2_ng_container_0_Template, 3, 2, \"ng-container\", 1)(1, AccordionHeader_Conditional_2_ng_container_1_Template, 3, 2, \"ng-container\", 1);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.active());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.active());\n} }\nconst _c3 = a0 => ({ transitionParams: a0 });\nconst _c4 = a0 => ({ value: \"visible\", params: a0 });\nconst _c5 = a0 => ({ value: \"hidden\", params: a0 });\nconst _c6 = [\"header\"];\nconst _c7 = [\"icon\"];\nconst _c8 = [\"content\"];\nconst _c9 = [\"*\", [[\"p-header\"]]];\nconst _c10 = [\"*\", \"p-header\"];\nconst _c11 = a0 => ({ $implicit: a0 });\nfunction AccordionTab_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.header, \" \");\n} }\nfunction AccordionTab_Conditional_2_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction AccordionTab_Conditional_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, AccordionTab_Conditional_2_Conditional_0_ng_container_0_Template, 1, 0, \"ng-container\", 4);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.headerTemplate || ctx_r0._headerTemplate);\n} }\nfunction AccordionTab_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojection(0, 1);\n} }\nfunction AccordionTab_Conditional_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, AccordionTab_Conditional_2_Conditional_0_Template, 1, 1, \"ng-container\")(1, AccordionTab_Conditional_2_Conditional_1_Template, 1, 0);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵconditional(ctx_r0.headerTemplate || ctx_r0._headerTemplate ? 0 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r0.headerFacet ? 1 : -1);\n} }\nfunction AccordionTab_Conditional_3_0_ng_template_0_Template(rf, ctx) { }\nfunction AccordionTab_Conditional_3_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, AccordionTab_Conditional_3_0_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction AccordionTab_Conditional_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, AccordionTab_Conditional_3_0_Template, 1, 0, null, 5);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.iconTemplate || ctx_r0._iconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c11, ctx_r0.selected));\n} }\nfunction AccordionTab_Conditional_4_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 8);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵclassMap(ctx_r0.accordion.collapseIcon);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n i0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction AccordionTab_Conditional_4_ng_container_0_ChevronDownIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\", 8);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n i0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction AccordionTab_Conditional_4_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, AccordionTab_Conditional_4_ng_container_0_span_1_Template, 1, 4, \"span\", 6)(2, AccordionTab_Conditional_4_ng_container_0_ChevronDownIcon_2_Template, 1, 2, \"ChevronDownIcon\", 7);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.accordion.collapseIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.accordion.collapseIcon);\n} }\nfunction AccordionTab_Conditional_4_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 8);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵclassMap(ctx_r0.accordion.expandIcon);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n i0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction AccordionTab_Conditional_4_ng_container_1_ChevronUpIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronUpIcon\", 8);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n i0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction AccordionTab_Conditional_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, AccordionTab_Conditional_4_ng_container_1_span_1_Template, 1, 4, \"span\", 6)(2, AccordionTab_Conditional_4_ng_container_1_ChevronUpIcon_2_Template, 1, 2, \"ChevronUpIcon\", 7);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.accordion.expandIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.accordion.expandIcon);\n} }\nfunction AccordionTab_Conditional_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, AccordionTab_Conditional_4_ng_container_0_Template, 3, 2, \"ng-container\", 3)(1, AccordionTab_Conditional_4_ng_container_1_Template, 3, 2, \"ng-container\", 3);\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.selected);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.selected);\n} }\nfunction AccordionTab_ng_container_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction AccordionTab_ng_container_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, AccordionTab_ng_container_8_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.contentTemplate || ctx_r0._contentTemplate);\n} }\n/**\n * AccordionPanel is a helper component for Accordion component.\n * @group Components\n */\nclass AccordionPanel extends BaseComponent {\n pcAccordion = inject(forwardRef(() => Accordion));\n /**\n * Value of the active tab.\n * @defaultValue undefined\n * @group Props\n */\n value = model(undefined);\n /**\n * Disables the tab when enabled.\n * @defaultValue false\n * @group Props\n */\n disabled = input(false, { transform: (v) => transformToBoolean(v) });\n active = computed(() => (this.pcAccordion.multiple() ? this.valueEquals(this.pcAccordion.value(), this.value()) : this.pcAccordion.value() === this.value()));\n valueEquals(currentValue, value) {\n if (Array.isArray(currentValue)) {\n return currentValue.includes(value);\n }\n return currentValue === value;\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionPanel_BaseFactory; return function AccordionPanel_Factory(__ngFactoryType__) { return (ɵAccordionPanel_BaseFactory || (ɵAccordionPanel_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionPanel)))(__ngFactoryType__ || AccordionPanel); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionPanel, selectors: [[\"p-accordion-panel\"], [\"p-accordionpanel\"]], hostVars: 9, hostBindings: function AccordionPanel_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-name\", \"accordionpanel\")(\"data-p-disabled\", ctx.disabled())(\"data-p-active\", ctx.active());\n i0.ɵɵclassProp(\"p-accordionpanel\", true)(\"p-accordionpanel-active\", ctx.active())(\"p-disabled\", ctx.disabled());\n } }, inputs: { value: [1, \"value\"], disabled: [1, \"disabled\"] }, outputs: { value: \"valueChange\" }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AccordionPanel_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n } }, dependencies: [CommonModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AccordionPanel, [{\n type: Component,\n args: [{\n selector: 'p-accordion-panel, p-accordionpanel',\n imports: [CommonModule],\n standalone: true,\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.p-accordionpanel]': 'true',\n '[class.p-accordionpanel-active]': 'active()',\n '[class.p-disabled]': 'disabled()',\n '[attr.data-pc-name]': '\"accordionpanel\"',\n '[attr.data-p-disabled]': 'disabled()',\n '[attr.data-p-active]': 'active()'\n }\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionPanel, { className: \"AccordionPanel\" }); })();\n/**\n * AccordionHeader is a helper component for Accordion component.\n * @group Components\n */\nclass AccordionHeader extends BaseComponent {\n pcAccordion = inject(forwardRef(() => Accordion));\n pcAccordionPanel = inject(forwardRef(() => AccordionPanel));\n id = computed(() => `${this.pcAccordion.id()}_accordionheader_${this.pcAccordionPanel.value()}`);\n active = computed(() => this.pcAccordionPanel.active());\n disabled = computed(() => this.pcAccordionPanel.disabled());\n ariaControls = computed(() => `${this.pcAccordion.id()}_accordioncontent_${this.pcAccordionPanel.value()}`);\n /**\n * Toggle icon template.\n * @type {TemplateRef} context - Context of the template\n * @example\n * ```html\n * \n * ```\n * @see {@link AccordionToggleIconTemplateContext}\n * @group Templates\n */\n toggleicon;\n onClick() {\n this.changeActiveValue();\n }\n onFocus() {\n this.pcAccordion.selectOnFocus() && this.changeActiveValue();\n }\n onKeydown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.arrowDownKey(event);\n break;\n case 'ArrowUp':\n this.arrowUpKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Enter':\n case 'Space':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n default:\n break;\n }\n }\n changeActiveValue() {\n this.pcAccordion.updateValue(this.pcAccordionPanel.value());\n }\n findPanel(headerElement) {\n return headerElement?.closest('[data-pc-name=\"accordionpanel\"]');\n }\n findHeader(panelElement) {\n return findSingle(panelElement, '[data-pc-name=\"accordionheader\"]');\n }\n findNextPanel(panelElement, selfCheck = false) {\n const element = selfCheck ? panelElement : panelElement.nextElementSibling;\n return element ? (getAttribute(element, 'data-p-disabled') ? this.findNextPanel(element) : this.findHeader(element)) : null;\n }\n findPrevPanel(panelElement, selfCheck = false) {\n const element = selfCheck ? panelElement : panelElement.previousElementSibling;\n return element ? (getAttribute(element, 'data-p-disabled') ? this.findPrevPanel(element) : this.findHeader(element)) : null;\n }\n findFirstPanel() {\n return this.findNextPanel(this.pcAccordion.el.nativeElement.firstElementChild, true);\n }\n findLastPanel() {\n return this.findPrevPanel(this.pcAccordion.el.nativeElement.lastElementChild, true);\n }\n changeFocusedPanel(event, element) {\n focus(element);\n }\n arrowDownKey(event) {\n const nextPanel = this.findNextPanel(this.findPanel(event.currentTarget));\n nextPanel ? this.changeFocusedPanel(event, nextPanel) : this.onHomeKey(event);\n event.preventDefault();\n }\n arrowUpKey(event) {\n const prevPanel = this.findPrevPanel(this.findPanel(event.currentTarget));\n prevPanel ? this.changeFocusedPanel(event, prevPanel) : this.onEndKey(event);\n event.preventDefault();\n }\n onHomeKey(event) {\n const firstPanel = this.findFirstPanel();\n this.changeFocusedPanel(event, firstPanel);\n event.preventDefault();\n }\n onEndKey(event) {\n const lastPanel = this.findLastPanel();\n this.changeFocusedPanel(event, lastPanel);\n event.preventDefault();\n }\n onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionHeader_BaseFactory; return function AccordionHeader_Factory(__ngFactoryType__) { return (ɵAccordionHeader_BaseFactory || (ɵAccordionHeader_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionHeader)))(__ngFactoryType__ || AccordionHeader); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionHeader, selectors: [[\"p-accordion-header\"], [\"p-accordionheader\"]], contentQueries: function AccordionHeader_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c1, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toggleicon = _t.first);\n } }, hostVars: 12, hostBindings: function AccordionHeader_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function AccordionHeader_click_HostBindingHandler($event) { return ctx.onClick($event); })(\"focus\", function AccordionHeader_focus_HostBindingHandler($event) { return ctx.onFocus($event); })(\"keydown\", function AccordionHeader_keydown_HostBindingHandler($event) { return ctx.onKeydown($event); });\n } if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id())(\"aria-expanded\", ctx.active())(\"aria-controls\", ctx.ariaControls())(\"role\", \"button\")(\"tabindex\", \"0\")(\"data-p-active\", ctx.active())(\"data-p-disabled\", ctx.disabled())(\"data-pc-name\", \"accordionheader\");\n i0.ɵɵstyleProp(\"user-select\", \"none\");\n i0.ɵɵclassProp(\"p-accordionheader\", true);\n } }, standalone: true, features: [i0.ɵɵHostDirectivesFeature([i1.Ripple]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 3, vars: 1, consts: [[4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [4, \"ngIf\"], [3, \"class\", \"ngClass\", 4, \"ngIf\"], [3, \"ngClass\", 4, \"ngIf\"], [3, \"ngClass\"]], template: function AccordionHeader_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n i0.ɵɵtemplate(1, AccordionHeader_Conditional_1_Template, 1, 4)(2, AccordionHeader_Conditional_2_Template, 2, 2);\n } if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx.toggleicon ? 1 : 2);\n } }, dependencies: [CommonModule, i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, ChevronDownIcon, ChevronUpIcon], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AccordionHeader, [{\n type: Component,\n args: [{\n selector: 'p-accordion-header, p-accordionheader',\n imports: [CommonModule, ChevronDownIcon, ChevronUpIcon],\n standalone: true,\n template: `\n \n @if (toggleicon) {\n \n } @else {\n \n \n \n \n \n \n \n \n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.p-accordionheader]': 'true',\n '[attr.id]': 'id()',\n '[attr.aria-expanded]': 'active()',\n '[attr.aria-controls]': 'ariaControls()',\n '[attr.role]': '\"button\"',\n '[attr.tabindex]': '\"0\"',\n '[attr.data-p-active]': 'active()',\n '[attr.data-p-disabled]': 'disabled()',\n '[attr.data-pc-name]': '\"accordionheader\"',\n '[style.user-select]': '\"none\"'\n },\n hostDirectives: [Ripple]\n }]\n }], null, { toggleicon: [{\n type: ContentChild,\n args: ['toggleicon']\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], onFocus: [{\n type: HostListener,\n args: ['focus', ['$event']]\n }], onKeydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionHeader, { className: \"AccordionHeader\" }); })();\nclass AccordionContent extends BaseComponent {\n pcAccordion = inject(forwardRef(() => Accordion));\n pcAccordionPanel = inject(forwardRef(() => AccordionPanel));\n active = computed(() => this.pcAccordionPanel.active());\n ariaLabelledby = computed(() => `${this.pcAccordion.id()}_accordionheader_${this.pcAccordionPanel.value()}`);\n id = computed(() => `${this.pcAccordion.id()}_accordioncontent_${this.pcAccordionPanel.value()}`);\n static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionContent_BaseFactory; return function AccordionContent_Factory(__ngFactoryType__) { return (ɵAccordionContent_BaseFactory || (ɵAccordionContent_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionContent)))(__ngFactoryType__ || AccordionContent); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionContent, selectors: [[\"p-accordion-content\"], [\"p-accordioncontent\"]], hostVars: 16, hostBindings: function AccordionContent_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵsyntheticHostProperty(\"@content\", ctx.active() ? i0.ɵɵpureFunction1(10, _c4, i0.ɵɵpureFunction1(8, _c3, ctx.pcAccordion.transitionOptions)) : i0.ɵɵpureFunction1(14, _c5, i0.ɵɵpureFunction1(12, _c3, ctx.pcAccordion.transitionOptions)));\n i0.ɵɵattribute(\"id\", ctx.id())(\"role\", \"region\")(\"data-pc-name\", \"accordioncontent\")(\"data-p-active\", ctx.active())(\"aria-labelledby\", ctx.ariaLabelledby());\n i0.ɵɵclassProp(\"p-accordioncontent\", true);\n } }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 2, vars: 0, consts: [[1, \"p-accordioncontent-content\"]], template: function AccordionContent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n } }, dependencies: [CommonModule], encapsulation: 2, data: { animation: [\n trigger('content', [\n state('hidden', style({\n height: '0',\n visibility: 'hidden'\n })),\n state('visible', style({\n height: '*',\n visibility: 'visible'\n })),\n transition('visible <=> hidden', [animate('{{transitionParams}}')]),\n transition('void => *', animate(0))\n ])\n ] }, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AccordionContent, [{\n type: Component,\n args: [{\n selector: 'p-accordion-content, p-accordioncontent',\n imports: [CommonModule],\n standalone: true,\n template: `
\n \n
`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.p-accordioncontent]': 'true',\n '[attr.id]': 'id()',\n '[attr.role]': '\"region\"',\n '[attr.data-pc-name]': '\"accordioncontent\"',\n '[attr.data-p-active]': 'active()',\n '[attr.aria-labelledby]': 'ariaLabelledby()',\n '[@content]': `active()\n ? { value: 'visible', params: { transitionParams: pcAccordion.transitionOptions } }\n : { value: 'hidden', params: { transitionParams: pcAccordion.transitionOptions } }`\n },\n animations: [\n trigger('content', [\n state('hidden', style({\n height: '0',\n visibility: 'hidden'\n })),\n state('visible', style({\n height: '*',\n visibility: 'visible'\n })),\n transition('visible <=> hidden', [animate('{{transitionParams}}')]),\n transition('void => *', animate(0))\n ])\n ]\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionContent, { className: \"AccordionContent\" }); })();\n/**\n * AccordionTab is a helper component for Accordion.\n * @deprecated Use AccordionPanel, AccordionHeader, AccordionContent instead.\n * @group Components\n */\nclass AccordionTab extends BaseComponent {\n get hostClass() {\n return this.tabStyleClass;\n }\n get hostStyle() {\n return this.tabStyle;\n }\n /**\n * Current id state as a string.\n * @group Props\n */\n id = uuid('pn_id_');\n /**\n * Used to define the header of the tab.\n * @group Props\n */\n header;\n /**\n * Inline style of the tab header.\n * @group Props\n */\n headerStyle;\n /**\n * Inline style of the tab.\n * @group Props\n */\n tabStyle;\n /**\n * Inline style of the tab content.\n * @group Props\n */\n contentStyle;\n /**\n * Style class of the tab.\n * @group Props\n */\n tabStyleClass;\n /**\n * Style class of the tab header.\n * @group Props\n */\n headerStyleClass;\n /**\n * Style class of the tab content.\n * @group Props\n */\n contentStyleClass;\n /**\n * Whether the tab is disabled.\n * @group Props\n */\n disabled;\n /**\n * Whether a lazy loaded panel should avoid getting loaded again on reselection.\n * @group Props\n */\n cache = true;\n /**\n * Transition options of the animation.\n * @group Props\n */\n transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n /**\n * Position of the icon.\n * @group Props\n */\n iconPos = 'start';\n /**\n * The value that returns the selection.\n * @group Props\n */\n get selected() {\n return this._selected;\n }\n set selected(val) {\n this._selected = val;\n if (!this.loaded) {\n if (this._selected && this.cache) {\n this.loaded = true;\n }\n this.cd.detectChanges();\n }\n }\n /**\n * The aria-level that each accordion header will have. The default value is 2 as per W3C specifications\n * @group Props\n */\n headerAriaLevel = 2;\n /**\n * Event triggered by changing the choice.\n * @param {boolean} value - Boolean value indicates that the option is changed.\n * @group Emits\n */\n selectedChange = new EventEmitter();\n headerFacet;\n _selected = false;\n get iconClass() {\n if (this.iconPos === 'end') {\n return 'p-accordionheader-toggle-icon icon-end';\n }\n else {\n return 'p-accordionheader-toggle-icon icon-start';\n }\n }\n /**\n * Content template for the content of the drawer.\n * @group Templates\n */\n headerTemplate;\n /**\n * Template for the header icon.\n * @group Templates\n */\n iconTemplate;\n /**\n * Content template for the footer of the drawer.\n * @group Templates\n */\n contentTemplate;\n templates;\n _headerTemplate;\n _iconTemplate;\n _contentTemplate;\n loaded = false;\n accordion = inject(forwardRef(() => Accordion));\n _componentStyle = inject(AccordionStyle);\n ngOnInit() {\n super.ngOnInit();\n console.log('AccordionTab is deprecated as of v18, please use the new structure instead.');\n }\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this._contentTemplate = item.template;\n break;\n case 'header':\n this._headerTemplate = item.template;\n break;\n case 'icon':\n this._iconTemplate = item.template;\n break;\n default:\n this._contentTemplate = item.template;\n break;\n }\n });\n }\n toggle(event) {\n if (this.disabled) {\n return false;\n }\n let index = this.findTabIndex();\n if (this.selected) {\n this.selected = false;\n this.accordion.onClose.emit({ originalEvent: event, index: index });\n }\n else {\n if (!this.accordion.multiple()) {\n for (var i = 0; i < this.accordion.tabs.length; i++) {\n if (this.accordion.tabs[i].selected) {\n this.accordion.tabs[i].selected = false;\n this.accordion.tabs[i].selectedChange.emit(false);\n this.accordion.tabs[i].cd.markForCheck();\n }\n }\n }\n this.selected = true;\n this.loaded = true;\n this.accordion.onOpen.emit({ originalEvent: event, index: index });\n }\n this.selectedChange.emit(this.selected);\n this.accordion.updateActiveIndex();\n this.cd.markForCheck();\n event?.preventDefault();\n }\n findTabIndex() {\n let index = -1;\n for (var i = 0; i < this.accordion.tabs.length; i++) {\n if (this.accordion.tabs[i] == this) {\n index = i;\n break;\n }\n }\n return index;\n }\n onKeydown(event) {\n switch (event.code) {\n case 'Enter':\n case 'Space':\n this.toggle(event);\n event.preventDefault();\n break;\n default:\n break;\n }\n }\n getTabHeaderActionId(tabId) {\n return `${tabId}_header_action`;\n }\n getTabContentId(tabId) {\n return `${tabId}_content`;\n }\n ngOnDestroy() {\n this.accordion.tabs.splice(this.findTabIndex(), 1);\n super.ngOnDestroy();\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionTab_BaseFactory; return function AccordionTab_Factory(__ngFactoryType__) { return (ɵAccordionTab_BaseFactory || (ɵAccordionTab_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionTab)))(__ngFactoryType__ || AccordionTab); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionTab, selectors: [[\"p-accordionTab\"], [\"p-accordion-tab\"], [\"p-accordiontab\"]], contentQueries: function AccordionTab_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c6, 4);\n i0.ɵɵcontentQuery(dirIndex, _c7, 4);\n i0.ɵɵcontentQuery(dirIndex, _c8, 4);\n i0.ɵɵcontentQuery(dirIndex, Header, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.iconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerFacet = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, hostVars: 9, hostBindings: function AccordionTab_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-name\", \"accordiontab\");\n i0.ɵɵstyleMap(ctx.hostStyle);\n i0.ɵɵclassMap(ctx.hostClass);\n i0.ɵɵclassProp(\"p-accordionpanel\", true)(\"p-accordionpanel-active\", ctx.selected);\n } }, inputs: { id: \"id\", header: \"header\", headerStyle: \"headerStyle\", tabStyle: \"tabStyle\", contentStyle: \"contentStyle\", tabStyleClass: \"tabStyleClass\", headerStyleClass: \"headerStyleClass\", contentStyleClass: \"contentStyleClass\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], cache: [2, \"cache\", \"cache\", booleanAttribute], transitionOptions: \"transitionOptions\", iconPos: \"iconPos\", selected: \"selected\", headerAriaLevel: [2, \"headerAriaLevel\", \"headerAriaLevel\", numberAttribute] }, outputs: { selectedChange: \"selectedChange\" }, standalone: true, features: [i0.ɵɵProvidersFeature([AccordionStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c10, decls: 9, vars: 30, consts: [[\"type\", \"button\", 1, \"p-accordionheader\", 3, \"click\", \"keydown\", \"disabled\", \"ngClass\", \"ngStyle\"], [\"role\", \"region\", 1, \"p-accordioncontent\"], [1, \"p-accordioncontent-content\", 3, \"ngClass\", \"ngStyle\"], [4, \"ngIf\"], [4, \"ngTemplateOutlet\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"class\", \"ngClass\", 4, \"ngIf\"], [3, \"ngClass\", 4, \"ngIf\"], [3, \"ngClass\"]], template: function AccordionTab_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef(_c9);\n i0.ɵɵelementStart(0, \"button\", 0);\n i0.ɵɵlistener(\"click\", function AccordionTab_Template_button_click_0_listener($event) { return ctx.toggle($event); })(\"keydown\", function AccordionTab_Template_button_keydown_0_listener($event) { return ctx.onKeydown($event); });\n i0.ɵɵtemplate(1, AccordionTab_Conditional_1_Template, 1, 1)(2, AccordionTab_Conditional_2_Template, 2, 2)(3, AccordionTab_Conditional_3_Template, 1, 4)(4, AccordionTab_Conditional_4_Template, 2, 2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 1)(6, \"div\", 2);\n i0.ɵɵprojection(7);\n i0.ɵɵtemplate(8, AccordionTab_ng_container_8_Template, 2, 1, \"ng-container\", 3);\n i0.ɵɵelementEnd()();\n } if (rf & 2) {\n i0.ɵɵclassProp(\"p-disabled\", ctx.disabled);\n i0.ɵɵproperty(\"disabled\", ctx.disabled)(\"ngClass\", ctx.headerStyleClass)(\"ngStyle\", ctx.headerStyle);\n i0.ɵɵattribute(\"aria-expanded\", ctx.selected)(\"aria-level\", ctx.headerAriaLevel)(\"data-p-disabled\", ctx.disabled)(\"data-pc-section\", \"accordionheader\")(\"tabindex\", ctx.disabled ? null : 0)(\"id\", ctx.getTabHeaderActionId(ctx.id))(\"aria-controls\", ctx.getTabContentId(ctx.id));\n i0.ɵɵadvance();\n i0.ɵɵconditional(!ctx.headerTemplate && !ctx._headerTemplate ? 1 : 2);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx.iconTemplate || ctx._iconTemplate ? 3 : 4);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"@tabContent\", ctx.selected ? i0.ɵɵpureFunction1(24, _c4, i0.ɵɵpureFunction1(22, _c3, ctx.transitionOptions)) : i0.ɵɵpureFunction1(28, _c5, i0.ɵɵpureFunction1(26, _c3, ctx.transitionOptions)));\n i0.ɵɵattribute(\"id\", ctx.getTabContentId(ctx.id))(\"aria-hidden\", !ctx.selected)(\"aria-labelledby\", ctx.getTabHeaderActionId(ctx.id))(\"data-pc-section\", \"toggleablecontent\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx.contentStyleClass)(\"ngStyle\", ctx.contentStyle);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", (ctx.contentTemplate || ctx._contentTemplate) && (ctx.cache ? ctx.loaded : ctx.selected));\n } }, dependencies: [CommonModule, i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, ChevronDownIcon, ChevronUpIcon], encapsulation: 2, data: { animation: [\n trigger('tabContent', [\n state('hidden', style({\n height: '0',\n visibility: 'hidden'\n })),\n state('visible', style({\n height: '*',\n visibility: 'visible'\n })),\n transition('visible <=> hidden', [animate('{{transitionParams}}')]),\n transition('void => *', animate(0))\n ])\n ] }, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AccordionTab, [{\n type: Component,\n args: [{\n selector: 'p-accordionTab, p-accordion-tab, p-accordiontab',\n standalone: true,\n imports: [CommonModule, ChevronDownIcon, ChevronUpIcon],\n template: `\n \n @if (!headerTemplate && !_headerTemplate) {\n {{ header }}\n } @else {\n @if (headerTemplate || _headerTemplate) {\n \n }\n @if (headerFacet) {\n \n }\n }\n @if (iconTemplate || _iconTemplate) {\n \n } @else {\n \n \n \n \n \n \n \n \n }\n \n \n
\n \n \n \n \n
\n \n `,\n animations: [\n trigger('tabContent', [\n state('hidden', style({\n height: '0',\n visibility: 'hidden'\n })),\n state('visible', style({\n height: '*',\n visibility: 'visible'\n })),\n transition('visible <=> hidden', [animate('{{transitionParams}}')]),\n transition('void => *', animate(0))\n ])\n ],\n host: {\n '[class.p-accordionpanel]': 'true',\n '[class.p-accordionpanel-active]': 'selected',\n '[attr.data-pc-name]': '\"accordiontab\"'\n },\n providers: [AccordionStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], null, { hostClass: [{\n type: HostBinding,\n args: ['class']\n }], hostStyle: [{\n type: HostBinding,\n args: ['style']\n }], id: [{\n type: Input\n }], header: [{\n type: Input\n }], headerStyle: [{\n type: Input\n }], tabStyle: [{\n type: Input\n }], contentStyle: [{\n type: Input\n }], tabStyleClass: [{\n type: Input\n }], headerStyleClass: [{\n type: Input\n }], contentStyleClass: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], cache: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], transitionOptions: [{\n type: Input\n }], iconPos: [{\n type: Input\n }], selected: [{\n type: Input\n }], headerAriaLevel: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], selectedChange: [{\n type: Output\n }], headerFacet: [{\n type: ContentChildren,\n args: [Header]\n }], headerTemplate: [{\n type: ContentChild,\n args: ['header', { descendants: false }]\n }], iconTemplate: [{\n type: ContentChild,\n args: ['icon', { descendants: false }]\n }], contentTemplate: [{\n type: ContentChild,\n args: ['content', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionTab, { className: \"AccordionTab\" }); })();\n/**\n * Accordion groups a collection of contents in tabs.\n * @group Components\n */\nclass Accordion extends BaseComponent {\n get hostClass() {\n return this.styleClass;\n }\n get hostStyle() {\n return this.style;\n }\n /**\n * Value of the active tab.\n * @defaultValue undefined\n * @group Props\n */\n value = model(undefined);\n /**\n * When enabled, multiple tabs can be activated at the same time.\n * @defaultValue false\n * @group Props\n */\n multiple = input(false, { transform: (v) => transformToBoolean(v) });\n /**\n * Inline style of the tab header and content.\n * @group Props\n */\n style;\n /**\n * Class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Icon of a collapsed tab.\n * @group Props\n */\n expandIcon;\n /**\n * Icon of an expanded tab.\n * @group Props\n */\n collapseIcon;\n /**\n * When enabled, the focused tab is activated.\n * @defaultValue false\n * @group Props\n */\n selectOnFocus = input(false, { transform: (v) => transformToBoolean(v) });\n set activeIndex(val) {\n this._activeIndex = val;\n if (this.preventActiveIndexPropagation) {\n this.preventActiveIndexPropagation = false;\n return;\n }\n this.updateSelectionState();\n }\n /**\n * Transition options of the animation.\n * @group Props\n */\n transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n /**\n * Returns the active index.\n * @param {number | number[]} value - New index.\n * @deprecated use native valueChange emitter of the value model.\n * @group Emits\n */\n activeIndexChange = new EventEmitter();\n set headerAriaLevel(val) {\n if (typeof val === 'number' && val > 0) {\n this._headerAriaLevel = val;\n }\n else if (this._headerAriaLevel !== 2) {\n this._headerAriaLevel = 2;\n }\n }\n /**\n * Callback to invoke when an active tab is collapsed by clicking on the header.\n * @param {AccordionTabCloseEvent} event - Custom tab close event.\n * @group Emits\n */\n onClose = new EventEmitter();\n /**\n * Callback to invoke when a tab gets expanded.\n * @param {AccordionTabOpenEvent} event - Custom tab open event.\n * @group Emits\n */\n onOpen = new EventEmitter();\n id = signal(uuid('pn_id_'));\n tabList;\n tabListSubscription = null;\n _activeIndex;\n _headerAriaLevel = 2;\n preventActiveIndexPropagation = false;\n tabs = [];\n _componentStyle = inject(AccordionStyle);\n /**\n * Index of the active tab or an array of indexes in multiple mode.\n * @deprecated use value property with new architecture instead.\n * @group Props\n */\n get activeIndex() {\n return this._activeIndex;\n }\n /**\n * The aria-level that each accordion header will have. The default value is 2 as per W3C specifications\n * @deprecated use AccoridonHeader component and bind attribute to the host.\n * @group Props\n */\n get headerAriaLevel() {\n return this._headerAriaLevel;\n }\n onKeydown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onTabArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onTabArrowUpKey(event);\n break;\n case 'Home':\n if (!event.shiftKey) {\n this.onTabHomeKey(event);\n }\n break;\n case 'End':\n if (!event.shiftKey) {\n this.onTabEndKey(event);\n }\n break;\n }\n }\n onTabArrowDownKey(event) {\n const nextHeaderAction = this.findNextHeaderAction(event.target.parentElement);\n nextHeaderAction ? this.changeFocusedTab(nextHeaderAction) : this.onTabHomeKey(event);\n event.preventDefault();\n }\n onTabArrowUpKey(event) {\n const prevHeaderAction = this.findPrevHeaderAction(event.target.parentElement);\n prevHeaderAction ? this.changeFocusedTab(prevHeaderAction) : this.onTabEndKey(event);\n event.preventDefault();\n }\n onTabHomeKey(event) {\n const firstHeaderAction = this.findFirstHeaderAction();\n this.changeFocusedTab(firstHeaderAction);\n event.preventDefault();\n }\n changeFocusedTab(element) {\n if (element) {\n focus(element);\n if (this.selectOnFocus()) {\n this.tabs.forEach((tab, i) => {\n let selected = this.multiple() ? this._activeIndex.includes(i) : i === this._activeIndex;\n if (this.multiple()) {\n if (!this._activeIndex) {\n this._activeIndex = [];\n }\n if (tab.id == element.id) {\n tab.selected = !tab.selected;\n if (!this._activeIndex.includes(i)) {\n this._activeIndex.push(i);\n }\n else {\n this._activeIndex = this._activeIndex.filter((ind) => ind !== i);\n }\n }\n }\n else {\n if (tab.id == element.id) {\n tab.selected = !tab.selected;\n this._activeIndex = i;\n }\n else {\n tab.selected = false;\n }\n }\n tab.selectedChange.emit(selected);\n this.activeIndexChange.emit(this._activeIndex);\n tab.cd.markForCheck();\n });\n }\n }\n }\n findNextHeaderAction(tabElement, selfCheck = false) {\n const nextTabElement = selfCheck ? tabElement : tabElement.nextElementSibling;\n const headerElement = findSingle(nextTabElement, '[data-pc-section=\"accordionheader\"]');\n return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findNextHeaderAction(headerElement.parentElement) : findSingle(headerElement.parentElement, '[data-pc-section=\"accordionheader\"]')) : null;\n }\n findPrevHeaderAction(tabElement, selfCheck = false) {\n const prevTabElement = selfCheck ? tabElement : tabElement.previousElementSibling;\n const headerElement = findSingle(prevTabElement, '[data-pc-section=\"accordionheader\"]');\n return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findPrevHeaderAction(headerElement.parentElement) : findSingle(headerElement.parentElement, '[data-pc-section=\"accordionheader\"]')) : null;\n }\n findFirstHeaderAction() {\n const firstEl = this.el.nativeElement.firstElementChild;\n return this.findNextHeaderAction(firstEl, true);\n }\n findLastHeaderAction() {\n const lastEl = this.el.nativeElement.lastElementChild;\n return this.findPrevHeaderAction(lastEl, true);\n }\n onTabEndKey(event) {\n const lastHeaderAction = this.findLastHeaderAction();\n this.changeFocusedTab(lastHeaderAction);\n event.preventDefault();\n }\n ngAfterContentInit() {\n this.initTabs();\n this.tabListSubscription = this.tabList.changes.subscribe((_) => {\n this.initTabs();\n });\n }\n initTabs() {\n this.tabs = this.tabList.toArray();\n this.tabs.forEach((tab) => {\n tab.headerAriaLevel = this._headerAriaLevel;\n });\n this.updateSelectionState();\n this.cd.markForCheck();\n }\n getBlockableElement() {\n return this.el.nativeElement.children[0];\n }\n updateSelectionState() {\n if (this.tabs && this.tabs.length && this._activeIndex != null) {\n for (let i = 0; i < this.tabs.length; i++) {\n let selected = this.multiple() ? this._activeIndex.includes(i) : i === this._activeIndex;\n let changed = selected !== this.tabs[i].selected;\n if (changed) {\n this.tabs[i].selected = selected;\n this.tabs[i].selectedChange.emit(selected);\n this.tabs[i].cd.markForCheck();\n }\n }\n }\n }\n isTabActive(index) {\n return this.multiple() ? this._activeIndex && this._activeIndex.includes(index) : this._activeIndex === index;\n }\n getTabProp(tab, name) {\n return tab.props ? tab.props[name] : undefined;\n }\n updateActiveIndex() {\n let index = this.multiple() ? [] : null;\n this.tabs.forEach((tab, i) => {\n if (tab.selected) {\n if (this.multiple()) {\n index.push(i);\n }\n else {\n index = i;\n return;\n }\n }\n });\n this.preventActiveIndexPropagation = true;\n this._activeIndex = index;\n this.activeIndexChange.emit(index);\n }\n updateValue(value) {\n const currentValue = this.value();\n if (this.multiple()) {\n const newValue = Array.isArray(currentValue) ? [...currentValue] : [];\n const index = newValue.indexOf(value);\n if (index !== -1) {\n newValue.splice(index, 1);\n }\n else {\n newValue.push(value);\n }\n this.value.set(newValue);\n }\n else {\n if (currentValue === value) {\n this.value.set(undefined);\n }\n else {\n this.value.set(value);\n }\n }\n }\n ngOnDestroy() {\n if (this.tabListSubscription) {\n this.tabListSubscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵAccordion_BaseFactory; return function Accordion_Factory(__ngFactoryType__) { return (ɵAccordion_BaseFactory || (ɵAccordion_BaseFactory = i0.ɵɵgetInheritedFactory(Accordion)))(__ngFactoryType__ || Accordion); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Accordion, selectors: [[\"p-accordion\"]], contentQueries: function Accordion_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, AccordionTab, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabList = _t);\n } }, hostVars: 8, hostBindings: function Accordion_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function Accordion_keydown_HostBindingHandler($event) { return ctx.onKeydown($event); });\n } if (rf & 2) {\n i0.ɵɵstyleMap(ctx.hostStyle);\n i0.ɵɵclassMap(ctx.hostClass);\n i0.ɵɵclassProp(\"p-accordion\", true)(\"p-component\", true);\n } }, inputs: { value: [1, \"value\"], multiple: [1, \"multiple\"], style: \"style\", styleClass: \"styleClass\", expandIcon: \"expandIcon\", collapseIcon: \"collapseIcon\", selectOnFocus: [1, \"selectOnFocus\"], transitionOptions: \"transitionOptions\", activeIndex: \"activeIndex\", headerAriaLevel: \"headerAriaLevel\" }, outputs: { value: \"valueChange\", activeIndexChange: \"activeIndexChange\", onClose: \"onClose\", onOpen: \"onOpen\" }, standalone: true, features: [i0.ɵɵProvidersFeature([AccordionStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function Accordion_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n } }, dependencies: [CommonModule, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Accordion, [{\n type: Component,\n args: [{\n selector: 'p-accordion',\n standalone: true,\n imports: [CommonModule, SharedModule],\n template: ` `,\n host: {\n '[class.p-accordion]': 'true',\n '[class.p-component]': 'true'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AccordionStyle]\n }]\n }], null, { hostClass: [{\n type: HostBinding,\n args: ['class']\n }], hostStyle: [{\n type: HostBinding,\n args: ['style']\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], expandIcon: [{\n type: Input\n }], collapseIcon: [{\n type: Input\n }], transitionOptions: [{\n type: Input\n }], activeIndexChange: [{\n type: Output\n }], onClose: [{\n type: Output\n }], onOpen: [{\n type: Output\n }], tabList: [{\n type: ContentChildren,\n args: [AccordionTab, { descendants: true }]\n }], activeIndex: [{\n type: Input\n }], headerAriaLevel: [{\n type: Input\n }], onKeydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Accordion, { className: \"Accordion\" }); })();\nclass AccordionModule {\n static ɵfac = function AccordionModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccordionModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AccordionModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AccordionModule, [{\n type: NgModule,\n args: [{\n imports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent],\n exports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(AccordionModule, { imports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent], exports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Accordion, AccordionClasses, AccordionContent, AccordionHeader, AccordionModule, AccordionPanel, AccordionStyle, AccordionTab };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-progressspinner {\n position: relative;\n margin: 0 auto;\n width: 100px;\n height: 100px;\n display: inline-block;\n}\n\n.p-progressspinner::before {\n content: \"\";\n display: block;\n padding-top: 100%;\n}\n\n.p-progressspinner-spin {\n height: 100%;\n transform-origin: center center;\n width: 100%;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n margin: auto;\n animation: p-progressspinner-rotate 2s linear infinite;\n}\n\n.p-progressspinner-circle {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: 0;\n stroke: ${dt('progressspinner.color.1')};\n animation: p-progressspinner-dash 1.5s ease-in-out infinite, p-progressspinner-color 6s ease-in-out infinite;\n stroke-linecap: round;\n}\n\n@keyframes p-progressspinner-rotate {\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes p-progressspinner-dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35px;\n }\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124px;\n }\n}\n@keyframes p-progressspinner-color {\n 100%,\n 0% {\n stroke: ${dt('progressspinner.color.1')};\n }\n 40% {\n stroke: ${dt('progressspinner.color.2')};\n }\n 66% {\n stroke: ${dt('progressspinner.color.3')};\n }\n 80%,\n 90% {\n stroke: ${dt('progressspinner.color.4')};\n }\n}\n`;\nconst classes = {\n root: 'p-progressspinner',\n spin: 'p-progressspinner-spin',\n circle: 'p-progressspinner-circle'\n};\nclass ProgressSpinnerStyle extends BaseStyle {\n name = 'progressspinner';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵProgressSpinnerStyle_BaseFactory; return function ProgressSpinnerStyle_Factory(__ngFactoryType__) { return (ɵProgressSpinnerStyle_BaseFactory || (ɵProgressSpinnerStyle_BaseFactory = i0.ɵɵgetInheritedFactory(ProgressSpinnerStyle)))(__ngFactoryType__ || ProgressSpinnerStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ProgressSpinnerStyle, factory: ProgressSpinnerStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ProgressSpinnerStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * ProgressSpinner is a process status indicator.\n *\n * [Live Demo](https://www.primeng.org/progressspinner)\n *\n * @module progressspinnerstyle\n *\n */\nvar ProgressSpinnerClasses;\n(function (ProgressSpinnerClasses) {\n /**\n * Class name of the root element\n */\n ProgressSpinnerClasses[\"root\"] = \"p-progressspinner\";\n /**\n * Class name of the spin element\n */\n ProgressSpinnerClasses[\"spin\"] = \"p-progressspinner-spin\";\n /**\n * Class name of the circle element\n */\n ProgressSpinnerClasses[\"circle\"] = \"p-progressspinner-circle\";\n})(ProgressSpinnerClasses || (ProgressSpinnerClasses = {}));\n\n/**\n * ProgressSpinner is a process status indicator.\n * @group Components\n */\nclass ProgressSpinner extends BaseComponent {\n /**\n * Class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Inline style of the element.\n * @group Props\n */\n style;\n /**\n * Width of the circle stroke.\n * @group Props\n */\n strokeWidth = '2';\n /**\n * Color for the background of the circle.\n * @group Props\n */\n fill = 'none';\n /**\n * Duration of the rotate animation.\n * @group Props\n */\n animationDuration = '2s';\n /**\n * Used to define a aria label attribute the current element.\n * @group Props\n */\n ariaLabel;\n _componentStyle = inject(ProgressSpinnerStyle);\n static ɵfac = /*@__PURE__*/ (() => { let ɵProgressSpinner_BaseFactory; return function ProgressSpinner_Factory(__ngFactoryType__) { return (ɵProgressSpinner_BaseFactory || (ɵProgressSpinner_BaseFactory = i0.ɵɵgetInheritedFactory(ProgressSpinner)))(__ngFactoryType__ || ProgressSpinner); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProgressSpinner, selectors: [[\"p-progressSpinner\"], [\"p-progress-spinner\"], [\"p-progressspinner\"]], inputs: { styleClass: \"styleClass\", style: \"style\", strokeWidth: \"strokeWidth\", fill: \"fill\", animationDuration: \"animationDuration\", ariaLabel: \"ariaLabel\" }, standalone: true, features: [i0.ɵɵProvidersFeature([ProgressSpinnerStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 3, vars: 11, consts: [[\"role\", \"progressbar\", 1, \"p-progressspinner\", 3, \"ngStyle\", \"ngClass\"], [\"viewBox\", \"25 25 50 50\", 1, \"p-progressspinner-spin\"], [\"cx\", \"50\", \"cy\", \"50\", \"r\", \"20\", \"stroke-miterlimit\", \"10\", 1, \"p-progressspinner-circle\"]], template: function ProgressSpinner_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 1);\n i0.ɵɵelement(2, \"circle\", 2);\n i0.ɵɵelementEnd()();\n } if (rf & 2) {\n i0.ɵɵproperty(\"ngStyle\", ctx.style)(\"ngClass\", ctx.styleClass);\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-busy\", true)(\"data-pc-name\", \"progressspinner\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"animation-duration\", ctx.animationDuration);\n i0.ɵɵattribute(\"data-pc-section\", \"root\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"fill\", ctx.fill)(\"stroke-width\", ctx.strokeWidth);\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgStyle, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ProgressSpinner, [{\n type: Component,\n args: [{\n selector: 'p-progressSpinner, p-progress-spinner, p-progressspinner',\n standalone: true,\n imports: [CommonModule, SharedModule],\n template: `\n
\n \n \n \n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [ProgressSpinnerStyle]\n }]\n }], null, { styleClass: [{\n type: Input\n }], style: [{\n type: Input\n }], strokeWidth: [{\n type: Input\n }], fill: [{\n type: Input\n }], animationDuration: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(ProgressSpinner, { className: \"ProgressSpinner\" }); })();\nclass ProgressSpinnerModule {\n static ɵfac = function ProgressSpinnerModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ProgressSpinnerModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ProgressSpinnerModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [ProgressSpinner, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ProgressSpinnerModule, [{\n type: NgModule,\n args: [{\n imports: [ProgressSpinner, SharedModule],\n exports: [ProgressSpinner, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(ProgressSpinnerModule, { imports: [ProgressSpinner, SharedModule], exports: [ProgressSpinner, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ProgressSpinner, ProgressSpinnerClasses, ProgressSpinnerModule, ProgressSpinnerStyle };\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { AreaTypeEnum } from '@commons/enums/area-type.enum';\r\n\r\n@Pipe({\r\n name: 'areaTypeImg'\r\n})\r\nexport class AreaTypeImgPipe implements PipeTransform {\r\n\r\n transform(type: AreaTypeEnum): string {\r\n if (type === AreaTypeEnum.Circle) {\r\n return '/assets/img/areas/active@3x.png';\r\n }\r\n if (type === AreaTypeEnum.Line) {\r\n return '/assets/img/areas/active_3@2x.png';\r\n }\r\n return '/assets/img/areas/active_4@2x.png';\r\n }\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\n\r\nimport { Area } from '@commons/models/domain/Area';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-area-item-list',\r\n templateUrl: './area-item-list.component.html',\r\n styleUrls: ['./area-item-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AreaItemListComponent),\r\n multi: true,\r\n }\r\n ],\r\n})\r\nexport class AreaItemListComponent implements ControlValueAccessor {\r\n\r\n @Output() public onClick$: EventEmitter = new EventEmitter();\r\n @Output() public onClickName$: EventEmitter = new EventEmitter();\r\n @Output() public onEdit$: EventEmitter = new EventEmitter();\r\n @Output() public onDelete$: EventEmitter = new EventEmitter();\r\n\r\n @Input() public data: Area;\r\n\r\n public checked: boolean;\r\n\r\n public onChange: any = () => {};\r\n public onTouch: any = () => {};\r\n\r\n constructor() { }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n public writeValue(checked: boolean): void {\r\n this.checked = checked;\r\n }\r\n\r\n public onModelChange(e: boolean): void {\r\n this.checked = e;\r\n this.onChange(e);\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 {{ 'labels.areas' | translate | titlecase }}\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 \r\n {{ 'areas.max-selected-areas' | translate }}\r\n \r\n
\r\n\r\n \r\n \"empty\r\n\r\n \r\n {{ 'areas.no-defined-areas' | translate }}\r\n \r\n \r\n {{ 'areas.click-btn-below' | translate }}\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 \r\n\r\n
\r\n \r\n\r\n \r\n \r\n {{ item.tag.L }}\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
\r\n
\r\n
\r\n\r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, NgZone, OnDestroy, OnInit, Output } from '@angular/core';\r\n\r\nimport { Observable, Subject, Subscription, debounceTime, distinctUntilChanged, forkJoin, map, tap } from 'rxjs';\r\nimport { Accordion } from 'primeng/accordion';\r\n\r\nimport { Tag } from '@commons/models/domain/Tag';\r\nimport { AreaListFilterRequest } from '@commons/models/remote.request/AreaListFilterRequest';\r\nimport { GetTagsListByFilterResponse, IUntaggedAreas } from '@commons/models/remote.response/GetTagsListByFilterResponse';\r\nimport { WebAccessService } from '@commons/services/web.access/web-access.service';\r\nimport { Area } from '@commons/models/domain/Area';\r\nimport { AreaDrawerService } from '@commons/services/map/drawer/area/area-drawer.service';\r\nimport { AreaService } from '@commons/services/area/area.service';\r\n\r\ninterface IGroup {\r\n tag: Tag;\r\n isChecked: boolean;\r\n isLoadingAreas: boolean;\r\n areas?: IAreaInGroupList[];\r\n}\r\n\r\nexport interface IAreaInGroupList extends Area {\r\n isChecked?: boolean;\r\n}\r\n\r\ninterface IShowArea {\r\n area: Area;\r\n groupId?: number;\r\n isUntaggedArea?: boolean;\r\n withOutRemove?: boolean;\r\n withOutCenter?: boolean;\r\n editable?: boolean;\r\n}\r\n\r\ninterface IGroupAreaActiveMap {\r\n areaId: number;\r\n layerMapRef: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-areas-list',\r\n templateUrl: './areas-list.component.html',\r\n styleUrls: ['./areas-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AreasListComponent implements OnInit, OnDestroy {\r\n @Output() public addArea$: EventEmitter = new EventEmitter();\r\n @Output() public close$: EventEmitter = new EventEmitter();\r\n\r\n public isLoadingGroups: boolean = true;\r\n public groups: IGroup[] = [];\r\n public activeGroups: number[] = []; // otwarte accordiony\r\n public untaggedAreas: IAreaInGroupList[] = [];\r\n\r\n // obszary zaznaczone na mapie\r\n public areasInMapActiveIds: {\r\n [key: number]: IGroupAreaActiveMap[]; //groups\r\n untaggedAreas?: IGroupAreaActiveMap[]; //untagged areas\r\n } = {};\r\n public isErrorMax500AreasVisible: boolean;\r\n private numberOfMarkedAreasOnTheMap: number = 0;\r\n\r\n public searchValue: string;\r\n public onChangeSearchValue$: Subject = new Subject();\r\n\r\n private readonly ComponentSubsc: Subscription = new Subscription();\r\n private readonly MAX_SELECTED_AREAS_IN_MAP = 500;\r\n\r\n constructor(\r\n private webAccess: WebAccessService,\r\n private changeDetRef: ChangeDetectorRef,\r\n private areaDrawerService: AreaDrawerService,\r\n private ngZone: NgZone,\r\n private areaService: AreaService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getListData();\r\n this.onChangeSearchValue();\r\n this.onClickEditOnTooltip();\r\n this.onClickDeleteOnTooltip();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n }\r\n\r\n public onClickEditOnTooltip(): void {\r\n const sub = this.areaDrawerService.onClickEditTooltipArea$.pipe(debounceTime(0)).subscribe(\r\n (area) => {\r\n this.onEditArea(area);\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n public onClickDeleteOnTooltip(): void {\r\n const sub = this.areaDrawerService.onClickDeleteTooltipArea$.pipe(debounceTime(0)).subscribe(\r\n (area) => {\r\n const hasAreaGroup = area.Tg.length;\r\n // delete area with groups\r\n if (hasAreaGroup) {\r\n const groupsIds = [...area.Tg].map(item => item.L);\r\n\r\n for (const groupId of groupsIds) {\r\n const groupData = this.groups.find(el => el.tag.L === groupId);\r\n\r\n if (groupData?.areas?.length) {\r\n const indexArea = groupData.areas.findIndex(areaData => areaData.Id === area.Id);\r\n\r\n if (indexArea !== -1) {\r\n this.deleteAreaInGroup(area, groupData.tag.Id, indexArea);\r\n this.changeDetRef.markForCheck();\r\n }\r\n }\r\n }\r\n return;\r\n }\r\n // delete untaggedArea\r\n this.deleteUntaggedArea(area);\r\n this.changeDetRef.markForCheck();\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n public onChangeSearchValue(): void {\r\n const sub = this.onChangeSearchValue$\r\n .pipe(\r\n tap(() => this.isLoadingGroups = true),\r\n distinctUntilChanged(),\r\n debounceTime(300),\r\n )\r\n .subscribe(\r\n () => {\r\n this.getListData();\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n public onEditArea(area: Area): void {\r\n this.addArea$.emit(area);\r\n }\r\n\r\n public deleteUntaggedArea(area: Area): void {\r\n this.removeUntaggedAreaFromMap(area);\r\n this.deleteUntaggedAreaFromList(area);\r\n this.deleteArea(area.Id);\r\n }\r\n\r\n public deleteAreaInGroup(area: Area, groupId: number, areaIndex: number): void {\r\n this.removeAreaFromMap(area, groupId);\r\n this.deleteAreaFromGroupList(groupId, areaIndex);\r\n this.deleteArea(area.Id);\r\n }\r\n\r\n private deleteArea(areaId: number): void {\r\n const sub = this.areaService.deleteAreaDetails$(areaId).subscribe(() => {});\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private deleteAreaFromGroupList(groupId: number, areaIndexInGroup: number): void {\r\n let item = this.groups.find(item => item.tag.Id === groupId);\r\n if (item) {\r\n item = {\r\n ...item,\r\n areas: item.areas?.splice(areaIndexInGroup, 1),\r\n };\r\n }\r\n }\r\n\r\n private deleteUntaggedAreaFromList(area: Area): void {\r\n const index = this.untaggedAreas.findIndex(item => item.Id === area.Id);\r\n\r\n if (index !== -1) {\r\n this.untaggedAreas.splice(index, 1);\r\n }\r\n }\r\n\r\n public onClickClose(): void {\r\n this.clearAllAreasFromMap();\r\n this.close$.emit();\r\n }\r\n\r\n private addOneNumberMarkedAreas(): void {\r\n this.numberOfMarkedAreasOnTheMap = this.numberOfMarkedAreasOnTheMap + 1;\r\n }\r\n\r\n private removeOneNumberMarkedAreas(): void {\r\n this.numberOfMarkedAreasOnTheMap = this.numberOfMarkedAreasOnTheMap - 1;\r\n \r\n if (this.numberOfMarkedAreasOnTheMap < this.MAX_SELECTED_AREAS_IN_MAP) {\r\n this.isErrorMax500AreasVisible = false;\r\n }\r\n }\r\n\r\n public showArea(data: IShowArea): void {\r\n if (!data.withOutRemove) {\r\n this.clearAllAreasFromMap();\r\n }\r\n this.areaDrawerService.setArea(data.area, data.editable);\r\n const areaMapLayerRef = this.areaDrawerService.draw();\r\n !data.withOutCenter && this.areaDrawerService.fitBoundsToVisibleArea(areaMapLayerRef.getBounds());\r\n\r\n data.isUntaggedArea\r\n ? this.addUntaggedNewAreaRefToList(data.area, areaMapLayerRef)\r\n : (data.groupId && this.addNewAreaRefToList(data.area.Id, areaMapLayerRef, data.groupId));\r\n\r\n this.addOneNumberMarkedAreas();\r\n }\r\n\r\n private addUntaggedNewAreaRefToList(area: Area, layerMapRef: any): void {\r\n const areaData = {\r\n areaId: area.Id,\r\n layerMapRef,\r\n };\r\n this.areasInMapActiveIds = {\r\n ...this.areasInMapActiveIds,\r\n untaggedAreas: [...(this.areasInMapActiveIds.untaggedAreas || []), areaData],\r\n }\r\n }\r\n\r\n public clearAllAreasFromMap(): void {\r\n this.areaDrawerService.setArea(undefined);\r\n this.areaDrawerService.remove();\r\n this.removeAllAreaRefs();\r\n }\r\n\r\n private removeAllAreaRefs(): void {\r\n this.areasInMapActiveIds = {};\r\n this.numberOfMarkedAreasOnTheMap = 0;\r\n }\r\n\r\n private removeAllAreasSelectedGroup(groupData: IGroup): void {\r\n const groupAreasRef = this.areasInMapActiveIds[groupData.tag.Id];\r\n\r\n if (groupAreasRef) {\r\n groupAreasRef.forEach(\r\n (area) => {\r\n area.layerMapRef.remove();\r\n this.removeOneNumberMarkedAreas();\r\n }\r\n );\r\n \r\n this.areasInMapActiveIds = {\r\n ...this.areasInMapActiveIds,\r\n [groupData.tag.Id]: [],\r\n };\r\n }\r\n }\r\n\r\n private addNewAreaRefToList(areaId: number, layerMapRef: any, groupId: number): void {\r\n const areaData = {\r\n areaId,\r\n layerMapRef,\r\n };\r\n\r\n if (this.areasInMapActiveIds[groupId]) {\r\n let areasGroup = [...this.areasInMapActiveIds[groupId]]; // []\r\n areasGroup = [\r\n ...areasGroup,\r\n { ...areaData },\r\n ];\r\n this.areasInMapActiveIds[groupId] = [...areasGroup];\r\n return;\r\n }\r\n\r\n this.areasInMapActiveIds = {\r\n ...this.areasInMapActiveIds,\r\n [groupId]: [areaData], \r\n };\r\n }\r\n\r\n public onChangeCheckedStateArea(isChecked: boolean, area: Area, groupId: number): void {\r\n if (isChecked) {\r\n if (this.numberOfMarkedAreasOnTheMap >= this.MAX_SELECTED_AREAS_IN_MAP) {\r\n this.isErrorMax500AreasVisible = true;\r\n return;\r\n }\r\n this.removeUntaggedAreaFromMap(area);\r\n this.showArea({ area, groupId, withOutRemove: true });\r\n return;\r\n }\r\n this.removeAreaFromMap(area, groupId);\r\n }\r\n\r\n public onChangeCheckedStateUntaggedArea(isChecked: boolean, area: Area): void {\r\n // sprawdzic czy jest juz zaznaczony\r\n if (isChecked) {\r\n if (this.numberOfMarkedAreasOnTheMap >= this.MAX_SELECTED_AREAS_IN_MAP) {\r\n this.isErrorMax500AreasVisible = true;\r\n return;\r\n }\r\n this.removeUntaggedAreaFromMap(area);\r\n this.showArea({ area, withOutRemove: true, isUntaggedArea: true, groupId: null as any });\r\n return;\r\n }\r\n this.removeUntaggedAreaFromMap(area);\r\n }\r\n\r\n private removeAreaFromMap(area: Area, groupId: number): void {\r\n // nie z referencji\r\n if (this.areasInMapActiveIds[groupId]) {\r\n const areaRefIndex = this.areasInMapActiveIds[groupId].findIndex(item => item.areaId === area.Id);\r\n\r\n if (areaRefIndex !== -1) {\r\n this.areasInMapActiveIds[groupId][areaRefIndex].layerMapRef.remove();\r\n this.areasInMapActiveIds[groupId].splice(areaRefIndex, 1);\r\n this.removeOneNumberMarkedAreas();\r\n }\r\n }\r\n }\r\n\r\n private removeUntaggedAreaFromMap(area: Area): void {\r\n if (this.areasInMapActiveIds.untaggedAreas) {\r\n const areaRefIndex = this.areasInMapActiveIds.untaggedAreas.findIndex(item => item.areaId === area.Id);\r\n\r\n if (areaRefIndex !== -1) {\r\n this.areasInMapActiveIds.untaggedAreas[areaRefIndex].layerMapRef.remove();\r\n this.areasInMapActiveIds.untaggedAreas.splice(areaRefIndex, 1);\r\n this.removeOneNumberMarkedAreas();\r\n }\r\n }\r\n }\r\n\r\n public onToggleAllGroupAreasInMap(groupData: IGroup, groupIndex: number): void {\r\n console.log('onToggleAllGroupAreasInMap', groupData, groupIndex);\r\n\r\n this.ngZone.runOutsideAngular(() => {\r\n const { isChecked } = groupData;\r\n\r\n const showAreas = (groups = this.getGroupDataByIndex(groupIndex)): void => {\r\n groups.areas?.forEach(item => item.isChecked = true);\r\n this.showAllAreasGroupInMap(groups);\r\n this.ngZone.run(() => {});\r\n };\r\n\r\n // metoda sluzaca usunieciu obszaru, gdy po edycji obszar zostanie zapisany\r\n const removeAreaFromUntagged = (groups = this.getGroupDataByIndex(groupIndex)): void => {\r\n if (this.areasInMapActiveIds.untaggedAreas?.length) {\r\n groups.areas?.forEach(\r\n (area) => {\r\n this.removeUntaggedAreaFromMap(area);\r\n }\r\n );\r\n }\r\n };\r\n\r\n if (isChecked) {\r\n const ifGroupHasMoreThen500Areas: boolean = groupData.tag.C > this.MAX_SELECTED_AREAS_IN_MAP;\r\n if (ifGroupHasMoreThen500Areas) {\r\n this.isErrorMax500AreasVisible = true;\r\n return;\r\n }\r\n\r\n if (!groupData.areas?.length) {\r\n this.setLoadingAreasStateForGroup(true, groupIndex);\r\n this.getAreasGroup(groupData, groupIndex).then(\r\n () => {\r\n removeAreaFromUntagged();\r\n showAreas();\r\n }\r\n );\r\n return;\r\n }\r\n showAreas(groupData);\r\n return;\r\n }\r\n\r\n groupData.areas?.forEach(item => item.isChecked = false);\r\n this.removeAllAreasSelectedGroup(groupData);\r\n this.ngZone.run(() => {});\r\n });\r\n }\r\n\r\n private showAllAreasGroupInMap(groupData: IGroup): void {\r\n groupData.areas?.forEach(\r\n (area) => {\r\n this.showArea({ area, groupId: groupData.tag.Id, withOutRemove: true, withOutCenter: true });\r\n }\r\n );\r\n }\r\n\r\n private getGroupDataByIndex(groupIndex: number): IGroup {\r\n return this.groups[groupIndex];\r\n }\r\n\r\n public onToggleAccordion(event: any, accordionRef: Accordion, index: number | null = null): void {\r\n event?.originalEvent?.preventDefault();\r\n\r\n const indexGroup = index !== null ? index : event.index;\r\n const groupData = { ...this.groups[indexGroup] };\r\n\r\n if (groupData.isLoadingAreas) {\r\n return;\r\n }\r\n\r\n if (groupData.areas?.length) {\r\n this.addActiveGroup(indexGroup);\r\n return;\r\n }\r\n\r\n this.setLoadingAreasStateForGroup(true, indexGroup);\r\n this.getAreasGroup(groupData, indexGroup);\r\n }\r\n\r\n private getAreasGroup(groupData: IGroup, indexGroup: number): Promise {\r\n return new Promise((resolve, reject) => {\r\n const body: AreaListFilterRequest = {\r\n Phrase: '',\r\n Tags: [{ ...groupData.tag }],\r\n };\r\n const sub = this.webAccess.GetAreaListByFilter(body).pipe(map(res => res.Result)).subscribe(\r\n (data) => {\r\n setTimeout(() => {\r\n this.setAreasInGroup(data, indexGroup);\r\n this.setLoadingAreasStateForGroup(false, indexGroup);\r\n return resolve();\r\n }, 2000);\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n });\r\n }\r\n\r\n private setAreaCoords(area: Area): Area {\r\n const setAreaTp = (area: Area): number => {\r\n switch (area.Tp) {\r\n case 5:\r\n return area.Tp = 1;\r\n case 3:\r\n return area.Tp = 2;\r\n default:\r\n return area.Tp = 3;\r\n }\r\n };\r\n return {\r\n ...area,\r\n Coords: area.P.map((coord) => ({ \r\n Lat: coord.Lat.toString().replace(',', '.'),\r\n Lon: coord.Lon.toString().replace(',', '.'),\r\n })),\r\n Tp: setAreaTp(area),\r\n };\r\n }\r\n\r\n private setAreasInGroup(areas: Area[], groupIndex: number): void {\r\n this.ngZone.runOutsideAngular(() => {\r\n const groups = [...this.groups];\r\n let group = { ...groups[groupIndex] };\r\n group = {\r\n ...group,\r\n areas: [...areas].map((area) => this.setAreaCoords(area)),\r\n };\r\n groups[groupIndex] = { ...group };\r\n this.groups = [...groups];\r\n this.addActiveGroup(groupIndex);\r\n this.changeDetRef.markForCheck();\r\n this.ngZone.run(() => {});\r\n });\r\n }\r\n\r\n private addActiveGroup(index: number): void {\r\n this.activeGroups = [...this.activeGroups, index];\r\n }\r\n\r\n public trackByGroups(index: number, item: { tag: Tag }): number {\r\n return item.tag.Id;\r\n }\r\n\r\n public trackByAreas(index: number, area: Area): number {\r\n return area.Id;\r\n }\r\n\r\n private setLoadingAreasStateForGroup(isLoading: boolean, index: number): void {\r\n // nie ladne rozwiazanie po referencji ale poprawimy\r\n this.groups[index].isLoadingAreas = isLoading;\r\n this.changeDetRef.markForCheck();\r\n }\r\n\r\n private getListData(): void {\r\n this.isLoadingGroups = true;\r\n const request = [\r\n this.getTags(),\r\n this.getUntaggedAreas(),\r\n ];\r\n const sub = forkJoin(request).subscribe(\r\n ([tags, untaggedAreas]: any) => {\r\n this.setTags(tags);\r\n this.setUntaggedAreas(untaggedAreas.Result);\r\n this.isLoadingGroups = false;\r\n this.changeDetRef.markForCheck();\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private getTags(): Observable {\r\n const body = {\r\n Phrase: this.searchValue,\r\n TagType: 2,\r\n };\r\n return this.webAccess.GetTagsListByFilter(body);\r\n }\r\n\r\n private getUntaggedAreas(): Observable {\r\n const body = {\r\n Phrase: this.searchValue,\r\n };\r\n return this.webAccess.GetUntaggedAreas(body);\r\n }\r\n\r\n private setTags(data: GetTagsListByFilterResponse): void {\r\n this.groups = [...data.Result].filter(item => item.C).map(item => ({ tag: item, isChecked: false, isLoadingAreas: false }));\r\n }\r\n\r\n private setUntaggedAreas(data: Area[]): void {\r\n this.untaggedAreas = data.map(item => ({ ...this.setAreaCoords(item), isChecked: false }));\r\n }\r\n\r\n}\r\n","import { FormControl } from \"@angular/forms\";\r\n\r\n\r\n\r\nexport function AREA_COORDS_VALIDATOR(control: FormControl) {\r\n \r\n const isValid = control.value ? (control.value.length >= 2) : true;\r\n return isValid ? null : { 'invalid_area_coords': true };\r\n}","import * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BaseIcon } from 'primeng/icons/baseicon';\n\nclass TimesCircleIcon extends BaseIcon {\n pathId;\n ngOnInit() {\n this.pathId = 'url(#' + uuid() + ')';\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵTimesCircleIcon_BaseFactory; return function TimesCircleIcon_Factory(__ngFactoryType__) { return (ɵTimesCircleIcon_BaseFactory || (ɵTimesCircleIcon_BaseFactory = i0.ɵɵgetInheritedFactory(TimesCircleIcon)))(__ngFactoryType__ || TimesCircleIcon); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimesCircleIcon, selectors: [[\"TimesCircleIcon\"]], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 6, vars: 7, consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"fill-rule\", \"evenodd\", \"clip-rule\", \"evenodd\", \"d\", \"M7 14C5.61553 14 4.26215 13.5895 3.11101 12.8203C1.95987 12.0511 1.06266 10.9579 0.532846 9.67879C0.00303296 8.3997 -0.13559 6.99224 0.134506 5.63437C0.404603 4.2765 1.07129 3.02922 2.05026 2.05026C3.02922 1.07129 4.2765 0.404603 5.63437 0.134506C6.99224 -0.13559 8.3997 0.00303296 9.67879 0.532846C10.9579 1.06266 12.0511 1.95987 12.8203 3.11101C13.5895 4.26215 14 5.61553 14 7C14 8.85652 13.2625 10.637 11.9497 11.9497C10.637 13.2625 8.85652 14 7 14ZM7 1.16667C5.84628 1.16667 4.71846 1.50879 3.75918 2.14976C2.79989 2.79074 2.05222 3.70178 1.61071 4.76768C1.16919 5.83358 1.05367 7.00647 1.27876 8.13803C1.50384 9.26958 2.05941 10.309 2.87521 11.1248C3.69102 11.9406 4.73042 12.4962 5.86198 12.7212C6.99353 12.9463 8.16642 12.8308 9.23232 12.3893C10.2982 11.9478 11.2093 11.2001 11.8502 10.2408C12.4912 9.28154 12.8333 8.15373 12.8333 7C12.8333 5.45291 12.2188 3.96918 11.1248 2.87521C10.0308 1.78125 8.5471 1.16667 7 1.16667ZM4.66662 9.91668C4.58998 9.91704 4.51404 9.90209 4.44325 9.87271C4.37246 9.84333 4.30826 9.8001 4.2544 9.74557C4.14516 9.6362 4.0838 9.48793 4.0838 9.33335C4.0838 9.17876 4.14516 9.0305 4.2544 8.92113L6.17553 7L4.25443 5.07891C4.15139 4.96832 4.09529 4.82207 4.09796 4.67094C4.10063 4.51982 4.16185 4.37563 4.26872 4.26876C4.3756 4.16188 4.51979 4.10066 4.67091 4.09799C4.82204 4.09532 4.96829 4.15142 5.07887 4.25446L6.99997 6.17556L8.92106 4.25446C9.03164 4.15142 9.1779 4.09532 9.32903 4.09799C9.48015 4.10066 9.62434 4.16188 9.73121 4.26876C9.83809 4.37563 9.89931 4.51982 9.90198 4.67094C9.90464 4.82207 9.84855 4.96832 9.74551 5.07891L7.82441 7L9.74554 8.92113C9.85478 9.0305 9.91614 9.17876 9.91614 9.33335C9.91614 9.48793 9.85478 9.6362 9.74554 9.74557C9.69168 9.8001 9.62748 9.84333 9.55669 9.87271C9.4859 9.90209 9.40996 9.91704 9.33332 9.91668C9.25668 9.91704 9.18073 9.90209 9.10995 9.87271C9.03916 9.84333 8.97495 9.8001 8.9211 9.74557L6.99997 7.82444L5.07884 9.74557C5.02499 9.8001 4.96078 9.84333 4.88999 9.87271C4.81921 9.90209 4.74326 9.91704 4.66662 9.91668Z\", \"fill\", \"currentColor\"], [3, \"id\"], [\"width\", \"14\", \"height\", \"14\", \"fill\", \"white\"]], template: function TimesCircleIcon_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\");\n i0.ɵɵelement(2, \"path\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"defs\")(4, \"clipPath\", 2);\n i0.ɵɵelement(5, \"rect\", 3);\n i0.ɵɵelementEnd()()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.pathId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.pathId);\n } }, encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TimesCircleIcon, [{\n type: Component,\n args: [{\n selector: 'TimesCircleIcon',\n standalone: true,\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], null, null); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TimesCircleIcon, { className: \"TimesCircleIcon\" }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TimesCircleIcon };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, inject, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { TranslationKeys, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TimesCircleIcon } from 'primeng/icons';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-chip {\n display: inline-flex;\n align-items: center;\n background: ${dt('chip.background')};\n color: ${dt('chip.color')};\n border-radius: ${dt('chip.border.radius')};\n padding: ${dt('chip.padding.y')} ${dt('chip.padding.x')};\n gap: ${dt('chip.gap')};\n}\n\n.p-chip-icon {\n color: ${dt('chip.icon.color')};\n font-size: ${dt('chip.icon.font.size')};\n width: ${dt('chip.icon.size')};\n height: ${dt('chip.icon.size')};\n}\n\n.p-chip-image {\n border-radius: 50%;\n width: ${dt('chip.image.width')};\n height: ${dt('chip.image.height')};\n margin-left: calc(-1 * ${dt('chip.padding.y')});\n}\n\n.p-chip:has(.p-chip-remove-icon) {\n padding-inline-end: ${dt('chip.padding.y')};\n}\n\n.p-chip:has(.p-chip-image) {\n padding-top: calc(${dt('chip.padding.y')} / 2);\n padding-bottom: calc(${dt('chip.padding.y')} / 2);\n}\n\n.p-chip-remove-icon {\n cursor: pointer;\n font-size: ${dt('chip.remove.icon.font.size')};\n width: ${dt('chip.remove.icon.size')};\n height: ${dt('chip.remove.icon.size')};\n color: ${dt('chip.remove.icon.color')};\n border-radius: 50%;\n transition: outline-color ${dt('chip.transition.duration')}, box-shadow ${dt('chip.transition.duration')};\n outline-color: transparent;\n}\n\n.p-chip-remove-icon:focus-visible {\n box-shadow: ${dt('chip.remove.icon.focus.ring.shadow')};\n outline: ${dt('chip.remove.icon.focus.ring.width')} ${dt('chip.remove.icon.focus.ring.style')} ${dt('chip.remove.icon.focus.ring.color')};\n outline-offset: ${dt('chip.remove.icon.focus.ring.offset')};\n}\n`;\nconst classes = {\n root: 'p-chip p-component',\n image: 'p-chip-image',\n icon: 'p-chip-icon',\n label: 'p-chip-label',\n removeIcon: 'p-chip-remove-icon'\n};\nclass ChipStyle extends BaseStyle {\n name = 'chip';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵChipStyle_BaseFactory; return function ChipStyle_Factory(__ngFactoryType__) { return (ɵChipStyle_BaseFactory || (ɵChipStyle_BaseFactory = i0.ɵɵgetInheritedFactory(ChipStyle)))(__ngFactoryType__ || ChipStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ChipStyle, factory: ChipStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ChipStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * Chip represents people using icons, labels and images.\n *\n * [Live Demo](https://www.primeng.org/chip)\n *\n * @module chipstyle\n *\n */\nvar ChipClasses;\n(function (ChipClasses) {\n /**\n * Class name of the root element\n */\n ChipClasses[\"root\"] = \"p-chip\";\n /**\n * Class name of the image element\n */\n ChipClasses[\"image\"] = \"p-chip-image\";\n /**\n * Class name of the icon element\n */\n ChipClasses[\"icon\"] = \"p-chip-icon\";\n /**\n * Class name of the label element\n */\n ChipClasses[\"label\"] = \"p-chip-label\";\n /**\n * Class name of the remove icon element\n */\n ChipClasses[\"removeIcon\"] = \"p-chip-remove-icon\";\n})(ChipClasses || (ChipClasses = {}));\n\nconst _c0 = [\"removeicon\"];\nconst _c1 = [\"*\"];\nfunction Chip_img_1_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"img\", 4);\n i0.ɵɵlistener(\"error\", function Chip_img_1_Template_img_error_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.imageError($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"src\", ctx_r1.image, i0.ɵɵsanitizeUrl)(\"alt\", ctx_r1.alt);\n} }\nfunction Chip_ng_template_2_span_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 6);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵclassMap(ctx_r1.icon);\n i0.ɵɵproperty(\"ngClass\", \"p-chip-icon\");\n i0.ɵɵattribute(\"data-pc-section\", \"icon\");\n} }\nfunction Chip_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Chip_ng_template_2_span_0_Template, 1, 4, \"span\", 5);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.icon);\n} }\nfunction Chip_div_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 7);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"data-pc-section\", \"label\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.label);\n} }\nfunction Chip_ng_container_5_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 11);\n i0.ɵɵlistener(\"click\", function Chip_ng_container_5_ng_container_1_span_1_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.close($event)); })(\"keydown\", function Chip_ng_container_5_ng_container_1_span_1_Template_span_keydown_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onKeydown($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassMap(ctx_r1.removeIcon);\n i0.ɵɵproperty(\"ngClass\", \"p-chip-remove-icon\");\n i0.ɵɵattribute(\"data-pc-section\", \"removeicon\")(\"aria-label\", ctx_r1.removeAriaLabel);\n} }\nfunction Chip_ng_container_5_ng_container_1_TimesCircleIcon_2_Template(rf, ctx) { if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"TimesCircleIcon\", 12);\n i0.ɵɵlistener(\"click\", function Chip_ng_container_5_ng_container_1_TimesCircleIcon_2_Template_TimesCircleIcon_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.close($event)); })(\"keydown\", function Chip_ng_container_5_ng_container_1_TimesCircleIcon_2_Template_TimesCircleIcon_keydown_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onKeydown($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵclassMap(\"p-chip-remove-icon\");\n i0.ɵɵattribute(\"data-pc-section\", \"removeicon\")(\"aria-label\", ctx_r1.removeAriaLabel);\n} }\nfunction Chip_ng_container_5_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Chip_ng_container_5_ng_container_1_span_1_Template, 1, 5, \"span\", 9)(2, Chip_ng_container_5_ng_container_1_TimesCircleIcon_2_Template, 1, 4, \"TimesCircleIcon\", 10);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.removeIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.removeIcon);\n} }\nfunction Chip_ng_container_5_span_2_1_ng_template_0_Template(rf, ctx) { }\nfunction Chip_ng_container_5_span_2_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Chip_ng_container_5_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Chip_ng_container_5_span_2_Template(rf, ctx) { if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 13);\n i0.ɵɵlistener(\"click\", function Chip_ng_container_5_span_2_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.close($event)); })(\"keydown\", function Chip_ng_container_5_span_2_Template_span_keydown_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onKeydown($event)); });\n i0.ɵɵtemplate(1, Chip_ng_container_5_span_2_1_Template, 1, 0, null, 14);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"data-pc-section\", \"removeicon\")(\"aria-label\", ctx_r1.removeAriaLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.removeIconTemplate || ctx_r1._removeIconTemplate);\n} }\nfunction Chip_ng_container_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Chip_ng_container_5_ng_container_1_Template, 3, 2, \"ng-container\", 3)(2, Chip_ng_container_5_span_2_Template, 2, 3, \"span\", 8);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.removeIconTemplate && !ctx_r1._removeIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.removeIconTemplate || ctx_r1._removeIconTemplate);\n} }\n/**\n * Chip represents people using icons, labels and images.\n * @group Components\n */\nclass Chip extends BaseComponent {\n /**\n * Defines the text to display.\n * @group Props\n */\n label;\n /**\n * Defines the icon to display.\n * @group Props\n */\n icon;\n /**\n * Defines the image to display.\n * @group Props\n */\n image;\n /**\n * Alt attribute of the image.\n * @group Props\n */\n alt;\n /**\n * Inline style of the element.\n * @group Props\n */\n style;\n /**\n * Class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Whether to display a remove icon.\n * @group Props\n */\n removable = false;\n /**\n * Icon of the remove element.\n * @group Props\n */\n removeIcon;\n /**\n * Callback to invoke when a chip is removed.\n * @param {MouseEvent} event - Mouse event.\n * @group Emits\n */\n onRemove = new EventEmitter();\n /**\n * This event is triggered if an error occurs while loading an image file.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onImageError = new EventEmitter();\n visible = true;\n get removeAriaLabel() {\n return this.config.getTranslation(TranslationKeys.ARIA)['removeLabel'];\n }\n /**\n * Used to pass all properties of the chipProps to the Chip component.\n * @group Props\n */\n get chipProps() {\n return this._chipProps;\n }\n set chipProps(val) {\n this._chipProps = val;\n if (val && typeof val === 'object') {\n //@ts-ignore\n Object.entries(val).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));\n }\n }\n _chipProps;\n _componentStyle = inject(ChipStyle);\n removeIconTemplate;\n templates;\n _removeIconTemplate;\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'removeicon':\n this._removeIconTemplate = item.template;\n break;\n default:\n this._removeIconTemplate = item.template;\n break;\n }\n });\n }\n ngOnChanges(simpleChanges) {\n super.ngOnChanges(simpleChanges);\n if (simpleChanges.chipProps && simpleChanges.chipProps.currentValue) {\n const { currentValue } = simpleChanges.chipProps;\n if (currentValue.label !== undefined) {\n this.label = currentValue.label;\n }\n if (currentValue.icon !== undefined) {\n this.icon = currentValue.icon;\n }\n if (currentValue.image !== undefined) {\n this.image = currentValue.image;\n }\n if (currentValue.alt !== undefined) {\n this.alt = currentValue.alt;\n }\n if (currentValue.style !== undefined) {\n this.style = currentValue.style;\n }\n if (currentValue.styleClass !== undefined) {\n this.styleClass = currentValue.styleClass;\n }\n if (currentValue.removable !== undefined) {\n this.removable = currentValue.removable;\n }\n if (currentValue.removeIcon !== undefined) {\n this.removeIcon = currentValue.removeIcon;\n }\n }\n }\n containerClass() {\n let classes = 'p-chip p-component';\n if (this.styleClass) {\n classes += ` ${this.styleClass}`;\n }\n return classes;\n }\n close(event) {\n this.visible = false;\n this.onRemove.emit(event);\n }\n onKeydown(event) {\n if (event.key === 'Enter' || event.key === 'Backspace') {\n this.close(event);\n }\n }\n imageError(event) {\n this.onImageError.emit(event);\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵChip_BaseFactory; return function Chip_Factory(__ngFactoryType__) { return (ɵChip_BaseFactory || (ɵChip_BaseFactory = i0.ɵɵgetInheritedFactory(Chip)))(__ngFactoryType__ || Chip); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Chip, selectors: [[\"p-chip\"]], contentQueries: function Chip_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.removeIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, hostVars: 9, hostBindings: function Chip_HostBindings(rf, ctx) { if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-name\", \"chip\")(\"aria-label\", ctx.label)(\"data-pc-section\", \"root\");\n i0.ɵɵstyleMap(ctx.style);\n i0.ɵɵclassMap(ctx.containerClass());\n i0.ɵɵstyleProp(\"display\", !ctx.visible && \"none\");\n } }, inputs: { label: \"label\", icon: \"icon\", image: \"image\", alt: \"alt\", style: \"style\", styleClass: \"styleClass\", removable: [2, \"removable\", \"removable\", booleanAttribute], removeIcon: \"removeIcon\", chipProps: \"chipProps\" }, outputs: { onRemove: \"onRemove\", onImageError: \"onImageError\" }, standalone: true, features: [i0.ɵɵProvidersFeature([ChipStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c1, decls: 6, vars: 4, consts: [[\"iconTemplate\", \"\"], [\"class\", \"p-chip-image\", 3, \"src\", \"alt\", \"error\", 4, \"ngIf\", \"ngIfElse\"], [\"class\", \"p-chip-label\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"p-chip-image\", 3, \"error\", \"src\", \"alt\"], [3, \"class\", \"ngClass\", 4, \"ngIf\"], [3, \"ngClass\"], [1, \"p-chip-label\"], [\"tabindex\", \"0\", \"class\", \"p-chip-remove-icon\", \"role\", \"button\", 3, \"click\", \"keydown\", 4, \"ngIf\"], [\"tabindex\", \"0\", \"role\", \"button\", 3, \"class\", \"ngClass\", \"click\", \"keydown\", 4, \"ngIf\"], [\"tabindex\", \"0\", \"role\", \"button\", 3, \"class\", \"click\", \"keydown\", 4, \"ngIf\"], [\"tabindex\", \"0\", \"role\", \"button\", 3, \"click\", \"keydown\", \"ngClass\"], [\"tabindex\", \"0\", \"role\", \"button\", 3, \"click\", \"keydown\"], [\"tabindex\", \"0\", \"role\", \"button\", 1, \"p-chip-remove-icon\", 3, \"click\", \"keydown\"], [4, \"ngTemplateOutlet\"]], template: function Chip_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n i0.ɵɵtemplate(1, Chip_img_1_Template, 1, 2, \"img\", 1)(2, Chip_ng_template_2_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(4, Chip_div_4_Template, 2, 2, \"div\", 2)(5, Chip_ng_container_5_Template, 3, 2, \"ng-container\", 3);\n } if (rf & 2) {\n const iconTemplate_r6 = i0.ɵɵreference(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.image)(\"ngIfElse\", iconTemplate_r6);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.label);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.removable);\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, TimesCircleIcon, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Chip, [{\n type: Component,\n args: [{\n selector: 'p-chip',\n standalone: true,\n imports: [CommonModule, TimesCircleIcon, SharedModule],\n template: `\n \n \n \n
{{ label }}
\n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [ChipStyle],\n host: {\n '[class]': 'containerClass()',\n '[style]': 'style',\n '[style.display]': '!visible && \"none\"',\n '[attr.data-pc-name]': \"'chip'\",\n '[attr.aria-label]': 'label',\n '[attr.data-pc-section]': \"'root'\"\n }\n }]\n }], null, { label: [{\n type: Input\n }], icon: [{\n type: Input\n }], image: [{\n type: Input\n }], alt: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], removable: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], removeIcon: [{\n type: Input\n }], onRemove: [{\n type: Output\n }], onImageError: [{\n type: Output\n }], chipProps: [{\n type: Input\n }], removeIconTemplate: [{\n type: ContentChild,\n args: ['removeicon', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Chip, { className: \"Chip\" }); })();\nclass ChipModule {\n static ɵfac = function ChipModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ChipModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ChipModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Chip, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ChipModule, [{\n type: NgModule,\n args: [{\n imports: [Chip, SharedModule],\n exports: [Chip, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(ChipModule, { imports: [Chip, SharedModule], exports: [Chip, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Chip, ChipClasses, ChipModule, ChipStyle };\n","import * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, booleanAttribute, numberAttribute, Component, ViewEncapsulation, Input, Output, inject, signal, computed, effect, ChangeDetectionStrategy, ViewChild, ContentChild, ContentChildren, HostBinding, NgModule } from '@angular/core';\nimport * as i2 from '@angular/forms';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { deepEquals, isNotEmpty, isArray, isObject, uuid, equals, focus, findLastIndex, resolveFieldData, isPrintableCharacter, getFirstFocusableElement, getLastFocusableElement, findSingle, unblockBodyScroll, hasClass, isHidden, getFocusableElements } from '@primeuix/utils';\nimport * as i3 from 'primeng/api';\nimport { SharedModule, TranslationKeys, Footer, Header, PrimeTemplate } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Checkbox } from 'primeng/checkbox';\nimport { Chip } from 'primeng/chip';\nimport { DomHandler } from 'primeng/dom';\nimport { IconField } from 'primeng/iconfield';\nimport { CheckIcon, SearchIcon, TimesIcon, ChevronDownIcon } from 'primeng/icons';\nimport { InputIcon } from 'primeng/inputicon';\nimport { InputText } from 'primeng/inputtext';\nimport { Overlay } from 'primeng/overlay';\nimport { Ripple } from 'primeng/ripple';\nimport { Scroller } from 'primeng/scroller';\nimport { Tooltip } from 'primeng/tooltip';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-multiselect {\n display: inline-flex;\n cursor: pointer;\n position: relative;\n user-select: none;\n background: ${dt('multiselect.background')};\n border: 1px solid ${dt('multiselect.border.color')};\n transition: background ${dt('multiselect.transition.duration')}, color ${dt('multiselect.transition.duration')}, border-color ${dt('multiselect.transition.duration')}, outline-color ${dt('multiselect.transition.duration')}, box-shadow ${dt('multiselect.transition.duration')};\n border-radius: ${dt('multiselect.border.radius')};\n outline-color: transparent;\n box-shadow: ${dt('multiselect.shadow')};\n}\n\n.p-multiselect.ng-invalid.ng-dirty {\n border-color: ${dt('multiselect.invalid.border.color')};\n}\n\n.p-multiselect:not(.p-disabled):hover {\n border-color: ${dt('multiselect.hover.border.color')};\n}\n\n.p-multiselect:not(.p-disabled).p-focus {\n border-color: ${dt('multiselect.focus.border.color')};\n box-shadow: ${dt('multiselect.focus.ring.shadow')};\n outline: ${dt('multiselect.focus.ring.width')} ${dt('multiselect.focus.ring.style')} ${dt('multiselect.focus.ring.color')};\n outline-offset: ${dt('multiselect.focus.ring.offset')};\n}\n\n.p-multiselect.p-variant-filled {\n background: ${dt('multiselect.filled.background')};\n}\n\n.p-multiselect.p-variant-filled:not(.p-disabled):hover {\n background: ${dt('multiselect.filled.hover.background')};\n}\n\n.p-multiselect.p-variant-filled.p-focus {\n background: ${dt('multiselect.filled.focus.background')};\n}\n\n.p-multiselect.p-disabled {\n opacity: 1;\n background: ${dt('multiselect.disabled.background')};\n}\n\n.p-multiselect-dropdown {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: transparent;\n color: ${dt('multiselect.dropdown.color')};\n width: ${dt('multiselect.dropdown.width')};\n border-start-end-radius: ${dt('multiselect.border.radius')};\n border-end-end-radius: ${dt('multiselect.border.radius')};\n}\n\n.p-multiselect-label-container {\n overflow: hidden;\n flex: 1 1 auto;\n cursor: pointer;\n}\n\n.p-multiselect-label {\n display: flex;\n align-items-center;\n gap: calc(${dt('multiselect.padding.y')} / 2);\n white-space: nowrap;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: ${dt('multiselect.padding.y')} ${dt('multiselect.padding.x')};\n color: ${dt('multiselect.color')};\n}\n\n.p-multiselect-label.p-placeholder {\n color: ${dt('multiselect.placeholder.color')};\n}\n\np-multiselect.ng-invalid.ng-dirty .p-multiselect-label.p-placeholder {\n color: ${dt('multiselect.invalid.placeholder.color')};\n}\n\n.p-multiselect.p-disabled .p-multiselect-label {\n color: ${dt('multiselect.disabled.color')};\n}\n\n.p-multiselect-label-empty {\n overflow: hidden;\n visibility: hidden;\n}\n\n.p-multiselect .p-multiselect-overlay {\n min-width: 100%;\n}\n\n.p-multiselect-overlay {\n background: ${dt('multiselect.overlay.background')};\n color: ${dt('multiselect.overlay.color')};\n border: 1px solid ${dt('multiselect.overlay.border.color')};\n border-radius: ${dt('multiselect.overlay.border.radius')};\n box-shadow: ${dt('multiselect.overlay.shadow')};\n}\n\n.p-multiselect-header {\n display: flex;\n align-items: center;\n padding: ${dt('multiselect.list.header.padding')};\n}\n\n.p-multiselect-header .p-checkbox {\n margin-inline-end: ${dt('multiselect.option.gap')};\n}\n\n.p-multiselect-filter-container {\n flex: 1 1 auto;\n}\n\n.p-multiselect-filter {\n width: 100%;\n}\n\n.p-multiselect-list-container {\n overflow: auto;\n}\n\n.p-multiselect-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n padding: ${dt('multiselect.list.padding')};\n display: flex;\n flex-direction: column;\n gap: ${dt('multiselect.list.gap')}\n}\n\n.p-multiselect-option {\n cursor: pointer;\n font-weight: normal;\n white-space: nowrap;\n position: relative;\n overflow: hidden;\n display: flex;\n align-items: center;\n gap: ${dt('multiselect.option.gap')};\n padding: ${dt('multiselect.option.padding')};\n border: 0 none;\n color: ${dt('multiselect.option.color')};\n background: transparent;\n transition: background ${dt('multiselect.transition.duration')}, color ${dt('multiselect.transition.duration')}, border-color ${dt('multiselect.transition.duration')}, box-shadow ${dt('multiselect.transition.duration')}, outline-color ${dt('multiselect.transition.duration')};\n border-radius: ${dt('multiselect.option.border.radius')}\n}\n\n.p-multiselect-option:not(.p-multiselect-option-selected):not(.p-disabled).p-focus {\n background: ${dt('multiselect.option.focus.background')};\n color: ${dt('multiselect.option.focus.color')};\n}\n\n.p-multiselect-option.p-multiselect-option-selected {\n background: ${dt('multiselect.option.selected.background')};\n color: ${dt('multiselect.option.selected.color')};\n}\n\n.p-multiselect-option.p-multiselect-option-selected.p-focus {\n background: ${dt('multiselect.option.selected.focus.background')};\n color: ${dt('multiselect.option.selected.focus.color')};\n}\n\n.p-multiselect-option-group {\n cursor: auto;\n margin: 0;\n padding: ${dt('multiselect.option.group.padding')};\n background: ${dt('multiselect.option.group.background')};\n color: ${dt('multiselect.option.group.color')};\n font-weight: ${dt('multiselect.option.group.font.weight')};\n}\n\n.p-multiselect-empty-message {\n padding: ${dt('multiselect.empty.message.padding')};\n}\n\n.p-multiselect-label .p-chip {\n padding-top: calc(${dt('multiselect.padding.y')} / 2);\n padding-bottom: calc(${dt('multiselect.padding.y')} / 2);\n border-radius: ${dt('multiselect.chip.border.radius')};\n}\n\n.p-multiselect-label:has(.p-chip) {\n padding: calc(${dt('multiselect.padding.y')} / 2) calc(${dt('multiselect.padding.x')} / 2);\n}\n\n.p-multiselect-fluid {\n display: flex;\n}\n\n.p-multiselect-sm .p-multiselect-label {\n font-size: ${dt('multiselect.sm.font.size')};\n padding-block: ${dt('multiselect.sm.padding.y')};\n padding-inline: ${dt('multiselect.sm.padding.x')};\n}\n\n.p-multiselect-sm .p-multiselect-dropdown .p-icon {\n font-size: ${dt('multiselect.sm.font.size')};\n width: ${dt('multiselect.sm.font.size')};\n height: ${dt('multiselect.sm.font.size')};\n}\n\n.p-multiselect-lg .p-multiselect-label {\n font-size: ${dt('multiselect.lg.font.size')};\n padding-block: ${dt('multiselect.lg.padding.y')};\n padding-inline: ${dt('multiselect.lg.padding.x')};\n}\n\n.p-multiselect-lg .p-multiselect-dropdown .p-icon {\n font-size: ${dt('multiselect.lg.font.size')};\n width: ${dt('multiselect.lg.font.size')};\n height: ${dt('multiselect.lg.font.size')};\n}\n\n.p-multiselect-clear-icon {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: transparent;\n color: ${dt('multiselect.clear.icon.color')};\n}`;\nconst inlineStyles = {\n root: ({ props }) => ({ position: props.appendTo === 'self' ? 'relative' : undefined })\n};\nconst classes = {\n root: ({ instance }) => ({\n 'p-multiselect p-component p-inputwrapper': true,\n 'p-multiselect-display-chip': instance.display === 'chip',\n 'p-disabled': instance.disabled,\n 'p-invalid': instance.invalid,\n 'p-variant-filled': instance.variant ? instance.variant === 'filled' : instance.config.inputStyle === 'filled',\n 'p-focus': instance.focused,\n 'p-inputwrapper-filled': instance.filled,\n 'p-inputwrapper-focus': instance.focused || instance.overlayVisible,\n 'p-multiselect-open': instance.overlayVisible,\n 'p-multiselect-fluid': instance.hasFluid,\n 'p-multiselect-sm p-inputfield-sm': instance.size === 'small',\n 'p-multiselect-lg p-inputfield-lg': instance.size === 'large'\n }),\n labelContainer: 'p-multiselect-label-container',\n label: ({ instance }) => ({\n 'p-multiselect-label': true,\n 'p-placeholder': instance.label() === instance.placeholder(),\n 'p-multiselect-label-empty': !instance.placeholder() && !instance.defaultLabel && (!instance.modelValue() || instance.modelValue().length === 0)\n }),\n chipItem: 'p-multiselect-chip-item',\n pcChip: 'p-multiselect-chip',\n chipIcon: 'p-multiselect-chip-icon',\n dropdown: 'p-multiselect-dropdown',\n loadingIcon: 'p-multiselect-loading-icon',\n dropdownIcon: 'p-multiselect-dropdown-icon',\n overlay: 'p-multiselect-overlay p-component',\n header: 'p-multiselect-header',\n pcFilterContainer: 'p-multiselect-filter-container',\n pcFilter: 'p-multiselect-filter',\n listContainer: 'p-multiselect-list-container',\n list: 'p-multiselect-list',\n optionGroup: 'p-multiselect-option-group',\n option: ({ instance, option, index, getItemOptions }) => ({\n 'p-multiselect-option': true,\n 'p-multiselect-option-selected': instance.isSelected(option) && instance.highlightOnSelect,\n 'p-focus': instance.focusedOptionIndex === instance.getOptionIndex(index, getItemOptions),\n 'p-disabled': instance.isOptionDisabled(option)\n }),\n emptyMessage: 'p-multiselect-empty-message'\n};\nclass MultiSelectStyle extends BaseStyle {\n name = 'multiselect';\n theme = theme;\n classes = classes;\n inlineStyles = inlineStyles;\n static ɵfac = /*@__PURE__*/ (() => { let ɵMultiSelectStyle_BaseFactory; return function MultiSelectStyle_Factory(__ngFactoryType__) { return (ɵMultiSelectStyle_BaseFactory || (ɵMultiSelectStyle_BaseFactory = i0.ɵɵgetInheritedFactory(MultiSelectStyle)))(__ngFactoryType__ || MultiSelectStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MultiSelectStyle, factory: MultiSelectStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MultiSelectStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * MultiSelect is used to select multiple items from a collection.\n *\n * [Live Demo](https://www.primeng.org/multiselect/)\n *\n * @module multiselectstyle\n *\n */\nvar MultiSelectClasses;\n(function (MultiSelectClasses) {\n /**\n * Class name of the root element\n */\n MultiSelectClasses[\"root\"] = \"p-multiselect\";\n /**\n * Class name of the label container element\n */\n MultiSelectClasses[\"labelContainer\"] = \"p-multiselect-label-container\";\n /**\n * Class name of the label element\n */\n MultiSelectClasses[\"label\"] = \"p-multiselect-label\";\n /**\n * Class name of the chip item element\n */\n MultiSelectClasses[\"chipItem\"] = \"p-multiselect-chip-item\";\n /**\n * Class name of the chip element\n */\n MultiSelectClasses[\"pcChip\"] = \"p-multiselect-chip\";\n /**\n * Class name of the chip icon element\n */\n MultiSelectClasses[\"chipIcon\"] = \"p-multiselect-chip-icon\";\n /**\n * Class name of the dropdown element\n */\n MultiSelectClasses[\"dropdown\"] = \"p-multiselect-dropdown\";\n /**\n * Class name of the loading icon element\n */\n MultiSelectClasses[\"loadingIcon\"] = \"p-multiselect-loading-icon\";\n /**\n * Class name of the dropdown icon element\n */\n MultiSelectClasses[\"dropdownIcon\"] = \"p-multiselect-dropdown-icon\";\n /**\n * Class name of the overlay element\n */\n MultiSelectClasses[\"overlay\"] = \"p-multiselect-overlay\";\n /**\n * Class name of the header element\n */\n MultiSelectClasses[\"header\"] = \"p-multiselect-header\";\n /**\n * Class name of the filter container element\n */\n MultiSelectClasses[\"pcFilterContainer\"] = \"p-multiselect-filter-container\";\n /**\n * Class name of the filter element\n */\n MultiSelectClasses[\"pcFilter\"] = \"p-multiselect-filter\";\n /**\n * Class name of the list container element\n */\n MultiSelectClasses[\"listContainer\"] = \"p-multiselect-list-container\";\n /**\n * Class name of the list element\n */\n MultiSelectClasses[\"list\"] = \"p-multiselect-list\";\n /**\n * Class name of the option group element\n */\n MultiSelectClasses[\"optionGroup\"] = \"p-multiselect-option-group\";\n /**\n * Class name of the option element\n */\n MultiSelectClasses[\"option\"] = \"p-multiselect-option\";\n /**\n * Class name of the empty message element\n */\n MultiSelectClasses[\"emptyMessage\"] = \"p-multiselect-empty-message\";\n})(MultiSelectClasses || (MultiSelectClasses = {}));\n\nconst _c0 = a0 => ({ height: a0 });\nconst _c1 = (a0, a1) => ({ \"p-multiselect-option\": true, \"p-disabled\": a0, \"p-focus\": a1 });\nconst _c2 = a0 => ({ $implicit: a0 });\nconst _c3 = (a0, a1) => ({ checked: a0, class: a1 });\nfunction MultiSelectItem_ng_container_2_ng_template_1_0_ng_template_0_Template(rf, ctx) { }\nfunction MultiSelectItem_ng_container_2_ng_template_1_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelectItem_ng_container_2_ng_template_1_0_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction MultiSelectItem_ng_container_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelectItem_ng_container_2_ng_template_1_0_Template, 1, 0, null, 4);\n} if (rf & 2) {\n const klass_r1 = ctx.class;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.itemCheckboxIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c3, ctx_r1.selected, klass_r1));\n} }\nfunction MultiSelectItem_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelectItem_ng_container_2_ng_template_1_Template, 1, 5, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementContainerEnd();\n} }\nfunction MultiSelectItem_span_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n let tmp_1_0;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate((tmp_1_0 = ctx_r1.label) !== null && tmp_1_0 !== undefined ? tmp_1_0 : \"empty\");\n} }\nfunction MultiSelectItem_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nconst _c4 = [\"item\"];\nconst _c5 = [\"group\"];\nconst _c6 = [\"loader\"];\nconst _c7 = [\"header\"];\nconst _c8 = [\"filter\"];\nconst _c9 = [\"footer\"];\nconst _c10 = [\"emptyfilter\"];\nconst _c11 = [\"empty\"];\nconst _c12 = [\"selecteditems\"];\nconst _c13 = [\"checkicon\"];\nconst _c14 = [\"loadingicon\"];\nconst _c15 = [\"filtericon\"];\nconst _c16 = [\"removetokenicon\"];\nconst _c17 = [\"chipicon\"];\nconst _c18 = [\"clearicon\"];\nconst _c19 = [\"dropdownicon\"];\nconst _c20 = [\"itemcheckboxicon\"];\nconst _c21 = [\"headercheckboxicon\"];\nconst _c22 = [\"overlay\"];\nconst _c23 = [\"filterInput\"];\nconst _c24 = [\"focusInput\"];\nconst _c25 = [\"items\"];\nconst _c26 = [\"scroller\"];\nconst _c27 = [\"lastHiddenFocusableEl\"];\nconst _c28 = [\"firstHiddenFocusableEl\"];\nconst _c29 = [\"headerCheckbox\"];\nconst _c30 = [[[\"p-header\"]], [[\"p-footer\"]]];\nconst _c31 = [\"p-header\", \"p-footer\"];\nconst _c32 = (a0, a1) => ({ $implicit: a0, removeChip: a1 });\nconst _c33 = () => ({ class: \"p-multiselect-chip-icon\" });\nconst _c34 = a0 => ({ options: a0 });\nconst _c35 = (a0, a1, a2) => ({ checked: a0, partialSelected: a1, class: a2 });\nconst _c36 = (a0, a1) => ({ $implicit: a0, options: a1 });\nconst _c37 = () => ({});\nfunction MultiSelect_ng_container_5_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.label() || \"empty\");\n} }\nfunction MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_ng_container_0_span_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 29);\n i0.ɵɵlistener(\"click\", function MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_ng_container_0_span_1_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const item_r4 = i0.ɵɵnextContext(4).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.removeOption(item_r4, $event)); });\n i0.ɵɵtemplate(1, MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_ng_container_0_span_1_ng_container_1_Template, 1, 0, \"ng-container\", 21);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(7);\n i0.ɵɵattribute(\"data-pc-section\", \"clearicon\")(\"aria-hidden\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.chipIconTemplate || ctx_r1._chipIconTemplate || ctx_r1.removeTokenIconTemplate || ctx_r1._removeTokenIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction0(4, _c33));\n} }\nfunction MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_ng_container_0_span_1_Template, 2, 5, \"span\", 28);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(6);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.chipIconTemplate || ctx_r1._chipIconTemplate || ctx_r1.removeTokenIconTemplate || ctx_r1._removeTokenIconTemplate);\n} }\nfunction MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_ng_container_0_Template, 2, 1, \"ng-container\", 20);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(5);\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.disabled);\n} }\nfunction MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_ng_template_1_Template, 1, 1, \"ng-template\", null, 5, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementContainerEnd();\n} }\nfunction MultiSelect_ng_container_5_ng_container_2_div_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 26, 4)(2, \"p-chip\", 27);\n i0.ɵɵlistener(\"onRemove\", function MultiSelect_ng_container_5_ng_container_2_div_1_Template_p_chip_onRemove_2_listener($event) { const item_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.removeOption(item_r4, $event)); });\n i0.ɵɵtemplate(3, MultiSelect_ng_container_5_ng_container_2_div_1_ng_container_3_Template, 3, 0, \"ng-container\", 20);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const item_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"label\", ctx_r1.getLabelByValue(item_r4))(\"removable\", true)(\"removeIcon\", ctx_r1.chipIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.chipIconTemplate || ctx_r1._chipIconTemplate || ctx_r1.removeTokenIconTemplate || ctx_r1._removeTokenIconTemplate);\n} }\nfunction MultiSelect_ng_container_5_ng_container_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.placeholder() || ctx_r1.defaultLabel || \"empty\");\n} }\nfunction MultiSelect_ng_container_5_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelect_ng_container_5_ng_container_2_div_1_Template, 4, 4, \"div\", 25)(2, MultiSelect_ng_container_5_ng_container_2_ng_container_2_Template, 2, 1, \"ng-container\", 20);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.chipSelectedItems());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.modelValue() || ctx_r1.modelValue().length === 0);\n} }\nfunction MultiSelect_ng_container_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelect_ng_container_5_ng_container_1_Template, 2, 1, \"ng-container\", 20)(2, MultiSelect_ng_container_5_ng_container_2_Template, 3, 2, \"ng-container\", 20);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.display === \"comma\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.display === \"chip\");\n} }\nfunction MultiSelect_ng_container_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction MultiSelect_ng_container_7_TimesIcon_1_Template(rf, ctx) { if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"TimesIcon\", 31);\n i0.ɵɵlistener(\"click\", function MultiSelect_ng_container_7_TimesIcon_1_Template_TimesIcon_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.clear($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-section\", \"clearicon\")(\"aria-hidden\", true);\n} }\nfunction MultiSelect_ng_container_7_span_2_1_ng_template_0_Template(rf, ctx) { }\nfunction MultiSelect_ng_container_7_span_2_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_container_7_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction MultiSelect_ng_container_7_span_2_Template(rf, ctx) { if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 31);\n i0.ɵɵlistener(\"click\", function MultiSelect_ng_container_7_span_2_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.clear($event)); });\n i0.ɵɵtemplate(1, MultiSelect_ng_container_7_span_2_1_Template, 1, 0, null, 32);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"data-pc-section\", \"clearicon\")(\"aria-hidden\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.clearIconTemplate || ctx_r1._clearIconTemplate);\n} }\nfunction MultiSelect_ng_container_7_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelect_ng_container_7_TimesIcon_1_Template, 1, 2, \"TimesIcon\", 30)(2, MultiSelect_ng_container_7_span_2_Template, 2, 3, \"span\", 30);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.clearIconTemplate && !ctx_r1._clearIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.clearIconTemplate || ctx_r1._clearIconTemplate);\n} }\nfunction MultiSelect_ng_container_9_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction MultiSelect_ng_container_9_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelect_ng_container_9_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 32);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.loadingIconTemplate || ctx_r1._loadingIconTemplate);\n} }\nfunction MultiSelect_ng_container_9_ng_container_2_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 35);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", \"p-multiselect-loading-icon pi-spin \" + ctx_r1.loadingIcon);\n} }\nfunction MultiSelect_ng_container_9_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 36);\n} if (rf & 2) {\n i0.ɵɵclassMap(\"p-multiselect-loading-icon pi pi-spinner pi-spin\");\n} }\nfunction MultiSelect_ng_container_9_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelect_ng_container_9_ng_container_2_span_1_Template, 1, 1, \"span\", 33)(2, MultiSelect_ng_container_9_ng_container_2_span_2_Template, 1, 2, \"span\", 34);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.loadingIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.loadingIcon);\n} }\nfunction MultiSelect_ng_container_9_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelect_ng_container_9_ng_container_1_Template, 2, 1, \"ng-container\", 20)(2, MultiSelect_ng_container_9_ng_container_2_Template, 3, 2, \"ng-container\", 20);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.loadingIconTemplate || ctx_r1._loadingIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.loadingIconTemplate && !ctx_r1._loadingIconTemplate);\n} }\nfunction MultiSelect_ng_template_10_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 40);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r1.dropdownIcon);\n i0.ɵɵattribute(\"data-pc-section\", \"triggericon\")(\"aria-hidden\", true);\n} }\nfunction MultiSelect_ng_template_10_ng_container_0_ChevronDownIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\", 41);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-multiselect-dropdown-icon\");\n i0.ɵɵattribute(\"data-pc-section\", \"triggericon\")(\"aria-hidden\", true);\n} }\nfunction MultiSelect_ng_template_10_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelect_ng_template_10_ng_container_0_span_1_Template, 1, 3, \"span\", 38)(2, MultiSelect_ng_template_10_ng_container_0_ChevronDownIcon_2_Template, 1, 3, \"ChevronDownIcon\", 39);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.dropdownIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.dropdownIcon);\n} }\nfunction MultiSelect_ng_template_10_span_1_1_ng_template_0_Template(rf, ctx) { }\nfunction MultiSelect_ng_template_10_span_1_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_template_10_span_1_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction MultiSelect_ng_template_10_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 42);\n i0.ɵɵtemplate(1, MultiSelect_ng_template_10_span_1_1_Template, 1, 0, null, 32);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"data-pc-section\", \"triggericon\")(\"aria-hidden\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.dropdownIconTemplate || ctx_r1._dropdownIconTemplate);\n} }\nfunction MultiSelect_ng_template_10_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_template_10_ng_container_0_Template, 3, 2, \"ng-container\", 20)(1, MultiSelect_ng_template_10_span_1_Template, 2, 3, \"span\", 37);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.dropdownIconTemplate && !ctx_r1._dropdownIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.dropdownIconTemplate || ctx_r1._dropdownIconTemplate);\n} }\nfunction MultiSelect_ng_template_14_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction MultiSelect_ng_template_14_div_4_ng_container_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction MultiSelect_ng_template_14_div_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelect_ng_template_14_div_4_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 21);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.filterTemplate || ctx_r1._filterTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c34, ctx_r1.filterOptions));\n} }\nfunction MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_ng_template_2_CheckIcon_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"CheckIcon\", 41);\n} if (rf & 2) {\n const klass_r10 = i0.ɵɵnextContext().class;\n i0.ɵɵproperty(\"styleClass\", klass_r10);\n i0.ɵɵattribute(\"data-pc-section\", \"icon\");\n} }\nfunction MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_ng_template_2_1_ng_template_0_Template(rf, ctx) { }\nfunction MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_ng_template_2_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_ng_template_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_ng_template_2_CheckIcon_0_Template, 1, 2, \"CheckIcon\", 39)(1, MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_ng_template_2_1_Template, 1, 0, null, 21);\n} if (rf & 2) {\n const klass_r10 = ctx.class;\n const ctx_r1 = i0.ɵɵnextContext(5);\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.headerCheckboxIconTemplate && !ctx_r1._headerCheckboxIconTemplate && ctx_r1.allSelected());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.headerCheckboxIconTemplate || ctx_r1._headerCheckboxIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction3(3, _c35, ctx_r1.allSelected(), ctx_r1.partialSelected(), klass_r10));\n} }\nfunction MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_Template(rf, ctx) { if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-checkbox\", 51, 10);\n i0.ɵɵlistener(\"onChange\", function MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_Template_p_checkbox_onChange_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onToggleAll($event)); });\n i0.ɵɵtemplate(2, MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_ng_template_2_Template, 2, 7, \"ng-template\", null, 11, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngModel\", ctx_r1.allSelected())(\"binary\", true)(\"variant\", ctx_r1.variant)(\"disabled\", ctx_r1.disabled);\n} }\nfunction MultiSelect_ng_template_14_div_4_ng_template_3_div_1_SearchIcon_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"SearchIcon\", 41);\n} if (rf & 2) {\n i0.ɵɵproperty(\"styleClass\", \"p-multiselect-filter-icon\");\n} }\nfunction MultiSelect_ng_template_14_div_4_ng_template_3_div_1_span_6_1_ng_template_0_Template(rf, ctx) { }\nfunction MultiSelect_ng_template_14_div_4_ng_template_3_div_1_span_6_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_template_14_div_4_ng_template_3_div_1_span_6_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction MultiSelect_ng_template_14_div_4_ng_template_3_div_1_span_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 55);\n i0.ɵɵtemplate(1, MultiSelect_ng_template_14_div_4_ng_template_3_div_1_span_6_1_Template, 1, 0, null, 32);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(5);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.filterIconTemplate || ctx_r1._filterIconTemplate);\n} }\nfunction MultiSelect_ng_template_14_div_4_ng_template_3_div_1_Template(rf, ctx) { if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 52)(1, \"p-iconfield\")(2, \"input\", 53, 12);\n i0.ɵɵlistener(\"input\", function MultiSelect_ng_template_14_div_4_ng_template_3_div_1_Template_input_input_2_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onFilterInputChange($event)); })(\"keydown\", function MultiSelect_ng_template_14_div_4_ng_template_3_div_1_Template_input_keydown_2_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onFilterKeyDown($event)); })(\"click\", function MultiSelect_ng_template_14_div_4_ng_template_3_div_1_Template_input_click_2_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onInputClick($event)); })(\"blur\", function MultiSelect_ng_template_14_div_4_ng_template_3_div_1_Template_input_blur_2_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onFilterBlur($event)); });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"p-inputicon\");\n i0.ɵɵtemplate(5, MultiSelect_ng_template_14_div_4_ng_template_3_div_1_SearchIcon_5_Template, 1, 1, \"SearchIcon\", 39)(6, MultiSelect_ng_template_14_div_4_ng_template_3_div_1_span_6_Template, 2, 1, \"span\", 54);\n i0.ɵɵelementEnd()()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"variant\", ctx_r1.variant)(\"value\", ctx_r1._filterValue() || \"\")(\"disabled\", ctx_r1.disabled);\n i0.ɵɵattribute(\"autocomplete\", ctx_r1.autocomplete)(\"aria-owns\", ctx_r1.id + \"_list\")(\"aria-activedescendant\", ctx_r1.focusedOptionId)(\"placeholder\", ctx_r1.filterPlaceHolder)(\"aria-label\", ctx_r1.ariaFilterLabel);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.filterIconTemplate && !ctx_r1._filterIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.filterIconTemplate || ctx_r1._filterIconTemplate);\n} }\nfunction MultiSelect_ng_template_14_div_4_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_template_14_div_4_ng_template_3_p_checkbox_0_Template, 4, 4, \"p-checkbox\", 49)(1, MultiSelect_ng_template_14_div_4_ng_template_3_div_1_Template, 7, 10, \"div\", 50);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showToggleAll && !ctx_r1.selectionLimit);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.filter);\n} }\nfunction MultiSelect_ng_template_14_div_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 48);\n i0.ɵɵprojection(1);\n i0.ɵɵtemplate(2, MultiSelect_ng_template_14_div_4_ng_container_2_Template, 2, 4, \"ng-container\", 23)(3, MultiSelect_ng_template_14_div_4_ng_template_3_Template, 2, 2, \"ng-template\", null, 9, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const builtInFilterElement_r12 = i0.ɵɵreference(4);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.filterTemplate || ctx_r1._filterTemplate)(\"ngIfElse\", builtInFilterElement_r12);\n} }\nfunction MultiSelect_ng_template_14_p_scroller_6_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction MultiSelect_ng_template_14_p_scroller_6_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_template_14_p_scroller_6_ng_template_2_ng_container_0_Template, 1, 0, \"ng-container\", 21);\n} if (rf & 2) {\n const items_r14 = ctx.$implicit;\n const scrollerOptions_r15 = ctx.options;\n i0.ɵɵnextContext(2);\n const buildInItems_r16 = i0.ɵɵreference(9);\n i0.ɵɵproperty(\"ngTemplateOutlet\", buildInItems_r16)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c36, items_r14, scrollerOptions_r15));\n} }\nfunction MultiSelect_ng_template_14_p_scroller_6_ng_container_4_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction MultiSelect_ng_template_14_p_scroller_6_ng_container_4_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_template_14_p_scroller_6_ng_container_4_ng_template_1_ng_container_0_Template, 1, 0, \"ng-container\", 21);\n} if (rf & 2) {\n const scrollerOptions_r17 = ctx.options;\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.loaderTemplate || ctx_r1._loaderTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c34, scrollerOptions_r17));\n} }\nfunction MultiSelect_ng_template_14_p_scroller_6_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelect_ng_template_14_p_scroller_6_ng_container_4_ng_template_1_Template, 1, 4, \"ng-template\", null, 14, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementContainerEnd();\n} }\nfunction MultiSelect_ng_template_14_p_scroller_6_Template(rf, ctx) { if (rf & 1) {\n const _r13 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"p-scroller\", 56, 13);\n i0.ɵɵlistener(\"onLazyLoad\", function MultiSelect_ng_template_14_p_scroller_6_Template_p_scroller_onLazyLoad_0_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onLazyLoad.emit($event)); });\n i0.ɵɵtemplate(2, MultiSelect_ng_template_14_p_scroller_6_ng_template_2_Template, 1, 5, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor)(4, MultiSelect_ng_template_14_p_scroller_6_ng_container_4_Template, 3, 0, \"ng-container\", 20);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵstyleMap(i0.ɵɵpureFunction1(9, _c0, ctx_r1.scrollHeight));\n i0.ɵɵproperty(\"items\", ctx_r1.visibleOptions())(\"itemSize\", ctx_r1.virtualScrollItemSize || ctx_r1._itemSize)(\"autoSize\", true)(\"tabindex\", -1)(\"lazy\", ctx_r1.lazy)(\"options\", ctx_r1.virtualScrollOptions);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.loaderTemplate || ctx_r1._loaderTemplate);\n} }\nfunction MultiSelect_ng_template_14_ng_container_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction MultiSelect_ng_template_14_ng_container_7_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MultiSelect_ng_template_14_ng_container_7_ng_container_1_Template, 1, 0, \"ng-container\", 21);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n i0.ɵɵnextContext();\n const buildInItems_r16 = i0.ɵɵreference(9);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", buildInItems_r16)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(3, _c36, ctx_r1.visibleOptions(), i0.ɵɵpureFunction0(2, _c37)));\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_0_span_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const option_r18 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.getOptionGroupLabel(option_r18.optionGroup));\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_0_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"li\", 60);\n i0.ɵɵtemplate(2, MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_0_span_2_Template, 2, 1, \"span\", 20)(3, MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_0_ng_container_3_Template, 1, 0, \"ng-container\", 21);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r18 = i0.ɵɵnextContext();\n const option_r18 = ctx_r18.$implicit;\n const i_r20 = ctx_r18.index;\n const scrollerOptions_r21 = i0.ɵɵnextContext().options;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(5, _c0, scrollerOptions_r21.itemSize + \"px\"));\n i0.ɵɵattribute(\"id\", ctx_r1.id + \"_\" + ctx_r1.getOptionIndex(i_r20, scrollerOptions_r21));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.groupTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.groupTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(7, _c2, option_r18.optionGroup));\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n const _r22 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"p-multiselect-item\", 61);\n i0.ɵɵlistener(\"onClick\", function MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_1_Template_p_multiselect_item_onClick_1_listener($event) { i0.ɵɵrestoreView(_r22); const i_r20 = i0.ɵɵnextContext().index; const scrollerOptions_r21 = i0.ɵɵnextContext().options; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onOptionSelect($event, false, ctx_r1.getOptionIndex(i_r20, scrollerOptions_r21))); })(\"onMouseEnter\", function MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_1_Template_p_multiselect_item_onMouseEnter_1_listener($event) { i0.ɵɵrestoreView(_r22); const i_r20 = i0.ɵɵnextContext().index; const scrollerOptions_r21 = i0.ɵɵnextContext().options; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onOptionMouseEnter($event, ctx_r1.getOptionIndex(i_r20, scrollerOptions_r21))); });\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r18 = i0.ɵɵnextContext();\n const option_r18 = ctx_r18.$implicit;\n const i_r20 = ctx_r18.index;\n const scrollerOptions_r21 = i0.ɵɵnextContext().options;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"id\", ctx_r1.id + \"_\" + ctx_r1.getOptionIndex(i_r20, scrollerOptions_r21))(\"option\", option_r18)(\"selected\", ctx_r1.isSelected(option_r18))(\"label\", ctx_r1.getOptionLabel(option_r18))(\"disabled\", ctx_r1.isOptionDisabled(option_r18))(\"template\", ctx_r1.itemTemplate || ctx_r1._itemTemplate)(\"checkIconTemplate\", ctx_r1.checkIconTemplate || ctx_r1._checkIconTemplate)(\"itemCheckboxIconTemplate\", ctx_r1.itemCheckboxIconTemplate || ctx_r1._itemCheckboxIconTemplate)(\"itemSize\", scrollerOptions_r21.itemSize)(\"focused\", ctx_r1.focusedOptionIndex() === ctx_r1.getOptionIndex(i_r20, scrollerOptions_r21))(\"ariaPosInset\", ctx_r1.getAriaPosInset(ctx_r1.getOptionIndex(i_r20, scrollerOptions_r21)))(\"ariaSetSize\", ctx_r1.ariaSetSize)(\"variant\", ctx_r1.variant);\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_0_Template, 4, 9, \"ng-container\", 20)(1, MultiSelect_ng_template_14_ng_template_8_ng_template_2_ng_container_1_Template, 2, 13, \"ng-container\", 20);\n} if (rf & 2) {\n const option_r18 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isOptionGroup(option_r18));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.isOptionGroup(option_r18));\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_li_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.emptyFilterMessageLabel, \" \");\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_li_3_Conditional_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_li_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_template_14_ng_template_8_li_3_Conditional_2_ng_container_0_Template, 1, 0, \"ng-container\", 32);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.emptyFilterTemplate || ctx_r1._emptyFilterTemplate || ctx_r1.emptyTemplate || ctx_r1._emptyFilterTemplate);\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_li_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 62);\n i0.ɵɵtemplate(1, MultiSelect_ng_template_14_ng_template_8_li_3_Conditional_1_Template, 1, 1)(2, MultiSelect_ng_template_14_ng_template_8_li_3_Conditional_2_Template, 1, 1, \"ng-container\");\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const scrollerOptions_r21 = i0.ɵɵnextContext().options;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(2, _c0, scrollerOptions_r21.itemSize + \"px\"));\n i0.ɵɵadvance();\n i0.ɵɵconditional(!ctx_r1.emptyFilterTemplate && !ctx_r1._emptyFilterTemplate && !ctx_r1.emptyTemplate && !ctx_r1._emptyTemplate ? 1 : 2);\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_li_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.emptyMessageLabel, \" \");\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_li_4_Conditional_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_li_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, MultiSelect_ng_template_14_ng_template_8_li_4_Conditional_2_ng_container_0_Template, 1, 0, \"ng-container\", 32);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.emptyTemplate || ctx_r1._emptyTemplate);\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_li_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 62);\n i0.ɵɵtemplate(1, MultiSelect_ng_template_14_ng_template_8_li_4_Conditional_1_Template, 1, 1)(2, MultiSelect_ng_template_14_ng_template_8_li_4_Conditional_2_Template, 1, 1, \"ng-container\");\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const scrollerOptions_r21 = i0.ɵɵnextContext().options;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(2, _c0, scrollerOptions_r21.itemSize + \"px\"));\n i0.ɵɵadvance();\n i0.ɵɵconditional(!ctx_r1.emptyTemplate && !ctx_r1._emptyTemplate ? 1 : 2);\n} }\nfunction MultiSelect_ng_template_14_ng_template_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"ul\", 57, 15);\n i0.ɵɵtemplate(2, MultiSelect_ng_template_14_ng_template_8_ng_template_2_Template, 2, 2, \"ng-template\", 58)(3, MultiSelect_ng_template_14_ng_template_8_li_3_Template, 3, 4, \"li\", 59)(4, MultiSelect_ng_template_14_ng_template_8_li_4_Template, 3, 4, \"li\", 59);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const items_r23 = ctx.$implicit;\n const scrollerOptions_r21 = ctx.options;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵstyleMap(scrollerOptions_r21.contentStyle);\n i0.ɵɵproperty(\"ngClass\", scrollerOptions_r21.contentStyleClass);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.listLabel);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", items_r23);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.hasFilter() && ctx_r1.isEmpty());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.hasFilter() && ctx_r1.isEmpty());\n} }\nfunction MultiSelect_ng_template_14_div_10_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction MultiSelect_ng_template_14_div_10_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵprojection(1, 1);\n i0.ɵɵtemplate(2, MultiSelect_ng_template_14_div_10_ng_container_2_Template, 1, 0, \"ng-container\", 32);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.footerTemplate || ctx_r1._footerTemplate);\n} }\nfunction MultiSelect_ng_template_14_Template(rf, ctx) { if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 43)(1, \"span\", 44, 6);\n i0.ɵɵlistener(\"focus\", function MultiSelect_ng_template_14_Template_span_focus_1_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFirstHiddenFocus($event)); });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, MultiSelect_ng_template_14_ng_container_3_Template, 1, 0, \"ng-container\", 32)(4, MultiSelect_ng_template_14_div_4_Template, 5, 2, \"div\", 45);\n i0.ɵɵelementStart(5, \"div\", 46);\n i0.ɵɵtemplate(6, MultiSelect_ng_template_14_p_scroller_6_Template, 5, 11, \"p-scroller\", 47)(7, MultiSelect_ng_template_14_ng_container_7_Template, 2, 6, \"ng-container\", 20)(8, MultiSelect_ng_template_14_ng_template_8_Template, 5, 7, \"ng-template\", null, 7, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(10, MultiSelect_ng_template_14_div_10_Template, 3, 1, \"div\", 20);\n i0.ɵɵelementStart(11, \"span\", 44, 8);\n i0.ɵɵlistener(\"focus\", function MultiSelect_ng_template_14_Template_span_focus_11_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onLastHiddenFocus($event)); });\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.panelStyleClass);\n i0.ɵɵproperty(\"ngClass\", \"p-multiselect-overlay p-component\")(\"ngStyle\", ctx_r1.panelStyle);\n i0.ɵɵattribute(\"id\", ctx_r1.id + \"_list\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"tabindex\", 0)(\"data-p-hidden-accessible\", true)(\"data-p-hidden-focusable\", true);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.headerTemplate || ctx_r1._headerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showHeader);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"max-height\", ctx_r1.virtualScroll ? \"auto\" : ctx_r1.scrollHeight || \"auto\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.virtualScroll);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.virtualScroll);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.footerFacet || ctx_r1.footerTemplate || ctx_r1._footerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"tabindex\", 0)(\"data-p-hidden-accessible\", true)(\"data-p-hidden-focusable\", true);\n} }\nconst MULTISELECT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelect),\n multi: true\n};\nclass MultiSelectItem extends BaseComponent {\n id;\n option;\n selected;\n label;\n disabled;\n itemSize;\n focused;\n ariaPosInset;\n ariaSetSize;\n variant;\n template;\n checkIconTemplate;\n itemCheckboxIconTemplate;\n onClick = new EventEmitter();\n onMouseEnter = new EventEmitter();\n onOptionClick(event) {\n this.onClick.emit({\n originalEvent: event,\n option: this.option,\n selected: this.selected\n });\n event.stopPropagation();\n event.preventDefault();\n }\n onOptionMouseEnter(event) {\n this.onMouseEnter.emit({\n originalEvent: event,\n option: this.option,\n selected: this.selected\n });\n }\n static ɵfac = /*@__PURE__*/ (() => { let ɵMultiSelectItem_BaseFactory; return function MultiSelectItem_Factory(__ngFactoryType__) { return (ɵMultiSelectItem_BaseFactory || (ɵMultiSelectItem_BaseFactory = i0.ɵɵgetInheritedFactory(MultiSelectItem)))(__ngFactoryType__ || MultiSelectItem); }; })();\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MultiSelectItem, selectors: [[\"p-multiSelectItem\"], [\"p-multiselect-item\"]], inputs: { id: \"id\", option: \"option\", selected: [2, \"selected\", \"selected\", booleanAttribute], label: \"label\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], itemSize: [2, \"itemSize\", \"itemSize\", numberAttribute], focused: [2, \"focused\", \"focused\", booleanAttribute], ariaPosInset: \"ariaPosInset\", ariaSetSize: \"ariaSetSize\", variant: \"variant\", template: \"template\", checkIconTemplate: \"checkIconTemplate\", itemCheckboxIconTemplate: \"itemCheckboxIconTemplate\" }, outputs: { onClick: \"onClick\", onMouseEnter: \"onMouseEnter\" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 5, vars: 26, consts: [[\"icon\", \"\"], [\"pRipple\", \"\", \"role\", \"option\", 3, \"click\", \"mouseenter\", \"ngStyle\", \"ngClass\", \"id\"], [3, \"ngModel\", \"binary\", \"tabindex\", \"variant\"], [4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function MultiSelectItem_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 1);\n i0.ɵɵlistener(\"click\", function MultiSelectItem_Template_li_click_0_listener($event) { return ctx.onOptionClick($event); })(\"mouseenter\", function MultiSelectItem_Template_li_mouseenter_0_listener($event) { return ctx.onOptionMouseEnter($event); });\n i0.ɵɵelementStart(1, \"p-checkbox\", 2);\n i0.ɵɵtemplate(2, MultiSelectItem_ng_container_2_Template, 3, 0, \"ng-container\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, MultiSelectItem_span_3_Template, 2, 1, \"span\", 3)(4, MultiSelectItem_ng_container_4_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(19, _c0, ctx.itemSize + \"px\"))(\"ngClass\", i0.ɵɵpureFunction2(21, _c1, ctx.disabled, ctx.focused))(\"id\", ctx.id);\n i0.ɵɵattribute(\"aria-label\", ctx.label)(\"aria-setsize\", ctx.ariaSetSize)(\"aria-posinset\", ctx.ariaPosInset)(\"aria-selected\", ctx.selected)(\"data-p-focused\", ctx.focused)(\"data-p-highlight\", ctx.selected)(\"data-p-disabled\", ctx.disabled)(\"aria-checked\", ctx.selected);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngModel\", ctx.selected)(\"binary\", true)(\"tabindex\", -1)(\"variant\", ctx.variant);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.itemCheckboxIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.template);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(24, _c2, ctx.option));\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, Checkbox, FormsModule, i2.NgControlStatus, i2.NgModel, Ripple, SharedModule], encapsulation: 2 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MultiSelectItem, [{\n type: Component,\n args: [{\n selector: 'p-multiSelectItem, p-multiselect-item',\n standalone: true,\n imports: [CommonModule, Checkbox, FormsModule, Ripple, SharedModule],\n template: `\n \n \n \n \n \n \n \n \n {{ label ?? 'empty' }}\n \n \n `,\n encapsulation: ViewEncapsulation.None\n }]\n }], null, { id: [{\n type: Input\n }], option: [{\n type: Input\n }], selected: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], label: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], itemSize: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], focused: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], ariaPosInset: [{\n type: Input\n }], ariaSetSize: [{\n type: Input\n }], variant: [{\n type: Input\n }], template: [{\n type: Input\n }], checkIconTemplate: [{\n type: Input\n }], itemCheckboxIconTemplate: [{\n type: Input\n }], onClick: [{\n type: Output\n }], onMouseEnter: [{\n type: Output\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(MultiSelectItem, { className: \"MultiSelectItem\" }); })();\n// @ts-ignore\n/**\n * MultiSelect is used to select multiple items from a collection.\n * @group Components\n */\nclass MultiSelect extends BaseComponent {\n zone;\n filterService;\n overlayService;\n /**\n * Unique identifier of the component\n * @group Props\n */\n id;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n ariaLabel;\n /**\n * Inline style of the element.\n * @group Props\n */\n style;\n /**\n * Style class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Inline style of the overlay panel.\n * @group Props\n */\n panelStyle;\n /**\n * Style class of the overlay panel element.\n * @group Props\n */\n panelStyleClass;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n inputId;\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n disabled;\n /**\n * Spans 100% width of the container when enabled.\n * @group Props\n */\n fluid;\n /**\n * When present, it specifies that the component cannot be edited.\n * @group Props\n */\n readonly;\n /**\n * Whether to display options as grouped when nested options are provided.\n * @group Props\n */\n group;\n /**\n * When specified, displays an input field to filter the items on keyup.\n * @group Props\n */\n filter = true;\n /**\n * Defines placeholder of the filter input.\n * @group Props\n */\n filterPlaceHolder;\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n filterLocale;\n /**\n * Specifies the visibility of the options panel.\n * @group Props\n */\n overlayVisible;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex = 0;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant = 'outlined';\n /**\n * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n appendTo;\n /**\n * A property to uniquely identify a value in options.\n * @group Props\n */\n dataKey;\n /**\n * Name of the input element.\n * @group Props\n */\n name;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Whether to show labels of selected item labels or use default label.\n * @group Props\n * @defaultValue true\n */\n set displaySelectedLabel(val) {\n this._displaySelectedLabel = val;\n }\n get displaySelectedLabel() {\n return this._displaySelectedLabel;\n }\n /**\n * Decides how many selected item labels to show at most.\n * @group Props\n * @defaultValue 3\n */\n set maxSelectedLabels(val) {\n this._maxSelectedLabels = val;\n }\n get maxSelectedLabels() {\n return this._maxSelectedLabels;\n }\n /**\n * Decides how many selected item labels to show at most.\n * @group Props\n */\n selectionLimit;\n /**\n * Label to display after exceeding max selected labels e.g. ({0} items selected), defaults \"ellipsis\" keyword to indicate a text-overflow.\n * @group Props\n */\n selectedItemsLabel;\n /**\n * Whether to show the checkbox at header to toggle all items at once.\n * @group Props\n */\n showToggleAll = true;\n /**\n * Text to display when filtering does not return any results.\n * @group Props\n */\n emptyFilterMessage = '';\n /**\n * Text to display when there is no data. Defaults to global value in i18n translation configuration.\n * @group Props\n */\n emptyMessage = '';\n /**\n * Clears the filter value when hiding the dropdown.\n * @group Props\n */\n resetFilterOnHide = false;\n /**\n * Icon class of the dropdown icon.\n * @group Props\n */\n dropdownIcon;\n /**\n * Icon class of the chip icon.\n * @group Props\n */\n chipIcon;\n /**\n * Name of the label field of an option.\n * @group Props\n */\n optionLabel;\n /**\n * Name of the value field of an option.\n * @group Props\n */\n optionValue;\n /**\n * Name of the disabled field of an option.\n * @group Props\n */\n optionDisabled;\n /**\n * Name of the label field of an option group.\n * @group Props\n */\n optionGroupLabel = 'label';\n /**\n * Name of the options field of an option group.\n * @group Props\n */\n optionGroupChildren = 'items';\n /**\n * Whether to show the header.\n * @group Props\n */\n showHeader = true;\n /**\n * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n * @group Props\n */\n filterBy;\n /**\n * Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n scrollHeight = '200px';\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n lazy = false;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n virtualScroll;\n /**\n * Whether the multiselect is in loading state.\n * @group Props\n */\n loading = false;\n /**\n * Height of an item in the list for VirtualScrolling.\n * @group Props\n */\n virtualScrollItemSize;\n /**\n * Icon to display in loading state.\n * @group Props\n */\n loadingIcon;\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n virtualScrollOptions;\n /**\n * Whether to use overlay API feature. The properties of overlay API can be used like an object in it.\n * @group Props\n */\n overlayOptions;\n /**\n * Defines a string that labels the filter input.\n * @group Props\n */\n ariaFilterLabel;\n /**\n * Defines how the items are filtered.\n * @group Props\n */\n filterMatchMode = 'contains';\n /**\n * Advisory information to display in a tooltip on hover.\n * @group Props\n */\n tooltip = '';\n /**\n * Position of the tooltip.\n * @group Props\n */\n tooltipPosition = 'right';\n /**\n * Type of CSS position.\n * @group Props\n */\n tooltipPositionStyle = 'absolute';\n /**\n * Style class of the tooltip.\n * @group Props\n */\n tooltipStyleClass;\n /**\n * Applies focus to the filter element when the overlay is shown.\n * @group Props\n */\n autofocusFilter = false;\n /**\n * Defines how the selected items are displayed.\n * @group Props\n */\n display = 'comma';\n /**\n * Defines the autocomplete is active.\n * @group Props\n */\n autocomplete = 'off';\n /**\n * Defines the size of the component.\n * @group Props\n */\n size;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n showClear = false;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * @deprecated since v14.2.0, use overlayOptions property instead.\n * Whether to automatically manage layering.\n * @group Props\n */\n get autoZIndex() {\n return this._autoZIndex;\n }\n set autoZIndex(val) {\n this._autoZIndex = val;\n console.log('The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n /**\n * @deprecated since v14.2.0, use overlayOptions property instead.\n * Base zIndex value to use in layering.\n * @group Props\n */\n get baseZIndex() {\n return this._baseZIndex;\n }\n set baseZIndex(val) {\n this._baseZIndex = val;\n console.log('The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n /**\n * Transition options of the show animation.\n * @group Props\n * @deprecated since v14.2.0, use overlayOptions property instead.\n */\n get showTransitionOptions() {\n return this._showTransitionOptions;\n }\n set showTransitionOptions(val) {\n this._showTransitionOptions = val;\n console.log('The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n /**\n * Transition options of the hide animation.\n * @group Props\n * @deprecated since v14.2.0, use overlayOptions property instead.\n */\n get hideTransitionOptions() {\n return this._hideTransitionOptions;\n }\n set hideTransitionOptions(val) {\n this._hideTransitionOptions = val;\n console.log('The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');\n }\n /**\n * Label to display when there are no selections.\n * @group Props\n * @deprecated Use placeholder instead.\n */\n set defaultLabel(val) {\n this._defaultLabel = val;\n console.log('defaultLabel property is deprecated since 16.6.0, use placeholder instead');\n }\n get defaultLabel() {\n return this._defaultLabel;\n }\n /**\n * Label to display when there are no selections.\n * @group Props\n */\n set placeholder(val) {\n this._placeholder.set(val);\n }\n get placeholder() {\n return this._placeholder.asReadonly();\n }\n /**\n * An array of objects to display as the available options.\n * @group Props\n */\n get options() {\n const options = this._options();\n return options;\n }\n set options(val) {\n if (!deepEquals(this._options(), val)) {\n this._options.set(val);\n }\n }\n /**\n * When specified, filter displays with this value.\n * @group Props\n */\n get filterValue() {\n return this._filterValue();\n }\n set filterValue(val) {\n this._filterValue.set(val);\n }\n /**\n * Item size of item to be virtual scrolled.\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n get itemSize() {\n return this._itemSize;\n }\n set itemSize(val) {\n this._itemSize = val;\n console.log('The itemSize property is deprecated, use virtualScrollItemSize property instead.');\n }\n /**\n * Whether all data is selected.\n * @group Props\n */\n get selectAll() {\n return this._selectAll;\n }\n set selectAll(value) {\n this._selectAll = value;\n }\n /**\n * Indicates whether to focus on options when hovering over them, defaults to optionLabel.\n * @group Props\n */\n focusOnHover = true;\n /**\n * Fields used when filtering the options, defaults to optionLabel.\n * @group Props\n */\n filterFields;\n /**\n * Determines if the option will be selected on focus.\n * @group Props\n */\n selectOnFocus = false;\n /**\n * Whether to focus on the first visible or selected element when the overlay panel is shown.\n * @group Props\n */\n autoOptionFocus = false;\n /**\n * Callback to invoke when value changes.\n * @param {MultiSelectChangeEvent} event - Custom change event.\n * @group Emits\n */\n onChange = new EventEmitter();\n /**\n * Callback to invoke when data is filtered.\n * @param {MultiSelectFilterEvent} event - Custom filter event.\n * @group Emits\n */\n onFilter = new EventEmitter();\n /**\n * Callback to invoke when multiselect receives focus.\n * @param {MultiSelectFocusEvent} event - Custom focus event.\n * @group Emits\n */\n onFocus = new EventEmitter();\n /**\n * Callback to invoke when multiselect loses focus.\n * @param {MultiSelectBlurEvent} event - Custom blur event.\n * @group Emits\n */\n onBlur = new EventEmitter();\n /**\n * Callback to invoke when component is clicked.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onClick = new EventEmitter();\n /**\n * Callback to invoke when input field is cleared.\n * @group Emits\n */\n onClear = new EventEmitter();\n /**\n * Callback to invoke when overlay panel becomes visible.\n * @group Emits\n */\n onPanelShow = new EventEmitter();\n /**\n * Callback to invoke when overlay panel becomes hidden.\n * @group Emits\n */\n onPanelHide = new EventEmitter();\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {MultiSelectLazyLoadEvent} event - Lazy load event.\n * @group Emits\n */\n onLazyLoad = new EventEmitter();\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {MultiSelectRemoveEvent} event - Remove event.\n * @group Emits\n */\n onRemove = new EventEmitter();\n /**\n * Callback to invoke when all data is selected.\n * @param {MultiSelectSelectAllChangeEvent} event - Custom select event.\n * @group Emits\n */\n onSelectAllChange = new EventEmitter();\n overlayViewChild;\n filterInputChild;\n focusInputViewChild;\n itemsViewChild;\n scroller;\n lastHiddenFocusableElementOnOverlay;\n firstHiddenFocusableElementOnOverlay;\n headerCheckboxViewChild;\n footerFacet;\n headerFacet;\n _componentStyle = inject(MultiSelectStyle);\n searchValue;\n searchTimeout;\n _selectAll = null;\n _autoZIndex;\n _baseZIndex;\n _showTransitionOptions;\n _hideTransitionOptions;\n _defaultLabel;\n _placeholder = signal(undefined);\n _itemSize;\n _selectionLimit;\n _disableTooltip = false;\n value;\n _filteredOptions;\n onModelChange = () => { };\n onModelTouched = () => { };\n valuesAsString;\n focus;\n filtered;\n itemTemplate;\n groupTemplate;\n loaderTemplate;\n headerTemplate;\n filterTemplate;\n footerTemplate;\n emptyFilterTemplate;\n emptyTemplate;\n selectedItemsTemplate;\n checkIconTemplate;\n loadingIconTemplate;\n filterIconTemplate;\n removeTokenIconTemplate;\n chipIconTemplate;\n clearIconTemplate;\n dropdownIconTemplate;\n itemCheckboxIconTemplate;\n headerCheckboxIconTemplate;\n templates;\n _itemTemplate;\n _groupTemplate;\n _loaderTemplate;\n _headerTemplate;\n _filterTemplate;\n _footerTemplate;\n _emptyFilterTemplate;\n _emptyTemplate;\n _selectedItemsTemplate;\n _checkIconTemplate;\n _loadingIconTemplate;\n _filterIconTemplate;\n _removeTokenIconTemplate;\n _chipIconTemplate;\n _clearIconTemplate;\n _dropdownIconTemplate;\n _itemCheckboxIconTemplate;\n _headerCheckboxIconTemplate;\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this._itemTemplate = item.template;\n break;\n case 'group':\n this._groupTemplate = item.template;\n break;\n case 'selectedItems':\n this._selectedItemsTemplate = item.template;\n break;\n case 'header':\n this._headerTemplate = item.template;\n break;\n case 'filter':\n this._filterTemplate = item.template;\n break;\n case 'emptyfilter':\n this._emptyFilterTemplate = item.template;\n break;\n case 'empty':\n this._emptyTemplate = item.template;\n break;\n case 'footer':\n this._footerTemplate = item.template;\n break;\n case 'loader':\n this._loaderTemplate = item.template;\n break;\n case 'checkicon':\n this._checkIconTemplate = item.template;\n console.warn('checkicon is deprecated and will removed in future. Use itemcheckboxicon or headercheckboxicon templates instead.');\n break;\n case 'headercheckboxicon':\n this._headerCheckboxIconTemplate = item.template;\n break;\n case 'loadingicon':\n this._loadingIconTemplate = item.template;\n break;\n case 'filtericon':\n this._filterIconTemplate = item.template;\n break;\n case 'removetokenicon':\n this._removeTokenIconTemplate = item.template;\n break;\n case 'clearicon':\n this._clearIconTemplate = item.template;\n break;\n case 'dropdownicon':\n this._dropdownIconTemplate = item.template;\n break;\n case 'itemcheckboxicon':\n this._itemCheckboxIconTemplate = item.template;\n break;\n case 'chipicon':\n this._chipIconTemplate = item.template;\n break;\n default:\n this._itemTemplate = item.template;\n break;\n }\n });\n }\n headerCheckboxFocus;\n filterOptions;\n preventModelTouched;\n preventDocumentDefault;\n focused = false;\n itemsWrapper;\n _displaySelectedLabel = true;\n _maxSelectedLabels = 3;\n modelValue = signal(null);\n _filterValue = signal(null);\n _options = signal(null);\n startRangeIndex = signal(-1);\n focusedOptionIndex = signal(-1);\n selectedOptions;\n clickInProgress = false;\n get hostClasses() {\n const classes = [];\n if (typeof this.rootClass === 'string') {\n classes.push(this.rootClass);\n }\n else if (Array.isArray(this.rootClass)) {\n classes.push(...this.rootClass);\n }\n else if (typeof this.rootClass === 'object') {\n Object.keys(this.rootClass)\n .filter((key) => this.rootClass[key])\n .forEach((key) => classes.push(key));\n }\n if (this.styleClass) {\n classes.push(this.styleClass);\n }\n return classes.join(' ');\n }\n get rootClass() {\n return this._componentStyle.classes.root({ instance: this });\n }\n get labelClass() {\n return this._componentStyle.classes.label({ instance: this });\n }\n get emptyMessageLabel() {\n return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);\n }\n get emptyFilterMessageLabel() {\n return this.emptyFilterMessage || this.config.getTranslation(TranslationKeys.EMPTY_FILTER_MESSAGE);\n }\n get filled() {\n if (typeof this.modelValue() === 'string')\n return !!this.modelValue();\n return isNotEmpty(this.modelValue());\n }\n get isVisibleClearIcon() {\n return this.modelValue() != null && this.modelValue() !== '' && isNotEmpty(this.modelValue()) && this.showClear && !this.disabled && this.filled;\n }\n get toggleAllAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria[this.allSelected() ? 'selectAll' : 'unselectAll'] : undefined;\n }\n get closeAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.close : undefined;\n }\n get listLabel() {\n return this.config.getTranslation(TranslationKeys.ARIA)['listLabel'];\n }\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return this.fluid || !!fluidComponent;\n }\n getAllVisibleAndNonVisibleOptions() {\n return this.group ? this.flatOptions(this.options) : this.options || [];\n }\n visibleOptions = computed(() => {\n const options = this.getAllVisibleAndNonVisibleOptions();\n const isArrayOfObjects = isArray(options) && isObject(options[0]);\n if (this._filterValue()) {\n let filteredOptions;\n if (isArrayOfObjects) {\n filteredOptions = this.filterService.filter(options, this.searchFields(), this._filterValue(), this.filterMatchMode, this.filterLocale);\n }\n else {\n filteredOptions = options.filter((option) => option.toString().toLocaleLowerCase().includes(this._filterValue().toLocaleLowerCase()));\n }\n if (this.group) {\n const optionGroups = this.options || [];\n const filtered = [];\n optionGroups.forEach((group) => {\n const groupChildren = this.getOptionGroupChildren(group);\n const filteredItems = groupChildren.filter((item) => filteredOptions.includes(item));\n if (filteredItems.length > 0)\n filtered.push({\n ...group,\n [typeof this.optionGroupChildren === 'string' ? this.optionGroupChildren : 'items']: [...filteredItems]\n });\n });\n return this.flatOptions(filtered);\n }\n return filteredOptions;\n }\n return options;\n });\n label = computed(() => {\n let label;\n const modelValue = this.modelValue();\n if (modelValue && modelValue.length && this.displaySelectedLabel) {\n if (isNotEmpty(this.maxSelectedLabels) && modelValue.length > this.maxSelectedLabels) {\n return this.getSelectedItemsLabel();\n }\n else {\n label = '';\n for (let i = 0; i < modelValue.length; i++) {\n if (i !== 0) {\n label += ', ';\n }\n label += this.getLabelByValue(modelValue[i]);\n }\n }\n }\n else {\n label = this.placeholder() || this.defaultLabel || '';\n }\n return label;\n });\n chipSelectedItems = computed(() => {\n return isNotEmpty(this.maxSelectedLabels) && this.modelValue() && this.modelValue().length > this.maxSelectedLabels ? this.modelValue().slice(0, this.maxSelectedLabels) : this.modelValue();\n });\n constructor(zone, filterService, overlayService) {\n super();\n this.zone = zone;\n this.filterService = filterService;\n this.overlayService = overlayService;\n effect(() => {\n const modelValue = this.modelValue();\n const visibleOptions = this.visibleOptions();\n if (visibleOptions && isNotEmpty(visibleOptions)) {\n if (this.optionValue && this.optionLabel && modelValue) {\n this.selectedOptions = visibleOptions.filter((option) => modelValue.includes(option[this.optionLabel]) || modelValue.includes(option[this.optionValue]));\n }\n else {\n this.selectedOptions = modelValue;\n }\n this.cd.markForCheck();\n }\n });\n }\n ngOnInit() {\n super.ngOnInit();\n this.id = this.id || uuid('pn_id_');\n this.autoUpdateModel();\n if (this.filterBy) {\n this.filterOptions = {\n filter: (value) => this.onFilterInputChange(value),\n reset: () => this.resetFilter()\n };\n }\n }\n maxSelectionLimitReached() {\n return this.selectionLimit && this.modelValue() && this.modelValue().length === this.selectionLimit;\n }\n ngAfterViewInit() {\n super.ngOnInit();\n if (this.overlayVisible) {\n this.show();\n }\n }\n ngAfterViewChecked() {\n if (this.filtered) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.overlayViewChild?.alignOverlay();\n }, 1);\n });\n this.filtered = false;\n }\n }\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n const optionGroupChildren = this.getOptionGroupChildren(option);\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n return result;\n }, []);\n }\n autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption()) {\n this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex());\n const value = this.getOptionValue(this.visibleOptions()[this.focusedOptionIndex()]);\n this.onOptionSelect({ originalEvent: null, option: [value] });\n }\n }\n /**\n * Updates the model value.\n * @group Method\n */\n updateModel(value, event) {\n this.value = value;\n this.onModelChange(value);\n this.modelValue.set(value);\n }\n onInputClick(event) {\n event.stopPropagation();\n event.preventDefault();\n this.focusedOptionIndex.set(-1);\n }\n onOptionSelect(event, isFocus = false, index = -1) {\n const { originalEvent, option } = event;\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n let selected = this.isSelected(option);\n let value = null;\n if (selected) {\n value = this.modelValue().filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey()));\n }\n else {\n value = [...(this.modelValue() || []), this.getOptionValue(option)];\n }\n this.updateModel(value, originalEvent);\n index !== -1 && this.focusedOptionIndex.set(index);\n isFocus && focus(this.focusInputViewChild?.nativeElement);\n this.onChange.emit({\n originalEvent: event,\n value: value,\n itemValue: option\n });\n }\n findSelectedOptionIndex() {\n return this.hasSelectedOption() ? this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option)) : -1;\n }\n onOptionSelectRange(event, start = -1, end = -1) {\n start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));\n end === -1 && (end = this.findNearestSelectedOptionIndex(start));\n if (start !== -1 && end !== -1) {\n const rangeStart = Math.min(start, end);\n const rangeEnd = Math.max(start, end);\n const value = this.visibleOptions()\n .slice(rangeStart, rangeEnd + 1)\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n this.updateModel(value, event);\n }\n }\n searchFields() {\n return (this.filterBy || this.optionLabel || 'label').split(',');\n }\n findNearestSelectedOptionIndex(index, firstCheckUp = false) {\n let matchedOptionIndex = -1;\n if (this.hasSelectedOption()) {\n if (firstCheckUp) {\n matchedOptionIndex = this.findPrevSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;\n }\n else {\n matchedOptionIndex = this.findNextSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;\n }\n }\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n }\n findPrevSelectedOptionIndex(index) {\n const matchedOptionIndex = this.hasSelectedOption() && index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : -1;\n }\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findFirstSelectedOptionIndex();\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n }\n findFirstOptionIndex() {\n return this.visibleOptions().findIndex((option) => this.isValidOption(option));\n }\n findFirstSelectedOptionIndex() {\n return this.hasSelectedOption() ? this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option)) : -1;\n }\n findNextSelectedOptionIndex(index) {\n const matchedOptionIndex = this.hasSelectedOption() && index < this.visibleOptions().length - 1\n ? this.visibleOptions()\n .slice(index + 1)\n .findIndex((option) => this.isValidSelectedOption(option))\n : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;\n }\n equalityKey() {\n return this.optionValue ? null : this.dataKey;\n }\n hasSelectedOption() {\n return isNotEmpty(this.modelValue());\n }\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n }\n isOptionGroup(option) {\n return (this.group || this.optionGroupLabel) && option.optionGroup && option.group;\n }\n isValidOption(option) {\n return option && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n }\n isOptionDisabled(option) {\n if (this.maxSelectionLimitReached() && !this.isSelected(option)) {\n return true;\n }\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : option && option.disabled !== undefined ? option.disabled : false;\n }\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n return (this.modelValue() || []).some((value) => equals(value, optionValue, this.equalityKey()));\n }\n isOptionMatched(option) {\n return this.isValidOption(option) && this.getOptionLabel(option).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale));\n }\n isEmpty() {\n return !this._options() || (this.visibleOptions() && this.visibleOptions().length === 0);\n }\n getOptionIndex(index, scrollerOptions) {\n return this.virtualScrollerDisabled ? index : scrollerOptions && scrollerOptions.getItemOptions(index)['index'];\n }\n getAriaPosInset(index) {\n return ((this.optionGroupLabel\n ? index -\n this.visibleOptions()\n .slice(0, index)\n .filter((option) => this.isOptionGroup(option)).length\n : index) + 1);\n }\n get ariaSetSize() {\n return this.visibleOptions().filter((option) => !this.isOptionGroup(option)).length;\n }\n getLabelByValue(value) {\n const options = this.group ? this.flatOptions(this._options()) : this._options() || [];\n const matchedOption = options.find((option) => !this.isOptionGroup(option) && equals(this.getOptionValue(option), value, this.equalityKey()));\n return matchedOption ? this.getOptionLabel(matchedOption) : null;\n }\n getSelectedItemsLabel() {\n let pattern = /{(.*?)}/;\n let message = this.selectedItemsLabel ? this.selectedItemsLabel : this.config.getTranslation(TranslationKeys.SELECTION_MESSAGE);\n if (pattern.test(message)) {\n return message.replace(message.match(pattern)[0], this.modelValue().length + '');\n }\n return message;\n }\n getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option && option.label != undefined ? option.label : option;\n }\n getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : !this.optionLabel && option && option.value !== undefined ? option.value : option;\n }\n getOptionGroupLabel(optionGroup) {\n return this.optionGroupLabel ? resolveFieldData(optionGroup, this.optionGroupLabel) : optionGroup && optionGroup.label != undefined ? optionGroup.label : optionGroup;\n }\n getOptionGroupChildren(optionGroup) {\n return this.optionGroupChildren ? resolveFieldData(optionGroup, this.optionGroupChildren) : optionGroup.items;\n }\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n const metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Enter':\n case 'Space':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey();\n break;\n default:\n if (event.code === 'KeyA' && metaKey) {\n const value = this.visibleOptions()\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n this.updateModel(value, event);\n event.preventDefault();\n break;\n }\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n this.searchOptions(event, event.key);\n event.preventDefault();\n }\n break;\n }\n }\n onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\n break;\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n case 'Home':\n this.onHomeKey(event, true);\n break;\n case 'End':\n this.onEndKey(event, true);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event, true);\n break;\n default:\n break;\n }\n }\n onArrowLeftKey(event, pressedInInputText = false) {\n pressedInInputText && this.focusedOptionIndex.set(-1);\n }\n onArrowDownKey(event) {\n const optionIndex = this.focusedOptionIndex() !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex()) : this.findFirstFocusedOptionIndex();\n if (event.shiftKey) {\n this.onOptionSelectRange(event, this.startRangeIndex(), optionIndex);\n }\n this.changeFocusedOptionIndex(event, optionIndex);\n !this.overlayVisible && this.show();\n event.preventDefault();\n event.stopPropagation();\n }\n onArrowUpKey(event, pressedInInputText = false) {\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex() !== -1) {\n this.onOptionSelect(event, this.visibleOptions()[this.focusedOptionIndex()]);\n }\n this.overlayVisible && this.hide();\n event.preventDefault();\n }\n else {\n const optionIndex = this.focusedOptionIndex() !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex()) : this.findLastFocusedOptionIndex();\n if (event.shiftKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex());\n }\n this.changeFocusedOptionIndex(event, optionIndex);\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n event.stopPropagation();\n }\n onHomeKey(event, pressedInInputText = false) {\n const { currentTarget } = event;\n if (pressedInInputText) {\n const len = currentTarget.value.length;\n currentTarget.setSelectionRange(0, event.shiftKey ? len : 0);\n this.focusedOptionIndex.set(-1);\n }\n else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findFirstOptionIndex();\n if (event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex());\n }\n this.changeFocusedOptionIndex(event, optionIndex);\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n }\n onEndKey(event, pressedInInputText = false) {\n const { currentTarget } = event;\n if (pressedInInputText) {\n const len = currentTarget.value.length;\n currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len);\n this.focusedOptionIndex.set(-1);\n }\n else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findLastFocusedOptionIndex();\n if (event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, this.startRangeIndex(), optionIndex);\n }\n this.changeFocusedOptionIndex(event, optionIndex);\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n }\n onPageDownKey(event) {\n this.scrollInView(this.visibleOptions().length - 1);\n event.preventDefault();\n }\n onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n }\n onEnterKey(event) {\n if (!this.overlayVisible) {\n this.onArrowDownKey(event);\n }\n else {\n if (this.focusedOptionIndex() !== -1) {\n if (event.shiftKey) {\n this.onOptionSelectRange(event, this.focusedOptionIndex());\n }\n else {\n this.onOptionSelect({ originalEvent: event, option: this.visibleOptions()[this.focusedOptionIndex()] });\n }\n }\n }\n event.preventDefault();\n }\n onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n }\n onDeleteKey(event) {\n if (this.showClear) {\n this.clear(event);\n event.preventDefault();\n }\n }\n onTabKey(event, pressedInInputText = false) {\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(event.shiftKey ? this.lastHiddenFocusableElementOnOverlay.nativeElement : this.firstHiddenFocusableElementOnOverlay.nativeElement);\n event.preventDefault();\n }\n else {\n if (this.focusedOptionIndex() !== -1) {\n this.onOptionSelect({ originalEvent: event, option: this.visibleOptions()[this.focusedOptionIndex()] });\n }\n this.overlayVisible && this.hide(this.filter);\n }\n }\n }\n onShiftKey() {\n this.startRangeIndex.set(this.focusedOptionIndex());\n }\n onContainerClick(event) {\n if (this.disabled || this.loading || this.readonly || event.target.isSameNode(this.focusInputViewChild?.nativeElement)) {\n return;\n }\n if (!this.overlayViewChild || !this.overlayViewChild.el.nativeElement.contains(event.target)) {\n if (this.clickInProgress) {\n return;\n }\n this.clickInProgress = true;\n setTimeout(() => {\n this.clickInProgress = false;\n }, 150);\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n this.focusInputViewChild?.nativeElement.focus({ preventScroll: true });\n this.onClick.emit(event);\n this.cd.detectChanges();\n }\n onFirstHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.focusInputViewChild?.nativeElement ? getFirstFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable=\"true\"])') : this.focusInputViewChild?.nativeElement;\n focus(focusableEl);\n }\n onInputFocus(event) {\n this.focused = true;\n const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.focusedOptionIndex.set(focusedOptionIndex);\n this.overlayVisible && this.scrollInView(this.focusedOptionIndex());\n this.onFocus.emit({ originalEvent: event });\n }\n onInputBlur(event) {\n this.focused = false;\n this.onBlur.emit({ originalEvent: event });\n if (!this.preventModelTouched) {\n this.onModelTouched();\n }\n this.preventModelTouched = false;\n }\n onFilterInputChange(event) {\n let value = event.target.value;\n this._filterValue.set(value);\n this.focusedOptionIndex.set(-1);\n this.onFilter.emit({ originalEvent: event, filter: this._filterValue() });\n !this.virtualScrollerDisabled && this.scroller.scrollToIndex(0);\n setTimeout(() => {\n this.overlayViewChild.alignOverlay();\n });\n }\n onLastHiddenFocus(event) {\n const focusableEl = event.relatedTarget === this.focusInputViewChild?.nativeElement ? getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable=\"true\"])') : this.focusInputViewChild?.nativeElement;\n focus(focusableEl);\n }\n onOptionMouseEnter(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n }\n onHeaderCheckboxKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n switch (event.code) {\n case 'Space':\n this.onToggleAll(event);\n break;\n case 'Enter':\n this.onToggleAll(event);\n break;\n default:\n break;\n }\n }\n onFilterBlur(event) {\n this.focusedOptionIndex.set(-1);\n }\n onHeaderCheckboxFocus() {\n this.headerCheckboxFocus = true;\n }\n onHeaderCheckboxBlur() {\n this.headerCheckboxFocus = false;\n }\n onToggleAll(event) {\n if (this.disabled || this.readonly) {\n return;\n }\n if (this.selectAll != null) {\n this.onSelectAllChange.emit({\n originalEvent: event,\n checked: !this.allSelected()\n });\n }\n else {\n // pre-selected disabled options should always be selected.\n const selectedDisabledOptions = this.getAllVisibleAndNonVisibleOptions().filter((option) => this.isSelected(option) && (this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : option && option.disabled !== undefined ? option.disabled : false));\n const visibleOptions = this.allSelected()\n ? this.visibleOptions().filter((option) => !this.isValidOption(option) && this.isSelected(option))\n : this.visibleOptions().filter((option) => this.isSelected(option) || this.isValidOption(option));\n const optionValues = [...selectedDisabledOptions, ...visibleOptions].map((option) => this.getOptionValue(option));\n const value = [...new Set(optionValues)];\n this.updateModel(value, event);\n // because onToggleAll could have been called during filtering, this additional test needs to be performed before calling onSelectAllChange.emit\n if (!value.length || value.length === this.getAllVisibleAndNonVisibleOptions().length) {\n this.onSelectAllChange.emit({\n originalEvent: event,\n checked: !!value.length\n });\n }\n }\n if (this.partialSelected()) {\n this.selectedOptions = null;\n this.cd.markForCheck();\n }\n this.onChange.emit({ originalEvent: event, value: this.value });\n DomHandler.focus(this.headerCheckboxViewChild?.inputViewChild?.nativeElement);\n this.headerCheckboxFocus = true;\n event.originalEvent.preventDefault();\n event.originalEvent.stopPropagation();\n }\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex() !== index) {\n this.focusedOptionIndex.set(index);\n this.scrollInView();\n }\n }\n get virtualScrollerDisabled() {\n return !this.virtualScroll;\n }\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;\n if (this.itemsViewChild && this.itemsViewChild.nativeElement) {\n const element = findSingle(this.itemsViewChild.nativeElement, `li[id=\"${id}\"]`);\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n else if (!this.virtualScrollerDisabled) {\n setTimeout(() => {\n this.virtualScroll && this.scroller?.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex());\n }, 0);\n }\n }\n }\n get focusedOptionId() {\n return this.focusedOptionIndex() !== -1 ? `${this.id}_${this.focusedOptionIndex()}` : null;\n }\n writeValue(value) {\n this.value = value;\n this.modelValue.set(this.value);\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n allSelected() {\n return this.selectAll !== null ? this.selectAll : isNotEmpty(this.visibleOptions()) && this.visibleOptions().every((option) => this.isOptionGroup(option) || this.isOptionDisabled(option) || this.isSelected(option));\n }\n partialSelected() {\n return this.selectedOptions && this.selectedOptions.length > 0 && this.selectedOptions.length < this.options.length;\n }\n /**\n * Displays the panel.\n * @group Method\n */\n show(isFocus) {\n this.overlayVisible = true;\n const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n this.focusedOptionIndex.set(focusedOptionIndex);\n if (isFocus) {\n focus(this.focusInputViewChild?.nativeElement);\n }\n this.cd.markForCheck();\n }\n /**\n * Hides the panel.\n * @group Method\n */\n hide(isFocus) {\n this.overlayVisible = false;\n this.focusedOptionIndex.set(-1);\n if (this.filter && this.resetFilterOnHide) {\n this.resetFilter();\n }\n if (this.overlayOptions?.mode === 'modal') {\n unblockBodyScroll();\n }\n isFocus && focus(this.focusInputViewChild?.nativeElement);\n this.onPanelHide.emit();\n this.cd.markForCheck();\n }\n onOverlayAnimationStart(event) {\n switch (event.toState) {\n case 'visible':\n this.itemsWrapper = findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement, this.virtualScroll ? '.p-scroller' : '.p-multiselect-items-wrapper');\n this.virtualScroll && this.scroller?.setContentEl(this.itemsViewChild?.nativeElement);\n if (this._options() && this._options().length) {\n if (this.virtualScroll) {\n const selectedIndex = isNotEmpty(this.modelValue()) ? this.focusedOptionIndex() : -1;\n if (selectedIndex !== -1) {\n this.scroller?.scrollToIndex(selectedIndex);\n }\n }\n else {\n let selectedListItem = findSingle(this.itemsWrapper, '[data-p-highlight=\"true\"]');\n if (selectedListItem) {\n selectedListItem.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n }\n }\n if (this.filterInputChild && this.filterInputChild.nativeElement) {\n this.preventModelTouched = true;\n if (this.autofocusFilter) {\n this.filterInputChild.nativeElement.focus();\n }\n }\n this.onPanelShow.emit();\n case 'void':\n this.itemsWrapper = null;\n this.onModelTouched();\n break;\n }\n }\n resetFilter() {\n if (this.filterInputChild && this.filterInputChild.nativeElement) {\n this.filterInputChild.nativeElement.value = '';\n }\n this._filterValue.set(null);\n this._filteredOptions = null;\n }\n close(event) {\n this.hide();\n event.preventDefault();\n event.stopPropagation();\n }\n clear(event) {\n this.value = null;\n this.updateModel(null, event);\n this.selectedOptions = null;\n this.onClear.emit();\n this._disableTooltip = true;\n event.stopPropagation();\n }\n labelContainerMouseLeave() {\n if (this._disableTooltip)\n this._disableTooltip = false;\n }\n removeOption(optionValue, event) {\n let value = this.modelValue().filter((val) => !equals(val, optionValue, this.equalityKey()));\n this.updateModel(value, event);\n this.onChange.emit({\n originalEvent: event,\n value: value,\n itemValue: optionValue\n });\n this.onRemove.emit({\n newValue: value,\n removed: optionValue\n });\n event && event.stopPropagation();\n }\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n if (nextItem)\n return hasClass(nextItem.children[0], 'p-disabled') || isHidden(nextItem.children[0]) || hasClass(nextItem, 'p-multiselect-item-group') ? this.findNextItem(nextItem) : nextItem.children[0];\n else\n return null;\n }\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n if (prevItem)\n return hasClass(prevItem.children[0], 'p-disabled') || isHidden(prevItem.children[0]) || hasClass(prevItem, 'p-multiselect-item-group') ? this.findPrevItem(prevItem) : prevItem.children[0];\n else\n return null;\n }\n findNextOptionIndex(index) {\n const matchedOptionIndex = index < this.visibleOptions().length - 1\n ? this.visibleOptions()\n .slice(index + 1)\n .findIndex((option) => this.isValidOption(option))\n : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n }\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidOption(option)) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n }\n findLastSelectedOptionIndex() {\n return this.hasSelectedOption() ? findLastIndex(this.visibleOptions(), (option) => this.isValidSelectedOption(option)) : -1;\n }\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findLastSelectedOptionIndex();\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n }\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions(), (option) => this.isValidOption(option));\n }\n searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n let optionIndex = -1;\n let matched = false;\n if (this.focusedOptionIndex() !== -1) {\n optionIndex = this.visibleOptions()\n .slice(this.focusedOptionIndex())\n .findIndex((option) => this.isOptionMatched(option));\n optionIndex =\n optionIndex === -1\n ? this.visibleOptions()\n .slice(0, this.focusedOptionIndex())\n .findIndex((option) => this.isOptionMatched(option))\n : optionIndex + this.focusedOptionIndex();\n }\n else {\n optionIndex = this.visibleOptions().findIndex((option) => this.isOptionMatched(option));\n }\n if (optionIndex !== -1) {\n matched = true;\n }\n if (optionIndex === -1 && this.focusedOptionIndex() === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n return matched;\n }\n activateFilter() {\n if (this.hasFilter() && this._options) {\n if (this.group) {\n let filteredGroups = [];\n for (let optgroup of this.options) {\n let filteredSubOptions = this.filterService.filter(this.getOptionGroupChildren(optgroup), this.searchFields(), this.filterValue, this.filterMatchMode, this.filterLocale);\n if (filteredSubOptions && filteredSubOptions.length) {\n filteredGroups.push({ ...optgroup, ...{ [this.optionGroupChildren]: filteredSubOptions } });\n }\n }\n this._filteredOptions = filteredGroups;\n }\n else {\n this._filteredOptions = this.filterService.filter(this.options, this.searchFields(), this.filterValue, this.filterMatchMode, this.filterLocale);\n }\n }\n else {\n this._filteredOptions = null;\n }\n }\n hasFocusableElements() {\n return getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n }\n hasFilter() {\n return this._filterValue() && this._filterValue().trim().length > 0;\n }\n static ɵfac = function MultiSelect_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MultiSelect)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.FilterService), i0.ɵɵdirectiveInject(i3.OverlayService)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MultiSelect, selectors: [[\"p-multiSelect\"], [\"p-multiselect\"], [\"p-multi-select\"]], contentQueries: function MultiSelect_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, Footer, 5);\n i0.ɵɵcontentQuery(dirIndex, Header, 5);\n i0.ɵɵcontentQuery(dirIndex, _c4, 4);\n i0.ɵɵcontentQuery(dirIndex, _c5, 4);\n i0.ɵɵcontentQuery(dirIndex, _c6, 4);\n i0.ɵɵcontentQuery(dirIndex, _c7, 4);\n i0.ɵɵcontentQuery(dirIndex, _c8, 4);\n i0.ɵɵcontentQuery(dirIndex, _c9, 4);\n i0.ɵɵcontentQuery(dirIndex, _c10, 4);\n i0.ɵɵcontentQuery(dirIndex, _c11, 4);\n i0.ɵɵcontentQuery(dirIndex, _c12, 4);\n i0.ɵɵcontentQuery(dirIndex, _c13, 4);\n i0.ɵɵcontentQuery(dirIndex, _c14, 4);\n i0.ɵɵcontentQuery(dirIndex, _c15, 4);\n i0.ɵɵcontentQuery(dirIndex, _c16, 4);\n i0.ɵɵcontentQuery(dirIndex, _c17, 4);\n i0.ɵɵcontentQuery(dirIndex, _c18, 4);\n i0.ɵɵcontentQuery(dirIndex, _c19, 4);\n i0.ɵɵcontentQuery(dirIndex, _c20, 4);\n i0.ɵɵcontentQuery(dirIndex, _c21, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerFacet = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerFacet = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.groupTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loaderTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.emptyFilterTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.emptyTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.selectedItemsTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.checkIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loadingIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.removeTokenIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chipIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.clearIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemCheckboxIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerCheckboxIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, viewQuery: function MultiSelect_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c22, 5);\n i0.ɵɵviewQuery(_c23, 5);\n i0.ɵɵviewQuery(_c24, 5);\n i0.ɵɵviewQuery(_c25, 5);\n i0.ɵɵviewQuery(_c26, 5);\n i0.ɵɵviewQuery(_c27, 5);\n i0.ɵɵviewQuery(_c28, 5);\n i0.ɵɵviewQuery(_c29, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.overlayViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterInputChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.focusInputViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.scroller = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lastHiddenFocusableElementOnOverlay = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.firstHiddenFocusableElementOnOverlay = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerCheckboxViewChild = _t.first);\n } }, hostVars: 5, hostBindings: function MultiSelect_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MultiSelect_click_HostBindingHandler($event) { return ctx.onContainerClick($event); });\n } if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id);\n i0.ɵɵstyleMap(ctx.style);\n i0.ɵɵclassMap(ctx.hostClasses);\n } }, inputs: { id: \"id\", ariaLabel: \"ariaLabel\", style: \"style\", styleClass: \"styleClass\", panelStyle: \"panelStyle\", panelStyleClass: \"panelStyleClass\", inputId: \"inputId\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], fluid: [2, \"fluid\", \"fluid\", booleanAttribute], readonly: [2, \"readonly\", \"readonly\", booleanAttribute], group: [2, \"group\", \"group\", booleanAttribute], filter: [2, \"filter\", \"filter\", booleanAttribute], filterPlaceHolder: \"filterPlaceHolder\", filterLocale: \"filterLocale\", overlayVisible: [2, \"overlayVisible\", \"overlayVisible\", booleanAttribute], tabindex: [2, \"tabindex\", \"tabindex\", numberAttribute], variant: \"variant\", appendTo: \"appendTo\", dataKey: \"dataKey\", name: \"name\", ariaLabelledBy: \"ariaLabelledBy\", displaySelectedLabel: \"displaySelectedLabel\", maxSelectedLabels: \"maxSelectedLabels\", selectionLimit: [2, \"selectionLimit\", \"selectionLimit\", numberAttribute], selectedItemsLabel: \"selectedItemsLabel\", showToggleAll: [2, \"showToggleAll\", \"showToggleAll\", booleanAttribute], emptyFilterMessage: \"emptyFilterMessage\", emptyMessage: \"emptyMessage\", resetFilterOnHide: [2, \"resetFilterOnHide\", \"resetFilterOnHide\", booleanAttribute], dropdownIcon: \"dropdownIcon\", chipIcon: \"chipIcon\", optionLabel: \"optionLabel\", optionValue: \"optionValue\", optionDisabled: \"optionDisabled\", optionGroupLabel: \"optionGroupLabel\", optionGroupChildren: \"optionGroupChildren\", showHeader: [2, \"showHeader\", \"showHeader\", booleanAttribute], filterBy: \"filterBy\", scrollHeight: \"scrollHeight\", lazy: [2, \"lazy\", \"lazy\", booleanAttribute], virtualScroll: [2, \"virtualScroll\", \"virtualScroll\", booleanAttribute], loading: [2, \"loading\", \"loading\", booleanAttribute], virtualScrollItemSize: [2, \"virtualScrollItemSize\", \"virtualScrollItemSize\", numberAttribute], loadingIcon: \"loadingIcon\", virtualScrollOptions: \"virtualScrollOptions\", overlayOptions: \"overlayOptions\", ariaFilterLabel: \"ariaFilterLabel\", filterMatchMode: \"filterMatchMode\", tooltip: \"tooltip\", tooltipPosition: \"tooltipPosition\", tooltipPositionStyle: \"tooltipPositionStyle\", tooltipStyleClass: \"tooltipStyleClass\", autofocusFilter: [2, \"autofocusFilter\", \"autofocusFilter\", booleanAttribute], display: \"display\", autocomplete: \"autocomplete\", size: \"size\", showClear: [2, \"showClear\", \"showClear\", booleanAttribute], autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute], autoZIndex: \"autoZIndex\", baseZIndex: \"baseZIndex\", showTransitionOptions: \"showTransitionOptions\", hideTransitionOptions: \"hideTransitionOptions\", defaultLabel: \"defaultLabel\", placeholder: \"placeholder\", options: \"options\", filterValue: \"filterValue\", itemSize: \"itemSize\", selectAll: \"selectAll\", focusOnHover: [2, \"focusOnHover\", \"focusOnHover\", booleanAttribute], filterFields: \"filterFields\", selectOnFocus: [2, \"selectOnFocus\", \"selectOnFocus\", booleanAttribute], autoOptionFocus: [2, \"autoOptionFocus\", \"autoOptionFocus\", booleanAttribute] }, outputs: { onChange: \"onChange\", onFilter: \"onFilter\", onFocus: \"onFocus\", onBlur: \"onBlur\", onClick: \"onClick\", onClear: \"onClear\", onPanelShow: \"onPanelShow\", onPanelHide: \"onPanelHide\", onLazyLoad: \"onLazyLoad\", onRemove: \"onRemove\", onSelectAllChange: \"onSelectAllChange\" }, standalone: true, features: [i0.ɵɵProvidersFeature([MULTISELECT_VALUE_ACCESSOR, MultiSelectStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c31, decls: 16, vars: 39, consts: [[\"focusInput\", \"\"], [\"elseBlock\", \"\"], [\"overlay\", \"\"], [\"content\", \"\"], [\"token\", \"\"], [\"removeicon\", \"\"], [\"firstHiddenFocusableEl\", \"\"], [\"buildInItems\", \"\"], [\"lastHiddenFocusableEl\", \"\"], [\"builtInFilterElement\", \"\"], [\"headerCheckbox\", \"\"], [\"checkboxicon\", \"\"], [\"filterInput\", \"\"], [\"scroller\", \"\"], [\"loader\", \"\"], [\"items\", \"\"], [1, \"p-hidden-accessible\"], [\"role\", \"combobox\", 3, \"focus\", \"blur\", \"keydown\", \"pTooltip\", \"tooltipPosition\", \"positionStyle\", \"tooltipStyleClass\", \"pAutoFocus\"], [1, \"p-multiselect-label-container\", 3, \"mouseleave\", \"pTooltip\", \"tooltipDisabled\", \"tooltipPosition\", \"positionStyle\", \"tooltipStyleClass\"], [3, \"ngClass\"], [4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"p-multiselect-dropdown\"], [4, \"ngIf\", \"ngIfElse\"], [3, \"visibleChange\", \"onAnimationStart\", \"onHide\", \"visible\", \"options\", \"target\", \"appendTo\", \"autoZIndex\", \"baseZIndex\", \"showTransitionOptions\", \"hideTransitionOptions\"], [\"class\", \"p-multiselect-chip-item\", 4, \"ngFor\", \"ngForOf\"], [1, \"p-multiselect-chip-item\"], [\"styleClass\", \"p-multiselect-chip\", 3, \"onRemove\", \"label\", \"removable\", \"removeIcon\"], [\"class\", \"p-multiselect-chip-icon\", 3, \"click\", 4, \"ngIf\"], [1, \"p-multiselect-chip-icon\", 3, \"click\"], [\"class\", \"p-multiselect-clear-icon\", 3, \"click\", 4, \"ngIf\"], [1, \"p-multiselect-clear-icon\", 3, \"click\"], [4, \"ngTemplateOutlet\"], [\"aria-hidden\", \"true\", 3, \"ngClass\", 4, \"ngIf\"], [\"aria-hidden\", \"true\", 3, \"class\", 4, \"ngIf\"], [\"aria-hidden\", \"true\", 3, \"ngClass\"], [\"aria-hidden\", \"true\"], [\"class\", \"p-multiselect-dropdown-icon\", 4, \"ngIf\"], [\"class\", \"p-multiselect-dropdown-icon\", 3, \"ngClass\", 4, \"ngIf\"], [3, \"styleClass\", 4, \"ngIf\"], [1, \"p-multiselect-dropdown-icon\", 3, \"ngClass\"], [3, \"styleClass\"], [1, \"p-multiselect-dropdown-icon\"], [3, \"ngClass\", \"ngStyle\"], [\"role\", \"presentation\", 1, \"p-hidden-accessible\", \"p-hidden-focusable\", 3, \"focus\"], [\"class\", \"p-multiselect-header\", 4, \"ngIf\"], [1, \"p-multiselect-list-container\"], [3, \"items\", \"style\", \"itemSize\", \"autoSize\", \"tabindex\", \"lazy\", \"options\", \"onLazyLoad\", 4, \"ngIf\"], [1, \"p-multiselect-header\"], [3, \"ngModel\", \"binary\", \"variant\", \"disabled\", \"onChange\", 4, \"ngIf\"], [\"class\", \"p-multiselect-filter-container\", 4, \"ngIf\"], [3, \"onChange\", \"ngModel\", \"binary\", \"variant\", \"disabled\"], [1, \"p-multiselect-filter-container\"], [\"pInputText\", \"\", \"type\", \"text\", \"role\", \"searchbox\", 1, \"p-multiselect-filter\", 3, \"input\", \"keydown\", \"click\", \"blur\", \"variant\", \"value\", \"disabled\"], [\"class\", \"p-multiselect-filter-icon\", 4, \"ngIf\"], [1, \"p-multiselect-filter-icon\"], [3, \"onLazyLoad\", \"items\", \"itemSize\", \"autoSize\", \"tabindex\", \"lazy\", \"options\"], [\"role\", \"listbox\", \"aria-multiselectable\", \"true\", 1, \"p-multiselect-list\", 3, \"ngClass\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"class\", \"p-multiselect-empty-message\", \"role\", \"option\", 3, \"ngStyle\", 4, \"ngIf\"], [\"role\", \"option\", 1, \"p-multiselect-option-group\", 3, \"ngStyle\"], [3, \"onClick\", \"onMouseEnter\", \"id\", \"option\", \"selected\", \"label\", \"disabled\", \"template\", \"checkIconTemplate\", \"itemCheckboxIconTemplate\", \"itemSize\", \"focused\", \"ariaPosInset\", \"ariaSetSize\", \"variant\"], [\"role\", \"option\", 1, \"p-multiselect-empty-message\", 3, \"ngStyle\"]], template: function MultiSelect_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c30);\n i0.ɵɵelementStart(0, \"div\", 16)(1, \"input\", 17, 0);\n i0.ɵɵlistener(\"focus\", function MultiSelect_Template_input_focus_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputFocus($event)); })(\"blur\", function MultiSelect_Template_input_blur_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputBlur($event)); })(\"keydown\", function MultiSelect_Template_input_keydown_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onKeyDown($event)); });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(3, \"div\", 18);\n i0.ɵɵlistener(\"mouseleave\", function MultiSelect_Template_div_mouseleave_3_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.labelContainerMouseLeave()); });\n i0.ɵɵelementStart(4, \"div\", 19);\n i0.ɵɵtemplate(5, MultiSelect_ng_container_5_Template, 3, 2, \"ng-container\", 20)(6, MultiSelect_ng_container_6_Template, 1, 0, \"ng-container\", 21);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(7, MultiSelect_ng_container_7_Template, 3, 2, \"ng-container\", 20);\n i0.ɵɵelementStart(8, \"div\", 22);\n i0.ɵɵtemplate(9, MultiSelect_ng_container_9_Template, 3, 2, \"ng-container\", 23)(10, MultiSelect_ng_template_10_Template, 2, 2, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"p-overlay\", 24, 2);\n i0.ɵɵtwoWayListener(\"visibleChange\", function MultiSelect_Template_p_overlay_visibleChange_12_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.overlayVisible, $event) || (ctx.overlayVisible = $event); return i0.ɵɵresetView($event); });\n i0.ɵɵlistener(\"onAnimationStart\", function MultiSelect_Template_p_overlay_onAnimationStart_12_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onOverlayAnimationStart($event)); })(\"onHide\", function MultiSelect_Template_p_overlay_onHide_12_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.hide()); });\n i0.ɵɵtemplate(14, MultiSelect_ng_template_14_Template, 13, 18, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n let tmp_15_0;\n const elseBlock_r24 = i0.ɵɵreference(11);\n i0.ɵɵattribute(\"data-p-hidden-accessible\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"pTooltip\", ctx.tooltip)(\"tooltipPosition\", ctx.tooltipPosition)(\"positionStyle\", ctx.tooltipPositionStyle)(\"tooltipStyleClass\", ctx.tooltipStyleClass)(\"pAutoFocus\", ctx.autofocus);\n i0.ɵɵattribute(\"aria-disabled\", ctx.disabled)(\"id\", ctx.inputId)(\"aria-label\", ctx.ariaLabel)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-haspopup\", \"listbox\")(\"aria-expanded\", (tmp_15_0 = ctx.overlayVisible) !== null && tmp_15_0 !== undefined ? tmp_15_0 : false)(\"aria-controls\", ctx.overlayVisible ? ctx.id + \"_list\" : null)(\"tabindex\", !ctx.disabled ? ctx.tabindex : -1)(\"aria-activedescendant\", ctx.focused ? ctx.focusedOptionId : undefined)(\"value\", ctx.label() || \"empty\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"pTooltip\", ctx.tooltip)(\"tooltipDisabled\", ctx._disableTooltip)(\"tooltipPosition\", ctx.tooltipPosition)(\"positionStyle\", ctx.tooltipPositionStyle)(\"tooltipStyleClass\", ctx.tooltipStyleClass);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx.labelClass);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.selectedItemsTemplate && !ctx._selectedItemsTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.selectedItemsTemplate || ctx._selectedItemsTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(36, _c32, ctx.selectedOptions, ctx.removeOption.bind(ctx)));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isVisibleClearIcon);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.loading)(\"ngIfElse\", elseBlock_r24);\n i0.ɵɵadvance(3);\n i0.ɵɵtwoWayProperty(\"visible\", ctx.overlayVisible);\n i0.ɵɵproperty(\"options\", ctx.overlayOptions)(\"target\", \"@parent\")(\"appendTo\", ctx.appendTo)(\"autoZIndex\", ctx.autoZIndex)(\"baseZIndex\", ctx.baseZIndex)(\"showTransitionOptions\", ctx.showTransitionOptions)(\"hideTransitionOptions\", ctx.hideTransitionOptions);\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, MultiSelectItem, Overlay, SharedModule, Tooltip, Scroller, AutoFocus, CheckIcon, SearchIcon, TimesIcon, ChevronDownIcon, IconField, InputIcon, InputText, Chip, Checkbox, FormsModule, i2.NgControlStatus, i2.NgModel], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MultiSelect, [{\n type: Component,\n args: [{\n selector: 'p-multiSelect, p-multiselect, p-multi-select',\n standalone: true,\n imports: [CommonModule, MultiSelectItem, Overlay, SharedModule, Tooltip, Scroller, AutoFocus, CheckIcon, SearchIcon, TimesIcon, ChevronDownIcon, IconField, InputIcon, InputText, Chip, Checkbox, FormsModule],\n template: `\n
\n \n
\n \n
\n \n {{ label() || 'empty' }}\n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n {{ placeholder() || defaultLabel || 'empty' }}\n
\n
\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n\n
\n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
    \n \n \n
  • \n {{ getOptionGroupLabel(option.optionGroup) }}\n \n
  • \n
    \n \n \n \n
    \n\n
  • \n @if (!emptyFilterTemplate && !_emptyFilterTemplate && !emptyTemplate && !_emptyTemplate) {\n {{ emptyFilterMessageLabel }}\n } @else {\n \n }\n
  • \n
  • \n @if (!emptyTemplate && !_emptyTemplate) {\n {{ emptyMessageLabel }}\n } @else {\n \n }\n
  • \n
\n
\n
\n
\n \n \n
\n\n \n
\n
\n \n `,\n providers: [MULTISELECT_VALUE_ACCESSOR, MultiSelectStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.id]': 'id',\n '[style]': 'style',\n '(click)': 'onContainerClick($event)'\n }\n }]\n }], () => [{ type: i0.NgZone }, { type: i3.FilterService }, { type: i3.OverlayService }], { id: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], panelStyle: [{\n type: Input\n }], panelStyleClass: [{\n type: Input\n }], inputId: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], fluid: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], readonly: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], group: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], filter: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], filterPlaceHolder: [{\n type: Input\n }], filterLocale: [{\n type: Input\n }], overlayVisible: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], tabindex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], variant: [{\n type: Input\n }], appendTo: [{\n type: Input\n }], dataKey: [{\n type: Input\n }], name: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], displaySelectedLabel: [{\n type: Input\n }], maxSelectedLabels: [{\n type: Input\n }], selectionLimit: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], selectedItemsLabel: [{\n type: Input\n }], showToggleAll: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], emptyFilterMessage: [{\n type: Input\n }], emptyMessage: [{\n type: Input\n }], resetFilterOnHide: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], dropdownIcon: [{\n type: Input\n }], chipIcon: [{\n type: Input\n }], optionLabel: [{\n type: Input\n }], optionValue: [{\n type: Input\n }], optionDisabled: [{\n type: Input\n }], optionGroupLabel: [{\n type: Input\n }], optionGroupChildren: [{\n type: Input\n }], showHeader: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], filterBy: [{\n type: Input\n }], scrollHeight: [{\n type: Input\n }], lazy: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], virtualScroll: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], loading: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], virtualScrollItemSize: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], loadingIcon: [{\n type: Input\n }], virtualScrollOptions: [{\n type: Input\n }], overlayOptions: [{\n type: Input\n }], ariaFilterLabel: [{\n type: Input\n }], filterMatchMode: [{\n type: Input\n }], tooltip: [{\n type: Input\n }], tooltipPosition: [{\n type: Input\n }], tooltipPositionStyle: [{\n type: Input\n }], tooltipStyleClass: [{\n type: Input\n }], autofocusFilter: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], display: [{\n type: Input\n }], autocomplete: [{\n type: Input\n }], size: [{\n type: Input\n }], showClear: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], autoZIndex: [{\n type: Input\n }], baseZIndex: [{\n type: Input\n }], showTransitionOptions: [{\n type: Input\n }], hideTransitionOptions: [{\n type: Input\n }], defaultLabel: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], options: [{\n type: Input\n }], filterValue: [{\n type: Input\n }], itemSize: [{\n type: Input\n }], selectAll: [{\n type: Input\n }], focusOnHover: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], filterFields: [{\n type: Input\n }], selectOnFocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], autoOptionFocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onChange: [{\n type: Output\n }], onFilter: [{\n type: Output\n }], onFocus: [{\n type: Output\n }], onBlur: [{\n type: Output\n }], onClick: [{\n type: Output\n }], onClear: [{\n type: Output\n }], onPanelShow: [{\n type: Output\n }], onPanelHide: [{\n type: Output\n }], onLazyLoad: [{\n type: Output\n }], onRemove: [{\n type: Output\n }], onSelectAllChange: [{\n type: Output\n }], overlayViewChild: [{\n type: ViewChild,\n args: ['overlay']\n }], filterInputChild: [{\n type: ViewChild,\n args: ['filterInput']\n }], focusInputViewChild: [{\n type: ViewChild,\n args: ['focusInput']\n }], itemsViewChild: [{\n type: ViewChild,\n args: ['items']\n }], scroller: [{\n type: ViewChild,\n args: ['scroller']\n }], lastHiddenFocusableElementOnOverlay: [{\n type: ViewChild,\n args: ['lastHiddenFocusableEl']\n }], firstHiddenFocusableElementOnOverlay: [{\n type: ViewChild,\n args: ['firstHiddenFocusableEl']\n }], headerCheckboxViewChild: [{\n type: ViewChild,\n args: ['headerCheckbox']\n }], footerFacet: [{\n type: ContentChild,\n args: [Footer]\n }], headerFacet: [{\n type: ContentChild,\n args: [Header]\n }], itemTemplate: [{\n type: ContentChild,\n args: ['item', { descendants: false }]\n }], groupTemplate: [{\n type: ContentChild,\n args: ['group', { descendants: false }]\n }], loaderTemplate: [{\n type: ContentChild,\n args: ['loader', { descendants: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: ['header', { descendants: false }]\n }], filterTemplate: [{\n type: ContentChild,\n args: ['filter', { descendants: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: ['footer', { descendants: false }]\n }], emptyFilterTemplate: [{\n type: ContentChild,\n args: ['emptyfilter', { descendants: false }]\n }], emptyTemplate: [{\n type: ContentChild,\n args: ['empty', { descendants: false }]\n }], selectedItemsTemplate: [{\n type: ContentChild,\n args: ['selecteditems', { descendants: false }]\n }], checkIconTemplate: [{\n type: ContentChild,\n args: ['checkicon', { descendants: false }]\n }], loadingIconTemplate: [{\n type: ContentChild,\n args: ['loadingicon', { descendants: false }]\n }], filterIconTemplate: [{\n type: ContentChild,\n args: ['filtericon', { descendants: false }]\n }], removeTokenIconTemplate: [{\n type: ContentChild,\n args: ['removetokenicon', { descendants: false }]\n }], chipIconTemplate: [{\n type: ContentChild,\n args: ['chipicon', { descendants: false }]\n }], clearIconTemplate: [{\n type: ContentChild,\n args: ['clearicon', { descendants: false }]\n }], dropdownIconTemplate: [{\n type: ContentChild,\n args: ['dropdownicon', { descendants: false }]\n }], itemCheckboxIconTemplate: [{\n type: ContentChild,\n args: ['itemcheckboxicon', { descendants: false }]\n }], headerCheckboxIconTemplate: [{\n type: ContentChild,\n args: ['headercheckboxicon', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }], hostClasses: [{\n type: HostBinding,\n args: ['class']\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(MultiSelect, { className: \"MultiSelect\" }); })();\nclass MultiSelectModule {\n static ɵfac = function MultiSelectModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MultiSelectModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MultiSelectModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MultiSelect, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MultiSelectModule, [{\n type: NgModule,\n args: [{\n imports: [MultiSelect, SharedModule],\n exports: [MultiSelect, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(MultiSelectModule, { imports: [MultiSelect, SharedModule], exports: [MultiSelect, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MULTISELECT_VALUE_ACCESSOR, MultiSelect, MultiSelectClasses, MultiSelectItem, MultiSelectModule, MultiSelectStyle };\n","import { trigger, transition, style, animate } from '@angular/animations';\nimport * as i2 from '@angular/common';\nimport { isPlatformBrowser, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, inject, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { appendChild, absolutePosition, relativePosition, isTouchDevice } from '@primeuix/utils';\nimport * as i1 from 'primeng/api';\nimport { TranslationKeys, SharedModule } from 'primeng/api';\nimport * as i3 from 'primeng/autofocus';\nimport { AutoFocusModule } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-colorpicker {\n display: inline-block;\n position: relative;\n}\n\n.p-colorpicker-dragging {\n cursor: pointer;\n}\n\n.p-colorpicker-preview {\n width: ${dt('colorpicker.preview.width')};\n height: ${dt('colorpicker.preview.height')};\n padding: 0;\n border: 0 none;\n border-radius: ${dt('colorpicker.preview.border.radius')};\n transition: background ${dt('colorpicker.transition.duration')}, color ${dt('colorpicker.transition.duration')}, border-color ${dt('colorpicker.transition.duration')}, outline-color ${dt('colorpicker.transition.duration')}, box-shadow ${dt('colorpicker.transition.duration')};\n outline-color: transparent;\n cursor: pointer;\n}\n\n.p-colorpicker-preview:enabled:focus-visible {\n border-color: ${dt('colorpicker.preview.focus.border.color')};\n box-shadow: ${dt('colorpicker.preview.focus.ring.shadow')};\n outline: ${dt('colorpicker.preview.focus.ring.width')} ${dt('colorpicker.preview.focus.ring.style')} ${dt('colorpicker.preview.focus.ring.color')};\n outline-offset: ${dt('colorpicker.preview.focus.ring.offset')};\n}\n\n.p-colorpicker-panel {\n background: ${dt('colorpicker.panel.background')};\n border: 1px solid ${dt('colorpicker.panel.border.color')};\n border-radius: ${dt('colorpicker.panel.border.radius')};\n box-shadow: ${dt('colorpicker.panel.shadow')};\n width: 193px;\n height: 166px;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.p-colorpicker-panel:dir(rtl) {\n left: auto;\n right: 0;\n}\n\n.p-colorpicker-panel-inline {\n box-shadow: none;\n position: static;\n}\n\n.p-colorpicker-content {\n position: relative;\n}\n\n.p-colorpicker-color-selector {\n width: 150px;\n height: 150px;\n top: 8px;\n left: 8px;\n position: absolute;\n}\n\n.p-colorpicker-color-selector:dir(rtl) {\n left: auto;\n right: 8px;\n}\n\n.p-colorpicker-color-background {\n width: 100%;\n height: 100%;\n background: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, #fff 0%, rgba(255, 255, 255, 0) 100%);\n}\n\n.p-colorpicker-color-handle {\n position: absolute;\n top: 0px;\n left: 150px;\n border-radius: 100%;\n width: 10px;\n height: 10px;\n border-width: 1px;\n border-style: solid;\n margin: -5px 0 0 -5px;\n cursor: pointer;\n opacity: 0.85;\n border-color: ${dt('colorpicker.handle.color')};\n}\n\n.p-colorpicker-color-handle:dir(rtl) {\n left: auto;\n right: 150px;\n margin: -5px -5px 0 0;\n}\n\n.p-colorpicker-hue {\n width: 17px;\n height: 150px;\n top: 8px;\n left: 167px;\n position: absolute;\n opacity: 0.85;\n background: linear-gradient(0deg,\n red 0,\n #ff0 17%,\n #0f0 33%,\n #0ff 50%,\n #00f 67%,\n #f0f 83%,\n red);\n}\n\n.p-colorpicker-hue:dir(rtl) {\n left: auto;\n right: 167px;\n}\n\n.p-colorpicker-hue-handle {\n position: absolute;\n top: 150px;\n left: 0px;\n width: 21px;\n margin-left: -2px;\n margin-top: -5px;\n height: 10px;\n border-width: 2px;\n border-style: solid;\n opacity: 0.85;\n cursor: pointer;\n border-color: ${dt('colorpicker.handle.color')};\n}\n\n.p-colorpicker-hue-handle:dir(rtl) {\n left: auto;\n right: 0px;\n margin-left: 0;\n margin-right: -2px;\n}\n`;\nconst classes = {\n root: 'p-colorpicker p-component',\n preview: ({ props }) => ['p-colorpicker-preview', { 'p-disabled': props.disabled }],\n panel: ({ props }) => [\n 'p-colorpicker-panel',\n {\n 'p-colorpicker-panel-inline': props.inline,\n 'p-disabled': props.disabled\n }\n ],\n content: 'p-colorpicker-content',\n colorSelector: 'p-colorpicker-color-selector',\n colorBackground: 'p-colorpicker-color-background',\n colorHandle: 'p-colorpicker-color-handle',\n hue: 'p-colorpicker-hue',\n hueHandle: 'p-colorpicker-hue-handle'\n};\nclass ColorPickerStyle extends BaseStyle {\n name = 'colorpicker';\n theme = theme;\n classes = classes;\n static ɵfac = /*@__PURE__*/ (() => { let ɵColorPickerStyle_BaseFactory; return function ColorPickerStyle_Factory(__ngFactoryType__) { return (ɵColorPickerStyle_BaseFactory || (ɵColorPickerStyle_BaseFactory = i0.ɵɵgetInheritedFactory(ColorPickerStyle)))(__ngFactoryType__ || ColorPickerStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ColorPickerStyle, factory: ColorPickerStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ColorPickerStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * ColorPicker groups a collection of contents in tabs.\n *\n * [Live Demo](https://www.primeng.org/colorpicker/)\n *\n * @module colorpickerstyle\n *\n */\nvar ColorPickerClasses;\n(function (ColorPickerClasses) {\n /**\n * Class name of the root element\n */\n ColorPickerClasses[\"root\"] = \"p-colorpicker\";\n /**\n * Class name of the preview element\n */\n ColorPickerClasses[\"preview\"] = \"p-colorpicker-preview\";\n /**\n * Class name of the panel element\n */\n ColorPickerClasses[\"panel\"] = \"p-colorpicker-panel\";\n /**\n * Class name of the color selector element\n */\n ColorPickerClasses[\"colorSelector\"] = \"p-colorpicker-color-selector\";\n /**\n * Class name of the color background element\n */\n ColorPickerClasses[\"colorBackground\"] = \"p-colorpicker-color-background\";\n /**\n * Class name of the color handle element\n */\n ColorPickerClasses[\"colorHandle\"] = \"p-colorpicker-color-handle\";\n /**\n * Class name of the hue element\n */\n ColorPickerClasses[\"hue\"] = \"p-colorpicker-hue\";\n /**\n * Class name of the hue handle element\n */\n ColorPickerClasses[\"hueHandle\"] = \"p-colorpicker-hue-handle\";\n})(ColorPickerClasses || (ColorPickerClasses = {}));\n\nconst _c0 = [\"container\"];\nconst _c1 = [\"input\"];\nconst _c2 = [\"colorSelector\"];\nconst _c3 = [\"colorHandle\"];\nconst _c4 = [\"hue\"];\nconst _c5 = [\"hueHandle\"];\nconst _c6 = (a0, a1) => ({ \"p-colorpicker p-component\": true, \"p-colorpicker-overlay\": a0, \"p-colorpicker-dragging\": a1 });\nconst _c7 = a0 => ({ \"p-disabled\": a0 });\nconst _c8 = (a0, a1) => ({ \"p-colorpicker-panel\": true, \"p-colorpicker-panel-inline\": a0, \"p-disabled\": a1 });\nconst _c9 = (a0, a1) => ({ showTransitionParams: a0, hideTransitionParams: a1 });\nconst _c10 = a0 => ({ value: \"visible\", params: a0 });\nfunction ColorPicker_input_2_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 9, 1);\n i0.ɵɵlistener(\"click\", function ColorPicker_input_2_Template_input_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputClick()); })(\"keydown\", function ColorPicker_input_2_Template_input_keydown_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputKeydown($event)); })(\"focus\", function ColorPicker_input_2_Template_input_focus_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputFocus()); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"background-color\", ctx_r1.inputBgColor);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(9, _c7, ctx_r1.disabled))(\"disabled\", ctx_r1.disabled)(\"pAutoFocus\", ctx_r1.autofocus);\n i0.ɵɵattribute(\"tabindex\", ctx_r1.tabindex)(\"id\", ctx_r1.inputId)(\"data-pc-section\", \"input\")(\"aria-label\", ctx_r1.ariaLabel);\n} }\nfunction ColorPicker_div_3_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 10);\n i0.ɵɵlistener(\"click\", function ColorPicker_div_3_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOverlayClick($event)); })(\"@overlayAnimation.start\", function ColorPicker_div_3_Template_div_animation_overlayAnimation_start_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOverlayAnimationStart($event)); })(\"@overlayAnimation.done\", function ColorPicker_div_3_Template_div_animation_overlayAnimation_done_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOverlayAnimationEnd($event)); });\n i0.ɵɵelementStart(1, \"div\", 11)(2, \"div\", 12, 2);\n i0.ɵɵlistener(\"touchstart\", function ColorPicker_div_3_Template_div_touchstart_2_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onColorDragStart($event)); })(\"touchmove\", function ColorPicker_div_3_Template_div_touchmove_2_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onDrag($event)); })(\"touchend\", function ColorPicker_div_3_Template_div_touchend_2_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onDragEnd()); })(\"mousedown\", function ColorPicker_div_3_Template_div_mousedown_2_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onColorMousedown($event)); });\n i0.ɵɵelementStart(4, \"div\", 13);\n i0.ɵɵelement(5, \"div\", 14, 3);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"div\", 15, 4);\n i0.ɵɵlistener(\"mousedown\", function ColorPicker_div_3_Template_div_mousedown_7_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onHueMousedown($event)); })(\"touchstart\", function ColorPicker_div_3_Template_div_touchstart_7_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onHueDragStart($event)); })(\"touchmove\", function ColorPicker_div_3_Template_div_touchmove_7_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onDrag($event)); })(\"touchend\", function ColorPicker_div_3_Template_div_touchend_7_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onDragEnd()); });\n i0.ɵɵelement(9, \"div\", 16, 5);\n i0.ɵɵelementEnd()()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(10, _c8, ctx_r1.inline, ctx_r1.disabled))(\"@overlayAnimation\", i0.ɵɵpureFunction1(16, _c10, i0.ɵɵpureFunction2(13, _c9, ctx_r1.showTransitionOptions, ctx_r1.hideTransitionOptions)))(\"@.disabled\", ctx_r1.inline === true);\n i0.ɵɵattribute(\"data-pc-section\", \"panel\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"content\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"selector\");\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"data-pc-section\", \"color\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"colorHandle\");\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"data-pc-section\", \"hue\");\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"data-pc-section\", \"hueHandle\");\n} }\nconst COLORPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPicker),\n multi: true\n};\n/**\n * ColorPicker groups a collection of contents in tabs.\n * @group Components\n */\nclass ColorPicker extends BaseComponent {\n overlayService;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Whether to display as an overlay or not.\n * @group Props\n */\n inline;\n /**\n * Format to use in value binding.\n * @group Props\n */\n format = 'hex';\n /**\n * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n appendTo;\n /**\n * When present, it specifies that the component should be disabled.\n * @group Props\n */\n disabled;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex;\n /**\n * Identifier of the focus input to match a label defined for the dropdown.\n * @group Props\n */\n inputId;\n /**\n * Whether to automatically manage layering.\n * @group Props\n */\n autoZIndex = true;\n /**\n * Base zIndex value to use in layering.\n * @group Props\n */\n baseZIndex = 0;\n /**\n * Transition options of the show animation.\n * @group Props\n */\n showTransitionOptions = '.12s cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation.\n * @group Props\n */\n hideTransitionOptions = '.1s linear';\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Callback to invoke on value change.\n * @param {ColorPickerChangeEvent} event - Custom value change event.\n * @group Emits\n */\n onChange = new EventEmitter();\n /**\n * Callback to invoke on panel is shown.\n * @group Emits\n */\n onShow = new EventEmitter();\n /**\n * Callback to invoke on panel is hidden.\n * @group Emits\n */\n onHide = new EventEmitter();\n containerViewChild;\n inputViewChild;\n value = { h: 0, s: 100, b: 100 };\n inputBgColor;\n shown;\n overlayVisible;\n defaultColor = 'ff0000';\n onModelChange = () => { };\n onModelTouched = () => { };\n documentClickListener;\n documentResizeListener;\n documentMousemoveListener;\n documentMouseupListener;\n documentHueMoveListener;\n scrollHandler;\n selfClick;\n colorDragging;\n hueDragging;\n overlay;\n colorSelectorViewChild;\n colorHandleViewChild;\n hueViewChild;\n hueHandleViewChild;\n _componentStyle = inject(ColorPickerStyle);\n constructor(overlayService) {\n super();\n this.overlayService = overlayService;\n }\n set colorSelector(element) {\n this.colorSelectorViewChild = element;\n }\n set colorHandle(element) {\n this.colorHandleViewChild = element;\n }\n set hue(element) {\n this.hueViewChild = element;\n }\n set hueHandle(element) {\n this.hueHandleViewChild = element;\n }\n get ariaLabel() {\n return this.config?.getTranslation(TranslationKeys.ARIA)[TranslationKeys.SELECT_COLOR];\n }\n onHueMousedown(event) {\n if (this.disabled) {\n return;\n }\n this.bindDocumentMousemoveListener();\n this.bindDocumentMouseupListener();\n this.hueDragging = true;\n this.pickHue(event);\n }\n onHueDragStart(event) {\n if (this.disabled) {\n return;\n }\n this.hueDragging = true;\n this.pickHue(event, event.changedTouches[0]);\n }\n onColorDragStart(event) {\n if (this.disabled) {\n return;\n }\n this.colorDragging = true;\n this.pickColor(event, event.changedTouches[0]);\n }\n pickHue(event, position) {\n let pageY = position ? position.pageY : event.pageY;\n let top = this.hueViewChild?.nativeElement.getBoundingClientRect().top + (this.document.defaultView.pageYOffset || this.document.documentElement.scrollTop || this.document.body.scrollTop || 0);\n this.value = this.validateHSB({\n h: Math.floor((360 * (150 - Math.max(0, Math.min(150, pageY - top)))) / 150),\n s: this.value.s,\n b: this.value.b\n });\n this.updateColorSelector();\n this.updateUI();\n this.updateModel();\n this.onChange.emit({ originalEvent: event, value: this.getValueToUpdate() });\n }\n onColorMousedown(event) {\n if (this.disabled) {\n return;\n }\n this.bindDocumentMousemoveListener();\n this.bindDocumentMouseupListener();\n this.colorDragging = true;\n this.pickColor(event);\n }\n onDrag(event) {\n if (this.colorDragging) {\n this.pickColor(event, event.changedTouches[0]);\n event.preventDefault();\n }\n if (this.hueDragging) {\n this.pickHue(event, event.changedTouches[0]);\n event.preventDefault();\n }\n }\n onDragEnd() {\n this.colorDragging = false;\n this.hueDragging = false;\n this.unbindDocumentMousemoveListener();\n this.unbindDocumentMouseupListener();\n }\n pickColor(event, position) {\n let pageX = position ? position.pageX : event.pageX;\n let pageY = position ? position.pageY : event.pageY;\n let rect = this.colorSelectorViewChild?.nativeElement.getBoundingClientRect();\n let top = rect.top + (this.document.defaultView.pageYOffset || this.document.documentElement.scrollTop || this.document.body.scrollTop || 0);\n let left = rect.left + this.document.body.scrollLeft;\n let saturation = Math.floor((100 * Math.max(0, Math.min(150, pageX - left))) / 150);\n let brightness = Math.floor((100 * (150 - Math.max(0, Math.min(150, pageY - top)))) / 150);\n this.value = this.validateHSB({\n h: this.value.h,\n s: saturation,\n b: brightness\n });\n this.updateUI();\n this.updateModel();\n this.onChange.emit({ originalEvent: event, value: this.getValueToUpdate() });\n }\n getValueToUpdate() {\n let val;\n switch (this.format) {\n case 'hex':\n val = '#' + this.HSBtoHEX(this.value);\n break;\n case 'rgb':\n val = this.HSBtoRGB(this.value);\n break;\n case 'hsb':\n val = this.value;\n break;\n }\n return val;\n }\n updateModel() {\n this.onModelChange(this.getValueToUpdate());\n this.cd.markForCheck();\n }\n writeValue(value) {\n if (value) {\n switch (this.format) {\n case 'hex':\n this.value = this.HEXtoHSB(value);\n break;\n case 'rgb':\n this.value = this.RGBtoHSB(value);\n break;\n case 'hsb':\n this.value = value;\n break;\n }\n }\n else {\n this.value = this.HEXtoHSB(this.defaultColor);\n }\n this.updateColorSelector();\n this.updateUI();\n this.cd.markForCheck();\n }\n updateColorSelector() {\n if (this.colorSelectorViewChild) {\n const hsb = {};\n hsb.s = 100;\n hsb.b = 100;\n hsb.h = this.value.h;\n this.colorSelectorViewChild.nativeElement.style.backgroundColor = '#' + this.HSBtoHEX(hsb);\n }\n }\n updateUI() {\n if (this.colorHandleViewChild && this.hueHandleViewChild?.nativeElement) {\n this.colorHandleViewChild.nativeElement.style.left = Math.floor((150 * this.value.s) / 100) + 'px';\n this.colorHandleViewChild.nativeElement.style.top = Math.floor((150 * (100 - this.value.b)) / 100) + 'px';\n this.hueHandleViewChild.nativeElement.style.top = Math.floor(150 - (150 * this.value.h) / 360) + 'px';\n }\n this.inputBgColor = '#' + this.HSBtoHEX(this.value);\n }\n onInputFocus() {\n this.onModelTouched();\n }\n show() {\n this.overlayVisible = true;\n this.cd.markForCheck();\n }\n onOverlayAnimationStart(event) {\n switch (event.toState) {\n case 'visible':\n if (!this.inline) {\n this.overlay = event.element;\n this.appendOverlay();\n if (this.autoZIndex) {\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n }\n this.alignOverlay();\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n this.updateColorSelector();\n this.updateUI();\n }\n break;\n case 'void':\n this.onOverlayHide();\n break;\n }\n }\n onOverlayAnimationEnd(event) {\n switch (event.toState) {\n case 'visible':\n if (!this.inline) {\n this.onShow.emit({});\n }\n break;\n case 'void':\n if (this.autoZIndex) {\n ZIndexUtils.clear(event.element);\n }\n this.onHide.emit({});\n break;\n }\n }\n appendOverlay() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n this.renderer.appendChild(this.document.body, this.overlay);\n else\n appendChild(this.appendTo, this.overlay);\n }\n }\n restoreOverlayAppend() {\n if (this.overlay && this.appendTo) {\n this.renderer.appendChild(this.el.nativeElement, this.overlay);\n }\n }\n alignOverlay() {\n if (this.appendTo)\n absolutePosition(this.overlay, this.inputViewChild?.nativeElement);\n else\n relativePosition(this.overlay, this.inputViewChild?.nativeElement);\n }\n hide() {\n this.overlayVisible = false;\n this.cd.markForCheck();\n }\n onInputClick() {\n this.selfClick = true;\n this.togglePanel();\n }\n togglePanel() {\n if (!this.overlayVisible)\n this.show();\n else\n this.hide();\n }\n onInputKeydown(event) {\n switch (event.code) {\n case 'Space':\n this.togglePanel();\n event.preventDefault();\n break;\n case 'Escape':\n case 'Tab':\n this.hide();\n break;\n default:\n //NoOp\n break;\n }\n }\n onOverlayClick(event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\n this.selfClick = true;\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n const documentTarget = this.el ? this.el.nativeElement.ownerDocument : 'document';\n this.documentClickListener = this.renderer.listen(documentTarget, 'click', () => {\n if (!this.selfClick) {\n this.overlayVisible = false;\n this.unbindDocumentClickListener();\n }\n this.selfClick = false;\n this.cd.markForCheck();\n });\n }\n }\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n bindDocumentMousemoveListener() {\n if (!this.documentMousemoveListener) {\n const documentTarget = this.el ? this.el.nativeElement.ownerDocument : 'document';\n this.documentMousemoveListener = this.renderer.listen(documentTarget, 'mousemove', (event) => {\n if (this.colorDragging) {\n this.pickColor(event);\n }\n if (this.hueDragging) {\n this.pickHue(event);\n }\n });\n }\n }\n unbindDocumentMousemoveListener() {\n if (this.documentMousemoveListener) {\n this.documentMousemoveListener();\n this.documentMousemoveListener = null;\n }\n }\n bindDocumentMouseupListener() {\n if (!this.documentMouseupListener) {\n const documentTarget = this.el ? this.el.nativeElement.ownerDocument : 'document';\n this.documentMouseupListener = this.renderer.listen(documentTarget, 'mouseup', () => {\n this.colorDragging = false;\n this.hueDragging = false;\n this.unbindDocumentMousemoveListener();\n this.unbindDocumentMouseupListener();\n });\n }\n }\n unbindDocumentMouseupListener() {\n if (this.documentMouseupListener) {\n this.documentMouseupListener();\n this.documentMouseupListener = null;\n }\n }\n bindDocumentResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n this.documentResizeListener = this.renderer.listen(this.document.defaultView, 'resize', this.onWindowResize.bind(this));\n }\n }\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n onWindowResize() {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n }\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.containerViewChild?.nativeElement, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n validateHSB(hsb) {\n return {\n h: Math.min(360, Math.max(0, hsb.h)),\n s: Math.min(100, Math.max(0, hsb.s)),\n b: Math.min(100, Math.max(0, hsb.b))\n };\n }\n validateRGB(rgb) {\n return {\n r: Math.min(255, Math.max(0, rgb.r)),\n g: Math.min(255, Math.max(0, rgb.g)),\n b: Math.min(255, Math.max(0, rgb.b))\n };\n }\n validateHEX(hex) {\n var len = 6 - hex.length;\n if (len > 0) {\n var o = [];\n for (var i = 0; i < len; i++) {\n o.push('0');\n }\n o.push(hex);\n hex = o.join('');\n }\n return hex;\n }\n HEXtoRGB(hex) {\n let hexValue = parseInt(hex.indexOf('#') > -1 ? hex.substring(1) : hex, 16);\n return { r: hexValue >> 16, g: (hexValue & 0x00ff00) >> 8, b: hexValue & 0x0000ff };\n }\n HEXtoHSB(hex) {\n return this.RGBtoHSB(this.HEXtoRGB(hex));\n }\n RGBtoHSB(rgb) {\n var hsb = {\n h: 0,\n s: 0,\n b: 0\n };\n var min = Math.min(rgb.r, rgb.g, rgb.b);\n var max = Math.max(rgb.r, rgb.g, rgb.b);\n var delta = max - min;\n hsb.b = max;\n hsb.s = max != 0 ? (255 * delta) / max : 0;\n if (hsb.s != 0) {\n if (rgb.r == max) {\n hsb.h = (rgb.g - rgb.b) / delta;\n }\n else if (rgb.g == max) {\n hsb.h = 2 + (rgb.b - rgb.r) / delta;\n }\n else {\n hsb.h = 4 + (rgb.r - rgb.g) / delta;\n }\n }\n else {\n hsb.h = -1;\n }\n hsb.h *= 60;\n if (hsb.h < 0) {\n hsb.h += 360;\n }\n hsb.s *= 100 / 255;\n hsb.b *= 100 / 255;\n return hsb;\n }\n HSBtoRGB(hsb) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n let h = hsb.h;\n let s = (hsb.s * 255) / 100;\n let v = (hsb.b * 255) / 100;\n if (s == 0) {\n rgb = {\n r: v,\n g: v,\n b: v\n };\n }\n else {\n let t1 = v;\n let t2 = ((255 - s) * v) / 255;\n let t3 = ((t1 - t2) * (h % 60)) / 60;\n if (h == 360)\n h = 0;\n if (h < 60) {\n rgb.r = t1;\n rgb.b = t2;\n rgb.g = t2 + t3;\n }\n else if (h < 120) {\n rgb.g = t1;\n rgb.b = t2;\n rgb.r = t1 - t3;\n }\n else if (h < 180) {\n rgb.g = t1;\n rgb.r = t2;\n rgb.b = t2 + t3;\n }\n else if (h < 240) {\n rgb.b = t1;\n rgb.r = t2;\n rgb.g = t1 - t3;\n }\n else if (h < 300) {\n rgb.b = t1;\n rgb.g = t2;\n rgb.r = t2 + t3;\n }\n else if (h < 360) {\n rgb.r = t1;\n rgb.g = t2;\n rgb.b = t1 - t3;\n }\n else {\n rgb.r = 0;\n rgb.g = 0;\n rgb.b = 0;\n }\n }\n return { r: Math.round(rgb.r), g: Math.round(rgb.g), b: Math.round(rgb.b) };\n }\n RGBtoHEX(rgb) {\n var hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];\n for (var key in hex) {\n if (hex[key].length == 1) {\n hex[key] = '0' + hex[key];\n }\n }\n return hex.join('');\n }\n HSBtoHEX(hsb) {\n return this.RGBtoHEX(this.HSBtoRGB(hsb));\n }\n onOverlayHide() {\n this.unbindScrollListener();\n this.unbindDocumentResizeListener();\n this.unbindDocumentClickListener();\n this.overlay = null;\n }\n ngOnDestroy() {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.overlay && this.autoZIndex) {\n ZIndexUtils.clear(this.overlay);\n }\n this.restoreOverlayAppend();\n this.onOverlayHide();\n }\n static ɵfac = function ColorPicker_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ColorPicker)(i0.ɵɵdirectiveInject(i1.OverlayService)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ColorPicker, selectors: [[\"p-colorPicker\"], [\"p-colorpicker\"], [\"p-color-picker\"]], viewQuery: function ColorPicker_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n i0.ɵɵviewQuery(_c2, 5);\n i0.ɵɵviewQuery(_c3, 5);\n i0.ɵɵviewQuery(_c4, 5);\n i0.ɵɵviewQuery(_c5, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.colorSelector = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.colorHandle = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.hue = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.hueHandle = _t.first);\n } }, inputs: { style: \"style\", styleClass: \"styleClass\", inline: [2, \"inline\", \"inline\", booleanAttribute], format: \"format\", appendTo: \"appendTo\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], tabindex: \"tabindex\", inputId: \"inputId\", autoZIndex: [2, \"autoZIndex\", \"autoZIndex\", booleanAttribute], baseZIndex: [2, \"baseZIndex\", \"baseZIndex\", numberAttribute], showTransitionOptions: \"showTransitionOptions\", hideTransitionOptions: \"hideTransitionOptions\", autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute] }, outputs: { onChange: \"onChange\", onShow: \"onShow\", onHide: \"onHide\" }, standalone: true, features: [i0.ɵɵProvidersFeature([COLORPICKER_VALUE_ACCESSOR, ColorPickerStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 4, vars: 11, consts: [[\"container\", \"\"], [\"input\", \"\"], [\"colorSelector\", \"\"], [\"colorHandle\", \"\"], [\"hue\", \"\"], [\"hueHandle\", \"\"], [3, \"ngStyle\", \"ngClass\"], [\"type\", \"text\", \"class\", \"p-colorpicker-preview\", \"readonly\", \"readonly\", 3, \"ngClass\", \"disabled\", \"backgroundColor\", \"pAutoFocus\", \"click\", \"keydown\", \"focus\", 4, \"ngIf\"], [3, \"ngClass\", \"click\", 4, \"ngIf\"], [\"type\", \"text\", \"readonly\", \"readonly\", 1, \"p-colorpicker-preview\", 3, \"click\", \"keydown\", \"focus\", \"ngClass\", \"disabled\", \"pAutoFocus\"], [3, \"click\", \"ngClass\"], [1, \"p-colorpicker-content\"], [1, \"p-colorpicker-color-selector\", 3, \"touchstart\", \"touchmove\", \"touchend\", \"mousedown\"], [1, \"p-colorpicker-color-background\"], [1, \"p-colorpicker-color-handle\"], [1, \"p-colorpicker-hue\", 3, \"mousedown\", \"touchstart\", \"touchmove\", \"touchend\"], [1, \"p-colorpicker-hue-handle\"]], template: function ColorPicker_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 6, 0);\n i0.ɵɵtemplate(2, ColorPicker_input_2_Template, 2, 11, \"input\", 7)(3, ColorPicker_div_3_Template, 11, 18, \"div\", 8);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx.style)(\"ngClass\", i0.ɵɵpureFunction2(8, _c6, !ctx.inline, ctx.colorDragging || ctx.hueDragging));\n i0.ɵɵattribute(\"data-pc-name\", \"colorpicker\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx.inline);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.inline || ctx.overlayVisible);\n } }, dependencies: [CommonModule, i2.NgClass, i2.NgIf, i2.NgStyle, AutoFocusModule, i3.AutoFocus, SharedModule], encapsulation: 2, data: { animation: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}')]), transition(':leave', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))])])] }, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ColorPicker, [{\n type: Component,\n args: [{\n selector: 'p-colorPicker, p-colorpicker, p-color-picker',\n standalone: true,\n imports: [CommonModule, AutoFocusModule, SharedModule],\n template: `\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n `,\n animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}')]), transition(':leave', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))])])],\n providers: [COLORPICKER_VALUE_ACCESSOR, ColorPickerStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{ type: i1.OverlayService }], { style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], inline: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], format: [{\n type: Input\n }], appendTo: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], tabindex: [{\n type: Input\n }], inputId: [{\n type: Input\n }], autoZIndex: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], baseZIndex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], showTransitionOptions: [{\n type: Input\n }], hideTransitionOptions: [{\n type: Input\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], onChange: [{\n type: Output\n }], onShow: [{\n type: Output\n }], onHide: [{\n type: Output\n }], containerViewChild: [{\n type: ViewChild,\n args: ['container']\n }], inputViewChild: [{\n type: ViewChild,\n args: ['input']\n }], colorSelector: [{\n type: ViewChild,\n args: ['colorSelector']\n }], colorHandle: [{\n type: ViewChild,\n args: ['colorHandle']\n }], hue: [{\n type: ViewChild,\n args: ['hue']\n }], hueHandle: [{\n type: ViewChild,\n args: ['hueHandle']\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(ColorPicker, { className: \"ColorPicker\" }); })();\nclass ColorPickerModule {\n static ɵfac = function ColorPickerModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ColorPickerModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ColorPickerModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [ColorPicker, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ColorPickerModule, [{\n type: NgModule,\n args: [{\n imports: [ColorPicker, SharedModule],\n exports: [ColorPicker, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(ColorPickerModule, { imports: [ColorPicker, SharedModule], exports: [ColorPicker, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { COLORPICKER_VALUE_ACCESSOR, ColorPicker, ColorPickerClasses, ColorPickerModule, ColorPickerStyle };\n","
\r\n
\r\n
\r\n \r\n

\r\n {{ isEditMode ? ('areas.edit-area' | translate) : ('areas.config-area' | translate) }}\r\n

\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n {{ 'areas.type-area' | translate }}\r\n \r\n \r\n {{ 'areas.error-select-area-type' | translate }}\r\n \r\n
\r\n \r\n \"circle\"\r\n \"circle\"\r\n \r\n {{ 'areas.circle' | translate }}\r\n \r\n \r\n \r\n \"polygon\"\r\n \"polygon\"\r\n \r\n {{ 'areas.polygon' | translate }}\r\n \r\n \r\n \r\n \"line\"\r\n \"line\"\r\n \r\n {{ 'areas.line' | translate }}\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n {{ 'areas.area-name' | translate }}\r\n \r\n \r\n {{ 'areas.enter-area-name' | translate }}\r\n \r\n \r\n \r\n \r\n {{ 'areas.enter-groups' | translate }}\r\n \r\n \r\n \r\n {{ 'areas.search-group' | translate }}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ item.L }}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {{ 'areas.select-color' | translate }}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, NgZone, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\nimport { Subscription, debounceTime } from 'rxjs';\r\nimport { MultiSelect } from 'primeng/multiselect';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { AreaTypeEnum } from '@commons/enums/area-type.enum';\r\nimport { AREA_COORDS_VALIDATOR } from '@commons/forms/validators/area-coords-validator.function';\r\nimport { Area } from '@commons/models/domain/Area';\r\nimport { AreaDrawerService, State as AreaDrawerState } from '@commons/services/map/drawer/area/area-drawer.service';\r\nimport { WebAccessService } from '@commons/services/web.access/web-access.service';\r\nimport { GetTagsListByFilterResponse } from '@commons/models/remote.response/GetTagsListByFilterResponse';\r\nimport { Tag } from '@commons/models/domain/Tag';\r\nimport { AreaService } from '@commons/services/area/area.service';\r\nimport { NotificationService } from '@commons/services/notification/notification.service';\r\n\r\n@Component({\r\n selector: 'app-area-form',\r\n templateUrl: './area-form.component.html',\r\n styleUrls: ['./area-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AreaFormComponent implements OnInit, OnDestroy, AfterViewInit {\r\n\r\n @ViewChild('multiSelectGroups') public multiSelectGroupsRef: MultiSelect;\r\n\r\n @Output() public back$: EventEmitter = new EventEmitter();\r\n @Output() public onSelectAreaType$: EventEmitter = new EventEmitter();\r\n @Input() public area?: Area;\r\n @Input() public isEditMode: boolean;\r\n\r\n public form: FormGroup;\r\n public color: string = '#4196FF';\r\n public isLoadingTags: boolean = true;\r\n public isSavingForm: boolean;\r\n\r\n public groups: Tag[] = [];\r\n public selectedGroups: Tag[] = [];\r\n\r\n public readonly AreaTypeEnum = AreaTypeEnum;\r\n private readonly MINIMAL_THICKNESS_IN_METERS = 10;\r\n private readonly ComponentSubsc: Subscription = new Subscription();\r\n private readonly defaultAreaColor: string = '#4196FF';\r\n\r\n private multiSelectFilterValue: string;\r\n\r\n constructor(\r\n private areaDrawer: AreaDrawerService,\r\n private fb: FormBuilder,\r\n private zone: NgZone,\r\n private webAccess: WebAccessService,\r\n private changeDetRef: ChangeDetectorRef,\r\n private areaService: AreaService,\r\n private notificationService: NotificationService,\r\n private translate: TranslateService,\r\n ) {\r\n this.createForm();\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.onChangeDrawnArea();\r\n if (this.area) {\r\n this.color = this.area.Cl || this.defaultAreaColor;\r\n this.form.patchValue(this.area);\r\n this.showEditAreaInMap();\r\n }\r\n this.getTags();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n this.onCancel();\r\n }\r\n\r\n private showEditAreaInMap(): void {\r\n this.drawArea();\r\n this.areaDrawer.fitBoundsToVisibleArea();\r\n }\r\n\r\n private onCancel(): void {\r\n this.areaDrawer.setArea(undefined);\r\n this.areaDrawer.remove();\r\n this.areaDrawer.areaDrawerState = AreaDrawerState.Default;\r\n this.areaDrawer.drawingDoneSubject.next();\r\n }\r\n\r\n public addNewGroup(): void {\r\n const ifExistTagWithThatName = !this.multiSelectFilterValue?.length || this.groups.find(item => item.L === this.multiSelectFilterValue);\r\n\r\n if (ifExistTagWithThatName) {\r\n alert(this.translate.instant('areas.error-group-name'));\r\n return;\r\n }\r\n\r\n const newGroup: Tag = {\r\n L: this.multiSelectFilterValue,\r\n Id: null as any,\r\n T: 0,\r\n C: 0,\r\n };\r\n this.addNewGroupToList(newGroup);\r\n this.multiSelectGroupsRef.resetFilter();\r\n this.multiSelectGroupsRef.hide();\r\n }\r\n\r\n private addNewGroupToList(newGroup: Tag): void {\r\n this.groups = [newGroup, ...this.groups];\r\n this.selectedGroups = [...this.selectedGroups, { ...newGroup }];\r\n this.multiSelectGroupsRef.value = [...this.selectedGroups];\r\n this.form.get('Tg')?.setValue([...this.selectedGroups]);\r\n }\r\n\r\n public onFilterTags({ filter }: { filter: string }): void {\r\n this.multiSelectFilterValue = filter;\r\n }\r\n\r\n public isErrorVisible(controlName: string): boolean {\r\n const control = this.form.get(controlName) as FormControl;\r\n return control.invalid && control.touched;\r\n }\r\n\r\n public submit(): void {\r\n this.form.markAllAsTouched();\r\n if (this.form.valid) {\r\n this.saveArea();\r\n }\r\n }\r\n\r\n public onChangeSelectedTagsValue(data: { value: Tag[] }): void {\r\n this.selectedGroups = [...data.value];\r\n this.form.get('Tg')?.setValue([...this.selectedGroups]);\r\n }\r\n\r\n public removeGroup(index: number): void {\r\n const selectedGroups = [...this.selectedGroups];\r\n selectedGroups.splice(index, 1);\r\n this.selectedGroups = [...selectedGroups];\r\n this.multiSelectGroupsRef.value = [...this.selectedGroups];\r\n this.form.get('Tg')?.setValue([...this.selectedGroups]);\r\n }\r\n\r\n public setAreaType(type: AreaTypeEnum): void {\r\n this.form.patchValue({ \r\n Tp: type,\r\n Coords: [],\r\n });\r\n this.areaDrawer.areaDrawerState = AreaDrawerState.Default;\r\n this.drawArea();\r\n this.onSelectAreaType$.emit(type);\r\n }\r\n\r\n private saveArea(): void {\r\n this.isSavingForm = true;\r\n const sub = this.areaService.saveAreaDetails$({ \r\n ...this.form.value,\r\n Cl: this.color,\r\n })\r\n .subscribe({\r\n next: (response) => {\r\n this.onSuccessSaveArea(response);\r\n },\r\n error: () => {\r\n this.onErrorSaveArea();\r\n }\r\n });\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private onSuccessSaveArea(area: Area): void {\r\n this.notificationService.showSuccess(this.translate.instant('areas.save-area-message'));\r\n this.back$.emit(area);\r\n }\r\n\r\n private onErrorSaveArea(): void {\r\n this.notificationService.showError(this.translate.instant('areas.save-area-error'));\r\n this.isSavingForm = false;\r\n }\r\n\r\n private createForm(): void {\r\n this.form = this.fb.group({\r\n Id: [null],\r\n Nm: [null, Validators.required],\r\n Th: [this.MINIMAL_THICKNESS_IN_METERS, Validators.required],\r\n Tp: [null, Validators.required],\r\n Coords: [[], AREA_COORDS_VALIDATOR],\r\n Tg: [[]],\r\n Cl: [null],\r\n });\r\n }\r\n\r\n public onChangeDrawnArea(): void {\r\n this.zone.run(() => {\r\n const sub = this.areaDrawer.drawnArea$.pipe(debounceTime(200)).subscribe(area => {\r\n this.area = area;\r\n this.form.patchValue(this.area, { emitEvent: false });\r\n this.form.markAsDirty();\r\n this.changeDetRef.markForCheck();\r\n });\r\n this.ComponentSubsc.add(sub);\r\n });\r\n }\r\n\r\n private drawArea(value: Area = this.form.value): void {\r\n this.areaDrawer.remove();\r\n this.areaDrawer.setArea(value as Area, true);\r\n this.areaDrawer.draw();\r\n }\r\n\r\n private getTags(): void {\r\n this.isLoadingTags = true;\r\n const body = {\r\n Phrase: '',\r\n TagType: 2,\r\n };\r\n const sub = this.webAccess.GetTagsListByFilter(body).subscribe(\r\n (data) => {\r\n this.setTags(data);\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private setTags(data: GetTagsListByFilterResponse): void {\r\n this.zone.runOutsideAngular(() => {\r\n this.groups = [...data.Result].map((item, index) => ({ ...item, LastUsed: true, Index: index }));\r\n this.groups.sort((x, y) => x.L.localeCompare(y.L));\r\n this.selectGroupsOnInit();\r\n this.isLoadingTags = false;\r\n this.changeDetRef.markForCheck();\r\n this.changeDetRef.detectChanges();\r\n this.zone.run(() => {});\r\n });\r\n }\r\n\r\n private selectGroupsOnInit(): void {\r\n if (this.isEditMode && this.area?.Tg.length) {\r\n const selectedGroupsName: string[] = [...this.area.Tg].map(item => item.L);\r\n const groupsToSelected = this.groups.filter(item => selectedGroupsName.includes(item.L));\r\n this.selectedGroups = [...groupsToSelected];\r\n this.multiSelectGroupsRef.value = [...this.selectedGroups];\r\n this.form.get('Tg')?.setValue([...this.selectedGroups]);\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 {{'areas.hintHowToDrawArea' | translate}}\r\n \r\n
\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\n\r\nimport { Area } from '@commons/models/domain/Area';\r\nimport { AreaPanelViewMode } from '@src/app/enum/area.enum';\r\nimport { AreasListComponent } from './areas-list/areas-list.component';\r\nimport { AreaTypeEnum } from '@commons/enums/area-type.enum';\r\n\r\n@Component({\r\n selector: 'app-areas',\r\n templateUrl: './areas.component.html',\r\n styleUrls: ['./areas.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AreasComponent implements OnInit {\r\n\r\n @ViewChild('areaList') private areaListComp: AreasListComponent;\r\n\r\n @Output() public close$: EventEmitter = new EventEmitter();\r\n\r\n @Input('isVisible') public set visible(value: boolean) {\r\n this._isVisible = value;\r\n };\r\n\r\n public readonly AreaPanelViewMode = AreaPanelViewMode;\r\n\r\n public activeViewMode: AreaPanelViewMode;\r\n public editArea: Area | undefined;\r\n public _isVisible: boolean;\r\n public selectedAreaTypeInForm: AreaTypeEnum;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.activeViewMode = AreaPanelViewMode.List;\r\n }\r\n\r\n public onClickBackInForm(area: Area | void): void {\r\n this.editArea = undefined;\r\n this.activeViewMode = AreaPanelViewMode.List;\r\n\r\n if (area) {\r\n setTimeout(() => {\r\n this.areaListComp.showArea({ area, groupId: null as any, isUntaggedArea: true });\r\n }, 0);\r\n }\r\n }\r\n\r\n public onClickAddArea(area?: Area | void): void {\r\n area && (this.editArea = { ...area });\r\n this.activeViewMode = AreaPanelViewMode.Form;\r\n }\r\n\r\n public onSelectAreaType(type: AreaTypeEnum): void {\r\n this.selectedAreaTypeInForm = type;\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDigitalDisplay]'\r\n})\r\nexport class DigitalDisplayDirective implements AfterViewInit {\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit() {\r\n const value = this.el.nativeElement.innerText;\r\n this.el.nativeElement.innerHTML = this.convertToDigitalDisplay(value);\r\n this.renderer.setStyle(this.el.nativeElement, 'display', 'flex');\r\n this.renderer.setStyle(this.el.nativeElement, 'gap', '5px');\r\n }\r\n\r\n private convertToDigitalDisplay(value: string): string {\r\n return value.split('').map(char => {\r\n if (char === ',') {\r\n return `,`;\r\n }\r\n return `${char}`;\r\n }).join('');\r\n }\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-ad-fuel-saving',\r\n templateUrl: './ad-fuel-saving.component.html',\r\n styleUrls: ['./ad-fuel-saving.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AdFuelSavingComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \"fuel-ad-img\"\r\n\r\n Zyskaj nawet\r\n 23,500\r\n zł oszczędności na paliwie z pakietem MyCar Business.\r\n
\r\n \r\n
\r\n \r\n
\r\n Dowiedz się więcej\r\n
\r\n
\r\n","\r\n
\r\n \r\n \"new-orders-img\"\r\n Setki nowych zleceń transportowych bezpośrednio, w aplikacji z pakietem MyCar Business.\r\n \r\n\r\n \r\n \"filesDDD-img\"\r\n \r\n \r\n Maraton zgrywania plików .DDD?\r\n \r\n Rób to jednym kliknięciem z pakietem MyCar Business.\r\n \r\n \r\n\r\n \r\n \"servis-ad\"\r\n Zatrzymaj się w porę na kolejny serwis! O żadnym nie zapomnisz z pakietem MyCar Business.\r\n \r\n\r\n \r\n \"tech5G-ad\"\r\n Technologia 5g już w naszych urządzeniach. Zyskaj więcej możliwości z nową technologią!!\r\n \r\n\r\n \r\n \r\n \"img\"\r\n \r\n \r\n\r\n \r\n \r\n \"img\"\r\n \r\n \r\n\r\n \r\n \r\n \"img\"\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n Dowiedz się więcej\r\n
\r\n\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { AdType } from '@src/app/enum/ad-type.enum';\r\n\r\n@Component({\r\n selector: 'app-ad-typical-ui',\r\n templateUrl: './ad-typical-ui.component.html',\r\n styleUrls: ['./ad-typical-ui.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AdTypicalUiComponent {\r\n\r\n @Input() public type: AdType;\r\n\r\n public readonly AD_TYPE = AdType;\r\n\r\n constructor() { }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { map, Observable, of } from 'rxjs';\r\n\r\nimport { INewsRss } from '@src/app/interfaces/news-rss.inteface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NewsRssService {\r\n\r\n private rssUrl = '/rss-feed'; // proxy\r\n private posts: INewsRss[] = [];\r\n private itemsPerPage = 10;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n public fetchPosts(): Observable {\r\n if (this.posts.length) {\r\n return of(this.posts);\r\n }\r\n return this.http.get(this.rssUrl, { responseType: 'text' }).pipe(\r\n map((data) => {\r\n this.posts = this.parseXML(data);\r\n return this.posts;\r\n })\r\n );\r\n }\r\n\r\n private parseXML(data: string): INewsRss[] {\r\n const parser = new DOMParser();\r\n const xml = parser.parseFromString(data, 'text/xml');\r\n const items = Array.from(xml.querySelectorAll('item'));\r\n\r\n return items.map((item, index) => ({\r\n title: item.querySelector('title')?.textContent || '',\r\n description: this.stripHtml(item.querySelector('description')?.textContent || ''),\r\n link: item.querySelector('link')?.textContent || '',\r\n image: this.extractImage(item.querySelector('description')?.textContent || ''),\r\n pubDate: new Date(item.querySelector('pubDate')?.textContent || ''),\r\n id: index + 1,\r\n }));\r\n }\r\n\r\n private stripHtml(html: string): string {\r\n const div = document.createElement('div');\r\n div.innerHTML = html;\r\n return div.textContent || div.innerText || '';\r\n }\r\n\r\n private extractImage(html: string): string {\r\n const imgRegex = /]+src=\"([^\">]+)\"/;\r\n const match = html.match(imgRegex);\r\n return match ? match[1] : '';\r\n }\r\n\r\n public getPostsByPage(page: number): Observable {\r\n const start = (page - 1) * this.itemsPerPage;\r\n const paginatedPosts = this.posts.slice(start, start + this.itemsPerPage);\r\n return of(paginatedPosts);\r\n }\r\n\r\n public getTotalPages(): number {\r\n return Math.ceil(this.posts.length / this.itemsPerPage);\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n
\r\n
\r\n

\r\n {{ 'news' | translate | titlecase }}\r\n

\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \"image\"\r\n \r\n {{item.title}}\r\n \r\n

\r\n {{item.description}}\r\n

\r\n
\r\n \r\n \r\n {{'showMore' | translate}}\r\n \r\n \r\n \r\n {{ item.pubDate | date: 'mediumDate' : '' : langauge }}\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n {{'pageTitle'|translate}} {{ currentPage }} {{'pageOf'|translate}} {{ totalPages }}\r\n \r\n
\r\n\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { NewsRssService } from './news-rss.service';\r\nimport { INewsRss } from '@src/app/interfaces/news-rss.inteface';\r\nimport { LanguageService } from '@shared/services/language.service';\r\n\r\n@Component({\r\n selector: 'app-news',\r\n templateUrl: './news.component.html',\r\n styleUrls: ['./news.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NewsComponent implements OnInit {\r\n\r\n @Output() public close$: EventEmitter = new EventEmitter();\r\n\r\n @Input('isVisible') public set visible(value: boolean) {\r\n this._isVisible = value;\r\n };\r\n\r\n public _isVisible: boolean;\r\n public posts: INewsRss[] = [];\r\n public currentPage: number = 1;\r\n public totalPages: number = 0;\r\n\r\n public readonly langauge: string = this.languageService.current;\r\n\r\n constructor(\r\n private newsRssService: NewsRssService,\r\n private changeDetRef: ChangeDetectorRef,\r\n private languageService: LanguageService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.newsRssService.fetchPosts().subscribe(() => {\r\n this.totalPages = this.newsRssService.getTotalPages();\r\n this.loadPage(this.currentPage);\r\n });\r\n }\r\n\r\n public onClickClose(): void {\r\n this.close$.emit();\r\n }\r\n\r\n public trackByPosts(index: number, item: INewsRss): number {\r\n return item.id;\r\n }\r\n\r\n public loadPage(page: number): void {\r\n if (page < 1 || page > this.totalPages) return;\r\n\r\n this.currentPage = page;\r\n this.newsRssService.getPostsByPage(this.currentPage).subscribe((data) => {\r\n this.posts = data;\r\n this.changeDetRef.markForCheck();\r\n });\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDropdownHover]'\r\n})\r\nexport class DropdownHoverDirective {\r\n\r\n public dropdownVisible: boolean;\r\n private hideTimeout: any;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n clearTimeout(this.hideTimeout);\r\n this.showDropdown();\r\n }\r\n\r\n @HostListener('mouseleave', ['$event']) onMouseLeave(event: MouseEvent) {\r\n const relatedTarget = event.relatedTarget as HTMLElement;\r\n\r\n this.hideTimeout = setTimeout(() => {\r\n if (!this.el.nativeElement.contains(relatedTarget)) {\r\n this.hideDropdown();\r\n }\r\n }, 80);\r\n }\r\n\r\n private showDropdown(): void {\r\n const dropdown = this.findDropdown();\r\n if (dropdown && !this.dropdownVisible) {\r\n this.renderer.setStyle(dropdown, 'display', 'flex');\r\n this.dropdownVisible = true;\r\n }\r\n }\r\n\r\n private hideDropdown(): void {\r\n const dropdown = this.findDropdown();\r\n if (dropdown && this.dropdownVisible) {\r\n this.renderer.setStyle(dropdown, 'display', 'none');\r\n this.dropdownVisible = false;\r\n }\r\n }\r\n\r\n private findDropdown(): HTMLElement | null {\r\n return this.el.nativeElement.querySelector('[data-dropdown]');\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { DirectivesModule } from '@commons/directives/directives.module';\r\nimport { IDropdownMenuOptions } from '@src/app/interfaces/dropdown-menu.interface';\r\n\r\n@Component({\r\n selector: 'app-dropdown-menu',\r\n templateUrl: './dropdown-menu.component.html',\r\n styleUrls: ['./dropdown-menu.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CommonModule, DirectivesModule]\r\n})\r\nexport class DropdownMenuComponent implements OnInit {\r\n\r\n @Input('options') public set setOptions(data: IDropdownMenuOptions[]) {\r\n this.options = [\r\n ...data.map(item => ({\r\n ...item,\r\n img: item.img && this.sanitizer.bypassSecurityTrustHtml(item.img as string) }\r\n ))\r\n ];\r\n }\r\n\r\n public options: IDropdownMenuOptions[] = [];\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n\r\n
\r\n","import * as i1 from '@angular/common';\nimport { isPlatformBrowser, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, signal, inject, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, ViewChildren, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport * as i2 from '@angular/router';\nimport { Router, ActivatedRoute, RouterModule } from '@angular/router';\nimport { resolve, getAttribute, focus, findSingle, getWidth, getOffset } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport * as i4 from 'primeng/badge';\nimport { BadgeModule } from 'primeng/badge';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ChevronLeftIcon, ChevronRightIcon } from 'primeng/icons';\nimport { Ripple } from 'primeng/ripple';\nimport * as i3 from 'primeng/tooltip';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n\n/* For PrimeNG */\n.p-tabmenu.p-component {\n display: flex;\n flex-direction: column;\n}\n\n.p-tabmenu-nav-container {\n display: flex;\n position: relative;\n}\n\n.p-tabmenu.p-tabmenu-scrollable .p-tabmenu-nav-container {\n overflow: hidden;\n}\n\n.p-tabmenu-nav-content {\n flex-grow: 1;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-behavior: smooth;\n scrollbar-width: none;\n overscroll-behavior: contain auto;\n}\n\n.p-tabmenu-nav {\n padding: 0;\n margin: 0;\n list-style-type: none;\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n background: ${dt('tabs.tablist.background')};\n border-style: solid;\n border-color: ${dt('tabs.tablist.border.color')};\n border-width: ${dt('tabs.tablist.border.width')};\n}\n\n.p-tabmenuitem {\n display: flex;\n flex-shrink: 0;\n cursor: pointer;\n position: relative;\n border-style: solid;\n background: ${dt('tabs.tab.background')};\n border-width: ${dt('tabs.tab.border.width')};\n border-color: ${dt('tabs.tab.border.color')};\n padding: ${dt('tabs.tab.padding')};\n transition: background ${dt('tabs.transition.duration')}, border-color ${dt('tabs.transition.duration')}, color ${dt('tabs.transition.duration')}, outline-color ${dt('tabs.transition.duration')}, box-shadow ${dt('tabs.transition.duration')};\n margin: ${dt('tabs.tab.margin')};\n outline-color: transparent;\n}\n\n.p-tabmenuitem > .p-menuitem-link {\n white-space: nowrap;\n user-select: none;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n gap: ${dt('tabs.tab.gap')};\n color: ${dt('tabs.tab.color')};\n font-weight: ${dt('tabs.tab.font.weight')};\n}\n\n.p-tabmenuitem.p-tabmenuitem-active .p-menuitem-link {\n color: ${dt('tabs.tab.active.color')};\n}\n\n.p-tabmenuitem:not(.p-disabled):focus-visible {\n z-index: 1;\n box-shadow: ${dt('tabs.tab.focus.ring.shadow')};\n outline: ${dt('tabs.tab.focus.ring.width')} ${dt('tabs.tab.focus.ring.style')} ${dt('tabs.tab.focus.ring.color')};\n outline-offset: ${dt('tabs.tab.focus.ring.offset')};\n}\n\n.p-tabmenuitem:not(.p-tabmenuitem-active):not(.p-disabled):hover {\n background: ${dt('tabs.tab.hover.background')};\n border-color: ${dt('tabs.tab.hover.border.color')};\n color: ${dt('tabs.tab.hover.color')};\n}\n\n.p-tabmenuitem-active {\n background: ${dt('tabs.tab.active.background')};\n border-color: ${dt('tabs.tab.active.border.color')};\n color: ${dt('tabs.tab.active.color')};\n}\n\n.p-tabmenuitem-active-bar {\n z-index: 1;\n display: block;\n position: absolute;\n bottom: ${dt('tabs.active.bar.bottom')};\n height: ${dt('tabs.active.bar.height')};\n background: ${dt('tabs.active.bar.background')};\n transition: 250ms cubic-bezier(0.35, 0, 0.25, 1);\n}\n\n.p-tabmenu-nav-button {\n all: unset;\n position: absolute !important;\n flex-shrink: 0;\n top: 0;\n z-index: 2;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: ${dt('tabs.nav.button.background')};\n color: ${dt('tabs.nav.button.color')};\n width: ${dt('tabs.nav.button.width')};\n transition: color ${dt('tabs.transition.duration')}, outline-color ${dt('tabs.transition.duration')}, box-shadow ${dt('tabs.transition.duration')};\n box-shadow: ${dt('tabs.nav.button.shadow')};\n outline-color: transparent;\n cursor: pointer;\n}\n\n.p-tabmenu-nav-button:focus-visible {\n z-index: 1;\n box-shadow: ${dt('tabs.nav.button.focus.ring.shadow')};\n outline: ${dt('tabs.nav.button.focus.ring.width')} ${dt('tabs.nav.button.focus.ring.style')} ${dt('tabs.nav.button.focus.ring.color')};\n outline-offset: ${dt('tabs.nav.button.focus.ring.offset')};\n}\n\n.p-tabmenu-nav-button:hover {\n color: ${dt('tabs.nav.button.hover.color')};\n}\n\n.p-tabmenu-nav-prev-button {\n left: 0;\n}\n\n.p-tabmenu-nav-next-button {\n right: 0;\n}`;\nclass TabMenuStyle extends BaseStyle {\n name = 'tabs';\n theme = theme;\n static ɵfac = /*@__PURE__*/ (() => { let ɵTabMenuStyle_BaseFactory; return function TabMenuStyle_Factory(__ngFactoryType__) { return (ɵTabMenuStyle_BaseFactory || (ɵTabMenuStyle_BaseFactory = i0.ɵɵgetInheritedFactory(TabMenuStyle)))(__ngFactoryType__ || TabMenuStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TabMenuStyle, factory: TabMenuStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TabMenuStyle, [{\n type: Injectable\n }], null, null); })();\n/**\n *\n * TabMenu is a navigation component that displays items as tab headers. Example below uses nested routes with TabMenu.\n *\n * [Live Demo](https://www.primeng.org/tabmenu/)\n *\n * @module tabmenustyle\n *\n */\nvar TabMenuClasses;\n(function (TabMenuClasses) {\n /**\n * Class name of the root element\n */\n TabMenuClasses[\"root\"] = \"p-tabmenu\";\n /**\n * Class name of the tablist element\n */\n TabMenuClasses[\"tablist\"] = \"p-tabmenu-tablist\";\n /**\n * Class name of the item element\n */\n TabMenuClasses[\"item\"] = \"p-tabmenu-item\";\n /**\n * Class name of the item link element\n */\n TabMenuClasses[\"itemLink\"] = \"p-tabmenu-item-link\";\n /**\n * Class name of the item icon element\n */\n TabMenuClasses[\"itemIcon\"] = \"p-tabmenu-item-icon\";\n /**\n * Class name of the item label element\n */\n TabMenuClasses[\"itemLabel\"] = \"p-tabmenu-item-label\";\n /**\n * Class name of the inkbar element\n */\n TabMenuClasses[\"inkbar\"] = \"p-tabmenu-ink-bar\";\n})(TabMenuClasses || (TabMenuClasses = {}));\n\nconst _c0 = [\"item\"];\nconst _c1 = [\"previousicon\"];\nconst _c2 = [\"nexticon\"];\nconst _c3 = [\"content\"];\nconst _c4 = [\"navbar\"];\nconst _c5 = [\"inkbar\"];\nconst _c6 = [\"prevBtn\"];\nconst _c7 = [\"nextBtn\"];\nconst _c8 = [\"tabLink\"];\nconst _c9 = [\"tab\"];\nconst _c10 = a0 => ({ \"p-tabmenu p-component\": true, \"p-tabmenu-scrollable\": a0 });\nconst _c11 = (a0, a1, a2) => ({ \"p-tabmenuitem\": true, \"p-disabled\": a0, \"p-tabmenuitem-active\": a1, \"p-hidden\": a2 });\nconst _c12 = (a0, a1) => ({ $implicit: a0, index: a1 });\nconst _c13 = () => ({ exact: false });\nfunction TabMenu_button_2_ChevronLeftIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronLeftIcon\");\n} if (rf & 2) {\n i0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction TabMenu_button_2_3_ng_template_0_Template(rf, ctx) { }\nfunction TabMenu_button_2_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, TabMenu_button_2_3_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction TabMenu_button_2_Template(rf, ctx) { if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 17, 3);\n i0.ɵɵlistener(\"click\", function TabMenu_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.navBackward()); });\n i0.ɵɵtemplate(2, TabMenu_button_2_ChevronLeftIcon_2_Template, 1, 1, \"ChevronLeftIcon\", 18)(3, TabMenu_button_2_3_Template, 1, 0, null, 19);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.previousIconTemplate && !ctx_r2._previousIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.previousIconTemplate || ctx_r2._previousIconTemplate);\n} }\nfunction TabMenu_li_7_a_2_span_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 28);\n} if (rf & 2) {\n const item_r5 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵproperty(\"ngClass\", item_r5.icon)(\"ngStyle\", item_r5.iconStyle);\n} }\nfunction TabMenu_li_7_a_2_span_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 29);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r5 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r2.getItemProp(item_r5, \"label\"));\n} }\nfunction TabMenu_li_7_a_2_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 30);\n} if (rf & 2) {\n const item_r5 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"innerHTML\", ctx_r2.getItemProp(item_r5, \"label\"), i0.ɵɵsanitizeHtml);\n} }\nfunction TabMenu_li_7_a_2_p_badge_7_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"p-badge\", 31);\n} if (rf & 2) {\n const item_r5 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"styleClass\", item_r5.badgeStyleClass)(\"value\", ctx_r2.getItemProp(item_r5, \"badge\"));\n} }\nfunction TabMenu_li_7_a_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"a\", 24, 5);\n i0.ɵɵelementContainerStart(2);\n i0.ɵɵtemplate(3, TabMenu_li_7_a_2_span_3_Template, 1, 2, \"span\", 25)(4, TabMenu_li_7_a_2_span_4_Template, 2, 1, \"span\", 26)(5, TabMenu_li_7_a_2_ng_template_5_Template, 1, 1, \"ng-template\", null, 6, i0.ɵɵtemplateRefExtractor)(7, TabMenu_li_7_a_2_p_badge_7_Template, 1, 2, \"p-badge\", 27);\n i0.ɵɵelementContainerEnd();\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const htmlLabel_r8 = i0.ɵɵreference(6);\n const item_r5 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"target\", ctx_r2.getItemProp(item_r5, \"target\"))(\"tabindex\", -1);\n i0.ɵɵattribute(\"href\", ctx_r2.getItemProp(item_r5, \"url\"), i0.ɵɵsanitizeUrl)(\"id\", ctx_r2.getItemProp(item_r5, \"id\"))(\"aria-disabled\", ctx_r2.disabled(item_r5));\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", item_r5.icon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", item_r5.escape !== false)(\"ngIfElse\", htmlLabel_r8);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", item_r5.badge);\n} }\nfunction TabMenu_li_7_a_3_span_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 28);\n} if (rf & 2) {\n const item_r5 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵproperty(\"ngClass\", item_r5.icon)(\"ngStyle\", item_r5.iconStyle);\n i0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction TabMenu_li_7_a_3_span_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 29);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r5 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r2.getItemProp(item_r5, \"label\"));\n} }\nfunction TabMenu_li_7_a_3_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 30);\n} if (rf & 2) {\n const item_r5 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"innerHTML\", ctx_r2.getItemProp(item_r5, \"label\"), i0.ɵɵsanitizeHtml);\n} }\nfunction TabMenu_li_7_a_3_p_badge_7_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"p-badge\", 31);\n} if (rf & 2) {\n const item_r5 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"styleClass\", item_r5.badgeStyleClass)(\"value\", ctx_r2.getItemProp(item_r5, \"badge\"));\n} }\nfunction TabMenu_li_7_a_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"a\", 32, 5);\n i0.ɵɵelementContainerStart(2);\n i0.ɵɵtemplate(3, TabMenu_li_7_a_3_span_3_Template, 1, 3, \"span\", 25)(4, TabMenu_li_7_a_3_span_4_Template, 2, 1, \"span\", 26)(5, TabMenu_li_7_a_3_ng_template_5_Template, 1, 1, \"ng-template\", null, 7, i0.ɵɵtemplateRefExtractor)(7, TabMenu_li_7_a_3_p_badge_7_Template, 1, 2, \"p-badge\", 27);\n i0.ɵɵelementContainerEnd();\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const htmlRouteLabel_r9 = i0.ɵɵreference(6);\n const item_r5 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"routerLink\", item_r5.routerLink)(\"queryParams\", item_r5.queryParams)(\"routerLinkActive\", \"p-menuitem-link-active\")(\"routerLinkActiveOptions\", item_r5.routerLinkActiveOptions || i0.ɵɵpureFunction0(18, _c13))(\"target\", item_r5.target)(\"tabindex\", -1)(\"fragment\", item_r5.fragment)(\"queryParamsHandling\", item_r5.queryParamsHandling)(\"preserveFragment\", item_r5.preserveFragment)(\"skipLocationChange\", item_r5.skipLocationChange)(\"replaceUrl\", item_r5.replaceUrl)(\"state\", item_r5.state);\n i0.ɵɵattribute(\"id\", ctx_r2.getItemProp(item_r5, \"id\"))(\"aria-disabled\", ctx_r2.disabled(item_r5));\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", item_r5.icon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", item_r5.escape !== false)(\"ngIfElse\", htmlRouteLabel_r9);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", item_r5.badge);\n} }\nfunction TabMenu_li_7_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TabMenu_li_7_Template(rf, ctx) { if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 20, 4);\n i0.ɵɵlistener(\"click\", function TabMenu_li_7_Template_li_click_0_listener($event) { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.itemClick($event, item_r5)); })(\"keydown\", function TabMenu_li_7_Template_li_keydown_0_listener($event) { const ctx_r5 = i0.ɵɵrestoreView(_r4); const item_r5 = ctx_r5.$implicit; const i_r7 = ctx_r5.index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onKeydownItem($event, i_r7, item_r5)); })(\"focus\", function TabMenu_li_7_Template_li_focus_0_listener() { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onMenuItemFocus(item_r5)); });\n i0.ɵɵtemplate(2, TabMenu_li_7_a_2_Template, 8, 9, \"a\", 21)(3, TabMenu_li_7_a_3_Template, 8, 19, \"a\", 22)(4, TabMenu_li_7_ng_container_4_Template, 1, 0, \"ng-container\", 23);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r5 = ctx.$implicit;\n const i_r7 = ctx.index;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(item_r5.styleClass);\n i0.ɵɵproperty(\"ngStyle\", item_r5.style)(\"ngClass\", i0.ɵɵpureFunction3(13, _c11, ctx_r2.getItemProp(item_r5, \"disabled\"), ctx_r2.isActive(item_r5), item_r5.visible === false))(\"tooltipOptions\", item_r5.tooltipOptions);\n i0.ɵɵattribute(\"data-p-disabled\", ctx_r2.disabled(item_r5))(\"data-p-highlight\", ctx_r2.focusedItemInfo() === item_r5)(\"aria-label\", ctx_r2.getItemProp(item_r5, \"label\"))(\"tabindex\", ctx_r2.disabled(item_r5) ? -1 : 0);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !item_r5.routerLink && !ctx_r2.itemTemplate && !ctx_r2._itemTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", item_r5.routerLink && !ctx_r2.itemTemplate && !ctx_r2._itemTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.itemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(17, _c12, item_r5, i_r7));\n} }\nfunction TabMenu_button_10_ChevronRightIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronRightIcon\");\n} if (rf & 2) {\n i0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction TabMenu_button_10_3_ng_template_0_Template(rf, ctx) { }\nfunction TabMenu_button_10_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, TabMenu_button_10_3_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction TabMenu_button_10_Template(rf, ctx) { if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 33, 8);\n i0.ɵɵlistener(\"click\", function TabMenu_button_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.navForward()); });\n i0.ɵɵtemplate(2, TabMenu_button_10_ChevronRightIcon_2_Template, 1, 1, \"ChevronRightIcon\", 18)(3, TabMenu_button_10_3_Template, 1, 0, null, 19);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.previousIconTemplate && !ctx_r2._previousIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.nextIconTemplate || ctx_r2._nextIconTemplate);\n} }\n/**\n * TabMenu is a navigation component that displays items as tab headers.\n * @group Components\n */\nclass TabMenu extends BaseComponent {\n /**\n * An array of menuitems.\n * @group Props\n */\n set model(value) {\n this._model = value;\n this._focusableItems = (this._model || []).reduce((result, item) => {\n result.push(item);\n return result;\n }, []);\n }\n get model() {\n return this._model;\n }\n /**\n * Defines the default active menuitem\n * @group Props\n */\n set activeItem(value) {\n this._activeItem = value;\n this.activeItemChange.emit(value);\n this.tabChanged = true;\n }\n get activeItem() {\n return this._activeItem;\n }\n /**\n * When enabled displays buttons at each side of the tab headers to scroll the tab list.\n * @group Props\n */\n scrollable;\n /**\n * Defines if popup mode enabled.\n */\n popup;\n /**\n * Inline style of the element.\n * @group Props\n */\n style;\n /**\n * Class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Defines a string value that labels an interactive element.\n * @group Props\n */\n ariaLabel;\n /**\n * Identifier of the underlying input element.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Event fired when a tab is selected.\n * @param {MenuItem} item - Menu item.\n * @group Emits\n */\n activeItemChange = new EventEmitter();\n content;\n navbar;\n inkbar;\n prevBtn;\n nextBtn;\n tabLink;\n tab;\n /**\n * Template of the menu item.\n * @group Templates\n */\n itemTemplate;\n /**\n * Template of the previous icon.\n * @group Templates\n */\n previousIconTemplate;\n /**\n * Template of the next icon.\n * @group Templates\n */\n nextIconTemplate;\n templates;\n _itemTemplate;\n _nextIconTemplate;\n _previousIconTemplate;\n tabChanged;\n backwardIsDisabled = true;\n forwardIsDisabled = false;\n timerIdForInitialAutoScroll = null;\n _focusableItems;\n _model;\n _activeItem;\n focusedItemInfo = signal(null);\n router = inject(Router);\n route = inject(ActivatedRoute);\n _componentStyle = inject(TabMenuStyle);\n get focusableItems() {\n if (!this._focusableItems || !this._focusableItems.length) {\n this._focusableItems = (this.model || []).reduce((result, item) => {\n result.push(item);\n return result;\n }, []);\n }\n return this._focusableItems;\n }\n constructor() {\n super();\n console.log('TabMenu is deprecated as of v18. Use tabs component instead https://primeng.org/tabs#tabmenu');\n }\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.updateInkBar();\n this.initAutoScrollForActiveItem();\n this.initButtonState();\n }\n }\n ngAfterViewChecked() {\n if (isPlatformBrowser(this.platformId)) {\n this.updateInkBar();\n this.tabChanged = false;\n }\n }\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this._itemTemplate = item.template;\n break;\n case 'nexticon':\n this._nextIconTemplate = item.template;\n break;\n case 'previousicon':\n this._previousIconTemplate = item.template;\n break;\n default:\n this._itemTemplate = item.template;\n break;\n }\n });\n }\n ngOnDestroy() {\n this.clearAutoScrollHandler();\n super.ngOnDestroy();\n }\n isActive(item) {\n if (item.routerLink) {\n const routerLink = Array.isArray(item.routerLink) ? item.routerLink : [item.routerLink];\n return this.router.isActive(this.router.createUrlTree(routerLink, { relativeTo: this.route }).toString(), item.routerLinkActiveOptions?.exact ?? item.routerLinkActiveOptions ?? false);\n }\n return item === this.activeItem;\n }\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n }\n visible(item) {\n return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n }\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled;\n }\n onMenuItemFocus(item) {\n this.focusedItemInfo.set(item);\n }\n itemClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n if (!item.url && !item.routerLink) {\n event.preventDefault();\n }\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n this.activeItem = item;\n this.activeItemChange.emit(item);\n this.tabChanged = true;\n this.cd.markForCheck();\n }\n onKeydownItem(event, index, item) {\n let i = index;\n let foundElement = {};\n const tabs = this.tab.toArray();\n switch (event.code) {\n case 'ArrowRight':\n foundElement = this.findNextItem(tabs, i);\n i = foundElement['i'];\n this.changeFocusedTab(event, foundElement['nextItem'], i);\n break;\n case 'ArrowLeft':\n foundElement = this.findPrevItem(tabs, i);\n i = foundElement['i'];\n this.changeFocusedTab(event, foundElement['prevItem'], i);\n break;\n case 'End':\n foundElement = this.findPrevItem(tabs, this.model.length);\n i = foundElement['i'];\n this.changeFocusedTab(event, foundElement['prevItem'], i);\n event.preventDefault();\n break;\n case 'Home':\n foundElement = this.findNextItem(tabs, -1);\n i = foundElement['i'];\n this.changeFocusedTab(event, foundElement['nextItem'], i);\n event.preventDefault();\n break;\n case 'Space':\n case 'Enter':\n this.itemClick(event, item);\n break;\n case 'Tab':\n this.onTabKeyDown(tabs);\n break;\n default:\n break;\n }\n if (tabs[i] && tabs[index]) {\n tabs[index].nativeElement.tabIndex = '-1';\n tabs[i].nativeElement.tabIndex = '0';\n tabs[i].nativeElement.focus();\n }\n this.cd.markForCheck();\n }\n onTabKeyDown(tabLinks) {\n tabLinks.forEach((item) => {\n item.nativeElement.tabIndex = getAttribute(item.nativeElement.parentElement, 'data-p-highlight') ? '0' : '-1';\n });\n }\n changeFocusedTab(event, element, index) {\n if (element) {\n focus(element);\n element.scrollIntoView({ block: 'nearest' });\n this.itemClick(event, element);\n }\n }\n findNextItem(items, index) {\n let i = index + 1;\n if (i >= items.length) {\n return { nextItem: items[items.length], i: items.length };\n }\n let nextItem = items[i];\n if (nextItem)\n return getAttribute(nextItem.nativeElement, 'data-p-disabled') ? this.findNextItem(items, i) : { nextItem: nextItem.nativeElement, i };\n else\n return null;\n }\n findPrevItem(items, index) {\n let i = index - 1;\n if (i < 0) {\n return { prevItem: items[0], i: 0 };\n }\n let prevItem = items[i];\n if (prevItem)\n return getAttribute(prevItem.nativeElement, 'data-p-disabled') ? this.findPrevItem(items, i) : { prevItem: prevItem.nativeElement, i };\n else\n return null;\n }\n updateInkBar() {\n const tabHeader = findSingle(this.navbar?.nativeElement, 'li.p-tabmenu-active');\n if (tabHeader) {\n this.inkbar.nativeElement.style.width = getWidth(tabHeader) + 'px';\n this.inkbar.nativeElement.style.left = getOffset(tabHeader).left - getOffset(this.navbar?.nativeElement).left + 'px';\n }\n }\n getVisibleButtonWidths() {\n return [this.prevBtn?.nativeElement, this.nextBtn?.nativeElement].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n }\n updateButtonState() {\n const content = this.content?.nativeElement;\n const { scrollLeft, scrollWidth } = content;\n const width = getWidth(content);\n this.backwardIsDisabled = scrollLeft === 0;\n this.forwardIsDisabled = parseInt(scrollLeft) === scrollWidth - width;\n }\n updateScrollBar(index) {\n const tabHeader = this.navbar?.nativeElement.children[index];\n if (!tabHeader) {\n return;\n }\n tabHeader.scrollIntoView({ block: 'nearest' });\n }\n onScroll(event) {\n this.scrollable && this.updateButtonState();\n event.preventDefault();\n }\n navBackward() {\n const content = this.content?.nativeElement;\n const width = getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n }\n navForward() {\n const content = this.content?.nativeElement;\n const width = getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft + width;\n const lastPos = content.scrollWidth - width;\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n }\n initAutoScrollForActiveItem() {\n if (!this.scrollable) {\n return;\n }\n this.clearAutoScrollHandler();\n // We have to wait for the rendering and then can scroll to element.\n this.timerIdForInitialAutoScroll = setTimeout(() => {\n const activeItem = this.model.findIndex((menuItem) => this.isActive(menuItem));\n if (activeItem !== -1) {\n this.updateScrollBar(activeItem);\n }\n });\n }\n clearAutoScrollHandler() {\n if (this.timerIdForInitialAutoScroll) {\n clearTimeout(this.timerIdForInitialAutoScroll);\n this.timerIdForInitialAutoScroll = null;\n }\n }\n initButtonState() {\n if (this.scrollable) {\n // We have to wait for the rendering and then retrieve the actual size element from the DOM.\n // in future `Promise.resolve` can be changed to `queueMicrotask` (if ie11 support will be dropped)\n Promise.resolve().then(() => {\n this.updateButtonState();\n this.cd.markForCheck();\n });\n }\n }\n static ɵfac = function TabMenu_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TabMenu)(); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TabMenu, selectors: [[\"p-tabMenu\"], [\"p-tabmenu\"]], contentQueries: function TabMenu_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, _c1, 4);\n i0.ɵɵcontentQuery(dirIndex, _c2, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.previousIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nextIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, viewQuery: function TabMenu_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c3, 5);\n i0.ɵɵviewQuery(_c4, 5);\n i0.ɵɵviewQuery(_c5, 5);\n i0.ɵɵviewQuery(_c6, 5);\n i0.ɵɵviewQuery(_c7, 5);\n i0.ɵɵviewQuery(_c8, 5);\n i0.ɵɵviewQuery(_c9, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.navbar = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inkbar = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.prevBtn = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nextBtn = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabLink = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tab = _t);\n } }, inputs: { model: \"model\", activeItem: \"activeItem\", scrollable: [2, \"scrollable\", \"scrollable\", booleanAttribute], popup: [2, \"popup\", \"popup\", booleanAttribute], style: \"style\", styleClass: \"styleClass\", ariaLabel: \"ariaLabel\", ariaLabelledBy: \"ariaLabelledBy\" }, outputs: { activeItemChange: \"activeItemChange\" }, standalone: true, features: [i0.ɵɵProvidersFeature([TabMenuStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 11, vars: 12, consts: [[\"content\", \"\"], [\"navbar\", \"\"], [\"inkbar\", \"\"], [\"prevBtn\", \"\"], [\"tab\", \"\"], [\"tabLink\", \"\"], [\"htmlLabel\", \"\"], [\"htmlRouteLabel\", \"\"], [\"nextBtn\", \"\"], [3, \"ngClass\", \"ngStyle\"], [1, \"p-tabmenu-nav-container\"], [\"class\", \"p-tabmenu-nav-prev-button p-tabmenu-nav-button\", \"type\", \"button\", \"role\", \"navigation\", \"pRipple\", \"\", 3, \"click\", 4, \"ngIf\"], [1, \"p-tabmenu-nav-content\", 3, \"scroll\"], [\"role\", \"menubar\", 1, \"p-tabmenu-nav\", \"p-reset\"], [\"role\", \"menuitem\", \"pTooltip\", \"\", \"pRipple\", \"\", 3, \"ngStyle\", \"class\", \"ngClass\", \"tooltipOptions\", \"click\", \"keydown\", \"focus\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"presentation\", 1, \"p-tabmenuitem-active-bar\"], [\"class\", \"p-tabmenu-nav-next-button p-tabmenu-nav-button\", \"type\", \"button\", \"role\", \"navigation\", \"pRipple\", \"\", 3, \"click\", 4, \"ngIf\"], [\"type\", \"button\", \"role\", \"navigation\", \"pRipple\", \"\", 1, \"p-tabmenu-nav-prev-button\", \"p-tabmenu-nav-button\", 3, \"click\"], [4, \"ngIf\"], [4, \"ngTemplateOutlet\"], [\"role\", \"menuitem\", \"pTooltip\", \"\", \"pRipple\", \"\", 3, \"click\", \"keydown\", \"focus\", \"ngStyle\", \"ngClass\", \"tooltipOptions\"], [\"class\", \"p-menuitem-link\", \"role\", \"presentation\", 3, \"target\", \"tabindex\", 4, \"ngIf\"], [\"role\", \"presentation\", \"class\", \"p-menuitem-link\", 3, \"routerLink\", \"queryParams\", \"routerLinkActive\", \"routerLinkActiveOptions\", \"target\", \"tabindex\", \"fragment\", \"queryParamsHandling\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"state\", 4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"role\", \"presentation\", 1, \"p-menuitem-link\", 3, \"target\", \"tabindex\"], [\"class\", \"p-menuitem-icon\", 3, \"ngClass\", \"ngStyle\", 4, \"ngIf\"], [\"class\", \"p-menuitem-text\", 4, \"ngIf\", \"ngIfElse\"], [\"size\", \"small\", 3, \"styleClass\", \"value\", 4, \"ngIf\"], [1, \"p-menuitem-icon\", 3, \"ngClass\", \"ngStyle\"], [1, \"p-menuitem-text\"], [1, \"p-menuitem-text\", 3, \"innerHTML\"], [\"size\", \"small\", 3, \"styleClass\", \"value\"], [\"role\", \"presentation\", 1, \"p-menuitem-link\", 3, \"routerLink\", \"queryParams\", \"routerLinkActive\", \"routerLinkActiveOptions\", \"target\", \"tabindex\", \"fragment\", \"queryParamsHandling\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"state\"], [\"type\", \"button\", \"role\", \"navigation\", \"pRipple\", \"\", 1, \"p-tabmenu-nav-next-button\", \"p-tabmenu-nav-button\", 3, \"click\"]], template: function TabMenu_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 9)(1, \"div\", 10);\n i0.ɵɵtemplate(2, TabMenu_button_2_Template, 4, 2, \"button\", 11);\n i0.ɵɵelementStart(3, \"div\", 12, 0);\n i0.ɵɵlistener(\"scroll\", function TabMenu_Template_div_scroll_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onScroll($event)); });\n i0.ɵɵelementStart(5, \"ul\", 13, 1);\n i0.ɵɵtemplate(7, TabMenu_li_7_Template, 5, 20, \"li\", 14);\n i0.ɵɵelement(8, \"li\", 15, 2);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(10, TabMenu_button_10_Template, 4, 2, \"button\", 16);\n i0.ɵɵelementEnd()();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(10, _c10, ctx.scrollable))(\"ngStyle\", ctx.style);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.scrollable && !ctx.backwardIsDisabled);\n i0.ɵɵadvance(3);\n i0.ɵɵattribute(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-label\", ctx.ariaLabel);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx.focusableItems);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"inkbar\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.scrollable && !ctx.forwardIsDisabled);\n } }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, RouterModule, i2.RouterLink, i2.RouterLinkActive, Ripple, TooltipModule, i3.Tooltip, ChevronLeftIcon, ChevronRightIcon, BadgeModule, i4.Badge, SharedModule], encapsulation: 2, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TabMenu, [{\n type: Component,\n args: [{\n selector: 'p-tabMenu, p-tabmenu',\n standalone: true,\n imports: [CommonModule, RouterModule, Ripple, TooltipModule, ChevronLeftIcon, ChevronRightIcon, BadgeModule, SharedModule],\n template: `\n
\n
\n \n
\n
    \n \n \n \n \n {{ getItemProp(item, 'label') }}\n \n \n \n \n \n \n \n {{ getItemProp(item, 'label') }}\n \n \n \n \n \n \n
  • \n
\n
\n \n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [TabMenuStyle]\n }]\n }], () => [], { model: [{\n type: Input\n }], activeItem: [{\n type: Input\n }], scrollable: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], popup: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], activeItemChange: [{\n type: Output\n }], content: [{\n type: ViewChild,\n args: ['content']\n }], navbar: [{\n type: ViewChild,\n args: ['navbar']\n }], inkbar: [{\n type: ViewChild,\n args: ['inkbar']\n }], prevBtn: [{\n type: ViewChild,\n args: ['prevBtn']\n }], nextBtn: [{\n type: ViewChild,\n args: ['nextBtn']\n }], tabLink: [{\n type: ViewChildren,\n args: ['tabLink']\n }], tab: [{\n type: ViewChildren,\n args: ['tab']\n }], itemTemplate: [{\n type: ContentChild,\n args: ['item', { descendants: false }]\n }], previousIconTemplate: [{\n type: ContentChild,\n args: ['previousicon', { descendants: false }]\n }], nextIconTemplate: [{\n type: ContentChild,\n args: ['nexticon', { descendants: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TabMenu, { className: \"TabMenu\" }); })();\nclass TabMenuModule {\n static ɵfac = function TabMenuModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TabMenuModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: TabMenuModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [TabMenu, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TabMenuModule, [{\n type: NgModule,\n args: [{\n imports: [TabMenu, SharedModule],\n exports: [TabMenu, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(TabMenuModule, { imports: [TabMenu, SharedModule], exports: [TabMenu, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TabMenu, TabMenuClasses, TabMenuModule, TabMenuStyle };\n","import {Injectable} from '@angular/core';\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\nimport {map, Observable} from \"rxjs\";\r\n\r\nimport {WebResponse} from \"@commons/models/remote.response/WebResponse\";\r\n\r\nimport {WorkerModel} from \"@shared/models/worker.model\";\r\nimport {BaseHttpService} from \"@shared/services-http/base-http.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WorkerHttpService extends BaseHttpService {\r\n\r\n constructor(\r\n private httpClient: HttpClient\r\n ) {\r\n super();\r\n }\r\n\r\n add(worker: WorkerModel): Observable {\r\n return this.httpClient.post>(this.getUrl('/AddWorker'), {Worker: worker})\r\n .pipe(map(x => x.Result.WorkerId));\r\n }\r\n\r\n update(worker: WorkerModel): Observable {\r\n return this.httpClient.post(this.getUrl('/UpdateWorker'), {Worker: worker});\r\n }\r\n\r\n archive(id: number | null, listOfWorkerToArchive?: number[]): Observable {\r\n return this.httpClient.post(this.getUrl('/ArchiveWorkers'), {IdsToArchive: listOfWorkerToArchive ? listOfWorkerToArchive : [id]});\r\n }\r\n\r\n unarchive(id: number): Observable {\r\n return this.httpClient.post(this.getUrl('/UnarchiveWorker'), {WorkerId: id});\r\n }\r\n\r\n getArchivedWorkers(): Observable {\r\n return this.httpClient.get(this.getUrl('/GetArchivedWorkers')).pipe(map(x => x.Result.ArchivedWorkers));\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport { forkJoin, Subject } from 'rxjs';\r\n\r\nimport {Driver} from '@commons/models/domain/Driver';\r\nimport { WorkerHttpService } from '../http-services/worker-http.service';\r\n\r\nexport enum ViewWorkers {\r\n Active = 1,\r\n Archive = 2,\r\n}\r\n\r\nexport interface IGetListDataWorkersParams {\r\n view: ViewWorkers;\r\n pagination: {\r\n pageIndex: number;\r\n rows: number;\r\n };\r\n searchValue: string;\r\n}\r\n\r\nexport interface IGetListDataWorkersResponse {\r\n totalRecordsInList: number;\r\n listData: { data: Driver, isChecked: boolean }[];\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WorkerService {\r\n\r\n newUnsavedDriver?: Driver;\r\n archivedDrivers: Driver[] = [];\r\n allWorkers: Driver[] = [];\r\n\r\n archivedWorkerSubject = new Subject();\r\n unArchivedWorkerSubject = new Subject();\r\n workerAddedSubject = new Subject();\r\n workerUpdatedSubject = new Subject();\r\n\r\n workerDetailsPanelClosedSub$ = new Subject();\r\n\r\n private lastFilteredWorkersSnapshot: {\r\n data: Driver[];\r\n searchValue: string;\r\n };\r\n\r\n constructor(\r\n private workerHttpService: WorkerHttpService,\r\n ) {}\r\n\r\n public get getAllFilteredList(): Driver[] {\r\n return this.lastFilteredWorkersSnapshot?.data || [];\r\n }\r\n\r\n public getListData({ view, pagination, searchValue }: IGetListDataWorkersParams): IGetListDataWorkersResponse {\r\n let listData = view === ViewWorkers.Active ? [...this.allWorkers] : [...this.archivedDrivers];\r\n const start = pagination.pageIndex * pagination.rows;\r\n const end = start + pagination.rows;\r\n\r\n if (searchValue?.length) {\r\n if (this.lastFilteredWorkersSnapshot?.searchValue === searchValue) {\r\n listData = [...this.lastFilteredWorkersSnapshot.data];\r\n }\r\n else {\r\n listData = this.filterWorkersList(listData, searchValue);\r\n this.lastFilteredWorkersSnapshot = {\r\n data: [...listData],\r\n searchValue,\r\n };\r\n }\r\n }\r\n else {\r\n this.lastFilteredWorkersSnapshot = null as any;\r\n }\r\n\r\n return {\r\n listData: listData.slice(start, end).map(item => ({ data: item, isChecked: false })),\r\n totalRecordsInList: listData?.length,\r\n };\r\n }\r\n\r\n public filterWorkersList(array: Driver[], searchValue: string): Driver[] {\r\n if (!searchValue?.length) {\r\n return [];\r\n }\r\n const lowerCaseSearchTerm = searchValue.toLowerCase();\r\n return array.filter(item => {\r\n return (\r\n item.FN?.toLowerCase().includes(lowerCaseSearchTerm) ||\r\n item.LN?.toLowerCase().includes(lowerCaseSearchTerm) ||\r\n item.Em?.toLowerCase().includes(lowerCaseSearchTerm) ||\r\n item.CN?.toLowerCase().includes(lowerCaseSearchTerm)\r\n );\r\n });\r\n }\r\n\r\n public archiveWorkers(listWorkersToArchive: Driver[]): void {\r\n this.lastFilteredWorkersSnapshot = null as any;\r\n const archivedWorkersIds = listWorkersToArchive.map(item => item.Id);\r\n this.allWorkers = this.allWorkers.filter(item => !archivedWorkersIds.includes(item.Id));\r\n this.archivedDrivers.unshift(...listWorkersToArchive);\r\n this.workerHttpService.archive(null, archivedWorkersIds).subscribe();\r\n }\r\n\r\n public restoreWorkers(listOfWorkersToRestore: Driver[]): void {\r\n this.lastFilteredWorkersSnapshot = null as any;\r\n const restoreWorkersIds = listOfWorkersToRestore.map(item => item.Id);\r\n this.archivedDrivers = this.archivedDrivers.filter(item => !restoreWorkersIds.includes(item.Id));\r\n this.allWorkers.unshift(...listOfWorkersToRestore);\r\n const requests = restoreWorkersIds.map(id => this.workerHttpService.unarchive(id));\r\n forkJoin(requests).subscribe();\r\n }\r\n\r\n public addNewWorkerTolist(worker: Driver): void {\r\n this.allWorkers.unshift(worker);\r\n }\r\n\r\n public updateWorker(worker: Driver): void {\r\n const indexInList = this.allWorkers.findIndex(item => item.Id === worker.Id);\r\n this.allWorkers[indexInList] = {\r\n ...this.allWorkers[indexInList],\r\n ...worker,\r\n };\r\n }\r\n\r\n}\r\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.18.5';\nvar current_codepage = 1200, current_ansi = 1252;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array*/ { var o/*:Array*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nvar $cptable;\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nexport { set_cptable };\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") { throw \"wtf\"; }\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nvar SSFbasedate = /*#__PURE__*/new Date(1899, 11, 31, 0, 0, 0);\nvar SSFdnthresh = /*#__PURE__*/SSFbasedate.getTime();\nvar SSFbase1904 = /*#__PURE__*/new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= SSFbase1904) epoch += 24*60*60*1000;\n\treturn (epoch - (SSFdnthresh + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/SSFbasedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri*/ {\n\tvar out/*:Array*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports = {};\nexports.version = '1.2.1';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = {}); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array*/, Paths/*:Array*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array*/ = [], q/*:Array*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array*/, start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/, chkd/*:?Array*/)/*:SectorEntry*/ {\n\tvar buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array*/, dir_start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array*/ = [], buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array*/, Paths/*:Array*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\tif(!s) {\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nlet _fs = void 0;\nfunction set_fs(fs) { _fs = fs; }\nexport { set_fs };\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = /*#__PURE__*/new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = /*#__PURE__*/new Date();\nvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/refdate.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\nvar refoffset = /*#__PURE__*/refdate.getTimezoneOffset();\nfunction numdate(v/*:number*/)/*:Date*/ {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date_1 = /*#__PURE__*/new Date('2017-02-19T19:06:09.000Z');\nvar good_pd_date = /*#__PURE__*/isNaN(/*#__PURE__*/good_pd_date_1.getFullYear()) ? /*#__PURE__*/new Date('2/19/17') : good_pd_date_1;\nvar good_pd = /*#__PURE__*/good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str/*:string|Date*/, fixdate/*:?number*/)/*:Date*/ {\n\tvar d = new Date(str);\n\tif(good_pd) {\n\t\t/*:: if(fixdate == null) fixdate = 0; */\n\t\tif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr/*:Array*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [];\n\tfor(var i = 0; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tvar lower = s.toLowerCase();\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\n// matches ... extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + ''; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array*/=[]; for(var i=s; i*/=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr/*:string*/)/*:CellAddress*/ { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell/*:CellAddress*/)/*:string*/ { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || (dense ? ([]/*:any*/) : ({}/*:any*/));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}/*:any*/));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts)/*:string*/ {\n\tvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array*/ = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = writextag('Types', null, {\n\t\t'xmlns': XMLNS.CT,\n\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t});\n\n\to = o.concat([\n\t\t['xml', 'application/xml'],\n\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t/* from test files */\n\t\t['bmp', 'image/bmp'],\n\t\t['png', 'image/png'],\n\t\t['gif', 'image/gif'],\n\t\t['emf', 'image/x-emf'],\n\t\t['wmf', 'image/x-wmf'],\n\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t['pdf', 'application/pdf'],\n\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t].map(function(x) {\n\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t}));\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 \n\t\tcase 'file-entry': // 4.3 \n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 \n\t\tcase 'algorithm': // 4.5 \n\t\tcase 'start-key-generation': // 4.6 \n\t\tcase 'key-derivation': // 4.7 \n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest/*:Array >*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\to.push(' \\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' \\n');\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file/*:string*/, res/*:string*/, tag/*:?string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base/*:string*/, file/*:string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nfunction write_meta_ods(/*:: wb: Workbook, opts: any*/)/*:string*/ {\n\treturn 'Sheet' + 'JS ' + XLSX.version + '';\n}\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nvar CORE_PROPS_REGEX/*:Array*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ]; //.concat(PseudoPropsPairs);\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob/*::, length*/)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe}/*:any*/);\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2 || length == 9) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array*/ {\n\tvar merges/*:Array*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob/*::, length*/) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = $cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array*/ = [];\n\tvar colwidths/*:Array*/ = [];\n\tvar coldecimals/*:Array*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tmaxlen = Math.max(maxlen, String(col[j]).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[/*::String(*/current_ansi/*::)*/] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array*/ = [], colinfo/*:Array*/ = [], cw/*:Array*/ = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'W': break; /* window? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1;\n\t\t\tfor(rj=1; rj -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tarr[R][C][1] = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*//*::, opts*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array*/, rows/*:Array*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/)/*:string*/ {\n\t\tvar preamble/*:Array*/ = [\"ID;PWXL;N;E\"], o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = /*#__PURE__*/(function() {\n\t\tvar push_field = function pf(o/*:Array*/, topic/*:string*/, v/*:number*/, n/*:number*/, s/*:string*/) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o/*:Array*/, type/*:number*/, v/*:any*/, s/*:string*/) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\t\tvar o/*:Array*/ = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array*/ = [], oo/*:Array*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF_format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ((o.dense ? [] : {})/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (s[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = Array.isArray(ws);\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t0x6F: [\"T\", 1]\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_LABEL },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array, string, Array]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array*/ {\n\tvar o/*:Array*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = /*#__PURE__*/(function() {\n\tfunction rtf_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\t/* TODO: this is a stub */\n\tfunction rtf_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\n\t\tvar rows = str.match(/\\\\trowd.*?\\\\row\\b/g);\n\t\tif(!rows.length) throw new Error(\"RTF missing table\");\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:rows.length - 1}}/*:any*/);\n\t\trows.forEach(function(rowtf, R) {\n\t\t\tif(Array.isArray(ws)) ws[R] = [];\n\t\t\tvar rtfre = /\\\\\\w+\\b/g;\n\t\t\tvar last_index = 0;\n\t\t\tvar res;\n\t\t\tvar C = -1;\n\t\t\twhile((res = rtfre.exec(rowtf))) {\n\t\t\t\tswitch(res[0]) {\n\t\t\t\t\tcase \"\\\\cell\":\n\t\t\t\t\t\tvar data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n\t\t\t\t\t\tif(data[0] == \" \") data = data.slice(1);\n\t\t\t\t\t\t++C;\n\t\t\t\t\t\tif(data.length) {\n\t\t\t\t\t\t\t// TODO: value parsing, including codepage adjustments\n\t\t\t\t\t\t\tvar cell = {v: data, t:\"s\"};\n\t\t\t\t\t\t\tif(Array.isArray(ws)) ws[R][C] = cell;\n\t\t\t\t\t\t\telse ws[encode_cell({r:R, c:C})] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlast_index = rtfre.lastIndex;\n\t\t\t}\n\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t});\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws/*:Worksheet*//*::, opts*/)/*:string*/ {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF_load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF_load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n case \"\":\n case \"\":\n break;\n case \"\":\n pass = false;\n break;\n case \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ']*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId/*:number*/, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nfunction sheet_insert_comments(sheet, comments/*:Array*/, threaded/*:boolean*/, people/*:?Array*/) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array*/ = [];\n\tvar commentList/*:Array*/ = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array*/ = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"\" + a + \"\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"\" + \"tc=\" + w.ID + \"\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"SheetJ5\"); }\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [];\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\telse d[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tts.push(c.t||\"\");\n\t\t});\n\t\to.push('');\n\t\tif(ts.length <= 1) o.push(writetag(\"t\", escapexml(ts[0]||\"\")));\n\t\telse {\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t}\n\t\to.push('');\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '': case '': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '': pass = true; break;\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '
': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array*/ {\n\tvar out/*:Array*/ = [];\n\tvar authors/*:Array*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array>*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF_load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF_load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array*/, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts/*::, idx, wb*/)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z' && !cell.f) return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles) {\n\tvar ri = 0, x = \"\", cells/*:Array*/ = [], cref/*:?Array*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows/*:Array*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && /*::cref != null && */cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array*/ = [], r/*:Array*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(8 + 4 * cell.v.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/)/*:boolean*/ {\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array*/ = [];\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array, string, ?string]*/ {\n\tvar col/*:Array*/ = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_theme(data/*:string*/, name/*:string*/, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\n\nfunction write_wb(wb, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data/*:SST*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data/*:Array*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\n\nfunction write_xlmeta(name/*:string*/) {\n\treturn (name.slice(-4)===\".bin\" ? write_xlmeta_bin : write_xlmeta_xml)();\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array*/ = [], cursheet/*:Worksheet*/ = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\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\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF_load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(/*::wb, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array*/ = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array*/)/*:string*/ {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"
\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002f /* FilePass */: case 0x0195 /* FileLock */: case 0x00e1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ((options.dense ? [] : {})/*:any*/);\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* 'BOF' */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF_load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF_load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF_load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\" */ },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*//*::, opts*/) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, (cell.v||\"\").slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tstr = str.replace(//g, \"\");\n\tvar mtch/*:any*/ = str.match(/\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array*/ = [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_cell({r:R,c:C});\n\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tvar sp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '' + w + '';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '' + w + '';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"\";\n\treturn preamble + oo.join(\"\") + \"\";\n}\n\nvar HTML_BEGIN = 'SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find
\");\n\tif(mtch.length == 1) return sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
\" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar rows/*:HTMLCollection*/ = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.children/*:any*/);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\") o.l = ({ Target: l });\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\nvar number_formats_ods = {\n\t/* ods name: [short ssf fmt, long ssf fmt] */\n\tday: [\"d\", \"dd\"],\n\tmonth: [\"m\", \"mm\"],\n\tyear: [\"y\", \"yy\"],\n\thours: [\"h\", \"hh\"],\n\tminutes: [\"m\", \"mm\"],\n\tseconds: [\"s\", \"ss\"],\n\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\tera: [\"e\", \"ee\"],\n\t/* there is no native representation of LO \"Q\" format */\n\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n};\n\n\nfunction parse_content_xml(d/*:string*/, _opts)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]/*:any*/) : ({}/*:any*/); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tq.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\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\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*//*::, opts*/)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array*/ = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array*/, wb) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(/office:document-meta/g, \"office:meta\"));\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\twrite_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8contains(body, search) {\n outer:\n for (var L = 0; L <= body.length - search.length; ++L) {\n for (var j = 0; j < search.length; ++j)\n if (body[L + j] != search[j])\n continue outer;\n return true;\n }\n return false;\n}\nfunction u8concat(u8a) {\n var len = u8a.reduce(function(acc, x) {\n return acc + x.length;\n }, 0);\n var out = new Uint8Array(len);\n var off = 0;\n u8a.forEach(function(u8) {\n out.set(u8, off);\n off += u8.length;\n });\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 20;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr ? ptr[0] : 0;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n if (ptr)\n ptr[0] = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz.slice(0, L);\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 28;\n }\n return i32;\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var off = ptr[0];\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = Math.floor(num / 8);\n var len = 0;\n var res;\n if (num == 0)\n break;\n switch (type) {\n case 0:\n {\n var l = ptr[0];\n while (buf[ptr[0]++] >= 128)\n ;\n res = buf.slice(l, ptr[0]);\n }\n break;\n case 5:\n len = 4;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 1:\n len = 8;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 2:\n len = parse_varint49(buf, ptr);\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 3:\n case 4:\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: res, type: type };\n if (out[num] == null)\n out[num] = [v];\n else\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf.slice(ptr[0], ptr[0] + fl)\n });\n ptr[0] += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [];\n ai[1] = [{ data: write_varint49(ia.id), type: 0 }];\n ai[2] = [];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = [0];\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n while (ptr[0] < buf.length) {\n var tag = buf[ptr[0]] & 3;\n if (tag == 0) {\n var len = buf[ptr[0]++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[ptr[0]];\n if (c > 1)\n len |= buf[ptr[0] + 1] << 8;\n if (c > 2)\n len |= buf[ptr[0] + 2] << 16;\n if (c > 3)\n len |= buf[ptr[0] + 3] << 24;\n len >>>= 0;\n len++;\n ptr[0] += c;\n }\n chunks.push(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[ptr[0]] >> 2 & 7) + 4;\n offset = (buf[ptr[0]++] & 224) << 3;\n offset |= buf[ptr[0]++];\n } else {\n length = (buf[ptr[0]++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[ptr[0]] | buf[ptr[0] + 1] << 8;\n ptr[0] += 2;\n } else {\n offset = (buf[ptr[0]] | buf[ptr[0] + 1] << 8 | buf[ptr[0] + 2] << 16 | buf[ptr[0] + 3] << 24) >>> 0;\n ptr[0] += 4;\n }\n }\n chunks = [u8concat(chunks)];\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n if (offset > chunks[0].length)\n throw new Error(\"Invalid offset beyond length\");\n if (length >= offset) {\n chunks.push(chunks[0].slice(-offset));\n length -= offset;\n while (length >= chunks[chunks.length - 1].length) {\n chunks.push(chunks[chunks.length - 1]);\n length -= chunks[chunks.length - 1].length;\n }\n }\n chunks.push(chunks[0].slice(-offset, -offset + length));\n }\n }\n var o = u8concat(chunks);\n if (o.length != usz)\n throw new Error(\"Unexpected length: \".concat(o.length, \" != \").concat(usz));\n return o;\n}\nfunction decompress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push(parse_snappy_chunk(t, buf.slice(l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf.slice(l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nfunction parse_old_storage(buf, sst, rsst, v) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var data_offset = (v > 1 ? 12 : 8) + popcnt(flags & (v > 1 ? 3470 : 398)) * 4;\n var ridx = -1, sidx = -1, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 512) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n data_offset += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n var ret;\n switch (buf[2]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else if (sidx > -1)\n ret = { t: \"s\", v: sst[sidx] };\n else if (!isNaN(ieee))\n ret = { t: \"n\", v: ieee };\n else\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction parse_new_storage(buf, sst, rsst) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(8, true);\n var data_offset = 12;\n var ridx = -1, sidx = -1, d128 = NaN, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 1) {\n d128 = readDecimal128LE(buf, data_offset);\n data_offset += 16;\n }\n if (flags & 2) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 4) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n if (flags & 8) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 16) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n var ret;\n switch (buf[1]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction write_new_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n flags |= 1;\n l += 16;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 2;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[1] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 8;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out.slice(0, l);\n}\nfunction write_old_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 3;\n switch (cell.t) {\n case \"n\":\n out[2] = 2;\n dv.setFloat64(l, cell.v, true);\n flags |= 32;\n l += 8;\n break;\n case \"b\":\n out[2] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 32;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[2] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 16;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(4, flags, true);\n return out.slice(0, l);\n}\nfunction parse_cell_storage(buf, sst, rsst) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n return parse_old_storage(buf, sst, rsst, buf[0]);\n case 5:\n return parse_new_storage(buf, sst, rsst);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return parse_varint49(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n var out = [];\n out[1] = [{ type: 0, data: write_varint49(idx) }];\n return write_shallow(out);\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var le = parse_shallow(entry.data);\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n data[key] = tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\");\n }\n break;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage.subarray(offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage.subarray(offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) ? varint_to_i32(pb[7][0].data) >>> 0 > 0 ? 1 : 0 : -1;\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TST_TableModelArchive(M, root, ws) {\n var _a;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var store = parse_shallow(pb[4][0].data);\n var sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n var rsst = ((_a = store[17]) == null ? void 0 : _a[0]) ? parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]) : [];\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype));\n var _tile = parse_TST_Tile(M, ref);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var addr = encode_cell({ r: _R + R, c: C });\n var res = parse_cell_storage(buf, sst, rsst);\n if (res)\n ws[addr] = res;\n });\n });\n _R += _tile.nrows;\n });\n}\nfunction parse_TST_TableInfoArchive(M, root) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root) {\n var out = book_new();\n var pb = parse_shallow(root.data);\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n return out;\n}\nfunction parse_numbers_iwa(cfb) {\n var _a, _b, _c, _d;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n var docroot = ((_d = (_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.meta) == null ? void 0 : _c[1]) == null ? void 0 : _d[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot);\n}\nfunction write_tile_row(tri, data, SST) {\n var _a, _b, _c, _d;\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var wide_offsets = ((_d = (_c = tri[8]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && varint_to_i32(tri[8][0].data) > 0 || false;\n if (wide_offsets)\n throw \"Math only works with normal offsets\";\n var cnt = 0;\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset, true);\n _dv.setUint16(C * 2, _last_offset, true);\n var celload, _celload;\n switch (typeof data[C]) {\n case \"string\":\n celload = write_new_storage({ t: \"s\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C] }, SST);\n break;\n case \"number\":\n celload = write_new_storage({ t: \"n\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"n\", v: data[C] }, SST);\n break;\n case \"boolean\":\n celload = write_new_storage({ t: \"b\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"b\", v: data[C] }, SST);\n break;\n default:\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n return cnt;\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var ws = wb.Sheets[wb.SheetNames[0]];\n if (wb.SheetNames.length > 1)\n console.error(\"The Numbers writer currently writes only the first table\");\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 9) {\n trunc = true;\n range.e.c = 9;\n }\n if (range.e.r > 49) {\n trunc = true;\n range.e.r = 49;\n }\n if (trunc)\n console.error(\"The Numbers writer is currently limited to \".concat(encode_range(range)));\n var data = sheet_to_json(ws, { range: range, header: 1 });\n var SST = [\"~Sh33tJ5~\"];\n data.forEach(function(row) {\n return row.forEach(function(cell) {\n if (typeof cell == \"string\")\n SST.push(cell);\n });\n });\n var dependents = {};\n var indices = [];\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n var old_content = fi.content;\n var raw1 = decompress_iwa_file(old_content);\n var x2 = parse_iwa_file(raw1);\n x2.forEach(function(packet2) {\n indices.push(packet2.id);\n dependents[packet2.id] = { deps: [], location: fp, type: varint_to_i32(packet2.messages[0].meta[1][0].data) };\n });\n });\n indices.sort(function(x2, y2) {\n return x2 - y2;\n });\n var indices_varint = indices.filter(function(x2) {\n return x2 > 1;\n }).map(function(x2) {\n return [x2, write_varint49(x2)];\n });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (!fi.name.match(/\\.iwa/))\n return;\n var x2 = parse_iwa_file(decompress_iwa_file(fi.content));\n x2.forEach(function(ia) {\n ia.messages.forEach(function(m) {\n indices_varint.forEach(function(ivi) {\n if (ia.messages.some(function(mess) {\n return varint_to_i32(mess.meta[1][0].data) != 11006 && u8contains(mess.data, ivi[1]);\n })) {\n dependents[ivi[0]].deps.push(ia.id);\n }\n });\n });\n });\n });\n function get_unique_msgid() {\n for (var i = 927262; i < 2e6; ++i)\n if (!dependents[i])\n return i;\n throw new Error(\"Too many messages\");\n }\n var entry = CFB.find(cfb, dependents[1].location);\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var docroot;\n for (var xi = 0; xi < x.length; ++xi) {\n var packet = x[xi];\n if (packet.id == 1)\n docroot = packet;\n }\n var sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n var pb = parse_shallow(docroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n var cruidsref = parse_TSP_Reference(pb[46][0].data);\n var oldbucket = CFB.find(cfb, dependents[cruidsref].location);\n var _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n for (var j = 0; j < _x.length; ++j) {\n if (_x[j].id == cruidsref)\n break;\n }\n if (_x[j].id != cruidsref)\n throw \"Bad ColumnRowUIDMapArchive\";\n var cruids = parse_shallow(_x[j].messages[0].data);\n cruids[1] = [];\n cruids[2] = [], cruids[3] = [];\n for (var C = 0; C <= range.e.c; ++C) {\n var uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(C + 420690) }];\n cruids[1].push({ type: 2, data: write_shallow(uuid) });\n cruids[2].push({ type: 0, data: write_varint49(C) });\n cruids[3].push({ type: 0, data: write_varint49(C) });\n }\n cruids[4] = [];\n cruids[5] = [], cruids[6] = [];\n for (var R = 0; R <= range.e.r; ++R) {\n uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(R + 726270) }];\n cruids[4].push({ type: 2, data: write_shallow(uuid) });\n cruids[5].push({ type: 0, data: write_varint49(R) });\n cruids[6].push({ type: 0, data: write_varint49(R) });\n }\n _x[j].messages[0].data = write_shallow(cruids);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n store[7][0].data = write_varint49(range.e.r + 1);\n var row_headers = parse_shallow(store[1][0].data);\n var row_header_ref = parse_TSP_Reference(row_headers[2][0].data);\n oldbucket = CFB.find(cfb, dependents[row_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != row_header_ref)\n throw \"Bad HeaderStorageBucket\";\n var base_bucket = parse_shallow(_x[0].messages[0].data);\n for (R = 0; R < data.length; ++R) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R);\n _bucket[4][0].data = write_varint49(data[R].length);\n base_bucket[2][R] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n oldbucket = CFB.find(cfb, dependents[col_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != col_header_ref)\n throw \"Bad HeaderStorageBucket\";\n base_bucket = parse_shallow(_x[0].messages[0].data);\n for (C = 0; C <= range.e.c; ++C) {\n _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var sstref = parse_TSP_Reference(store[4][0].data);\n (function() {\n var sentry = CFB.find(cfb, dependents[sstref].location);\n var sx = parse_iwa_file(decompress_iwa_file(sentry.content));\n var sstroot;\n for (var sxi = 0; sxi < sx.length; ++sxi) {\n var packet2 = sx[sxi];\n if (packet2.id == sstref)\n sstroot = packet2;\n }\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n var newsst = [];\n SST.forEach(function(str, i) {\n newsst[1] = [{ type: 0, data: write_varint49(i) }];\n newsst[2] = [{ type: 0, data: write_varint49(1) }];\n newsst[3] = [{ type: 2, data: stru8(str) }];\n sstdata[3].push({ type: 2, data: write_shallow(newsst) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n var sy = write_iwa_file(sx);\n var raw32 = compress_iwa_file(sy);\n sentry.content = raw32;\n sentry.size = sentry.content.length;\n })();\n var tile = parse_shallow(store[3][0].data);\n {\n var t = tile[1][0];\n delete tile[2];\n var tl = parse_shallow(t.data);\n {\n var tileref = parse_TSP_Reference(tl[2][0].data);\n (function() {\n var tentry = CFB.find(cfb, dependents[tileref].location);\n var tx = parse_iwa_file(decompress_iwa_file(tentry.content));\n var tileroot;\n for (var sxi = 0; sxi < tx.length; ++sxi) {\n var packet2 = tx[sxi];\n if (packet2.id == tileref)\n tileroot = packet2;\n }\n var tiledata = parse_shallow(tileroot.messages[0].data);\n {\n delete tiledata[6];\n delete tile[7];\n var rowload = new Uint8Array(tiledata[5][0].data);\n tiledata[5] = [];\n var cnt = 0;\n for (var R2 = 0; R2 <= range.e.r; ++R2) {\n var tilerow = parse_shallow(rowload);\n cnt += write_tile_row(tilerow, data[R2], SST);\n tilerow[1][0].data = write_varint49(R2);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tiledata[1] = [{ type: 0, data: write_varint49(range.e.c + 1) }];\n tiledata[2] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n tiledata[3] = [{ type: 0, data: write_varint49(cnt) }];\n tiledata[4] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n }\n tileroot.messages[0].data = write_shallow(tiledata);\n var ty = write_iwa_file(tx);\n var raw32 = compress_iwa_file(ty);\n tentry.content = raw32;\n tentry.size = tentry.content.length;\n })();\n }\n t.data = write_shallow(tl);\n }\n store[3][0].data = write_shallow(tile);\n }\n pb[4][0].data = write_shallow(store);\n }\n docroot.messages[0].data = write_shallow(pb);\n var y = write_iwa_file(x);\n var raw3 = compress_iwa_file(y);\n entry.content = raw3;\n entry.size = entry.content.length;\n return cfb;\n}\nfunction fix_opts_func(defaults/*:Array >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tvar comments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(opts.bookType == \"numbers\") return write_numbers_iwa(wb, opts);\n\tif(opts.bookType == \"xlsb\") return write_zip_xlsxb(wb, opts);\n\treturn write_zip_xlsx(wb, opts);\n}\n\n/* XLSX and XLSB writing are very similar. Originally they were unified in one\n export function. This is horrible for tree shaking in the common case (most\n applications need to export files in one format) so this function supports\n both formats while write_zip_xlsx only handles XLSX */\nfunction write_zip_xlsxb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta(f));\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".\" + wbext;\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".\" + wbext, RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\td = $cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(RTF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, header/*:number*/, hdr/*:Array*/, dense/*:boolean*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw && (val.t !== \"n\" || (val.t === \"n\" && o.rawNumbers !== false)) ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar out/*:Array*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array*/ = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array*/ = [], C;\n\tvar cmds/*:Array*/ = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell/*:Cell*/;\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array*/ = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = ws_get_cell_stub(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nfunction book_new()/*:Workbook*/ {\n\treturn { SheetNames: [], Sheets: {} };\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0) {\n\t\tvar m = name.match(/(^.*?)(\\d+)$/);\n\t\ti = m && +m[2] || 0;\n\t\tvar root = m && m[1] || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row/*:?string*/ = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n set_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\n","
\r\n
\r\n
\r\n

\r\n {{'worker.title'|translate}}\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 \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n {{ countCheckedRow() }} {{'labels.selected'|translate}}\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 \r\n \r\n \r\n {{'labels.first-name-and-last-name'|translate}}\r\n \r\n {{'labels.email'|translate}}\r\n {{'labels.phone-number'|translate}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{item.data.FN}} {{item.data.LN}}\r\n \r\n {{item.data.Em || '-'}}\r\n {{item.data.CN || '-'}}\r\n \r\n \r\n \r\n
\r\n
","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { debounceTime, distinctUntilChanged, Subject, Subscription } from 'rxjs';\r\n\r\nimport {TabMenuModule} from 'primeng/tabmenu';\r\nimport {MenuItem} from 'primeng/api';\r\nimport {InputTextModule} from 'primeng/inputtext';\r\nimport {ButtonModule} from 'primeng/button';\r\nimport {TableModule} from 'primeng/table';\r\nimport {Paginator, PaginatorModule} from 'primeng/paginator';\r\nimport {CheckboxModule} from 'primeng/checkbox';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\n\r\nimport { ViewWorkers, WorkerService } from '@layout/driver/services/worker.service';\r\nimport { Driver } from '@commons/models/domain/Driver';\r\nimport { exportToXLS } from '@src/app/utils/export-files';\r\nimport { NewNavigationService } from '@shared/services/new-navigation.service';\r\n\r\n@Component({\r\n selector: 'app-workers',\r\n standalone: true,\r\n imports: [CommonModule, TabMenuModule, TranslateModule, FormsModule, InputTextModule, ButtonModule, TableModule, PaginatorModule, CheckboxModule, ReactiveFormsModule],\r\n templateUrl: './workers.component.html',\r\n styleUrls: ['./workers.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WorkersComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n @ViewChild('containerList') private containerListRef: ElementRef;\r\n @ViewChild('paginator') private paginatorRef: Paginator;\r\n\r\n public activeView: ViewWorkers = ViewWorkers.Active;\r\n public tabMenu: MenuItem[] = [\r\n {label: this.translateService.instant('worker.active'), command: () => this.onChangeView(ViewWorkers.Active) },\r\n {label: this.translateService.instant('worker.archive'), command: () => this.onChangeView(ViewWorkers.Archive) },\r\n ];\r\n public activeTabOption: MenuItem = this.tabMenu[0];\r\n\r\n public isVisibleList: boolean;\r\n public listHeight: string;\r\n public isCheckedAll: boolean = false;\r\n public rowsPerPage: number = 20;\r\n public totalRecordsDisplayedList: number = 0;\r\n\r\n public searchWorkersValue: string;\r\n public searchWorkersValue$: Subject = new Subject();\r\n\r\n public currentListPageData: { data: Driver, isChecked: boolean }[] = [];\r\n public filteredAllWorkersList: Driver[] = [];\r\n\r\n private readonly ComponentSubsc = new Subscription();\r\n public readonly VIEW = ViewWorkers;\r\n \r\n constructor(\r\n public workerService: WorkerService,\r\n private changeDetRef: ChangeDetectorRef,\r\n private navigationService: NewNavigationService,\r\n private translateService: TranslateService,\r\n ) { }\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterViewInit(): void {\r\n this.onChangeSearchValue();\r\n this.setListHeight();\r\n this.updateCurrentPageData(0);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n }\r\n\r\n public openWorkerForm(data?: Driver): void {\r\n this.navigationService.toWorkerForm(data);\r\n }\r\n\r\n public exportFiles(): void {\r\n const listWorkers = this.workerService.getAllFilteredList?.length \r\n ? this.workerService.getAllFilteredList\r\n : (this.activeView === ViewWorkers.Active ? this.workerService.allWorkers : this.workerService.archivedDrivers);\r\n\r\n if (listWorkers?.length) {\r\n exportToXLS(listWorkers);\r\n }\r\n }\r\n\r\n public onChangePaginate(event: any): void {\r\n this.isCheckedAll = false;\r\n const pageIndex = event.page;\r\n this.rowsPerPage = event.rows;\r\n this.updateCurrentPageData(pageIndex);\r\n }\r\n\r\n private updateCurrentPageData(pageIndex: number): void {\r\n const body = {\r\n view: this.activeView,\r\n pagination: { pageIndex, rows: this.rowsPerPage },\r\n searchValue: this.searchWorkersValue\r\n };\r\n const data = this.workerService.getListData(body);\r\n this.totalRecordsDisplayedList = data.totalRecordsInList;\r\n this.currentListPageData = data.listData;\r\n this.changeDetRef.markForCheck();\r\n }\r\n\r\n public onChangeValueCheckedAll(value: boolean): void {\r\n this.currentListPageData.forEach((item) => {\r\n if (!item.data.U) {\r\n item.isChecked = value;\r\n }\r\n });\r\n }\r\n\r\n public countCheckedRow(): number {\r\n return this.currentListPageData.filter(item => item.isChecked)?.length;\r\n }\r\n\r\n private setListHeight(): void {\r\n this.listHeight = (this.containerListRef.nativeElement.clientHeight - 32) + 'px';\r\n this.isVisibleList = true;\r\n }\r\n\r\n private onChangeSearchValue(): void {\r\n const sub = this.searchWorkersValue$\r\n .pipe(\r\n distinctUntilChanged(),\r\n debounceTime(200),\r\n )\r\n .subscribe(() => {\r\n if (this.paginatorRef.currentPage() === 0) {\r\n this.onChangePaginate({ page: 0, rows: this.rowsPerPage });\r\n return;\r\n }\r\n this.paginatorRef.changePage(0);\r\n });\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private onChangeView(view: ViewWorkers): void {\r\n this.searchWorkersValue = '';\r\n this.searchWorkersValue$.next('');\r\n this.activeView = view;\r\n this.paginatorRef.changePage(0);\r\n }\r\n\r\n public onWorkersArchived(): void {\r\n const listToArchive = this.currentListPageData.filter(item => item.isChecked).map(el => el.data);\r\n this.workerService.archiveWorkers(listToArchive);\r\n this.onChangePaginate({ page: this.paginatorRef.getPage(), rows: this.rowsPerPage });\r\n }\r\n\r\n public onWorkersRestore(): void {\r\n const listToRestore = this.currentListPageData.filter(item => item.isChecked).map(el => el.data);\r\n this.workerService.restoreWorkers(listToRestore);\r\n this.onChangePaginate({ page: this.paginatorRef.getPage(), rows: this.rowsPerPage });\r\n }\r\n\r\n}\r\n","import * as XLSX from 'xlsx';\r\n\r\nimport { Driver } from \"@commons/models/domain/Driver\";\r\n\r\nexport function exportToXLS(data: Driver[], fileName = 'data.xlsx') {\r\n if (!Array.isArray(data) || data.length === 0) {\r\n console.error(\"Dane muszą być tablicą obiektów.\");\r\n return;\r\n }\r\n\r\n const formattedData = data.map(item => ({\r\n 'Imię': item.FN || '',\r\n 'Nazwisko': item.LN || '',\r\n 'Email': item.Em || '',\r\n 'Numer telefonu': item.CN || ''\r\n }));\r\n const worksheet = XLSX.utils.json_to_sheet(formattedData);\r\n const workbook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(workbook, worksheet, 'Dane');\r\n XLSX.writeFile(workbook, fileName);\r\n}\r\n","
\r\n
\r\n
\r\n \r\n

\r\n {{'worker.configure-worker'|translate}}\r\n

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{'worker.basic-data'|translate}}\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 {{'worker.archive-worker'|translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport {InputTextModule} from 'primeng/inputtext';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\n\r\nimport { WorkerService } from '@layout/driver/services/worker.service';\r\nimport { Driver } from '@commons/models/domain/Driver';\r\nimport { WorkerModel } from '@shared/models/worker.model';\r\nimport { WorkerHttpService } from '@layout/driver/http-services/worker-http.service';\r\n\r\n@Component({\r\n selector: 'app-workers-add-form',\r\n standalone: true,\r\n imports: [CommonModule, InputTextModule, ButtonModule, FormsModule, ReactiveFormsModule, TranslateModule],\r\n templateUrl: './workers-add-form.component.html',\r\n styleUrls: ['./workers-add-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WorkersAddFormComponent implements OnInit {\r\n\r\n @Output() public onClickBack$: EventEmitter = new EventEmitter();\r\n\r\n public form: FormGroup = new FormGroup({\r\n firstName: new FormControl('', [Validators.required]),\r\n lastName: new FormControl('', [Validators.required]),\r\n phone: new FormControl(''),\r\n email: new FormControl(''),\r\n });\r\n public isSaving: boolean;\r\n public isAddNewWorker: boolean = true;\r\n public editedWorkerData?: Driver;\r\n\r\n private get workerDataPassed(): { data: Driver } | null {\r\n try {\r\n const workerData = this.activeRoute.snapshot.params['workerData'];\r\n return workerData ? JSON.parse(workerData) : null;\r\n }\r\n catch {\r\n return null;\r\n }\r\n }\r\n\r\n constructor(\r\n private workerService: WorkerService,\r\n private workerHttpService: WorkerHttpService,\r\n private activeRoute: ActivatedRoute,\r\n private translateService: TranslateService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.editedWorkerData = this.workerDataPassed?.data;\r\n if (this.editedWorkerData) {\r\n this.initFormData();\r\n this.isAddNewWorker = false;\r\n }\r\n }\r\n\r\n public archiveWorker(): void {\r\n this.workerService.archiveWorkers([this.editedWorkerData as Driver]);\r\n this.back();\r\n }\r\n\r\n public back(): void {\r\n this.onClickBack$.emit();\r\n }\r\n\r\n public submit(): void {\r\n this.form.markAllAsTouched();\r\n\r\n if (this.form.valid) {\r\n this.isSaving = true;\r\n const worker = this.prepareDataWorker();\r\n const driver = this.workerToDriver(worker);\r\n this.isAddNewWorker ? this.addWorkerToDb(worker, driver) : this.updateWorkerToDb(worker, driver);\r\n return;\r\n }\r\n alert(this.translateService.instant('worker.error-form-add'));\r\n }\r\n\r\n private addWorkerToDb(worker: WorkerModel, driver: Driver): void {\r\n this.workerHttpService.add(worker).subscribe({\r\n next: (workerID) => {\r\n this.afterAddWorkerToDb(workerID, driver);\r\n },\r\n error: () => this.onError(),\r\n });\r\n }\r\n\r\n private updateWorkerToDb(worker: WorkerModel, driver: Driver): void {\r\n this.workerHttpService.update(worker).subscribe({\r\n next: () => {\r\n this.afterUpdateWorker(driver);\r\n },\r\n error: () => this.onError(),\r\n });\r\n }\r\n\r\n private onError(): void {\r\n alert(this.translateService.instant('errorTryAgain'));\r\n this.isSaving = false;\r\n }\r\n\r\n private afterUpdateWorker(driver: Driver): void {\r\n this.workerService.updateWorker(driver);\r\n this.isSaving = false;\r\n this.back();\r\n }\r\n\r\n private afterAddWorkerToDb(workerID: number, driver: Driver): void {\r\n driver = { \r\n ...driver,\r\n Id: workerID\r\n };\r\n this.workerService.addNewWorkerTolist(driver);\r\n this.isSaving = false;\r\n this.back();\r\n }\r\n\r\n private initFormData(): void {\r\n this.form.patchValue({\r\n firstName: this.editedWorkerData?.FN,\r\n lastName: this.editedWorkerData?.LN,\r\n phone: this.editedWorkerData?.CN,\r\n email: this.editedWorkerData?.Em,\r\n });\r\n }\r\n\r\n private prepareDataWorker(): WorkerModel {\r\n const worker = {\r\n Id: this.editedWorkerData?.Id || 0,\r\n FirstName: this.form.value.firstName,\r\n LastName: this.form.value.lastName,\r\n PhoneNumber: this.form.value.phone,\r\n CellphoneNumber: this.form.value.phone,\r\n Email: this.form.value.email,\r\n FourDriverAccess: false,\r\n } as WorkerModel;\r\n\r\n if (this.isAddNewWorker) {\r\n worker.OrganizationalUnitId = 1;\r\n worker.JobPositionId = 1;\r\n worker.AssignedVehicle = undefined;\r\n }\r\n return worker;\r\n }\r\n\r\n private workerToDriver(worker: WorkerModel): Driver {\r\n const driver = {} as Driver;\r\n driver.Id = worker.Id;\r\n driver.FN = worker.FirstName;\r\n driver.LN = worker.LastName;\r\n driver.Pn = worker.PhoneNumber;\r\n driver.CN = worker.CellphoneNumber;\r\n driver.Em = worker.Email ?? '';\r\n return driver;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

\r\n {{'listConfiguration'|translate}}\r\n

\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n {{'labels.select'|translate}}\r\n \r\n
\r\n
\r\n\r\n \r\n {{'configurationListSelectParamVehicle'|translate}}\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {{item.description}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{'sending'|translate}}\r\n \r\n \"\"\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output } from '@angular/core';\r\n\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nexport const LOCAL_STORAGEV_CONFIG_VALULE = 'config-list-vehicle';\r\n\r\nexport enum VehicleListTypeDataVisible {\r\n Speed = 12,\r\n Mileage = 5,\r\n Turnover = 7,\r\n Voltage = 6,\r\n Etoll = 19,\r\n};\r\n\r\n@Component({\r\n selector: 'app-configurator-list-vehicle',\r\n templateUrl: './configurator-list-vehicle.component.html',\r\n styleUrls: ['./configurator-list-vehicle.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ConfiguratorListVehicleComponent implements OnInit {\r\n public readonly VEHICLE_LIST_TYPE_DATA = VehicleListTypeDataVisible;\r\n\r\n private readonly MOCK_VEHICLE_DATA: any = {\r\n \"Id\": 682,\r\n \"CS\": 0,\r\n \"LD\": \"\",\r\n \"DR\": 0,\r\n \"LL\": {\r\n \"Id\": 5121,\r\n \"Lt\": 51.9599333,\r\n \"Ln\": 20.1481116,\r\n \"Cr\": \"\",\r\n \"Ct\": this.translate.instant('currentPositionCars'),\r\n \"Ds\": \"\",\r\n \"Br\": \"\",\r\n \"St\": \"\",\r\n \"Rd\": \"\",\r\n \"Zp\": \"\",\r\n \"Hs\": \"\"\r\n },\r\n \"MS\": 0,\r\n \"Nm\": this.translate.instant('labels.vehicle'),\r\n \"RN\": null,\r\n \"St\": 1,\r\n \"MF\": null,\r\n \"SentGeoId\": \"tekom01_682\",\r\n \"SN\": \"357544370807782\",\r\n \"BN\": \"Z22-HP91TT-3\",\r\n \"DP\": \"3628\",\r\n \"RE\": true,\r\n \"SE\": true,\r\n \"ES\": 2,\r\n \"SG\": 2,\r\n \"TS\": -1,\r\n \"ControlIndicators\": [],\r\n \"LastUpdated\": \"2024-02-06T13:55:46Z\",\r\n \"LastUpdatedFrom\": \"INDICATORS_GEO_LOAD\",\r\n \"LastDriver\": {\r\n FN: this.translate.instant('labels.driver'),\r\n }\r\n };\r\n\r\n @Output() private onSubmit$: EventEmitter = new EventEmitter();\r\n @Output() private onHide$: EventEmitter = new EventEmitter();\r\n\r\n public options = [\r\n {\r\n title: this.translate.instant('vehicle-indicator.speed'),\r\n labelId: 'speed',\r\n value: VehicleListTypeDataVisible.Speed,\r\n description: '90 km/h'\r\n },\r\n {\r\n title: this.translate.instant('vehicle-indicator.counter'),\r\n labelId: 'mileage',\r\n value: VehicleListTypeDataVisible.Mileage,\r\n description: '123 545 km'\r\n },\r\n {\r\n title: this.translate.instant('vehicle-indicator.rpm'),\r\n labelId: 'Turnover',\r\n value: VehicleListTypeDataVisible.Turnover,\r\n description: '900 rpm'\r\n },\r\n {\r\n title: this.translate.instant('vehicle-indicator.voltage'),\r\n labelId: 'Voltage',\r\n value: VehicleListTypeDataVisible.Voltage,\r\n description: '12,0 V'\r\n },\r\n ];\r\n\r\n public selectedOptionValue: VehicleListTypeDataVisible;\r\n public vehicle: Vehicle;\r\n\r\n constructor(private translate: TranslateService) {\r\n this.vehicle = new Vehicle(this.MOCK_VEHICLE_DATA, this.translate);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.selectedOptionValue = Number(localStorage.getItem(LOCAL_STORAGEV_CONFIG_VALULE) || VehicleListTypeDataVisible.Speed);\r\n }\r\n\r\n public submit(): void {\r\n this.onSubmit$.emit(this.selectedOptionValue);\r\n localStorage.setItem(LOCAL_STORAGEV_CONFIG_VALULE, `${ this.selectedOptionValue }`);\r\n }\r\n\r\n public onHide(): void {\r\n this.onHide$.emit();\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n \r\n {{optionsSelectedCount}}\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n {{_data.dropdownLabel}}\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
\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
\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
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FilterVehicleType } from '@src/app/enum/filters-vehicle.enum';\r\n\r\nimport { isEqual } from 'lodash';\r\n\r\nimport { ICheckboxValueFilters, IFilterVehicle, ISubmitFilters } from '@src/app/interfaces/filters-vehicle.interface';\r\nimport { OverlayPanel } from 'primeng/overlaypanel';\r\nimport { BehaviorSubject, Subscription, debounceTime } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-filter-control',\r\n templateUrl: './filter-control.component.html',\r\n styleUrls: ['./filter-control.component.scss'],\r\n})\r\nexport class FilterControlComponent implements OnInit, OnDestroy {\r\n public readonly FILTER_VEHICLE_TYPE = FilterVehicleType;\r\n\r\n @Input('selectedControlValue') public set selectedControlValue(data: ISubmitFilters) {\r\n if (data && !isEqual(data.selectedControlValue, this._selectedControlValue)) {\r\n this._selectedControlValue = data.selectedControlValue;\r\n }\r\n }\r\n @Input('data') public set setData(data: IFilterVehicle) {\r\n this._data = data;\r\n this.setControls();\r\n };\r\n @Input() public optionsSelectedCount: number;\r\n @Input() public isVisibleSearchInput: boolean;\r\n\r\n @Output() public onSubmitFilters$: EventEmitter = new EventEmitter();\r\n\r\n public _selectedControlValue: any;\r\n public checkboxValues: ICheckboxValueFilters[] = [];\r\n public isLoading: boolean;\r\n public _data: IFilterVehicle;\r\n\r\n public searchInputValue$: BehaviorSubject = new BehaviorSubject(null as any);\r\n public searchValue: string = '';\r\n public searchValuePipe: string = '';\r\n\r\n private ComponentSubsc: Subscription = new Subscription();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.onChangeSearchInputValue();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n }\r\n\r\n public submit(modal: OverlayPanel): void {\r\n this.onSubmitFilters$.emit({\r\n selectedControlValue: this._selectedControlValue,\r\n checkboxValues: this.checkboxValues.filter(item => item.checkboxValue),\r\n });\r\n modal.hide();\r\n }\r\n\r\n public onShowDropdown(): void {\r\n document.getElementsByClassName('p-overlaypanel-content').item(0)?.classList.add('overlay-unset-padding');\r\n }\r\n\r\n public clearFilters(modal: OverlayPanel): void {\r\n this.clearFiltersValue();\r\n this.submit(modal);\r\n }\r\n\r\n public clearFiltersValue(): void {\r\n this._selectedControlValue = null;\r\n this.clearCheckboxValues();\r\n }\r\n\r\n private onChangeSearchInputValue(): void {\r\n const sub = this.searchInputValue$.pipe(debounceTime(150)).subscribe(\r\n (data) => {\r\n this.searchValuePipe = data;\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private setControls(): void {\r\n if (this._data.type === FilterVehicleType.Group) {\r\n this.checkboxValues = this._data.options.map(\r\n (item) => ({\r\n optionValue: item.value,\r\n checkboxValue: false, // TODO:\r\n data: item.data,\r\n })\r\n );\r\n }\r\n }\r\n\r\n private clearCheckboxValues(): void {\r\n this.checkboxValues = this.checkboxValues.map(item => ({...item, checkboxValue: false}));\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CacheService {\r\n\r\n private cache: any = {};\r\n\r\n\r\n setCache(key: string, obj: any) {\r\n const d = JSON.stringify({ data: obj });\r\n this.cache[key] = d;\r\n // window.sessionStorage.setItem(key, d);\r\n }\r\n\r\n\r\n getCache(key: string): any {\r\n const d = this.cache[key] || '{}'; // window.sessionStorage.getItem(key) || '{}';\r\n const r = JSON.parse(d);\r\n return r.data;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'sortTags' })\r\nexport class SortTagsPipe implements PipeTransform {\r\n public transform(orginalItems: any[], phrase: string): any {\r\n\r\n let items = JSON.parse(JSON.stringify(orginalItems));\r\n\r\n if (items && phrase) {\r\n\r\n items = items.sort((a: any, b: any) => {\r\n const _phrase = phrase.toLowerCase();\r\n const _a = a.L.toLowerCase();\r\n const _b = b.L.toLowerCase();\r\n\r\n const _ai = _a.indexOf(_phrase);\r\n const _bi = _b.indexOf(_phrase);\r\n\r\n // w obu wystepuje\r\n if (_ai !== -1 && _bi !== -1) {\r\n if (_ai > _bi) {\r\n return 1;\r\n } else if (_ai < _bi) {\r\n return -1;\r\n } else {\r\n // w przypoadku jak jest to samo sortujemy standardowo\r\n if (_a.length > _b.length) {\r\n return 1;\r\n } else if (_a.length < _b.length) {\r\n return -1;\r\n } else {\r\n if (_a > _b) {\r\n return 1;\r\n } else if (_a < _b) {\r\n return -1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n }\r\n } else if (_ai !== -1 && _bi === -1) {\r\n return 1;\r\n } else if (_bi !== -1 && _ai === -1) {\r\n return 1;\r\n } else {\r\n\r\n if (_a > _b) {\r\n return 1;\r\n } else if (_a < _b) {\r\n return -1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n });\r\n\r\n } else if (items) {\r\n items = items.sort((a: any, b: any) => {\r\n const _a = a.L.toLowerCase();\r\n const _b = b.L.toLowerCase();\r\n if (_a > _b) {\r\n return 1;\r\n } else if (_a < _b) {\r\n return -1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n return items;\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
{{'tags.label' | translate}}
\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n {{'labels.select' | translate}}\r\n {{'tags.loading' | translate}}\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 = 0\">\r\n \r\n
\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
{{'tags.no-found' | translate}}\r\n \"{{entryControlText}}\"\r\n
\r\n
\r\n {{'messages.change-search-criteria' | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n 0\">\r\n
0\">\r\n \r\n
    \r\n \r\n
  • \r\n {{ tag.L }}\r\n \r\n
  • \r\n \r\n
\r\n
\r\n
\r\n \r\n
    \r\n \r\n
  • \r\n {{ tag.L }}\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
0\">\r\n\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
    \r\n \r\n
  • \r\n {{ tag.L }}\r\n x\r\n
  • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n OnDestroy,\r\n HostListener,\r\n EventEmitter,\r\n Output,\r\n // AnimationStyles,\r\n ViewChild,\r\n ElementRef,\r\n AfterViewInit,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\n\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\nimport {of, Subject, Subscription, switchMap } from 'rxjs';\r\n\r\nimport { TagsListFilterRequest } from '../../models/remote.request/TagsListFilterRequest';\r\nimport { Tag } from '../../models/domain/Tag';\r\n\r\nimport { NotificationService } from '../../services/notification/notification.service';\r\nimport { WebAccessService } from '../../services/web.access/web-access.service';\r\n\r\n@Component({\r\n selector: 'tk-tag-picker',\r\n styleUrls: ['./tag-picker.component.less'],\r\n templateUrl: './tag-picker.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class TagPickerComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n @Input() public tagType?: number;\r\n\r\n @Output()\r\n onHeightChanged: EventEmitter = new EventEmitter();\r\n\r\n @Input() public numTagsToShow = 10000;\r\n\r\n private numberOfTagsInUsed = 5;\r\n\r\n @Input()\r\n public mode = 'lite';\r\n\r\n @Output() public onSelectedTags: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('entry') entryRef?: ElementRef;\r\n\r\n public form?: FormGroup;\r\n\r\n private allTags: Tag[] = [];\r\n\r\n public availableTags: Tag[] = [];\r\n\r\n @Input()\r\n public selectedTags: Tag[] = [];\r\n\r\n public lastUsed: number[] = [];\r\n\r\n public lastUsedTags: Tag[] = [];\r\n public filteredTags: Tag[] = [];\r\n\r\n private tagsSub?: Subscription;\r\n\r\n public isEntryVisible = false;\r\n\r\n private isEntryVisibleStream: Subject = new Subject();\r\n\r\n private isEntryVisibleSub?: Subscription;\r\n\r\n public availableTagIndex = 0;\r\n\r\n public isFocusOutBlocked = false;\r\n\r\n public entryControl: FormControl;\r\n\r\n public entryControlText: string = '';\r\n\r\n public tagListHeight = 150;\r\n isLoading = false;\r\n areTagsLoaded = false;\r\n\r\n constructor(\r\n private $fb: FormBuilder,\r\n private $msg: NotificationService,\r\n private $webAccess: WebAccessService,\r\n private $element: ElementRef\r\n ) {\r\n this.entryControl = this.$fb.control(null);\r\n }\r\n\r\n\r\n /**\r\n * Ng on init lifecycle hook\r\n */\r\n public ngOnInit(): void {\r\n\r\n // setTimeout(() => this.showEntry(), 1000);\r\n\r\n // zmiany na entry\r\n this.entryControl.valueChanges.subscribe(change => {\r\n\r\n this.entryControlText = (change || '').toLowerCase();\r\n\r\n const unselectedTags = this.allTags.filter(x => !this.selectedTags.some(y => y.Id === x.Id)\r\n && !this.lastUsed.some(y => y === x.Id));\r\n\r\n this.availableTags = unselectedTags.filter(tag => tag.L.toLowerCase().indexOf(this.entryControlText!) !== -1)\r\n .slice(0, this.numTagsToShow);\r\n\r\n // pobranie ostatnio uztych\r\n const lastUsedTags = this.allTags\r\n .filter(x => this.lastUsed.some(y => y === x.Id))\r\n .filter(tag => tag.L.toLowerCase().indexOf(this.entryControlText!) !== -1);\r\n\r\n lastUsedTags.sort((x, y) => x.L.localeCompare(y.L));\r\n lastUsedTags.forEach(tag => {\r\n (tag).LastUsed = true;\r\n });\r\n\r\n this.availableTags = lastUsedTags.concat(this.availableTags);\r\n\r\n let i = 0;\r\n this.availableTags.forEach(tag => {\r\n (tag).Index = i++;\r\n });\r\n\r\n this.lastUsedTags = this.availableTags.filter(t => (t).LastUsed === true);\r\n this.filteredTags = this.availableTags.filter(t => (t).LastUsed !== true);\r\n\r\n this.availableTagIndex = 0;\r\n\r\n this.emitHeightChange();\r\n\r\n });\r\n // zaladowanie listy tagow\r\n\r\n this.emitHeightChange();\r\n }\r\n\r\n private loadTags() {\r\n this.isLoading = true;\r\n\r\n of({Phrase: '', TagType: this.tagType})\r\n .pipe(switchMap(request => this.$webAccess.GetTagsListByFilter(request)))\r\n .subscribe(response => {\r\n this.allTags = response.Result;\r\n this.allTags.sort((x, y) => x.L.localeCompare(y.L));\r\n this.isLoading = false;\r\n this.areTagsLoaded = true;\r\n this.isEntryVisibleStream.next(true);\r\n });\r\n }\r\n\r\n /**\r\n * Ng after view init lifecycle hook\r\n */\r\n public ngAfterViewInit(): void {\r\n\r\n // Build and subscribe stream of entry's visibility changes\r\n this.isEntryVisibleSub = this.isEntryVisibleStream.subscribe(isVisible => {\r\n this.isEntryVisible = isVisible;\r\n if (isVisible) {\r\n setTimeout(() => {\r\n this.entryControl.setValue('');\r\n this.entryRef?.nativeElement.focus();\r\n }, 0);\r\n } else {\r\n this.entryControl.setValue('');\r\n }\r\n\r\n this.emitHeightChange();\r\n });\r\n\r\n this.emitHeightChange();\r\n }\r\n\r\n\r\n /**\r\n * Ng on destroy lifecycle hook\r\n */\r\n public ngOnDestroy(): void {\r\n\r\n if (this.tagsSub) {\r\n this.tagsSub.unsubscribe();\r\n }\r\n if (this.isEntryVisibleSub) {\r\n this.isEntryVisibleSub.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Handles keyboard's keydown event\r\n * @param event keyboard event\r\n */\r\n @HostListener('keydown', ['$event'])\r\n public onKeyDown(event: KeyboardEvent): void {\r\n\r\n switch (event.keyCode) {\r\n\r\n // case 13: // Enter\r\n\r\n // this.selectTag(this.availableTagIndex);\r\n // break;\r\n\r\n // case 38: // Arrow down\r\n\r\n // this.availableTagIndex--;\r\n // if (this.availableTagIndex < 0) {\r\n // this.availableTagIndex = 0;\r\n // }\r\n\r\n // document.getElementById('tag-available').scrollTop = 0;\r\n\r\n // break;\r\n\r\n // case 40: // Arrow up\r\n\r\n // this.availableTagIndex++;\r\n // if (this.availableTagIndex > this.numTagsToShow - 1) {\r\n // this.availableTagIndex = this.numTagsToShow - 1;\r\n // }\r\n\r\n // // document.getElementById('tag-available').scrollTop = 0;\r\n\r\n // break;\r\n\r\n case 27: // Escape\r\n\r\n this.isEntryVisibleStream.next(false);\r\n break;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * zdarzenie opuszczenia okna edycji tagolw\r\n */\r\n @HostListener('focusout', ['$event'])\r\n public onFocusOut(event: Event): void {\r\n this.closeEntry();\r\n }\r\n\r\n closeEntry() {\r\n setTimeout(() => {\r\n if (this.isFocusOutBlocked !== true) {\r\n this.isEntryVisibleStream.next(false);\r\n }\r\n }, 300);\r\n }\r\n\r\n\r\n /**\r\n * blokowanie focus out\r\n */\r\n public blockFocusOut(flag: boolean) {\r\n this.isFocusOutBlocked = flag;\r\n }\r\n\r\n /**\r\n * Shows entry\r\n */\r\n public showEntry(): void {\r\n if (!this.areTagsLoaded)\r\n this.loadTags();\r\n else\r\n this.isEntryVisibleStream.next(true);\r\n }\r\n\r\n private clearHistory() {\r\n while (this.lastUsed.length >= this.numberOfTagsInUsed) {\r\n const TagId = this.lastUsed.shift();\r\n const idx = this.availableTags.findIndex(i => (i).TagId === TagId);\r\n const p = this.availableTags[idx];\r\n (p).LastUsed = false;\r\n }\r\n }\r\n\r\n /**\r\n * Removes selected tag with given index\r\n * @param index index of selected tag to remove\r\n */\r\n public removeTag(index: number): void {\r\n\r\n setTimeout(() => {\r\n const removed = this.selectedTags[index];\r\n this.selectedTags.splice(index, 1);\r\n this.selectedTags.sort((x, y) => x.L.localeCompare(y.L));\r\n this.clearEntry();\r\n this.onSelectedTags.emit(this.selectedTags);\r\n this.emitHeightChange();\r\n }, 100);\r\n }\r\n\r\n\r\n /**\r\n * Removes all selected tags\r\n */\r\n public removeAllTags(): void {\r\n setTimeout(() => {\r\n this.availableTags = this.allTags.slice();\r\n this.availableTags.sort((x, y) => x.L.localeCompare(y.L));\r\n this.selectedTags = [];\r\n this.onSelectedTags.emit(this.selectedTags);\r\n this.emitHeightChange();\r\n }, 100);\r\n }\r\n\r\n\r\n /**\r\n * Selects available tag with given index\r\n * @param index index of avaiable tag to select\r\n */\r\n public selectTag(index: number): void {\r\n\r\n setTimeout(() => {\r\n\r\n // wybranie po tak\r\n const selectedIdx = this.availableTags.findIndex(i => (i).Index === index);\r\n const selected = this.availableTags[selectedIdx];\r\n\r\n if (selected) {\r\n\r\n // dodanie do wybranych\r\n // jezeli dany tag jest juz wybrany to nie dodajemy\r\n const _selectedIdx = this.selectedTags.findIndex(i => (i).Index === index);\r\n if (!(_selectedIdx >= 0)) {\r\n this.selectedTags.push(selected);\r\n this.selectedTags.sort((x, y) => x.L.localeCompare(y.L));\r\n }\r\n\r\n this.clearHistory();\r\n\r\n // obsluga ostatnio uzytych\r\n if (this.lastUsed.indexOf(selected.Id) === -1) {\r\n this.lastUsed.push(selected.Id);\r\n }\r\n\r\n\r\n\r\n // wyslanie info\r\n this.onSelectedTags.emit(this.selectedTags);\r\n this.isEntryVisibleStream.next(false);\r\n\r\n }\r\n\r\n\r\n this.emitHeightChange();\r\n\r\n }, 100);\r\n }\r\n\r\n\r\n public emitHeightChange() {\r\n // pobranie wysokosci elementu\r\n const height = this.$element.nativeElement.offsetParent.clientHeight;\r\n this.onHeightChanged.emit(height);\r\n\r\n // obliczenie pokaza rozwiniecia\r\n if (this.mode === 'lite') {\r\n const bb = this.$element.nativeElement.getBoundingClientRect();\r\n this.tagListHeight = document.documentElement.clientHeight - bb.top - 40;\r\n\r\n } else {\r\n this.tagListHeight = 150;\r\n }\r\n\r\n }\r\n\r\n public getLastUsed() {\r\n\r\n }\r\n\r\n public getToSelect() {\r\n\r\n }\r\n\r\n /**\r\n * Clears entry's value\r\n */\r\n public clearEntry(): void {\r\n\r\n this.entryControl.setValue('');\r\n }\r\n\r\n public clearAndCloseEntry() {\r\n this.clearEntry();\r\n this.closeEntry();\r\n }\r\n}\r\n","export class UUID {\r\n private static S4(): string {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n }\r\n\r\n // then to call it, plus stitch in '4' in the third group\r\n public static generate() {\r\n return (\r\n UUID.S4() +\r\n UUID.S4() + '-' +\r\n UUID.S4() + '-4' +\r\n UUID.S4().substr(0, 3) + '-' +\r\n UUID.S4() + '-' +\r\n UUID.S4() +\r\n UUID.S4() +\r\n UUID.S4()).toLowerCase();\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
\r\n
\r\n
\r\n\r\n
\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n forwardRef,\r\n OnInit,\r\n Input,\r\n ContentChild,\r\n TemplateRef,\r\n ElementRef,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewChild\r\n} from '@angular/core';\r\n\r\nimport {\r\n NG_VALUE_ACCESSOR,\r\n ControlValueAccessor,\r\n FormControl,\r\n AbstractControl\r\n} from '@angular/forms';\r\n\r\nimport { UUID } from '../../models/other/UUID';\r\nimport { OptionItem } from '../../models/other/option-item.model';\r\nimport { SearchThemeEnum } from '../../enums/search-theme.enum';\r\nimport { SearchComponent } from '../search/search.component';\r\n\r\n@Component({\r\n selector: 'tk-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SelectComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n @ContentChild('itemTemplate') itemTemplate!: TemplateRef<{ $implicit: OptionItem | null }>;\r\n\r\n @Input() name?: string;\r\n @Input() formControl?: FormControl;\r\n @Input() options: Array = [];\r\n @Input() styleClass: any;\r\n @Input() label?: string;\r\n @Input() onlyValue = false;\r\n @Input() placeholder = 'proszę wybrać';\r\n @Input() clearable = false;\r\n\r\n @Input()\r\n public showSearchInput: boolean;\r\n\r\n @ViewChild('select__toggle', { read: ElementRef }) selectButton: any;\r\n @ViewChild(SearchComponent) searchComponent: any;\r\n\r\n public showList = false;\r\n public disabled?: boolean;\r\n public searchThemeEnum = SearchThemeEnum;\r\n public filteredOptions: Array = [];\r\n filterControl = new FormControl('');\r\n private _optionValue?: OptionItem;\r\n private searchInputHasFocus = false;\r\n private closeInterval: any;\r\n private searchPhrase: string;\r\n\r\n get optionValue(): OptionItem | null { \r\n return this._optionValue ?? null;\r\n }\r\n\r\n set optionValue(val: OptionItem) {\r\n this._optionValue = val;\r\n this.label = val ? val.label : this.label;\r\n if (this.onlyValue === true) {\r\n if (this._optionValue) {\r\n this._onChange(this._optionValue.value);\r\n } else {\r\n this._onChange(null);\r\n }\r\n } else {\r\n this._onChange(this._optionValue);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.name) {\r\n this.name = 'select_' + UUID.generate();\r\n }\r\n\r\n this.filterControl.valueChanges.subscribe(change => { this.filterOptions(change) });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n for (const propertyName in changes) {\r\n if (propertyName === 'options') {\r\n const selectedItem = this.options.find(o => o.value === this.formControl?.value);\r\n this.optionValue = selectedItem as OptionItem;\r\n this.formControl?.markAsPristine();\r\n this.filterOptions(this.searchPhrase);\r\n }\r\n }\r\n }\r\n\r\n _onChange = (_: any) => { };\r\n _onTouched = (_: any) => { };\r\n\r\n writeValue(obj: any): void {\r\n if (obj !== undefined && obj !== null) {\r\n if (this.onlyValue === true) {\r\n for (let i = this.options.length - 1; i >= 0; i--) {\r\n if (this.options[i].value === obj) {\r\n this._optionValue = this.options[i];\r\n break;\r\n }\r\n }\r\n } else {\r\n this._optionValue = obj;\r\n }\r\n } else {\r\n this._optionValue = undefined;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void { this._onChange = fn; }\r\n registerOnTouched(fn: any): void { this._onTouched = fn; }\r\n\r\n filterOptions(change: any): void {\r\n this.searchPhrase = (change || '').toLowerCase();\r\n\r\n if (this.searchPhrase !== '') {\r\n this.filteredOptions = this.options.filter(option => option.label?.toLowerCase().indexOf(this.searchPhrase) !== -1)\r\n } else {\r\n this.filteredOptions = this.options;\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n toggleShowList() {\r\n this.showList = !this.showList;\r\n if (this.showList === true) {\r\n if (!this.showSearchInput) {\r\n this.selectButton.nativeElement.focus();\r\n } else {\r\n this.searchComponent.setFocus();\r\n }\r\n }\r\n }\r\n\r\n selectItem(item: OptionItem) {\r\n this.optionValue = item;\r\n this.showList = false;\r\n this.filterControl.setValue('', { onlySelf: true });\r\n }\r\n\r\n onArrowBlur() {\r\n if (!this.showSearchInput) {\r\n this.closeInterval = setTimeout(() => this.showList = false, 200);\r\n }\r\n }\r\n\r\n onSearchFocus(flag: boolean): void {\r\n this.searchInputHasFocus = flag;\r\n if (!this.searchInputHasFocus) {\r\n this.closeInterval = setTimeout(() => this.showList = false, 300);\r\n }\r\n }\r\n\r\n onSearchClear(): void {\r\n clearTimeout(this.closeInterval);\r\n }\r\n\r\n onSearchEnter(): void {\r\n\r\n }\r\n\r\n constructor() {\r\n this.showSearchInput = false;\r\n this.searchInputHasFocus = false;\r\n this.searchPhrase = '';\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 {{ item.label }}\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\r\n \r\n {{ 'labels.clear' | translate }}\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
\r\n\r\n\r\n \r\n \r\n {{ item.label }}\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ item.data.count }}\r\n
\r\n {{ item.label }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n","import {\r\n Component, OnDestroy, Input, Output, EventEmitter, OnInit,\r\n ViewEncapsulation, ElementRef, ViewChild, AfterViewInit, OnChanges, SimpleChanges, ViewChildren, QueryList\r\n} from '@angular/core';\r\n\r\nimport { FormGroup, FormBuilder, FormControl } from '@angular/forms';\r\n\r\nimport { get, isBoolean, isNumber } from 'lodash';\r\n\r\nimport { VehicleListFilterRequest } from '../../../commons/models/remote.request/VehicleListFilterRequest';\r\nimport { VehicleService } from '@commons/services/vehicle/vehicle.service';\r\nimport { Tag } from '../../../commons/models/domain/Tag';\r\nimport { OptionItem } from '@commons/models/other/option-item.model';\r\nimport { Consts } from '../../../commons/consts/consts';\r\nimport { Config } from '../../../commons/models/domain/Config';\r\nimport { CacheService } from '@commons/services/cache/cache.service';\r\nimport {debounceTime, of, Subject, Subscription, switchMap} from 'rxjs';\r\nimport {TranslateHelperService} from \"@shared/services/translate-helper.service\";\r\nimport { IFilterVehicle, IFilterVehicleOption, IOnChangedTachoFilters, ISubmitFilters } from '@src/app/interfaces/filters-vehicle.interface';\r\nimport { FilterLockType, FilterVehicleType } from '@src/app/enum/filters-vehicle.enum';\r\nimport { TagsListFilterRequest } from '@commons/models/remote.request/TagsListFilterRequest';\r\nimport { WebAccessService } from '@commons/services/web.access/web-access.service';\r\nimport { FilterControlComponent } from './filter-control/filter-control.component';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PermissionService } from '@shared/services/permission.service';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-list-filter',\r\n templateUrl: './vehicle-list-filter.component.html',\r\n styleUrls: ['./vehicle-list-filter.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class VehicleListFilterComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\r\n\r\n private readonly columnKey = 'vehicles-list-displayed-column';\r\n\r\n @ViewChildren(FilterControlComponent) public filterControlsQuery: QueryList;\r\n /**\r\n * Mode - 'lite' or 'full'\r\n */\r\n @Input() public mode = 'lite';\r\n @Input() public isEtoll: boolean;\r\n @Input() public isTacho: boolean;\r\n\r\n @Input() public filters: IFilterVehicle[] = [];\r\n @Input() public tachoFilters: IOnChangedTachoFilters;\r\n\r\n @Input() public additionalParams: any;\r\n\r\n @ViewChild('filterBlock') filterBlock?: ElementRef;\r\n\r\n @Output() onHandleOnHeightChanged: EventEmitter = new EventEmitter();\r\n @Output() onFilterChanged: EventEmitter = new EventEmitter();\r\n @Output() onFilterTachoChanged: EventEmitter = new EventEmitter();\r\n\r\n baseHeight?: number;\r\n\r\n public inputHasFocus = false;\r\n\r\n\r\n /**\r\n * Form\r\n */\r\n public form: FormGroup;\r\n\r\n /**\r\n *\r\n */\r\n public displayFieldControl: FormControl;\r\n\r\n @Output()\r\n public onDisplayFieldChanged: EventEmitter = new EventEmitter();\r\n\r\n /**\r\n * Flag indicating whether filter request is being processed\r\n */\r\n public loading = false;\r\n\r\n /**\r\n * Filter request subject\r\n */\r\n public filterRequestSubject: Subject = new Subject();\r\n\r\n /**\r\n * Subscription to stream of form controls value changess\r\n */\r\n private readonly filterRequestSub: Subscription;\r\n\r\n /**\r\n * Subscription to stream of filtered vehicles\r\n */\r\n private readonly filteredVehiclesSub: Subscription;\r\n\r\n /**\r\n *\r\n */\r\n public vehicleStatuses: OptionItem[] = [];\r\n public vehicleTachoStatuses: OptionItem[] = [];\r\n public vehicleIndicatorTypes: OptionItem[] = [];\r\n public fieldTypes:OptionItem[] = [];\r\n\r\n public isVisibleLockFilter: boolean;\r\n\r\n /**\r\n *\r\n */\r\n public config?: Config;\r\n\r\n public filtersStatusTachoConfig: IFilterVehicle;\r\n public filtersStatusConfig: IFilterVehicle;\r\n public filtersGroupConfig: IFilterVehicle;\r\n public filtersLockConfig: IFilterVehicle;\r\n public filtersStatusCurrentFilters: ISubmitFilters;\r\n public filtersGroupCurrentFilters: ISubmitFilters;\r\n public filtersLockCurrentFilters: ISubmitFilters;\r\n\r\n /**\r\n * needed to find out if there is any result\r\n */\r\n public currentTotal = 0;\r\n\r\n private filteredStatuses = [\r\n { filterType: 0, statuses: [] }, // Wszystkie\r\n { filterType: 1, statuses: [3, 4, 5] },\r\n { filterType: 2, statuses: [1] },\r\n { filterType: 4, statuses: [2] },\r\n { filterType: 6, statuses: [6] }\r\n ];\r\n\r\n /**\r\n * Component constructor\r\n * @param $vehicles vehicles service\r\n */\r\n constructor(\r\n private $fb: FormBuilder,\r\n private $vehicle: VehicleService,\r\n private $cache: CacheService,\r\n private translateHelperService: TranslateHelperService,\r\n private $webAccess: WebAccessService,\r\n private translate: TranslateService,\r\n private permissionService: PermissionService,\r\n ) {\r\n\r\n // Prepare form and control\r\n this.form = this.$fb.group({\r\n Field: ['Description'],\r\n Status: [0],\r\n Phrase: [null],\r\n Tags: [[]],\r\n IgnitionBlockerState: [null],\r\n });\r\n\r\n\r\n // dane na liscie\r\n this.displayFieldControl = this.$fb.control(undefined);\r\n\r\n this.displayFieldControl.valueChanges.subscribe(c => {\r\n this.saveDisplayedColumn(c);\r\n this.onDisplayFieldChanged.emit(c);\r\n });\r\n\r\n this.form.valueChanges.pipe(debounceTime(500)).subscribe(changes => {\r\n const data = this.form.getRawValue();\r\n // Save in cache\r\n this.$cache.setCache('vehicle.filter', data);\r\n this.filterRequestSubject.next(data);\r\n });\r\n\r\n // Subscribe for filtered vehicles to count vehicles per status\r\n this.filteredVehiclesSub = this.$vehicle.getListFilteredCount$().subscribe(data => {\r\n this.loading = false;\r\n\r\n const nums = { 0: 0, 1: 0, 2: 0, 4: 0, 6: 0 };\r\n\r\n // jak jest counter to uzywamy\r\n if (data.counter) {\r\n for (const c of data.counter) {\r\n const filteredStatus = this.filteredStatuses.find(function (f) { return f.statuses.includes(c.Type); });\r\n if (filteredStatus) {\r\n (nums as any)[filteredStatus.filterType] = c.Count;\r\n }\r\n nums[0] += c.Count;\r\n }\r\n } else {\r\n const _vehicles = data.vehicles || [];\r\n for (const vehicle of _vehicles) {\r\n const filteredStatus = this.filteredStatuses.find(function (f) { return f.statuses.includes(vehicle.St); });\r\n if (filteredStatus) {\r\n (nums as any)[filteredStatus.filterType] += 1;\r\n }\r\n nums[0] += 1;\r\n }\r\n }\r\n\r\n const keys = Object.keys(nums);\r\n for (let i = keys.length - 1; i >= 0; i--) {\r\n const status = parseInt(keys[i], 10);\r\n const item = this.vehicleStatuses.find(_item => _item.value === status);\r\n if (item) {\r\n item.data = { count: (nums as any)[status] };\r\n }\r\n }\r\n this.currentTotal = nums[0];\r\n });\r\n\r\n // Subscribe for filter request changes to send a request\r\n // kolejnosc jest wazna ze wzgledu na to startWith\r\n this.filterRequestSub = this.filterRequestSubject.subscribe(_filter => {\r\n // kopia musi byc\r\n let filter = JSON.parse(JSON.stringify(_filter));\r\n\r\n // przetworzenie filtra\r\n if (filter && filter != null) {\r\n const isStatusNull = !filter.Status || filter.Status === 0;\r\n const isTagsNull = !filter.Tags || filter.Tags.length === 0;\r\n const isPhraseNull = !filter.Phrase;\r\n const additional = this.additionalParams != undefined && this.additionalParams != null;\r\n const isLockNull = filter?.IgnitionBlockerState === null;\r\n\r\n if (isStatusNull && isTagsNull && isPhraseNull && !additional && isLockNull) {\r\n filter = null;\r\n } else {\r\n // przygotowanie statusow\r\n const filteredStatus = this.filteredStatuses.find(function (f) { return f.filterType === filter.Status; });\r\n if (filteredStatus) {\r\n filter.Statuses = filteredStatus.statuses;\r\n } else {\r\n filter.Statuses = [];\r\n }\r\n\r\n\r\n // parametry dodatowe z filtra na liscie full\r\n if (additional) {\r\n if (this.additionalParams.BinaryParamName) {\r\n filter.BinaryParamName = this.additionalParams.BinaryParamName;\r\n }\r\n if (this.additionalParams.BinaryParamState && this.additionalParams.BinaryParamState !== 'all') {\r\n filter.BinaryParamState = this.additionalParams.BinaryParamState === 'on' ? 1 : 0;\r\n }\r\n }\r\n\r\n // przekazanie do list takze current total\r\n filter.CurrentTotal = this.currentTotal;\r\n }\r\n }\r\n\r\n const filterData = {\r\n ...filter,\r\n Tags: filter?.Tags || [],\r\n IgnitionBlockerState: isNumber(filter?.IgnitionBlockerState) ? filter.IgnitionBlockerState === FilterLockType.Lock ? true : false : undefined,\r\n };\r\n this.onFilterChanged.emit(filterData);\r\n this.loading = true;\r\n this.$vehicle.findVehicle(filterData as VehicleListFilterRequest);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.setDisplayedColumn();\r\n this.setTranslations();\r\n this.checkPermissionLock();\r\n\r\n // Get from cache\r\n const savedFilter = this.$cache.getCache('vehicle.filter');\r\n if (savedFilter) {\r\n this.form.patchValue(savedFilter);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes && changes['additionalParams']\r\n && changes['additionalParams'].currentValue\r\n && !changes['additionalParams'].firstChange\r\n ) {\r\n const data = this.form.getRawValue();\r\n this.filterRequestSubject.next(data);\r\n }\r\n }\r\n\r\n private checkPermissionLock(): void {\r\n this.isVisibleLockFilter = this.permissionService.hasBlockerRead() || this.permissionService.hasBlockerReadWrite();\r\n }\r\n\r\n public clearAllFilters(): void {\r\n this.filterControlsQuery.map(control => control.clearFiltersValue());\r\n this.form.patchValue({\r\n Status: null,\r\n Tags: [],\r\n Phrase: null,\r\n IgnitionBlockerState: null,\r\n });\r\n }\r\n\r\n public onSubmitFilters(data: ISubmitFilters, filterData: IFilterVehicle): void {\r\n if (filterData.type === FilterVehicleType.Status) {\r\n this.form.get('Status')?.setValue(data?.selectedControlValue);\r\n this.filtersStatusCurrentFilters = {...data};\r\n return;\r\n }\r\n if (filterData.type === FilterVehicleType.Group) {\r\n this.filtersGroupCurrentFilters = {...data};\r\n if (data.selectedControlValue) {\r\n const tagData = this.filtersGroupConfig.options.find(item => item.value === data.selectedControlValue);\r\n this.handleOnSelectedTags([tagData?.data]);\r\n return;\r\n }\r\n this.handleOnSelectedTags([]);\r\n return;\r\n }\r\n if (filterData.type === FilterVehicleType.Blocking) {\r\n this.form.get('IgnitionBlockerState')?.setValue(data?.selectedControlValue);\r\n this.filtersLockCurrentFilters = {...data};\r\n return;\r\n }\r\n if (filterData.type === FilterVehicleType.TachoStatus) {\r\n this.onFilterTachoChanged.emit({\r\n selectedStatus: data.selectedControlValue,\r\n });\r\n return;\r\n }\r\n }\r\n\r\n private setTranslations(): void {\r\n this.vehicleStatuses = this.translateHelperService.translateOptionItems(Consts.vehicleStatuses);\r\n this.vehicleTachoStatuses = this.translateHelperService.translateOptionItems(Consts.vehicleTachoStatuses);\r\n this.vehicleIndicatorTypes = this.translateHelperService.translateOptionItems(Consts.vehicleIndicatorTypes);\r\n this.fieldTypes = this.translateHelperService.translateOptionItems(Consts.fieldTypes);\r\n this.setFiltersConfig();\r\n }\r\n\r\n private setFiltersConfig(): void {\r\n const filtersStatusOptions: IFilterVehicleOption[] = this.vehicleStatuses.map(({ checkboxColor, label, value, data }) => ({ checkboxColor, label, value, data })) as IFilterVehicleOption[];\r\n this.filtersStatusConfig = {\r\n filterLabel: this.translate.instant('labels.status'),\r\n type: FilterVehicleType.Status,\r\n dropdownLabel: this.translate.instant('filterByStatuses'),\r\n options: filtersStatusOptions\r\n };\r\n this.filtersGroupConfig = {\r\n filterLabel: this.translate.instant('vehicle-indicator.group'),\r\n type: FilterVehicleType.Group,\r\n dropdownLabel: this.translate.instant('showOnlyGroup'),\r\n options: [],\r\n };\r\n this.filtersLockConfig = {\r\n filterLabel: this.translate.instant('blocked'),\r\n type: FilterVehicleType.Blocking,\r\n dropdownLabel: this.translate.instant('displayOnly'),\r\n options: [\r\n { label: this.translate.instant('unBlockVehicles'), value: FilterLockType.Unblock },\r\n { label: this.translate.instant('blockedVehicles'), value: FilterLockType.Lock }\r\n ],\r\n };\r\n const filtersStatusTachoOptions: IFilterVehicleOption[] = this.vehicleTachoStatuses.map(({ checkboxColor, label, value, data }) => ({ checkboxColor, label, value, data })) as IFilterVehicleOption[];\r\n this.filtersStatusTachoConfig = {\r\n filterLabel: this.translate.instant('labels.status'),\r\n type: FilterVehicleType.TachoStatus,\r\n dropdownLabel: this.translate.instant('filterByStatuses'),\r\n options: filtersStatusTachoOptions,\r\n };\r\n this.getGroups();\r\n }\r\n\r\n private getGroups(): void {\r\n if (!this.filtersGroupConfig?.options.length) {\r\n of({Phrase: '', TagType: 0})\r\n .pipe(\r\n switchMap(request => this.$webAccess.GetTagsListByFilter(request))\r\n )\r\n .subscribe(response => {\r\n this.filtersGroupConfig = {\r\n ...this.filtersGroupConfig,\r\n options: response.Result.map(item => ({ label: item.L, value: item.Id, data: item })) as IFilterVehicleOption[],\r\n };\r\n }); \r\n }\r\n }\r\n\r\n private setDisplayedColumn() {\r\n const eTollColumn = 19;\r\n if (this.isEtoll) {\r\n this.displayFieldControl.setValue(eTollColumn);\r\n return;\r\n }\r\n const itemLS = localStorage.getItem(this.columnKey);\r\n const curField = itemLS ? +itemLS : eTollColumn;\r\n this.displayFieldControl.setValue(curField);\r\n }\r\n\r\n private saveDisplayedColumn(newValue: string) {\r\n if (!this.isEtoll) {\r\n localStorage.setItem(this.columnKey, newValue);\r\n }\r\n }\r\n\r\n /**\r\n * On destroy lifecycle hook\r\n */\r\n public ngOnDestroy(): void {\r\n if (this.filterRequestSub) {\r\n this.filterRequestSub.unsubscribe();\r\n }\r\n if (this.filteredVehiclesSub) {\r\n this.filteredVehiclesSub.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Handles close event with selected tags\r\n * @param selectedTags\r\n */\r\n public handleOnSelectedTags(selectedTags: Tag[]): void {\r\n this.form.controls['Tags'].setValue(selectedTags);\r\n }\r\n\r\n\r\n /**\r\n * Handles enter event from search input\r\n */\r\n public onSearchEnter(): void {\r\n const filter = this.form.getRawValue();\r\n this.filterRequestSubject.next(filter);\r\n }\r\n\r\n /**\r\n * Handles enter event from search input\r\n */\r\n public onClearEnter(): void {\r\n const filter = this.form.getRawValue();\r\n this.filterRequestSubject.next(filter);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.baseHeight = this.filterBlock?.nativeElement.offsetHeight;\r\n }\r\n\r\n /**\r\n * Handle container change of tags selector\r\n */\r\n public handleOnHeightChanged(h: number) {\r\n setTimeout(() => {\r\n const height = this.filterBlock?.nativeElement.offsetHeight;\r\n let delta = height - this.baseHeight!;\r\n if (delta < 0) {\r\n delta = 0;\r\n }\r\n this.onHandleOnHeightChanged.emit(this.baseHeight! + delta);\r\n }, 100);\r\n }\r\n\r\n onInputFocus(flag: boolean) {\r\n this.inputHasFocus = flag;\r\n }\r\n\r\n onSearchClear() {\r\n throw new Error('method onSearchClear not implemented')\r\n }\r\n\r\n public setFilters(data: VehicleListFilterRequest): void {\r\n const setLockValue = (blockerState?: boolean): FilterLockType | null => {\r\n if (isBoolean(blockerState)) {\r\n return blockerState ? FilterLockType.Lock : FilterLockType.Unblock;\r\n }\r\n return null;\r\n };\r\n this.form.patchValue(\r\n {\r\n Phrase: data?.Phrase,\r\n Field: data?.Field || 'Description',\r\n Status: data?.Status,\r\n Tags: data?.Tags,\r\n IgnitionBlockerState: setLockValue(data?.IgnitionBlockerState),\r\n },\r\n { emitEvent: false },\r\n );\r\n this.filtersStatusCurrentFilters = {\r\n selectedControlValue: data.Status,\r\n };\r\n this.filtersGroupCurrentFilters = {\r\n selectedControlValue: get(data, 'Tags[0].Id', null),\r\n };\r\n this.filtersLockCurrentFilters = {\r\n selectedControlValue: setLockValue(data?.IgnitionBlockerState),\r\n };\r\n }\r\n\r\n}\r\n","export enum NetworkType {\r\n G2 = '2G',\r\n G4 = '4G',\r\n G5 = '5G',\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { NetworkType } from '@src/app/enum/network.enum';\r\n\r\n@Component({\r\n selector: 'app-network-type-marker',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './network-type-marker.component.html',\r\n styleUrls: ['./network-type-marker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NetworkTypeMarkerComponent {\r\n @Input() type: NetworkType;\r\n\r\n public readonly NETWORK_TYPE = NetworkType;\r\n}\r\n","
\r\n \r\n {{ type }}\r\n \r\n
\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Vehicle } from '../../models/domain/Vehicle';\r\nimport { Consts } from '../../consts/consts';\r\n\r\n@Injectable()\r\nexport class IconService {\r\n\r\n\t/**\r\n\t * Path to directory with images\r\n\t */\r\n\tprivate readonly IMG_FOLDER_DIR: string = '/assets/img/';\r\n\r\n\r\n\t/**\r\n\t * Constructor of icon service\r\n\t */\r\n\tpublic constructor() { }\r\n\r\n\r\n\t/**\r\n\t * Returns url of icon according to status of a given vehicle\r\n\t * @param vehicle vehicle\r\n\t */\r\n\tpublic getIconStatusUrlForVehicle(vehicle: Vehicle): string {\r\n\r\n\t\tlet filename: string;\r\n\r\n\t\tconst vehicleSettings = Consts.VehicleSettingsByStatusMap.get(vehicle.St!);\r\n\t\tfilename = vehicleSettings ? vehicleSettings.statusIconUrl : 'none.png';\r\n\r\n\t\treturn this.IMG_FOLDER_DIR + filename;\r\n\t}\r\n\r\n\tpublic getClassStatusUrlForVehicle(vehicle: Vehicle): string {\r\n\r\n\t\tif (!vehicle) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\r\n\t\tconst vehicleSettings = Consts.VehicleSettingsByStatusMap.get(vehicle.St!);\r\n\t\treturn vehicleSettings ? vehicleSettings.statusClass : 'none';\r\n\t}\r\n\r\n\tpublic getETollStatusIconForVehicle(vehicle: Vehicle): string {\r\n\r\n\t\tif (!vehicle) {\r\n\t\t\treturn '/assets/img/none';\r\n\t\t}\r\n\r\n\t\treturn this.getETollStatusIconForStatus(vehicle.ES!);\r\n\t}\r\n\r\n\tpublic getETollStatusIconForStatus(status: number): string {\r\n\t\tconst vehicleSettings = Consts.ETollStatusToIconMapping.get(status);\r\n\t\treturn vehicleSettings ? vehicleSettings.iconUrl : '/assets/img/none';\r\n\t}\r\n}\r\n","\r\n {{d}}d \r\n {{h}}\r\n :{{m}}\r\n","import {\r\n Component, Input, OnInit\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tk-time',\r\n styleUrls: ['./time.component.less'],\r\n templateUrl: './time.component.html'\r\n})\r\nexport class TimeComponent implements OnInit {\r\n @Input()\r\n public minutes?: number;\r\n\r\n public d?: string;\r\n public h?: string;\r\n public m?: string;\r\n\r\n ngOnInit() {\r\n\r\n let minutes = Math.ceil(this.minutes!);\r\n const h = Math.floor(minutes / 60);\r\n minutes = minutes - h * 60;\r\n const m = minutes;\r\n\r\n\r\n this.h = (h >= 10 ? '' : '0') + h.toString();\r\n this.m = (m >= 10 ? '' : '0') + m.toString();\r\n }\r\n}\r\n","import { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-control-indicator-singnal-value',\r\n // template: `\r\n // \r\n\r\n // \r\n // \r\n // \r\n\r\n\r\n // 0\" x=\"0\" y=\"10\" width=\"4\" height=\"6\" fill=\"#000\"/>\r\n // = 8\" x=\"6\" y=\"6\" width=\"4\" height=\"10\" fill=\"#000\"/>\r\n // = 16\" x=\"12\" y=\"0\" width=\"4\" height=\"16\" fill=\"#000\"/>\r\n // \r\n // `\r\n templateUrl: './vehicle-control-indicator-signal-value.component.html',\r\n styleUrls: ['./vehicle-control-indicator-signal-value.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class VehicleControlIndicatorSignalValueComponent implements OnChanges {\r\n @Input()\r\n public value?: number;\r\n\r\n @Input()\r\n type?: string;\r\n\r\n public signalValue = 0;\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes && changes['value']) {\r\n const _value = changes['value'].currentValue;\r\n\r\n if (this.type === 'GSM') {\r\n this.signalValue = this.getForGSM(_value);\r\n }\r\n if (this.type === 'GPS') {\r\n this.signalValue = this.getForGPS(_value);\r\n }\r\n }\r\n }\r\n\r\n getForGPS(_value: number): number {\r\n let signalValue;\r\n if (_value >= 0 && _value < 5) {\r\n signalValue = 0;\r\n } else if (_value >= 5 && _value < 7) {\r\n signalValue = 1;\r\n } else if (_value >= 7 && _value < 9) {\r\n signalValue = 2;\r\n } else if (_value >= 9 && _value < 12) {\r\n signalValue = 3;\r\n } else if (_value >= 12) {\r\n signalValue = 4;\r\n } else {\r\n signalValue = 0;\r\n }\r\n return signalValue;\r\n }\r\n\r\n\r\n getForGSM(_value: number): number {\r\n let signalValue;\r\n if (_value >= 0 && _value < 8) {\r\n signalValue = 1;\r\n } else if (_value >= 8 && _value < 16) {\r\n signalValue = 2;\r\n } else if (_value >= 16 && _value < 24) {\r\n signalValue = 3;\r\n } else if (_value >= 24) {\r\n signalValue = 4;\r\n } else {\r\n signalValue = 0;\r\n }\r\n return signalValue;\r\n }\r\n\r\n}\r\n","","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n\r\n@Pipe({ name: 'vehicleIndicatorTypeUnit' })\r\nexport class VehicleIndicatorTypeUnitPipe implements PipeTransform {\r\n\r\n transform(type: number): any {\r\n switch (type) {\r\n case 1:\r\n return 'l';\r\n case 2:\r\n return 'km/h';\r\n case 3:\r\n return 'km/h';\r\n case 4:\r\n return 'km/h';\r\n case 5:\r\n return 'RPM';\r\n // case 6:\r\n // return '^C';\r\n case 7:\r\n return 'V';\r\n case 12:\r\n return 'Hz';\r\n case 13:\r\n return 'Mpa';\r\n case 15:\r\n return 'A';\r\n case 17:\r\n return 'km';\r\n case 25:\r\n return 'V';\r\n case 27:\r\n return 'l';\r\n case 28:\r\n return 'h';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n}","{{ type | vehicleIndicatorTypeUnit }}\r\n\r\n°\r\nm/s2","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-control-indicator-value-type',\r\n templateUrl: './vehicle-control-indicator-value-type.component.html',\r\n styleUrls: ['./vehicle-control-indicator-value-type.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class VehicleControlIndicatorValueTypeComponent {\r\n @Input()\r\n public type: number = 0;\r\n}\r\n","\r\n \r\n -\r\n \r\n -\r\n \r\n \r\n \r\n \r\n \"status\"\r\n \r\n \r\n \r\n {{value | statusTimeFormat}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{(p.Name | slice:0:2).toString() | uppercase }}\r\n \r\n \r\n \r\n \r\n \r\n {{value | fullName}}\r\n \r\n \r\n \r\n \r\n {{value.V | number:'1.0-0'}}\r\n \r\n \r\n \r\n \r\n {{value.V | number:'1.0-0'}}\r\n \r\n \r\n \r\n \r\n {{value.V | number:'1.0-0'}}\r\n \r\n \r\n \r\n \r\n {{value.V | number:'1.0-0'}}\r\n \r\n \r\n \r\n \r\n {{value.V | number:'1.0-0'}}\r\n \r\n \r\n \r\n \r\n {{value.V | number:'1.0-0'}}\r\n \r\n \r\n \r\n \r\n {{value.V | number:'1.0-0'}}\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 \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 {{value.V}}\r\n \r\n \r\n \r\n {{value.V | number:'1.0-0'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n OFF\r\n ON\r\n \r\n \r\n OFF\r\n ON\r\n \r\n \r\n OFF\r\n ON\r\n \r\n \r\n OFF\r\n ON\r\n \r\n\r\n\r\n \r\n \r\n \r\n {{ param.LV.V | number:'1.0-0' }} \r\n \r\n \r\n \r\n 0 \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';\r\n\r\nimport {VehicleControlIndicator} from '../../../commons/models/domain/VehicleControlIndicator';\r\nimport {Vehicle} from '../../../commons/models/domain/Vehicle';\r\nimport {IconService} from '@commons/services/icon/icon.service';\r\nimport {Driver} from '../../../commons/models/domain/Driver';\r\nimport {MappingService} from '../../../commons/services/mapping/mapping.service';\r\nimport {Consts} from '../../../commons/consts/consts';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-control-indicator-value',\r\n styleUrls: ['./vehicle-control-indicator-value.component.less'],\r\n templateUrl: './vehicle-control-indicator-value.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class VehicleControlIndicatorValueComponent implements OnInit, OnChanges {\r\n @Input()\r\n public param?: VehicleControlIndicator;\r\n @Input()\r\n public vehicle?: Vehicle;\r\n @Input()\r\n public driver?: Driver;\r\n @Input()\r\n public group?: number;\r\n @Input()\r\n public params?: VehicleControlIndicator[];\r\n @Input()\r\n public options: any;\r\n @Input()\r\n public category: any;\r\n @Input()\r\n public tacho: any;\r\n @Input()\r\n public fuel?: VehicleControlIndicator;\r\n\r\n /**\r\n * wartosc opracowana w kompenencie\r\n */\r\n public value: any;\r\n public label?: string;\r\n\r\n public indicatorsTitle?: string;\r\n public indicatorsList: any[] = [];\r\n\r\n /**\r\n * ladowanie\r\n */\r\n public isLoading = true;\r\n\r\n constructor(private $icon: IconService) { }\r\n\r\n ngOnInit() {\r\n // na podstawie dostepnych parametrow nalezy opacowac co i jak pokazac = standaryzacja\r\n this.formatData();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n // gdy nastapila zmiana wartosc to takze przetwazamy\r\n this.formatData();\r\n }\r\n\r\n /**\r\n * przygotowanie danych bo nie wszystko powinno sie wykonaywac w template\r\n */\r\n private formatData() {\r\n\r\n this.value = null;\r\n this.isLoading = true;\r\n\r\n\r\n // { Type: 1, Name: 'Adres' },\r\n // { Type: 3, Name: 'Czujniki' },\r\n // { Type: 4, Name: 'Kierowca' },\r\n // { Type: 5, Name: 'Licznik km' },\r\n // { Type: 6, Name: 'Napięcie' },\r\n // { Type: 7, Name: 'Obroty' },\r\n // { Type: 8, Name: 'Paliwo' },\r\n // { Type: 9, Name: 'Paliwo CAN' },\r\n // { Type: 10, Name: 'Pedał gazu' },\r\n // { Type: 11, Name: 'Pojazd' },\r\n // { Type: 14, Name: 'Sygnał GPS' },\r\n // { Type: 15, Name: 'Sygnał GSM' },\r\n // { Type: 16, Name: 'Tachograf' },\r\n // { Type: 17, Name: 'Temperatura' },\r\n // { Type: 18, Name: 'Zuzycie CAN' },\r\n\r\n if (this.fuel) {\r\n this.value = this.fuel.LV;\r\n this.value.Type = this.fuel.Tp;\r\n\r\n } else if ((this.params || this.vehicle) && this.group) {\r\n\r\n let value = (this.params || []).filter(o => o && o.Group === this.group);\r\n\r\n let cValue = (value && value.length > 0 && value[0].LV) ? value[0].LV : null;\r\n const cType = (value && value.length > 0 && value[0].Tp) ? value[0].Tp : null;\r\n this.label = (value && value.length > 0 && value[0].Nm) ? value[0].Nm : undefined;\r\n\r\n if (this.group === 2) {\r\n // pobieramy ze statusu\r\n value = (this.params || []).filter(o => o && o.Group === 13);\r\n cValue = (value && value.length > 0 && value[0].LV) ?\r\n value[0].LV : null;\r\n\r\n // { Type: 2, Name: 'Czas' },\r\n if (cValue && cValue.T) {\r\n const today = new Date();\r\n const theDay = new Date(cValue.T);\r\n const diffMs = (today.getTime() - theDay.getTime());\r\n const diffMins = Math.ceil(diffMs / 1000);\r\n this.value = diffMins;\r\n }\r\n } else if (this.group === 13) {\r\n // { Type: 13, Name: 'Status' },\r\n if (this.vehicle) {\r\n this.value = this.$icon.getIconStatusUrlForVehicle(this.vehicle);\r\n }\r\n } else if (this.group === 3) {\r\n this.value = '--';\r\n this.getBinaryIndicators(this.params!);\r\n } else if (this.group === 19) {\r\n //status eToll\r\n if (this.vehicle) {\r\n this.value = this.$icon.getETollStatusIconForVehicle(this.vehicle);\r\n } else if (this.params && cValue) {\r\n this.value = this.$icon.getETollStatusIconForStatus(cValue.V);\r\n }\r\n }\r\n else if (this.group === 16) {\r\n // tacho\r\n // na razie nie ma danych wiec generujemy random\r\n\r\n const values = {\r\n 'driving': 0,\r\n 'working': 0,\r\n 'resting': 0,\r\n 'free': 0\r\n };\r\n const keys = Object.keys(values);\r\n let actual = 'free';\r\n\r\n\r\n if (this.tacho) {\r\n const s = this.tacho.S1 || this.tacho.S2;\r\n if (s) {\r\n const state = MappingService.convertTachoStatus(s.St);\r\n\r\n values.driving = (s.DD || 0) / 60;\r\n values.working = (s.DW || 0) / 60;\r\n values.resting = (s.DR || 0) / 60;\r\n values.free = (s.DRd || 0) / 60;\r\n\r\n actual = keys[state];\r\n }\r\n }\r\n\r\n\r\n if (this.category) {\r\n this.value = { s: (actual === this.category), v: (values as any)[this.category], t: this.category, title: this.getTitleForTachoKey(this.category) };\r\n } else {\r\n this.category = actual;\r\n this.value = { s: (actual === this.category), v: (values as any)[this.category], t: this.category, title: this.getTitleForTachoKey(this.category) };\r\n }\r\n\r\n } else {\r\n if (cValue) {\r\n this.value = cValue;\r\n this.value.Type = cType;\r\n }\r\n }\r\n\r\n } else if (this.driver) {\r\n // przygotowanie kierowcy\r\n this.value = this.driver;\r\n\r\n } else if (this.param) {\r\n\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n\r\n\r\n /**\r\n * pobranie binarnych czujnikow\r\n */\r\n\r\n getBinaryIndicators(params: VehicleControlIndicator[]): any[] {\r\n const list = [];\r\n this.indicatorsTitle = '';\r\n if (params && params.length > 0) {\r\n for (const param of params) {\r\n if (param) {\r\n if (Consts.binaryIndicators.indexOf(param.Tp) !== -1 && param.LV) {\r\n const p = {\r\n Name: param.Nm,\r\n Status: param.LV.V\r\n };\r\n\r\n // czy dodac\r\n let flag = true;\r\n\r\n // filtrowanie po stanie\r\n if (this.options && this.options.indicatorStatus) {\r\n if ((this.options.indicatorStatus === 'on') && flag) {\r\n if (p.Status === true) {\r\n flag = true;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n if ((this.options.indicatorStatus === 'off') && flag) {\r\n if (p.Status !== true) {\r\n flag = true;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n }\r\n\r\n // filtorwanie po nazwie\r\n if (this.options && this.options.indicatorValue) {\r\n if ((this.options.indicatorValue === p.Name) && flag) {\r\n flag = true;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n // dodanie\r\n if (flag === true) {\r\n list.push(p);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n list.sort((a, b) => a.Name.localeCompare(b.Name));\r\n\r\n for (let i = 0; i < list.length; i++) {\r\n if (i > 0) {\r\n this.indicatorsTitle += ', ';\r\n }\r\n this.indicatorsTitle += list[i].Name;\r\n }\r\n this.indicatorsList = list;\r\n return list;\r\n }\r\n\r\n private getTitleForTachoKey(key: string): string {\r\n switch (key) {\r\n case 'driving': return 'Jazda';\r\n case 'working': return 'Praca';\r\n case 'resting': return 'Odpoczynek';\r\n case 'free': return 'Dyspozycja';\r\n default: return '';\r\n }\r\n }\r\n}\r\n","import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\nimport {VehicleLocation} from '../../../commons/models/domain/VehicleLocation';\r\nimport {FullAddressPipe} from '@commons/pipes/full-address.pipe';\r\nimport {CountryCodeService} from '@commons/services/country.code/country-code.service';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-location',\r\n styleUrls: ['./vehicle-location.component.less'],\r\n templateUrl: './vehicle-location.component.html'\r\n})\r\nexport class VehicleLocationComponent implements OnInit, OnChanges {\r\n @Input()\r\n public location?: VehicleLocation;\r\n\r\n /**\r\n * adres do pkazania\r\n */\r\n public address = '';\r\n\r\n /**\r\n * transformer\r\n */\r\n private $fullAddressPipe = new FullAddressPipe();\r\n\r\n private formatAddress() {\r\n this.address = '';\r\n if (this.location) {\r\n this.location.Cr = this.$countryCodeService.getCode(this.location.Cr);\r\n const newAddress = this.$fullAddressPipe.transform(this.location);\r\n this.address = newAddress.length > 0 ? newAddress : '';\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n // na podstawie dostepnych parametrow nalezy opacowac co i jak pokazac = standaryzacja\r\n this.formatAddress();\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n // gdy nastapila zmiana wartosc to takze przetwazamy\r\n this.formatAddress();\r\n }\r\n\r\n\r\n constructor(\r\n private $countryCodeService: CountryCodeService\r\n ) {\r\n }\r\n\r\n}\r\n","
\r\n {{address | tkSlice:40}}\r\n
\r\n","\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { VehicleControlIndicator } from '@commons/models/domain/VehicleControlIndicator';\r\nimport { VehicleListTypeDataVisible } from '../configurator-list-vehicle/configurator-list-vehicle.component';\r\nimport { NetworkType } from '@src/app/enum/network.enum';\r\n\r\n@Component({\r\n selector: 'app-list-vehicle-item',\r\n templateUrl: './list-vehicle-item.component.html',\r\n styleUrls: ['./list-vehicle-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ListVehicleItemComponent implements OnInit {\r\n public readonly VEHICLE_LIST_TYPE_DATA = VehicleListTypeDataVisible;\r\n public readonly NETWORK_TYPE = NetworkType;\r\n\r\n @Input() isSelected?: boolean;\r\n @Input() listDataTypeVisible: VehicleListTypeDataVisible;\r\n @Input() isEtoll: boolean;\r\n @Input() hasBlockerReadPermissionUser: boolean;\r\n\r\n @Input() set vehicle(value: Vehicle) {\r\n this.vehicleValue = new Vehicle(value, this.translate);\r\n this.params = this.vehicleValue.ControlIndicators;\r\n this.checkBlockerStatus();\r\n\r\n this.updateVehicleAngle(value?.VehicleAngle || 0);\r\n }\r\n\r\n public vehicleAngle: number = 0;\r\n public vehicleValue: Vehicle;\r\n public params?: VehicleControlIndicator[] = [];\r\n public isBlocked?: boolean;\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.checkBlockerStatus();\r\n }\r\n\r\n private checkBlockerStatus(): void {\r\n if (this.hasBlockerReadPermissionUser && (this.vehicleValue?.blockerParametrId || this.vehicleValue?.blockerParametrIdOut2)) {\r\n const control = this.vehicleValue.blockerParametrId ? this.vehicleValue.ControlIndicators?.find(item => item.Id === this.vehicleValue.blockerParametrId) : null;\r\n const controlOut2 = this.vehicleValue.blockerParametrIdOut2 ? this.vehicleValue.ControlIndicators?.find(item => item.Id === this.vehicleValue.blockerParametrIdOut2) : null;\r\n this.isBlocked = control?.LV?.V || controlOut2?.LV?.V;\r\n }\r\n }\r\n\r\n private updateVehicleAngle(newValue: number): void {\r\n if(newValue !== this.vehicleAngle) {\r\n this.vehicleAngle = newValue;\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 \r\n
\r\n\r\n \r\n ...\r\n \r\n \r\n {{ activeSlotData?.DD ? ((activeSlotData.DD / 1) | hoursTimeFormat) : '' }}\r\n \r\n \r\n {{ activeSlotData?.DW ? ((activeSlotData.DW / 1) | hoursTimeFormat) : '' }}\r\n \r\n \r\n {{ activeSlotData?.DR ? ((activeSlotData.DR / 1) | hoursTimeFormat) : '' }}\r\n \r\n \r\n {{ activeSlotData?.DRd ? ((activeSlotData.DRd / 1) | hoursTimeFormat) : '' }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{ isLoading ? ('data-is-loading' | translate) : '' }}\r\n \r\n {{ isNoDriver ? ('driver-unkown' | translate) : (driver?.FN + \" \" + driver?.LN) }}\r\n \r\n \r\n \r\n {{ vehicleValue.Nm }}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { Driver } from '@commons/models/domain/Driver';\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { VehicleTachoSlot } from '@commons/models/domain/VehicleTacho';\r\nimport { MappingService } from '@commons/services/mapping/mapping.service';\r\nimport { VehicleService } from '@commons/services/vehicle/vehicle.service';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-list-vehicle-tacho-item',\r\n templateUrl: './list-vehicle-tacho-item.component.html',\r\n styleUrls: ['./list-vehicle-tacho-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ListVehicleTachoItemComponent implements OnInit, OnDestroy {\r\n @Input() isSelected?: boolean;\r\n @Input() hasBlockerReadPermissionUser: boolean;\r\n\r\n @Input() set vehicle(value: Vehicle) {\r\n this.vehicleValue = new Vehicle(value, this.translate);\r\n this.checkBlockerStatus();\r\n\r\n if (value.Tacho) {\r\n this.setTachoData();\r\n }\r\n }\r\n\r\n public isLoading: boolean = true;\r\n public isNoDriver: boolean = false;\r\n public vehicleValue: Vehicle;\r\n public activeSlotData!: VehicleTachoSlot;\r\n public currentStateTacho?: number;\r\n public driver?: Driver;\r\n public isBlocked?: boolean;\r\n\r\n private readonly ComponentSubsc: Subscription = new Subscription();\r\n\r\n public get elementId(): number {\r\n return this.vehicleValue?.Id;\r\n }\r\n\r\n constructor(\r\n private vehicleService: VehicleService,\r\n private changeDetRef: ChangeDetectorRef,\r\n private translate: TranslateService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.checkBlockerStatus();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n }\r\n\r\n private setTachoData(): void {\r\n if (this.vehicleValue.Tacho) {\r\n const ifSlot1 = this.vehicleValue.Tacho.S1 && this.vehicleValue.Tacho.S1.Id;\r\n if (ifSlot1) {\r\n this.setActiveSlot(this.vehicleValue.Tacho.S1 as VehicleTachoSlot);\r\n return;\r\n }\r\n\r\n const ifSlot2 = this.vehicleValue.Tacho.S2 && this.vehicleValue.Tacho.S2.Id;\r\n if (ifSlot2) {\r\n this.setActiveSlot(this.vehicleValue.Tacho.S2 as VehicleTachoSlot);\r\n return;\r\n }\r\n\r\n this.isNoDriver = true;\r\n }\r\n this.isLoading = false;\r\n this.changeDetRef.markForCheck();\r\n }\r\n\r\n private setActiveSlot(slotData: VehicleTachoSlot): void {\r\n this.currentStateTacho = MappingService.convertTachoStatus(slotData.St);\r\n this.activeSlotData = {...(slotData || {})};\r\n\r\n if (slotData?.Id) {\r\n this.getDriverData();\r\n return;\r\n }\r\n this.whenNoDriverData();\r\n }\r\n\r\n private getDriverData(): void {\r\n const sub = this.vehicleService.getCurrentDriver$(this.activeSlotData.Id).subscribe(driver => {\r\n if (driver) {\r\n this.isDriver(driver);\r\n return;\r\n }\r\n this.whenNoDriverData();\r\n });\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private whenNoDriverData(): void {\r\n this.isLoading = false;\r\n this.isNoDriver = true;\r\n this.changeDetRef.markForCheck();\r\n }\r\n\r\n private isDriver(data: Driver): void {\r\n this.driver = {...data};\r\n this.isNoDriver = false;\r\n this.isLoading = false;\r\n this.changeDetRef.markForCheck();\r\n }\r\n\r\n private checkBlockerStatus(): void {\r\n if (this.hasBlockerReadPermissionUser && (this.vehicleValue?.blockerParametrId || this.vehicleValue?.blockerParametrIdOut2)) {\r\n const control = this.vehicleValue.blockerParametrId ? this.vehicleValue.ControlIndicators?.find(item => item.Id === this.vehicleValue.blockerParametrId) : null;\r\n const controlOut2 = this.vehicleValue.blockerParametrIdOut2 ? this.vehicleValue.ControlIndicators?.find(item => item.Id === this.vehicleValue.blockerParametrIdOut2) : null;\r\n this.isBlocked = control?.LV?.V || controlOut2?.LV?.V;\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 \r\n {{'emptyStateVehiclesListTitle'|translate}}\r\n \r\n \r\n {{'emptyStateVehiclesListDescription'|translate}}\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
{{'vehicles-list.no-vehicles-line1' | translate}}
\r\n
\r\n {{'vehicles-list.no-vehicles-line2' | translate}}
\r\n {{'vehicles-list.no-vehicles-line3' | translate}}
\r\n {{'vehicles-list.no-vehicles-line4' | translate}}\r\n
\r\n
\r\n
{{'contact.phone-prefix' | translate}} {{'contact.phone' | translate}}
\r\n \r\n
\r\n
\r\n
\r\n\r\n 0\">\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {Router} from \"@angular/router\";\r\nimport { CdkVirtualScrollViewport } from \"@angular/cdk/scrolling\";\r\n\r\nimport { isEqual } from 'lodash';\r\n\r\nimport {Vehicle} from \"@commons/models/domain/Vehicle\";\r\nimport {MapConfigService} from \"@commons/services/map/config/map-config.service\";\r\nimport { MapService } from '@commons/services/map/map/map.service';\r\nimport { IFilterVehicle, IOnChangedTachoFilters } from '@src/app/interfaces/filters-vehicle.interface';\r\nimport { VehicleListTypeDataVisible } from '@layout/vehicle/components/configurator-list-vehicle/configurator-list-vehicle.component';\r\nimport { VehicleListFilterRequest } from '@commons/models/remote.request/VehicleListFilterRequest';\r\nimport { VehicleListFilterComponent } from '@layout/vehicle/filter/vehicle-list-filter.component';\r\nimport { PermissionService } from '@shared/services/permission.service';\r\n\r\n@Component({\r\n selector: 'vehiclem-vehicle-list',\r\n templateUrl: './vehicle-list.component.html',\r\n styleUrls: ['vehicle-list.component.less']\r\n // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class VehicleListComponent implements OnInit {\r\n\r\n @Output() private onChangeFilters$: EventEmitter = new EventEmitter();\r\n @Output() private onChangeTachoFilters$: EventEmitter = new EventEmitter();\r\n\r\n @Input() vehicles?: Vehicle[];\r\n @Input('currentFilter') set currentFilter(data: VehicleListFilterRequest) {\r\n if (!isEqual(this._currentFilter, data)) {\r\n this._currentFilter = {...(data || {})};\r\n setTimeout(() => {\r\n this.filtersComponent.setFilters(this._currentFilter);\r\n }, 0);\r\n }\r\n };\r\n\r\n @Input('selectedVehicleId') set selectedVehicleId(data: any) {\r\n if (this._selectedVehicleId !== data) {\r\n this._selectedVehicleId = data;\r\n this.scrollToSelectedItem();\r\n }\r\n }\r\n @Input() group: number = 0;\r\n @Input() isEtoll: boolean;\r\n @Input() isTachoView: boolean;\r\n @Input() tachoFilters: IOnChangedTachoFilters;\r\n\r\n @Input() listDataTypeVisible: VehicleListTypeDataVisible;\r\n\r\n @ViewChild(CdkVirtualScrollViewport) list?: CdkVirtualScrollViewport;\r\n @ViewChild('filtersComponent') private filtersComponent: VehicleListFilterComponent;\r\n\r\n filterHeight = 150;\r\n public _selectedVehicleId: number;\r\n public _currentFilter: any;\r\n public hasBlockerReadPermissionUser: boolean;\r\n\r\n public readonly filters: IFilterVehicle[] = [];\r\n\r\n constructor(\r\n private router: Router,\r\n private mapService: MapService,\r\n private mapConfigService: MapConfigService,\r\n private permissionService: PermissionService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.checkIfUserCanVisibleBlockerInfo();\r\n }\r\n\r\n public onFilterTachoChanged(filters: IOnChangedTachoFilters): void {\r\n this.onChangeTachoFilters$.emit(filters);\r\n }\r\n\r\n private checkIfUserCanVisibleBlockerInfo(): void {\r\n this.hasBlockerReadPermissionUser = this.permissionService.hasBlockerRead() || this.permissionService.hasBlockerReadWrite();\r\n }\r\n\r\n private scrollToSelectedItem(id: number = this._selectedVehicleId): void {\r\n if (id) {\r\n const vehicleToScroll = this.vehicles?.findIndex(x => x.Id === id);\r\n if (vehicleToScroll)\r\n this.list?.scrollToIndex(vehicleToScroll);\r\n }\r\n }\r\n\r\n onSelect(vehicle: Vehicle): void {\r\n // odznaczenie i zaznaczenia\r\n if (vehicle.Id && this._selectedVehicleId === vehicle.Id) {\r\n this._selectedVehicleId = undefined as any;\r\n this.mapConfigService.setCurrentVehicleId('tk-vehicle-details', undefined);\r\n this.router.navigate(['panel', 'vehicle'], {queryParams: {'mode': 'lite'}});\r\n this.mapService.centerMap();\r\n } else {\r\n this._selectedVehicleId = vehicle.Id;\r\n this.mapConfigService.setCurrentVehicleId('tk-vehicle-details', this._selectedVehicleId);\r\n this.router.navigate(['panel', 'vehicle'], {queryParams: {'mode': 'details', 'id': this._selectedVehicleId}});\r\n }\r\n }\r\n\r\n onDisplayFieldChanged(group: number) {\r\n this.group = group;\r\n }\r\n\r\n handleOnHeightChanged(evt: number) {\r\n // filr ma 133px a lista musi się zaczynać na 150px\r\n // stad przesunięcie\r\n this.filterHeight = evt + 17;\r\n }\r\n\r\n onFilterChanged(filter: VehicleListFilterRequest) {\r\n if (filter) {\r\n const isStatusNull = !filter.Status || filter.Status === 0;\r\n const isTagsNull = !filter.Tags || filter.Tags.length === 0;\r\n const isPhraseNull = !filter.Phrase;\r\n const isLockNull = filter.IgnitionBlockerState === null;\r\n\r\n if (isStatusNull && isTagsNull && isPhraseNull && isLockNull) {\r\n this._currentFilter = null;\r\n this.onChangeFilters$.emit(null as any);\r\n return;\r\n }\r\n }\r\n\r\n this._currentFilter = filter;\r\n this.onChangeFilters$.emit(filter);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { get } from 'lodash';\r\n\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { MappingService } from '@commons/services/mapping/mapping.service';\r\nimport { IOnChangedTachoFilters } from '@src/app/interfaces/filters-vehicle.interface';\r\nimport { TachoStatusWorker } from '@commons/enums/tacho.enum';\r\n\r\n@Pipe({\r\n name: 'filterTachoList'\r\n})\r\nexport class FilterTachoListPipe implements PipeTransform {\r\n\r\n private checkStatusItem(item: Vehicle, selectedStatus: number): boolean {\r\n const tachoStatus = this.getTachoStatus(item);\r\n const tachoDriverID = this.getDriverId(item);\r\n\r\n if (tachoStatus !== null && tachoDriverID) {\r\n const status = MappingService.convertTachoStatus(tachoStatus);\r\n return selectedStatus === null || (status === selectedStatus);\r\n }\r\n return false;\r\n }\r\n\r\n private getTachoStatus = (item: Vehicle) => {\r\n return get(item, 'Tacho.S1.St', get(item, 'Tacho.S2.St', null));\r\n }\r\n\r\n private getDriverId = (item: Vehicle) => {\r\n return get(item, 'Tacho.S1.Id', get(item, 'Tacho.S2.Id', null));\r\n }\r\n \r\n transform(list?: Vehicle[], filters?: IOnChangedTachoFilters): Vehicle[] | undefined {\r\n if (list) {\r\n const { selectedStatus } = filters || {};\r\n\r\n if (selectedStatus || selectedStatus === 0) {\r\n const filterFnc = (item: Vehicle): boolean => {\r\n const hasStatus = this.checkStatusItem(item, selectedStatus);\r\n return hasStatus;\r\n };\r\n\r\n const ifUnkownStatusSelected = filters?.selectedStatus === TachoStatusWorker.Unkown;\r\n\r\n if (ifUnkownStatusSelected) {\r\n return list.filter(item => {\r\n const status = this.getTachoStatus(item);\r\n return status === null || !this.getDriverId(item);\r\n });\r\n }\r\n return list.filter((item) => item.Tacho && filterFnc(item));\r\n }\r\n }\r\n return list;\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n
{{ 'vehicles-list.header' | translate }}
\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 \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n {{ ('labels.vehicles' | translate) | uppercase }} ({{vehicles?.length}})\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n TACHO ({{tachoVehicles?.length}})\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n ETOLL ({{this.etollVehicles?.length}})\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import {ChangeDetectorRef, Component, NgZone, OnDestroy, OnInit, Renderer2} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {animate, sequence, style, transition, trigger} from '@angular/animations';\r\n\r\nimport {filter, Subscription} from 'rxjs';\r\n\r\nimport {PanelNavigationService} from '@commons/services/navigation/panel-navigation.service';\r\nimport {VehicleService} from '@commons/services/vehicle/vehicle.service';\r\nimport {Vehicle} from '@commons/models/domain/Vehicle';\r\n\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\nimport { MapService } from '@commons/services/map/map/map.service';\r\nimport { LOCAL_STORAGEV_CONFIG_VALULE, VehicleListTypeDataVisible } from '../components/configurator-list-vehicle/configurator-list-vehicle.component';\r\nimport { VehicleListFilterRequest } from '@commons/models/remote.request/VehicleListFilterRequest';\r\nimport { IOnChangedTachoFilters } from '@src/app/interfaces/filters-vehicle.interface';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-panel-lite',\r\n templateUrl: './vehicle-panel-lite.component.html',\r\n styleUrls: ['./vehicle-panel-lite.component.less'],\r\n animations: [\r\n trigger('openClose', [\r\n transition(\":enter\", [style({transform: 'translateX(-264px)'}), animate('0.1s')]),\r\n transition(\":leave\", [sequence([style({left: '56px', 'z-index': 0}), animate('0.1s', style({left: '-264px'}))])]),\r\n ])\r\n ]\r\n})\r\nexport class VehiclePanelLiteComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n isVisible = false;\r\n vehicles?: Vehicle[];\r\n etollVehicles?: Vehicle[];\r\n public tachoVehicles?: Vehicle[];\r\n selectedVehicleId?: number;\r\n group: number = 0;\r\n currentFilter: any;\r\n isOpen: boolean = false;\r\n eTollPanelSize = 0;\r\n public isVisibleConfigForm: boolean;\r\n public listDataTypeVisible: VehicleListTypeDataVisible;\r\n\r\n public filtersSelectedTachoList: IOnChangedTachoFilters;\r\n\r\n private navSub?: Subscription;\r\n private vehiclesSub?: Subscription;\r\n private vehicleFilteredSub?: Subscription;\r\n private firstRefresh: boolean;\r\n \r\n constructor(\r\n private $nav: PanelNavigationService,\r\n private $vehicle: VehicleService,\r\n private $map: MapService,\r\n private $zone: NgZone,\r\n private $route: ActivatedRoute,\r\n private newNavigationService: NewNavigationService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private renderer2: Renderer2,\r\n ) {\r\n super();\r\n this.subToGetVisibilitySubject();\r\n this.firstRefresh = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initListDataType();\r\n this.getBlockedStatusVehiclesList();\r\n }\r\n\r\n private getBlockedStatusVehiclesList(): void {\r\n this.getVehiclesList();\r\n }\r\n\r\n private getVehiclesList(): void {\r\n this.vehiclesSub = this.$vehicle.getListFiltered$()\r\n .pipe(\r\n filter(f => this.isVisible === true),\r\n )\r\n .subscribe(vehicles => {\r\n if (this.isVisible === true) {\r\n this.$zone.run(() => {\r\n const isTheSame = this.isTheSame(this.vehicles || [], vehicles || []);\r\n if (!isTheSame) {\r\n const query = this.$route.snapshot.queryParamMap;\r\n if (query.get('mode') !== 'details') {\r\n this.$map.fitMapBoundsToVehicles(vehicles);\r\n }\r\n }\r\n if (this.firstRefresh && vehicles && vehicles.length == 0 && !this.currentFilter) {\r\n this.vehicles = undefined;\r\n this.firstRefresh = false;\r\n this.etollVehicles = undefined;\r\n this.tachoVehicles = undefined;\r\n } else {\r\n this.vehicles = vehicles.sort((a, b) => a.Nm!.localeCompare(b.Nm!));\r\n this.etollVehicles = vehicles.filter(v => v.ES > 0);\r\n this.tachoVehicles = vehicles.filter(v => v.TC);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n public onChangeFilters(filters: VehicleListFilterRequest): void {\r\n this.currentFilter = {...(filters || {})};\r\n }\r\n\r\n public onChangeTachoFilters(data: IOnChangedTachoFilters): void {\r\n this.filtersSelectedTachoList = {...data};\r\n }\r\n\r\n private initListDataType(): void {\r\n this.listDataTypeVisible = Number(localStorage.getItem(LOCAL_STORAGEV_CONFIG_VALULE) || VehicleListTypeDataVisible.Speed);\r\n }\r\n\r\n public onSubmitConfigForm(data: VehicleListTypeDataVisible): void {\r\n this.isVisibleConfigForm = false;\r\n this.listDataTypeVisible = data;\r\n }\r\n\r\n private subToGetVisibilitySubject() {\r\n this.navSub = this.$nav.getVisibilitySubject()\r\n .pipe(filter(item => (\r\n !item.subsites\r\n || item.subsites.indexOf('vehicle-lite') !== -1\r\n || item.subsites.indexOf('vehicle-details') !== -1\r\n )))\r\n .subscribe(change => {\r\n if (change.id) {\r\n this.selectedVehicleId = parseInt(change.id, 10);\r\n } else {\r\n this.selectedVehicleId = undefined;\r\n }\r\n\r\n const originalVisibility = this.isVisible;\r\n this.isVisible = change.show;\r\n\r\n if (originalVisibility && !change.show) {\r\n this.isOpen = false;\r\n } else if (!originalVisibility && change.show) {\r\n this.isOpen = true;\r\n }\r\n\r\n this.$vehicle.refreshListFiltered();\r\n });\r\n }\r\n\r\n private isTheSame(prev: Vehicle[], next: Vehicle[]): boolean {\r\n prev.sort((x, y) => x.Id! - y.Id!);\r\n next.sort((x, y) => x.Id! - y.Id!);\r\n\r\n let i = 0;\r\n let j = 0;\r\n const joined: Vehicle[] = [];\r\n\r\n while (i < prev.length && j < next.length) {\r\n\r\n if (prev[i].Id === next[j].Id) {\r\n joined.push(prev[i]);\r\n i += 1;\r\n j += 1;\r\n } else if (prev[i].Id! < next[j].Id!) {\r\n i += 1;\r\n } else {\r\n j += 1;\r\n }\r\n }\r\n const flag = (joined.length === prev.length) && (prev.length === next.length);\r\n return flag;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.navSub) {\r\n this.navSub.unsubscribe();\r\n }\r\n if (this.vehiclesSub) {\r\n this.vehiclesSub.unsubscribe();\r\n }\r\n if (this.vehicleFilteredSub) {\r\n this.vehicleFilteredSub.unsubscribe();\r\n }\r\n this.unsubscribeAll();\r\n }\r\n\r\n onEtollExpanded(size: number) {\r\n this.eTollPanelSize = size;\r\n this.setHeightForCdkVehicleScroll();\r\n }\r\n\r\n private get etollPanelHeight(): number {\r\n const etollInstance = document.getElementById('etoll-balance');\r\n return etollInstance?.clientHeight || 0;\r\n }\r\n\r\n private setHeightForCdkVehicleScroll(): void {\r\n setTimeout(() => {\r\n const cdkVirtualScroll = document.getElementById('cdk-virtual-scroll-vehicles');\r\n const cdkScrollHeightCalculate = `calc(100vh - (277px + ${ this.etollPanelHeight }px))`;\r\n this.renderer2.setStyle(cdkVirtualScroll, 'height', cdkScrollHeightCalculate);\r\n }, 0);\r\n }\r\n\r\n onClose() {\r\n this.newNavigationService.toMainPanel();\r\n }\r\n\r\n onSelectedIndexChange() {\r\n this.changeDetectorRef.detectChanges();\r\n this.setHeightForCdkVehicleScroll();\r\n }\r\n}\r\n","/**\r\n * Klasa do zapisywania loklanej konfiguracji Aplikacji.\r\n */\r\nexport class Config {\r\n /**\r\n * Nazwa pola pokazywanego na karcie kierowcy.\r\n */\r\n public DriverCardColumn?: number;\r\n\r\n /**\r\n * Nazwa pola pokazywanego na karcie pojazdu.\r\n */\r\n public VehicleCardColumn?: number;\r\n\r\n /**\r\n * Nazwy pól pokazywanych na liście FULL pojazdów.\r\n * z domyślnymi\r\n */\r\n public VehicleFullListColumns: Array = [13, 2, 11, 12, 1, 4, 19, 14, 15, 8, 7, 17, 3, 16];\r\n\r\n public VehicleFullListColumnsOrder: Array = [13, 2, 11, 12, 1, 4, 19, 14, 15, 8, 7, 17, 3, 16];\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {Observable} from 'rxjs';\r\n\r\nimport {IConfigurationService} from '../../interfaces/IConfigurationService';\r\nimport {Config} from '../../models/domain/Config';\r\n\r\n@Injectable()\r\nexport class ConfigurationService implements IConfigurationService {\r\n\r\n private readonly configLSKey = 'config';\r\n private config!: Config;\r\n\r\n constructor() {\r\n }\r\n\r\n getConfig(): Observable {\r\n return new Observable(observer => {\r\n if (this.config) {\r\n const c = JSON.parse(JSON.stringify(this.config));\r\n observer.next(c);\r\n observer.complete();\r\n } else {\r\n const itemsLS = localStorage.getItem(this.configLSKey);\r\n const configFromLS = itemsLS ? JSON.parse(itemsLS) as Config : undefined;\r\n this.config = configFromLS || new Config();\r\n const c = JSON.parse(JSON.stringify(this.config));\r\n observer.next(c);\r\n observer.complete();\r\n }\r\n });\r\n }\r\n\r\n saveConfig(config: Config): Observable {\r\n return new Observable(observer => {\r\n this.config = config;\r\n localStorage.setItem(this.configLSKey, JSON.stringify(this.config));\r\n observer.next();\r\n observer.complete();\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport {BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ScrollBarService {\r\n constructor() { }\r\n\r\n private subjectDelta: BehaviorSubject = new BehaviorSubject({});\r\n private subjectOptions: BehaviorSubject = new BehaviorSubject({});\r\n private subjectScrollDelta: BehaviorSubject = new BehaviorSubject(undefined);\r\n\r\n setDelta(delta: any) {\r\n this.subjectDelta.next(delta);\r\n }\r\n\r\n setScrollDelta(delta: any) {\r\n this.subjectScrollDelta.next(delta);\r\n }\r\n\r\n\r\n setOptions(options: any) {\r\n this.subjectOptions.next(options);\r\n }\r\n\r\n getDelta(): Observable {\r\n return this.subjectDelta.asObservable();\r\n }\r\n\r\n getOptions(): Observable {\r\n return this.subjectOptions.asObservable();\r\n }\r\n\r\n getScrollDelta(): Observable {\r\n return this.subjectScrollDelta.asObservable();\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
","import {\r\n Component,\r\n Input,\r\n Renderer2,\r\n HostListener,\r\n OnInit,\r\n ElementRef,\r\n AfterContentInit,\r\n TemplateRef,\r\n ContentChild,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewEncapsulation,\r\n ViewChild\r\n} from '@angular/core';\r\n\r\nimport { filter, Subscription } from 'rxjs';\r\n\r\nimport { ScrollBarService } from '../scroll-bar/scroll-bar.service';\r\n\r\n@Component({\r\n templateUrl: './scrolled-list.component.html',\r\n selector: 'tk-scrolled-list',\r\n styleUrls: ['./scrolled-list.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ScrolledListComponent implements OnInit, OnChanges, AfterContentInit {\r\n\r\n public visibleItems: Array = [];\r\n\r\n @Input() id: string = '';\r\n\r\n @Input()\r\n public items!: Array;\r\n\r\n @Input()\r\n public styleClass: string = '';\r\n\r\n @Input()\r\n public itemHeight: number = 0;\r\n\r\n @Input()\r\n public autoSort = true;\r\n\r\n @ContentChild('itemTemplate')\r\n public itemTemp!: TemplateRef;\r\n\r\n\r\n private scrollDeltaSub: Subscription;\r\n\r\n private parentHeight = 0;\r\n\r\n private parentWidth = 0;\r\n\r\n private parentFullHeight = 0;\r\n\r\n private offsetHeight = 0;\r\n\r\n currentStartIndex = 0;\r\n\r\n parentMarginTop = 0;\r\n\r\n private itemsCount = 0;\r\n\r\n private moveRation = 0;\r\n\r\n public isScrolling = false;\r\n\r\n public scrollOffset = 0;\r\n\r\n\r\n @Input()\r\n public areaWidth = 0;\r\n\r\n @Input()\r\n public areaHeight?: number;\r\n\r\n @Input()\r\n public selectedId: any;\r\n\r\n @Input()\r\n public idFieldName?: string;\r\n\r\n @Input()\r\n public sortFieldName?: string;\r\n\r\n private sortedItems = [];\r\n\r\n\r\n private showElements() {\r\n if (this.items && this.sortedItems.length > 0) {\r\n const _visibleItems: any[] = [];\r\n let s = this.currentStartIndex;\r\n let e = this.currentStartIndex + this.itemsCount;\r\n\r\n if (e >= this.sortedItems.length - 1) {\r\n e = this.sortedItems.length - 1;\r\n s = e - this.itemsCount;\r\n if (s < 0) {\r\n s = 0;\r\n }\r\n }\r\n\r\n for (let i = s; i <= e; i++) {\r\n const el = this.sortedItems[i];\r\n if (el) {\r\n _visibleItems.push(el);\r\n }\r\n }\r\n\r\n let _parentMarginTop = (_visibleItems.length * this.itemHeight!) - this.parentHeight!;\r\n if (this.sortedItems.length <= this.itemsCount) {\r\n _parentMarginTop = 0;\r\n } else if (this.currentStartIndex === 0) {\r\n _parentMarginTop = 0;\r\n }\r\n this.parentMarginTop = _parentMarginTop;\r\n\r\n\r\n\r\n this.visibleItems = _visibleItems;\r\n\r\n }\r\n }\r\n\r\n private processScroll(step: number) {\r\n\r\n // jak miescie sie na jednym ekranie\r\n if (this.sortedItems.length < this.itemsCount) {\r\n return;\r\n }\r\n\r\n const sensitivity = 1;\r\n\r\n // przeliczenie zmiany\r\n // deltaY\r\n // jak delta za szybko to skaczemy pagami\r\n const sign = Math.sign(step);\r\n let deltaY = Math.floor(Math.abs(step) / sensitivity);\r\n if (deltaY > this.itemsCount) {\r\n deltaY = this.itemsCount;\r\n }\r\n\r\n const move = (deltaY * this.moveRation);\r\n\r\n if (sign < 0) {\r\n this.scrollDown(move);\r\n } else {\r\n this.scrollUp(move);\r\n }\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n public onWindowResize(evt: any) {\r\n // rekalkulacja\r\n this.parentHeight = this.$element.nativeElement.offsetParent.clientHeight;\r\n this.parentWidth = this.$element.nativeElement.offsetParent.clientWidth;\r\n this.itemsCount = Math.floor(this.parentHeight / this.itemHeight!);\r\n this.showElements();\r\n this.showScrollBar(0);\r\n this.scrollOffset = this.parentWidth - this.areaWidth;\r\n\r\n // konfiguracja scroll\r\n this.$scrollBar.setOptions({ elementId: this.id, factor: (this.parentHeight / this.parentFullHeight) });\r\n }\r\n\r\n @HostListener('wheel', ['$event'])\r\n public onWheel($event: any) {\r\n if (Math.abs($event.deltaX) < 50) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.processScroll($event.deltaY);\r\n return;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.showElements();\r\n this.showScrollBar(0);\r\n }\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n\r\n let resultChange = true;\r\n\r\n this.parentHeight = this.$element.nativeElement.offsetParent.clientHeight;\r\n this.parentWidth = this.$element.nativeElement.offsetParent.clientWidth;\r\n\r\n\r\n if (changes && changes['itemHeight']) {\r\n this.itemsCount = Math.floor(this.parentHeight / this.itemHeight!);\r\n }\r\n if (changes && changes['areaHeight']) {\r\n this.itemsCount = Math.floor(this.parentHeight / this.itemHeight!);\r\n }\r\n\r\n if (!(changes && changes['areaHeight'])) {\r\n this.areaHeight = this.$element.nativeElement.offsetParent.clientHeight;\r\n }\r\n if (!(changes && changes['areaWidth'])) {\r\n this.areaWidth = this.$element.nativeElement.offsetParent.clientWidth;\r\n }\r\n\r\n // find selected item and move start index\r\n if (this.items && this.itemHeight) {\r\n\r\n // wskaznik zmiany\r\n this.parentFullHeight = this.items.length * this.itemHeight;\r\n this.moveRation = Math.ceil(this.parentFullHeight / this.parentHeight);\r\n if (this.moveRation < this.itemHeight) {\r\n this.moveRation = Math.ceil(this.itemHeight / 2);\r\n }\r\n\r\n // konfiguracja scroll\r\n this.$scrollBar.setOptions({ elementId: this.id, factor: (this.parentHeight / this.parentFullHeight) });\r\n\r\n\r\n if (changes['selectedId'] && changes['selectedId'].currentValue === null) {\r\n } else {\r\n // jezeli result set się zmienił w sensie tylko przesortowany to nie resetujemy pozycji\r\n if (changes['items'] && changes['items'].currentValue && changes['items'].previousValue) {\r\n\r\n\r\n const prev = changes['items'].previousValue.map((i: any) => i[this.idFieldName!]);\r\n const next = changes['items'].currentValue.map((i: any) => i[this.idFieldName!]);\r\n if (this.isTheSame(prev, next) === true) {\r\n resultChange = false;\r\n } else {\r\n this.offsetHeight = 0;\r\n this.currentStartIndex = 0;\r\n this.parentMarginTop = 0;\r\n }\r\n } else {\r\n if (changes['selectedId'] && !changes['selectedId'].firstChange) {\r\n // resultChange = false;\r\n } else {\r\n\r\n }\r\n }\r\n }\r\n\r\n if (resultChange) {\r\n const sortField = this.sortFieldName || this.idFieldName;\r\n if (sortField && this.autoSort === true) {\r\n if (this.sortFieldName === '$index') {\r\n this.sortedItems = JSON.parse(JSON.stringify(this.items));\r\n } else {\r\n const _sorted = this.items.sort((a, b) => a[sortField] - b[sortField]);\r\n this.sortedItems = JSON.parse(JSON.stringify(_sorted));\r\n }\r\n } else {\r\n\r\n this.sortedItems = JSON.parse(JSON.stringify(this.items));\r\n }\r\n } else {\r\n this.sortedItems = JSON.parse(JSON.stringify(this.items));\r\n\r\n }\r\n\r\n\r\n if (changes && changes['selectedId'] && changes['selectedId'].currentValue !== changes['selectedId'].previousValue) {\r\n if (this.selectedId && this.itemsCount && this.idFieldName) {\r\n let _currentStartIndex = this.sortedItems.findIndex(i => i[this.idFieldName!] === this.selectedId);\r\n\r\n if (_currentStartIndex !== -1) {\r\n\r\n // jezeli ten kurent index zawiera sie na stronie ktora jest obecnie to nic nie robimu\r\n if (this.currentStartIndex <= _currentStartIndex && _currentStartIndex < this.currentStartIndex + this.itemsCount) {\r\n _currentStartIndex = this.currentStartIndex;\r\n }\r\n // jezeli to jest na ostatniej stronie to nalezy dociagnac do konca\r\n else if (_currentStartIndex + this.itemsCount >= this.sortedItems.length) {\r\n _currentStartIndex = this.sortedItems.length - this.itemsCount;\r\n }\r\n else {\r\n _currentStartIndex--;\r\n }\r\n\r\n this.currentStartIndex = _currentStartIndex;\r\n this.offsetHeight = this.itemHeight * this.currentStartIndex;\r\n } else {\r\n this.offsetHeight = 0;\r\n this.currentStartIndex = 0;\r\n this.parentMarginTop = 0;\r\n }\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n // pokazanie elementow\r\n if (changes) {\r\n\r\n if (changes['selectedId'] && changes['selectedId'].currentValue === null) {\r\n\r\n } else {\r\n this.showElements();\r\n this.showScrollBar(0);\r\n this.scrollOffset = this.parentWidth - this.areaWidth;\r\n }\r\n }\r\n\r\n }\r\n\r\n private isTheSame(prev: number[], next: number[]): boolean {\r\n\r\n prev.sort((x, y) => x - y);\r\n next.sort((x, y) => x - y);\r\n\r\n let i = 0;\r\n let j = 0;\r\n const joined: number[] = [];\r\n\r\n while (i < prev.length && j < next.length) {\r\n\r\n if (prev[i] === next[j]) {\r\n joined.push(prev[i]);\r\n i += 1;\r\n j += 1;\r\n } else if (prev[i] < next[j]) {\r\n i += 1;\r\n } else {\r\n j += 1;\r\n }\r\n\r\n }\r\n\r\n let flag = (joined.length === prev.length) && (prev.length === next.length);\r\n\r\n if (flag === true) {\r\n for (i = joined.length - 1; i >= 0; i--) {\r\n if (prev[i] !== next[i]) {\r\n flag = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return flag;\r\n }\r\n\r\n private showScrollBar(move: number) {\r\n\r\n\r\n const scale = (this.parentHeight / this.items!.length);\r\n const sign = Math.sign(move);\r\n\r\n const delta = { elementId: this.id, delta: Math.ceil(scale * (this.currentStartIndex)) };\r\n this.$scrollBar.setDelta(delta);\r\n\r\n }\r\n\r\n scrollUp(move: number) {\r\n if (this.currentStartIndex + this.itemsCount <= this.sortedItems.length - 1) {\r\n\r\n this.parentMarginTop += move;\r\n if (this.parentMarginTop >= this.itemHeight!) {\r\n this.parentMarginTop = 0;\r\n this.currentStartIndex++;\r\n }\r\n\r\n this.showElements();\r\n\r\n } else {\r\n\r\n }\r\n this.showScrollBar(move);\r\n }\r\n\r\n\r\n scrollDown(move: number) {\r\n if (this.currentStartIndex >= 0) {\r\n\r\n this.parentMarginTop -= move;\r\n if (this.parentMarginTop <= 0 && this.currentStartIndex > 0) {\r\n this.parentMarginTop = this.itemHeight!;\r\n this.currentStartIndex--;\r\n }\r\n if (this.currentStartIndex < 0) {\r\n this.currentStartIndex = 0;\r\n }\r\n if (this.currentStartIndex === 0 && this.parentMarginTop < 0) {\r\n this.parentMarginTop = 0;\r\n }\r\n this.showElements();\r\n\r\n this.showScrollBar(-move);\r\n }\r\n }\r\n\r\n ngAfterContentInit() {\r\n // konfiguracja scroll\r\n this.$scrollBar.setOptions({ elementId: this.id, factor: (this.parentHeight / this.parentFullHeight) });\r\n\r\n }\r\n\r\n constructor(\r\n private $renderer: Renderer2,\r\n private $element: ElementRef,\r\n private $scrollBar: ScrollBarService\r\n ) {\r\n this.scrollDeltaSub = this.$scrollBar.getScrollDelta().pipe(filter(delta => delta && delta.elementId === this.id))\r\n .subscribe(delta => {\r\n if (delta) {\r\n this.currentStartIndex = Math.floor(delta.position / this.itemHeight!);\r\n const diff = delta.position - this.currentStartIndex * this.itemHeight!;\r\n this.parentMarginTop = diff;\r\n this.showElements();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n \r\n
","import { Component, ViewEncapsulation, forwardRef, OnInit, Input } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, ControlValueAccessor, FormControl, AbstractControl } from '@angular/forms';\r\nimport { CustomValidators } from '../../validators/validators';\r\nimport { UUID } from '../../models/other/UUID';\r\nimport { formatDate } from '../../formatters/date/format-date.function';\r\n\r\n@Component({\r\n selector: 'emq-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CheckboxComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CheckboxComponent implements OnInit, ControlValueAccessor {\r\n\r\n\r\n @Input()\r\n public formControl?: FormControl;\r\n\r\n @Input()\r\n public tabindex?: number;\r\n\r\n @Input()\r\n public label?: string;\r\n\r\n @Input()\r\n public ngValue: any;\r\n\r\n public isCheckboxOn = false;\r\n\r\n public disabled = false;\r\n\r\n _onChange = (_: any) => { };\r\n _onTouched = (_: any) => { };\r\n\r\n\r\n registerOnChange(fn: any): void { this._onChange = fn; }\r\n registerOnTouched(fn: any): void { this._onTouched = fn; }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n toggleValue() {\r\n this.setValue(!this.isCheckboxOn);\r\n }\r\n\r\n setValue(val: boolean) {\r\n\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.isCheckboxOn = val;\r\n\r\n if (this.isCheckboxOn) {\r\n this.formControl?.setValue(this.ngValue);\r\n } else {\r\n this.formControl?.setValue(null);\r\n }\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (this.ngValue === obj) {\r\n this.isCheckboxOn = true;\r\n } else {\r\n this.isCheckboxOn = false;\r\n }\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n

{{'vehicles-list.param-list' | translate}}

\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
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, EventEmitter, Output, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormBuilder, FormArray, FormControl, FormGroup, AbstractControl } from '@angular/forms';\r\n\r\nimport { forkJoin } from 'rxjs';\r\n\r\nimport { ConfigurationService } from '@commons/services/configuration/configuration.service';\r\nimport { VehicleService } from '@commons/services/vehicle/vehicle.service';\r\nimport { Config } from '../../../../commons/models/domain/Config';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-list-config',\r\n templateUrl: './vehicle-list-full-config.component.html',\r\n styleUrls: ['./vehicle-list-full-config.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class VehicleListFullConfigComponent implements OnInit {\r\n\r\n @Output()\r\n onClose: EventEmitter = new EventEmitter();\r\n\r\n /**\r\n * formularz\r\n */\r\n public form: FormArray;\r\n\r\n\r\n /**\r\n * zaznaczanie\r\n */\r\n public selectAllControl: AbstractControl;\r\n\r\n /**\r\n * rodzaje czujnikow\r\n */\r\n public indicatorTypeGroups: any[] = [];\r\n\r\n /**\r\n * model\r\n */\r\n public config?: Config;\r\n\r\n constructor(\r\n private $vehicleService: VehicleService,\r\n private $configService: ConfigurationService,\r\n private $fb: FormBuilder\r\n ) {\r\n\r\n // budowanie formularza\r\n this.form = this.$fb.array([]);\r\n this.form.valueChanges.subscribe(changes => {\r\n const data = this.form.getRawValue();\r\n this.config!.VehicleFullListColumns = data.filter(r => r.Selected === true).map(r => r.Type);\r\n this.config!.VehicleFullListColumnsOrder = data.sort((a, b) => {\r\n if (a.Level > b.Level) {\r\n return 1;\r\n } else if (a.Level < b.Level) {\r\n return -1;\r\n } else {\r\n if (a.Name > b.Name) {\r\n return 1;\r\n } else if (a.Name < b.Name) {\r\n return -1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n }).map(f => f.Type);\r\n });\r\n\r\n // budowanie kontrolki zaznaczania\r\n this.selectAllControl = this.$fb.control(null);\r\n this.selectAllControl.valueChanges.subscribe(flag => {\r\n\r\n\r\n for (let i = this.form.controls.length - 1; i >= 0; i--) {\r\n const control = this.form.at(i);\r\n control.controls['Selected'].setValue(flag);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n // streamy\r\n const s1 = this.$configService.getConfig();\r\n const s2 = this.$vehicleService.getVehicleControlIndicatorTypeList$();\r\n\r\n forkJoin([\r\n s1, s2\r\n ]).subscribe(results => {\r\n\r\n // wybik pierwszego streamu\r\n this.config = results[0];\r\n\r\n const sortOrder = this.config.VehicleFullListColumnsOrder || [13, 2, 11, 12, 1, 4, 19, 14, 15, 8, 7, 17, 3, 16];\r\n\r\n // wybik drugiego streamu\r\n const result = results[1];\r\n const indicatorTypes = result.sort((a, b) => {\r\n const ai = sortOrder.indexOf(a.Type);\r\n const bi = sortOrder.indexOf(b.Type);\r\n\r\n if (ai > bi) {\r\n return 1;\r\n } else if (ai < bi) {\r\n return -1;\r\n } else {\r\n if (a.Name > b.Name) {\r\n return 1;\r\n } else if (a.Name < b.Name) {\r\n return -1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n });\r\n\r\n\r\n // utworzenie formularz\r\n const VehicleFullListColumns = this.config.VehicleFullListColumns.concat([]);\r\n for (let i = 0; i < indicatorTypes.length; i++) {\r\n\r\n // czujnik\r\n const indicatorType = indicatorTypes[i];\r\n\r\n const Type = this.$fb.control(0);\r\n const Name = this.$fb.control('');\r\n const Selected = this.$fb.control(false);\r\n const First = this.$fb.control(i === 0);\r\n const Last = this.$fb.control(i === indicatorTypes.length - 1);\r\n const Level = this.$fb.control(i);\r\n\r\n // aktualizacja\r\n const SelectedValue = VehicleFullListColumns.indexOf(indicatorType.Type) !== -1;\r\n Selected.setValue(SelectedValue);\r\n\r\n const Item = this.$fb.group({\r\n Type: Type,\r\n Name: Name,\r\n Selected: Selected,\r\n First: First,\r\n Last: Last,\r\n Level: Level\r\n });\r\n\r\n this.form.push(Item);\r\n\r\n\r\n // aktualizacja\r\n Item.patchValue( { Name: indicatorType.Name, Type: indicatorType.Type });\r\n\r\n }\r\n\r\n\r\n this.groupBy();\r\n\r\n\r\n\r\n });\r\n }\r\n\r\n\r\n // grupowanie\r\n groupBy() {\r\n const groupCount = 7;\r\n // grupowanie\r\n this.indicatorTypeGroups = [];\r\n let indicatorTypeGroup: number[] = [];\r\n for (let i = 0; i < this.form.length; i++) {\r\n // przygotowanie grup\r\n if (i % groupCount === 0) {\r\n indicatorTypeGroup = [];\r\n this.indicatorTypeGroups.push(indicatorTypeGroup);\r\n }\r\n indicatorTypeGroup.push(i);\r\n }\r\n }\r\n\r\n /**\r\n * zamkniecie okna\r\n */\r\n close() {\r\n // zapisanie konfiguracji\r\n const s1 = this.$configService.saveConfig(this.config!).subscribe();\r\n\r\n // zamkniecie\r\n this.onClose.emit(null);\r\n }\r\n\r\n\r\n moveUp(el: AbstractControl) {\r\n const level: number = el.get('Level')!.value;\r\n for (let i = 0; i < this.form.length; i++) {\r\n if (i === level - 1) {\r\n const item = this.form.at(i);\r\n item.controls['Level'].setValue(level);\r\n el.get('Level')!.setValue(level - 1);\r\n\r\n this.form.removeAt(i);\r\n this.form.insert(i + 1, item);\r\n }\r\n }\r\n for (let i = 0; i < this.form.length; i++) {\r\n const item = this.form.at(i);\r\n item.controls['First'].setValue(i === 0);\r\n item.controls['Last'].setValue(i === this.form.length - 1);\r\n }\r\n\r\n this.groupBy();\r\n }\r\n\r\n moveDown(el: AbstractControl) {\r\n const level: number = el.get('Level')!.value;\r\n for (let i = 0; i < this.form.length; i++) {\r\n if (i === level + 1) {\r\n const item = this.form.at(i);\r\n item.controls['Level'].setValue(level);\r\n el.get('Level')!.setValue(level + 1);\r\n\r\n this.form.removeAt(i);\r\n this.form.insert(i - 1, item);\r\n\r\n }\r\n }\r\n for (let i = 0; i < this.form.length; i++) {\r\n const item = this.form.at(i);\r\n item.controls['First'].setValue(i === 0);\r\n item.controls['Last'].setValue(i === this.form.length - 1);\r\n }\r\n this.groupBy();\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
\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 {{ vehicle.Nm }}\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
\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
\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
\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
\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
\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
\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
\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 \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
\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
\r\n
","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\n\r\nimport {LatLng} from 'leaflet';\r\n\r\nimport {Vehicle} from '../../../../commons/models/domain/Vehicle';\r\nimport {Config} from '../../../../commons/models/domain/Config';\r\nimport {VehicleControlIndicator} from '../../../../commons/models/domain/VehicleControlIndicator';\r\nimport {Driver} from '../../../../commons/models/domain/Driver';\r\nimport {MapService} from '@commons/services/map/map/map.service';\r\nimport {MapConfigService} from '@commons/services/map/config/map-config.service';\r\nimport {Subscription} from 'rxjs';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-list-full-item',\r\n templateUrl: './vehicle-list-full-item.component.html',\r\n styleUrls: ['./vehicle-list-full-item.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class VehicleListFullItemComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n private vehicleValue? : Vehicle;\r\n\r\n @Input()\r\n public set vehicle(value)\r\n {\r\n this.vehicleValue = new Vehicle(value, this.translate);\r\n }\r\n\r\n public get vehicle(): Vehicle\r\n {\r\n return this.vehicleValue!;\r\n }\r\n\r\n @Input()\r\n public isScrolling?: boolean;\r\n\r\n @Output()\r\n public onItemDataChange: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n public index?: number;\r\n\r\n @Input()\r\n public isSelected?: boolean;\r\n\r\n @Input()\r\n public config?: Config;\r\n\r\n @Input()\r\n public options: any;\r\n\r\n @Input()\r\n public isIndictorColumnFullOn?: boolean;\r\n\r\n @Input()\r\n public indictorColumnFullMinWidth?: number;\r\n\r\n @Input()\r\n public indictorColumnFullLeft?: number;\r\n\r\n\r\n /**\r\n * parametry\r\n */\r\n public params?: VehicleControlIndicator[];\r\n\r\n /**\r\n* obserwacja zmian\r\n*/\r\n private vehicleChangeSub?: Subscription;\r\n\r\n /* śledzenie */\r\n private isFirstZoom = true;\r\n\r\n /**\r\n * kierowca\r\n */\r\n public driver?: Driver;\r\n\r\n public fuel?: VehicleControlIndicator;\r\n\r\n private timeout: any;\r\n\r\n /**\r\n * konstruktor\r\n */\r\n constructor(\r\n private $map: MapService,\r\n private $mapConfig: MapConfigService,\r\n private translate: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.params = this.vehicle.ControlIndicators;\r\n this.driver = this.vehicle.LastDriver;\r\n this.fuel = this.vehicle.mainFuel;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n if (changes && changes['vehicle']) {\r\n const vehicle = new Vehicle(changes['vehicle'].currentValue, this.translate);\r\n\r\n this.params = vehicle.ControlIndicators;\r\n this.driver = vehicle.LastDriver;\r\n this.fuel = vehicle.mainFuel;\r\n\r\n if (vehicle && this.params) {\r\n // czujniki\r\n const indicators = this.params.filter(i => [9, 16, 19, 26].indexOf(i.Tp) !== -1);\r\n this.onItemDataChange.emit(indicators);\r\n }\r\n\r\n if (vehicle && this.isSelected) {\r\n let selVehicleId = this.$mapConfig.getCurrentVehicleId();\r\n this.isFirstZoom = (!selVehicleId || selVehicleId != vehicle.Id);\r\n if (this.isFirstZoom) {\r\n this.$mapConfig.setCurrentVehicleId('tk-vehicle-list-full-item', vehicle.Id);\r\n }\r\n this.goToVehicleLocation('vehicle -> list-full-item -> OnChanges');\r\n }\r\n }\r\n }\r\n\r\n goToVehicleLocation(source: string) {\r\n if (this.vehicle && this.vehicle.LL) {\r\n\r\n const lat = parseFloat(this.vehicle.LL.Lt + '');\r\n const lng = parseFloat(this.vehicle.LL.Ln + '');\r\n\r\n if (lat && lat !== 361 && lng && lng !== 361) {\r\n const coords = new LatLng(lat, lng);\r\n this.$map.showPointWithZoom(coords);\r\n this.isFirstZoom = false;\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // odwiazanie ewentualnej istniejacje\r\n if (this.vehicleChangeSub) {\r\n this.vehicleChangeSub.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * pokazanie kolumny\r\n * @param type kolumna\r\n */\r\n public showColumn(type: number): boolean {\r\n if (this.config && this.config.VehicleFullListColumns.indexOf(type) !== -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * pokazywanie kolumn tacho\r\n */\r\n public showTachoColumn(val?: string): boolean {\r\n if (!this.options || !this.options.tachoValue) {\r\n return true;\r\n }\r\n if (!val) {\r\n return this.options.tachoValue.length === 0;\r\n }\r\n return this.options.tachoValue.indexOf(val) !== -1;\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 {{'labels.all' | translate | titlecase}}\r\n
  • \r\n \r\n
  • \r\n \r\n \r\n \r\n {{'labels.on' | translate | titlecase}}\r\n
  • \r\n \r\n
  • \r\n \r\n \r\n \r\n {{'labels.off' | translate | titlecase}}\r\n
  • \r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-list-full-inidicator-status-header',\r\n templateUrl: './vehicle-list-full-indicator-status-header.component.html',\r\n styleUrls: ['./vehicle-list-full-indicator-status-header.component.less']\r\n})\r\nexport class VehicleListFullIndicatorStatusHeaderComponent {\r\n @Output()\r\n public onStatusChanged: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n public currentValue = 'all';\r\n\r\n public isPanelVisible = false;\r\n\r\n private timeOut: any;\r\n\r\n onSelect(val: string) {\r\n this.currentValue = val;\r\n this.onStatusChanged.emit(val);\r\n this.isPanelVisible = false;\r\n }\r\n\r\n showPanel(flag: boolean) {\r\n if (flag === true) {\r\n this.isPanelVisible = true;\r\n if (this.timeOut) {\r\n clearTimeout(this.timeOut);\r\n }\r\n } else {\r\n this.timeOut = setTimeout(() => this.isPanelVisible = false, 300);\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 {{'labels.all' | translate | titlecase}}\r\n \r\n
    \r\n
  • \r\n\r\n
  • \r\n
    \r\n \r\n {{item}}\r\n \r\n
    \r\n
  • \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n","import {Component, ElementRef, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild} from '@angular/core';\r\n\r\nimport {Consts} from '../../../../../commons/consts/consts';\r\nimport {Vehicle} from \"@commons/models/domain/Vehicle\";\r\n\r\n@Component({\r\n selector: 'tk-vehicle-list-full-inidicator-value-header',\r\n templateUrl: './vehicle-list-full-indicator-value-header.component.html',\r\n styleUrls: ['./vehicle-list-full-indicator-value-header.component.less']\r\n})\r\nexport class VehicleListFullIndicatorValueHeaderComponent implements OnChanges {\r\n @Output()\r\n public onValueChanged: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('select__toggle', {read: ElementRef}) selectButton: any;\r\n\r\n public showList = false;\r\n\r\n @Input()\r\n public currentValue?: string | null;\r\n\r\n public items: string[] = [];\r\n\r\n @Input()\r\n vehicles?: Vehicle[];\r\n\r\n constructor(\r\n ) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.vehicles && this.items.length === 0)\r\n this.setItems();\r\n }\r\n\r\n private setItems() {\r\n const allIndicators = this.vehicles!.map(v => v.ControlIndicators).flat();\r\n const items = allIndicators.filter(i => (Consts.binaryIndicators.indexOf(i!.Tp) !== -1));\r\n const sorted = [];\r\n for (const v of items) {\r\n if (v && v.Nm) {\r\n if (sorted.indexOf(v.Nm) === -1) {\r\n sorted.push(v.Nm);\r\n }\r\n }\r\n }\r\n this.items = sorted.sort();\r\n }\r\n\r\n public toggleShowList() {\r\n this.showList = !this.showList;\r\n if (this.showList === true) {\r\n this.selectButton.nativeElement.focus();\r\n }\r\n }\r\n\r\n public closeShowList() {\r\n setTimeout(() => {\r\n this.showList = false;\r\n }, 300);\r\n }\r\n\r\n\r\n onSelect(val: string) {\r\n this.currentValue = val;\r\n this.onValueChanged.emit(val);\r\n this.toggleShowList();\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 \r\n Aktualny stan\r\n \r\n
    \r\n
  • \r\n\r\n
  • \r\n
    \r\n \r\n \r\n Wszystkie stany\r\n \r\n
    \r\n
  • \r\n\r\n
  • \r\n
    \r\n \r\n \r\n Jadą\r\n \r\n
    \r\n
  • \r\n\r\n\r\n
  • \r\n
    \r\n \r\n \r\n Pracują\r\n \r\n
    \r\n
  • \r\n\r\n
  • \r\n
    \r\n \r\n \r\n Odpoczywają\r\n \r\n
    \r\n
  • \r\n\r\n
  • \r\n
    \r\n \r\n \r\n Dyspozycyjność\r\n \r\n
    \r\n
  • \r\n\r\n\r\n
\r\n\r\n
\r\n
","import { Component, EventEmitter, Output, ElementRef, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-list-full-tacho-header',\r\n templateUrl: './vehicle-list-full-tacho-header.component.html',\r\n styleUrls: ['./vehicle-list-full-tacho-header.component.less']\r\n})\r\nexport class VehicleListFullTachoHeaderComponent {\r\n @Output()\r\n public onValueChanged: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('select__toggle', { read: ElementRef }) selectButton: any;\r\n\r\n public showList = false;\r\n\r\n public currentValues: string[] = [];\r\n\r\n public items: string[] = [];\r\n\r\n public toggleShowList() {\r\n this.showList = !this.showList;\r\n if (this.showList === true) {\r\n this.selectButton.nativeElement.focus();\r\n }\r\n }\r\n\r\n public closeShowList() {\r\n setTimeout(() => {\r\n this.showList = false;\r\n }, 300);\r\n }\r\n\r\n resetValue() {\r\n this.currentValues = [];\r\n this.onValueChanged.emit(this.currentValues);\r\n this.toggleShowList();\r\n }\r\n\r\n selectAll() {\r\n this.currentValues = ['driving', 'resting', 'free', 'working'];\r\n this.onValueChanged.emit(this.currentValues);\r\n this.toggleShowList();\r\n\r\n }\r\n\r\n onSelect(val: string) {\r\n const idx = this.currentValues.indexOf(val);\r\n if (idx === -1) {\r\n this.currentValues.push(val);\r\n } else {\r\n this.currentValues.splice(idx, 1);\r\n }\r\n this.onValueChanged.emit(this.currentValues);\r\n this.toggleShowList();\r\n }\r\n\r\n constructor(\r\n private $el: ElementRef) { }\r\n}\r\n\r\n\r\n\r\n","import { Component, HostListener, Output, EventEmitter } from '@angular/core';\r\nimport { MapControlService } from '@commons/services/map/control/map-control.serivce';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-list-full-expand',\r\n templateUrl: './vehicle-list-full-expand.component.html',\r\n styleUrls: ['./vehicle-list-full-expand.component.less']\r\n})\r\nexport class VehicleListFullExpandComponent {\r\n\r\n @Output() public dragStart = new EventEmitter();\r\n @Output() public dragMove = new EventEmitter();\r\n @Output() public dragEnd = new EventEmitter();\r\n\r\n\r\n private dragging = false;\r\n\r\n @HostListener('pointerdown', ['$event'])\r\n onPointerDown(event: PointerEvent): void {\r\n this.dragging = true;\r\n this.dragStart.emit(event);\r\n }\r\n\r\n @HostListener('document:pointermove', ['$event'])\r\n onPointerMove(event: PointerEvent): void {\r\n if (!this.dragging) {\r\n return;\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n const val = Math.floor(event.clientY);\r\n this.$mapControlService.resize(val);\r\n this.dragMove.emit(event);\r\n\r\n return;\r\n }\r\n\r\n @HostListener('document:pointerup', ['$event'])\r\n onPointerUp(event: PointerEvent): void {\r\n if (!this.dragging) {\r\n return;\r\n }\r\n\r\n this.dragging = false;\r\n this.dragEnd.emit(event);\r\n }\r\n\r\n constructor(private $mapControlService: MapControlService) { }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, ViewEncapsulation, EventEmitter, Output, Input } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'tk-vehicle-list-full-indicator-column-full',\r\n template: `\r\n
\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['vehicle-list-full-inidicator-column-full.component.less']\r\n})\r\nexport class VehicleListFullInidicatorColumnFullComponent {\r\n\r\n @Output()\r\n public onSwitchChange: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n public isIndictorColumnFullOn = false;\r\n\r\n public toggel() {\r\n this.isIndictorColumnFullOn = !this.isIndictorColumnFullOn;\r\n this.onSwitchChange.emit(this.isIndictorColumnFullOn);\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
\r\n
\r\n
\r\n
\r\n\r\n
{{'labels.loading-data' | translate}}
\r\n\r\n
= 0 \" class=\"loaded-vehicles loaded-vehicles-full-list\"\r\n (scroll)=\"onScroll($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 \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\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 {{temperatureUnit}}\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n {{indicatorColumnTitle}}\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 {{'labels.tacho' | translate | titlecase}}\r\n
\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n {{'labels.driving' | translate | titlecase}}\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'labels.work' | translate | titlecase}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n {{'vehicles-list.rest-short' | translate}}\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'vehicles-list.disposable-short' | translate}}\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 \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 {{'labels.no-result' | translate}}\r\n
\r\n
\r\n\r\n \r\n 0\">\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
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n","import {Component, ElementRef, NgZone, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\n\r\nimport {filter, Subscription} from 'rxjs';\r\n\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\nimport {MapService} from '@commons/services/map/map/map.service';\r\nimport {PanelNavigationService} from '@commons/services/navigation/panel-navigation.service';\r\nimport {VehicleService} from '@commons/services/vehicle/vehicle.service';\r\nimport {Vehicle} from '../../../commons/models/domain/Vehicle';\r\nimport {VehicleControlIndicator} from '../../../commons/models/domain/VehicleControlIndicator';\r\nimport {ConfigurationService} from '@commons/services/configuration/configuration.service';\r\nimport {Config} from '../../../commons/models/domain/Config';\r\nimport {FullAddressPipe} from '@commons/pipes/full-address.pipe';\r\nimport {DriverFullNamePipe} from '@commons/pipes/driver-full-name.pipe';\r\nimport {MapControlService} from '@commons/services/map/control/map-control.serivce';\r\nimport {MapConfigService} from '@commons/services/map/config/map-config.service';\r\n\r\nimport {TranslateHelperService} from \"@shared/services/translate-helper.service\";\r\n\r\n@Component({\r\n selector: 'tk-vehicle-list-full',\r\n templateUrl: './vehicle-list-full.component.html',\r\n styleUrls: ['./vehicle-list-full.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n\r\n})\r\nexport class VehicleListFullComponent implements OnInit, OnDestroy {\r\n\r\n\r\n // pola\r\n static filedLenghts = {\r\n '13': 50,\r\n '2': 80,\r\n '11': 200,\r\n '12': 100,\r\n '1': 350,\r\n '4': 200,\r\n '19': 80,\r\n '14': 80,\r\n '15': 80,\r\n '8': 80,\r\n '7': 95,\r\n '17': 180,\r\n '3': 185,\r\n '16': 100,\r\n '5': 100,\r\n '6': 80,\r\n '9': 100,\r\n '10': 100,\r\n '18': 100\r\n };\r\n\r\n // pola\r\n static fileds = {\r\n 'a13': '13',\r\n 'a2': '2',\r\n 'a11': '11',\r\n 'a12': '12',\r\n 'a1': '1',\r\n 'a4': '4',\r\n 'a19': '19',\r\n 'a14': '14',\r\n 'a15': '15',\r\n 'a8': '8',\r\n 'a7': '7',\r\n 'a17': '17',\r\n 'a3': '3',\r\n 'a16': '16',\r\n 'a5': '5',\r\n 'a6': '6',\r\n 'a9': '9',\r\n 'a10': '10',\r\n 'a18': '18'\r\n };\r\n\r\n @Output()\r\n public get indicatorColumnTitle() {\r\n if (this.additionalParams.BinaryParamName) {\r\n return this.additionalParams.BinaryParamName;\r\n } else {\r\n return this.translateHelperService.firstLetterToUppercase(this.translateHelperService.sensor);\r\n }\r\n }\r\n\r\n public panelHeight = 320;\r\n\r\n public areaHeight = 320 - 60;\r\n\r\n public isIndictorColumnFullOn = false;\r\n public indictorColumnFullLength = 0;\r\n public indictorColumnFullCount = 0;\r\n public indictorColumnFullLeft = 100;\r\n\r\n @ViewChild('vehicleTable', { read: ElementRef })\r\n public vehicleTable?: ElementRef;\r\n\r\n public vehicleTableWidth?: number;\r\n\r\n public minWidth = 0;\r\n\r\n public additionalParams = {\r\n BinaryParamName: null,\r\n BinaryParamState: \"all\"\r\n };\r\n\r\n public isScrolling = false;\r\n\r\n /**\r\n * Flag indicating whether this component is visible\r\n */\r\n public isVisible = false;\r\n\r\n\r\n /**\r\n * konfiguracja\r\n */\r\n public config?: Config;\r\n\r\n /**\r\n * czy konfiguracja pokazana\r\n */\r\n public isConfigVisible = false;\r\n\r\n /**\r\n * List of vehicles to show\r\n */\r\n public vehicles?: Vehicle[];\r\n\r\n /**\r\n * Id of selected vehicle\r\n */\r\n public selectedVehicleId?: number;\r\n\r\n /**\r\n * Subscription to url changes stream\r\n */\r\n private navSub: Subscription;\r\n\r\n /**\r\n * Subscription to stream of vehicles to show\r\n */\r\n private vehiclesSub?: Subscription;\r\n\r\n\r\n /**\r\n * Subscription for changes from resize event listener\r\n */\r\n private resizeSub?: Subscription;\r\n\r\n\r\n private vehicleChangeSub?: Subscription;\r\n\r\n currentFilter: any;\r\n private firstRefresh: boolean;\r\n\r\n /**\r\n * transformer\r\n */\r\n private $fullAddressPipe = new FullAddressPipe();\r\n\r\n private $driverFullNamePipe = new DriverFullNamePipe();\r\n\r\n /**\r\n * kierunek sortowania\r\n */\r\n private sortBy = {\r\n Type: 11,\r\n Dir: 'ASC'\r\n };\r\n\r\n private isResizingTimeout: any;\r\n\r\n /**\r\n * opcje dla rekordow\r\n */\r\n public options: any = {\r\n tachoValue: [],\r\n indicatorStatus: null,\r\n indicatorValue: null\r\n };\r\n\r\n temperatureUnit: string | null = '';\r\n\r\n constructor(\r\n private $nav: PanelNavigationService,\r\n private $router: Router,\r\n private $vehicle: VehicleService,\r\n private $configService: ConfigurationService,\r\n private $mapControlService: MapControlService,\r\n private $zone: NgZone,\r\n private $map: MapService,\r\n private $mapConfig: MapConfigService,\r\n private translateHelperService: TranslateHelperService,\r\n private translateService: TranslateService\r\n ) {\r\n this.translateService.get('labels.temperature-unit').subscribe(t => this.temperatureUnit = t);\r\n\r\n // Subscribe to stream of url changes\r\n this.navSub = this.$nav.getVisibilitySubject()\r\n .pipe(filter(item => (\r\n !item.subsites\r\n || item.subsites.indexOf('vehicle-full') !== -1\r\n )))\r\n .subscribe(change => {\r\n if (change.id) {\r\n this.selectedVehicleId = parseInt(change.id, 10);\r\n } else {\r\n this.selectedVehicleId = undefined;\r\n }\r\n this.isVisible = change.show;\r\n this.$vehicle.refreshListFiltered();\r\n });\r\n this.firstRefresh = true;\r\n }\r\n\r\n /**\r\n * Ng on init lifecycle hook\r\n */\r\n public ngOnInit(): void {\r\n\r\n // Build stream of vehicles to show from filtered vehicles and scroll event streams\r\n this.vehiclesSub =\r\n this.$vehicle.getListFiltered$()\r\n .subscribe(receivedVehicles => {\r\n if (this.isVisible === true) {\r\n this.$zone.run(() => {\r\n\r\n const isTheSame = this.isTheSame(this.vehicles || [], receivedVehicles || []);\r\n if (!isTheSame) {\r\n this.$map.fitMapBoundsToVehicles(receivedVehicles);\r\n }\r\n\r\n // posortowanie\r\n this.vehicles = this.sortByColumn(receivedVehicles);\r\n if (this.isThisFirstRefresh(receivedVehicles)) {\r\n this.vehicles = undefined;\r\n this.firstRefresh = false;\r\n }\r\n else {\r\n this.vehicles = this.sortByColumn(receivedVehicles);\r\n }\r\n });\r\n }\r\n });\r\n\r\n // pobranie konfiguracji\r\n this.$configService.getConfig().subscribe(config => {\r\n this.config = config;\r\n this.updateTableWidth();\r\n });\r\n\r\n // resize\r\n this.resizeSub = this.$mapControlService.getResizeSubject().subscribe(result => {\r\n if (this.isResizingTimeout) {\r\n clearTimeout(this.isResizingTimeout);\r\n }\r\n const height = window.innerHeight\r\n || document.documentElement.clientHeight\r\n || document.body.clientHeight;\r\n\r\n const eventHeight = result;\r\n\r\n let panelHeight = (height - eventHeight);\r\n if (panelHeight < 30) {\r\n panelHeight = 30;\r\n }\r\n\r\n if (eventHeight <= 0) {\r\n panelHeight = height;\r\n }\r\n\r\n this.panelHeight = panelHeight;\r\n\r\n\r\n this.isResizingTimeout = setTimeout(() => {\r\n this.areaHeight = panelHeight - 60;\r\n }, 300);\r\n\r\n });\r\n }\r\n\r\n /**\r\n * check if the same\r\n */\r\n private isTheSame(prev: Vehicle[], next: Vehicle[]): boolean {\r\n\r\n prev.sort((x, y) => x.Id! - y.Id!);\r\n next.sort((x, y) => x.Id! - y.Id!);\r\n\r\n let i = 0;\r\n let j = 0;\r\n const joined: Vehicle[] = [];\r\n\r\n while (i < prev.length && j < next.length) {\r\n\r\n if (prev[i].Id === next[j].Id) {\r\n joined.push(prev[i]);\r\n i += 1;\r\n j += 1;\r\n } else if (prev[i].Id! < next[j].Id!) {\r\n i += 1;\r\n } else {\r\n j += 1;\r\n }\r\n\r\n }\r\n\r\n const flag = (joined.length === prev.length) && (prev.length === next.length);\r\n\r\n\r\n return flag;\r\n }\r\n\r\n /**\r\n * Ng on destroy lifecycle hook\r\n */\r\n public ngOnDestroy(): void {\r\n\r\n if (this.navSub) {\r\n this.navSub.unsubscribe();\r\n }\r\n if (this.vehiclesSub) {\r\n this.vehiclesSub.unsubscribe();\r\n }\r\n if (this.resizeSub) {\r\n this.resizeSub.unsubscribe();\r\n }\r\n if (this.vehicleChangeSub) {\r\n this.vehicleChangeSub.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Handles if user selects a vehicle\r\n * @param vehicle selected vehicle\r\n */\r\n public onSelect(vehicle: Vehicle): void {\r\n\r\n\r\n // odznaczenie i zaznaczenia\r\n if (vehicle.Id && this.selectedVehicleId === vehicle.Id) {\r\n this.selectedVehicleId = undefined;\r\n this.$mapConfig.setCurrentVehicleId('tk-list-full', undefined);\r\n this.$router.navigate(['panel', 'vehicle'], { queryParams: { 'mode': 'full' } });\r\n this.$map.centerMap();\r\n } else {\r\n this.selectedVehicleId = vehicle.Id;\r\n this.$mapConfig.setCurrentVehicleId('tk-list-full', this.selectedVehicleId);\r\n this.$router.navigate(['panel', 'vehicle'], { queryParams: { 'mode': 'full', 'id': this.selectedVehicleId } });\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n /**\r\n * konfiguracja table\r\n */\r\n public configureTable() {\r\n this.isConfigVisible = true;\r\n }\r\n\r\n public switchToVehicleListLite() {\r\n if (this.selectedVehicleId && this.selectedVehicleId > 0) {\r\n this.$router.navigate(['panel', 'vehicle'], { queryParams: { 'mode': 'details', 'id': this.selectedVehicleId } });\r\n } else {\r\n this.$router.navigate(['panel', 'vehicle'], { queryParams: { 'mode': 'lite' } });\r\n }\r\n }\r\n\r\n /**\r\n * wykonanie zmiany\r\n */\r\n public onConfigureTableClose(data: any) {\r\n this.isConfigVisible = false;\r\n this.$configService.getConfig().subscribe(config => {\r\n this.config = config;\r\n this.updateTableWidth();\r\n });\r\n }\r\n\r\n /**\r\n * pokazanie kolumy\r\n * @param type kolumna\r\n */\r\n public showColumn(type: number): boolean {\r\n if (this.config && this.config.VehicleFullListColumns.indexOf(type) !== -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * sortowanie kolumn\r\n */\r\n public setSortColumn(type: number): void {\r\n let dir = '';\r\n if (this.sortBy && this.sortBy.Type === type && this.sortBy.Dir) {\r\n dir = this.sortBy.Dir;\r\n }\r\n // zmiana bo kliknieto\r\n switch (dir) {\r\n case 'ASC':\r\n dir = 'DESC';\r\n break;\r\n case 'DESC':\r\n dir = '';\r\n break;\r\n default:\r\n dir = 'ASC';\r\n break;\r\n }\r\n\r\n // zapisanie nowego sortowania\r\n this.sortBy = {\r\n Type: type,\r\n Dir: dir\r\n };\r\n\r\n\r\n // sortowanie\r\n this.$zone.run(() => {\r\n this.vehicles = this.sortByColumn(this.vehicles!);\r\n });\r\n }\r\n /**\r\n * pobranie kierunku sortowania\r\n * @param type typ kolumy\r\n */\r\n public getSortColumnDir(type: number, dataType?: string): string {\r\n if (this.sortBy && this.sortBy.Type === type && this.sortBy.Dir) {\r\n let sort = this.sortBy.Dir === 'ASC' ? 'A-Z' : 'Z-A';\r\n\r\n switch (dataType) {\r\n case 'min-max':\r\n sort = sort === 'A-Z' ? 'min-max' : 'max-min';\r\n break;\r\n case 'number':\r\n sort = sort === 'A-Z' ? '0-9' : '9-0';\r\n break;\r\n }\r\n\r\n return sort;\r\n }\r\n return '';\r\n }\r\n\r\n /**\r\n * posortowanie\r\n */\r\n private sortByColumn(vehicles: Vehicle[]): Vehicle[] {\r\n const sortedVehicles = vehicles.sort((a, b) => {\r\n\r\n let result = 0;\r\n\r\n if (this.sortBy) {\r\n const dir = this.sortBy.Dir;\r\n\r\n if (!dir || dir === '') {\r\n return result;\r\n }\r\n\r\n const controlIndicatorsA = a.ControlIndicators;\r\n const controlIndicatorsB = b.ControlIndicators;\r\n\r\n switch (this.sortBy.Type) {\r\n // Adres ostatniej znanej pozycji\r\n case 1:\r\n const displayedAddressA = this.$fullAddressPipe.transform(a.LL!);\r\n const displayedAddressB = this.$fullAddressPipe.transform(b.LL!);\r\n result = this.compareStrings(displayedAddressA, displayedAddressB);\r\n break;\r\n // Czas od ostatniej zmiany statusu\r\n case 2:\r\n //Przypisujemy odwrotność, ponieważ najdawniejszy czas zmiany statusu ma najniższą wartość - a chcemy umieścić go na końcu.\r\n //Tak samo najnowszy czas zmiany statusu (np. sprzed kilku sekund) będzie miał najwyższą wartość, ale chcemy umieścić go na początku.\r\n //Generalnie ponieważ nie wyświetlamy daty zmiany statusu a raczej wynik operacji\r\n //[aktualny czas] - [czas zmiany], konieczne jest odwrócenie wyniku.\r\n result = -this.compareControlIndicatorGroupTime(controlIndicatorsA!, controlIndicatorsB!, 13);\r\n break;\r\n // Kierowca\r\n case 4:\r\n const displayedDriverA = this.$driverFullNamePipe.transform(a.LastDriver!);\r\n const displayedDriverB = this.$driverFullNamePipe.transform(b.LastDriver!);\r\n result = this.compareStrings(displayedDriverA, displayedDriverB);\r\n break;\r\n // Nazwa pojazdu\r\n case 11:\r\n result = this.compareStrings(a.Nm!, b.Nm!);\r\n break;\r\n // Status\r\n case 13:\r\n result = (a.St || 0) - (b.St || 0);\r\n break;\r\n case 5: // Licznik km\r\n case 6: // Napięcie\r\n case 7: // Obroty\r\n case 8: // Paliwo\r\n case 9: // Paliwo CAN\r\n case 10: // Pedał gazu\r\n case 12: // Prędkość\r\n case 14: // GPS\r\n case 15: // GSM\r\n case 17: // Temperatura\r\n case 18: // Zużycie CAN\r\n case 19:\r\n result = this.compareControlIndicatorGroupValue(controlIndicatorsA!, controlIndicatorsB!, this.sortBy.Type)\r\n break;\r\n }\r\n\r\n // odwrócenie wyniku jeśli sortujemy malejąco\r\n if (dir === 'DESC') {\r\n result = -result;\r\n }\r\n }\r\n\r\n return result;\r\n });\r\n\r\n return JSON.parse(JSON.stringify(sortedVehicles));\r\n }\r\n\r\n private compareControlIndicatorGroupValue(a: VehicleControlIndicator[], b: VehicleControlIndicator[], group: number): number {\r\n const controlIndicatorA = (a || []).find(o => o && o.Group === group);\r\n const controlIndicatorB = (b || []).find(o => o && o.Group === group);\r\n\r\n const valueA = this.getLastControlIndicatorValueOrDefault(controlIndicatorA!);\r\n const valueB = this.getLastControlIndicatorValueOrDefault(controlIndicatorB!);\r\n\r\n return valueA - valueB;\r\n }\r\n\r\n private getLastControlIndicatorValueOrDefault(indicator: VehicleControlIndicator): any {\r\n if (indicator && indicator.LV && (indicator.LV.V || indicator.LV.V === 0)) {\r\n return indicator.LV.V;\r\n }\r\n else {\r\n return -1000000000;\r\n }\r\n }\r\n\r\n private compareStrings(a: string, b: string): number {\r\n const valueA = (a || '').toLowerCase();\r\n const valueB = (b || '').toLowerCase();\r\n\r\n return valueA > valueB ? 1 : (valueA < valueB ? -1 : 0);\r\n }\r\n\r\n private compareControlIndicatorGroupTime(a: VehicleControlIndicator[], b: VehicleControlIndicator[], group: number): number {\r\n const controlIndicatorA = (a || []).find(o => o && o.Group === group);\r\n const controlIndicatorB = (b || []).find(o => o && o.Group === group);\r\n\r\n const valueA = this.getLastControlIndicatorTimeInMilliseconds(controlIndicatorA!);\r\n const valueB = this.getLastControlIndicatorTimeInMilliseconds(controlIndicatorB!);\r\n\r\n return valueA - valueB;\r\n }\r\n\r\n private getLastControlIndicatorTimeInMilliseconds(indicator: VehicleControlIndicator): number {\r\n if (indicator && indicator.LV && indicator.LV.T) {\r\n return new Date(indicator.LV.T).getTime();\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * zmiana filtrowania statusu czujniak\r\n * @param status status\r\n */\r\n public onIndicatorStatusFilterChanged(status: any) {\r\n // const options = JSON.parse(JSON.stringify(this.options || {}));\r\n // options.indicatorStatus = status;\r\n // this.options = options;\r\n this.additionalParams.BinaryParamState = status;\r\n this.additionalParams = JSON.parse(JSON.stringify(this.additionalParams));\r\n }\r\n\r\n /**\r\n * zmiana filtrowania wartosci czujnika\r\n * @param status status\r\n */\r\n public onIndicatorValueFilterChanged(value: any) {\r\n this.additionalParams.BinaryParamName = value;\r\n this.additionalParams = JSON.parse(JSON.stringify(this.additionalParams));\r\n }\r\n\r\n /**\r\n * zmiana zakresu tacho\r\n */\r\n public onTachoValueFilterChanged(value: any) {\r\n const options = JSON.parse(JSON.stringify(this.options || {}));\r\n options.tachoValue = value;\r\n this.options = options;\r\n this.updateTableWidth();\r\n }\r\n\r\n /**\r\n * pokazywanie kolumn tacho\r\n */\r\n public showTachoColumn(val?: string): boolean {\r\n if (!this.options || !this.options.tachoValue) {\r\n return true;\r\n }\r\n if (!val) {\r\n return this.options.tachoValue.length === 0;\r\n }\r\n return this.options.tachoValue.indexOf(val) !== -1;\r\n }\r\n\r\n /**\r\n * aktualizacja rozmaru tabel\r\n */\r\n private updateTableWidth() {\r\n\r\n const keys = Object.keys(VehicleListFullComponent.filedLenghts);\r\n this.minWidth = 0;\r\n for (const k of keys) {\r\n if (this.config && this.config.VehicleFullListColumns.indexOf(parseInt(k, 10)) !== -1) {\r\n this.minWidth += (VehicleListFullComponent.filedLenghts as any)[k];\r\n this.minWidth += 3;\r\n }\r\n }\r\n\r\n // zbadanie tacho\r\n if (this.options.tachoValue.indexOf('driving') !== -1) {\r\n this.minWidth += VehicleListFullComponent.filedLenghts['16'];\r\n this.minWidth += 3;\r\n }\r\n if (this.options.tachoValue.indexOf('resting') !== -1) {\r\n this.minWidth += VehicleListFullComponent.filedLenghts['16'];\r\n this.minWidth += 3;\r\n }\r\n if (this.options.tachoValue.indexOf('free') !== -1) {\r\n this.minWidth += VehicleListFullComponent.filedLenghts['16'];\r\n this.minWidth += 3;\r\n }\r\n if (this.options.tachoValue.indexOf('working') !== -1) {\r\n this.minWidth += VehicleListFullComponent.filedLenghts['16'];\r\n this.minWidth += 3;\r\n }\r\n\r\n if (this.options.tachoValue.length > 0) {\r\n this.minWidth -= VehicleListFullComponent.filedLenghts['16'];\r\n this.minWidth += 3;\r\n }\r\n\r\n // this.minWidth += 50;\r\n // this.vehicleTableWidth = this.vehicleTable.nativeElement.clientWidth;\r\n this.updateInidicatorFieldPosition();\r\n }\r\n\r\n\r\n public onIndictorColumnFullChange(flag: boolean) {\r\n this.isIndictorColumnFullOn = flag;\r\n this.updateInidicatorFieldPosition();\r\n }\r\n\r\n private updateInidicatorFieldPosition() {\r\n if (this.isIndictorColumnFullOn === true) {\r\n // klucz to 3\r\n let fields = {};\r\n\r\n if (this.config?.VehicleFullListColumnsOrder) {\r\n for (const key of this.config.VehicleFullListColumnsOrder) {\r\n (fields as any)['a' + key] = key;\r\n }\r\n } else {\r\n fields = VehicleListFullComponent.fileds;\r\n }\r\n const keys = Object.keys(fields);\r\n this.indictorColumnFullLeft = 0;\r\n for (const key of keys) {\r\n const k = parseInt((VehicleListFullComponent.fileds as any)[key], 10);\r\n if (this.config && this.config.VehicleFullListColumns.indexOf(k) !== -1) {\r\n if (key === 'a3') {\r\n break;\r\n }\r\n this.indictorColumnFullLeft += (VehicleListFullComponent.filedLenghts as any)[k];\r\n this.indictorColumnFullLeft += 2;\r\n }\r\n }\r\n this.indictorColumnFullLength = this.indictorColumnFullCount * (24) + 40;\r\n } else {\r\n this.indictorColumnFullLength = VehicleListFullComponent.filedLenghts['3'];\r\n }\r\n\r\n }\r\n\r\n public onItemDataChange(items: any[]) {\r\n const l = items.length;\r\n this.indictorColumnFullCount = Math.max(l, this.indictorColumnFullCount);\r\n }\r\n\r\n onFilterChanged(filter: any) {\r\n if (filter) {\r\n if (this.isFilterEmpty(filter)) {\r\n this.currentFilter = null;\r\n return;\r\n }\r\n }\r\n\r\n this.currentFilter = filter;\r\n }\r\n\r\n private isThisFirstRefresh(vehicles: Vehicle[]): boolean {\r\n return this.firstRefresh && vehicles && vehicles.length == 0 && !this.currentFilter;\r\n }\r\n\r\n private isFilterEmpty(filter: any) {\r\n const isStatusNull = !filter.Status || filter.Status === 0;\r\n const isTagsNull = !filter.Tags || filter.Tags.length === 0;\r\n const isPhraseNull = !filter.Phrase;\r\n const isBinaryParamNull = !filter.BinaryParamName;\r\n const isBinaryStateNull = filter.BinaryParamState == undefined;\r\n\r\n return isStatusNull && isTagsNull && isPhraseNull && isBinaryParamNull && isBinaryStateNull;\r\n }\r\n\r\n onVehicleUpdate(event: any) {\r\n throw new Error(\"method 'onVehicleUpdate' not implemented\");\r\n }\r\n\r\n onScroll(event: any) {\r\n throw new Error(\"method 'onScroll' not implemented\");\r\n }\r\n}\r\n","export enum RiskCategory {\r\n Unknown = 0,\r\n AtRiskAbroad = 1,\r\n AtRiskNotAbroad = 2,\r\n NotAtRisk = 3,\r\n}\r\n","
\r\n \r\n\r\n
\r\n \r\n \r\n {{ 'networkWarning.thisDevice' | translate }} {{ 'networkWarning.stopWorking' | translate }} {{ 'networkWarning.date' | translate }}\r\n \r\n \r\n {{ 'networkWarning.helpBtn' | translate }}\r\n \r\n \r\n
\r\n
\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { RiskCategory } from '@commons/enums/vehicle.enum';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-network-warrning',\r\n standalone: true,\r\n imports: [TranslateModule, CommonModule],\r\n templateUrl: './network-warrning.component.html',\r\n styleUrls: ['./network-warrning.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NetworkWarrningComponent {\r\n @Input() public risk: RiskCategory;\r\n\r\n public readonly RISK_CATEGORY = RiskCategory;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'tankFillPercentage'\r\n})\r\nexport class TankFillPercentagePipe implements PipeTransform {\r\n\r\n transform(currentLiters: number, maxLiters: number): number {\r\n if (maxLiters === 0) {\r\n return 0;\r\n }\r\n const percentage = (currentLiters / maxLiters) * 100;\r\n return Math.round(percentage);\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n {{'update'|translate}}: {{lastUpdated|statusTimeFormat}}\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n {{ maxSpeedStreet }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{ (speed && speed?.LV?.V) ? (speed.LV.V | number:'1.0-0') : '0' }}\r\n \r\n \r\n
\r\n km/h\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ (voltage?.LV?.V | number : '1.0-1') || '-' }} V\r\n \r\n
\r\n \r\n {{'vehicle-indicator.voltage'|translate}}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {{ gsm?.LV?.V || '-' }}\r\n \r\n
\r\n GSM\r\n
\r\n
\r\n \r\n
\r\n \r\n {{ gps?.LV?.V || '-' }}\r\n \r\n
\r\n GPS\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n {{ _vehicle.LastDriver?.FN?.slice(0,1) }}{{ _vehicle.LastDriver?.LN?.slice(0,1) }}\r\n \r\n BD\r\n \r\n
\r\n
\r\n
\r\n \r\n {{ _vehicle.LastDriver?.FN }} {{ _vehicle.LastDriver?.LN }}\r\n \r\n {{'noDriverData'|translate}}\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 \r\n {{'labels.fuel'|translate}}\r\n \r\n \r\n {{ (fuelState?.LV?.V | number: '1.1-1') }} l\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 {{ param.Nm | translateByText }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
0\" class=\"binary\">\r\n \r\n
\r\n \r\n {{ param.Nm | translateByText }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{'deviceId'|translate}}\r\n \r\n \r\n \r\n
\r\n \r\n {{_vehicle?.SN}}\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {{ 'create-account.id' | translate }}\r\n \r\n
\r\n \r\n {{ _vehicle?.SentGeoId }}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit, OnChanges, OnDestroy, Input, SimpleChanges } from '@angular/core';\r\n\r\nimport { Subject, Subscription, debounceTime, switchMap } from 'rxjs';\r\nimport { cloneDeep } from 'lodash'; \r\n \r\nimport { VehicleControlIndicator } from '../../../../../commons/models/domain/VehicleControlIndicator';\r\nimport { Vehicle } from '../../../../../commons/models/domain/Vehicle';\r\nimport { VehicleService } from '@commons/services/vehicle/vehicle.service';\r\nimport { Consts } from '../../../../../commons/consts/consts';\r\nimport { ParameterTypeEnum } from '@commons/enums/parameter-type.enum';\r\nimport { NewWebSocketHttpService } from '@shared/websocket/new-web-socket-http.service';\r\nimport { WebAccessService } from '@commons/services/web.access/web-access.service';\r\nimport { IMaxFuelVehicle } from '@src/app/interfaces/vehicle.interface';\r\nimport { NetworkType } from '@src/app/enum/network.enum';\r\nimport { RiskCategory } from '@commons/enums/vehicle.enum';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-details-params-tab',\r\n styleUrls: ['./vehicle-details-params-tab.component.scss'],\r\n templateUrl: './vehicle-details-params-tab.component.html'\r\n})\r\nexport class VehicleDetailsParamsTabComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n public readonly NETWORK_TYPE = NetworkType;\r\n public readonly RISK_CATEGORY = RiskCategory;\r\n /**\r\n *\r\n */\r\n @Input('vehicle') public set onChangeVehicle(data: Vehicle) {\r\n this._vehicle = { ...data } as any;\r\n this.setVehicleParams(cloneDeep(this._vehicle));\r\n if (data.Id !== this.vehicleId) {\r\n this.vehicleId = data.Id;\r\n this.riskCategory = RiskCategory.Unknown;\r\n // TODO: połączyć w jeden sub\r\n this.onChangeVehicleData(data.Id);\r\n this.getVehicleMaxFuelValue(data.Id);\r\n this.getVehicleRoamingRiskCategory(data.Id);\r\n }\r\n }\r\n\r\n public _vehicle: Vehicle;\r\n\r\n /**\r\n * Subject for pushing vehicle value changes\r\n */\r\n public vehicleValueChangeSubject: Subject = new Subject();\r\n\r\n /**\r\n * Vehicle params\r\n */\r\n private vehicleId: number;\r\n public params?: VehicleControlIndicator[] = [];\r\n public vehicleSpeed: number;\r\n public maxSpeedStreet?: number;\r\n public speed?: VehicleControlIndicator;\r\n public gsm?: VehicleControlIndicator;\r\n public voltage?: VehicleControlIndicator;\r\n public gps?: VehicleControlIndicator;\r\n public lastUpdated?: any;\r\n public lastUpdatedFrom?: string;\r\n public gpsLevelPercent: number = 100;\r\n public gsmLevelPercent: number = 100;\r\n public fuelState?: VehicleControlIndicator | null;\r\n public maxFuelValue: IMaxFuelVehicle;\r\n public riskCategory: RiskCategory;\r\n\r\n /**\r\n * Vehicle params subscription\r\n */\r\n private readonly ComponentSubsc: Subscription = new Subscription();\r\n private onChangeVehicleDataSubsc: Subscription;\r\n\r\n /**\r\n * Returns analog params\r\n */\r\n private analogTypes = [1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 24, 25, 27, 28];\r\n public get analogParams(): VehicleControlIndicator[] {\r\n const params = this._vehicle ? this._vehicle.ControlIndicators?.filter(param => param && this.analogTypes.indexOf(param.Tp) !== -1) : [];\r\n return params ? params.filter(item => this.filterAnalogParams(item)).sort((a, b) => (a.Nm >= b.Nm ? 1 : -1)) : [];\r\n }\r\n\r\n /**\r\n * Returns binary params\r\n */\r\n public get binaryParams(): VehicleControlIndicator[] {\r\n const params = this._vehicle ? this._vehicle.ControlIndicators?.filter(param => param && Consts.binaryIndicators.indexOf(param.Tp) !== -1) : [];\r\n return params ? params.filter(item => this.filterBinaryParams(item)).sort((a, b) => (a.Nm >= b.Nm ? 1 : -1)) : [];\r\n }\r\n\r\n /**\r\n *\r\n * @param $vehicle\r\n */\r\n constructor(\r\n private $vehicle: VehicleService,\r\n private newWebSocketHttpService: NewWebSocketHttpService,\r\n private webAccessService: WebAccessService,\r\n ) {}\r\n\r\n /**\r\n * Ng on init lifecycle hook\r\n */\r\n public ngOnInit(): void {\r\n // this.getVehicleData();\r\n // this.vehicleValueChangeSubject.next(this._vehicle);\r\n }\r\n\r\n /**\r\n * Ng on destroy lifecycle hook\r\n */\r\n public ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n this.onChangeVehicleDataSubsc?.unsubscribe();\r\n }\r\n\r\n /**\r\n * Ng on changes lifecycle hook\r\n */\r\n public ngOnChanges(changes: SimpleChanges): void {}\r\n\r\n private getVehicleMaxFuelValue(vehicleId: number): void {\r\n const sub = this.webAccessService.GetVehicleFuelCapacity(vehicleId).subscribe(\r\n (data) => {\r\n this.maxFuelValue = data;\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private getVehicleRoamingRiskCategory(vehicleId: number): void {\r\n const sub = this.webAccessService.GetVehicleRoamingRiskCategory(vehicleId).subscribe(\r\n (data) => {\r\n this.riskCategory = data.RiskCategory;\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private onChangeVehicleData(idVehicle: number): void {\r\n this.onChangeVehicleDataSubsc?.unsubscribe();\r\n this.onChangeVehicleDataSubsc = this.newWebSocketHttpService.updatedVehicles\r\n .pipe(\r\n debounceTime(1000),\r\n switchMap(() => this.$vehicle.getDetails$(idVehicle)),\r\n )\r\n .subscribe(\r\n (dataVehicle) => {\r\n this._vehicle = { ...dataVehicle } as any;\r\n this.setVehicleParams(dataVehicle);\r\n }\r\n ); \r\n }\r\n\r\n private setVehicleParams(dataVehicle: Vehicle): void {\r\n this.maxSpeedStreet = dataVehicle.LL?.SL;\r\n this.fuelState = null;\r\n this.setLastUpdateDate();\r\n if (dataVehicle.ControlIndicators) {\r\n this.setSpeedVehicle(dataVehicle.ControlIndicators);\r\n this.setGSM(dataVehicle.ControlIndicators);\r\n this.setVoltage(dataVehicle.ControlIndicators);\r\n this.setGPS(dataVehicle.ControlIndicators);\r\n this.setFuelState(dataVehicle.ControlIndicators); \r\n }\r\n }\r\n \r\n private filterAnalogParams(param: VehicleControlIndicator): boolean {\r\n const ifServiceParam = param.Nm.slice(0, 1) === '#';\r\n if (ifServiceParam) {\r\n return false;\r\n }\r\n const filteredTypeOfControl = [ParameterTypeEnum.Speed, ParameterTypeEnum.GSMLevel, ParameterTypeEnum.VisibleSatellites, ParameterTypeEnum.Voltage, ParameterTypeEnum.Fuel];\r\n const ifFilteredTypeOfControl = filteredTypeOfControl.includes(param.Tp);\r\n if (ifFilteredTypeOfControl) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private filterBinaryParams(param: VehicleControlIndicator): boolean {\r\n const hiddenParamsByName = ['BZ - brak zasilania'];\r\n const ifHiddenParamByName = hiddenParamsByName.includes(param.Nm);\r\n if (ifHiddenParamByName) {\r\n return false;\r\n }\r\n const ifValueNull = param.LV === null;\r\n if (ifValueNull) {\r\n return false;\r\n }\r\n const ifServiceParam = param.Nm.slice(0, 1) === '#';\r\n if (ifServiceParam) {\r\n return false;\r\n }\r\n return !param.Nm.includes('OUT');\r\n }\r\n\r\n public openGoogleMaps(): void {\r\n const googleMapsUrl = `https://www.google.com/maps?t=k&q=${this._vehicle.LL?.Lt}+${this._vehicle.LL?.Ln}`;\r\n window.open(googleMapsUrl, '_blank');\r\n }\r\n\r\n public copyCoords(): void {\r\n navigator.clipboard.writeText(`${this._vehicle.LL?.Lt},${this._vehicle.LL?.Ln}`);\r\n }\r\n\r\n public getSpeedVehicle(params: any[]) {\r\n return params?.find(item => item.Tp === ParameterTypeEnum.Speed);\r\n }\r\n\r\n public copyValue(value?: string): void {\r\n value && navigator.clipboard.writeText(value);\r\n }\r\n\r\n private calculatePercentge(total: number, currentValue: number): number {\r\n return (currentValue / total) * 100;\r\n }\r\n\r\n private setFuelState(params: VehicleControlIndicator[]): void {\r\n this.fuelState = params.find(item => item.Tp === ParameterTypeEnum.Fuel && item.LV);\r\n }\r\n\r\n private setGSM(params: VehicleControlIndicator[]): void {\r\n this.gsm = params.find(p => p && p.Tp === ParameterTypeEnum.GSMLevel);\r\n this.gsmLevelPercent = this.calculatePercentge(32, this.gsm?.LV?.V);\r\n if (!this.gsm) {\r\n this.speed = this.createVehicleControlIndicator(ParameterTypeEnum.GSMLevel, 'GSM', 0);\r\n }\r\n else if (!this.gsm.LV) {\r\n this.gsm.LV = { V: 0 };\r\n }\r\n }\r\n\r\n private setGPS(params: VehicleControlIndicator[]): void {\r\n this.gps = params.find(p => p && p.Tp === ParameterTypeEnum.VisibleSatellites);\r\n this.gpsLevelPercent = this.calculatePercentge(12, this.gps?.LV?.V);\r\n if (!this.gps) {\r\n this.gps = this.createVehicleControlIndicator(ParameterTypeEnum.VisibleSatellites, 'GPS', 0);\r\n }\r\n else if (!this.gps.LV) {\r\n this.gps.LV = { V: 0 };\r\n }\r\n }\r\n\r\n private setVoltage(params: VehicleControlIndicator[]): void {\r\n this.voltage = params.find(p => p && p.Tp === ParameterTypeEnum.Voltage);\r\n if (!this.voltage) {\r\n this.voltage = this.createVehicleControlIndicator(ParameterTypeEnum.Voltage, 'Napięcie', 0);\r\n }\r\n else if (!this.voltage.LV) {\r\n this.voltage.LV = { V: 0 };\r\n }\r\n }\r\n\r\n private setSpeedVehicle(params: VehicleControlIndicator[]): void {\r\n this.speed = params.find(p => p && p.Tp === ParameterTypeEnum.Speed);\r\n if (!this.speed) {\r\n this.speed = this.createVehicleControlIndicator(ParameterTypeEnum.Speed, 'Prędkość', 0);\r\n }\r\n else if (!this.speed.LV) {\r\n this.speed.LV = { V: 0 };\r\n }\r\n }\r\n\r\n private createVehicleControlIndicator(paramType: number, name: string, lastValue: number): VehicleControlIndicator {\r\n let indicator = {} as VehicleControlIndicator;\r\n indicator.Tp = paramType;\r\n indicator.Nm = name;\r\n indicator.LV = { V: lastValue };\r\n return indicator;\r\n }\r\n\r\n private setLastUpdateDate(): void {\r\n if (this._vehicle) {\r\n const v = this._vehicle;\r\n const vehicleIndicators: VehicleControlIndicator[] = v.ControlIndicators as VehicleControlIndicator[];\r\n const paramPosition: VehicleControlIndicator | undefined = vehicleIndicators?.find(x => x.Tp == 22);\r\n if (paramPosition && paramPosition.LV) {\r\n const lastPositionTime:Date = new Date(paramPosition.LV.T);\r\n const n = new Date();\r\n this.lastUpdated = Math.ceil((n.getTime() - lastPositionTime.getTime()) / 1000);\r\n }\r\n this.lastUpdatedFrom = v.LastUpdatedFrom;\r\n }\r\n }\r\n\r\n}\r\n","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\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 * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarDays from \"../differenceInCalendarDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // 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.\n\nfunction compareLocalAsc(dateLeft, dateRight) {\n var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\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.floor(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days according to the local timezone\n * @throws {TypeError} 2 arguments required\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 * // 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 * // 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 */\n\n\nexport default function differenceInDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareLocalAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference); // 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\n var isLastDayNotFull = Number(compareLocalAsc(dateLeft, dateRight) === -sign);\n var result = sign * (difference - isLastDayNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import { Injectable } from '@angular/core';\r\n\r\nimport {map, Observable, Subject } from 'rxjs';\r\n\r\nimport startOfDay from 'date-fns/startOfDay';\r\n\r\nimport { RouteListFilterRequest } from '../../models/remote.request/RouteListFilterRequest';\r\nimport { RouteEventPoint } from '../../models/domain/RouteEventPoint';\r\nimport { RouteEvent } from '../../models/domain/RouteEvent';\r\n\r\nimport { IRouteService } from '../../interfaces/IRouteService';\r\nimport { WebAccessService } from '../web.access/web-access.service';\r\nimport { RouteStats } from '../../models/domain/RouteStats';\r\n\r\n@Injectable()\r\nexport class RouteService implements IRouteService {\r\n\r\n\tpublic pointUpdateRequired: Subject = new Subject();\r\n\r\n\tgetRouteForDate$(from: Date, to: Date, vehicleId: number): Observable {\r\n\t\tconst request: RouteListFilterRequest = {\r\n\t\t\tDateFrom: from,\r\n\t\t\tDateTo: to,\r\n\t\t\tVehicleId: vehicleId\r\n\t\t};\r\n\t\treturn this.$webAccess.GetRouteListByFilter(request).pipe(map(x => x.Result as RouteEvent[]));\r\n\t}\r\n\r\n\tgetRouteStats$(vehicleId: number, startDate: Date, endDate: Date): Observable {\r\n\t\tconst request: RouteListFilterRequest = {\r\n\t\t\tDateFrom: startDate,\r\n\t\t\tDateTo: endDate,\r\n\t\t\tVehicleId: vehicleId\r\n\t\t};\r\n\t\treturn this.$webAccess.GetRouteStatsByFilter(request).pipe(map(x => x.Result as RouteStats));\r\n\t}\r\n\r\n\tgetRouteAvailableDates$(vehicleId: number, year: number, month: number): Observable {\r\n\t\treturn this.$webAccess.GetRouteAvailableDates(vehicleId, year, month).pipe(map(x => x.Result as Date[]));\r\n\t}\r\n\r\n\tconstructor(\r\n\t\tprivate $webAccess: WebAccessService\r\n\t) { }\r\n}\r\n","// Typy elementów tras\r\nexport enum RouteElementTypeEnum {\r\n // Zakończony odcinek trasy\r\n Segment = 0,\r\n // Postój\r\n Stop = 1,\r\n // Postój w obszarze zdefiniowanym\r\n AreaStop = 2,\r\n // Niezakończony odcinek trasy (gdy pojazd jest w trakcie jazdy)\r\n UnfinishedSegment = 3\r\n}","import { Injectable, NgZone, OnDestroy } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Subscription, fromEvent } from 'rxjs';\r\nimport { tap, filter } from 'rxjs/operators';\r\n\r\nimport { Polyline, Marker, LatLng, DivIcon, CircleMarker } from 'leaflet';\r\nimport * as L from 'leaflet';\r\n\r\nimport { RouteEvent } from '../../../../models/domain/RouteEvent';\r\nimport { Point } from '../../../../models/domain/Point';\r\nimport { MapService } from '../../map/map.service';\r\nimport { VehicleLocation } from '../../../../models/domain/VehicleLocation';\r\nimport { RouteEventPoint } from '../../../../models/domain/RouteEventPoint';\r\nimport { RouteElementTypeEnum } from '../../../../enums/route-element-type.enum';\r\nimport { Consts } from '../../../../consts/consts';\r\nimport { DatePipe } from '@angular/common';\r\nimport { cloneDeep, get } from 'lodash';\r\n\r\ninterface IRouteSubject {\r\n route?: RouteEvent[];\r\n selectedSegment?: RouteEvent;\r\n ifSelectedMoreThen2DaysRange?: boolean;\r\n}\r\n\r\n/**\r\n * Provides route drawing utilities\r\n */\r\n@Injectable()\r\nexport class RouteDrawerService implements OnDestroy {\r\n\r\n public routeData$: BehaviorSubject = new BehaviorSubject(null as any);\r\n private onChangeRouteDataSubsc: Subscription;\r\n\r\n /**\r\n * Subscription to drawing route events\r\n */\r\n private preventFitBounds?: boolean;\r\n private routeEvents?: RouteEvent[];\r\n private selectedRoutePointsMarker: CircleMarker[] = [];\r\n private listenToMapEvents: boolean;\r\n\r\n /**\r\n * Service constructor\r\n * @param $map map service\r\n */\r\n public constructor(\r\n private $map: MapService,\r\n private ngZone: NgZone,\r\n private datePipe: DatePipe,\r\n ) {\r\n this.onChangeRouteDataSubsc = this.routeData$\r\n .pipe(\r\n filter((value) => {\r\n if (value) {\r\n return true;\r\n }\r\n this.removeAllRouteMarkersDraw(undefined);\r\n return false;\r\n }),\r\n tap((value) => {\r\n if (!value?.selectedSegment && value?.route?.length) {\r\n this.$map.setMapLoaderState(true);\r\n }\r\n }),\r\n )\r\n .subscribe({\r\n next: (data) => {\r\n this.drawRouteEvents(data.route!, data.selectedSegment!);\r\n this.onClickSegmentRoute(data);\r\n },\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.onChangeRouteDataSubsc?.unsubscribe();\r\n }\r\n\r\n private get currentValueRouteData(): IRouteSubject {\r\n return cloneDeep(get(this.routeData$, 'value', {}));\r\n }\r\n\r\n public onClickPartOfRoute(data: RouteEvent | undefined): void {\r\n const currentValueRouteData = this.currentValueRouteData;\r\n this.routeData$.next({\r\n ...currentValueRouteData,\r\n selectedSegment: cloneDeep(data),\r\n });\r\n }\r\n\r\n public setRoute(data: RouteEvent[] | undefined, ifSelectedMoreThen2DaysRange?: boolean): void {\r\n this.routeData$.next({\r\n selectedSegment: undefined,\r\n route: cloneDeep(data),\r\n ifSelectedMoreThen2DaysRange,\r\n });\r\n }\r\n\r\n private onClickSegmentRoute({route, selectedSegment}: IRouteSubject): void {\r\n if (selectedSegment) {\r\n if (this.ifShowModalPark(route!, selectedSegment)) {\r\n const data = selectedSegment?.T === 1 ? selectedSegment : null;\r\n this.$map.onClickParkStopIcon$.next(data);\r\n }\r\n }\r\n }\r\n\r\n private ifShowModalPark(routes: RouteEvent[], selectedRoute: RouteEvent): boolean {\r\n const [first] = routes;\r\n const lastElementRoute = routes[routes.length - 1];\r\n const ifFirstOrLastRouteClicked = first.Id === selectedRoute.Id || lastElementRoute.Id === selectedRoute.Id;\r\n return ifFirstOrLastRouteClicked ? false : true;\r\n }\r\n\r\n public resetRoute(): void {\r\n this.routeData$.next(null!);\r\n }\r\n\r\n private removeAllRouteMarkersDraw(route?: RouteEvent[]): void {\r\n this.$map.groups.routes.clearLayers();\r\n this.routeEvents = route;\r\n this.deleteCurrentDisplayPointsMarker();\r\n }\r\n\r\n /**\r\n * Draw route on map\r\n * @param route route\r\n * @param selectedSegment route event that user chose to highlight, others should be transparent\r\n */\r\n public drawRouteEvents(\r\n route: RouteEvent[],\r\n selectedSegment: RouteEvent,\r\n withOutZoom?: boolean,\r\n ) {\r\n this.removeAllRouteMarkersDraw(route);\r\n let bounds: any;\r\n\r\n if (route) {\r\n this.listenToMapEvents = true;\r\n\r\n // na koncu zaznaczone\r\n for (const routeEvent of route) {\r\n if ((selectedSegment && selectedSegment.Id === routeEvent.Id)) {\r\n this.drawRouteEvent(routeEvent, selectedSegment);\r\n }\r\n }\r\n // zbieramy po narysowaniu aktywnych\r\n bounds = this.$map.groups.routes.getBounds();\r\n\r\n // nie zaznaczone\r\n for (const routeEvent of route) {\r\n if ((!selectedSegment || selectedSegment.Id !== routeEvent.Id)) {\r\n this.drawRouteEvent(routeEvent, selectedSegment, true);\r\n }\r\n }\r\n }\r\n else {\r\n this.listenToMapEvents = false;\r\n this.preventFitBounds = false;\r\n }\r\n\r\n if (!withOutZoom && !selectedSegment) {\r\n setTimeout(() => {\r\n this.fitBoundsMap(bounds);\r\n }, 500);\r\n }\r\n\r\n if (selectedSegment) {\r\n this.fitBoundsMap(bounds);\r\n setTimeout(() => {\r\n this.addPointsToRoute(selectedSegment.Points, true);\r\n }, 500);\r\n }\r\n }\r\n\r\n private fitBoundsMap(bounds: any): void {\r\n if (bounds && bounds.isValid() && !this.preventFitBounds) {\r\n this.$map.map!.fitBounds(bounds, Consts.MapPadding);\r\n } else {\r\n bounds = this.$map.groups.routes.getBounds();\r\n if (bounds && bounds.isValid() && !this.preventFitBounds) {\r\n this.$map.map!.fitBounds(bounds, Consts.MapPadding);\r\n }\r\n }\r\n }\r\n\r\n private get routePointSizeByZoom(): number {\r\n // const zoom = this.$map.map?.getZoom() as number;\r\n // if (zoom === 12) {\r\n // return 3;\r\n // }\r\n // if (zoom >= 11 && zoom < 13) {\r\n // return 2;\r\n // }\r\n // if (zoom >= 13 && zoom < 15) {\r\n // return 4;\r\n // }\r\n // if (zoom >= 15) {\r\n // return 5;\r\n // }\r\n return 2;\r\n }\r\n\r\n private addPointsToRoute(points: RouteEventPoint[], isSegmentSelected?: boolean): Promise {\r\n return new Promise((resolve) => {\r\n if (typeof Worker !== 'undefined') {\r\n const worker = new Worker(new URL('../../../../../app.worker', import.meta.url));\r\n\r\n worker.onmessage = ({ data }) => {\r\n const { batchMarkers } = data;\r\n \r\n this.ngZone.runOutsideAngular(() => {\r\n const markers = batchMarkers.map(({ latLng, routePointStyle, item }: any) => {\r\n const point = L.circleMarker(latLng, routePointStyle);\r\n \r\n const onCopyMarkerCoords = (): void => {\r\n fromEvent(document.getElementById('copy-marker-coords') as HTMLElement, 'click').subscribe(\r\n (ev) => {\r\n const coords = (ev.target as HTMLElement).attributes.getNamedItem('data-coords')?.value;\r\n navigator.clipboard.writeText(coords as string);\r\n }\r\n );\r\n };\r\n \r\n const onMouseOutTooltip = (event: MouseEvent): void => {\r\n const leafletPopup = document.querySelector('.popup-route-marker');\r\n if (leafletPopup) {\r\n const rect = leafletPopup.getBoundingClientRect();\r\n const ifMouseOutTooltip = event.clientX < rect.left || event.clientX > rect.right || event.clientY < rect.top || event.clientY > rect.bottom;\r\n if (ifMouseOutTooltip) {\r\n point.closePopup();\r\n }\r\n }\r\n };\r\n\r\n const popupContent = `\r\n
\r\n ${ this.datePipe.transform(item.T, 'HH:mm:ss d MMMM y') }\r\n ${ item.Lt }, ${ item.Ln }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n `;\r\n\r\n point.bindPopup(popupContent, { className: 'popup-route-marker' });\r\n point.on('mouseover', function(this: L.CircleMarker) {\r\n this.openPopup();\r\n onCopyMarkerCoords();\r\n });\r\n point.on('mouseout', function(this: L.CircleMarker) {\r\n setTimeout(() => {\r\n document.addEventListener('mousemove', onMouseOutTooltip);\r\n }, 300);\r\n });\r\n \r\n return point;\r\n });\r\n \r\n if (this.$map.map) {\r\n L.layerGroup(markers).addTo(this.$map.map);\r\n }\r\n \r\n this.selectedRoutePointsMarker = [...this.selectedRoutePointsMarker, ...markers];\r\n });\r\n\r\n setTimeout(() => {\r\n this.$map.setMapLoaderState(false);\r\n }, 2000);\r\n };\r\n\r\n worker.postMessage({ \r\n points,\r\n routePointSizeByZoom: this.routePointSizeByZoom,\r\n ifSelectedMoreThen2DaysRange: this.routeData$.value.ifSelectedMoreThen2DaysRange,\r\n isSegmentSelected,\r\n });\r\n }\r\n else {\r\n console.error('Web Workers are not supported in this environment.');\r\n }\r\n });\r\n }\r\n\r\n private deleteCurrentDisplayPointsMarker(): void {\r\n this.ngZone.runOutsideAngular(() => {\r\n this.selectedRoutePointsMarker.forEach(item => {\r\n item.removeEventListener('mouseout');\r\n item.removeEventListener('mouseover');\r\n this.$map.map?.removeLayer(item);\r\n });\r\n this.selectedRoutePointsMarker = [];\r\n this.ngZone.run(() => {});\r\n });\r\n }\r\n\r\n private drawRouteEvent(routeEvent: RouteEvent, selectedSegment: RouteEvent, sendBack?: boolean) {\r\n if (routeEvent.T === RouteElementTypeEnum.Segment || routeEvent.T === RouteElementTypeEnum.UnfinishedSegment) {\r\n if (routeEvent.Points) {\r\n const points = routeEvent.Points.map(point => this.convertRoutePointToLatLng(point)).filter(p => p !== null);\r\n\r\n if (points) {\r\n const polyline = new Polyline(points as LatLng[], this.definePolyLineOptions(routeEvent, selectedSegment));\r\n !selectedSegment && setTimeout(() => {\r\n this.addPointsToRoute(routeEvent.Points);\r\n }, 100);\r\n\r\n this.$map.groups.routes.addLayer(polyline);\r\n if (sendBack === true) {\r\n polyline.bringToBack();\r\n }\r\n }\r\n }\r\n\r\n } else if (routeEvent.T === RouteElementTypeEnum.Stop) {\r\n const latlng = routeEvent.D.S || routeEvent.D.E;\r\n const point = this.convertVehicleLocationToLatLng(latlng);\r\n if (!point) {\r\n return;\r\n }\r\n\r\n var image = \"\";\r\n\r\n if (selectedSegment) {\r\n const selectedIndex = this.routeEvents!.indexOf(selectedSegment);\r\n var followingEvent = this.routeEvents![selectedIndex - 1];\r\n var precedingEvent = this.routeEvents![selectedIndex + 1];\r\n\r\n if (routeEvent === followingEvent) {\r\n image = '';\r\n }\r\n else if (routeEvent === precedingEvent) {\r\n image = '';\r\n }\r\n }\r\n else {\r\n var latestRouteEvent = this.routeEvents![0];\r\n var oldestRouteEvent = this.routeEvents![this.routeEvents!.length - 1];\r\n\r\n if (routeEvent === latestRouteEvent) {\r\n image = ''; // B icon\r\n }\r\n else if (routeEvent === oldestRouteEvent) {\r\n image = ''; // A icon\r\n }\r\n }\r\n\r\n const selected = (!selectedSegment || selectedSegment.Id === routeEvent.Id) ? 'selected' : 'unselected';\r\n const icon = new DivIcon({ html: `
${image}
` });\r\n\r\n const marker = new Marker(point, {\r\n 'icon': icon,\r\n 'riseOnHover': true\r\n });\r\n\r\n !image?.length && marker.on('click', () => {\r\n if (this.ifShowModalPark(this.routeEvents as any[], routeEvent)) {\r\n this.$map.onClickParkStopIcon$.next(routeEvent);\r\n }\r\n });\r\n\r\n // marker.bindPopup(Description);\r\n this.$map.groups.routes.addLayer(marker);\r\n\r\n // if (sendBack === true) {\r\n // marker.bringToBack();\r\n // }\r\n }\r\n }\r\n\r\n private getPupupHTML(routeEvent: any, point: LatLng) {\r\n\r\n const lat = point.lat.toString().replace(',', '.');\r\n const lng = point.lng.toString().replace(',', '.');\r\n\r\n const Description2 = routeEvent.D.E || routeEvent.D.S;\r\n const Description = Description2 ? `${Description2.St}` : '';\r\n const googleMapsUrl = `https://www.google.com/maps?t=k&q=${lat}+${lng}`;\r\n\r\n return `\r\n
\r\n
${Description}
\r\n \r\n
\r\n `;\r\n }\r\n\r\n /**\r\n * Defines how polyline should be displayed according to chosen segment\r\n * @param routeEvent routeEvent\r\n * @param selectedSegment route event that user chose to highlight, others should be transparent\r\n */\r\n private definePolyLineOptions(routeEvent: RouteEvent, selectedSegment: RouteEvent): any {\r\n\r\n const color = routeEvent.T === 3 ? '#32c80f' : '#2d78ff';\r\n\r\n // Check if user didn't choose any segment, return default values\r\n if (!selectedSegment) {\r\n return {\r\n color: color,\r\n // color: '#004bd2',\r\n opacity: 1,\r\n fillOpacity: 1,\r\n weight: 7\r\n };\r\n }\r\n\r\n const isSelected = (selectedSegment.Id === routeEvent.Id);\r\n\r\n return {\r\n // color: isSelected ? '#004bd2' : '#969696',\r\n color: isSelected ? color : '#d7d7d7',\r\n // fillOpacity: isSelected ? 1 : 0.50,\r\n opacity: isSelected ? 1 : 0.75,\r\n weight: 8\r\n };\r\n }\r\n\r\n\r\n /**\r\n * Converts given point to Leaflet's LatLng object\r\n * @param point\r\n */\r\n private convertToLatLng(point: Point): LatLng | null {\r\n if (!point) {\r\n return null;\r\n }\r\n return new LatLng(parseFloat(point.Lat), parseFloat(point.Lon));\r\n }\r\n\r\n private convertVehicleLocationToLatLng(location: VehicleLocation): LatLng | null {\r\n if (!location) {\r\n return null;\r\n }\r\n return new LatLng(location.Lt, location.Ln);\r\n }\r\n\r\n private convertRoutePointToLatLng(point: RouteEventPoint): LatLng | null {\r\n if (!point) {\r\n return null;\r\n }\r\n return new LatLng(parseFloat(point.Lt.replace(',', '.')), parseFloat(point.Ln.replace(',', '.')));\r\n }\r\n}\r\n","import { Pipe, PipeTransform, LOCALE_ID, Injector } from '@angular/core';\r\nimport { DecimalPipe } from '@angular/common';\r\n\r\n@Pipe({ name: 'distance' })\r\nexport class DistancePipe implements PipeTransform {\r\n\r\n constructor(private injector: Injector) { }\r\n\r\n public transform(value: number): string {\r\n const localeId = this.injector.get(LOCALE_ID);\r\n const formater = new DecimalPipe(localeId);\r\n let result;\r\n if (value < 1) {\r\n result = (Math.ceil(value * 100) * 10) + ' m';\r\n } else {\r\n result = formater.transform(value, '1.0-1') + ' km';\r\n }\r\n return result;\r\n }\r\n}\r\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\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\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\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\n var dayOfMonth = date.getDate(); // 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\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\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(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport addDays from \"../addDays/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport default function add(dirtyDate, duration) {\n requiredArgs(2, arguments);\n if (!duration || _typeof(duration) !== 'object') return new Date(NaN);\n var years = duration.years ? toInteger(duration.years) : 0;\n var months = duration.months ? toInteger(duration.months) : 0;\n var weeks = duration.weeks ? toInteger(duration.weeks) : 0;\n var days = duration.days ? toInteger(duration.days) : 0;\n var hours = duration.hours ? toInteger(duration.hours) : 0;\n var minutes = duration.minutes ? toInteger(duration.minutes) : 0;\n var seconds = duration.seconds ? toInteger(duration.seconds) : 0; // Add years and months\n\n var date = toDate(dirtyDate);\n var dateWithMonths = months || years ? addMonths(date, months + years * 12) : date; // Add weeks and days\n\n var dateWithDays = days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths; // Add days, hours, minutes and seconds\n\n var minutesToAdd = minutes + hours * 60;\n var secondsToAdd = seconds + minutesToAdd * 60;\n var msToAdd = secondsToAdd * 1000;\n var finalDate = new Date(dateWithDays.getTime() + msToAdd);\n return finalDate;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\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 */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import compareAsc from \"../compareAsc/index.js\";\nimport add from \"../add/index.js\";\nimport differenceInDays from \"../differenceInDays/index.js\";\nimport differenceInHours from \"../differenceInHours/index.js\";\nimport differenceInMinutes from \"../differenceInMinutes/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport differenceInYears from \"../differenceInYears/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name intervalToDuration\n * @category Common Helpers\n * @summary Convert interval to duration\n *\n * @description\n * Convert a interval object to a duration object.\n *\n * @param {Interval} interval - the interval to convert to duration\n *\n * @returns {Duration} The duration Object\n * @throws {TypeError} Requires 2 arguments\n * @throws {RangeError} `start` must not be Invalid Date\n * @throws {RangeError} `end` must not be Invalid Date\n *\n * @example\n * // Get the duration between January 15, 1929 and April 4, 1968.\n * intervalToDuration({\n * start: new Date(1929, 0, 15, 12, 0, 0),\n * end: new Date(1968, 3, 4, 19, 5, 0)\n * })\n * // => { years: 39, months: 2, days: 20, hours: 7, minutes: 5, seconds: 0 }\n */\n\nexport default function intervalToDuration(interval) {\n requiredArgs(1, arguments);\n var start = toDate(interval.start);\n var end = toDate(interval.end);\n if (isNaN(start.getTime())) throw new RangeError('Start Date is invalid');\n if (isNaN(end.getTime())) throw new RangeError('End Date is invalid');\n var duration = {};\n duration.years = Math.abs(differenceInYears(end, start));\n var sign = compareAsc(end, start);\n var remainingMonths = add(start, {\n years: sign * duration.years\n });\n duration.months = Math.abs(differenceInMonths(end, remainingMonths));\n var remainingDays = add(remainingMonths, {\n months: sign * duration.months\n });\n duration.days = Math.abs(differenceInDays(end, remainingDays));\n var remainingHours = add(remainingDays, {\n days: sign * duration.days\n });\n duration.hours = Math.abs(differenceInHours(end, remainingHours));\n var remainingMinutes = add(remainingHours, {\n hours: sign * duration.hours\n });\n duration.minutes = Math.abs(differenceInMinutes(end, remainingMinutes));\n var remainingSeconds = add(remainingMinutes, {\n minutes: sign * duration.minutes\n });\n duration.seconds = Math.abs(differenceInSeconds(end, remainingSeconds));\n return duration;\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarYears from \"../differenceInCalendarYears/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\n\nexport default function differenceInYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight)); // Set both dates to a valid leap year for accurate comparison when dealing\n // with leap days\n\n dateLeft.setFullYear(1584);\n dateRight.setFullYear(1584); // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - Number(isLastYearNotFull)); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * const result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import { millisecondsInHour } from \"../constants/index.js\";\nimport differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of hours\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * const result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\n\nexport default function differenceInHours(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInHour;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\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 * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\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 * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { timeDifference } from '@src/app/utils/date';\r\n\r\n@Pipe({\r\n name: 'timeDifference'\r\n})\r\nexport class TimeDifferencePipe implements PipeTransform {\r\n\r\n transform(start: any, end: any): string {\r\n return timeDifference(start, end);\r\n }\r\n\r\n}\r\n","import { parseISO, intervalToDuration, addSeconds, subDays, addDays, subMilliseconds } from 'date-fns';\r\nimport { IConvertSecondsToMinutesAndSeconds } from '../interfaces/date.interface';\r\n\r\nexport function convertDateToSeconds(dateString: string): number {\r\n const date = parseISO(dateString);\r\n const milliseconds = date.getTime();\r\n const seconds = Math.floor(milliseconds / 1000);\r\n return seconds;\r\n};\r\n\r\nexport function convertSecondsToHoursAndMinutes(seconds: number): IConvertSecondsToMinutesAndSeconds {\r\n const startDate = new Date(0);\r\n const endDate = addSeconds(startDate, seconds);\r\n const duration = intervalToDuration({ start: startDate, end: endDate });\r\n\r\n const hours = (duration.days || 0) * 24 + (duration.hours || 0);\r\n const minutes = duration.minutes;\r\n\r\n return {\r\n hours,\r\n minutes,\r\n string: `${hours ? hours + 'h' : ''} ${minutes ? minutes + 'min' : '-'}`,\r\n };\r\n}\r\n\r\n/*Oblicza roznice pomiedzy dwiema datami*/\r\nexport function timeDifference(start: string, end: string): string {\r\n const startDate = parseISO(start);\r\n const endDate = parseISO(end);\r\n const duration = intervalToDuration({ start: startDate, end: endDate });\r\n const parts = [];\r\n if (duration.years) parts.push(`${duration.years}y`);\r\n if (duration.months) parts.push(`${duration.months}mo`);\r\n if (duration.days) parts.push(`${duration.days}d`);\r\n if (duration.hours) parts.push(`${duration.hours}h`);\r\n if (duration.minutes) parts.push(`${duration.minutes}m`);\r\n return parts.join(' ');\r\n}\r\n\r\nexport function findClosestDateBefore(date: Date): Date {\r\n return subDays(date, 1);\r\n}\r\n\r\nexport function findClosestDateAfter(date: Date): Date {\r\n return addDays(date, 1);\r\n}\r\n","\r\n
\r\n \r\n
\r\n
{{EndDateTime | date:'shortTime' }}
\r\n \r\n
{{StartDateTime | date:'shortTime' }}
\r\n
\r\n\r\n \r\n
\r\n
\r\n {{ route.St | timeDifference : (route.T === 3 ? currentDateISO : route.En) }}\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
\r\n\r\n \r\n
\r\n
\r\n {{Description}}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import {\r\n Component,\r\n Input,\r\n ViewEncapsulation,\r\n OnInit,\r\n Output,\r\n EventEmitter,\r\n Inject,\r\n Injector,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\n\r\nimport {RouteEventPoint} from \"@commons/models/domain/RouteEventPoint\";\r\nimport {RouteService} from '@commons/services/route/route.service';\r\nimport {RouteDrawerService} from '@commons/services/map/drawer/route/route-drawer.service';\r\nimport {RouteEvent} from '@commons/models/domain/RouteEvent';\r\n\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\nimport { DistancePipe } from '../stats/pipes/distance.pipe';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-details-route-item',\r\n styleUrls: ['./vehicle-details-route-item.component.less'],\r\n templateUrl: './vehicle-details-route-item.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class VehicleDetailsRouteItemComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n public route?: RouteEvent;\r\n\r\n @Input() points?: RouteEventPoint[];\r\n\r\n @Output()\r\n public onRouteEventDetailUpdate: EventEmitter = new EventEmitter();\r\n\r\n public StartDateTime?: Date;\r\n\r\n public EndDateTime?: Date;\r\n\r\n public Description?: string;\r\n\r\n public Duration?: number;\r\n\r\n public Description2: any;\r\n\r\n drivingDescriptionTranslation = '';\r\n\r\n public readonly currentDateISO = new Date().toISOString();\r\n\r\n public ngOnInit(): void {\r\n\r\n this.StartDateTime = this.route?.St;\r\n this.EndDateTime = this.route?.En;\r\n\r\n this.calculateDetails(this.route!);\r\n\r\n switch (this.route?.T) {\r\n case 0:\r\n const p = new DistancePipe(this.$injector);\r\n this.Description = p.transform(this.route.D.D);\r\n break;\r\n // jedzie\r\n case 3:\r\n this.Description = this.drivingDescriptionTranslation;\r\n this.Description2 = this.route.D.S;\r\n break;\r\n // stoi\r\n case 1:\r\n this.Description2 = this.route.D.E || this.route.D.S;\r\n this.Description = this.Description2 ? `${this.Description2.St}` : '';\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n constructor(\r\n private $routeService: RouteService,\r\n private $routeDrawer: RouteDrawerService,\r\n private $injector: Injector,\r\n private translateService: TranslateService\r\n ) {\r\n this.translateService.get('vehicle-details-routes-tab.driving').subscribe(t => this.drivingDescriptionTranslation = t);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n //punkty są osobno pobierane dla route dlatego czekam aż będą przekazane\r\n if (this.points) {\r\n this.showRoute();\r\n }\r\n }\r\n\r\n private showRoute() {\r\n this.onRouteEventDetailUpdate.emit(this.route);\r\n\r\n this.$routeService.pointUpdateRequired.subscribe(routePoint => {\r\n if (!this.route || this.route.Id != routePoint.RouteEventId)\r\n return;\r\n\r\n this.route.Points.push(routePoint);\r\n this.onRouteEventDetailUpdate.emit(this.route);\r\n });\r\n }\r\n\r\n /**\r\n * Data model is lacking of additional info, so they are calculated here\r\n */\r\n private calculateDetails(route: RouteEvent) {\r\n\r\n if (!route.St || !route.En) {\r\n this.Duration = undefined;\r\n } else {\r\n\r\n // Duration\r\n // Calculate time\r\n const startTime = new Date(route.St).getTime();\r\n const endTime = new Date(route.En).getTime();\r\n const duration = Math.floor((endTime - startTime) / 1000);\r\n this.Duration = duration;\r\n }\r\n }\r\n}\r\n\r\n","
\r\n \r\n {{'chooseDays'|translate}}\r\n \r\n \r\n\r\n
\r\n \r\n \r\n {{'theMaximumDataRangeIs5Days'|translate}}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n {{ item.title }}\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 {{'labels.clear'|translate}}\r\n \r\n
\r\n
\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { addDays, startOfMonth, endOfMonth, subMonths, addMonths, subDays } from 'date-fns';\r\n\r\nenum SwitchDatesRange {\r\n Month = 1,\r\n Week = 2,\r\n Day = 3,\r\n}\r\n\r\n@Component({\r\n selector: 'app-vehicle-details-routes-calendar',\r\n templateUrl: './vehicle-details-routes-calendar.component.html',\r\n styleUrls: ['./vehicle-details-routes-calendar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class VehicleDetailsRoutesCalendarComponent implements OnDestroy {\r\n\r\n @Output() private onHideCalendar: EventEmitter = new EventEmitter();\r\n @Output() private onSubmitCalendar: EventEmitter = new EventEmitter();\r\n\r\n @Input() public isVisible: boolean;\r\n\r\n public rangeDate: Date[];\r\n\r\n public maxDateValue = new Date();\r\n\r\n public readonly switchDatesRange = [\r\n { type: SwitchDatesRange.Month, title: this.translate.instant('month') },\r\n { type: SwitchDatesRange.Week, title: this.translate.instant('week') },\r\n { type: SwitchDatesRange.Day, title: this.translate.instant('oneDay') },\r\n ];\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n ) { }\r\n\r\n ngOnDestroy(): void {\r\n \r\n }\r\n\r\n public submit(): void {\r\n if (!this.rangeDate.length) {\r\n alert(this.translate.instant('selectADateToShowRoutes'));\r\n return;\r\n }\r\n this.emitData();\r\n }\r\n\r\n public emitData(): void {\r\n this.onHide();\r\n const [from, to] = this.rangeDate;\r\n this.onSubmitCalendar.emit([from, to ? to : from]);\r\n this.resetSelectedDate();\r\n }\r\n\r\n public onHide(): void {\r\n this.onHideCalendar.emit();\r\n }\r\n\r\n public resetSelectedDate(): void {\r\n this.rangeDate = [];\r\n this.maxDateValue = new Date();\r\n }\r\n\r\n public onSelectDate(): void {\r\n const [from] = this.rangeDate;\r\n const maxDate = addDays(from, 31);\r\n if (maxDate >= new Date()) {\r\n this.maxDateValue = new Date();\r\n return;\r\n }\r\n this.maxDateValue = maxDate;\r\n }\r\n\r\n public onClickSwitchDateValue(type: SwitchDatesRange, isLeft?: boolean): void {\r\n if (type === SwitchDatesRange.Month) {\r\n this.setMonthRange(isLeft);\r\n return;\r\n }\r\n if (type === SwitchDatesRange.Week) {\r\n this.setWeekRange(isLeft);\r\n return;\r\n }\r\n if (type === SwitchDatesRange.Day) {\r\n this.setDayRange(isLeft);\r\n return;\r\n }\r\n }\r\n\r\n private setMonthRange(isLeft?: boolean): void {\r\n const [from] = this.rangeDate || [];\r\n const date = from ? (isLeft ? subMonths(from, 1) : addMonths(from, 1)) : new Date();\r\n\r\n const startMonth = startOfMonth(date > this.maxDateValue ? new Date() : date);\r\n const endMonth = endOfMonth(date);\r\n const validEndMonth = endMonth > this.maxDateValue ? new Date() : endMonth;\r\n\r\n this.rangeDate = [startMonth, validEndMonth];\r\n }\r\n\r\n private setWeekRange(isLeft?: boolean): void {\r\n const [from, to] = this.rangeDate || [];\r\n const WEEK = 7;\r\n\r\n if ((from === to || (from && !to)) && !isLeft) {\r\n this.rangeDate = [from, addDays(from, WEEK)];\r\n return;\r\n }\r\n\r\n const ifEndDayIsBiggerOrEqualMaxDate = !isLeft && to && to >= this.maxDateValue;\r\n const startDay = from ? (isLeft || ifEndDayIsBiggerOrEqualMaxDate ? subDays((ifEndDayIsBiggerOrEqualMaxDate ? new Date() : from), WEEK) : addDays(from, WEEK)) : subDays(new Date(), WEEK);\r\n const endDay = addDays(startDay, WEEK);\r\n const validEndDay = endDay > this.maxDateValue ? new Date() : endDay;\r\n\r\n this.rangeDate = [startDay, validEndDay];\r\n }\r\n\r\n private setDayRange(isLeft?: boolean): void {\r\n const [from, to] = this.rangeDate || [];\r\n const DAY = 1;\r\n\r\n const ifEndDayIsBiggerOrEqualMaxDate = (!this.rangeDate) || !isLeft && to && to >= this.maxDateValue;\r\n if (ifEndDayIsBiggerOrEqualMaxDate) {\r\n this.rangeDate = [new Date(), new Date()];\r\n return;\r\n }\r\n\r\n const startDay = from ? (isLeft ? subDays(from, DAY) : addDays(from, DAY)) : subDays(new Date(), DAY);\r\n this.rangeDate = [startDay, startDay];\r\n }\r\n\r\n}\r\n\r\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\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 */\n\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import { Pipe, PipeTransform, LOCALE_ID, Injector } from '@angular/core';\r\nimport { DecimalPipe } from '@angular/common';\r\n\r\n@Pipe({ name: 'fuel' })\r\nexport class FuelPipe implements PipeTransform {\r\n\r\n constructor(private injector: Injector) { }\r\n\r\n public transform(value: number): string {\r\n const localeId = this.injector.get(LOCALE_ID);\r\n const formater = new DecimalPipe(localeId);\r\n const result = formater.transform(value, '1.0-1');\r\n return result!;\r\n }\r\n}\r\n","
\r\n
\r\n {{'start'|translate}}:\r\n \r\n \r\n \r\n
\r\n
\r\n {{'end'|translate}}:\r\n \r\n \r\n {{'vehicle-details-routes-tab.driving'|translate}}...\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 {{ _data.distance | distance }}\r\n \r\n {{'distance'|translate}}\r\n
\r\n
\r\n \r\n \r\n \r\n {{'driveTime'|translate}}\r\n
\r\n
\r\n \r\n {{_data.fuel | fuel}} L\r\n \r\n {{'fuelConsumed'|translate}}\r\n
\r\n
\r\n \r\n {{_data.fuelPer100 | fuel}} L/100km\r\n \r\n {{'fuelConsumption'|translate}}\r\n
\r\n
\r\n
","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { RouteEvent } from '@commons/models/domain/RouteEvent';\r\n\r\nimport { RouteStats } from '@commons/models/domain/RouteStats';\r\nimport { VehicleLocation } from '@commons/models/domain/VehicleLocation';\r\n\r\nimport { get } from 'lodash'; \r\n\r\n@Component({\r\n selector: 'app-vehicle-details-route-summary-data',\r\n templateUrl: './vehicle-details-route-summary-data.component.html',\r\n styleUrls: ['./vehicle-details-route-summary-data.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class VehicleDetailsRouteSummaryDataComponent {\r\n\r\n @Input() public isLoading: boolean;\r\n\r\n @Input('data') public set setData(data: RouteStats) {\r\n this._data = {\r\n distance: data.D,\r\n time: Math.floor(data.T / 60),\r\n fuel: data.F,\r\n fuelPer100: (data.D === 0) ? 0 : ((data.F / data.D) * 100), \r\n };\r\n }\r\n\r\n @Input('routes') public set setRoutes(data: RouteEvent[] | undefined) {\r\n this.setStreets(data);\r\n }\r\n\r\n public _data!: {\r\n distance: number;\r\n time: number;\r\n fuel: number;\r\n fuelPer100: number;\r\n };\r\n public startLocationRoute: VehicleLocation;\r\n public endLocationRoute: any; // RouteEvent | VehicleLocation\r\n\r\n constructor() { }\r\n\r\n private setStreets(data?: RouteEvent[]): void {\r\n if (data?.length) {\r\n const routesStreet = this.getFirstAndLastRouteStreet(data);\r\n if (routesStreet) {\r\n this.startLocationRoute = routesStreet.start;\r\n this.endLocationRoute = routesStreet.end;\r\n }\r\n return;\r\n }\r\n this.startLocationRoute = null!;\r\n this.endLocationRoute = null;\r\n }\r\n\r\n private getFirstAndLastRouteStreet(array: RouteEvent[]): { start: VehicleLocation, end: VehicleLocation | RouteEvent } | null {\r\n if (!array.length) {\r\n return null;\r\n }\r\n const end = array[0];\r\n return {\r\n start: get(array, `[${array.length-1}].D.S`, null)!,\r\n end: end?.T === 3 ? end : get(end, 'D.S', null)!,\r\n };\r\n }\r\n\r\n}\r\n","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","
\r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n {{ _selectedDateCalendar[0] | date: 'mediumDate' : '' : langauge }}\r\n \r\n \r\n -\r\n \r\n {{ _selectedDateCalendar[1] | date: 'mediumDate' : '' : langauge }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ isMaxDate() ? ('date-time.today' | translate) : (initialDate[1] | date : 'mediumDate' : '' : langauge) }}\r\n \r\n \r\n
\r\n\r\n \r\n
","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { isSameDay } from 'date-fns';\r\n\r\nimport { findClosestDateAfter, findClosestDateBefore } from '@src/app/utils/date';\r\nimport { LanguageService } from '@shared/services/language.service';\r\n\r\n@Component({\r\n selector: 'app-vehicle-details-routes-days-switch',\r\n templateUrl: './vehicle-details-routes-days-switch.component.html',\r\n styleUrls: ['./vehicle-details-routes-days-switch.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class VehicleDetailsRoutesDaysSwitchComponent {\r\n\r\n @Output() public onShowCalendar: EventEmitter = new EventEmitter();\r\n @Output() public onChangeDate: EventEmitter = new EventEmitter();\r\n\r\n @Input() public initialDate: Date[] = [];\r\n\r\n @Input('selectedDateCalendar') public set setSelectedDateCalendar(data: Date[]) {\r\n this._selectedDateCalendar = [...data];\r\n this.ifDateDayIsSame = isSameDay(data[0], data[1]);\r\n }\r\n\r\n public ifDateDayIsSame: boolean = true;\r\n public _selectedDateCalendar: Date[] = [];\r\n\r\n public today = new Date();\r\n public readonly langauge: string = this.languageService.current;\r\n\r\n constructor(\r\n private languageService: LanguageService,\r\n ) { }\r\n\r\n public get getSelectedDate(): Date | Date[] {\r\n return this._selectedDateCalendar.length ? this._selectedDateCalendar : this.initialDate[1];\r\n }\r\n\r\n private get rangeDateFrom(): Date {\r\n return this._selectedDateCalendar[0];\r\n }\r\n\r\n private get rangeDateTo(): Date {\r\n return this._selectedDateCalendar[1];\r\n }\r\n\r\n public setPreviousDate(): void {\r\n const date = this.getSelectedDate;\r\n const a = findClosestDateBefore(Array.isArray(date) ? this.rangeDateFrom : date);\r\n this._selectedDateCalendar = [a, a];\r\n this.ifDateDayIsSame = true;\r\n this.onChangeDate.emit(this._selectedDateCalendar);\r\n }\r\n\r\n public setNextDate(): void {\r\n const date = this.getSelectedDate;\r\n const a = findClosestDateAfter(Array.isArray(date) ? this.rangeDateTo : date);\r\n this._selectedDateCalendar = [a, a];\r\n this.ifDateDayIsSame = true;\r\n this.onChangeDate.emit(this._selectedDateCalendar);\r\n }\r\n\r\n public isMaxDate(): boolean {\r\n const date = this.getSelectedDate;\r\n return isSameDay(Array.isArray(date) ? this.rangeDateTo : date, new Date());\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { format } from \"date-fns\";\r\n\r\nimport { RouteEvent } from '@commons/models/domain/RouteEvent';\r\n\r\ninterface IGroupObjArr {\r\n date: string;\r\n routes: RouteEvent[];\r\n}\r\n\r\nfunction sortRoutesByDate(data: IGroupObjArr[]): IGroupObjArr[] {\r\n return data.sort((a, b) => {\r\n const dateA = new Date(a.date).getTime();\r\n const dateB = new Date(b.date).getTime();\r\n return dateB - dateA;\r\n });\r\n}\r\n\r\n@Pipe({\r\n name: 'groupRoutesByDate',\r\n standalone: true\r\n})\r\nexport class GroupRoutesByDatePipe implements PipeTransform {\r\n\r\n transform(route?: RouteEvent[]): IGroupObjArr[] {\r\n if (!route?.length) {\r\n return [];\r\n }\r\n\r\n return sortRoutesByDate(route.reduce((prev: IGroupObjArr[], curr: RouteEvent): IGroupObjArr[] => {\r\n const currentDateRoute = format(new Date(curr.St || curr.En), 'MM-d-yyyy');\r\n const findPrev = prev.some(el => el.date === currentDateRoute);\r\n\r\n if (!findPrev) {\r\n const data = {\r\n date: currentDateRoute,\r\n routes: route\r\n .filter(item => format(new Date(item.St || item.En), 'MM-d-yyyy') === currentDateRoute)\r\n .map(item => ({...item, Points: []})),\r\n };\r\n prev.push(data);\r\n }\r\n\r\n return prev;\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 \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 {{ dayRoutes.date | date: 'EEEE, d MMMM yyyy' : '' : langauge }}\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \"\"\r\n

\r\n {{'vehicle-details-routes-tab.vehicle-not-driving-part1' | translate}} {{'vehicle-details-routes-tab.vehicle-not-driving-part2' | translate}}\r\n

\r\n \r\n {{'checkOtherDays'|translate}}\r\n \r\n
\r\n
\r\n\r\n","import {Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewEncapsulation,} from '@angular/core';\r\n\r\nimport {combineLatest, debounceTime, Subject, Subscription, tap} from 'rxjs';\r\nimport { differenceInDays } from 'date-fns';\r\n\r\nimport {RouteEvent} from '../../../../../commons/models/domain/RouteEvent';\r\nimport {Vehicle} from '../../../../../commons/models/domain/Vehicle';\r\nimport {RouteDrawerService} from '@commons/services/map/drawer/route/route-drawer.service';\r\nimport {RouteService} from '@commons/services/route/route.service';\r\nimport {VehicleService} from '@commons/services/vehicle/vehicle.service';\r\nimport {RouteEventPoint} from '../../../../../commons/models/domain/RouteEventPoint';\r\nimport {NewWebSocketHttpService} from \"@shared/websocket/new-web-socket-http.service\";\r\nimport {NewVehiclesHttpService} from \"@shared/services-http/new-vehicles-http.service\";\r\nimport { RouteStats } from '@commons/models/domain/RouteStats';\r\nimport { MapService } from '@commons/services/map/map/map.service';\r\nimport { LanguageService } from '@shared/services/language.service';\r\n\r\ninterface GetRoutesSubscriptions {\r\n getRouteForDateSubsc: Subscription,\r\n showPointInMapSubsc?: Subscription,\r\n}\r\n\r\n@Component({\r\n selector: 'tk-vehicle-details-routes-tab',\r\n styleUrls: ['./vehicle-details-routes-tab.component.scss'],\r\n templateUrl: './vehicle-details-routes-tab.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class VehicleDetailsRoutesTabComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n /**\r\n * Vehicle id\r\n */\r\n @Input() public vehicleId?: number;\r\n\r\n /**\r\n * Route events\r\n */\r\n public routes?: RouteEvent[];\r\n\r\n /**\r\n * Route date form control\r\n */\r\n // public RouteDate: FormControl;\r\n\r\n /**\r\n * Route available dates\r\n */\r\n public avaiableDates?: Date[];\r\n\r\n /**\r\n * Route sub\r\n */\r\n private routeSub: Subscription;\r\n\r\n private vehicleUpdate: Subscription;\r\n private lastUpdate: Date;\r\n\r\n /**\r\n * Subject for pushing vehicle value changes\r\n */\r\n private vehicleValueChangeSubject: Subject = new Subject();\r\n\r\n /**\r\n * Id of selected route event\r\n */\r\n public selectedRouteEventId?: number;\r\n\r\n /**\r\n * Flag indicating whether data is being fetched\r\n */\r\n public isLoading = true;\r\n\r\n public isVisibleCalendar: boolean;\r\n public initialDateCalendar: Date[] = [new Date(),new Date()];\r\n public selectedDatesInCalendar: Date[] = [];\r\n public onChangeDayCalendar$: Subject = new Subject();\r\n public vehicleRouteStatistics: RouteStats;\r\n\r\n public readonly langauge: string = this.languageService.current;\r\n private readonly ComponentSubsc: Subscription = new Subscription();\r\n\r\n /**\r\n * Component constructor\r\n * @param $fb form builder\r\n * @param $route route service\r\n * @param $routeDrawer route drawer service\r\n */\r\n constructor(\r\n private $route: RouteService,\r\n private $routeDrawer: RouteDrawerService,\r\n private $vehicleService: VehicleService,\r\n private $map: MapService,\r\n private newVehiclesHttpService: NewVehiclesHttpService,\r\n private newWebSocketHttpService: NewWebSocketHttpService,\r\n private languageService: LanguageService,\r\n ) {\r\n this.lastUpdate = new Date();\r\n\r\n this.vehicleUpdate = this.newWebSocketHttpService.updatedVehicles.subscribe(vehiclesList => {\r\n const current = vehiclesList.find(v => v.Id === this.vehicleId);\r\n if (!current)\r\n return;\r\n\r\n if (current && current.ControlIndicators != null && current.LastPositionLat && current.LastPositionLon) {\r\n var posParam = current.ControlIndicators.find(x => x.Tp == 22);\r\n\r\n if (posParam != null && posParam.LV != null && posParam.LV.T != null) {\r\n var utc = Date.parse(posParam.LV.T.toString());\r\n var local = new Date(utc);\r\n\r\n //update tylko jeśli pojazd jest w drodze (tj. pierwszy odcinek trasy ma typ 3)\r\n if (local > this.lastUpdate && this.routes && this.routes.length > 0 && this.routes[0].T === 3) {\r\n var pt = {} as RouteEventPoint;\r\n pt.RouteEventId = this.routes[0].Id;\r\n pt.Ln = current.LastPositionLon.toString();\r\n pt.Lt = current.LastPositionLat.toString();\r\n pt.T = posParam.LV.T;\r\n\r\n this.lastUpdate = local;\r\n // this.$route.pointUpdateRequired.next(pt);\r\n // GB jest to poprawka błędu polegającego na nie rysowaniu się lini bieżącej trasy\r\n // nie mam pojęcia jak to wcześniej mogło działać bez tej linii\r\n // nie wiem dlaczego ta linia nie rysuje się na bieżąco tylko co 3 odświerzenie danych nawet jeśli poniższa linia jest nad obecnym ifem i wywołuje się cały czas\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.getInitialData();\r\n this.onChangeDayCalendar();\r\n }\r\n\r\n private getInitialData(): void {\r\n const [from, to] = this.initialDateCalendar;\r\n this.getRoutesForDate(from, to);\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n // Push new vehicle\r\n const currentValue = (changes['vehicleId'].currentValue);\r\n const previousValue = (changes['vehicleId'].previousValue);\r\n const firstChange = changes['vehicleId'].firstChange;\r\n\r\n // When vehicles has not changed\r\n if (previousValue !== currentValue || firstChange === true) {\r\n this.vehicleValueChangeSubject.next(undefined);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n if (this.routeSub) {\r\n this.routeSub.unsubscribe();\r\n }\r\n if (this.vehicleUpdate) {\r\n this.vehicleUpdate.unsubscribe();\r\n }\r\n this.$vehicleService.setFollowVehicleStatus(true);\r\n this.$routeDrawer.resetRoute();\r\n }\r\n\r\n /**\r\n * Selects given segment\r\n * @param segment segment\r\n */\r\n public selectSegment(segment: RouteEvent) {\r\n if (this.selectedRouteEventId === segment.Id) {\r\n this.selectedRouteEventId = undefined;\r\n this.$routeDrawer.onClickPartOfRoute(undefined);\r\n } else {\r\n this.selectedRouteEventId = segment.Id;\r\n this.$routeDrawer.onClickPartOfRoute(segment);\r\n }\r\n }\r\n\r\n public onRouteEventDetailUpdate(route: RouteEvent) {\r\n const idx = this.routes?.findIndex(i => i.Id === route.Id);\r\n if (idx !== -1) {\r\n this.routes![idx!] = route;\r\n }\r\n }\r\n\r\n public onSelectDaysInCalendar(data: Date[]): void {\r\n this.selectedDatesInCalendar = [...data];\r\n this.onChangeDayCalendar$.next(data);\r\n }\r\n\r\n private onChangeDayCalendar(): void {\r\n let getRoutesSubscriptions: GetRoutesSubscriptions;\r\n const sub = this.onChangeDayCalendar$\r\n .pipe(\r\n tap(() => {\r\n getRoutesSubscriptions?.getRouteForDateSubsc?.unsubscribe();\r\n getRoutesSubscriptions?.showPointInMapSubsc?.unsubscribe();\r\n this.$routeDrawer.setRoute(undefined);\r\n this.$map.setMapLoaderState(true);\r\n this.isLoading = true;\r\n }),\r\n debounceTime(500),\r\n )\r\n .subscribe(([from, to]) => {\r\n getRoutesSubscriptions = this.getRoutesForDate(from, to);\r\n });\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private getRoutesForDate(from: Date, to: Date): GetRoutesSubscriptions {\r\n let loadPointsForRouteSubsc: Subscription;\r\n\r\n const requests = combineLatest([\r\n this.$route.getRouteForDate$(from, to, this.vehicleId!),\r\n this.$route.getRouteStats$(this.vehicleId!, from, to),\r\n ]);\r\n\r\n const ifSelectedMoreThen2DaysRange = differenceInDays(to, from) > 1 ? true : false;\r\n\r\n const sub = requests.subscribe(\r\n ([routeData, routeStats]) => {\r\n if (!routeData?.length) {\r\n this.$map.setMapLoaderState(false);\r\n }\r\n else {\r\n loadPointsForRouteSubsc = this.loadPointsForRoute(routeData, ifSelectedMoreThen2DaysRange);\r\n }\r\n\r\n this.routes = routeData.reverse();\r\n this.vehicleRouteStatistics = { ...routeStats };\r\n this.isLoading = false;\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n this.ComponentSubsc.add(loadPointsForRouteSubsc!);\r\n\r\n return {\r\n getRouteForDateSubsc: sub,\r\n showPointInMapSubsc: loadPointsForRouteSubsc!,\r\n };\r\n }\r\n\r\n public trackByDayRoute(_: number, item: { date: string; routes: RouteEvent[] }): string {\r\n return item.date;\r\n }\r\n\r\n public trackByRoute(_: number, item: RouteEvent): number {\r\n return item.Id;\r\n }\r\n\r\n private loadPointsForRoute(routes: RouteEvent[], ifSelectedMoreThen2DaysRange?: boolean): Subscription {\r\n const ids = routes.map(x => x.Id);\r\n const sub = this.newVehiclesHttpService.getRouteDetailsList(ids!)\r\n .pipe(\r\n debounceTime(3000),\r\n )\r\n .subscribe(response => {\r\n response.forEach(responseRoute => {\r\n const matchedRoute = routes.find(x => x.Id === responseRoute.Id);\r\n matchedRoute!.Points = responseRoute.P;\r\n });\r\n this.$routeDrawer.setRoute(this.routes, ifSelectedMoreThen2DaysRange);\r\n });\r\n this.ComponentSubsc.add(sub);\r\n return sub;\r\n }\r\n\r\n}\r\n","export enum TachoTypeData {\r\n Driving = 1,\r\n Work = 2,\r\n Rest = 3,\r\n Availability = 4,\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { intervalToDuration } from 'date-fns';\r\n\r\n@Pipe({\r\n name: 'formatSecondsToHumanize'\r\n})\r\nexport class FormatSecondsToHumanizePipe implements PipeTransform {\r\n\r\n transform(seconds: number): string {\r\n const duration = intervalToDuration({ start: 0, end: seconds * 1000 });\r\n\r\n const formattedDuration = [];\r\n\r\n if (duration.years) formattedDuration.push(`${duration.years}r`);\r\n if (duration.months) formattedDuration.push(`${duration.months}msc`);\r\n if (duration.days) formattedDuration.push(`${duration.days}d`);\r\n if (duration.hours) formattedDuration.push(`${duration.hours}h`);\r\n if (duration.minutes) formattedDuration.push(`${duration.minutes}min`);\r\n if (duration.seconds) formattedDuration.push(`${duration.seconds}s`);\r\n\r\n return formattedDuration.join(' ');\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n\r\n@Injectable()\r\nexport class TachoService {\r\n\r\n\tprivate readonly mockData: any[] = [\r\n\t\t{\r\n\t\t\tSlotId: 1,\r\n\t\t\tNumber: 1,\r\n\t\t\tCard: \"0000-5554-9888-5600\",\r\n\t\t\tStatValue1: \"6:00\",\r\n\t\t\tStatValue2: \"0:19\",\r\n\t\t\tStatValue3: \"Brak\",\r\n\t\t\tStatValue4: \"0:52\",\r\n\t\t\tSubjects: [\r\n\t\t\t\t{\r\n\t\t\t\t\tName: \"Jazda\",\r\n\t\t\t\t\tStart: \"8:30\",\r\n\t\t\t\t\tMaxHours: 10.0,\r\n\t\t\t\t\tCurrentHours: 5.0,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tName: \"Praca\",\r\n\t\t\t\t\tStart: \"8:30\",\r\n\t\t\t\t\tMaxHours: 15.0,\r\n\t\t\t\t\tCurrentHours: 5.0,\r\n\t\t\t\t},\r\n\t\t\t]\r\n\t\t},\r\n\t\t{\r\n\t\t\tSlotId: 2,\r\n\t\t\tNumber: 2,\r\n\t\t\tCard: \"4343-9036-0183-3242\",\r\n\t\t\tStatValue1: \"7:00\",\r\n\t\t\tStatValue2: \"0:21\",\r\n\t\t\tStatValue3: \"Brak\",\r\n\t\t\tStatValue4: \"2:37\",\r\n\t\t\tSubjects: [\r\n\t\t\t\t{\r\n\t\t\t\t\tName: \"Jazda\",\r\n\t\t\t\t\tStart: \"9:25\",\r\n\t\t\t\t\tMaxHours: 9.0,\r\n\t\t\t\t\tCurrentHours: 4.0,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tName: \"Praca\",\r\n\t\t\t\t\tStart: \"9:25\",\r\n\t\t\t\t\tMaxHours: 12.0,\r\n\t\t\t\t\tCurrentHours: 10.0,\r\n\t\t\t\t},\r\n\t\t\t]\r\n\t\t},\r\n\t];\r\n\r\n\tgetTachoSlotsForDriver$(driverId: number): Observable {\r\n\t\treturn of(this.mockData);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t *\r\n\t */\r\n\tconstructor() { }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {map, Observable, tap} from 'rxjs';\r\nimport {WebAccessService} from '../web.access/web-access.service';\r\nimport {DriverScoringGroup} from '../../models/domain/DriverScoringGroup';\r\n\r\n@Injectable()\r\nexport class DriverService {\r\n\r\n constructor(\r\n private $webAccess: WebAccessService\r\n ) {\r\n }\r\n\r\n getDriverScoringForPeriod(driverId: number): Observable {\r\n return new Observable(observer => {\r\n this.$webAccess.GetEcoDrivingList(driverId).pipe(\r\n map(response => response.Result),\r\n tap(response => {\r\n for (const resp of response) {\r\n resp.Stats = resp.St;\r\n }\r\n }),\r\n map(response => response))\r\n .subscribe(response => {\r\n observer.next(response);\r\n observer.complete();\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n \r\n {{'update'|translate}}: {{lastUpdated|statusTimeFormat}}\r\n \r\n\r\n
\r\n \r\n
\r\n
","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-vehicle-tacho-slots',\r\n templateUrl: './vehicle-tacho-slots.component.html',\r\n styleUrls: ['./vehicle-tacho-slots.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class VehicleTachoSlotsComponent {\r\n\r\n @Output() public onChangeSlot$: EventEmitter = new EventEmitter();\r\n @Input() public activeSlotIndex?: number;\r\n @Input() public slots?: any[] = [];\r\n\r\n @Input('tachoData') public set setTachoData(data: any) {\r\n if (data?.Time) {\r\n this.setLastUpdated(data.Time);\r\n }\r\n }\r\n\r\n public lastUpdated: number;\r\n\r\n constructor() { }\r\n\r\n public onClickSlot(index: number): void {\r\n this.onChangeSlot$.emit(index);\r\n }\r\n\r\n private setLastUpdated(date: string): void {\r\n const lastPositionTime:Date = new Date(date);\r\n const n = new Date();\r\n this.lastUpdated = Math.ceil((n.getTime() - lastPositionTime.getTime()) / 1000);\r\n }\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy } from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { VehicleService } from '@commons/services/vehicle/vehicle.service';\r\nimport { Driver } from '@commons/models/domain/Driver';\r\n\r\n@Component({\r\n selector: 'app-driver-tacho',\r\n templateUrl: './driver-tacho.component.html',\r\n styleUrls: ['driver-tacho.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DriverTachoComponent implements OnDestroy {\r\n\r\n @Input('slotData') public set setSlotData(data: any) {\r\n this._slotData = {...(data || {})};\r\n if (data) {\r\n this.getDriverData();\r\n }\r\n }\r\n\r\n public _slotData?: any;\r\n public driver?: Driver;\r\n\r\n private readonly ComponentSubsc: Subscription = new Subscription();\r\n\r\n constructor(\r\n private $vehicleService: VehicleService\r\n ) { }\r\n\r\n ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n }\r\n\r\n private getDriverData(): void {\r\n const sub = this.$vehicleService.getCurrentDriver$(this._slotData.Card).subscribe(driver => this.driver = driver);\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n public copyCardNumber(): void {\r\n navigator.clipboard.writeText(this._slotData.Card);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {{driver?.FN}} {{driver?.LN}}\r\n \r\n
\r\n \r\n {{'vehicle-details-tacho-tab.card'|translate}} {{ _slotData?.Card }}\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-tacho-summary-data',\r\n templateUrl: './tacho-summary-data.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./tacho-summary-data.component.scss'],\r\n})\r\nexport class TachoSummaryDataComponent implements OnInit {\r\n\r\n @Input() public slotData: any;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n {{ (slotData?.StatValue1 / 1) | hoursTimeFormat }}\r\n \r\n
\r\n
\r\n \r\n \r\n {{ (slotData?.StatValue2/ 1) | hoursTimeFormat }}\r\n \r\n
\r\n
\r\n \r\n \r\n {{ (slotData?.StatValue3/ 1) | hoursTimeFormat }}\r\n \r\n
\r\n
\r\n \r\n \r\n {{ (slotData?.StatValue4/ 1) | hoursTimeFormat }}\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 {{'drive'|translate}}\r\n \r\n \r\n {{'work'|translate}}\r\n \r\n \r\n {{'vehicle-details-tacho-tab.rest'|translate}}\r\n \r\n \r\n {{'available'|translate}}\r\n \r\n \r\n \r\n {{'duration'|translate}}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n {{item.value}}\r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { TachoTypeData } from '@src/app/enum/tacho.enum';\r\n\r\n@Component({\r\n selector: 'app-tacho-data-details',\r\n templateUrl: './tacho-data-details.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./tacho-data-details.component.scss']\r\n})\r\nexport class TachoDataDetailsComponent implements OnInit {\r\n\r\n public readonly TACHO_TYPE_DATA = TachoTypeData;\r\n\r\n @Input() public dataType: TachoTypeData;\r\n @Input() public data: any[] = [];\r\n @Input() public slotData: any;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-tacho-empty-state',\r\n templateUrl: './tacho-empty-state.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./tacho-empty-state.component.scss'],\r\n})\r\nexport class TachoEmptyStateComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \"\"\r\n \r\n {{'noDriverCardInTheReader'| translate}}\r\n \r\n \r\n {{'noDriverCardInTherReaderDescription'|translate}}\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 {{'vehicle-details-tacho-tab.daily-cycle-start'|translate}}\r\n \r\n {{activeSlot.StartDay | date:'HH:mm'}}, {{activeSlot.StartDay | date:'d MMM'}}\r\n
\r\n
\r\n \r\n {{'vehicle-details-tacho-tab.recommendation-9h-rest'|translate}}\r\n \r\n {{activeSlot.Recommended_Rest9h | date:'HH:mm'}}, {{activeSlot.Recommended_Rest9h | date:'d MMM'}}\r\n
\r\n
\r\n \r\n {{'vehicle-details-tacho-tab.recommendation-11h-rest'|translate}}\r\n \r\n {{activeSlot.Recommended_Rest11h | date:'HH:mm'}}, {{activeSlot.Recommended_Rest11h | date:'d MMM'}}\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 \r\n \r\n \r\n
\r\n
\r\n","import { Component, Input, OnDestroy, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { TachoService } from '@commons/services/tacho/tacho.service';\r\nimport { DriverService } from '@commons/services/driver/driver.service';\r\nimport { MappingService } from '../../../../../commons/services/mapping/mapping.service';\r\nimport { TachoTypeData } from '@src/app/enum/tacho.enum';\r\nimport { FormatSecondsToHumanizePipe } from '@commons/pipes/format-seconds-to-humanize.pipe';\r\nimport { StatusTimeFormatPipe } from '@commons/pipes/status-time-format.pipe';\r\nimport { prepareTachoDataToDisplay } from '@src/app/utils/tacho-fncs';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-details-tacho-tab',\r\n styleUrls: ['./vehicle-details-tacho-tab.component.less'],\r\n templateUrl: './vehicle-details-tacho-tab.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [FormatSecondsToHumanizePipe, StatusTimeFormatPipe],\r\n})\r\nexport class VehicleDetailsTachoTabComponent implements OnDestroy {\r\n\r\n public sectionDataActiveSlot: any = {};\r\n public isLoadingData: boolean = true;\r\n public readonly TACHO_TYPE_DATA = TachoTypeData;\r\n\r\n // ------------Jazda------------\r\n // 4.5h ------------------------------------------------------------------------------\r\n private cName_45h = 'Jazda 4:30 h';\r\n private cDesc_45h = 'Informuje nas o tym, że kierowca jedzie przez ten\\nczas, maksymalnie nieprzerwanie \\nmoże jechać przez 04:30';\r\n private ccMax_45h = 4 * 60 * 60 + 30 * 60; // 4.5h\r\n // max9PerDay----------------------------------------------------------------------------\r\n private cName_DayMax9h = 'Jazda dzienna (max 9h)';\r\n private cDesc_DayMax9h =\r\n 'Informacja ile w danym dniu kierowca jeździł, maksymalny czas jazdy to 9 godzin.\\nDzień definiujemy pomiędzy dwoma odpoczynkami od ostatniego odpoczynku dziennego lub tygodniowego';\r\n private ccMax_DayMax9h = 9 * 60 * 60; // 9h\r\n // max10PerDay--------------------------------------------------------------------------------\r\n private cName_DayMax10h = 'Jazda dzienna (max 10h)';\r\n private cDesc_DayMax10h =\r\n 'Informacja ile w danym dniu kierowca jeździł, maksymalny czas jazdy to 10 godzin. Dzień definiujemy pomiędzy dwoma odpoczynkami od ostatniego odpoczynku dziennego lub tygodniowego';\r\n private ccMax_DayMax10h = 10 * 60 * 60; // 10h\r\n // DaysOver9h-------------------------------------------------------------------------\r\n private cName_DaysOver9h = 'Powyżej 9h (max 2 dni)';\r\n private cDesc_DaysOver9h =\r\n 'Informacja ile dni w tygodniu kierowca jechał więcej niż 9h, dopuszczalna wartość to 2 dni jazdy po 10h. Każda przekroczone 9h nawet o 1 min to jest jazda do 10h. W tygodniu od pn 00:00 do nd 23:59';\r\n private ccMax_DaysOver9h = 2;\r\n // 2Weeks------------------------------------------------------------------------------\r\n private cName_2Weeks = 'Dwa tygodnie (max 90h)';\r\n private cDesc_2Weeks = 'Informacja ile było jazdy przez dwa ostatnie tygodnie, maksymalnie jest to 90h jazdy przez dwa tygodnie.';\r\n private ccMax_2Weeks = 90 * 60 * 60; // 90h\r\n\r\n\r\n\r\n\r\n // ------------Praca------------\r\n\r\n // work_6h-------------------------------------------------------------------------\r\n private cName_Work6h = 'Praca ciągła (max 6h)';\r\n private cDesc_Work6h = 'Informacja o pracy ciągłej bez odpoczynku.\\nJazda + praca nie mogą trwać dłużej niż 6h';\r\n private cMax_Work6h = 6 * 60 * 60; // 6h\r\n // work_13h-------------------------------------------------------------------------\r\n private cName_Work13h = 'Praca dzisiaj (max 13h)';\r\n private cDesc_Work13h = 'Informacja o pracy dziennej.\\nJazda + praca + odpoczynek nie mogą trwać dłużej niż 13h';\r\n private cMax_Work13h = 13 * 60 * 60; // 13h\r\n // work_15h-------------------------------------------------------------------------\r\n private cName_Work15h = 'Praca dzisiaj (max 15h)';\r\n private cDesc_Work15h = 'Informacja o pracy dziennej.\\nJazda + praca + odpoczynek + dyspozycyjność nie mogą trwać dłużej niż 15h';\r\n private cMax_Work15h = 15 * 60 * 60; // 15h\r\n // WorkInWeek-------------------------------------------------------------------------\r\n private cName_WorkInWeek = 'Tygodniowy czas pracy (max 144h)';\r\n private cDesc_WorkInWeek = 'Łączny czas pracy kierowcy liczony od momentu zakończenia ostatniego odpoczynku tygodniowego';\r\n private cMax_WorkInWeek = 144 * 60 * 60; // 144h\r\n\r\n\r\n // ------------Odpoczynek------------\r\n\r\n // Rest45-------------------------------------------------------------------------\r\n private cName_Rest45 = 'Przerwa 45 min';\r\n private cDesc_Rest45 = 'Przerwa 45 min wymagana do wyzerowania czasu jazdy ciągłej. Mimimalny czas przerwy dzielonej to 15 min';\r\n private cMax_Rest45 = 45 * 60; // 45min\r\n // rest_9hToday-------------------------------------------------------------------------\r\n private cName_Rest9hToday = 'Odpoczynek dzienny (min 9h)';\r\n private cDesc_Rest9hToday =\r\n 'Informacja ile godzin w danym cyklu dobowym zostało\\npoświęcone na odpoczynek dzienny. Zapisujemy powyżej 3h';\r\n // Informacja ile godzin w danym cyklu dobowym zostało poświęcone na odpoczynek (sen)\r\n private cMax_Rest9hToday = 9 * 60 * 60; // 9h\r\n // rest_9hYesterday-------------------------------------------------------------------------\r\n private cName_Rest11hToday = 'Odpoczynek dobowy (min 11h)';\r\n private cDesc_Rest11hToday =\r\n 'Informacja ile godzin w danym cyklu dobowym zostało poświęconych na odpoczynek dzienny. Zapisujemy powyżej 3h';\r\n private cMax_Rest11hToday = 11 * 60 * 60; // 9h\r\n // rest_Week-------------------------------------------------------------------------\r\n private cName_RestWeek = 'Ile odp. 9h w tygodniu (max 3x)';\r\n private cDesc_RestWeek =\r\n 'Informacja ile razy kierowca wykorzystał skrócony odpoczynek 9h. Max 3 razy pomiędzy odpoczynkami tygodniowymi.';\r\n private cMax_RestWeek = 3; // 3dni\r\n // rest_PrevWeek-------------------------------------------------------------------------\r\n private cName_RestPrevWeek = 'Odp. tygodniowy (24-45h)';\r\n private cDesc_RestPrevWeek = 'Czas ostatniego odpoczynku tygodniowego';\r\n private cMax_RestPrevWeek = 24 * 60 * 60; // 24h\r\n // rest_2Weeks-------------------------------------------------------------------------\r\n private cName_Rest2Weeks = 'Poprz. odp. tygodniowy (24-45h)';\r\n private cDesc_Rest2Weeks = 'Czas poprzedniego odpoczynku tygodniowego';\r\n private cMax_Rest2Weeks = 24 * 60 * 60; // 24h\r\n\r\n /**\r\n *\r\n */\r\n @Input('item') public set setItemData(data: any) {\r\n if (data?.TC) {\r\n data.Tacho && this.tachoChangeSubject.next(data);\r\n this._item = data;\r\n return;\r\n } \r\n this.isLoadingData = false;\r\n }\r\n\r\n @Input() public hideDriverInfo = false;\r\n\r\n /**\r\n *\r\n */\r\n public slots: any[] = [];\r\n public _item: any;\r\n\r\n /**\r\n *\r\n */\r\n public activeSlot: any;\r\n\r\n /**\r\n * Subject for pushing vehicle value changes\r\n */\r\n public tachoChangeSubject: Subject = new Subject();\r\n\r\n /**\r\n * Subscription of stream of tacho slots\r\n */\r\n public slotsSub: Subscription;\r\n\r\n public activeSlotIdx?: number = 0;\r\n\r\n public setActiveSlot(idx: number) {\r\n this.activeSlotIdx = idx;\r\n this.activeSlot = this.slots[this.activeSlotIdx];\r\n if (this.activeSlot) {\r\n const data = prepareTachoDataToDisplay(this.activeSlot, this.translate, this.statusTimeFormatPipe);\r\n this.sectionDataActiveSlot = data;\r\n }\r\n }\r\n\r\n /**\r\n *\r\n */\r\n constructor(\r\n private $tacho: TachoService,\r\n private $driver: DriverService,\r\n private formatSecondsToHumanizePipe: FormatSecondsToHumanizePipe,\r\n private translate: TranslateService,\r\n private statusTimeFormatPipe: StatusTimeFormatPipe\r\n ) {\r\n this.slotsSub = this.tachoChangeSubject\r\n .subscribe(result => {\r\n this.slots = [];\r\n if (result.Tacho) {\r\n // slot 1\r\n if (result.Tacho.S1 && result.Tacho.S1.Id) {\r\n const s = result.Tacho.S1;\r\n const slot = this.getSlotData(s);\r\n slot.Number = '1';\r\n this.slots.push(slot);\r\n\r\n }\r\n // slot 2\r\n if (result.Tacho.S2 && result.Tacho.S2.Id) {\r\n const s = result.Tacho.S2;\r\n const slot = this.getSlotData(s);\r\n slot.Number = '2';\r\n this.slots.push(slot);\r\n }\r\n\r\n this.isLoadingData = false;\r\n }\r\n\r\n // jezeli slot aktywny\r\n if (this.activeSlotIdx || this.activeSlotIdx === 0) {\r\n this.setActiveSlot(this.activeSlotIdx);\r\n return;\r\n }\r\n if (!this.activeSlotIdx && this.slots.length > 0) {\r\n this.setActiveSlot(0);\r\n }\r\n });\r\n }\r\n\r\n\r\n private getSlotData(s: any) {\r\n\r\n const state = MappingService.convertTachoStatus(s.St);\r\n\r\n const r = {\r\n Number: '',\r\n Card: '' + s.Id,\r\n CurrentState: state,\r\n StatValue1: s.DD,\r\n StatValue2: s.DW,\r\n StatValue3: s.DR,\r\n StatValue4: s.DRd,\r\n\r\n StartDay: s.SD,\r\n Recommended_Rest9h: s.RR9,\r\n Recommended_Rest11h: s.RR11,\r\n\r\n Drive: {\r\n\r\n Act_2Weeks: s.A2W,\r\n Act_45h: s.A45,\r\n Act_DayMax10h: s.AM10,\r\n Act_DayMax9h: s.AM9,\r\n Act_DaysInWeek: s.ADW,\r\n Act_DaysOver9h: s.AO9,\r\n\r\n Act_2Weeks_Rest: this.ccMax_2Weeks - s.A2W,\r\n Act_45h_Rest: this.ccMax_45h - s.A45,\r\n Act_DayMax10h_Rest: this.ccMax_DayMax10h - s.AM10,\r\n Act_DayMax9h_Rest: this.ccMax_DayMax9h - s.AM9,\r\n Act_DaysInWeek_Rest: null,\r\n Act_DaysOver9h_Rest: this.ccMax_DaysOver9h - s.AO9,\r\n\r\n\r\n Max_Act_2Weeks: '90 h',\r\n Max_Act_45h: '-',\r\n Max_Act_DayMax10h: '10 h',\r\n Max_Act_DayMax9h: '9 h',\r\n // Max_Act_DaysInWeek: '6 dni',\r\n Max_Act_DaysOver9h: '2 dni'\r\n },\r\n Work: {\r\n\r\n\r\n Work_6h: s.W6,\r\n Work_13h: s.W13,\r\n Work_15h: s.W15,\r\n Work_Weekly: s.WW,\r\n\r\n Work_6h_Rest: this.cMax_Work6h - s.W6,\r\n Work_13h_Rest: this.cMax_Work13h - s.W13,\r\n Work_15h_Rest: this.cMax_Work15h - s.W15,\r\n Work_Weekly_Rest: this.cMax_WorkInWeek - s.WW,\r\n\r\n\r\n Max_Work_6h: '6 h',\r\n Max_Work_13h: '13 h',\r\n Max_Work_15h: '15 h',\r\n Max_Work_Weekly: '3 dni',\r\n },\r\n Rest: {\r\n Rest_11hToday: s.R11,\r\n Rest_2Weeks: s.R2W,\r\n Rest_45min: s.R45,\r\n Rest_9hToday: s.R9,\r\n Rest_PrevWeek: s.RP,\r\n Rest_Week: s.RW,\r\n\r\n Rest_11hToday_Rest: this.cMax_Rest11hToday - s.R11,\r\n Rest_2Weeks_Rest: this.cMax_Rest2Weeks - s.R2W,\r\n Rest_45min_Rest: this.cMax_Rest45 - s.R45,\r\n Rest_9hToday_Rest: this.cMax_Rest9hToday - s.R9,\r\n Rest_PrevWeek_Rest: this.cMax_RestPrevWeek - s.RP,\r\n Rest_Week_Rest: this.cMax_RestWeek - s.RW,\r\n\r\n Max_Rest_11hToday: '11 h',\r\n Max_Rest_2Weeks: '24-45 h',\r\n Max_Rest_45min: '-',\r\n Max_Rest_9hToday: '9 h',\r\n Max_Rest_PrevWeek: '24-45 h',\r\n Max_Rest_Week: '3 dni'\r\n }\r\n };\r\n\r\n\r\n return r;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.slotsSub) {\r\n this.slotsSub.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { TranslateService } from \"@ngx-translate/core\";\r\n\r\nimport { StatusTimeFormatPipe } from \"@commons/pipes/status-time-format.pipe\";\r\n\r\nimport { convertSecondsToHoursAndMinutes } from \"./date\";\r\n\r\nexport const prepareTachoDataToDisplay = (data: any, translate: TranslateService, statusTimeFormatPipe: StatusTimeFormatPipe): any => {\r\n let result = {};\r\n const keys = Object.keys(data);\r\n const driveDataList = ['Act_45h', 'Act_DayMax9h', 'Act_DayMax10h', 'Act_DaysOver9h', 'Act_2Weeks'];\r\n const workDataList = ['Work_6h', 'Work_13h', 'Work_15h', 'Work_Weekly'];\r\n const restDatList = ['Rest_45min', 'Rest_9hToday', 'Rest_11hToday', 'Rest_Week', 'Rest_2Weeks', 'Rest_PrevWeek'];\r\n const paramsWithCustomFormatValue = ['Act_DaysOver9h', 'Act_2Weeks', 'Rest_Week', 'Rest_2Weeks', 'Rest_PrevWeek'];\r\n\r\n const getFilterList = (listName: string) => {\r\n if (listName === 'Drive') return driveDataList;\r\n if (listName === 'Work') return workDataList;\r\n if (listName === 'Rest') return restDatList;\r\n return [];\r\n };\r\n\r\n const customFormatValueForSelectedParams = (paramName: string, value: any): string => {\r\n if (paramName === 'Act_2Weeks' || paramName === 'Rest_2Weeks' || paramName === 'Rest_PrevWeek') {\r\n return convertSecondsToHoursAndMinutes(value).string;\r\n }\r\n return value || 0;\r\n };\r\n\r\n for (const element of keys) {\r\n const tabParams: Object = data[element];\r\n const filterList = getFilterList(element);\r\n const filterParams = filterList.filter(item => item in tabParams);\r\n\r\n result = {\r\n ...result,\r\n [element]: filterParams.reduce((prev, curr): any => [\r\n ...prev,\r\n { \r\n title: translate.instant(`tacho.${curr}`),\r\n value: paramsWithCustomFormatValue.includes(curr) \r\n ? customFormatValueForSelectedParams(curr, data[element][curr])\r\n : statusTimeFormatPipe.transform(data[element][curr]),\r\n }\r\n ], []),\r\n };\r\n }\r\n return {...result};\r\n};\r\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function addSeconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * 1000);\n}","import {Injectable} from '@angular/core';\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\nimport {BehaviorSubject, Observable, of, tap} from \"rxjs\";\r\n\r\nimport {BaseHttpService} from \"@shared/services-http/base-http.service\";\r\n\r\nimport {getETollBalanceResponse} from \"@layout/vehicle/http-services/responses/getETollBalance.response\";\r\nimport {getETollBalanceDetailsResponse} from \"@layout/vehicle/http-services/responses/getETollBalanceDetails.response\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EtollStatusHttpService extends BaseHttpService {\r\n\r\n static readonly noEtollDataForVehicleErrorCode = 6;\r\n\r\n isEtollDataAvailableSub = new BehaviorSubject(false);\r\n\r\n private cachedBalance?: getETollBalanceResponse;\r\n private readonly cacheBalanceDetails = new Map();\r\n\r\n constructor(protected httpClient: HttpClient) {\r\n super();\r\n }\r\n\r\n getBalance(): Observable {\r\n if (this.cachedBalance)\r\n return of(this.getClone(this.cachedBalance));\r\n\r\n const url = this.getUrl('/GetETollBalance');\r\n return this.httpClient.get(url).pipe(\r\n tap(response => {\r\n this.cachedBalance = this.getClone(response);\r\n const isEtollDataAvailable = response.Result?.Result != null && response.Result?.Result.length > 0;\r\n this.isEtollDataAvailableSub.next(isEtollDataAvailable);\r\n }));\r\n }\r\n\r\n getBalanceDetails(vehicleId: number): Observable {\r\n const cached = this.cacheBalanceDetails.get(vehicleId);\r\n if (cached)\r\n return of(this.getClone(cached));\r\n\r\n const url = this.getUrl('/GetETollBalanceDetails/' + vehicleId);\r\n return this.httpClient.get(url).pipe(\r\n tap(response => {\r\n this.cacheBalanceDetails.set(vehicleId, this.getClone(response));\r\n }));\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-e-toll-disable-modal',\r\n templateUrl: './e-toll-disable-modal.component.html',\r\n styleUrls: ['./e-toll-disable-modal.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ETollDisableModalComponent {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef\r\n ) { }\r\n\r\n}\r\n","
\r\n
\r\n
{{'vehicle-details-etoll-tab.question-turn-off-etoll' | translate}}
\r\n
\r\n {{'vehicle-details-etoll-tab.turn-off-message-part1' | translate}}\r\n {{'vehicle-details-etoll-tab.turn-off-message-part2' | translate}}\r\n
\r\n {{'vehicle-details-etoll-tab.turn-off-message-part3' | translate}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\n@Component({\r\n selector: 'app-vehicle-business-number-pin',\r\n standalone: true,\r\n imports: [TranslateModule, ButtonModule],\r\n templateUrl: './vehicle-business-number-pin.component.html',\r\n styleUrls: ['./vehicle-business-number-pin.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class VehicleBusinessNumberPinComponent {\r\n @Input() public vehicle: Vehicle;\r\n @Input() public title: string;\r\n \r\n public copyText(text: string): void {\r\n navigator.clipboard.writeText(text);\r\n }\r\n\r\n public copyAll(): void {\r\n navigator.clipboard.writeText(`NR: ${ this.vehicle.BN }, PIN: ${ this.vehicle.DP }`);\r\n }\r\n\r\n}\r\n","
\r\n \r\n {{title}}\r\n \r\n
\r\n {{'vehicle-details-etoll-tab.business-number' | translate}}\r\n \r\n {{ vehicle.BN }}\r\n \r\n \r\n
\r\n
\r\n {{'labels.pin'|translate}}:\r\n \r\n {{ vehicle.DP }}\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
\r\n {{'vehicle-details-etoll-tab.status-off-part1' | translate}}\r\n {{'vehicle-details-etoll-tab.status-off-part2' | translate}}\r\n
\r\n
\r\n {{'vehicle-details-etoll-tab.status-off-part1' | translate}}\r\n {{'vehicle-details-etoll-tab.status-off-part2' | translate}}\r\n
\r\n
\r\n {{'vehicle-details-etoll-tab.status-sending-part1' | translate}}\r\n {{'vehicle-details-etoll-tab.status-sending-part2' | translate}}\r\n
\r\n
\r\n {{'vehicle-details-etoll-tab.status-not-sending-part1' | translate}}\r\n {{'vehicle-details-etoll-tab.status-not-sending-part2' | translate}}\r\n
\r\n
\r\n {{'vehicle-details-etoll-tab.status-sending-delay-part1' | translate}}\r\n {{'vehicle-details-etoll-tab.status-sending-delay-part2' | translate}}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
{{'vehicle-details-etoll-tab.last-etoll-balance-date' | translate}}
\r\n
{{etollBalance | date: 'short'}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{'vehicle-details-etoll-tab.alert-not-sending-part1' | translate}}\r\n {{'vehicle-details-etoll-tab.alert-not-sending-part2' | translate}}
\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
{{'vehicle-details-etoll-tab.not-registered-header' | translate}}
\r\n
\r\n {{'vehicle-details-etoll-tab.not-registered-info-part1' | translate}}
\r\n {{'vehicle-details-etoll-tab.not-registered-info-part2' | translate}}
\r\n {{'vehicle-details-etoll-tab.not-registered-info-part3' | translate}}\r\n
\r\n
\r\n
{{'contact.phone-prefix' | translate}} {{'contact.phone' | translate}}
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\r\n\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\nimport {Vehicle} from '@commons/models/domain/Vehicle';\r\nimport {VehicleService} from '@commons/services/vehicle/vehicle.service';\r\nimport {SetSendToETollRequest} from '@commons/models/remote.request/SetSendToETollRequest';\r\n\r\nimport {EtollStatusHttpService} from \"@layout/vehicle/http-services/etoll-status-http.service\";\r\n\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\nimport { ETollDisableModalComponent } from './e-toll-disable-modal/e-toll-disable-modal.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-details-e-toll-tab',\r\n styleUrls: ['./vehicle-details-etoll-tab.component.less'],\r\n templateUrl: './vehicle-details-etoll-tab.component.html'\r\n})\r\nexport class VehicleDetailsETollTabComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n private readonly ComponentSubsc: Subscription = new Subscription();\r\n\r\n readyToShow = false;\r\n sendToEToll?: boolean;\r\n etollBalance?: string;\r\n\r\n @Input() vehicle!: Vehicle;\r\n\r\n get isETollPanelVisible(): boolean {\r\n return this.etollBalance != null;\r\n }\r\n\r\n buttonTurnOffEtollTitle = '';\r\n buttonTurnOnEtollTitle = '';\r\n supportUrl = '';\r\n\r\n constructor(\r\n private $vehicleService: VehicleService,\r\n private eTollStatusService: EtollStatusHttpService,\r\n private translateService: TranslateService,\r\n public dialog: MatDialog,\r\n ) {\r\n super();\r\n this.setTranslations();\r\n }\r\n\r\n private setTranslations() {\r\n this.translateService.get(\"vehicle-details-etoll-tab.button-turn-off-etoll\").subscribe(t => this.buttonTurnOffEtollTitle = t);\r\n this.translateService.get(\"vehicle-details-etoll-tab.button-turn-on-etoll\").subscribe(t => this.buttonTurnOnEtollTitle = t);\r\n this.translateService.get(\"help.support-url\").subscribe(t => this.supportUrl = t);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n this.ComponentSubsc.unsubscribe();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetSendToEToll();\r\n this.subToIsEtollDataAvailable();\r\n }\r\n\r\n private subToIsEtollDataAvailable() {\r\n this.addToUnsubscribe(\r\n this.eTollStatusService.isEtollDataAvailableSub.subscribe(isAvailable => {\r\n const isNotEtollDeviceErrorStatus = this.vehicle?.ES != 3;\r\n if (isNotEtollDeviceErrorStatus && isAvailable)\r\n this.trySetLastEtollBalanceFrom();\r\n }));\r\n }\r\n\r\n private trySetLastEtollBalanceFrom() {\r\n this.eTollStatusService.getBalanceDetails(this.vehicle?.Id).subscribe({\r\n next: (response) => {\r\n if (response.ErrorCode !== EtollStatusHttpService.noEtollDataForVehicleErrorCode)\r\n this.etollBalance = response.Result?.Result;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * włączenie/wyłączenie wysyłania danych do e-Toll\r\n */\r\n SaveSendToEToll(value: boolean) {\r\n const request: SetSendToETollRequest = {\r\n IdVehicle: this.vehicle!.Id!,\r\n SendToEToll: value\r\n };\r\n\r\n this.$vehicleService.setSendToEToll(request).subscribe(nothing => {\r\n });\r\n this.sendToEToll = value;\r\n }\r\n\r\n CopyAllData() {\r\n var valueToCopy: string = `Nazwa pojazdu: ${this.vehicle?.Nm}\r\nNumer biznesowy: ${this.vehicle?.BN}\r\nPIN: ${this.vehicle?.DP}\r\nDane z systemu MyCar www.tekom.pl`;\r\n this.CopyValue(valueToCopy);\r\n }\r\n\r\n CopyValue(value: string) {\r\n const selBox = document.createElement('textarea');\r\n selBox.value = value;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n }\r\n\r\n public gotToSupport(): void {\r\n window.open('https://support.tekom.pl/portal/pl/kb/articles/etoll', '_blank');\r\n }\r\n\r\n GetSendToEToll() {\r\n this.$vehicleService.getSendToEToll(this.vehicle!.Id!).subscribe(\r\n (result) => {\r\n this.sendToEToll = result;\r\n this.readyToShow = true;\r\n }\r\n );\r\n }\r\n\r\n CopyBusinessNumber() {\r\n this.CopyValue(this.vehicle!.BN!);\r\n }\r\n\r\n CopyPin() {\r\n this.CopyValue(this.vehicle!.DP!);\r\n }\r\n\r\n ToggleChanged() {\r\n if (this.sendToEToll) {\r\n this.SaveSendToEToll(true);\r\n } else {\r\n this.ShowOverlay();\r\n }\r\n }\r\n\r\n ConfirmEtollDisabling() {\r\n this.SaveSendToEToll(false);\r\n this.sendToEToll = false;\r\n }\r\n\r\n CancelEtollDisabling() {\r\n this.sendToEToll = true;\r\n }\r\n\r\n private ShowOverlay() {\r\n this.showModalConfirmLock();\r\n }\r\n\r\n private showModalConfirmLock(): void {\r\n const dialog = this.dialog.open(ETollDisableModalComponent, { width: '100%', height: '100%', maxWidth: '100%' });\r\n const sub = dialog.afterClosed().subscribe(\r\n (res) => {\r\n if (res) {\r\n this.ConfirmEtollDisabling();\r\n return;\r\n }\r\n this.CancelEtollDisabling();\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n}\r\n","export enum VehicleLock {\r\n OUT1 = 'OUT1',\r\n OUT2 = 'OUT2',\r\n}\r\n\r\nexport enum VehicleHistoryLockType {\r\n FailedToTurnOn = 0,\r\n SuccessToTurnOn = 1,\r\n FailedToTurnOff = 2,\r\n SuccessToTurnOff = 3,\r\n}\r\n\r\nexport enum VehicleBlockerValue {\r\n Unknown = 0, // ten nie powinien być nigdy zwrócony, jeżeli jakoś się pojawi to znaczy że pojazd nie ma blokady\r\n Off = 1, // blokada wyłączona\r\n On = 2, // blokada włączona\r\n ChangePending = 3,\r\n}\r\n\r\nexport interface ISetLockVehicleState {\r\n VehicleId: number;\r\n OutName: VehicleLock;\r\n Value: boolean;\r\n}\r\n\r\nexport interface IGetLockVehicleState {\r\n VehicleId: number;\r\n BlockerInfos: IBlockerInfo[];\r\n}\r\n\r\nexport interface IBlockerInfo {\r\n BlockerValue: VehicleBlockerValue;\r\n OutName: string;\r\n ParameterId: number;\r\n VehicleId: number;\r\n}\r\n\r\nexport interface IVehicleHistoryResponse {\r\n Entries: IVehicleHistoryLock[];\r\n}\r\n\r\nexport interface IVehicleHistoryLock {\r\n Description: string;\r\n Timestamp: string;\r\n UserName: string;\r\n VehicleId: number;\r\n EntryType: VehicleHistoryLockType;\r\n OutName: string;\r\n}\r\n","
\r\n
\r\n \r\n

\r\n \r\n {{'errorChangeBlockedStatus'|translate}}\r\n \r\n \r\n {{ isLoading ? (data?.Value ? ('blockedInProgress'|translate) : ('blockedOffInProgress'|translate)) : (data?.Value ? ('confirmBlockedOn'|translate) : ('confirmBlockedOff'|translate)) }}\r\n \r\n

\r\n \r\n \r\n {{'errorChangeBlockedDescription'|translate}}\r\n \r\n \r\n {{ isLoading ? ('changeBlockedDescription' | translate) : '' }}\r\n\r\n \r\n {{'descriptionBlockedOn'|translate}} {{'descriptionBlockedOnPart2'|translate}}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { ChangeDetectionStrategy, Component, Inject, OnDestroy } from '@angular/core';\r\n\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { ISetLockVehicleState, VehicleLock } from '@commons/models/remote.request/VehicleLock';\r\nimport { WebAccessService } from '@commons/services/web.access/web-access.service';\r\n\r\n@Component({\r\n selector: 'app-modal-wrapper',\r\n templateUrl: './modal-wrapper.component.html',\r\n styleUrls: ['./modal-wrapper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class ModalWrapperComponent implements OnDestroy {\r\n\r\n public isLoading: boolean;\r\n public isError: boolean;\r\n\r\n private readonly ComponentSubsc: Subscription = new Subscription();\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: ISetLockVehicleState,\r\n private webAccessService: WebAccessService,\r\n private dialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n }\r\n\r\n public submit(): void {\r\n this.isError = false;\r\n this.isLoading = true;\r\n this.changeVehicleLockState(this.data);\r\n }\r\n\r\n public cancel(): void {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n private changeVehicleLockState(data: ISetLockVehicleState): void {\r\n const sub = this.webAccessService.SetLockVehicleState(data).subscribe({\r\n next: (res) => {\r\n this.dialogRef.close(true);\r\n },\r\n error: () => {\r\n this.isLoading = false;\r\n this.isError = true;\r\n }\r\n });\r\n this.ComponentSubsc.add(sub);\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 {{'blocked'|translate}} {{ blockedOutFirstConfirmValue ? ('blockeOn' | translate) : ('blockeOff' | translate) }} OUT1\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
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{'blocked'|translate}} {{ blockedOutSecondConfirmValue ? ('blockeOn' | translate) : ('blockeOff' | translate) }} OUT2\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
\r\n\r\n {{'update'|translate}}: {{lastUpdated|statusTimeFormat}}\r\n\r\n
\r\n

\r\n {{'actionHistory'|translate}}\r\n

\r\n\r\n
\r\n \r\n {{ item.Description }} {{ item.OutName }}\r\n \r\n
\r\n \r\n {{ item.UserName }}\r\n \r\n {{ item.Timestamp | date:'dd.MM.yyyy HH:mm:ss' }}\r\n
\r\n
\r\n\r\n \r\n \"\"\r\n \r\n {{'emptyStateHistoryLockTitle'|translate}}\r\n \r\n \r\n {{'emptyStateHistoryLockDescription'|translate}}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { VehicleControlIndicator } from '@commons/models/domain/VehicleControlIndicator';\r\nimport { VehicleStatusEnum } from '@commons/models/domain/VehicleStatusEnum';\r\nimport { IBlockerInfo, IVehicleHistoryLock, VehicleBlockerValue, VehicleHistoryLockType, VehicleLock } from '@commons/models/remote.request/VehicleLock';\r\nimport { VehicleService } from '@commons/services/vehicle/vehicle.service';\r\nimport { WebAccessService } from '@commons/services/web.access/web-access.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ModalWrapperComponent } from '@shared/components/modal-wrapper/modal-wrapper.component';\r\nimport { PermissionService } from '@shared/services/permission.service';\r\nimport { NewWebSocketHttpService } from '@shared/websocket/new-web-socket-http.service';\r\n\r\nimport { Subject, Subscription, debounceTime, switchMap } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-th-vehicle-details-locks-tab',\r\n templateUrl: './th-vehicle-details-locks-tab.component.html',\r\n styleUrls: ['./th-vehicle-details-locks-tab.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class ThVehicleDetailsLocksTabComponent implements OnInit, OnDestroy {\r\n\r\n @Input('vehicle') public set onChangeVehicle(data: Vehicle) {\r\n if (data?.Id !== this._vehicle?.Id) {\r\n this.onChangeLockStateWebSocketSubsc?.unsubscribe();\r\n this.onChangeVehicleData(data.Id);\r\n }\r\n this._vehicle = { ...data } as any;\r\n this.setLastUpdateDate();\r\n }\r\n\r\n public _vehicle: Vehicle;\r\n\r\n public blockedOutFirst?: boolean;\r\n public blockedOutSecond?: boolean;\r\n public blockedOutFirstConfirmValue?: boolean;\r\n public blockedOutSecondConfirmValue?: boolean;\r\n \r\n public isLoading: boolean = true;\r\n public isHiddenFirstLock: boolean;\r\n public isHiddenSecondLock: boolean;\r\n public userCanChangeStateBlocker: boolean;\r\n public historyLock: IVehicleHistoryLock[] = [];\r\n public isChaningOUT1Lock: boolean;\r\n public isChaningOUT2Lock: boolean;\r\n public isLoadingHistoryLock: boolean = true;\r\n\r\n public lastUpdated?: any;\r\n\r\n public onChangeOutFirst: Subject = new Subject();\r\n public onChangeOutSecond: Subject = new Subject();\r\n\r\n private ComponentSubsc: Subscription = new Subscription();\r\n public readonly VehicleStatusEnum = VehicleStatusEnum;\r\n public readonly VehicleHistoryLockType = VehicleHistoryLockType;\r\n private onChangeVehicleDataSubsc: Subscription;\r\n private onChangeLockStateWebSocketSubsc: Subscription;\r\n\r\n constructor(\r\n private webAccessService: WebAccessService,\r\n public dialog: MatDialog,\r\n private permissionService: PermissionService,\r\n private newWebSocketHttpService: NewWebSocketHttpService,\r\n private vehicle: VehicleService,\r\n private translate: TranslateService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.checkIfUserCanChangeStateBlocker();\r\n this.getStateVehicleLock();\r\n this.onChangeVehicleLockState();\r\n this.getHistoryVehicleLock();\r\n this.onChangeLockStateVehicle();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n this.onChangeVehicleDataSubsc?.unsubscribe();\r\n this.onChangeLockStateWebSocketSubsc?.unsubscribe();\r\n }\r\n\r\n private setLockOnEventChangeVehicleData(outName: string): void {\r\n const blockerValueOut1 = this._vehicle.ControlIndicators?.find(item => item.Id === this._vehicle.blockerParametrId);\r\n const blockerValueOut2 = this._vehicle.ControlIndicators?.find(item => item.Id === this._vehicle.blockerParametrIdOut2);\r\n this.blockedOutFirst = blockerValueOut1?.LV?.V;\r\n this.blockedOutSecond = blockerValueOut2?.LV?.V;\r\n this.blockedOutFirstConfirmValue = this.blockedOutFirst;\r\n this.blockedOutSecondConfirmValue = this.blockedOutSecond;\r\n\r\n if (outName === VehicleLock.OUT1) this.isChaningOUT1Lock = false;\r\n if (outName === VehicleLock.OUT2) this.isChaningOUT2Lock = false;\r\n }\r\n\r\n private onChangeLockStateVehicle(): void {\r\n this.onChangeLockStateWebSocketSubsc = this.newWebSocketHttpService.eventChangeVehicleData.subscribe(\r\n (res) => {\r\n const vehicleId = res?.Data?.Id;\r\n const outName = res?.Data?.O;\r\n\r\n if (vehicleId === this._vehicle.Id) {\r\n setTimeout(() => {\r\n this.setLockOnEventChangeVehicleData(outName);\r\n this.getHistoryVehicleLock();\r\n }, 1000);\r\n }\r\n }\r\n );\r\n }\r\n\r\n private onChangeVehicleData(idVehicle: number): void {\r\n this.onChangeVehicleDataSubsc?.unsubscribe();\r\n this.onChangeVehicleDataSubsc = this.newWebSocketHttpService.updatedVehicles\r\n .pipe(\r\n debounceTime(1000),\r\n switchMap(() => this.vehicle.getDetails$(idVehicle)),\r\n )\r\n .subscribe(\r\n (dataVehicle) => {\r\n this._vehicle = { ...dataVehicle } as any;\r\n this.setLastUpdateDate();\r\n }\r\n );\r\n }\r\n\r\n private showModalConfirmLock(data: any): void {\r\n const dialog = this.dialog.open(ModalWrapperComponent, { width: '100%', height: '100%', maxWidth: '100%', data });\r\n const sub = dialog.afterClosed().subscribe(\r\n (res) => {\r\n if (!res) {\r\n if (data.OutName === VehicleLock.OUT1) this.blockedOutFirst = !data.Value;\r\n if (data.OutName === VehicleLock.OUT2) this.blockedOutSecond = !data.Value;\r\n return;\r\n }\r\n if (data.OutName === VehicleLock.OUT1) this.isChaningOUT1Lock = true;\r\n if (data.OutName === VehicleLock.OUT2) this.isChaningOUT2Lock = true;\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private getStateVehicleLock(): void {\r\n const sub = this.webAccessService.GetLockVehicleState(this._vehicle.Id).subscribe(\r\n (data) => {\r\n this.onGetVehicleLockState(data.BlockerInfos);\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private getHistoryVehicleLock(): void {\r\n const getTitleTranslate = (type: VehicleHistoryLockType): string => {\r\n return this.translate.instant(`historyLockType-${type}`);\r\n };\r\n const sub = this.webAccessService.GetIgnitionBlockerAuditTrailForVehicle(this._vehicle.Id).subscribe(\r\n ({ Entries }) => {\r\n this.historyLock = Entries.map(item => ({\r\n ...item,\r\n Timestamp: `${item.Timestamp}Z`,\r\n Description: getTitleTranslate(item.EntryType),\r\n }));\r\n this.isLoadingHistoryLock = false;\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private onGetVehicleLockState(data: IBlockerInfo[]): void {\r\n const outFirstValue = data.find(item => item.OutName === VehicleLock.OUT1);\r\n const outSecondValue = data.find(item => item.OutName === VehicleLock.OUT2);\r\n this.isHiddenFirstLock = outFirstValue ? false : true;\r\n this.isHiddenSecondLock = outSecondValue ? false : true;\r\n this.blockedOutFirst = outFirstValue?.BlockerValue === VehicleBlockerValue.On;\r\n this.blockedOutSecond = outSecondValue?.BlockerValue === VehicleBlockerValue.On;\r\n this.isChaningOUT1Lock = outFirstValue?.BlockerValue === VehicleBlockerValue.ChangePending;\r\n this.isChaningOUT2Lock = outSecondValue?.BlockerValue === VehicleBlockerValue.ChangePending;\r\n this.blockedOutFirstConfirmValue = this.blockedOutFirst;\r\n this.blockedOutSecondConfirmValue = this.blockedOutSecond;\r\n this.isLoading = false;\r\n }\r\n\r\n private onChangeVehicleLockState(): void {\r\n const subFirst = this.onChangeOutFirst.subscribe(\r\n (data) => {\r\n const body = {\r\n VehicleId: this._vehicle.Id,\r\n OutName: VehicleLock.OUT1,\r\n Value: data,\r\n };\r\n this.showModalConfirmLock(body);\r\n }\r\n );\r\n this.ComponentSubsc.add(subFirst);\r\n\r\n const subSecond = this.onChangeOutSecond.subscribe(\r\n (data) => {\r\n const body = {\r\n VehicleId: this._vehicle.Id,\r\n OutName: VehicleLock.OUT2,\r\n Value: data,\r\n };\r\n this.showModalConfirmLock(body);\r\n }\r\n );\r\n this.ComponentSubsc.add(subSecond);\r\n }\r\n\r\n private setLastUpdateDate(): void {\r\n if (this._vehicle) {\r\n const v = this._vehicle;\r\n const vehicleIndicators: VehicleControlIndicator[] = v.ControlIndicators as VehicleControlIndicator[];\r\n const paramPosition: VehicleControlIndicator | undefined = vehicleIndicators?.find(x => x.Tp == 22);\r\n if (paramPosition && paramPosition.LV) {\r\n const lastPositionTime:Date = new Date(paramPosition.LV.T);\r\n const n = new Date();\r\n this.lastUpdated = Math.ceil((n.getTime() - lastPositionTime.getTime()) / 1000);\r\n }\r\n }\r\n }\r\n\r\n private checkIfUserCanChangeStateBlocker(): void {\r\n this.userCanChangeStateBlocker = this.permissionService.hasBlockerReadWrite();\r\n }\r\n\r\n}\r\n","export enum SentGeoStatus {\r\n Waiting = 0,\r\n Active = 1,\r\n Inactive = 2,\r\n Error = 3,\r\n};\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-sent-disable-modal',\r\n templateUrl: './sent-disable-modal.component.html',\r\n styleUrls: ['./sent-disable-modal.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SentDisableModalComponent {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef\r\n ) { }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
{{'confirmDisableSentSendTitle' | translate}}
\r\n
\r\n {{'confirmDisableSentSendDescription'|translate}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-sent-tab-no-active-service',\r\n templateUrl: './sent-tab-no-active-service.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./sent-tab-no-active-service.component.scss'],\r\n})\r\nexport class SentTabNoActiveServiceComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \"logo\r\n
\r\n
\r\n \r\n {{'labels.inactive'|translate}}\r\n \r\n
\r\n\r\n
\r\n \r\n {{'contactWithUsTitle'|translate}}
+48 609 111 114 {{'labels.or'|translate}} serwis@tekom.pl\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 \r\n \"\"\r\n \r\n {{ 'sentSending' | translate }}\r\n \r\n \r\n \r\n \r\n \"\"\r\n \r\n {{ 'sendingDataToSentOff' | translate }} {{ 'dataNoSendTitleSENT' | translate }} {{ 'toSENT' | translate }}\r\n \r\n \r\n \r\n\r\n \r\n \"\"\r\n \r\n {{ isSending ? ('processingChangeSENTStatusOn' | translate) : ('processingChangeSENTStatusOff' | translate) }}\r\n \r\n \r\n\r\n \r\n \"\"\r\n \r\n {{ 'sentSendDataWithDelay' | translate }}\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 {{'errorGPS'|translate}}\r\n \r\n
\r\n \r\n {{'lastSend'|translate}}: {{ lastUpdated | statusTimeFormat }}\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { WebAccessService } from '@commons/services/web.access/web-access.service';\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { IVirtualSentGeoStatus } from '@src/app/interfaces/vehicle.interface';\r\nimport { SentGeoStatus } from '@commons/enums/sent-geo-status.enum';\r\nimport { calculateDateLastUpdate } from '@src/app/utils/last-update';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SentDisableModalComponent } from './sent-disable-modal/sent-disable-modal.component';\r\n\r\n@Component({\r\n selector: 'app-sent-tab',\r\n templateUrl: './sent-tab.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./sent-tab.component.scss'],\r\n})\r\nexport class SentTabComponent implements OnInit, OnDestroy {\r\n\r\n @Input('vehicleData') public set setVehicleData(data: Vehicle) {\r\n this._vehicleData = data;\r\n this.setVirtualSentGeoStatus();\r\n this.setServiceSENTStatus();\r\n\r\n if (this.isActiveSENTGeo && this.isFirstInit) {\r\n this.isFirstInit = false;\r\n this.getSENTGeoSendingStatus();\r\n }\r\n }\r\n\r\n public _vehicleData: Vehicle;\r\n public virtualSentGeoStatus: IVirtualSentGeoStatus;\r\n public isActiveSENTGeo: boolean;\r\n public isLoadingSENTGeoActiveStatus: boolean = true;\r\n public isSending: boolean;\r\n public isTheProcessOfSwitchingOn: boolean; // zmieniono switch na true\r\n public isFirstInit: boolean = true;\r\n public lastUpdated?: number;\r\n\r\n private readonly ComponentSubsc: Subscription = new Subscription();\r\n public readonly SENT_GEO_STATUS = SentGeoStatus;\r\n\r\n private get vehicleId(): number {\r\n return this._vehicleData.Id;\r\n }\r\n\r\n public get SentGeoCurrentState(): SentGeoStatus {\r\n return this.virtualSentGeoStatus?.LV.V;\r\n }\r\n\r\n constructor(\r\n private webAccessService: WebAccessService,\r\n private changeDetRef: ChangeDetectorRef,\r\n public dialog: MatDialog,\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n }\r\n\r\n public copyText(text: string): void {\r\n navigator.clipboard.writeText(text);\r\n }\r\n\r\n public copyAll(): void {\r\n navigator.clipboard.writeText(`NR: ${ this._vehicleData.BN }, PIN: ${ this._vehicleData.DP }`);\r\n }\r\n\r\n public onSwitchChangeValue(): void {\r\n this.changeSwitchLoading(true);\r\n this.onSetNewSendingValue();\r\n }\r\n\r\n public showModalConfirmUnLock(): void {\r\n const dialog = this.dialog.open(SentDisableModalComponent, { width: '100%', height: '100%', maxWidth: '100%' });\r\n const sub = dialog.afterClosed().subscribe(\r\n (res) => {\r\n if (res) {\r\n this.isSending = false;\r\n this.onSwitchChangeValue();\r\n return;\r\n }\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n public getSENTGeoSendingStatus(): void {\r\n const sub = this.webAccessService.GetSendToSentGeo(this.vehicleId).subscribe({\r\n next: ({ SendToSentGeo }) => {\r\n this.isSending = SendToSentGeo;\r\n this.isLoadingSENTGeoActiveStatus = false;\r\n this.changeDetRef.markForCheck();\r\n }\r\n });\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private setVirtualSentGeoStatus(): void {\r\n this.virtualSentGeoStatus = this._vehicleData.ControlIndicators?.find(item => item.Tp === 1005) as IVirtualSentGeoStatus;\r\n if (this.virtualSentGeoStatus?.LV) {\r\n this.lastUpdated = calculateDateLastUpdate(this.virtualSentGeoStatus.LV.T);\r\n this.changeDetRef.markForCheck();\r\n }\r\n }\r\n\r\n private setServiceAsOff(): void {\r\n this.isActiveSENTGeo = false;\r\n this.isLoadingSENTGeoActiveStatus = false;\r\n this.changeDetRef.markForCheck();\r\n }\r\n\r\n private setServiceSENTStatus(): void {\r\n if (this._vehicleData?.RS) {\r\n this.isActiveSENTGeo = true;\r\n return;\r\n }\r\n this.setServiceAsOff();\r\n }\r\n\r\n private onSetNewSendingValue(): void {\r\n const sub = this.webAccessService.SetSendToSentGeo({ IdVehicle: this.vehicleId, SendToSentGeo: this.isSending }).subscribe(\r\n () => {\r\n this.changeSwitchLoading(false);\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private changeSwitchLoading(value: boolean): void {\r\n this.isTheProcessOfSwitchingOn = value;\r\n this.changeDetRef.markForCheck();\r\n }\r\n\r\n}\r\n","export function calculateDateLastUpdate(date: string): number {\r\n if (date === '0001-01-01T00:00:00') {\r\n return null as any;\r\n }\r\n const hasZone = date.includes('Z');\r\n\r\n if (!hasZone) {\r\n date += 'Z';\r\n }\r\n\r\n const lastPositionTime: Date = new Date(date);\r\n const n = new Date();\r\n return Math.ceil((n.getTime() - lastPositionTime.getTime()) / 1000);\r\n};\r\n","
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n {{'vehicle-details-tabs.parameters' | translate}}\r\n
\r\n\r\n
\r\n {{'vehicle-details-tabs.routes' | translate}}\r\n
\r\n\r\n
\r\n {{'vehicle-details-tabs.tacho' | translate}}\r\n
\r\n\r\n
\r\n {{'vehicle-details-tabs.etoll' | translate}}\r\n
\r\n \r\n
\r\n {{'Sent' | translate}}\r\n
\r\n\r\n
\r\n {{'blocked'|translate}}\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 \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
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport {MapService} from \"@commons/services/map/map/map.service\";\r\n\r\nimport {PermissionService} from \"@shared/services/permission.service\";\r\nimport {VehicleUIEventsService} from \"@layout/vehicle/services/vehicle-uievents.service\";\r\nimport { VehicleService } from '@commons/services/vehicle/vehicle.service';\r\nimport { NewVehiclesHttpService } from '@shared/services-http/new-vehicles-http.service';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-details-tabs',\r\n styleUrls: ['./vehicle-details-tabs.component.less'],\r\n templateUrl: './vehicle-details-tabs.component.html'\r\n})\r\nexport class VehicleDetailsTabsComponent implements OnInit {\r\n\r\n topPosition?: number;\r\n\r\n @Output()\r\n public onTabSelected: EventEmitter = new EventEmitter();\r\n\r\n /**\r\n * pojazd\r\n */\r\n @Input('vehicle') public set vehicleData(data: Vehicle) {\r\n if (data?.Id !== this._vehicle?.Id) {\r\n this.selectTab('params');\r\n this.checkBlockerInfo(data.Id);\r\n }\r\n this._vehicle = data;\r\n }\r\n public _vehicle: Vehicle;\r\n\r\n /**\r\n * domyslna zakladka\r\n */\r\n public tab?: string;\r\n /**\r\n * czy użytkownik ma dostęp do zakładki trasy\r\n */\r\n public isRoutesEnabled = false;\r\n public isVisibleBlockTab: boolean;\r\n\r\n /**\r\n * czy użytkownik ma dostęp do zakładki e-Toll\r\n */\r\n public isETollEnabled = false;\r\n\r\n public selectTab(tab: string) {\r\n this.setCurrentTabNameInUrl(tab, this.tab);\r\n this.tab = tab;\r\n this.onTabSelected.emit(this.tab);\r\n\r\n const isRoutesTab = this.tab === 'routes';\r\n this.vehicleUIEventsService.isRoutesTabSelected$.next(isRoutesTab);\r\n }\r\n\r\n /**\r\n * konstruktor\r\n */\r\n constructor(\r\n private $route: ActivatedRoute,\r\n private location: Location,\r\n private router: Router,\r\n private permissionService: PermissionService,\r\n private vehicleUIEventsService: VehicleUIEventsService,\r\n private newVehiclesHttpService: NewVehiclesHttpService,\r\n ) {\r\n this.isRoutesEnabled = this.permissionService.hasVehicleRoutes();\r\n this.isETollEnabled = this.permissionService.hasEToll();\r\n }\r\n\r\n ngOnInit() {\r\n const _tab = this.$route.snapshot.queryParamMap.get('tab') || 'params';\r\n this.selectTab(_tab);\r\n }\r\n\r\n private setCurrentTabNameInUrl(newTabName: string, oldTabName?: string) {\r\n const path = this.location.path();\r\n if (path.indexOf('&tab=') > -1)\r\n this.location.go(this.location.path().replace(`&tab=${oldTabName}`, `&tab=${newTabName}`));\r\n else\r\n this.location.go(`${this.location.path()}&tab=${newTabName}`);\r\n }\r\n\r\n public setTop(top: number): void {\r\n this.topPosition = top;\r\n }\r\n\r\n private checkBlockerInfo(vehicleId: number): void {\r\n const ifHasPermissionToVisibleBlockedTab = this.permissionService.hasBlockerRead() || this.permissionService.hasBlockerReadWrite();\r\n if (!ifHasPermissionToVisibleBlockedTab) {\r\n this.isVisibleBlockTab = false;\r\n return;\r\n }\r\n const blockerInfo = this.newVehiclesHttpService.vehiclesBlockerInfos.get(`${vehicleId}OUT1`) || this.newVehiclesHttpService.vehiclesBlockerInfos.get(`${vehicleId}OUT2`);\r\n this.isVisibleBlockTab = blockerInfo ? true : false;\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tk-common-placeholder',\r\n styleUrls: ['./common-placeholder.component.less'],\r\n templateUrl: './common-placeholder.component.html'\r\n})\r\nexport class CommonPlaceholderComponent {\r\n}\r\n","
\r\n

\r\n

\r\n
\r\n
","export enum VehicleIndicatorTypeEnum {\r\n\r\n RPM = 0,\r\n GPS = 1,\r\n GSM = 2,\r\n Fuel = 3,\r\n CANFuel = 4,\r\n Power = 5,\r\n Speed = 6,\r\n Ignition = 7,\r\n Lifter = 8,\r\n Cap = 9\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n
\r\n {{ vehicle.Nm }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ vehicle.Nm }}\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\r\n
\r\n","import { Component, OnChanges, OnDestroy, Input, SimpleChanges, HostListener, ViewChild, ElementRef, OnInit } from '@angular/core';\r\n\r\nimport {Subject, Subscription, tap } from 'rxjs';\r\n\r\nimport { VehicleControlIndicator } from '../../../../commons/models/domain/VehicleControlIndicator';\r\nimport { Vehicle } from '../../../../commons/models/domain/Vehicle';\r\nimport { Driver } from '../../../../commons/models/domain/Driver';\r\nimport { VehicleIndicatorTypeEnum } from '@commons/enums/vehicle-indicator-type.enum';\r\nimport { MapService } from '@commons/services/map/map/map.service';\r\nimport { MapConfigService } from '@commons/services/map/config/map-config.service';\r\nimport { ParameterTypeEnum } from '@commons/enums/parameter-type.enum';\r\nimport { UpdateVehicleNameRequest } from '../../../../commons/models/remote.request/UpdateVehicleNameRequest';\r\nimport { VehicleService } from '@commons/services/vehicle/vehicle.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PermissionService } from '@shared/services/permission.service';\r\n\r\n@Component({\r\n selector: 'tk-vehicle-details-header',\r\n styleUrls: ['./vehicle-details-header.component.less'],\r\n templateUrl: './vehicle-details-header.component.html'\r\n})\r\nexport class VehicleDetailsHeaderComponent implements OnChanges, OnDestroy, OnInit {\r\n\r\n @ViewChild('vehicleName')inputRef?: ElementRef\r\n\r\n @HostListener('keydown.enter', ['$event'])\r\n saveByKeyboard(){\r\n if(this.editMode){\r\n this.saveVehicleName(this.inputRef?.nativeElement.value)\r\n }\r\n }\r\n\r\n @HostListener('keydown.esc', ['$event'])\r\n leaveEdit()\r\n {\r\n if(this.editMode){\r\n this.editMode = false\r\n }\r\n }\r\n\r\n /**\r\n * Vehicle\r\n */\r\n @Input() public vehicle?: Vehicle;\r\n\r\n /**\r\n * Driver\r\n */\r\n public driver?: Driver;\r\n\r\n /**\r\n * Driver subscription\r\n */\r\n public driverSub?: Subscription;\r\n\r\n /**\r\n * Subject for pushing vehicle value changes\r\n */\r\n public vehicleValueChangeSubject: Subject = new Subject();\r\n\r\n /**\r\n *\r\n */\r\n private readonly paramTypesToShow = [1, 100, 7];\r\n\r\n /**\r\n * Vehicle params\r\n */\r\n public params: VehicleControlIndicator[] = [];\r\n\r\n /**\r\n * Vehicle params subscription\r\n */\r\n private paramsSub: Subscription;\r\n\r\n /**\r\n * Speed indicator\r\n */\r\n public speed?: VehicleControlIndicator;\r\n\r\n /**\r\n * fuel indicator\r\n */\r\n public fuel?: VehicleControlIndicator;\r\n\r\n /**\r\n * fuel indicator\r\n */\r\n public engineSpeed?: VehicleControlIndicator;\r\n\r\n\r\n /**\r\n *\r\n */\r\n public selectedDotIndex = 0;\r\n\r\n /**\r\n *\r\n */\r\n public VehicleIndicatorType = VehicleIndicatorTypeEnum;\r\n\r\n /**\r\n * czy nazwa pojazdu jest w trybie edycji\r\n */\r\n public editMode: boolean = false;\r\n\r\n public editValue?: string\r\n\r\n /**\r\n * Returns analog params\r\n */\r\n public get analogParams(): VehicleControlIndicator[] {\r\n return this.params ? this.params.filter(param => param && param.LV.V !== 2) : [];\r\n }\r\n\r\n /**\r\n * Returns binary params\r\n */\r\n public get binaryParams(): VehicleControlIndicator[] {\r\n return this.params ? this.params.filter(param => param && param.LV.V === 2) : [];\r\n }\r\n\r\n public selectDotIndex(idx: number) {\r\n this.selectedDotIndex = idx;\r\n }\r\n\r\n public hasPermissionToEditVehicleName: boolean;\r\n\r\n constructor(\r\n private $map: MapService,\r\n private $mapConfig: MapConfigService,\r\n private $vehicleService: VehicleService,\r\n private translate: TranslateService,\r\n private permissionService: PermissionService,\r\n ) {\r\n\r\n // pobranie danych\r\n this.paramsSub = this.vehicleValueChangeSubject\r\n .subscribe(result => {\r\n this.setEditMode(false);\r\n result.ControlIndicators = result.ControlIndicators || [];\r\n\r\n // przepisanie konkretnych\r\n this.speed = result.ControlIndicators.find(p => p && p.Tp === ParameterTypeEnum.Speed);\r\n if (!this.speed) {\r\n this.speed = this.createVehicleControlIndicator(ParameterTypeEnum.Speed, 'Prędkość', 0);\r\n }\r\n else if (!this.speed.LV) {\r\n this.speed.LV = { V: 0 };\r\n }\r\n\r\n this.fuel = result.mainFuel;\r\n if (!this.fuel) {\r\n this.fuel = this.createVehicleControlIndicator(ParameterTypeEnum.Fuel, \"Paliwo\", 0);\r\n }\r\n else if (!this.fuel.LV) {\r\n this.fuel.LV = { V: 0 };\r\n }\r\n\r\n this.engineSpeed = result.ControlIndicators.find(p => p && p.Tp === ParameterTypeEnum.EngineSpeed);\r\n if (!this.engineSpeed) {\r\n this.engineSpeed = this.createVehicleControlIndicator(ParameterTypeEnum.EngineSpeed, \"Obroty silnika\", 0);\r\n }\r\n else if (!this.engineSpeed.LV) {\r\n this.engineSpeed.LV = { V: 0 };\r\n }\r\n\r\n this.params = [];\r\n // for (const paramType of this.paramTypesToShow) {\r\n // const param = result.ControlIndicators.find(p => p && p.Type === paramType);\r\n // if (param) {\r\n // this.params.push(param);\r\n // }\r\n // }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.hasPermissionToEditVehicleName = this.permissionService.hasCardFiles_FCardCars();\r\n }\r\n\r\n createVehicleControlIndicator(paramType: number, name: string, lastValue: number): VehicleControlIndicator {\r\n let indicator = {} as VehicleControlIndicator;\r\n indicator.Tp = paramType;\r\n indicator.Nm = name;\r\n indicator.LV = { V: lastValue };\r\n return indicator;\r\n }\r\n\r\n /**\r\n * Ng on changes lifecycle hook\r\n */\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n // Push new vehicle\r\n if (changes && changes['vehicle']) {\r\n const value = changes['vehicle'].currentValue;\r\n if (value) {\r\n // console.log(' details = this.vehicle?.DR' + this.vehicle?.DR);\r\n this.vehicleValueChangeSubject.next(new Vehicle(value, this.translate));\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Ng on destroy lifecycle hook\r\n */\r\n public ngOnDestroy(): void {\r\n // odwiazanie ewentualnej istniejacje\r\n if (this.paramsSub) {\r\n this.paramsSub.unsubscribe();\r\n }\r\n }\r\n\r\n public getSpeedIndicatorValue(speed: VehicleControlIndicator): number {\r\n if (!speed || !speed.LV) {\r\n return 220;\r\n }\r\n\r\n const value = speed.LV.V;\r\n return Math.round(220.0 - (value / 200.0 * 220.0));\r\n }\r\n\r\n\r\n public closeClick() {\r\n this.$mapConfig.setCurrentVehicleId('tk-vehicle-details', undefined);\r\n this.$map.centerMap();\r\n }\r\n\r\n public setEditMode(editMode: boolean) {\r\n this.editValue = this.vehicle?.Nm\r\n this.editMode = editMode;\r\n }\r\n\r\n public saveVehicleName(vehicleName: string) {\r\n this.updateVehicleName(vehicleName);\r\n this.editMode = false;\r\n\r\n }\r\n\r\n public closeEditVehicleName() {\r\n this.editMode = false;\r\n }\r\n\r\n updateVehicleName(newVehicleName: string) {\r\n const request: UpdateVehicleNameRequest = {\r\n IdVehicle: this.vehicle!.Id!,\r\n VehicleName: newVehicleName\r\n };\r\n\r\n this.$vehicleService.updateVehicleName(request)\r\n .pipe(tap(result=>{\r\n this.vehicle!.Nm = newVehicleName\r\n }))\r\n .subscribe();\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 \r\n
\r\n
\r\n","import {Component, ElementRef, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {animate, sequence, style, transition, trigger} from '@angular/animations';\r\n\r\nimport {filter, Observable, Subscription, switchMap, tap} from 'rxjs';\r\n\r\nimport {LatLng} from 'leaflet';\r\n\r\nimport {PanelNavigationService} from '@commons/services/navigation/panel-navigation.service';\r\nimport {VehicleService} from '@commons/services/vehicle/vehicle.service';\r\nimport {Vehicle} from '../../../commons/models/domain/Vehicle';\r\nimport {MapService} from '@commons/services/map/map/map.service';\r\nimport {MapConfigService} from '@commons/services/map/config/map-config.service';\r\nimport {VehicleDetailsTabsComponent} from './tabs/vehicle-details-tabs.component';\r\nimport {NewWebSocketHttpService} from \"@shared/websocket/new-web-socket-http.service\";\r\n\r\n@Component({\r\n selector: 'tk-vehicle-details',\r\n styleUrls: ['./vehicle-details.component.less'],\r\n templateUrl: './vehicle-details.component.html',\r\n animations: [\r\n trigger('openClose', [\r\n transition(\":enter\", [sequence([style({ left: '416px', 'z-index': 0 }), animate('0.1s', style({ transform: 'translateX(-320px)', 'z-index': 400 }) )] )]),\r\n transition(\":leave\", [sequence([style({ left: '416px', 'z-index': 0 }), animate('0.1s', style({ left: '56px' }) )] )]),\r\n ])\r\n ]\r\n})\r\nexport class VehicleDetailsComponent implements OnInit, OnDestroy {\r\n\r\n /**\r\n * Flag indicating whether this component is visible\r\n */\r\n public isVisible = false;\r\n\r\n /**\r\n * flaga ladowania\r\n */\r\n public isLoading = true;\r\n\r\n /**\r\n * Vehicle to show\r\n */\r\n public vehicle?: Vehicle;\r\n\r\n public vehicleId?: number;\r\n\r\n /**\r\n * Subscription to url changes stream\r\n */\r\n private navSub: Subscription;\r\n\r\n\r\n /**\r\n * Sub for switch follow vehicle status\r\n */\r\n private followSub: Subscription;\r\n\r\n\r\n /**\r\n * obserwacja zmian\r\n */\r\n private vehicleChangeSub?: Subscription;\r\n\r\n /**\r\n * kalsy dla zakladki\r\n */\r\n public styleClass: Array = [];\r\n\r\n\r\n /**\r\n * czy podazac za pojazdem\r\n */\r\n private followVehicle = true;\r\n\r\n /**\r\n * pierwszy zoom po otwarciu\r\n */\r\n private isFirstZoom = true;\r\n\r\n private ComponentSubsc: Subscription = new Subscription();\r\n\r\n /**\r\n *\r\n * @param $nav\r\n * @param $vehicle\r\n * @param $activatedRoute\r\n */\r\n constructor(\r\n private $nav: PanelNavigationService,\r\n private $vehicleService: VehicleService,\r\n private $activatedRoute: ActivatedRoute,\r\n private $map: MapService,\r\n private $mapConfig: MapConfigService,\r\n private newWebSocketHttpService: NewWebSocketHttpService\r\n ) {\r\n\r\n this.isLoading = true;\r\n\r\n // Build stream of url changes\r\n this.navSub = this.$nav.getVisibilitySubject().pipe(\r\n tap(result => {\r\n if (this.vehicleChangeSub) {\r\n this.vehicleChangeSub.unsubscribe();\r\n }\r\n }),\r\n filter(item => (\r\n !item.subsites\r\n || item.subsites.indexOf('vehicle-details') !== -1\r\n || item.subsites.indexOf('vehicle-details-only') !== -1\r\n )))\r\n .subscribe(change => {\r\n this.isVisible = change.show;\r\n this.styleClass = (change.subsites || []).map((i: any) => {\r\n switch (i) {\r\n case 'vehicle-details-only':\r\n return 'left-first-level-container';\r\n default:\r\n return 'left-second-level-container';\r\n }\r\n });\r\n\r\n const vid = parseInt(change.id, 10);\r\n this.vehicleId = vid;\r\n this.$mapConfig.setCurrentVehicleId('tk-vehicle-details', this.vehicleId);\r\n this.isFirstZoom = true;\r\n\r\n const sub = this.$vehicleService.getDetails$(this.vehicleId).subscribe(v => {\r\n this.vehicle = v;\r\n this.followVehicle = true;\r\n this.goToVehicleLocation('vehicle -> details -> getVehicleData');\r\n this.$vehicleService.setFollowVehicleStatus(true);\r\n this.subscribeForChanges();\r\n this.isLoading = false;\r\n setTimeout(() => this.adjustContentHeight(), 100);\r\n });\r\n this.ComponentSubsc.add(sub);\r\n });\r\n\r\n // Listinig for changes of follow vehicle status\r\n this.followSub = this.$vehicleService\r\n .getFollowVehicleSubject()\r\n .subscribe(status => {\r\n setTimeout(() => {\r\n if (this.followVehicle !== status) {\r\n this.followVehicle = status;\r\n if (this.followVehicle) {\r\n this.goToVehicleLocation('vehicle -> details -> getFollowVehicleSubject');\r\n }\r\n }\r\n }, 0);\r\n });\r\n\r\n }\r\n\r\n private subscribeForChanges() {\r\n // odwiazanie ewentualnej istniejacje\r\n if (this.vehicleChangeSub) {\r\n this.vehicleChangeSub.unsubscribe();\r\n }\r\n\r\n this.vehicleChangeSub = this.newWebSocketHttpService.updatedVehicles.subscribe(vehiclesList => {\r\n const current = vehiclesList.find(v => v.Id === this.vehicleId);\r\n\r\n if (!current)\r\n return;\r\n\r\n this.vehicle = {...current} as Vehicle;\r\n\r\n // console.log('CHANGES', this.vehicle);\r\n\r\n this.goToVehicleLocation('vehicle -> details -> OnVehicleDataChangeNotification');\r\n this.isLoading = false;\r\n setTimeout(() => this.adjustContentHeight(), 100);\r\n });\r\n }\r\n\r\n public ngOnInit(): void {\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n if (this.navSub) {\r\n this.navSub.unsubscribe();\r\n }\r\n if (this.vehicleChangeSub) {\r\n this.vehicleChangeSub.unsubscribe();\r\n }\r\n if (this.followSub) {\r\n this.followSub.unsubscribe();\r\n }\r\n this.followVehicle = false;\r\n }\r\n\r\n /**\r\n * mapa\r\n */\r\n private goToVehicleLocation(source?: string): void {\r\n if (!this.followVehicle) return;\r\n\r\n if (this.vehicle && this.vehicle.LL) {\r\n\r\n const _lat = parseFloat(this.vehicle.LL.Lt + '');\r\n const _lng = parseFloat(this.vehicle.LL.Ln + '');\r\n\r\n if (_lat && _lat !== 361 && _lng && _lng !== 361) {\r\n const lat = (_lat);\r\n const lng = (_lng); // - 0.001);\r\n const coords = new LatLng(lat, lng);\r\n this.$map.showPointWithZoom(coords);\r\n this.isFirstZoom = false;\r\n }\r\n }\r\n }\r\n\r\n @ViewChild('header', {read: ElementRef }) private headerElement?: ElementRef;\r\n @ViewChild(VehicleDetailsTabsComponent) private tabsElement?: VehicleDetailsTabsComponent;\r\n\r\n private adjustContentHeight(): void {\r\n if (this.headerElement && this.tabsElement) {\r\n const headerChildNodes = Array.from(this.headerElement.nativeElement.childNodes);\r\n const vehicleDetailsHeader = headerChildNodes.find(x => x.className.toString().toLowerCase().includes('vehicle-details-header'));\r\n const headerHeight = vehicleDetailsHeader.offsetHeight;\r\n const headerOffset = vehicleDetailsHeader.offsetTop;\r\n const margin = 15;\r\n this.tabsElement.setTop(headerHeight + headerOffset + margin);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StringService {\r\n\r\n constructor() { }\r\n\r\n truncate(name: string, maxLength = 25): string {\r\n return name.slice(0, maxLength) + (name.length > maxLength ? '...' : '');\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{initials}}\r\n \r\n
\r\n\r\n
\r\n
{{fullName}}
\r\n\r\n
\r\n \r\n {{phone}}\r\n \r\n {{'labels.none' | translate}}\r\n \r\n
\r\n\r\n
\r\n \r\n {{email}}\r\n {{'labels.none' | translate}}\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{initials}}\r\n \r\n
\r\n\r\n
\r\n
{{fullName}}
\r\n
\r\n
\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\nimport { Driver } from '@commons/models/domain/Driver';\r\nimport {StringService} from \"@shared/services/string.service\";\r\n\r\n@Component({\r\n selector: 'wm-driver-list-item',\r\n templateUrl: './driver-list-item.component.html',\r\n})\r\nexport class DriverListItemComponent implements OnInit {\r\n\r\n @Input() driver!: Driver;\r\n @Input() isSelected!: boolean;\r\n\r\n get initials(): string {\r\n const result = this.driver.FN[0]?.toUpperCase() + ' ' + this.driver.LN[0].toUpperCase();\r\n return result;\r\n }\r\n\r\n get fullName(): string {\r\n return this.stringService.truncate(this.driver.FN + ' ' + this.driver.LN);\r\n }\r\n\r\n get phone(): string {\r\n let result = this.driver.CN?.length > 0 ? this.driver.CN : this.driver.Pn;\r\n return this.stringService.truncate(result);\r\n }\r\n\r\n get email(): string {\r\n return this.stringService.truncate(this.driver.Em);\r\n }\r\n\r\n constructor(\r\n private stringService: StringService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n {{'worker.title' | translate}}\r\n \r\n
\r\n\r\n \r\n {{'labels.search' | translate | titlecase}}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n {{'worker.active' | translate}} ({{driversCount}})\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n {{'worker.first-save' | translate}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{'labels.loading-data' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{'worker.not-added-yet' | translate}}\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
\r\n {{'worker.archive' | translate}} ({{archiveWorkersCount}})\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{'labels.loading-data' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{'worker.no-archive-yet' | translate}}\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\r\n
\r\n","import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {animate, sequence, style, transition, trigger} from '@angular/animations';\r\nimport {FormBuilder, FormControl} from \"@angular/forms\";\r\nimport {CdkVirtualForOf} from '@angular/cdk/scrolling';\r\n\r\nimport {filter, take} from 'rxjs';\r\n\r\nimport {PanelNavigationService} from '@commons/services/navigation/panel-navigation.service';\r\n\r\nimport {Driver} from '../../../commons/models/domain/Driver';\r\n\r\nimport {WorkerHttpService} from \"@layout/driver/http-services/worker-http.service\";\r\nimport {WorkerService} from \"@layout/driver/services/worker.service\";\r\n\r\nimport {WorkerModel} from \"@shared/models/worker.model\";\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\nimport {NewDataStoreService} from \"@shared/services/new-data-store.service\";\r\nimport {AuthenticationService} from \"@shared/services/authentication/authentication.service\";\r\n\r\n@Component({\r\n selector: 'wm-driver-list-lite',\r\n templateUrl: './driver-list-lite.component.html',\r\n styleUrls: ['./driver-list-lite.component.less'],\r\n animations: [\r\n trigger('openClose', [\r\n transition(\":enter\", [style({transform: 'translateX(-264px)'}), animate('0.1s')]),\r\n transition(\":leave\", [sequence([style({left: '56px', 'z-index': 0}), animate('0.1s', style({left: '-264px'}))])]),\r\n ])\r\n ]\r\n})\r\nexport class DriverListLiteComponent extends BaseComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild(CdkVirtualForOf)\r\n set setWorkersList(workersList: CdkVirtualForOf) {\r\n if (workersList && !this.isSubToWorkersListViewChange) {\r\n this.isSubToWorkersListViewChange = true;\r\n this.subToWorkersListViewChange(workersList);\r\n }\r\n }\r\n\r\n selectedDriverId?: number;\r\n isVisible = false;\r\n allDrivers?: Driver[];\r\n displayedDrivers?: Driver[];\r\n allArchiveWorkers: Driver[] = [];\r\n displayedArchiveWorkers: Driver[] = [];\r\n searchCtrl = new FormControl('');\r\n form = this.formBuilder.group({\r\n search: this.searchCtrl,\r\n });\r\n isLoadingWorkers = true;\r\n isLoadingArchiveDrivers = true;\r\n isShown = false;\r\n isSubToWorkersListViewChange = false;\r\n\r\n get isNewDriverButtonVisible(): boolean {\r\n return this.workerService.newUnsavedDriver == null;\r\n }\r\n\r\n get driversCount(): number {\r\n return this.displayedDrivers != null ? this.displayedDrivers.length : 0;\r\n }\r\n\r\n get archiveWorkersCount(): number {\r\n return this.displayedArchiveWorkers != null ? this.displayedArchiveWorkers.length : 0;\r\n }\r\n\r\n get hasAnyDrivers(): boolean {\r\n return this.allDrivers != null && this.allDrivers.length > 0;\r\n }\r\n\r\n get hasAnyArchiveDrivers(): boolean {\r\n return this.allArchiveWorkers != null && this.allArchiveWorkers.length === 0;\r\n }\r\n\r\n constructor(\r\n private panelNavigationService: PanelNavigationService,\r\n private driverHttpService: WorkerHttpService,\r\n private workerService: WorkerService,\r\n private formBuilder: FormBuilder,\r\n private newNavigationService: NewNavigationService,\r\n private newDataStoreService: NewDataStoreService,\r\n private authenticationService: AuthenticationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadWorkers();\r\n this.subToSearchValueChanges();\r\n this.subToVisibility();\r\n this.subToWorkerAdded();\r\n this.subToWorkerUpdated();\r\n this.subToWorkerArchived();\r\n this.subToWorkerUnarchived();\r\n this.subToWorkerDetailsPanelClosed();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n onSelect(driver: Driver): void {\r\n if (driver.Id && this.selectedDriverId === driver.Id) {\r\n this.selectedDriverId = undefined;\r\n this.newNavigationService.toWorkersList();\r\n } else {\r\n this.selectedDriverId = driver.Id;\r\n this.newNavigationService.toWorkerDetails(this.selectedDriverId);\r\n }\r\n }\r\n\r\n onAddDriver() {\r\n const newDriver = {\r\n Id: 0,\r\n FN: ' ',\r\n LN: ' ',\r\n } as Driver;\r\n this.allDrivers?.unshift(newDriver);\r\n this.displayedDrivers = this.allDrivers;\r\n this.refreshListAfterDriverAdd();\r\n this.selectedDriverId = newDriver.Id;\r\n this.workerService.newUnsavedDriver = newDriver;\r\n this.onSelect(newDriver);\r\n }\r\n\r\n onSelectedTabChanged() {\r\n this.newNavigationService.toWorkersList();\r\n }\r\n\r\n onClose() {\r\n this.newNavigationService.toMainPanel();\r\n this.removeNewWorker();\r\n }\r\n\r\n isItemSelected(driver: Driver): boolean {\r\n return this.selectedDriverId === driver.Id;\r\n }\r\n\r\n private removeNewWorker() {\r\n this.workerService.newUnsavedDriver = undefined;\r\n this.allDrivers?.splice(0, 1);\r\n this.refreshListAfterDriverAdd();\r\n }\r\n\r\n private subToWorkersListViewChange(workersList: CdkVirtualForOf) {\r\n //wczytanie przez kontrolkę listy prawocników trwa chiwilę i był problem z pokazaniem że pracownicy jeszcze się wczytują\r\n //pomimo tego że kontrolka listy dostała już dane ale jeszcze ich nie wyświetliła dlatego czekam na event narysowania danych prze tą kontrolkę\r\n //im większa lista tym ten problem był bardziej zauważalny\r\n this.addToUnsubscribe(\r\n workersList.viewChange.subscribe(() => {\r\n if (this.isLoadingWorkers) {\r\n this.isLoadingWorkers = false;\r\n this.loadArchiveDrivers();\r\n }\r\n }));\r\n }\r\n\r\n private subToVisibility() {\r\n this.addToUnsubscribe(this.panelNavigationService.getVisibilitySubject()\r\n .pipe(filter(item => (\r\n !item.subsites\r\n || item.subsites.indexOf('driver-lite') !== -1\r\n || item.subsites.indexOf('driver-details') !== -1\r\n )))\r\n .subscribe(change => {\r\n if (change.id) {\r\n this.selectedDriverId = parseInt(change.id, 10);\r\n } else {\r\n this.selectedDriverId = undefined;\r\n }\r\n this.isVisible = change.show;\r\n if (this.isVisible && !this.isShown) {\r\n this.isShown = true;\r\n }\r\n }));\r\n }\r\n\r\n private refreshListAfterDriverAdd() {\r\n //obejście nie pokazywania nowego elementu na liście prze wykożystanie wirualnego scrolla\r\n this.searchCtrl.setValue('_');\r\n this.searchCtrl.setValue('');\r\n }\r\n\r\n private subToSearchValueChanges() {\r\n this.addToUnsubscribe(\r\n this.searchCtrl.valueChanges.subscribe(() => {\r\n if (this.searchCtrl.valid || this.searchCtrl.value?.length === 0) {\r\n const filter = (this.searchCtrl.value ?? '').toLowerCase();\r\n this.displayedDrivers = this.allDrivers?.filter(x => (x.FN + x.LN).toLowerCase().includes(filter));\r\n this.displayedArchiveWorkers = this.allArchiveWorkers?.filter(x => (x.FN + x.LN).toLowerCase().includes(filter));\r\n }\r\n }));\r\n }\r\n\r\n private convertWorkerModelToDriver(x: WorkerModel[]): Driver[] {\r\n return x.map(w => {\r\n Id: w.Id,\r\n FN: w?.FirstName,\r\n LN: w?.LastName,\r\n Pn: w.PhoneNumber,\r\n CN: w.CellphoneNumber,\r\n IsArchive: true,\r\n });\r\n }\r\n\r\n private displayWorkers(workers: Driver[]) {\r\n if (workers.length === 0) {\r\n //jeśli nie ma pracowników to kontrolka listy się nie narysuje wiec trzeba wymusić wczytania pracowników archiwalnych\r\n this.isLoadingWorkers = false;\r\n this.loadArchiveDrivers();\r\n }\r\n\r\n this.displayedDrivers =\r\n this.allDrivers =\r\n this.workerService.allWorkers = workers.sort(this.sortDrivers);\r\n }\r\n\r\n private loadWorkers() {\r\n this.addToUnsubscribe(\r\n this.newDataStoreService.driversLoaded.subscribe(result => {\r\n this.displayWorkers(result);\r\n }));\r\n }\r\n\r\n private displayArchiveWorkers(workers: Driver[]) {\r\n this.displayedArchiveWorkers =\r\n this.allArchiveWorkers =\r\n this.workerService.archivedDrivers = workers.sort(this.sortDrivers);\r\n }\r\n\r\n private loadArchiveDrivers() {\r\n this.authenticationService.isAuthenticated$.pipe(take(1)).subscribe(isAuthenticated => {\r\n if (isAuthenticated && !this.authenticationService.isLoggedByToken) {\r\n this.driverHttpService.getArchivedWorkers().subscribe(result => {\r\n this.isLoadingArchiveDrivers = false;\r\n this.displayArchiveWorkers(this.convertWorkerModelToDriver(result));\r\n });\r\n }\r\n });\r\n }\r\n\r\n private sortDrivers(a: Driver, b: Driver): number {\r\n return (a.FN + \" \" + a.LN).localeCompare(b.FN + \" \" + b.LN);\r\n }\r\n\r\n private subToWorkerUnarchived() {\r\n this.workerService.unArchivedWorkerSubject.subscribe(driver => {\r\n const filtered = this.allArchiveWorkers!.filter(x => driver.Id !== x.Id);\r\n this.displayArchiveWorkers(filtered);\r\n this.allDrivers!.push(driver);\r\n this.displayWorkers(this.allDrivers!);\r\n this.refreshListAfterDriverAdd();\r\n });\r\n }\r\n\r\n private subToWorkerArchived() {\r\n this.workerService.archivedWorkerSubject.subscribe(driver => {\r\n const filtered = this.allDrivers!.filter(x => driver.Id !== x.Id);\r\n this.displayWorkers(filtered);\r\n this.allArchiveWorkers!.push(driver);\r\n this.displayArchiveWorkers(this.allArchiveWorkers);\r\n this.refreshListAfterDriverAdd();\r\n });\r\n }\r\n\r\n private subToWorkerAdded() {\r\n this.workerService.workerAddedSubject.subscribe(addedDriver => {\r\n const matchedDriver = this.allDrivers!.find(x => x.Id === 0);//0 to id nowo dodanego nie zapisanego pracownika\r\n this.copyDriverToDriver(addedDriver, matchedDriver!, true);\r\n this.displayWorkers(this.allDrivers!);\r\n });\r\n }\r\n\r\n private subToWorkerUpdated() {\r\n this.workerService.workerUpdatedSubject.subscribe(updatedDriver => {\r\n const matchedDriver = this.allDrivers!.find(x => x.Id === updatedDriver.Id);\r\n this.copyDriverToDriver(updatedDriver, matchedDriver!);\r\n this.displayWorkers(this.allDrivers!);\r\n });\r\n }\r\n\r\n private copyDriverToDriver(source: Driver, target: Driver, copyId = false) {\r\n target.FN = source.FN;\r\n target.LN = source.LN;\r\n target.Pn = source.Pn;\r\n target.CN = source.CN;\r\n target.Em = source.Em;\r\n\r\n if (copyId)\r\n target.Id = source.Id;\r\n }\r\n\r\n private subToWorkerDetailsPanelClosed() {\r\n this.workerService.workerDetailsPanelClosedSub$.subscribe(() => {\r\n this.removeNewWorker();\r\n });\r\n }\r\n}\r\n\r\n","
\r\n
{{fullName}}
\r\n \r\n
\r\n\r\n","import { Component, Input, } from '@angular/core';\r\n\r\nimport { Driver } from '../../../../commons/models/domain/Driver';\r\n\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\nimport { StringService } from '@shared/services/string.service';\r\n\r\nimport {WorkerService} from \"@layout/driver/services/worker.service\";\r\n\r\n@Component({\r\n selector: 'wm-driver-details-header',\r\n templateUrl: './driver-details-header.component.html'\r\n})\r\nexport class DriverDetailsHeaderComponent {\r\n\r\n @Input() public driver?: Driver;\r\n\r\n get fullName(): string {\r\n return this.stringService.truncate(this.driver?.FN + ' ' + this.driver?.LN);\r\n }\r\n\r\n constructor(\r\n private newNavigationService: NewNavigationService,\r\n private stringService: StringService,\r\n private workerService: WorkerService,\r\n ) {\r\n }\r\n\r\n onClose() {\r\n this.workerService.workerDetailsPanelClosedSub$.next(true);\r\n this.newNavigationService.toWorkersList();\r\n }\r\n}\r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from \"@angular/material/dialog\";\r\nimport {WorkerModel} from \"@shared/models/worker.model\";\r\n\r\n@Component({\r\n selector: 'wm-driver-deactivation-modal',\r\n templateUrl: './driver-deactivation-modal.component.html'\r\n})\r\nexport class DriverDeactivationModalComponent implements OnInit {\r\n\r\n isLoading = false;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public worker: WorkerModel\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onDeactivate() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onCancel() {\r\n this.dialogRef.close();\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
\r\n {{'worker.question-move-to-archive' | translate}} {{worker.FirstName}} {{worker.LastName}}?\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from \"@angular/material/dialog\";\r\nimport {WorkerModel} from \"@shared/models/worker.model\";\r\n\r\n@Component({\r\n selector: 'wm-driver-unarchive-modal',\r\n templateUrl: './driver-unarchive-modal.component.html'\r\n})\r\nexport class DriverUnarchiveModalComponent implements OnInit {\r\n\r\n isLoading = false;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public worker: WorkerModel\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onDeactivate() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onCancel() {\r\n this.dialogRef.close();\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\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'worker.question-move-from-archive' | translate}} {{worker.FirstName}} {{worker.LastName}}?\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 {{finalIcon}}\r\n \r\n
\r\n \r\n
\r\n
\r\n {{label}}\r\n
\r\n
\r\n\r\n
\r\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sm-secondary-button',\r\n templateUrl: './secondary-button.component.html',\r\n styleUrls: ['./secondary-button.component.less']\r\n})\r\nexport class SecondaryButtonComponent implements OnInit, OnChanges {\r\n\r\n @Input() isDisabled = false;\r\n @Input() isLoading = false;\r\n @Input() label = '';\r\n @Input() isFullWidth = false;\r\n @Input() textClasses = 'text-base';\r\n @Input() iconClasses = 'text-xl';\r\n @Input() spinnerClasses = '';\r\n @Input() isActive = false;\r\n @Input() icon = '';\r\n @Input() spinnerDiameter = 24;\r\n @Input() spinnerStrokeWidth = 2;\r\n\r\n @Output() click = new EventEmitter();\r\n\r\n isHovered = false;\r\n finalIcon = '';\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.icon.length > 0 && this.finalIcon.length === 0) {\r\n this.finalIcon = this.icon;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onClick() {\r\n if (!this.isLoading)\r\n this.click.emit();\r\n }\r\n\r\n onHover(isHoverd: boolean) {\r\n this.isHovered = isHoverd;\r\n }\r\n\r\n getIconClasses(): any {\r\n let result = this.iconClasses;\r\n\r\n if (!this.isHovered)\r\n result += ' material-icons-outlined';//pogrubienie\r\n\r\n return result;\r\n }\r\n}\r\n","
\r\n\r\n \r\n {{'labels.first-name' | translate | titlecase}}\r\n \r\n \r\n {{'errors.field-is-required' | translate}}\r\n \r\n \r\n\r\n \r\n {{'labels.last-name' | translate | titlecase}}\r\n \r\n \r\n {{'errors.field-is-required' | translate}}\r\n \r\n \r\n\r\n \r\n {{'fields-names.landline-phone' | translate}} ({{'labels.optional' | translate}})\r\n \r\n \r\n\r\n \r\n {{'fields-names.mobile-phone' | translate}} ({{'labels.optional' | translate}})\r\n \r\n \r\n\r\n \r\n {{'fields-names.email' | translate}} ({{'labels.optional' | translate}})\r\n \r\n \r\n {{'errors.email-format-incorrect' | translate}}\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 \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 \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\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n","import {Component, Input, OnChanges, OnDestroy, SimpleChanges} from '@angular/core';\r\nimport {FormBuilder, FormControl, Validators} from \"@angular/forms\";\r\n\r\nimport {Observable} from \"rxjs\";\r\n\r\nimport {Driver} from \"@commons/models/domain/Driver\";\r\nimport {Vehicle} from '@commons/models/domain/Vehicle';\r\n\r\nimport {DialogService} from \"@shared/services/dialog.service\";\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\nimport {WorkerModel} from \"@shared/models/worker.model\";\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\n\r\nimport {\r\n DriverDeactivationModalComponent\r\n} from \"@layout/driver/details/tabs/driver-details-data-tab/driver-deactivation-modal/driver-deactivation-modal.component\";\r\nimport {WorkerHttpService} from \"@layout/driver/http-services/worker-http.service\";\r\nimport {\r\n DriverUnarchiveModalComponent\r\n} from \"@layout/driver/details/tabs/driver-details-data-tab/driver-unarchive-modal/driver-unarchive-modal.component\";\r\nimport {WorkerService} from \"@layout/driver/services/worker.service\";\r\n\r\n@Component({\r\n selector: 'wm-driver-details-data-tab',\r\n templateUrl: './driver-details-data-tab.component.html',\r\n styleUrls: ['./driver-details-data-tab.component.less']\r\n})\r\nexport class DriverDetailsDataTabComponent extends BaseComponent implements OnChanges, OnDestroy {\r\n\r\n @Input() driver?: Driver;\r\n\r\n filtered!: Observable;\r\n vehicles?: Vehicle[];\r\n height = '';\r\n is4DriveAuthorized = false;\r\n isLoadingOrSaving = false;\r\n isChangingArchiveStatus = false;\r\n firstNameCtrl = new FormControl('', [Validators.required]);\r\n lastNameCtrl = new FormControl('', [Validators.required]);\r\n mobilePhoneCtrl = new FormControl('');\r\n phoneCtrl = new FormControl('');\r\n emailCtrl = new FormControl('', [Validators.email]);\r\n // vehicleCtrl = new FormControl(undefined, [Validators.required]);\r\n // is4driverEnabledCtrl = new FormControl(false);\r\n\r\n form = this.formBuilder.group({\r\n firstName: this.firstNameCtrl,\r\n lastName: this.lastNameCtrl,\r\n mobilePhone: this.mobilePhoneCtrl,\r\n phone: this.phoneCtrl,\r\n email: this.emailCtrl\r\n // vehicle: this.vehicleCtrl,\r\n // is4driverEnabled: this.is4driverEnabledCtrl,\r\n });\r\n\r\n get isArchiveDriverVisible(): boolean {\r\n return this.driver != null && this.driver?.Id > 0 && !this.driver.U && !this.isLoadingOrSaving;\r\n }\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private dialogService: DialogService,\r\n private workerHttpService: WorkerHttpService,\r\n private workerService: WorkerService,\r\n private newNavigationService: NewNavigationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.driver != null) {\r\n // const driverVehicle = this.driver?.Id > 0 ? this.vehicles?.find(x => x.DR === this.driver?.Id) : undefined;\r\n this.form.patchValue({\r\n firstName: this.driver?.FN.trim() ?? '',\r\n lastName: this.driver?.LN.trim() ?? '',\r\n phone: this.driver?.Pn ?? '',\r\n mobilePhone: this.driver?.CN ?? '',\r\n email: this.driver?.Em ?? '',\r\n // vehicle: driverVehicle?.Nm,\r\n });\r\n if (this.driver.Id === 0) {\r\n this.form.markAllAsTouched();\r\n }\r\n }\r\n }\r\n\r\n // TODO nie da się tego użyć w web wymaga zmian w api\r\n private load4DriverStatus() {\r\n // const request = {\r\n // Client: this.securityService.token.Clients![0],\r\n // Server: \"alfa01.tekom.pl\",\r\n // WorkerId: this.driver!.Id\r\n // } as getWorkerStateRequest;\r\n\r\n // this.driverHttpService.getWorkerState(request).subscribe(result => {\r\n // });\r\n }\r\n\r\n private subToDatabaseValueChanges() {\r\n // this.filtered = this.vehicleCtrl.valueChanges.pipe(\r\n // map(filter => {\r\n // const result = filter ? this.filterItems(filter) : this.vehicles!.slice();\r\n // this.height = result.length < 4 ? (result.length * 50 + 'px') : '200px';\r\n // return result;\r\n // }));\r\n }\r\n\r\n // private filterItems(filter: string): Vehicle[] {\r\n // const filterValue = filter.toLowerCase();\r\n // return this.vehicles!.filter(option => option.RN.toLowerCase().includes(filterValue));\r\n // }\r\n\r\n onSave() {\r\n this.form.markAllAsTouched();\r\n\r\n if (this.form.invalid)\r\n return;\r\n\r\n this.isLoadingOrSaving = true;\r\n\r\n const isAdd = !this.driver?.Id;\r\n const worker = this.getWorker(isAdd);\r\n const driver = this.workerToDriver(worker);\r\n\r\n if (isAdd) {\r\n this.workerHttpService.add(worker).subscribe(result => {\r\n this.workerService.newUnsavedDriver = undefined;\r\n driver!.Id = worker!.Id = +result!;\r\n this.workerService.workerAddedSubject.next(driver);\r\n this.isLoadingOrSaving = false;\r\n });\r\n } else {\r\n this.workerHttpService.update(worker).subscribe(() => {\r\n this.workerService.workerUpdatedSubject.next(driver);\r\n this.isLoadingOrSaving = false;\r\n });\r\n }\r\n }\r\n\r\n private workerToDriver(worker: WorkerModel): Driver {\r\n const driver = {} as Driver;\r\n driver.Id = worker.Id;\r\n driver.FN = worker.FirstName;\r\n driver.LN = worker.LastName;\r\n driver.Pn = worker.PhoneNumber;\r\n driver.CN = worker.CellphoneNumber;\r\n driver.Em = worker.Email ?? '';\r\n return driver;\r\n }\r\n\r\n private getWorker(isForAdd = true): WorkerModel {\r\n const worker = {} as WorkerModel;\r\n worker.Id = this.driver!.Id;\r\n worker.FirstName = this.firstNameCtrl.value!;\r\n worker.LastName = this.lastNameCtrl.value!;\r\n worker.PhoneNumber = this.phoneCtrl.value!;\r\n worker.CellphoneNumber = this.mobilePhoneCtrl.value!;\r\n worker.Email = this.emailCtrl.value!;\r\n worker.FourDriverAccess = false;\r\n worker.AssignedVehicle = undefined;\r\n\r\n if (isForAdd) { //nie ma możliwości aktualizacji tych 2 pól\r\n worker.OrganizationalUnitId = 1;\r\n worker.JobPositionId = 1;\r\n }\r\n\r\n return worker;\r\n }\r\n\r\n onChangeIsArchive() {\r\n if (this.isLoadingOrSaving)\r\n return;\r\n\r\n if (this.driver?.IsArchive) {\r\n this.unArchive();\r\n } else {\r\n this.archive();\r\n }\r\n }\r\n\r\n private archive() {\r\n this.dialogService.open(DriverDeactivationModalComponent, this.getWorker())\r\n .beforeClosed().subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.isChangingArchiveStatus = true;\r\n this.workerHttpService.archive(this.driver!.Id).subscribe(() => {\r\n this.newNavigationService.toWorkersList();\r\n this.driver!.IsArchive = true;\r\n this.workerService.archivedWorkerSubject.next(this.driver!);\r\n this.isChangingArchiveStatus = false;\r\n });\r\n }\r\n });\r\n }\r\n\r\n private unArchive() {\r\n this.dialogService.open(DriverUnarchiveModalComponent, this.getWorker())\r\n .beforeClosed().subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.isChangingArchiveStatus = true;\r\n this.workerHttpService.unarchive(this.driver!.Id).subscribe(() => {\r\n this.newNavigationService.toWorkersList();\r\n this.driver!.IsArchive = false;\r\n this.workerService.unArchivedWorkerSubject.next(this.driver!);\r\n this.isChangingArchiveStatus = false;\r\n });\r\n }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n
\r\n {{ 'labels.data' | translate }}\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","import {Component, Input, OnChanges, SimpleChanges} from '@angular/core';\r\n\r\nimport { Driver } from '../../../../commons/models/domain/Driver';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'wm-driver-details-tabs',\r\n styleUrls: ['./driver-details-tabs.component.less'],\r\n templateUrl: './driver-details-tabs.component.html'\r\n})\r\nexport class DriverDetailsTabsComponent implements OnChanges {\r\n\r\n /**\r\n *\r\n */\r\n @Input() public driver?: Driver;\r\n\r\n /**\r\n *\r\n */\r\n public tab: string = 'data';\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n console.debug('DriverDetailsTabsComponent:' + this.driver);\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{'labels.loading-data' | translate}}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {animate, sequence, style, transition, trigger} from '@angular/animations';\r\n\r\nimport {BehaviorSubject, filter, map, Observable, of, Subscription, switchMap} from 'rxjs';\r\n\r\nimport {PanelNavigationService} from '@commons/services/navigation/panel-navigation.service';\r\n\r\nimport {Driver} from '../../../commons/models/domain/Driver';\r\nimport {WorkerService} from '../services/worker.service';\r\n\r\nimport {NewNavigationService} from \"@shared/services/new-navigation.service\";\r\nimport {NewDataStoreService} from \"@shared/services/new-data-store.service\";\r\n\r\n@Component({\r\n selector: 'wm-driver-details',\r\n styleUrls: ['./driver-details.component.less'],\r\n templateUrl: './driver-details.component.html',\r\n animations: [\r\n trigger('openClose', [\r\n transition(\":enter\", [sequence([style({\r\n left: '416px',\r\n 'z-index': 0\r\n }), animate('0.1s', style({transform: 'translateX(-320px)', 'z-index': 400}))])]),\r\n transition(\":leave\", [sequence([style({left: '416px', 'z-index': 0}), animate('0.1s', style({left: '56px'}))])]),\r\n ])\r\n ]\r\n})\r\nexport class DriverDetailsComponent implements OnInit, OnDestroy {\r\n\r\n isVisible = false;\r\n isLoading = true;\r\n driver?: Driver;\r\n\r\n private driverId?: number;\r\n private driverSub: Subscription;\r\n private navSub: Subscription;\r\n private driverIdChangeSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n private wsSystemEventSub: Subscription;\r\n\r\n constructor(\r\n private $nav: PanelNavigationService,\r\n private $activatedRoute: ActivatedRoute,\r\n private workerService: WorkerService,\r\n private newNavigationService: NewNavigationService,\r\n private newDataStoreService: NewDataStoreService\r\n ) {\r\n // Build stream of url changes\r\n const visibility$ = this.$nav.getVisibilitySubject()\r\n .pipe(filter(item => (\r\n !item.subsites\r\n || item.subsites.indexOf('driver-details') !== -1\r\n )));\r\n\r\n // Subscribe to stream of url changes\r\n this.navSub = visibility$.subscribe(change => {\r\n this.isVisible = change.show;\r\n });\r\n\r\n this.wsSystemEventSub = this.newDataStoreService.driversLoaded.subscribe(\r\n () => this.driverIdChangeSubject.next(this.driverId));\r\n\r\n // Build and subsribe to stream of driver according to url query param\r\n this.driverSub = visibility$.pipe(\r\n switchMap(change => this.$activatedRoute.queryParams),\r\n map(params => params['id']))\r\n .subscribe(driverId => {\r\n this.driverId = parseInt(driverId, 10);\r\n this.driverIdChangeSubject.next(this.driverId);\r\n });\r\n\r\n // driver id change\r\n this.driverIdChangeSubject.pipe(\r\n filter(driverId => driverId != null),\r\n switchMap(driverId => this.getDriverData(driverId!)))\r\n .subscribe(driver => {\r\n this.driver = driver;\r\n });\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.navSub) {\r\n this.navSub.unsubscribe();\r\n }\r\n if (this.driverSub) {\r\n this.driverSub.unsubscribe();\r\n }\r\n if (this.wsSystemEventSub) {\r\n this.wsSystemEventSub.unsubscribe();\r\n }\r\n }\r\n\r\n getDriverData(driverId: number): Observable {\r\n this.isLoading = true;\r\n\r\n if (driverId === 0) {\r\n this.isLoading = false;\r\n if (this.workerService.newUnsavedDriver)\r\n return of(this.workerService.newUnsavedDriver);\r\n else {\r\n this.newNavigationService.toWorkersList();\r\n return of ();\r\n }\r\n } else {\r\n return new Observable(observer => {\r\n const driver = this.workerService.allWorkers?.find(x => x.Id === driverId);\r\n if (driver) {\r\n observer.next(driver);\r\n } else {\r\n const matchedDriver = this.workerService.archivedDrivers?.find(x => x.Id === driverId);\r\n if (matchedDriver)\r\n observer.next(matchedDriver);\r\n }\r\n this.isLoading = false;\r\n observer.complete();\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 {{ driverName }}\r\n \r\n \r\n {{'events-list.unknown-driver'|translate}}\r\n \r\n • \r\n \r\n {{ vehicleName }}\r\n \r\n \r\n\r\n \r\n {{msg?.title}}\r\n \r\n \r\n\r\n

\r\n {{ (msg?.type === MESSAGE_TYPE.INFO || msg?.type === MESSAGE_TYPE.APP_SUCCESS) ? msg?.title : msg?.text }}\r\n

\r\n
\r\n\r\n","import {Component, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\r\n\r\nimport {interval, startWith, Subscription, takeWhile} from 'rxjs';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport {NotificationService} from '@commons/services/notification/notification.service';\r\nimport {AppNotification, AppNotificationTypes} from '@commons/models/other/app-notification.model';\r\nimport {MapEventsService} from \"@commons/services/map/map-events.service\";\r\nimport {NewDataStoreService} from '@shared/services/new-data-store.service';\r\n\r\n@Component({\r\n selector: 'tk-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class NotificationComponent implements OnInit, OnDestroy {\r\n\r\n public isVisible = false;\r\n public msg?: AppNotification;\r\n public lineWidth = 100;\r\n\r\n private sub?: Subscription;\r\n private timoutInSeconds = 6;\r\n private currentTimeout: any;\r\n private timeLineSubsc: Subscription = new Subscription();\r\n public readonly MESSAGE_TYPE = AppNotificationTypes;\r\n\r\n public vehicleName = this.translate.instant('events-list.unknown-vehicle');\r\n public driverName = this.translate.instant('events-list.unknown-driver');\r\n\r\n public openVehicle(vehicleId: number) {\r\n this.mapEventsService.emmitVehicleClicked(vehicleId);\r\n }\r\n\r\n constructor(\r\n private $msg: NotificationService,\r\n private newDataStoreService: NewDataStoreService,\r\n private mapEventsService: MapEventsService,\r\n private translate: TranslateService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.sub = this.$msg\r\n .getSubject()\r\n .subscribe(notify => {\r\n\r\n notify.opts = notify.opts || {};\r\n\r\n // wyłapanie końca sesji\r\n if ((notify.type === AppNotificationTypes.ERROR || notify.type === AppNotificationTypes.APP_ERROR)\r\n && notify && notify.data && notify.data.ErrorCode === 4\r\n ) {\r\n return;\r\n }\r\n\r\n // inne\r\n if (!this.isVisible || (notify.type === AppNotificationTypes.ERROR || notify.type === AppNotificationTypes.APP_ERROR)) {\r\n // wyczyszczenie\r\n if (this.currentTimeout) {\r\n clearTimeout(this.currentTimeout);\r\n }\r\n\r\n // przepisanie wartosci]\r\n this.msg = notify;\r\n this.isVisible = true;\r\n this.countDownVisibleStatus();\r\n\r\n // jezeli tylko INFO to wlaczamy\r\n if (this.msg.type === AppNotificationTypes.INFO || this.msg.type === AppNotificationTypes.APP_SUCCESS) {\r\n\r\n // Get names of vehicle and driver if any\r\n if (notify.driverId) {\r\n const driver = this.newDataStoreService.getDriverById(notify.driverId);\r\n if (driver) {\r\n this.driverName = `${driver.FN} ${driver.LN}`;\r\n }\r\n }\r\n if (notify.vehicleId) {\r\n const vehicle = this.newDataStoreService.getVehicleById(notify.vehicleId);\r\n if (vehicle) {\r\n this.vehicleName = vehicle.Nm!;\r\n }\r\n }\r\n\r\n if (notify.opts.autoClose !== false) {\r\n this.currentTimeout = setTimeout(() => {\r\n this.closeMessage();\r\n }, this.timoutInSeconds * 1000);\r\n }\r\n } else {\r\n // tytul\r\n switch (this.msg.type) {\r\n case AppNotificationTypes.APP_ERROR:\r\n this.msg.title = notify.title || this.translate.instant('vehicle-list-item.etoll-not-sending');\r\n break;\r\n case AppNotificationTypes.APP_WARN:\r\n this.msg.title = notify.title || this.translate.instant('warrning');\r\n break;\r\n case AppNotificationTypes.APP_INFO:\r\n this.msg.title = notify.title || this.translate.instant('information');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n\r\n // problem\r\n if (!this.msg.text && this.msg.data) {\r\n switch (this.msg.data.ErrorCode) {\r\n // Ok = 0,\r\n case 0:\r\n this.msg.text = 'Opercja przebiegła pomyślnie';\r\n break;\r\n // InternalError = 1, // wewnętrzny błąd usługi\r\n case 1:\r\n this.msg.text = 'Wystąpił błąd wewnętrzny serwera';\r\n break;\r\n // NotValidCredentials = 2, // nieprawidłowe dane uwierzytelniające\r\n case 2:\r\n this.msg.text = 'E-mail lub hasło jest niepoprawne';\r\n break;\r\n // NoAccessToData = 3, // brak dostępu do danych\r\n case 3:\r\n this.msg.text = 'Brak dostępu do danych';\r\n break;\r\n // NoSessionOrExpired = 4, //brak sesji lub sesja wygasła\r\n case 4:\r\n this.msg.text = 'Brak sesji lub sesja wygasła';\r\n break;\r\n // FailToLoadProfileContactData = 5, //nie udało się pobrać danych kontaktowych z xml\r\n case 5:\r\n this.msg.text = 'Nie udało się pobrać danych kontaktowych z xml';\r\n break;\r\n // DataFail = 6, //nieprawidłowe dane wejściowe\r\n case 6:\r\n this.msg.text = 'Nieprawidłowe dane wejściowe';\r\n break;\r\n // ResetPasswordTokenIsExpired = 7, //token do resetu hasła wygasł\r\n case 7:\r\n this.msg.text = 'Token do resetu hasła wygasł';\r\n break;\r\n // ResetPasswordTokenNotExist = 8, //nie znaleziono tokenu do resetu hasła\r\n case 8:\r\n this.msg.text = 'Nie znaleziono tokenu do resetu hasła';\r\n break;\r\n // OldPasswordIncorrect = 9, //stare hasło jest niepoprawne\r\n case 9:\r\n this.msg.text = 'Błędne hasło';\r\n break;\r\n // OldPasswordIsEmpty = 10, //stare hasło jest puste\r\n case 10:\r\n this.msg.text = 'Hasło jest puste';\r\n break;\r\n // ResetPasswordTokenIsEmpty = 11, //token do resetu hasła jest pusty\r\n case 11:\r\n this.msg.text = 'Token do resetu hasła jest pusty';\r\n break;\r\n // PersonNotFound = 12,\r\n case 12:\r\n this.msg.text = 'Nie znaleziono osoby';\r\n break;\r\n // SearchEngineNotFound = 13,\r\n case 13:\r\n this.msg.text = 'Nie znaleziono';\r\n break;\r\n // inne\r\n default:\r\n this.msg.text = this.msg.data.ErrorDescription || 'Brak komunikatu';\r\n if (this.msg.data.ErrorData && this.msg.data.ErrorData.status === 0) {\r\n this.msg.text = 'Brak połaczenia z serwerem lub podany adres nie został znaleziony';\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (notify.opts.autoClose !== false) {\r\n this.currentTimeout = setTimeout(() => {\r\n this.closeMessage();\r\n }, this.timoutInSeconds * 1000);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n this.timeLineSubsc.unsubscribe();\r\n }\r\n\r\n public closeMessage(): void {\r\n this.isVisible = false;\r\n this.msg = undefined;\r\n }\r\n\r\n private resetLineTime(): void {\r\n this.timeLineSubsc.unsubscribe();\r\n this.lineWidth = 100;\r\n }\r\n\r\n private countDownVisibleStatus(): void {\r\n this.resetLineTime();\r\n const howMuchCountDownPercentWithPerSecond = 20;\r\n let isFirstEmission = true;\r\n\r\n const interval$ = interval(1000);\r\n this.timeLineSubsc = interval$\r\n .pipe(\r\n startWith(0),\r\n takeWhile(() => {\r\n if (this.lineWidth <= 0) {\r\n this.closeMessage();\r\n }\r\n return this.lineWidth > 0;\r\n })\r\n )\r\n .subscribe(() => {\r\n if (!isFirstEmission) {\r\n this.lineWidth = Math.max(this.lineWidth - howMuchCountDownPercentWithPerSecond, 0);\r\n }\r\n isFirstEmission = false;\r\n });\r\n }\r\n\r\n}\r\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeWhile(predicate, inclusive = false) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const result = predicate(value, index++);\n (result || inclusive) && subscriber.next(value);\n !result && subscriber.complete();\n }));\n });\n}\n","import { Injectable } from '@angular/core';\r\nimport { LayerGroup, Map, Polyline, Icon, Marker, LatLng, FeatureGroup, DivIcon, Popup } from 'leaflet';\r\n\r\nimport { BusinessEvent } from '../../../../models/domain/BusinessEvent';\r\nimport { RouteEvent } from '../../../../models/domain/RouteEvent';\r\nimport { MapService } from '../../map/map.service';\r\nimport { Consts } from '../../../../consts/consts';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\n/**\r\n * Provides route drawing utilities\r\n */\r\n@Injectable()\r\nexport class EventDrawerService {\r\n\r\n\r\n /**\r\n * Costructor of service\r\n * @param $mapService map service\r\n */\r\n public constructor(\r\n private $map: MapService,\r\n private translate: TranslateService,\r\n ) { }\r\n\r\n\r\n /**\r\n * Draws given event on a map\r\n * @param event business event\r\n */\r\n public drawEvent(event: BusinessEvent): void {\r\n\r\n // Create marker and it to feature group\r\n const lat = parseFloat(event.EL.Lt);\r\n const lng = parseFloat(event.EL.Ln);\r\n\r\n const pinIcon = new DivIcon({\r\n 'html': `\r\n
\r\n \r\n
`,\r\n });\r\n\r\n const marker = new Marker([lat, lng], {\r\n icon: pinIcon\r\n // icon: new Icon({\r\n // iconUrl: '/assets/img/pin.png',\r\n // iconSize: [32, 32], // size of the icon\r\n // iconAnchor: [16, 32], // point of the icon which will correspond to marker's location\r\n // })\r\n });\r\n\r\n\r\n this.$map.groups.events.addLayer(marker);\r\n\r\n // Create popup\r\n const popup = new Popup({ 'className': 'event-popup', 'closeButton': false, 'keepInView': false, autoPan: false });\r\n marker.bindPopup(popup);\r\n popup.setLatLng([lat, lng]);\r\n popup.setContent(this.getPupupHTML(event));\r\n }\r\n\r\n\r\n /**\r\n * Removes all drawn events\r\n */\r\n public removeAll(): void {\r\n\r\n this.$map.groups.events.clearLayers();\r\n }\r\n\r\n\r\n /**\r\n * Fit to bounds to visible events\r\n */\r\n public fitBoundsToVisibleEvents(): void {\r\n\r\n const bounds = this.$map.groups.events.getBounds();\r\n if (bounds && bounds.isValid()) {\r\n this.$map.map!.fitBounds(bounds, Consts.MapPadding);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Returns popup html for given event\r\n * @param event business event\r\n */\r\n private getPupupHTML(event: BusinessEvent): string {\r\n\r\n const location = event.EL;\r\n\r\n const lat = location.Lt.toString().replace(',', '.');\r\n const lng = location.Ln.toString().replace(',', '.');\r\n\r\n // const googleMapsUrl = `https://www.google.com/maps/search/?api=1&query=${lat},${lng}`;\r\n const googleMapsUrl = `https://www.google.com/maps?t=k&q=${lat}+${lng}`;\r\n const googleMapsIcon = `/assets/img/primary.png`;\r\n\r\n const html = `\r\n
\r\n \r\n \r\n \r\n
${ this.translate.instant('showOnExternalMap') }
\r\n
\r\n `;\r\n\r\n return html;\r\n }\r\n\r\n}\r\n","/**\n * vscroll (https://github.com/dhilt/vscroll) FESM5\n * Version: 1.6.2 (2024-05-23T11:50:23.145Z)\n * Author: Denis Hilt\n * License: MIT\n */\n\nimport { __values, __read, __assign, __extends, __spreadArray } from 'tslib';\n\nvar Reactive = /** @class */ (function () {\r\n function Reactive(value, options) {\r\n this.id = 0;\r\n if (value !== void 0) {\r\n this.value = value;\r\n this.initialValue = value;\r\n }\r\n this.options = options || {};\r\n this.subscriptions = new Map();\r\n }\r\n Reactive.prototype.set = function (value) {\r\n var e_1, _a;\r\n if (this.value === value && !this.options.emitEqual) {\r\n return;\r\n }\r\n this.value = value;\r\n try {\r\n for (var _b = __values(this.subscriptions), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var _d = __read(_c.value, 2), sub = _d[1];\r\n sub.emit(value);\r\n if (this.value !== value) {\r\n break;\r\n }\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n };\r\n Reactive.prototype.get = function () {\r\n return this.value;\r\n };\r\n Reactive.prototype.on = function (func) {\r\n var _this = this;\r\n var id = this.id++;\r\n var subscription = {\r\n emit: func,\r\n off: function () {\r\n subscription.emit = function () { return null; };\r\n _this.subscriptions.delete(id);\r\n }\r\n };\r\n this.subscriptions.set(id, subscription);\r\n if (this.options.emitOnSubscribe) {\r\n subscription.emit(this.value);\r\n }\r\n return function () { return subscription.off(); };\r\n };\r\n Reactive.prototype.once = function (func) {\r\n var off = this.on(function (v) {\r\n off();\r\n func(v);\r\n });\r\n return off;\r\n };\r\n Reactive.prototype.reset = function () {\r\n this.set(this.initialValue);\r\n };\r\n Reactive.prototype.dispose = function () {\r\n this.subscriptions.forEach(function (sub) { return sub.off(); });\r\n };\r\n return Reactive;\r\n}());\n\nvar AdapterPropName;\r\n(function (AdapterPropName) {\r\n AdapterPropName[\"id\"] = \"id\";\r\n AdapterPropName[\"mock\"] = \"mock\";\r\n AdapterPropName[\"augmented\"] = \"augmented\";\r\n AdapterPropName[\"version\"] = \"version\";\r\n AdapterPropName[\"init\"] = \"init\";\r\n AdapterPropName[\"init$\"] = \"init$\";\r\n AdapterPropName[\"packageInfo\"] = \"packageInfo\";\r\n AdapterPropName[\"itemsCount\"] = \"itemsCount\";\r\n AdapterPropName[\"bufferInfo\"] = \"bufferInfo\";\r\n AdapterPropName[\"isLoading\"] = \"isLoading\";\r\n AdapterPropName[\"isLoading$\"] = \"isLoading$\";\r\n AdapterPropName[\"loopPending\"] = \"loopPending\";\r\n AdapterPropName[\"loopPending$\"] = \"loopPending$\";\r\n AdapterPropName[\"firstVisible\"] = \"firstVisible\";\r\n AdapterPropName[\"firstVisible$\"] = \"firstVisible$\";\r\n AdapterPropName[\"lastVisible\"] = \"lastVisible\";\r\n AdapterPropName[\"lastVisible$\"] = \"lastVisible$\";\r\n AdapterPropName[\"bof\"] = \"bof\";\r\n AdapterPropName[\"bof$\"] = \"bof$\";\r\n AdapterPropName[\"eof\"] = \"eof\";\r\n AdapterPropName[\"eof$\"] = \"eof$\";\r\n AdapterPropName[\"paused\"] = \"paused\";\r\n AdapterPropName[\"paused$\"] = \"paused$\";\r\n AdapterPropName[\"reset\"] = \"reset\";\r\n AdapterPropName[\"reload\"] = \"reload\";\r\n AdapterPropName[\"append\"] = \"append\";\r\n AdapterPropName[\"prepend\"] = \"prepend\";\r\n AdapterPropName[\"check\"] = \"check\";\r\n AdapterPropName[\"remove\"] = \"remove\";\r\n AdapterPropName[\"clip\"] = \"clip\";\r\n AdapterPropName[\"insert\"] = \"insert\";\r\n AdapterPropName[\"replace\"] = \"replace\";\r\n AdapterPropName[\"update\"] = \"update\";\r\n AdapterPropName[\"pause\"] = \"pause\";\r\n AdapterPropName[\"resume\"] = \"resume\";\r\n AdapterPropName[\"fix\"] = \"fix\";\r\n AdapterPropName[\"relax\"] = \"relax\";\r\n AdapterPropName[\"showLog\"] = \"showLog\";\r\n})(AdapterPropName || (AdapterPropName = {}));\r\nvar AdapterPropType;\r\n(function (AdapterPropType) {\r\n AdapterPropType[AdapterPropType[\"Scalar\"] = 0] = \"Scalar\";\r\n AdapterPropType[AdapterPropType[\"Reactive\"] = 1] = \"Reactive\";\r\n AdapterPropType[AdapterPropType[\"WorkflowRunner\"] = 2] = \"WorkflowRunner\";\r\n AdapterPropType[AdapterPropType[\"Function\"] = 3] = \"Function\";\r\n})(AdapterPropType || (AdapterPropType = {}));\r\nvar Name = AdapterPropName;\r\nvar Type = AdapterPropType;\r\nvar noop = function () { return null; };\r\nvar methodPreResult = {\r\n immediate: true,\r\n success: true,\r\n details: 'Adapter is not initialized'\r\n};\r\nvar methodPausedResult = {\r\n immediate: true,\r\n success: true,\r\n details: 'Scroller is paused'\r\n};\r\nvar noopWF = function () { return Promise.resolve(methodPreResult); };\r\nvar emptyPackageInfo = {\r\n core: {\r\n name: '',\r\n version: ''\r\n },\r\n consumer: {\r\n name: '',\r\n version: ''\r\n }\r\n};\r\nvar bufferInfoDefault = {\r\n firstIndex: NaN,\r\n lastIndex: NaN,\r\n minIndex: NaN,\r\n maxIndex: NaN,\r\n absMinIndex: -Infinity,\r\n absMaxIndex: +Infinity,\r\n defaultSize: NaN,\r\n};\r\nvar EMPTY_ITEM = {\r\n data: {},\r\n element: {}\r\n};\r\nvar getDefaultAdapterProps = function () { return [\r\n {\r\n type: Type.Scalar,\r\n name: Name.id,\r\n value: 0,\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.mock,\r\n value: true,\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.augmented,\r\n value: false,\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.version,\r\n value: '',\r\n permanent: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.init,\r\n value: false,\r\n reactive: Name.init$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.packageInfo,\r\n value: emptyPackageInfo,\r\n onDemand: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.itemsCount,\r\n value: 0,\r\n onDemand: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.bufferInfo,\r\n value: bufferInfoDefault,\r\n onDemand: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.isLoading,\r\n value: false,\r\n reactive: Name.isLoading$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.loopPending,\r\n value: false,\r\n reactive: Name.loopPending$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.firstVisible,\r\n value: EMPTY_ITEM,\r\n reactive: Name.firstVisible$,\r\n wanted: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.lastVisible,\r\n value: EMPTY_ITEM,\r\n reactive: Name.lastVisible$,\r\n wanted: true\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.bof,\r\n value: false,\r\n reactive: Name.bof$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.eof,\r\n value: false,\r\n reactive: Name.eof$\r\n },\r\n {\r\n type: Type.Scalar,\r\n name: Name.paused,\r\n value: false,\r\n reactive: Name.paused$\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.reset,\r\n value: noopWF,\r\n allowedWhenPaused: true\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.reload,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.append,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.prepend,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.check,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.remove,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.clip,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.insert,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.replace,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.update,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.pause,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.resume,\r\n value: noopWF,\r\n allowedWhenPaused: true\r\n },\r\n {\r\n type: Type.WorkflowRunner,\r\n name: Name.fix,\r\n value: noopWF\r\n },\r\n {\r\n type: Type.Function,\r\n name: Name.relax,\r\n value: noop\r\n },\r\n {\r\n type: Type.Function,\r\n name: Name.showLog,\r\n value: noop\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.init$,\r\n value: new Reactive()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.isLoading$,\r\n value: new Reactive()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.loopPending$,\r\n value: new Reactive()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.firstVisible$,\r\n value: new Reactive(EMPTY_ITEM, { emitOnSubscribe: true }),\r\n wanted: true\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.lastVisible$,\r\n value: new Reactive(EMPTY_ITEM, { emitOnSubscribe: true }),\r\n wanted: true\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.bof$,\r\n value: new Reactive()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.eof$,\r\n value: new Reactive()\r\n },\r\n {\r\n type: Type.Reactive,\r\n name: Name.paused$,\r\n value: new Reactive()\r\n }\r\n]; };\r\nvar reactiveConfigStorage = new Map();\n\nvar core = {\r\n name: 'vscroll',\r\n version: '1.6.2'\r\n};\n\nvar getBox = function (id) {\r\n var _a;\r\n return (_a = wantedStorage.get(id || -1)) === null || _a === void 0 ? void 0 : _a.box;\r\n};\r\nvar setBox = function (_a, id) {\r\n var name = _a.name, wanted = _a.wanted;\r\n var Wanted = wantedStorage.get(id || -1);\r\n if (wanted && Wanted && !Wanted.box[name] && !Wanted.block) {\r\n var a = AdapterPropName.firstVisible, a$ = AdapterPropName.firstVisible$;\r\n var b = AdapterPropName.lastVisible, b$ = AdapterPropName.lastVisible$;\r\n Wanted.box[a] = Wanted.box[a$] = [a, a$].some(function (n) { return n === name; }) || Wanted.box[a];\r\n Wanted.box[b] = Wanted.box[b$] = [b, b$].some(function (n) { return n === name; }) || Wanted.box[b];\r\n return true;\r\n }\r\n return false;\r\n};\r\nvar setBlock = function (value, id) {\r\n var Wanted = wantedStorage.get(id || -1);\r\n if (Wanted) {\r\n Wanted.block = value;\r\n }\r\n};\r\nvar wantedUtils = {\r\n getBox: getBox,\r\n setBox: setBox,\r\n setBlock: setBlock\r\n};\r\nvar wantedStorage = new Map();\n\nvar instanceCount$1 = 0;\r\nvar AdapterContext = /** @class */ (function () {\r\n function AdapterContext(config) {\r\n var _this = this;\r\n var mock = config.mock, reactive = config.reactive;\r\n var id = ++instanceCount$1;\r\n var conf = { configurable: true };\r\n var reactivePropsStore = {};\r\n wantedStorage.set(id, { box: {}, block: false });\r\n // set up permanent props\r\n Object.defineProperty(this, AdapterPropName.id, __assign({ get: function () { return id; } }, conf));\r\n Object.defineProperty(this, AdapterPropName.mock, __assign({ get: function () { return mock; } }, conf));\r\n Object.defineProperty(this, AdapterPropName.augmented, __assign({ get: function () { return false; } }, conf));\r\n Object.defineProperty(this, AdapterPropName.version, __assign({ get: function () { return core.version; } }, conf));\r\n // set up default props, they will be reassigned during the Adapter instantiation\r\n getDefaultAdapterProps()\r\n .filter(function (_a) {\r\n var permanent = _a.permanent;\r\n return !permanent;\r\n })\r\n .forEach(function (prop) {\r\n var value = prop.value;\r\n // reactive props might be reconfigured by the vscroll consumer\r\n if (reactive && prop.type === AdapterPropType.Reactive) {\r\n var react = reactive[prop.name];\r\n if (react) {\r\n // here we have a configured reactive property that came from the outer config\r\n // this prop must be exposed via Adapter, but at the same time we need to\r\n // persist the original default value as it will be used by the Adapter internally\r\n reactivePropsStore[prop.name] = __assign(__assign({}, react), { default: value // persisting the default native Reactive prop\r\n });\r\n value = react.source; // exposing the configured prop instead of the default one\r\n }\r\n }\r\n Object.defineProperty(_this, prop.name, __assign({ get: function () {\r\n wantedUtils.setBox(prop, id);\r\n return value;\r\n } }, conf));\r\n });\r\n if (reactive) { // save both configured and default reactive props in the store\r\n reactiveConfigStorage.set(id, reactivePropsStore);\r\n }\r\n }\r\n return AdapterContext;\r\n}());\n\nvar DatasourceGeneric = /** @class */ (function () {\r\n function DatasourceGeneric(datasource, config) {\r\n this.get = datasource.get;\r\n this.settings = datasource.settings;\r\n this.devSettings = datasource.devSettings;\r\n var adapterContext = new AdapterContext(config || { mock: false });\r\n this.adapter = adapterContext;\r\n }\r\n DatasourceGeneric.prototype.dispose = function () {\r\n reactiveConfigStorage.delete(this.adapter.id);\r\n wantedStorage.delete(this.adapter.id);\r\n };\r\n return DatasourceGeneric;\r\n}());\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nvar makeDatasource = function (getConfig) {\r\n return /** @class */ (function (_super) {\r\n __extends(class_1, _super);\r\n function class_1(datasource) {\r\n var config = typeof getConfig === 'function' ? getConfig() : void 0;\r\n return _super.call(this, datasource, config) || this;\r\n }\r\n return class_1;\r\n }(DatasourceGeneric));\r\n};\r\nvar Datasource = makeDatasource();\n\nvar Direction;\r\n(function (Direction) {\r\n Direction[\"forward\"] = \"forward\";\r\n Direction[\"backward\"] = \"backward\";\r\n})(Direction || (Direction = {}));\r\nvar SizeStrategy;\r\n(function (SizeStrategy) {\r\n SizeStrategy[\"Average\"] = \"average\";\r\n SizeStrategy[\"Constant\"] = \"constant\";\r\n SizeStrategy[\"Frequent\"] = \"frequent\";\r\n})(SizeStrategy || (SizeStrategy = {}));\n\nvar ValidatorType;\r\n(function (ValidatorType) {\r\n ValidatorType[\"number\"] = \"must be a number\";\r\n ValidatorType[\"integer\"] = \"must be an integer\";\r\n ValidatorType[\"integerUnlimited\"] = \"must be an integer or infinity\";\r\n ValidatorType[\"moreOrEqual\"] = \"must be a number greater than (or equal to) {arg1}\";\r\n ValidatorType[\"itemList\"] = \"must be an array of items {arg1}\";\r\n ValidatorType[\"boolean\"] = \"must be a boolean\";\r\n ValidatorType[\"object\"] = \"must be an object\";\r\n ValidatorType[\"element\"] = \"must be an html element\";\r\n ValidatorType[\"function\"] = \"must be a function\";\r\n ValidatorType[\"funcOfxArguments\"] = \"must have {arg1} argument(s)\";\r\n ValidatorType[\"funcOfxAndMoreArguments\"] = \"must have at least {arg1} argument(s)\";\r\n ValidatorType[\"funcOfXToYArguments\"] = \"must have {arg1} to {arg2} arguments\";\r\n ValidatorType[\"oneOfCan\"] = \"can be present as only one item of {arg1} list\";\r\n ValidatorType[\"oneOfMust\"] = \"must be present as only one item of {arg1} list\";\r\n ValidatorType[\"or\"] = \"must satisfy at least 1 validator from {arg1} list\";\r\n ValidatorType[\"enum\"] = \"must belong to {arg1} list\";\r\n})(ValidatorType || (ValidatorType = {}));\r\nvar getError = function (msg, args) {\r\n return (args || ['']).reduce(function (acc, arg, index) { return acc.replace(\"{arg\".concat(index + 1, \"}\"), arg); }, msg);\r\n};\r\nvar getNumber = function (value) {\r\n return typeof value === 'number' || (typeof value === 'string' && value !== '')\r\n ? Number(value)\r\n : NaN;\r\n};\r\nvar onNumber = function (value) {\r\n var parsedValue = getNumber(value);\r\n var errors = [];\r\n if (Number.isNaN(parsedValue)) {\r\n errors.push(ValidatorType.number);\r\n }\r\n return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };\r\n};\r\nvar onInteger = function (value) {\r\n var errors = [];\r\n value = getNumber(value);\r\n var parsedValue = parseInt(String(value), 10);\r\n if (value !== parsedValue) {\r\n errors.push(ValidatorType.integer);\r\n }\r\n return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };\r\n};\r\nvar onIntegerUnlimited = function (value) {\r\n var parsedValue = value;\r\n var errors = [];\r\n value = getNumber(value);\r\n if (!Number.isFinite(value)) {\r\n parsedValue = value;\r\n }\r\n else {\r\n parsedValue = parseInt(String(value), 10);\r\n }\r\n if (value !== parsedValue) {\r\n errors.push(ValidatorType.integerUnlimited);\r\n }\r\n return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };\r\n};\r\nvar onMoreOrEqual = function (limit, fallback) { return function (value) {\r\n var result = onNumber(value);\r\n if (!result.isValid) {\r\n return result;\r\n }\r\n var parsedValue = result.value;\r\n var errors = [];\r\n if (parsedValue < limit) {\r\n if (!fallback) {\r\n errors.push(getError(ValidatorType.moreOrEqual, [String(limit)]));\r\n }\r\n else {\r\n parsedValue = limit;\r\n }\r\n }\r\n return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };\r\n}; };\r\nvar onBoolean = function (value) {\r\n var errors = [];\r\n var parsedValue = value;\r\n if (value === 'true') {\r\n parsedValue = true;\r\n }\r\n else if (value === 'false') {\r\n parsedValue = false;\r\n }\r\n if (typeof parsedValue !== 'boolean') {\r\n errors.push(ValidatorType.boolean);\r\n }\r\n return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };\r\n};\r\nvar onObject = function (value) {\r\n var errors = [];\r\n if (!value || Object.prototype.toString.call(value) !== '[object Object]') {\r\n errors.push(ValidatorType.object);\r\n }\r\n return { value: value, isSet: true, isValid: !errors.length, errors: errors };\r\n};\r\nvar onHtmlElement = function (value) {\r\n var errors = [];\r\n if (!(value instanceof Element) && !(value instanceof Document)) {\r\n errors.push(ValidatorType.element);\r\n }\r\n return { value: value, isSet: true, isValid: !errors.length, errors: errors };\r\n};\r\nvar onItemList = function (value) {\r\n var parsedValue = value;\r\n var errors = [];\r\n if (!Array.isArray(value)) {\r\n errors.push(ValidatorType.itemList);\r\n parsedValue = [];\r\n }\r\n else if (!value.length) {\r\n errors.push(getError(ValidatorType.itemList, ['with at least 1 item']));\r\n }\r\n else if (value.length > 1) {\r\n var type = typeof value[0];\r\n for (var i = value.length - 1; i >= 0; i--) {\r\n if (typeof value[i] !== type) {\r\n errors.push(getError(ValidatorType.itemList, ['of items of the same type']));\r\n break;\r\n }\r\n }\r\n }\r\n return { value: parsedValue, isSet: true, isValid: !errors.length, errors: errors };\r\n};\r\nvar onFunction = function (value) {\r\n var errors = [];\r\n if (typeof value !== 'function') {\r\n errors.push(ValidatorType.function);\r\n }\r\n return { value: value, isSet: true, isValid: !errors.length, errors: errors };\r\n};\r\nvar onFunctionWithXArguments = function (argsCount) { return function (value) {\r\n var result = onFunction(value);\r\n if (!result.isValid) {\r\n return result;\r\n }\r\n value = result.value;\r\n var errors = [];\r\n if (value.length !== argsCount) {\r\n errors.push(getError(ValidatorType.funcOfxArguments, [String(argsCount)]));\r\n }\r\n return { value: value, isSet: true, isValid: !errors.length, errors: errors };\r\n}; };\r\nvar onFunctionWithXAndMoreArguments = function (argsCount) { return function (value) {\r\n var result = onFunction(value);\r\n if (!result.isValid) {\r\n return result;\r\n }\r\n value = result.value;\r\n var errors = [];\r\n if (value.length < argsCount) {\r\n errors.push(getError(ValidatorType.funcOfxArguments, [String(argsCount)]));\r\n }\r\n return { value: value, isSet: true, isValid: !errors.length, errors: errors };\r\n}; };\r\nvar onFunctionWithXToYArguments = function (from, to) { return function (value) {\r\n var result = onFunction(value);\r\n if (!result.isValid) {\r\n return result;\r\n }\r\n value = result.value;\r\n var errors = [];\r\n if (value.length < from || value.length > to) {\r\n errors.push(getError(ValidatorType.funcOfXToYArguments, [String(from), String(to)]));\r\n }\r\n return { value: value, isSet: true, isValid: !errors.length, errors: errors };\r\n}; };\r\nvar onOneOf = function (tokens, must) { return function (value, context) {\r\n var errors = [];\r\n var isSet = value !== void 0;\r\n var noOneIsPresent = !isSet;\r\n var err = must ? ValidatorType.oneOfMust : ValidatorType.oneOfCan;\r\n if (!Array.isArray(tokens) || !tokens.length) {\r\n errors.push(getError(err, ['undefined']));\r\n }\r\n else {\r\n for (var i = tokens.length - 1; i >= 0; i--) {\r\n var token = tokens[i];\r\n if (typeof token !== 'string') {\r\n errors.push(getError(err, [tokens.join('\", \"')]) + ' (non-string token)');\r\n break;\r\n }\r\n var isAnotherPresent = context && Object.prototype.hasOwnProperty.call(context, token);\r\n if (isSet && isAnotherPresent) {\r\n errors.push(getError(err, [tokens.join('\", \"')]) + \" (\".concat(token, \" is present)\"));\r\n break;\r\n }\r\n if (noOneIsPresent && isAnotherPresent) {\r\n noOneIsPresent = false;\r\n }\r\n }\r\n if (must && noOneIsPresent) {\r\n errors.push(getError(err, [tokens.join('\", \"')]));\r\n }\r\n }\r\n return { value: value, isSet: isSet, isValid: !errors.length, errors: errors };\r\n}; };\r\nvar onOr = function (validators) { return function (value) {\r\n var errors = [];\r\n if (validators.every(function (validator) { return !validator.method(value).isValid; })) {\r\n errors.push(validators.map(function (v) { return v.type; }).join(' OR '));\r\n }\r\n return { value: value, isSet: true, isValid: !errors.length, errors: errors };\r\n}; };\r\nvar onEnum = function (list) { return function (value) {\r\n var errors = [];\r\n var values = Object.keys(list).filter(function (k) { return isNaN(Number(k)); }).map(function (k) { return list[k]; });\r\n if (!values.some(function (item) { return item === value; })) {\r\n errors.push(getError(ValidatorType.enum, ['[' + values.join(',') + ']']));\r\n }\r\n return { value: value, isSet: true, isValid: !errors.length, errors: errors };\r\n}; };\r\nvar VALIDATORS = {\r\n NUMBER: {\r\n type: ValidatorType.number,\r\n method: onNumber\r\n },\r\n INTEGER: {\r\n type: ValidatorType.integer,\r\n method: onInteger\r\n },\r\n INTEGER_UNLIMITED: {\r\n type: ValidatorType.integerUnlimited,\r\n method: onIntegerUnlimited\r\n },\r\n MORE_OR_EQUAL: function (limit, fallback) { return ({\r\n type: ValidatorType.moreOrEqual,\r\n method: onMoreOrEqual(limit, fallback)\r\n }); },\r\n BOOLEAN: {\r\n type: ValidatorType.boolean,\r\n method: onBoolean\r\n },\r\n OBJECT: {\r\n type: ValidatorType.object,\r\n method: onObject\r\n },\r\n ITEM_LIST: {\r\n type: ValidatorType.itemList,\r\n method: onItemList\r\n },\r\n ELEMENT: {\r\n type: ValidatorType.element,\r\n method: onHtmlElement\r\n },\r\n FUNC: {\r\n type: ValidatorType.function,\r\n method: onFunction\r\n },\r\n FUNC_WITH_X_ARGUMENTS: function (count) { return ({\r\n type: ValidatorType.funcOfxArguments,\r\n method: onFunctionWithXArguments(count)\r\n }); },\r\n FUNC_WITH_X_AND_MORE_ARGUMENTS: function (count) { return ({\r\n type: ValidatorType.funcOfxAndMoreArguments,\r\n method: onFunctionWithXAndMoreArguments(count)\r\n }); },\r\n FUNC_WITH_X_TO_Y_ARGUMENTS: function (from, to) { return ({\r\n type: ValidatorType.funcOfXToYArguments,\r\n method: onFunctionWithXToYArguments(from, to)\r\n }); },\r\n ONE_OF_CAN: function (list) { return ({\r\n type: ValidatorType.oneOfCan,\r\n method: onOneOf(list, false)\r\n }); },\r\n ONE_OF_MUST: function (list) { return ({\r\n type: ValidatorType.oneOfMust,\r\n method: onOneOf(list, true)\r\n }); },\r\n OR: function (list) { return ({\r\n type: ValidatorType.or,\r\n method: onOr(list)\r\n }); },\r\n ENUM: function (list) { return ({\r\n type: ValidatorType.enum,\r\n method: onEnum(list)\r\n }); }\r\n};\r\nvar ValidatedData = /** @class */ (function () {\r\n function ValidatedData(context) {\r\n this.params = {};\r\n this.contextErrors = [];\r\n this.errors = [];\r\n this.isValid = true;\r\n this.setContext(context);\r\n }\r\n ValidatedData.prototype.setContext = function (context) {\r\n if (!context || Object.prototype.toString.call(context) !== '[object Object]') {\r\n this.setCommonError('context is not an object');\r\n this.isValidContext = false;\r\n }\r\n else {\r\n this.isValidContext = true;\r\n }\r\n this.context = context;\r\n };\r\n ValidatedData.prototype.setValidity = function () {\r\n var _this = this;\r\n this.errors = Object.keys(this.params).reduce(function (acc, key) { return __spreadArray(__spreadArray([], __read(acc), false), __read(_this.params[key].errors), false); }, []);\r\n this.isValid = !this.errors.length;\r\n };\r\n ValidatedData.prototype.setCommonError = function (error) {\r\n this.contextErrors.push(error);\r\n this.errors.push(error);\r\n this.isValid = false;\r\n };\r\n ValidatedData.prototype.setParam = function (token, value) {\r\n if (!value.isValid) {\r\n value.errors = !value.isSet\r\n ? [\"\\\"\".concat(token, \"\\\" must be set\")]\r\n : value.errors.map(function (err) {\r\n return \"\\\"\".concat(token, \"\\\" \").concat(err);\r\n });\r\n }\r\n this.params[token] = value;\r\n this.setValidity();\r\n };\r\n ValidatedData.prototype.showErrors = function () {\r\n return this.errors.length\r\n ? 'validation failed: ' + this.errors.join(', ')\r\n : '';\r\n };\r\n return ValidatedData;\r\n}());\r\nvar runValidator = function (current, validator, context) {\r\n var value = current.value, errors = current.errors;\r\n var result = validator.method(value, context);\r\n var _errors = __spreadArray(__spreadArray([], __read(errors), false), __read(result.errors), false);\r\n return {\r\n value: result.value,\r\n isSet: result.isSet,\r\n isValid: !_errors.length,\r\n errors: _errors\r\n };\r\n};\r\nvar getDefault = function (value, prop) {\r\n var empty = value === void 0;\r\n var auto = !prop.mandatory && prop.defaultValue !== void 0;\r\n return {\r\n value: !empty ? value : (auto ? prop.defaultValue : void 0),\r\n isSet: !empty || auto,\r\n isValid: !empty || !prop.mandatory,\r\n errors: []\r\n };\r\n};\r\nvar validateOne = function (context, name, prop) {\r\n var e_1, _a;\r\n var result = getDefault(context[name], prop);\r\n if (!result.isSet) {\r\n var oneOfMust = prop.validators.find(function (v) { return v.type === ValidatorType.oneOfMust; });\r\n if (oneOfMust) {\r\n return runValidator(result, oneOfMust, context);\r\n }\r\n }\r\n else {\r\n try {\r\n for (var _b = __values(Object.values(prop.validators)), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var validator = _c.value;\r\n var current = runValidator(result, validator, context);\r\n if (!current.isValid && prop.defaultValue !== void 0) {\r\n return {\r\n value: prop.defaultValue,\r\n isSet: true,\r\n isValid: true,\r\n errors: []\r\n };\r\n }\r\n Object.assign(result, current);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n }\r\n return result;\r\n};\r\nvar validate = function (context, params) {\r\n var data = new ValidatedData(context);\r\n Object.entries(params).forEach(function (_a) {\r\n var _b = __read(_a, 2), key = _b[0], prop = _b[1];\r\n return data.setParam(key, data.isValidContext\r\n ? validateOne(data.context, key, prop)\r\n : getDefault(void 0, prop));\r\n });\r\n return data;\r\n};\n\nvar _a$4;\r\nvar OBJECT$2 = VALIDATORS.OBJECT, FUNC_WITH_X_AND_MORE_ARGUMENTS$1 = VALIDATORS.FUNC_WITH_X_AND_MORE_ARGUMENTS;\r\nvar DatasourceProps;\r\n(function (DatasourceProps) {\r\n DatasourceProps[\"get\"] = \"get\";\r\n DatasourceProps[\"settings\"] = \"settings\";\r\n DatasourceProps[\"devSettings\"] = \"devSettings\";\r\n})(DatasourceProps || (DatasourceProps = {}));\r\nvar DATASOURCE = (_a$4 = {},\r\n _a$4[DatasourceProps.get] = {\r\n validators: [FUNC_WITH_X_AND_MORE_ARGUMENTS$1(2)],\r\n mandatory: true\r\n },\r\n _a$4[DatasourceProps.settings] = {\r\n validators: [OBJECT$2]\r\n },\r\n _a$4[DatasourceProps.devSettings] = {\r\n validators: [OBJECT$2]\r\n },\r\n _a$4);\n\nvar _a$3, _b$2, _c$1;\r\nvar NUMBER = VALIDATORS.NUMBER, INTEGER$1 = VALIDATORS.INTEGER, INTEGER_UNLIMITED$1 = VALIDATORS.INTEGER_UNLIMITED, MORE_OR_EQUAL = VALIDATORS.MORE_OR_EQUAL, BOOLEAN$1 = VALIDATORS.BOOLEAN, ELEMENT$1 = VALIDATORS.ELEMENT, FUNC$1 = VALIDATORS.FUNC, OR$1 = VALIDATORS.OR, ENUM = VALIDATORS.ENUM;\r\nvar Settings$1;\r\n(function (Settings) {\r\n Settings[\"adapter\"] = \"adapter\";\r\n Settings[\"startIndex\"] = \"startIndex\";\r\n Settings[\"minIndex\"] = \"minIndex\";\r\n Settings[\"maxIndex\"] = \"maxIndex\";\r\n Settings[\"itemSize\"] = \"itemSize\";\r\n Settings[\"bufferSize\"] = \"bufferSize\";\r\n Settings[\"padding\"] = \"padding\";\r\n Settings[\"infinite\"] = \"infinite\";\r\n Settings[\"horizontal\"] = \"horizontal\";\r\n Settings[\"windowViewport\"] = \"windowViewport\";\r\n Settings[\"viewportElement\"] = \"viewportElement\";\r\n Settings[\"inverse\"] = \"inverse\";\r\n Settings[\"onBeforeClip\"] = \"onBeforeClip\";\r\n Settings[\"sizeStrategy\"] = \"sizeStrategy\";\r\n})(Settings$1 || (Settings$1 = {}));\r\nvar DevSettings;\r\n(function (DevSettings) {\r\n DevSettings[\"debug\"] = \"debug\";\r\n DevSettings[\"immediateLog\"] = \"immediateLog\";\r\n DevSettings[\"logProcessRun\"] = \"logProcessRun\";\r\n DevSettings[\"logTime\"] = \"logTime\";\r\n DevSettings[\"throttle\"] = \"throttle\";\r\n DevSettings[\"initDelay\"] = \"initDelay\";\r\n DevSettings[\"initWindowDelay\"] = \"initWindowDelay\";\r\n DevSettings[\"cacheData\"] = \"cacheData\";\r\n DevSettings[\"cacheOnReload\"] = \"cacheOnReload\";\r\n DevSettings[\"dismissOverflowAnchor\"] = \"dismissOverflowAnchor\";\r\n DevSettings[\"directionPriority\"] = \"directionPriority\";\r\n})(DevSettings || (DevSettings = {}));\r\nvar MIN = (_a$3 = {},\r\n _a$3[Settings$1.itemSize] = 1,\r\n _a$3[Settings$1.bufferSize] = 1,\r\n _a$3[Settings$1.padding] = 0.01,\r\n _a$3[DevSettings.throttle] = 0,\r\n _a$3[DevSettings.initDelay] = 0,\r\n _a$3[DevSettings.initWindowDelay] = 0,\r\n _a$3);\r\nvar SETTINGS = (_b$2 = {},\r\n _b$2[Settings$1.adapter] = {\r\n validators: [BOOLEAN$1],\r\n defaultValue: false\r\n },\r\n _b$2[Settings$1.startIndex] = {\r\n validators: [INTEGER$1],\r\n defaultValue: 1\r\n },\r\n _b$2[Settings$1.minIndex] = {\r\n validators: [INTEGER_UNLIMITED$1],\r\n defaultValue: -Infinity\r\n },\r\n _b$2[Settings$1.maxIndex] = {\r\n validators: [INTEGER_UNLIMITED$1],\r\n defaultValue: Infinity\r\n },\r\n _b$2[Settings$1.itemSize] = {\r\n validators: [INTEGER$1, MORE_OR_EQUAL(MIN[Settings$1.itemSize], true)],\r\n defaultValue: NaN\r\n },\r\n _b$2[Settings$1.bufferSize] = {\r\n validators: [INTEGER$1, MORE_OR_EQUAL(MIN[Settings$1.bufferSize], true)],\r\n defaultValue: 5\r\n },\r\n _b$2[Settings$1.padding] = {\r\n validators: [NUMBER, MORE_OR_EQUAL(MIN[Settings$1.padding], true)],\r\n defaultValue: 0.5\r\n },\r\n _b$2[Settings$1.infinite] = {\r\n validators: [BOOLEAN$1],\r\n defaultValue: false\r\n },\r\n _b$2[Settings$1.horizontal] = {\r\n validators: [BOOLEAN$1],\r\n defaultValue: false\r\n },\r\n _b$2[Settings$1.windowViewport] = {\r\n validators: [BOOLEAN$1],\r\n defaultValue: false\r\n },\r\n _b$2[Settings$1.viewportElement] = {\r\n validators: [OR$1([ELEMENT$1, FUNC$1])],\r\n defaultValue: null\r\n },\r\n _b$2[Settings$1.inverse] = {\r\n validators: [BOOLEAN$1],\r\n defaultValue: false\r\n },\r\n _b$2[Settings$1.onBeforeClip] = {\r\n validators: [FUNC$1],\r\n defaultValue: null\r\n },\r\n _b$2[Settings$1.sizeStrategy] = {\r\n validators: [ENUM(SizeStrategy)],\r\n defaultValue: SizeStrategy.Average\r\n },\r\n _b$2);\r\nvar DEV_SETTINGS = (_c$1 = {},\r\n _c$1[DevSettings.debug] = {\r\n validators: [BOOLEAN$1],\r\n defaultValue: false\r\n },\r\n _c$1[DevSettings.immediateLog] = {\r\n validators: [BOOLEAN$1],\r\n defaultValue: true\r\n },\r\n _c$1[DevSettings.logProcessRun] = {\r\n validators: [BOOLEAN$1],\r\n defaultValue: false\r\n },\r\n _c$1[DevSettings.logTime] = {\r\n validators: [BOOLEAN$1],\r\n defaultValue: false\r\n },\r\n _c$1[DevSettings.throttle] = {\r\n validators: [INTEGER$1, MORE_OR_EQUAL(MIN[DevSettings.throttle], true)],\r\n defaultValue: 40\r\n },\r\n _c$1[DevSettings.initDelay] = {\r\n validators: [INTEGER$1, MORE_OR_EQUAL(MIN[DevSettings.initDelay], true)],\r\n defaultValue: 1\r\n },\r\n _c$1[DevSettings.initWindowDelay] = {\r\n validators: [INTEGER$1, MORE_OR_EQUAL(MIN[DevSettings.initWindowDelay], true)],\r\n defaultValue: 40\r\n },\r\n _c$1[DevSettings.cacheData] = {\r\n validators: [BOOLEAN$1],\r\n defaultValue: false\r\n },\r\n _c$1[DevSettings.cacheOnReload] = {\r\n validators: [BOOLEAN$1],\r\n defaultValue: false\r\n },\r\n _c$1[DevSettings.dismissOverflowAnchor] = {\r\n validators: [BOOLEAN$1],\r\n defaultValue: true\r\n },\r\n _c$1[DevSettings.directionPriority] = {\r\n validators: [ENUM(Direction)],\r\n defaultValue: Direction.backward\r\n },\r\n _c$1);\n\nvar CommonProcess;\r\n(function (CommonProcess) {\r\n CommonProcess[\"init\"] = \"init\";\r\n CommonProcess[\"scroll\"] = \"scroll\";\r\n CommonProcess[\"start\"] = \"start\";\r\n CommonProcess[\"preFetch\"] = \"preFetch\";\r\n CommonProcess[\"fetch\"] = \"fetch\";\r\n CommonProcess[\"postFetch\"] = \"postFetch\";\r\n CommonProcess[\"render\"] = \"render\";\r\n CommonProcess[\"preClip\"] = \"preClip\";\r\n CommonProcess[\"clip\"] = \"clip\";\r\n CommonProcess[\"adjust\"] = \"adjust\";\r\n CommonProcess[\"end\"] = \"end\";\r\n})(CommonProcess || (CommonProcess = {}));\r\nvar AdapterProcess;\r\n(function (AdapterProcess) {\r\n AdapterProcess[\"reset\"] = \"adapter.reset\";\r\n AdapterProcess[\"reload\"] = \"adapter.reload\";\r\n AdapterProcess[\"append\"] = \"adapter.append\";\r\n AdapterProcess[\"prepend\"] = \"adapter.prepend\";\r\n AdapterProcess[\"check\"] = \"adapter.check\";\r\n AdapterProcess[\"remove\"] = \"adapter.remove\";\r\n AdapterProcess[\"replace\"] = \"adapter.replace\";\r\n AdapterProcess[\"update\"] = \"adapter.update\";\r\n AdapterProcess[\"clip\"] = \"adapter.clip\";\r\n AdapterProcess[\"insert\"] = \"adapter.insert\";\r\n AdapterProcess[\"pause\"] = \"adapter.pause\";\r\n AdapterProcess[\"fix\"] = \"adapter.fix\";\r\n})(AdapterProcess || (AdapterProcess = {}));\r\nvar ProcessStatus;\r\n(function (ProcessStatus) {\r\n ProcessStatus[\"start\"] = \"start\";\r\n ProcessStatus[\"next\"] = \"next\";\r\n ProcessStatus[\"done\"] = \"done\";\r\n ProcessStatus[\"error\"] = \"error\";\r\n})(ProcessStatus || (ProcessStatus = {}));\n\nvar _a$2, _b$1, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\nvar INTEGER = VALIDATORS.INTEGER, INTEGER_UNLIMITED = VALIDATORS.INTEGER_UNLIMITED, BOOLEAN = VALIDATORS.BOOLEAN, OBJECT$1 = VALIDATORS.OBJECT, ITEM_LIST = VALIDATORS.ITEM_LIST, FUNC_WITH_X_ARGUMENTS$1 = VALIDATORS.FUNC_WITH_X_ARGUMENTS, FUNC_WITH_X_AND_MORE_ARGUMENTS = VALIDATORS.FUNC_WITH_X_AND_MORE_ARGUMENTS, FUNC_WITH_X_TO_Y_ARGUMENTS = VALIDATORS.FUNC_WITH_X_TO_Y_ARGUMENTS, ONE_OF_MUST = VALIDATORS.ONE_OF_MUST, ONE_OF_CAN = VALIDATORS.ONE_OF_CAN, OR = VALIDATORS.OR;\r\nvar AdapterNoParams;\r\n(function (AdapterNoParams) {\r\n})(AdapterNoParams || (AdapterNoParams = {}));\r\nvar NO_METHOD_PARAMS = {};\r\nvar RESET_METHOD_PARAMS = (_a$2 = {},\r\n _a$2[DatasourceProps.get] = {\r\n validators: [FUNC_WITH_X_AND_MORE_ARGUMENTS(2)]\r\n },\r\n _a$2[DatasourceProps.settings] = {\r\n validators: [OBJECT$1]\r\n },\r\n _a$2[DatasourceProps.devSettings] = {\r\n validators: [OBJECT$1]\r\n },\r\n _a$2);\r\nvar AdapterReloadParams;\r\n(function (AdapterReloadParams) {\r\n AdapterReloadParams[\"reloadIndex\"] = \"reloadIndex\";\r\n})(AdapterReloadParams || (AdapterReloadParams = {}));\r\nvar RELOAD_METHOD_PARAMS = (_b$1 = {},\r\n _b$1[AdapterReloadParams.reloadIndex] = {\r\n validators: [INTEGER]\r\n },\r\n _b$1);\r\nvar AdapterPrependParams;\r\n(function (AdapterPrependParams) {\r\n AdapterPrependParams[\"items\"] = \"items\";\r\n AdapterPrependParams[\"bof\"] = \"bof\";\r\n AdapterPrependParams[\"increase\"] = \"increase\";\r\n})(AdapterPrependParams || (AdapterPrependParams = {}));\r\nvar PREPEND_METHOD_PARAMS = (_c = {},\r\n _c[AdapterPrependParams.items] = {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n _c[AdapterPrependParams.bof] = {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n _c[AdapterPrependParams.increase] = {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n _c);\r\nvar AdapterAppendParams;\r\n(function (AdapterAppendParams) {\r\n AdapterAppendParams[\"items\"] = \"items\";\r\n AdapterAppendParams[\"eof\"] = \"eof\";\r\n AdapterAppendParams[\"decrease\"] = \"decrease\";\r\n})(AdapterAppendParams || (AdapterAppendParams = {}));\r\nvar APPEND_METHOD_PARAMS = (_d = {},\r\n _d[AdapterAppendParams.items] = {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n _d[AdapterAppendParams.eof] = {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n _d[AdapterAppendParams.decrease] = {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n _d);\r\nvar AdapterRemoveParams;\r\n(function (AdapterRemoveParams) {\r\n AdapterRemoveParams[\"predicate\"] = \"predicate\";\r\n AdapterRemoveParams[\"indexes\"] = \"indexes\";\r\n AdapterRemoveParams[\"increase\"] = \"increase\";\r\n})(AdapterRemoveParams || (AdapterRemoveParams = {}));\r\nvar REMOVE_METHOD_PARAMS = (_e = {},\r\n _e[AdapterRemoveParams.predicate] = {\r\n validators: [FUNC_WITH_X_ARGUMENTS$1(1), ONE_OF_MUST([AdapterRemoveParams.indexes])]\r\n },\r\n _e[AdapterRemoveParams.indexes] = {\r\n validators: [ITEM_LIST, ONE_OF_MUST([AdapterRemoveParams.predicate])]\r\n },\r\n _e[AdapterRemoveParams.increase] = {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n _e);\r\nvar AdapterClipParams;\r\n(function (AdapterClipParams) {\r\n AdapterClipParams[\"backwardOnly\"] = \"backwardOnly\";\r\n AdapterClipParams[\"forwardOnly\"] = \"forwardOnly\";\r\n})(AdapterClipParams || (AdapterClipParams = {}));\r\nvar CLIP_METHOD_PARAMS = (_f = {},\r\n _f[AdapterClipParams.backwardOnly] = {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterClipParams.forwardOnly])],\r\n defaultValue: false\r\n },\r\n _f[AdapterClipParams.forwardOnly] = {\r\n validators: [BOOLEAN, ONE_OF_CAN([AdapterClipParams.backwardOnly])],\r\n defaultValue: false\r\n },\r\n _f);\r\nvar AdapterInsertParams;\r\n(function (AdapterInsertParams) {\r\n AdapterInsertParams[\"items\"] = \"items\";\r\n AdapterInsertParams[\"before\"] = \"before\";\r\n AdapterInsertParams[\"after\"] = \"after\";\r\n AdapterInsertParams[\"beforeIndex\"] = \"beforeIndex\";\r\n AdapterInsertParams[\"afterIndex\"] = \"afterIndex\";\r\n AdapterInsertParams[\"decrease\"] = \"decrease\";\r\n})(AdapterInsertParams || (AdapterInsertParams = {}));\r\nvar INSERT_METHOD_PARAMS = (_g = {},\r\n _g[AdapterInsertParams.items] = {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n _g[AdapterInsertParams.before] = {\r\n validators: [FUNC_WITH_X_ARGUMENTS$1(1), ONE_OF_MUST([\r\n AdapterInsertParams.after, AdapterInsertParams.beforeIndex, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n _g[AdapterInsertParams.after] = {\r\n validators: [FUNC_WITH_X_ARGUMENTS$1(1), ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.beforeIndex, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n _g[AdapterInsertParams.beforeIndex] = {\r\n validators: [INTEGER, ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.after, AdapterInsertParams.afterIndex\r\n ])]\r\n },\r\n _g[AdapterInsertParams.afterIndex] = {\r\n validators: [INTEGER, ONE_OF_MUST([\r\n AdapterInsertParams.before, AdapterInsertParams.after, AdapterInsertParams.beforeIndex\r\n ])]\r\n },\r\n _g[AdapterInsertParams.decrease] = {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n _g);\r\nvar AdapterReplaceParams;\r\n(function (AdapterReplaceParams) {\r\n AdapterReplaceParams[\"items\"] = \"items\";\r\n AdapterReplaceParams[\"predicate\"] = \"predicate\";\r\n AdapterReplaceParams[\"fixRight\"] = \"fixRight\";\r\n})(AdapterReplaceParams || (AdapterReplaceParams = {}));\r\nvar REPLACE_METHOD_PARAMS = (_h = {},\r\n _h[AdapterInsertParams.items] = {\r\n validators: [ITEM_LIST],\r\n mandatory: true\r\n },\r\n _h[AdapterReplaceParams.predicate] = {\r\n validators: [FUNC_WITH_X_ARGUMENTS$1(1)],\r\n mandatory: true\r\n },\r\n _h[AdapterReplaceParams.fixRight] = {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n _h);\r\nvar AdapterUpdateParams;\r\n(function (AdapterUpdateParams) {\r\n AdapterUpdateParams[\"predicate\"] = \"predicate\";\r\n AdapterUpdateParams[\"fixRight\"] = \"fixRight\";\r\n})(AdapterUpdateParams || (AdapterUpdateParams = {}));\r\nvar UPDATE_METHOD_PARAMS = (_j = {},\r\n _j[AdapterUpdateParams.predicate] = {\r\n validators: [FUNC_WITH_X_ARGUMENTS$1(1)],\r\n mandatory: true\r\n },\r\n _j[AdapterUpdateParams.fixRight] = {\r\n validators: [BOOLEAN],\r\n defaultValue: false\r\n },\r\n _j);\r\nvar AdapterFixParams;\r\n(function (AdapterFixParams) {\r\n AdapterFixParams[\"scrollPosition\"] = \"scrollPosition\";\r\n AdapterFixParams[\"minIndex\"] = \"minIndex\";\r\n AdapterFixParams[\"maxIndex\"] = \"maxIndex\";\r\n AdapterFixParams[\"updater\"] = \"updater\";\r\n AdapterFixParams[\"scrollToItem\"] = \"scrollToItem\";\r\n AdapterFixParams[\"scrollToItemOpt\"] = \"scrollToItemOpt\";\r\n})(AdapterFixParams || (AdapterFixParams = {}));\r\nvar FIX_METHOD_PARAMS = (_k = {},\r\n _k[AdapterFixParams.scrollPosition] = {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n _k[AdapterFixParams.minIndex] = {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n _k[AdapterFixParams.maxIndex] = {\r\n validators: [INTEGER_UNLIMITED]\r\n },\r\n _k[AdapterFixParams.updater] = {\r\n validators: [FUNC_WITH_X_TO_Y_ARGUMENTS(1, 2)]\r\n },\r\n _k[AdapterFixParams.scrollToItem] = {\r\n validators: [FUNC_WITH_X_ARGUMENTS$1(1)]\r\n },\r\n _k[AdapterFixParams.scrollToItemOpt] = {\r\n validators: [OR([BOOLEAN, OBJECT$1])]\r\n },\r\n _k);\r\nvar AdapterMethods = (_l = {},\r\n _l[AdapterProcess.reset] = DatasourceProps,\r\n _l[AdapterProcess.reload] = AdapterReloadParams,\r\n _l[AdapterProcess.prepend] = AdapterPrependParams,\r\n _l[AdapterProcess.append] = AdapterAppendParams,\r\n _l[AdapterProcess.check] = AdapterNoParams,\r\n _l[AdapterProcess.remove] = AdapterRemoveParams,\r\n _l[AdapterProcess.clip] = AdapterClipParams,\r\n _l[AdapterProcess.insert] = AdapterInsertParams,\r\n _l[AdapterProcess.replace] = AdapterReplaceParams,\r\n _l[AdapterProcess.update] = AdapterUpdateParams,\r\n _l[AdapterProcess.pause] = AdapterNoParams,\r\n _l[AdapterProcess.fix] = AdapterFixParams,\r\n _l);\r\nvar ADAPTER_METHODS = (_m = {},\r\n _m[AdapterProcess.reset] = RESET_METHOD_PARAMS,\r\n _m[AdapterProcess.reload] = RELOAD_METHOD_PARAMS,\r\n _m[AdapterProcess.prepend] = PREPEND_METHOD_PARAMS,\r\n _m[AdapterProcess.append] = APPEND_METHOD_PARAMS,\r\n _m[AdapterProcess.check] = NO_METHOD_PARAMS,\r\n _m[AdapterProcess.remove] = REMOVE_METHOD_PARAMS,\r\n _m[AdapterProcess.clip] = CLIP_METHOD_PARAMS,\r\n _m[AdapterProcess.insert] = INSERT_METHOD_PARAMS,\r\n _m[AdapterProcess.replace] = REPLACE_METHOD_PARAMS,\r\n _m[AdapterProcess.update] = UPDATE_METHOD_PARAMS,\r\n _m[AdapterProcess.pause] = NO_METHOD_PARAMS,\r\n _m[AdapterProcess.fix] = FIX_METHOD_PARAMS,\r\n _m);\n\nvar _a$1;\r\nvar ELEMENT = VALIDATORS.ELEMENT, OBJECT = VALIDATORS.OBJECT, FUNC = VALIDATORS.FUNC, FUNC_WITH_X_ARGUMENTS = VALIDATORS.FUNC_WITH_X_ARGUMENTS;\r\nvar WorkflowProps;\r\n(function (WorkflowProps) {\r\n WorkflowProps[\"consumer\"] = \"consumer\";\r\n WorkflowProps[\"element\"] = \"element\";\r\n WorkflowProps[\"datasource\"] = \"datasource\";\r\n WorkflowProps[\"run\"] = \"run\";\r\n WorkflowProps[\"Routines\"] = \"Routines\";\r\n})(WorkflowProps || (WorkflowProps = {}));\r\nvar WORKFLOW = (_a$1 = {},\r\n _a$1[WorkflowProps.consumer] = {\r\n validators: [OBJECT]\r\n },\r\n _a$1[WorkflowProps.element] = {\r\n validators: [ELEMENT],\r\n mandatory: true\r\n },\r\n _a$1[WorkflowProps.datasource] = {\r\n validators: [OBJECT],\r\n mandatory: true\r\n },\r\n _a$1[WorkflowProps.run] = {\r\n validators: [FUNC_WITH_X_ARGUMENTS(1)],\r\n mandatory: true\r\n },\r\n _a$1[WorkflowProps.Routines] = {\r\n validators: [FUNC]\r\n },\r\n _a$1);\n\nvar Settings = /** @class */ (function () {\r\n function Settings(settings, devSettings, instanceIndex) {\r\n this.parseInput(settings, SETTINGS);\r\n this.parseInput(devSettings, DEV_SETTINGS);\r\n this.instanceIndex = instanceIndex;\r\n this.initializeDelay = this.getInitializeDelay();\r\n this.viewport = this.getViewport();\r\n // todo: min/max indexes must be ignored if infinite mode is enabled ??\r\n }\r\n Settings.prototype.parseInput = function (input, props) {\r\n var _this = this;\r\n var result = validate(input, props);\r\n if (!result.isValid) {\r\n throw new Error('Invalid settings');\r\n }\r\n Object.entries(result.params).forEach(function (_a) {\r\n var _b;\r\n var _c = __read(_a, 2), key = _c[0], par = _c[1];\r\n return Object.assign(_this, (_b = {}, _b[key] = par.value, _b));\r\n });\r\n };\r\n Settings.prototype.getInitializeDelay = function () {\r\n var result = 0;\r\n if (this.windowViewport && this.initWindowDelay && !('scrollRestoration' in history)) {\r\n result = this.initWindowDelay;\r\n }\r\n if (this.initDelay > 0) {\r\n result = Math.max(result, this.initDelay);\r\n }\r\n return result;\r\n };\r\n Settings.prototype.getViewport = function () {\r\n if (typeof this.viewportElement !== 'function') {\r\n return this.viewportElement;\r\n }\r\n var value = this.viewportElement();\r\n var result = validateOne({ value: value }, 'value', { validators: [VALIDATORS.ELEMENT] });\r\n if (!result.isValid) {\r\n return null; // fallback to default (null) if Function didn't return HTML element synchronously\r\n }\r\n return result.value;\r\n };\r\n return Settings;\r\n}());\n\nvar BaseProcessFactory = function (process) { var _a; return _a = /** @class */ (function () {\r\n function BaseProcess() {\r\n }\r\n return BaseProcess;\r\n }()),\r\n _a.process = process,\r\n _a; };\r\nvar BaseAdapterProcessFactory = function (process) { var _a; return _a = /** @class */ (function (_super) {\r\n __extends(BaseAdapterProcess, _super);\r\n function BaseAdapterProcess() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n BaseAdapterProcess.parseInput = function (scroller, options, ignoreErrors, _process) {\r\n if (ignoreErrors === void 0) { ignoreErrors = false; }\r\n var result = {\r\n data: validate(options, ADAPTER_METHODS[_process || process])\r\n };\r\n if (result.data.isValid) {\r\n result.params = Object.entries(result.data.params)\r\n .reduce(function (acc, _a) {\r\n var _b;\r\n var _c = __read(_a, 2), key = _c[0], value = _c[1].value;\r\n return (__assign(__assign({}, acc), (_b = {}, _b[key] = value, _b)));\r\n }, {});\r\n }\r\n else {\r\n scroller.logger.log(function () { return result.data.showErrors(); });\r\n if (!ignoreErrors) {\r\n scroller.workflow.call({\r\n process: process,\r\n status: ProcessStatus.error,\r\n payload: { error: \"Wrong argument of the \\\"\".concat(process, \"\\\" method call\") }\r\n });\r\n }\r\n }\r\n return result;\r\n };\r\n return BaseAdapterProcess;\r\n }(BaseProcessFactory(process))),\r\n _a.process = process,\r\n _a; };\n\nvar initProcesses = [CommonProcess.init, AdapterProcess.reset, AdapterProcess.reload];\r\nvar Init = /** @class */ (function (_super) {\r\n __extends(Init, _super);\r\n function Init() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Init.run = function (scroller, process) {\r\n var state = scroller.state, workflow = scroller.workflow;\r\n var isInitial = initProcesses.includes(process);\r\n scroller.logger.logCycle(true);\r\n state.startWorkflowCycle(isInitial, process);\r\n workflow.call({\r\n process: Init.process,\r\n status: ProcessStatus.next\r\n });\r\n };\r\n return Init;\r\n}(BaseProcessFactory(CommonProcess.init)));\n\nvar Scroll = /** @class */ (function (_super) {\r\n __extends(Scroll, _super);\r\n function Scroll() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Scroll.run = function (scroller, payload) {\r\n var workflow = scroller.workflow, viewport = scroller.viewport;\r\n var position = viewport.scrollPosition;\r\n if (Scroll.onSynthetic(scroller, position)) {\r\n return;\r\n }\r\n Scroll.onThrottle(scroller, position, function () {\r\n return Scroll.onScroll(scroller, workflow);\r\n });\r\n };\r\n Scroll.onSynthetic = function (scroller, position) {\r\n var scroll = scroller.state.scroll;\r\n var synthPos = scroll.syntheticPosition;\r\n if (synthPos !== null) {\r\n if (scroll.syntheticFulfill) {\r\n scroll.syntheticPosition = null;\r\n }\r\n if (!scroll.syntheticFulfill || synthPos === position) {\r\n scroller.logger.log(function () { return [\r\n 'skipping scroll', position,\r\n \"[\".concat(scroll.syntheticFulfill ? '' : 'pre-', \"synthetic]\")\r\n ]; });\r\n return true;\r\n }\r\n scroller.logger.log(function () { return [\r\n 'synthetic scroll has been fulfilled:', position, position < synthPos ? '<' : '>', synthPos\r\n ]; });\r\n }\r\n return false;\r\n };\r\n Scroll.onThrottle = function (scroller, position, done) {\r\n var scroll = scroller.state.scroll, throttle = scroller.settings.throttle, logger = scroller.logger;\r\n scroll.current = Scroll.getScrollEvent(position, scroll.previous);\r\n var _a = scroll.current, direction = _a.direction, time = _a.time;\r\n var timeDiff = scroll.previous ? time - scroll.previous.time : Infinity;\r\n var delta = throttle - timeDiff;\r\n var shouldDelay = isFinite(delta) && delta > 0;\r\n var alreadyDelayed = !!scroll.scrollTimer;\r\n logger.log(function () { return [\r\n direction === Direction.backward ? '\\u2934' : '\\u2935',\r\n position,\r\n shouldDelay ? (timeDiff + 'ms') : '0ms',\r\n shouldDelay ? (alreadyDelayed ? 'delayed' : \"/ \".concat(delta, \"ms delay\")) : ''\r\n ]; });\r\n if (!shouldDelay) {\r\n if (scroll.scrollTimer) {\r\n clearTimeout(scroll.scrollTimer);\r\n scroll.scrollTimer = null;\r\n }\r\n done();\r\n return;\r\n }\r\n if (!alreadyDelayed) {\r\n scroll.scrollTimer = setTimeout(function () {\r\n logger.log(function () {\r\n var curr = Scroll.getScrollEvent(scroller.viewport.scrollPosition, scroll.current);\r\n return [\r\n curr.direction === Direction.backward ? '\\u2934' : '\\u2935',\r\n curr.position,\r\n (curr.time - time) + 'ms',\r\n 'triggered by timer set on',\r\n position\r\n ];\r\n });\r\n scroll.scrollTimer = null;\r\n done();\r\n }, delta);\r\n }\r\n };\r\n Scroll.getScrollEvent = function (position, previous) {\r\n var time = Number(new Date());\r\n var direction = Direction.forward;\r\n if (previous) {\r\n if (position === previous.position) {\r\n direction = previous.direction;\r\n }\r\n else if (position < previous.position) {\r\n direction = Direction.backward;\r\n }\r\n }\r\n return { position: position, direction: direction, time: time };\r\n };\r\n Scroll.onScroll = function (scroller, workflow) {\r\n var _a = scroller.state, scroll = _a.scroll, cycle = _a.cycle;\r\n scroll.previous = __assign({}, scroll.current);\r\n scroll.current = null;\r\n if (cycle.busy.get()) {\r\n scroller.logger.log(function () { return ['skipping scroll', scroll.previous.position, '[pending]']; });\r\n return;\r\n }\r\n workflow.call({\r\n process: Scroll.process,\r\n status: ProcessStatus.next\r\n });\r\n };\r\n return Scroll;\r\n}(BaseProcessFactory(CommonProcess.scroll)));\n\nvar Reset = /** @class */ (function (_super) {\r\n __extends(Reset, _super);\r\n function Reset() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Reset.run = function (scroller, options) {\r\n var datasource = scroller.datasource, buffer = scroller.buffer, paddings = scroller.viewport.paddings, cycle = scroller.state.cycle;\r\n if (options) {\r\n var data_1 = Reset.parseInput(scroller, options).data;\r\n if (!data_1.isValid) {\r\n return;\r\n }\r\n var constructed_1 = options instanceof Datasource;\r\n Object.keys(DatasourceProps).forEach(function (key) {\r\n var param = data_1.params[key];\r\n var ds = datasource;\r\n if (param.isSet || (constructed_1 && ds[key])) {\r\n ds[key] = param.value;\r\n }\r\n });\r\n }\r\n buffer.reset(true);\r\n paddings.backward.reset();\r\n paddings.forward.reset();\r\n var payload = { datasource: datasource };\r\n if (cycle.busy.get()) {\r\n payload.finalize = true;\r\n cycle.interrupter = Reset.process;\r\n }\r\n scroller.workflow.call({\r\n process: Reset.process,\r\n status: ProcessStatus.next,\r\n payload: payload\r\n });\r\n };\r\n return Reset;\r\n}(BaseAdapterProcessFactory(AdapterProcess.reset)));\n\nvar Reload = /** @class */ (function (_super) {\r\n __extends(Reload, _super);\r\n function Reload() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Reload.run = function (scroller, reloadIndex) {\r\n var viewport = scroller.viewport, state = scroller.state, buffer = scroller.buffer;\r\n var params = Reload.parseInput(scroller, { reloadIndex: reloadIndex }, true).params;\r\n buffer.reset(false, params ? params.reloadIndex : void 0);\r\n viewport.reset(buffer.startIndex);\r\n var payload = {};\r\n if (state.cycle.busy.get()) {\r\n payload.finalize = true;\r\n state.cycle.interrupter = Reload.process;\r\n }\r\n scroller.workflow.call({\r\n process: Reload.process,\r\n status: ProcessStatus.next,\r\n payload: payload\r\n });\r\n };\r\n return Reload;\r\n}(BaseAdapterProcessFactory(AdapterProcess.reload)));\n\nvar Item = /** @class */ (function () {\r\n function Item($index, data, routines) {\r\n this.container = {\r\n $index: $index,\r\n data: data\r\n };\r\n this.nodeId = String($index);\r\n this.routines = routines;\r\n this.invisible = true;\r\n this.toRemove = false;\r\n this.toInsert = false;\r\n }\r\n Object.defineProperty(Item.prototype, \"$index\", {\r\n get: function () {\r\n return this.container.$index;\r\n },\r\n set: function (value) {\r\n this.container.$index = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Item.prototype, \"data\", {\r\n get: function () {\r\n return this.container.data;\r\n },\r\n set: function (value) {\r\n this.container.data = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Item.prototype, \"element\", {\r\n get: function () {\r\n return this.container.element;\r\n },\r\n set: function (value) {\r\n this.container.element = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Item.prototype.dispose = function () {\r\n delete this.container.element;\r\n };\r\n Item.prototype.setSize = function (preSize) {\r\n if (preSize === void 0) { preSize = 0; }\r\n this.preSize = preSize;\r\n if (this.element) {\r\n this.size = this.routines.getSize(this.element);\r\n }\r\n };\r\n Item.prototype.makeVisible = function () {\r\n this.routines.makeElementVisible(this.element);\r\n this.invisible = false;\r\n };\r\n Item.prototype.hide = function () {\r\n if (this.element) {\r\n this.routines.hideElement(this.element);\r\n }\r\n };\r\n Item.prototype.scrollTo = function (argument) {\r\n if (this.element) {\r\n this.routines.scrollTo(this.element, argument);\r\n }\r\n };\r\n Item.prototype.updateIndex = function (index) {\r\n this.$index = index;\r\n this.nodeId = String(index);\r\n };\r\n Item.prototype.get = function () {\r\n return this.container;\r\n };\r\n return Item;\r\n}());\n\nvar Update = /** @class */ (function (_super) {\r\n __extends(Update, _super);\r\n function Update() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Update.run = function (scroller, options) {\r\n var params = Update.parseInput(scroller, options).params;\r\n if (!params) {\r\n return;\r\n }\r\n var shouldUpdate = Update.doUpdate(scroller, params);\r\n scroller.workflow.call({\r\n process: Update.process,\r\n status: shouldUpdate ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n };\r\n Update.doUpdate = function (scroller, params) {\r\n var buffer = scroller.buffer, viewport = scroller.viewport, fetch = scroller.state.fetch, routines = scroller.routines, logger = scroller.logger;\r\n if (!buffer.items) {\r\n logger.log(function () { return 'no items in Buffer'; });\r\n return false;\r\n }\r\n var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), firstItem = _a.item, firstIndex = _a.index, firstItemDiff = _a.diff;\r\n var _b = buffer.updateItems(params.predicate, function (index, data) { return new Item(index, data, routines); }, firstIndex, !!params.fixRight), trackedIndex = _b.trackedIndex, toRemove = _b.toRemove;\r\n var delta = 0;\r\n var trackedItem = buffer.get(trackedIndex);\r\n if (firstItem && firstItem === trackedItem) {\r\n delta = -buffer.getSizeByIndex(trackedIndex) + firstItemDiff;\r\n }\r\n toRemove.forEach(function (item) { return item.hide(); });\r\n logger.log(function () { return toRemove.length\r\n ? 'items to remove: [' + toRemove.map(function (_a) {\r\n var $index = _a.$index;\r\n return $index;\r\n }).join(',') + ']'\r\n : 'no items to remove'; });\r\n if (toRemove.length) { // insertions will be processed on render\r\n buffer.checkDefaultSize();\r\n }\r\n var toRender = buffer.items.filter(function (_a) {\r\n var toInsert = _a.toInsert;\r\n return toInsert;\r\n });\r\n logger.log(function () { return toRender.length\r\n ? 'items to render: [' + toRender.map(function (_a) {\r\n var $index = _a.$index;\r\n return $index;\r\n }).join(',') + ']'\r\n : 'no items to render'; });\r\n fetch.update(trackedIndex, delta, toRender, toRemove);\r\n return !!toRemove.length || !!toRender.length;\r\n };\r\n return Update;\r\n}(BaseAdapterProcessFactory(AdapterProcess.update)));\n\nvar Insert = /** @class */ (function (_super) {\r\n __extends(Insert, _super);\r\n function Insert() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Insert.run = function (scroller, options) {\r\n var params = Insert.parseInput(scroller, options).params;\r\n if (!params) {\r\n return;\r\n }\r\n var shouldInsert = Insert.doInsert(scroller, params);\r\n scroller.workflow.call({\r\n process: Insert.process,\r\n status: shouldInsert ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n };\r\n Insert.doInsert = function (scroller, params) {\r\n if (!Insert.insertEmpty(scroller, params)) {\r\n if (!Insert.insertInBuffer(scroller, params)) {\r\n if (!Insert.insertVirtually(scroller, params)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n Insert.insertEmpty = function (scroller, params) {\r\n var buffer = scroller.buffer, routines = scroller.routines, fetch = scroller.state.fetch;\r\n if (buffer.size) {\r\n return false;\r\n }\r\n var beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;\r\n if (!buffer.fillEmpty(items, beforeIndex, afterIndex, !!decrease, function (index, data) { return new Item(index, data, routines); })) {\r\n return false;\r\n }\r\n fetch.fill(buffer.items, buffer.startIndex);\r\n return true;\r\n };\r\n Insert.insertInBuffer = function (scroller, params) {\r\n var before = params.before, after = params.after, beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;\r\n var indexToInsert = scroller.buffer.getIndexToInsert(before || after, beforeIndex, afterIndex);\r\n if (isNaN(indexToInsert)) {\r\n return false;\r\n }\r\n var isBackward = Number.isInteger(beforeIndex) || before;\r\n var updateOptions = {\r\n predicate: function (_a) {\r\n var $index = _a.$index, data = _a.data;\r\n if (indexToInsert === $index) {\r\n return isBackward ? __spreadArray(__spreadArray([], __read(items), false), [data], false) : __spreadArray([data], __read(items), false);\r\n }\r\n return true;\r\n },\r\n fixRight: decrease\r\n };\r\n return Update.doUpdate(scroller, updateOptions);\r\n };\r\n Insert.insertVirtually = function (scroller, params) {\r\n var beforeIndex = params.beforeIndex, afterIndex = params.afterIndex, items = params.items, decrease = params.decrease;\r\n var buffer = scroller.buffer, fetch = scroller.state.fetch, viewport = scroller.viewport;\r\n var direction = Number.isInteger(beforeIndex) ? Direction.backward : Direction.forward;\r\n var indexToInsert = (direction === Direction.backward ? beforeIndex : afterIndex);\r\n if (!buffer.insertVirtually(items, indexToInsert, direction, !!decrease)) {\r\n return false;\r\n }\r\n var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index = _a.index, diff = _a.diff;\r\n fetch.firstVisible.index = index;\r\n if (!isNaN(index)) {\r\n fetch.simulate = true;\r\n fetch.firstVisible.delta = -buffer.getSizeByIndex(index) + diff;\r\n }\r\n return true;\r\n };\r\n return Insert;\r\n}(BaseAdapterProcessFactory(AdapterProcess.insert)));\n\nvar Append = /** @class */ (function (_super) {\r\n __extends(Append, _super);\r\n function Append() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Append.run = function (scroller, _a) {\r\n var process = _a.process, options = _a.options;\r\n var params = Append.parseInput(scroller, options, false, process).params;\r\n if (!params) {\r\n return;\r\n }\r\n var shouldAppend = Append.doAppend(scroller, process, params);\r\n scroller.workflow.call({\r\n process: Append.process,\r\n status: shouldAppend ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n };\r\n Append.doAppend = function (scroller, process, params) {\r\n var bof = params.bof, eof = params.eof, increase = params.increase, decrease = params.decrease;\r\n var buffer = scroller.buffer;\r\n var prepend = process === AdapterProcess.prepend;\r\n var opposite = prepend ? !increase : decrease;\r\n var beforeIndex, afterIndex, items = params.items;\r\n if (prepend) {\r\n beforeIndex = (bof ? buffer.absMinIndex : buffer.minIndex) + (!buffer.size ? 1 : 0);\r\n items = __spreadArray([], __read(items), false).reverse();\r\n }\r\n else {\r\n afterIndex = (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);\r\n }\r\n return Insert.doInsert(scroller, {\r\n items: items,\r\n beforeIndex: beforeIndex,\r\n afterIndex: afterIndex,\r\n decrease: opposite\r\n });\r\n };\r\n return Append;\r\n}(BaseAdapterProcessFactory(AdapterProcess.append)));\n\nvar Check = /** @class */ (function (_super) {\r\n __extends(Check, _super);\r\n function Check() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Check.run = function (scroller) {\r\n var workflow = scroller.workflow, buffer = scroller.buffer, fetch = scroller.state.fetch, viewport = scroller.viewport;\r\n var min = Infinity, max = -Infinity;\r\n buffer.items.forEach(function (item) {\r\n var size = item.size;\r\n item.setSize();\r\n if (item.size !== size) {\r\n buffer.cacheItem(item);\r\n min = Math.min(min, item.$index);\r\n max = Math.max(max, item.$index);\r\n }\r\n });\r\n if (Number.isFinite(min)) {\r\n fetch.first.indexBuffer = buffer.firstIndex;\r\n fetch.last.indexBuffer = buffer.lastIndex;\r\n var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), firstIndex = _a.index, diff = _a.diff;\r\n fetch.firstVisible.index = firstIndex;\r\n if (!isNaN(firstIndex)) {\r\n fetch.firstVisible.delta = -buffer.getSizeByIndex(firstIndex) + diff;\r\n }\r\n fetch.check(buffer.items.filter(function (item) { return item.$index >= min && item.$index <= max; }));\r\n }\r\n scroller.logger.stat('check');\r\n workflow.call({\r\n process: Check.process,\r\n status: Number.isFinite(min) ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n };\r\n return Check;\r\n}(BaseAdapterProcessFactory(AdapterProcess.check)));\n\nvar Remove = /** @class */ (function (_super) {\r\n __extends(Remove, _super);\r\n function Remove() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Remove.run = function (scroller, options) {\r\n var params = Remove.parseInput(scroller, options).params;\r\n if (!params) {\r\n return;\r\n }\r\n var shouldRemove = Remove.doRemove(scroller, params);\r\n scroller.workflow.call({\r\n process: Remove.process,\r\n status: shouldRemove ? ProcessStatus.next : ProcessStatus.done\r\n });\r\n };\r\n Remove.doRemove = function (scroller, params) {\r\n var fetch = scroller.state.fetch;\r\n fetch.firstVisible.index = NaN;\r\n var removed = Remove.removeBufferedItems(scroller, params);\r\n var shouldBuffered = removed.length > 0;\r\n if (shouldBuffered) {\r\n // exclude just removed in-buffer indexes\r\n if (params.indexes && params.indexes.length) {\r\n params.indexes = params.indexes.filter(function (i) { return !removed.includes(i); });\r\n }\r\n // shift virtual indexes that remain\r\n if (params.indexes && params.indexes.length) {\r\n var diffLeft_1 = (params.increase ? 1 : 0) * removed.length;\r\n var diffRight_1 = (params.increase ? 0 : -1) * removed.length;\r\n params.indexes = params.indexes.map(function (index) {\r\n return index + (index < removed[0] ? diffLeft_1 : diffRight_1);\r\n });\r\n }\r\n }\r\n var shouldVirtual = Remove.removeVirtualItems(scroller, params);\r\n if (!shouldBuffered && !shouldVirtual) {\r\n return false;\r\n }\r\n scroller.logger.stat('after remove');\r\n return true;\r\n };\r\n Remove.removeBufferedItems = function (scroller, options) {\r\n var predicate = options.predicate, indexes = options.indexes, increase = options.increase;\r\n if (!predicate && !indexes) {\r\n return [];\r\n }\r\n var newPredicate = function (item) {\r\n return (predicate && predicate(item)) ||\r\n (!!indexes && indexes.includes(item.$index));\r\n };\r\n var indexesToRemove = scroller.buffer.items.reduce(function (acc, item) {\r\n return newPredicate(item) ? __spreadArray(__spreadArray([], __read(acc), false), [item.$index], false) : acc;\r\n }, []);\r\n var updateOptions = {\r\n predicate: function (item) { return !newPredicate(item); },\r\n fixRight: increase\r\n };\r\n Update.doUpdate(scroller, updateOptions);\r\n return indexesToRemove;\r\n };\r\n Remove.removeVirtualItems = function (scroller, params) {\r\n var indexes = params.indexes, increase = params.increase;\r\n if (!indexes || !indexes.length) {\r\n return false;\r\n }\r\n var buffer = scroller.buffer, viewport = scroller.viewport, fetch = scroller.state.fetch;\r\n // get items to remove\r\n var finiteAbsMinIndex = buffer.finiteAbsMinIndex, firstIndex = buffer.firstIndex, finiteAbsMaxIndex = buffer.finiteAbsMaxIndex, lastIndex = buffer.lastIndex;\r\n var toRemove = [];\r\n for (var i = 0, len = indexes.length; i < len; i++) {\r\n var index = indexes[i];\r\n if (index >= finiteAbsMinIndex && !isNaN(firstIndex) && index < firstIndex) {\r\n toRemove.push(index); // backward;\r\n }\r\n else if (index <= finiteAbsMaxIndex && !isNaN(lastIndex) && index > lastIndex) {\r\n toRemove.push(index); // forward;\r\n }\r\n else {\r\n continue;\r\n }\r\n }\r\n if (!toRemove.length) {\r\n return false;\r\n }\r\n // what should be shown after remove; Buffer removal has priority\r\n if (isNaN(fetch.firstVisible.index)) {\r\n var _a = viewport.getEdgeVisibleItem(buffer.items, Direction.backward), index = _a.index, diff = _a.diff;\r\n fetch.firstVisible.index = index;\r\n if (!isNaN(index)) {\r\n fetch.firstVisible.delta = -buffer.getSizeByIndex(index) + diff;\r\n }\r\n }\r\n // virtual removal\r\n scroller.logger.log(function () { return \"going to remove \".concat(toRemove.length, \" item(s) virtually\"); });\r\n buffer.removeVirtually(toRemove, !!increase);\r\n buffer.checkDefaultSize();\r\n Remove.shiftFirstVisibleIndex(scroller, toRemove, !!increase);\r\n return true;\r\n };\r\n Remove.shiftFirstVisibleIndex = function (scroller, listToRemove, increase) {\r\n var firstVisible = scroller.state.fetch.firstVisible;\r\n if (isNaN(firstVisible.index)) {\r\n return;\r\n }\r\n var shift = listToRemove.reduce(function (acc, index) { return acc + (((increase && index > firstVisible.index) || (!increase && index < firstVisible.index)) ? 1 : 0); }, 0);\r\n firstVisible.index = firstVisible.index + (increase ? shift : -shift);\r\n };\r\n return Remove;\r\n}(BaseAdapterProcessFactory(AdapterProcess.remove)));\n\nvar UserClip = /** @class */ (function (_super) {\r\n __extends(UserClip, _super);\r\n function UserClip() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n UserClip.run = function (scroller, options) {\r\n var params = UserClip.parseInput(scroller, options).params;\r\n scroller.state.clip.forceForward = !(params && params.backwardOnly);\r\n scroller.state.clip.forceBackward = !(params && params.forwardOnly);\r\n scroller.workflow.call({\r\n process: UserClip.process,\r\n status: ProcessStatus.next\r\n });\r\n };\r\n return UserClip;\r\n}(BaseAdapterProcessFactory(AdapterProcess.clip)));\n\nvar Replace = /** @class */ (function (_super) {\r\n __extends(Replace, _super);\r\n function Replace() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Replace.run = function (scroller, options) {\r\n var params = Replace.parseInput(scroller, options).params;\r\n if (!params) {\r\n return;\r\n }\r\n var shouldReplace = Replace.doReplace(scroller, params);\r\n scroller.workflow.call({\r\n process: Replace.process,\r\n status: shouldReplace ? ProcessStatus.next : ProcessStatus.done,\r\n });\r\n };\r\n Replace.doReplace = function (scroller, params) {\r\n var toRemove = scroller.buffer.items\r\n .filter(function (item) { return params.predicate(item); })\r\n .map(function (item) { return item.$index; });\r\n if (!toRemove.length) {\r\n scroller.logger.log('no items to be replaced');\r\n return false;\r\n }\r\n var injected = false;\r\n var updateOptions = {\r\n predicate: function (_a) {\r\n var $index = _a.$index;\r\n if (!toRemove.includes($index)) {\r\n return true;\r\n }\r\n if (!injected) {\r\n injected = true;\r\n return params.items;\r\n }\r\n return false;\r\n },\r\n fixRight: params.fixRight\r\n };\r\n return Update.doUpdate(scroller, updateOptions);\r\n };\r\n return Replace;\r\n}(BaseAdapterProcessFactory(AdapterProcess.replace)));\n\nvar Pause = /** @class */ (function (_super) {\r\n __extends(Pause, _super);\r\n function Pause() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Pause.run = function (scroller, options) {\r\n var resume = !!(options === null || options === void 0 ? void 0 : options.resume);\r\n // pause branch\r\n if (!resume && !scroller.state.paused.get()) {\r\n scroller.logger.log('pause scroller');\r\n scroller.state.paused.set(true);\r\n scroller.workflow.call({\r\n process: AdapterProcess.pause,\r\n status: ProcessStatus.done\r\n });\r\n return;\r\n }\r\n scroller.logger.log('resume scroller');\r\n scroller.state.paused.set(false);\r\n scroller.workflow.call({\r\n process: AdapterProcess.pause,\r\n status: ProcessStatus.next\r\n });\r\n };\r\n return Pause;\r\n}(BaseAdapterProcessFactory(AdapterProcess.pause)));\n\nvar _a = AdapterMethods, _b = AdapterProcess.fix, FixParams = _a[_b];\r\nvar Fix = /** @class */ (function (_super) {\r\n __extends(Fix, _super);\r\n function Fix() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Fix.run = function (scroller, options) {\r\n var workflow = scroller.workflow;\r\n var _a = Fix.parseInput(scroller, options), data = _a.data, params = _a.params;\r\n if (!params) {\r\n return;\r\n }\r\n Object.entries(data.params).forEach(function (_a) {\r\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\r\n if (value.isSet && value.isValid) {\r\n Fix.runByType(scroller, key, value.value, data);\r\n }\r\n });\r\n workflow.call({\r\n process: Fix.process,\r\n status: ProcessStatus.done\r\n });\r\n };\r\n Fix.runByType = function (scroller, token, value, methodData) {\r\n switch (token) {\r\n case FixParams.scrollPosition:\r\n return Fix.setScrollPosition(scroller, value);\r\n case FixParams.minIndex:\r\n return Fix.setMinIndex(scroller, value);\r\n case FixParams.maxIndex:\r\n return Fix.setMaxIndex(scroller, value);\r\n case FixParams.updater:\r\n return Fix.updateItems(scroller, value);\r\n case FixParams.scrollToItem:\r\n if (methodData.params) {\r\n var scrollToItemOpt = methodData.params[FixParams.scrollToItemOpt];\r\n var options = scrollToItemOpt ? scrollToItemOpt.value : void 0;\r\n return Fix.scrollToItem(scroller, value, options);\r\n }\r\n return;\r\n case FixParams.scrollToItemOpt:\r\n return;\r\n }\r\n };\r\n Fix.setScrollPosition = function (_a, value) {\r\n var viewport = _a.viewport;\r\n var result = value;\r\n if (value === -Infinity) {\r\n result = 0;\r\n }\r\n else if (value === Infinity) {\r\n result = viewport.getScrollableSize();\r\n }\r\n viewport.setPosition(result);\r\n };\r\n Fix.setMinIndex = function (_a, value) {\r\n var buffer = _a.buffer, settings = _a.settings;\r\n settings.minIndex = value;\r\n buffer.absMinIndex = value;\r\n };\r\n Fix.setMaxIndex = function (_a, value) {\r\n var buffer = _a.buffer, settings = _a.settings;\r\n settings.maxIndex = value;\r\n buffer.absMaxIndex = value;\r\n };\r\n Fix.updateItems = function (_a, value) {\r\n var buffer = _a.buffer, logger = _a.logger;\r\n var updateReference = false;\r\n var updater = function () { return updateReference = true; };\r\n buffer.items.forEach(function (item) { return value(item.get(), updater); });\r\n if (updateReference) {\r\n logger.log(function () { return 'update Buffer.items reference'; });\r\n buffer.items = __spreadArray([], __read(buffer.items), false);\r\n }\r\n };\r\n Fix.scrollToItem = function (scroller, value, options) {\r\n var found = scroller.buffer.items.find(function (item) { return value(item.get()); });\r\n if (!found) {\r\n scroller.logger.log(function () { return 'scrollToItem cancelled, item not found'; });\r\n return;\r\n }\r\n found.scrollTo(options);\r\n };\r\n return Fix;\r\n}(BaseAdapterProcessFactory(AdapterProcess.fix)));\n\nvar Start = /** @class */ (function (_super) {\r\n __extends(Start, _super);\r\n function Start() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Start.run = function (scroller) {\r\n var payload = scroller.state.startInnerLoop();\r\n scroller.workflow.call({\r\n process: Start.process,\r\n status: ProcessStatus.next,\r\n payload: payload\r\n });\r\n };\r\n return Start;\r\n}(BaseProcessFactory(CommonProcess.start)));\n\nvar PreFetch = /** @class */ (function (_super) {\r\n __extends(PreFetch, _super);\r\n function PreFetch() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PreFetch.run = function (scroller) {\r\n var workflow = scroller.workflow, buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, cycle = _a.cycle;\r\n fetch.minIndex = buffer.minIndex;\r\n // set first and last indexes of items to fetch\r\n PreFetch.setPositionsAndIndexes(scroller);\r\n // skip indexes that are in buffer\r\n PreFetch.skipBufferedItems(scroller);\r\n if (scroller.settings.infinite) {\r\n // fill indexes to include buffer if no clip\r\n PreFetch.checkBufferGaps(scroller);\r\n }\r\n // add indexes if there are too few items to fetch (clip padding)\r\n PreFetch.checkFetchPackSize(scroller);\r\n // set fetch direction\r\n PreFetch.setFetchDirection(scroller);\r\n workflow.call({\r\n process: PreFetch.process,\r\n status: PreFetch.getStatus(scroller),\r\n payload: { process: cycle.initiator }\r\n });\r\n };\r\n PreFetch.setPositionsAndIndexes = function (scroller) {\r\n PreFetch.setPositions(scroller);\r\n PreFetch.setFirstIndex(scroller);\r\n PreFetch.setLastIndex(scroller);\r\n scroller.logger.fetch();\r\n };\r\n PreFetch.setPositions = function (scroller) {\r\n var positions = scroller.state.fetch.positions, viewport = scroller.viewport;\r\n var paddingDelta = viewport.getBufferPadding();\r\n positions.before = viewport.scrollPosition;\r\n positions.startDelta = PreFetch.getStartDelta(scroller);\r\n positions.relative = positions.before - positions.startDelta;\r\n positions.start = positions.relative - paddingDelta;\r\n positions.end = positions.relative + viewport.getSize() + paddingDelta;\r\n };\r\n PreFetch.getStartDelta = function (scroller) {\r\n var buffer = scroller.buffer, offset = scroller.viewport.offset;\r\n var startDelta = 0;\r\n if (offset) {\r\n startDelta += offset;\r\n }\r\n if (!buffer.defaultSize) {\r\n return startDelta;\r\n }\r\n for (var index = buffer.finiteAbsMinIndex; index < buffer.startIndex; index++) {\r\n startDelta += buffer.getSizeByIndex(index);\r\n }\r\n scroller.logger.log(function () { return __spreadArray([\r\n \"start delta is \".concat(startDelta)\r\n ], __read((offset ? [\" (+\".concat(offset, \" offset)\")] : [])), false); });\r\n return startDelta;\r\n };\r\n PreFetch.setFirstIndex = function (scroller) {\r\n var state = scroller.state, buffer = scroller.buffer;\r\n var _a = state.fetch, start = _a.positions.start, first = _a.first;\r\n var firstIndex = buffer.startIndex;\r\n var firstIndexPosition = 0;\r\n if (state.cycle.innerLoop.isInitial) {\r\n scroller.logger.log('skipping fetch backward direction [initial loop]');\r\n }\r\n else if (!buffer.defaultSize) {\r\n scroller.logger.log('skipping fetch backward direction [no item size]');\r\n }\r\n else {\r\n var position = firstIndexPosition;\r\n var index = firstIndex;\r\n while (1) { // eslint-disable-line no-constant-condition\r\n if (start >= 0) {\r\n var size = buffer.getSizeByIndex(index);\r\n var diff = (position + size) - start;\r\n if (diff > 0) {\r\n firstIndex = index;\r\n firstIndexPosition = position;\r\n break;\r\n }\r\n position += size;\r\n index++;\r\n if (index < buffer.absMinIndex) {\r\n break;\r\n }\r\n }\r\n if (start < 0) {\r\n index--;\r\n if (index < buffer.absMinIndex) {\r\n break;\r\n }\r\n position -= buffer.getSizeByIndex(index);\r\n var diff = position - start;\r\n firstIndex = index;\r\n firstIndexPosition = position;\r\n if (diff <= 0) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n first.index = first.indexBuffer = Math.max(firstIndex, buffer.absMinIndex);\r\n first.position = firstIndexPosition;\r\n };\r\n PreFetch.setLastIndex = function (scroller) {\r\n var _a = scroller.state, fetch = _a.fetch, cycle = _a.cycle, buffer = scroller.buffer, settings = scroller.settings;\r\n var firstVisible = fetch.firstVisible, _b = fetch.positions, relative = _b.relative, end = _b.end, first = fetch.first, last = fetch.last;\r\n var lastIndex;\r\n if (!buffer.defaultSize) {\r\n // just to fetch forward bufferSize items if neither averageItemSize nor itemSize are present\r\n lastIndex = buffer.startIndex + settings.bufferSize - 1;\r\n scroller.logger.log('forcing fetch forward direction [no item size]');\r\n }\r\n else {\r\n var index = first.indexBuffer;\r\n var position = first.position;\r\n lastIndex = index;\r\n while (1) { // eslint-disable-line no-constant-condition\r\n lastIndex = index;\r\n var size = buffer.getSizeByIndex(index);\r\n position += size;\r\n if (isNaN(firstVisible.index) && position > relative) {\r\n firstVisible.index = index;\r\n if (!cycle.innerLoop.isInitial) {\r\n firstVisible.delta = position - size - relative;\r\n }\r\n }\r\n if (position >= end) {\r\n break;\r\n }\r\n if (index++ > buffer.absMaxIndex) {\r\n break;\r\n }\r\n }\r\n }\r\n last.index = last.indexBuffer = Math.min(lastIndex, buffer.absMaxIndex);\r\n };\r\n PreFetch.skipBufferedItems = function (scroller) {\r\n var buffer = scroller.buffer;\r\n if (!buffer.size) {\r\n return;\r\n }\r\n var fetch = scroller.state.fetch;\r\n var firstIndex = fetch.first.index;\r\n var lastIndex = fetch.last.index;\r\n var packs = [[]];\r\n var p = 0;\r\n for (var i = firstIndex; i <= lastIndex; i++) {\r\n if (!buffer.get(i)) {\r\n packs[p].push(i);\r\n }\r\n else if (packs[p].length) {\r\n packs[++p] = [];\r\n }\r\n }\r\n var pack = packs[0];\r\n if (packs[0].length && packs[1] && packs[1].length) {\r\n fetch.hasAnotherPack = true;\r\n // todo: need to look for biggest pack in visible area\r\n // todo: or think about merging two requests in a single Fetch process\r\n if (packs[1].length >= packs[0].length) {\r\n pack = packs[1];\r\n }\r\n }\r\n fetch.first.index = Math.max(pack[0], buffer.absMinIndex);\r\n fetch.last.index = Math.min(pack[pack.length - 1], buffer.absMaxIndex);\r\n if (fetch.first.index !== firstIndex || fetch.last.index !== lastIndex) {\r\n scroller.logger.fetch('after Buffer flushing');\r\n }\r\n };\r\n PreFetch.checkBufferGaps = function (scroller) {\r\n var buffer = scroller.buffer, fetch = scroller.state.fetch;\r\n if (!buffer.size) {\r\n return;\r\n }\r\n var fetchFirst = fetch.first.index;\r\n var bufferLast = buffer.lastIndex;\r\n if (fetchFirst > bufferLast) {\r\n fetch.first.index = fetch.first.indexBuffer = bufferLast + 1;\r\n }\r\n var bufferFirst = buffer.firstIndex;\r\n var fetchLast = fetch.last.index;\r\n if (fetchLast < bufferFirst) {\r\n fetch.last.index = fetch.last.indexBuffer = bufferFirst - 1;\r\n }\r\n if (fetch.first.index !== fetchFirst || fetch.last.index !== fetchLast) {\r\n scroller.logger.fetch('after Buffer filling (no clip case)');\r\n }\r\n };\r\n PreFetch.checkFetchPackSize = function (scroller) {\r\n var buffer = scroller.buffer, fetch = scroller.state.fetch;\r\n if (!fetch.shouldFetch) {\r\n return;\r\n }\r\n var firstIndex = fetch.first.index;\r\n var lastIndex = fetch.last.index;\r\n var diff = scroller.settings.bufferSize - (lastIndex - firstIndex + 1);\r\n if (diff <= 0) {\r\n return;\r\n }\r\n if (!buffer.size || lastIndex > buffer.items[0].$index) { // forward\r\n var newLastIndex = Math.min(lastIndex + diff, buffer.absMaxIndex);\r\n if (newLastIndex > lastIndex) {\r\n fetch.last.index = fetch.last.indexBuffer = newLastIndex;\r\n }\r\n }\r\n else {\r\n var newFirstIndex = Math.max(firstIndex - diff, buffer.absMinIndex);\r\n if (newFirstIndex < firstIndex) {\r\n fetch.first.index = fetch.first.indexBuffer = newFirstIndex;\r\n }\r\n }\r\n if (fetch.first.index !== firstIndex || fetch.last.index !== lastIndex) {\r\n scroller.logger.fetch('after bufferSize adjustment');\r\n PreFetch.skipBufferedItems(scroller);\r\n }\r\n };\r\n PreFetch.setFetchDirection = function (scroller) {\r\n var buffer = scroller.buffer, fetch = scroller.state.fetch;\r\n if (fetch.last.index) {\r\n var direction_1 = Direction.forward;\r\n if (buffer.size) {\r\n direction_1 = fetch.last.index < buffer.items[0].$index ? Direction.backward : Direction.forward;\r\n }\r\n fetch.direction = direction_1;\r\n scroller.logger.log(function () { return \"fetch direction is \\\"\".concat(direction_1, \"\\\"\"); });\r\n }\r\n };\r\n PreFetch.getStatus = function (scroller) {\r\n var _a = scroller.state, cycle = _a.cycle, fetch = _a.fetch;\r\n if (cycle.initiator === AdapterProcess.clip) {\r\n scroller.logger.log(function () { return \"going to skip fetch due to \\\"\".concat(AdapterProcess.clip, \"\\\" process\"); });\r\n return ProcessStatus.next;\r\n }\r\n if (fetch.shouldFetch) {\r\n scroller.logger.log(function () { return \"going to fetch \".concat(fetch.count, \" items started from index \").concat(fetch.index); });\r\n return ProcessStatus.next;\r\n }\r\n return ProcessStatus.done;\r\n };\r\n return PreFetch;\r\n}(BaseProcessFactory(CommonProcess.preFetch)));\n\nvar Fetch = /** @class */ (function (_super) {\r\n __extends(Fetch, _super);\r\n function Fetch() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Fetch.run = function (scroller) {\r\n var workflow = scroller.workflow;\r\n var box = {\r\n success: function (data) {\r\n scroller.logger.log(function () {\r\n return \"resolved \".concat(data.length, \" items \") +\r\n \"(index = \".concat(scroller.state.fetch.index, \", count = \").concat(scroller.state.fetch.count, \")\");\r\n });\r\n scroller.state.fetch.newItemsData = data;\r\n workflow.call({\r\n process: Fetch.process,\r\n status: ProcessStatus.next\r\n });\r\n },\r\n fail: function (error) {\r\n return workflow.call({\r\n process: Fetch.process,\r\n status: ProcessStatus.error,\r\n payload: { error: error }\r\n });\r\n }\r\n };\r\n var result = Fetch.get(scroller);\r\n Fetch.complete(scroller, box, result);\r\n };\r\n Fetch.complete = function (scroller, box, result) {\r\n if (Object.prototype.hasOwnProperty.call(result, 'data')) {\r\n var _a = result, data = _a.data, error = _a.error, isError = _a.isError;\r\n if (!isError) {\r\n box.success(data || []);\r\n }\r\n else {\r\n box.fail(error);\r\n }\r\n }\r\n else {\r\n var _b = scroller.state, scroll_1 = _b.scroll, fetch_1 = _b.fetch, viewport = scroller.viewport;\r\n if (scroll_1.positionBeforeAsync === null) {\r\n scroll_1.positionBeforeAsync = viewport.scrollPosition;\r\n }\r\n fetch_1.cancel = function () {\r\n box.success = function () { return null; };\r\n box.fail = function () { return null; };\r\n };\r\n result.then(function (data) { return box.success(data); }, function (error) { return box.fail(error); });\r\n }\r\n };\r\n Fetch.get = function (scroller) {\r\n var _get = scroller.datasource.get;\r\n var _a = scroller.state.fetch, index = _a.index, count = _a.count;\r\n var immediateData, immediateError;\r\n var resolve, reject;\r\n var done = function (data) {\r\n if (!resolve) {\r\n immediateData = data || null;\r\n return;\r\n }\r\n resolve(data);\r\n };\r\n var fail = function (error) {\r\n if (!reject) {\r\n immediateError = error || null;\r\n return;\r\n }\r\n reject(error);\r\n };\r\n var getResult = _get(index, count, done, fail);\r\n if (getResult && typeof getResult === 'object' && getResult !== null) {\r\n if (typeof getResult.then === 'function') {\r\n return getResult;\r\n }\r\n else if (typeof getResult.subscribe === 'function') {\r\n var sub_1 = void 0;\r\n sub_1 = getResult.subscribe(done, fail, function () {\r\n if (sub_1 && typeof sub_1 === 'object' && typeof sub_1.unsubscribe === 'function') {\r\n sub_1.unsubscribe();\r\n }\r\n });\r\n }\r\n }\r\n if (immediateData || immediateError) { // callback case or immediate observable\r\n return {\r\n data: immediateError ? null : (immediateData || []),\r\n error: immediateError,\r\n isError: !!immediateError\r\n };\r\n }\r\n return new Promise(function (_resolve, _reject) {\r\n resolve = _resolve;\r\n reject = _reject;\r\n });\r\n };\r\n return Fetch;\r\n}(BaseProcessFactory(CommonProcess.fetch)));\n\nvar PostFetch = /** @class */ (function (_super) {\r\n __extends(PostFetch, _super);\r\n function PostFetch() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PostFetch.run = function (scroller) {\r\n var workflow = scroller.workflow;\r\n if (PostFetch.setItems(scroller)) {\r\n PostFetch.setBufferLimits(scroller);\r\n workflow.call({\r\n process: PostFetch.process,\r\n status: scroller.state.fetch.hasNewItems\r\n ? ProcessStatus.next\r\n : ProcessStatus.done\r\n });\r\n }\r\n else {\r\n workflow.call({\r\n process: PostFetch.process,\r\n status: ProcessStatus.error,\r\n payload: { error: 'Can\\'t set buffer items' }\r\n });\r\n }\r\n };\r\n PostFetch.setBufferLimits = function (scroller) {\r\n var buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, innerLoop = _a.cycle.innerLoop;\r\n var items = fetch.items, first = fetch.first.index, last = fetch.last.index;\r\n if (!items.length) {\r\n if (last < buffer.minIndex || innerLoop.isInitial) {\r\n buffer.absMinIndex = buffer.minIndex;\r\n }\r\n if (first > buffer.maxIndex || innerLoop.isInitial) {\r\n buffer.absMaxIndex = buffer.maxIndex;\r\n }\r\n }\r\n else {\r\n var lastIndex = items.length - 1;\r\n if (first < items[0].$index) {\r\n buffer.absMinIndex = items[0].$index;\r\n }\r\n if (last > items[lastIndex].$index) {\r\n buffer.absMaxIndex = items[lastIndex].$index;\r\n }\r\n }\r\n };\r\n PostFetch.setItems = function (scroller) {\r\n var buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, cycle = _a.cycle;\r\n var items = fetch.newItemsData;\r\n if (!items || !items.length) { // empty result\r\n return true;\r\n }\r\n // eof/bof case, need to shift fetch index if bof\r\n var fetchIndex = fetch.index;\r\n if (items.length < fetch.count) {\r\n if (cycle.innerLoop.isInitial) {\r\n // let's treat initial poor fetch as startIndex-bof\r\n fetchIndex = buffer.startIndex;\r\n }\r\n else if (fetch.first.index < buffer.minIndex) {\r\n // normal bof\r\n fetchIndex = buffer.firstIndex - items.length;\r\n }\r\n }\r\n fetch.items = items.map(function (item, index) {\r\n return new Item(fetchIndex + index, item, scroller.routines);\r\n });\r\n return buffer.setItems(fetch.items);\r\n };\r\n return PostFetch;\r\n}(BaseProcessFactory(CommonProcess.postFetch)));\n\nvar Render = /** @class */ (function (_super) {\r\n __extends(Render, _super);\r\n function Render() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Render.run = function (scroller) {\r\n var workflow = scroller.workflow, _a = scroller.state, cycle = _a.cycle, render = _a.render, scroll = _a.scroll, fetch = _a.fetch, viewport = scroller.viewport, routines = scroller.routines;\r\n scroller.logger.stat('before new items render');\r\n if (scroll.positionBeforeAsync === null) {\r\n scroll.positionBeforeAsync = viewport.scrollPosition;\r\n }\r\n render.cancel = routines.render(function () {\r\n render.cancel = null;\r\n if (Render.doRender(scroller)) {\r\n workflow.call({\r\n process: Render.process,\r\n status: render.noSize ? ProcessStatus.done : ProcessStatus.next,\r\n payload: { process: cycle.initiator }\r\n });\r\n }\r\n else {\r\n workflow.call({\r\n process: Render.process,\r\n status: ProcessStatus.error,\r\n payload: { error: 'Can\\'t associate item with element' }\r\n });\r\n }\r\n }, { items: fetch.items.map(function (i) { return i.get(); }) });\r\n };\r\n Render.doRender = function (scroller) {\r\n var _a = scroller.state, fetch = _a.fetch, render = _a.render, viewport = scroller.viewport, buffer = scroller.buffer, logger = scroller.logger;\r\n render.positionBefore = viewport.scrollPosition;\r\n if (!fetch.isCheck) {\r\n render.sizeBefore = viewport.getScrollableSize();\r\n if (!fetch.items.every(function (item) {\r\n return Render.processElement(scroller, item);\r\n })) {\r\n return false;\r\n }\r\n }\r\n buffer.checkDefaultSize();\r\n render.sizeAfter = viewport.getScrollableSize();\r\n logger.stat('after new items render');\r\n logger.log(function () { return render.noSize ? 'viewport size has not been changed' : void 0; });\r\n return true;\r\n };\r\n Render.processElement = function (scroller, item) {\r\n var viewport = scroller.viewport, buffer = scroller.buffer;\r\n var element = viewport.findItemElementById(item.nodeId);\r\n if (!element) {\r\n return false;\r\n }\r\n item.element = element;\r\n item.makeVisible();\r\n item.setSize(buffer.getSizeByIndex(item.$index));\r\n buffer.cacheItem(item);\r\n return true;\r\n };\r\n return Render;\r\n}(BaseProcessFactory(CommonProcess.render)));\n\nvar isInterrupted = function (_a) {\r\n var call = _a.call;\r\n return !!call.interrupted;\r\n};\r\nvar End = /** @class */ (function (_super) {\r\n __extends(End, _super);\r\n function End() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n End.run = function (scroller, _a) {\r\n var _b = _a === void 0 ? {} : _a, error = _b.error;\r\n var workflow = scroller.workflow, interrupter = scroller.state.cycle.interrupter;\r\n if (!error && !interrupter) {\r\n // set out params accessible via Adapter\r\n End.calculateParams(scroller);\r\n }\r\n // explicit interruption for we don't want to go through the inner loop finalizing\r\n if (isInterrupted(workflow)) {\r\n workflow.call({ process: End.process, status: ProcessStatus.done });\r\n return;\r\n }\r\n var next = End.shouldContinueRun(scroller, error);\r\n scroller.state.endInnerLoop();\r\n workflow.call({\r\n process: End.process,\r\n status: next ? ProcessStatus.next : ProcessStatus.done,\r\n payload: __assign({}, (interrupter ? { process: interrupter } : {}))\r\n });\r\n };\r\n End.calculateParams = function (scroller) {\r\n var adapter = scroller.adapter, workflow = scroller.workflow;\r\n adapter.setFirstOrLastVisible({ first: true, workflow: workflow });\r\n adapter.setFirstOrLastVisible({ last: true, workflow: workflow });\r\n };\r\n End.shouldContinueRun = function (scroller, error) {\r\n var _a = scroller.state, cycle = _a.cycle, fetch = _a.fetch, render = _a.render;\r\n // Adapter.reload or Adapter.reset\r\n if (cycle.interrupter) {\r\n return true;\r\n }\r\n // critical error\r\n if (error) {\r\n return false;\r\n }\r\n // Adapter.check\r\n if (fetch.simulate && fetch.isCheck && !render.noSize) {\r\n return true;\r\n }\r\n // Adapter.remove or Adapter.update with clip\r\n if (fetch.simulate && fetch.doRemove) {\r\n return true;\r\n }\r\n // common inner loop (App start, scroll, Adapter.clip) with full fetch\r\n if (!fetch.simulate && ((fetch.hasNewItems && !render.noSize) || fetch.hasAnotherPack)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n return End;\r\n}(BaseProcessFactory(CommonProcess.end)));\n\nvar Adjust = /** @class */ (function (_super) {\r\n __extends(Adjust, _super);\r\n function Adjust() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Adjust.run = function (scroller) {\r\n var workflow = scroller.workflow, viewport = scroller.viewport, scroll = scroller.state.scroll;\r\n scroll.positionBeforeAdjust = viewport.scrollPosition;\r\n Adjust.setPaddings(scroller);\r\n scroll.positionAfterAdjust = viewport.scrollPosition;\r\n // scroll position adjustments\r\n var position = Adjust.calculatePosition(scroller);\r\n // additional adjustment if the position can't be reached during the initial cycle\r\n Adjust.setAdditionalForwardPadding(scroller, position);\r\n // set new position using animation frame\r\n Adjust.setPosition(scroller, position, function () {\r\n return workflow.call({\r\n process: Adjust.process,\r\n status: ProcessStatus.done\r\n });\r\n });\r\n };\r\n Adjust.setPaddings = function (scroller) {\r\n var viewport = scroller.viewport, buffer = scroller.buffer, inverse = scroller.settings.inverse, fetch = scroller.state.fetch;\r\n var firstItem = buffer.getFirstVisibleItem();\r\n var lastItem = buffer.getLastVisibleItem();\r\n var first, last;\r\n if (firstItem && lastItem) {\r\n first = firstItem.$index;\r\n last = lastItem.$index;\r\n }\r\n else {\r\n first = !isNaN(fetch.firstVisible.index) ? fetch.firstVisible.index : buffer.startIndex;\r\n last = first - 1;\r\n }\r\n var _a = viewport.paddings, forward = _a.forward, backward = _a.backward;\r\n var index, bwdSize = 0, fwdSize = 0;\r\n // new backward and forward paddings size\r\n for (index = buffer.finiteAbsMinIndex; index < first; index++) {\r\n bwdSize += buffer.getSizeByIndex(index);\r\n }\r\n for (index = last + 1; index <= buffer.finiteAbsMaxIndex; index++) {\r\n fwdSize += buffer.getSizeByIndex(index);\r\n }\r\n // lack of items case\r\n var bufferSize = viewport.getScrollableSize() - forward.size - backward.size;\r\n var scrollSize = bwdSize + bufferSize + fwdSize;\r\n var viewportSizeDiff = viewport.getSize() - scrollSize;\r\n if (viewportSizeDiff > 0) {\r\n if (inverse) {\r\n bwdSize += viewportSizeDiff;\r\n }\r\n else {\r\n fwdSize += viewportSizeDiff;\r\n }\r\n scroller.logger.log(function () {\r\n return inverse ? 'backward' : 'forward' + \" padding will be increased by \".concat(viewportSizeDiff, \" to fill the viewport\");\r\n });\r\n }\r\n backward.size = bwdSize;\r\n forward.size = fwdSize;\r\n scroller.logger.stat('after paddings adjustments');\r\n };\r\n Adjust.calculatePosition = function (scroller) {\r\n var viewport = scroller.viewport, buffer = scroller.buffer, _a = scroller.state, fetch = _a.fetch, render = _a.render, scroll = _a.scroll;\r\n var position = viewport.paddings.backward.size;\r\n // increase the position to meet the expectation of the first visible item\r\n if (!isNaN(fetch.firstVisible.index) && !isNaN(buffer.firstIndex)) {\r\n scroller.logger.log(\"first index = \".concat(fetch.firstVisible.index, \", delta = \").concat(fetch.firstVisible.delta));\r\n var shouldCheckPreSizeExpectation_1 = fetch.shouldCheckPreSizeExpectation(buffer.lastIndex);\r\n buffer.items.forEach(function (item) {\r\n // 1) shift of the buffered items before the first visible item\r\n if (item.$index < fetch.firstVisible.index) {\r\n position += item.size;\r\n return;\r\n }\r\n // 2) delta of the first visible item\r\n if (item.$index === fetch.firstVisible.index && fetch.firstVisible.delta) {\r\n position -= fetch.firstVisible.delta;\r\n }\r\n // 3) difference between expected and real sizes of fetched items after the first visible\r\n if (shouldCheckPreSizeExpectation_1 && item.preSize && fetch.items.includes(item)) {\r\n position += item.size - item.preSize;\r\n }\r\n });\r\n }\r\n // slow fetch/render case\r\n if (scroll.positionBeforeAsync !== null) {\r\n var diff = render.positionBefore - scroll.positionBeforeAsync;\r\n if (diff !== 0) {\r\n scroller.logger.log(\"shift position due to fetch-render difference (\".concat(diff, \")\"));\r\n position += diff;\r\n }\r\n }\r\n // increase the position due to viewport's offset\r\n if (viewport.offset > 0 && (position || fetch.positions.before)) {\r\n position += viewport.offset;\r\n }\r\n return Math.round(position);\r\n };\r\n Adjust.setAdditionalForwardPadding = function (scroller, position) {\r\n var viewport = scroller.viewport, buffer = scroller.buffer, cycle = scroller.state.cycle;\r\n if (!cycle.isInitial || !End.shouldContinueRun(scroller, null)) {\r\n return;\r\n }\r\n var diff = position - viewport.getMaxScrollPosition();\r\n if (diff <= 0) {\r\n return;\r\n }\r\n var last = buffer.getLastVisibleItem();\r\n if (!last) {\r\n return;\r\n }\r\n var size = 0;\r\n var index = last.$index + 1;\r\n while (size <= diff && index <= buffer.absMaxIndex) {\r\n size += buffer.getSizeByIndex(index++);\r\n }\r\n var shift = Math.min(size, diff);\r\n if (shift) {\r\n viewport.paddings.forward.size += shift;\r\n scroller.logger.log(\"increase fwd padding due to lack of items (\".concat(diff, \" -> \").concat(shift, \")\"));\r\n }\r\n };\r\n Adjust.setPosition = function (scroller, position, done) {\r\n var scroll = scroller.state.scroll, viewport = scroller.viewport, routines = scroller.routines;\r\n if (!scroll.hasPositionChanged(position)) {\r\n return done();\r\n }\r\n scroll.syntheticPosition = position;\r\n scroll.syntheticFulfill = false;\r\n scroll.cancelAnimation = routines.animate(function () {\r\n scroll.cancelAnimation = null;\r\n var inertiaDiff = scroll.positionAfterAdjust - viewport.scrollPosition;\r\n var diffLog = '';\r\n if (inertiaDiff > 0) {\r\n position -= inertiaDiff;\r\n scroll.syntheticPosition = position;\r\n diffLog = \" (-\".concat(inertiaDiff, \")\");\r\n }\r\n scroll.syntheticFulfill = true;\r\n viewport.scrollPosition = position;\r\n scroller.logger.stat('after scroll adjustment' + diffLog);\r\n done();\r\n });\r\n };\r\n return Adjust;\r\n}(BaseProcessFactory(CommonProcess.adjust)));\n\nvar PreClip = /** @class */ (function (_super) {\r\n __extends(PreClip, _super);\r\n function PreClip() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PreClip.run = function (scroller) {\r\n PreClip.prepareClip(scroller);\r\n scroller.workflow.call({\r\n process: PreClip.process,\r\n status: ProcessStatus.next,\r\n payload: {\r\n doClip: scroller.state.clip.doClip\r\n }\r\n });\r\n };\r\n PreClip.prepareClip = function (scroller) {\r\n var _a = scroller.state, fetch = _a.fetch, clip = _a.clip;\r\n if (PreClip.shouldNotClip(scroller)) {\r\n return;\r\n }\r\n var firstIndex = fetch.first.indexBuffer;\r\n var lastIndex = fetch.last.indexBuffer;\r\n scroller.logger.log(function () {\r\n return \"looking for \".concat(fetch.direction ? 'anti-' + fetch.direction + ' ' : '', \"items \") +\r\n \"that are out of [\".concat(firstIndex, \"..\").concat(lastIndex, \"] range\");\r\n });\r\n if (PreClip.isBackward(scroller, firstIndex)) {\r\n PreClip.prepareClipByDirection(scroller, Direction.backward, firstIndex);\r\n }\r\n if (PreClip.isForward(scroller, lastIndex)) {\r\n PreClip.prepareClipByDirection(scroller, Direction.forward, lastIndex);\r\n }\r\n if (!clip.doClip) {\r\n scroller.logger.log('skipping clip [no items to clip]');\r\n }\r\n return;\r\n };\r\n PreClip.shouldNotClip = function (scroller) {\r\n var settings = scroller.settings, buffer = scroller.buffer, state = scroller.state;\r\n if (settings.infinite && !state.clip.force) {\r\n scroller.logger.log('skipping clip [infinite mode]');\r\n return true;\r\n }\r\n if (!buffer.size) {\r\n scroller.logger.log('skipping clip [empty buffer]');\r\n return true;\r\n }\r\n if (state.cycle.isInitial) {\r\n scroller.logger.log('skipping clip [initial cycle]');\r\n return true;\r\n }\r\n return false;\r\n };\r\n PreClip.isBackward = function (scroller, firstIndex) {\r\n var buffer = scroller.buffer, _a = scroller.state, clip = _a.clip, fetch = _a.fetch;\r\n if (clip.force) {\r\n return clip.forceBackward;\r\n }\r\n if (fetch.direction !== Direction.backward) {\r\n if (firstIndex - 1 >= buffer.absMinIndex) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n PreClip.isForward = function (scroller, lastIndex) {\r\n var buffer = scroller.buffer, _a = scroller.state, clip = _a.clip, fetch = _a.fetch;\r\n if (clip.force) {\r\n return clip.forceForward;\r\n }\r\n if (fetch.direction !== Direction.forward) {\r\n if (lastIndex + 1 <= buffer.absMaxIndex) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n PreClip.prepareClipByDirection = function (scroller, direction, edgeIndex) {\r\n var forward = direction === Direction.forward;\r\n scroller.buffer.items.forEach(function (item) {\r\n if ((!forward && item.$index < edgeIndex) ||\r\n (forward && item.$index > edgeIndex)) {\r\n item.toRemove = true;\r\n item.removeDirection = direction;\r\n scroller.state.clip.doClip = true;\r\n }\r\n });\r\n };\r\n return PreClip;\r\n}(BaseProcessFactory(CommonProcess.preClip)));\n\nvar Clip = /** @class */ (function (_super) {\r\n __extends(Clip, _super);\r\n function Clip() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Clip.run = function (scroller) {\r\n var workflow = scroller.workflow;\r\n Clip.doClip(scroller);\r\n workflow.call({\r\n process: Clip.process,\r\n status: ProcessStatus.next\r\n });\r\n };\r\n Clip.doClip = function (scroller) {\r\n var _a;\r\n var buffer = scroller.buffer, paddings = scroller.viewport.paddings, clip = scroller.state.clip, logger = scroller.logger;\r\n var size = (_a = {}, _a[Direction.backward] = 0, _a[Direction.forward] = 0, _a);\r\n logger.stat(\"before clip (\".concat(++clip.callCount, \")\"));\r\n var itemsToRemove = buffer.items.filter(function (item) {\r\n if (!item.toRemove) {\r\n return false;\r\n }\r\n item.hide();\r\n size[item.removeDirection] += item.size;\r\n return true;\r\n });\r\n if (itemsToRemove.length) {\r\n if (size[Direction.backward]) {\r\n paddings.byDirection(Direction.backward).size += size[Direction.backward];\r\n }\r\n if (size[Direction.forward]) {\r\n paddings.byDirection(Direction.forward).size += size[Direction.forward];\r\n }\r\n if (scroller.settings.onBeforeClip) {\r\n scroller.settings.onBeforeClip(itemsToRemove.map(function (item) { return item.get(); }));\r\n }\r\n }\r\n buffer.clip();\r\n logger.log(function () {\r\n var list = itemsToRemove.map(function (_a) {\r\n var $index = _a.$index;\r\n return $index;\r\n });\r\n return list.length\r\n ? [\r\n \"clipped \".concat(list.length, \" item(s) from Buffer\") +\r\n (size.backward ? \", +\".concat(size.backward, \" fwd px\") : '') +\r\n (size.forward ? \", +\".concat(size.forward, \" bwd px\") : '') +\r\n \", range: [\".concat(list[0], \"..\").concat(list[list.length - 1], \"]\")\r\n ]\r\n : 'clipped 0 items from Buffer';\r\n });\r\n logger.stat('after clip');\r\n };\r\n return Clip;\r\n}(BaseProcessFactory(CommonProcess.clip)));\n\nvar Logger = /** @class */ (function () {\r\n function Logger(scroller, packageInfo, adapter) {\r\n var _this = this;\r\n this.logs = [];\r\n this.logAdapterMethod = function (methodName, args, add) {\r\n if (!_this.debug) {\r\n return;\r\n }\r\n var params = (args === void 0 ? [] : (Array.isArray(args) ? args : [args]))\r\n .map(function (arg) {\r\n if (typeof arg === 'function') {\r\n return 'func';\r\n }\r\n else if (typeof arg !== 'object' || !arg) {\r\n return arg;\r\n }\r\n else if (Array.isArray(arg)) {\r\n return \"[of \".concat(arg.length, \"]\");\r\n }\r\n return '{ ' + Object.keys(arg).join(', ') + ' }';\r\n })\r\n .join(', ');\r\n _this.log(\"adapter: \".concat(methodName, \"(\").concat(params || '', \")\").concat(add || ''));\r\n };\r\n var settings = scroller.settings;\r\n this.debug = settings.debug;\r\n this.immediateLog = settings.immediateLog;\r\n this.logTime = settings.logTime;\r\n this.getTime = function () {\r\n return scroller.state && \" // time: \".concat(scroller.state.time);\r\n };\r\n this.getStat = function () {\r\n var buffer = scroller.buffer, viewport = scroller.viewport;\r\n var first = buffer.getFirstVisibleItem();\r\n var last = buffer.getLastVisibleItem();\r\n return 'pos: ' + viewport.scrollPosition + ', ' +\r\n 'size: ' + viewport.getScrollableSize() + ', ' +\r\n 'bwd_p: ' + viewport.paddings.backward.size + ', ' +\r\n 'fwd_p: ' + viewport.paddings.forward.size + ', ' +\r\n 'default: ' + (buffer.defaultSize || 'no') + ', ' +\r\n 'items: ' + buffer.getVisibleItemsCount() + ', ' +\r\n 'range: ' + (first && last ? \"[\".concat(first.$index, \"..\").concat(last.$index, \"]\") : 'no');\r\n };\r\n this.getFetchRange = function () {\r\n var _a = scroller.state.fetch, first = _a.first.index, last = _a.last.index;\r\n return !Number.isNaN(first) && !Number.isNaN(last)\r\n ? \"[\".concat(first, \"..\").concat(last, \"]\")\r\n : 'no';\r\n };\r\n this.getLoopId = function () { return scroller.state.cycle.loopId; };\r\n this.getLoopIdNext = function () { return scroller.state.cycle.loopIdNext; };\r\n this.getWorkflowCycleData = function () {\r\n return \"\".concat(settings.instanceIndex, \"-\").concat(scroller.state.cycle.count);\r\n };\r\n this.getScrollPosition = function () { return scroller.routines.getScrollPosition(); };\r\n this.log(function () {\r\n return 'vscroll Workflow has been started, ' +\r\n \"core: \".concat(packageInfo.core.name, \" v\").concat(packageInfo.core.version, \", \") +\r\n \"consumer: \".concat(packageInfo.consumer.name, \" v\").concat(packageInfo.consumer.version, \", \") +\r\n \"scroller instance: \".concat(settings.instanceIndex, \", adapter \") +\r\n (!adapter ? 'is not instantiated' : \"instance: \".concat(adapter.id));\r\n });\r\n }\r\n Logger.prototype.object = function (str, obj, stringify) {\r\n this.log(function () { return [\r\n str,\r\n stringify\r\n ? JSON.stringify(obj, function (k, v) {\r\n if (Number.isNaN(v)) {\r\n return 'NaN';\r\n }\r\n if (v === Infinity) {\r\n return 'Infinity';\r\n }\r\n if (v === -Infinity) {\r\n return '-Infinity';\r\n }\r\n if (v instanceof Element) {\r\n return 'HTMLElement';\r\n }\r\n if (v instanceof HTMLDocument) {\r\n return 'HTMLDocument';\r\n }\r\n if (typeof v === 'function') {\r\n return 'Function';\r\n }\r\n return v;\r\n })\r\n .replace(/\"/g, '')\r\n .replace(/(\\{|:|,)/g, '$1 ')\r\n .replace(/(\\})/g, ' $1')\r\n : obj\r\n ]; });\r\n };\r\n Logger.prototype.stat = function (str) {\r\n var _this = this;\r\n if (this.debug) {\r\n var logStyles_1 = [\r\n 'color: #888; border: dashed #888 0; border-bottom-width: 0px',\r\n 'color: #000; border-width: 0'\r\n ];\r\n this.log(function () { return __spreadArray(['%cstat' + (str ? \" \".concat(str) : '') + ',%c ' + _this.getStat()], __read(logStyles_1), false); });\r\n }\r\n };\r\n Logger.prototype.fetch = function (str) {\r\n var _this = this;\r\n if (this.debug) {\r\n var _text_1 = 'fetch interval' + (str ? \" \".concat(str) : '');\r\n var logStyles_2 = ['color: #888', 'color: #000'];\r\n this.log(function () { return __spreadArray([\"%c\".concat(_text_1, \": %c\").concat(_this.getFetchRange())], __read(logStyles_2), false); });\r\n }\r\n };\r\n Logger.prototype.prepareForLog = function (data) {\r\n return data instanceof Event && data.target\r\n ? this.getScrollPosition()\r\n : data;\r\n };\r\n Logger.prototype.logProcess = function (data) {\r\n if (!this.debug) {\r\n return;\r\n }\r\n var process = data.process, status = data.status, payload = data.payload;\r\n // inner loop start-end log\r\n var loopLog = [];\r\n if (process === CommonProcess.init && status === ProcessStatus.next) {\r\n loopLog.push(\"%c---=== loop \".concat(this.getLoopIdNext(), \" start\"));\r\n }\r\n else if (process === CommonProcess.end) {\r\n loopLog.push(\"%c---=== loop \".concat(this.getLoopId(), \" done\"));\r\n var parent_1 = payload && payload.process;\r\n if (status === ProcessStatus.next && (parent_1 !== AdapterProcess.reset && parent_1 !== AdapterProcess.reload)) {\r\n loopLog[0] += \", loop \".concat(this.getLoopIdNext(), \" start\");\r\n }\r\n }\r\n if (loopLog.length) {\r\n this.log(function () { return __spreadArray(__spreadArray([], __read(loopLog), false), ['color: #006600;'], false); });\r\n }\r\n };\r\n Logger.prototype.logCycle = function (start) {\r\n if (start === void 0) { start = true; }\r\n var logData = this.getWorkflowCycleData();\r\n var border = start ? '1px 0 0 1px' : '0 0 1px 1px';\r\n var logStyles = \"color: #0000aa; border: solid #555 1px; border-width: \".concat(border, \"; margin-left: -2px\");\r\n this.log(function () { return [\"%c ~~~ WF Cycle \".concat(logData, \" \").concat(start ? 'STARTED' : 'FINALIZED', \" ~~~ \"), logStyles]; });\r\n };\r\n Logger.prototype.logError = function (str) {\r\n var _this = this;\r\n if (this.debug) {\r\n var logStyles_3 = ['color: #a00;', 'color: #000'];\r\n this.log(function () { return __spreadArray(['error:%c' + (str ? \" \".concat(str) : '') + \"%c (loop \".concat(_this.getLoopIdNext(), \")\")], __read(logStyles_3), false); });\r\n }\r\n };\r\n Logger.prototype.log = function () {\r\n var _this = this;\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.debug) {\r\n if (typeof args[0] === 'function') {\r\n args = args[0]();\r\n if (!Array.isArray(args)) {\r\n args = [args];\r\n }\r\n }\r\n if (args.every(function (item) { return item === void 0; })) {\r\n return;\r\n }\r\n if (this.logTime) {\r\n args = __spreadArray(__spreadArray([], __read(args), false), [this.getTime()], false);\r\n }\r\n args = args.map(function (arg) { return _this.prepareForLog(arg); });\r\n if (this.immediateLog) {\r\n console.log.apply(this, args);\r\n }\r\n else {\r\n this.logs.push(args);\r\n }\r\n }\r\n };\r\n // logNow(...args: unknown[]) {\r\n // const immediateLog = this.immediateLog;\r\n // const debug = this.debug;\r\n // (this as any).debug = true;\r\n // (this as any).immediateLog = true;\r\n // this.log.apply(this, args);\r\n // (this as any).debug = debug;\r\n // (this as any).immediateLog = immediateLog;\r\n // }\r\n Logger.prototype.logForce = function () {\r\n var _this = this;\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.debug) {\r\n if (!this.immediateLog && this.logs.length) {\r\n this.logs.forEach(function (logArgs) { return console.log.apply(_this, logArgs); });\r\n this.logs = [];\r\n }\r\n if (args.length) {\r\n console.log.apply(this, args);\r\n }\r\n }\r\n };\r\n return Logger;\r\n}());\n\nvar Routines = /** @class */ (function () {\r\n function Routines(element, settings) {\r\n this.element = element;\r\n this.settings = {\r\n viewport: settings.viewport,\r\n horizontal: settings.horizontal,\r\n window: settings.windowViewport\r\n };\r\n // initialization\r\n this.viewport = this.getViewportElement();\r\n this.onInit(settings);\r\n }\r\n Routines.prototype.checkElement = function (element) {\r\n if (!element) {\r\n throw new Error('HTML element is not defined');\r\n }\r\n };\r\n Routines.prototype.getViewportElement = function () {\r\n if (this.settings.window) {\r\n return document.documentElement;\r\n }\r\n if (this.settings.viewport) {\r\n return this.settings.viewport;\r\n }\r\n this.checkElement(this.element);\r\n var parent = this.element.parentElement;\r\n this.checkElement(parent);\r\n return parent;\r\n };\r\n Routines.prototype.onInit = function (settings) {\r\n if (settings.windowViewport) {\r\n if ('scrollRestoration' in history) {\r\n history.scrollRestoration = 'manual';\r\n }\r\n }\r\n if (settings.dismissOverflowAnchor) {\r\n this.viewport.style.overflowAnchor = 'none';\r\n }\r\n };\r\n Routines.prototype.findElementBySelector = function (element, selector) {\r\n this.checkElement(element);\r\n return element.querySelector(selector);\r\n };\r\n Routines.prototype.findPaddingElement = function (direction) {\r\n return this.findElementBySelector(this.element, \"[data-padding-\".concat(direction, \"]\"));\r\n };\r\n Routines.prototype.findItemElement = function (id) {\r\n return this.findElementBySelector(this.element, \"[data-sid=\\\"\".concat(id, \"\\\"]\"));\r\n };\r\n Routines.prototype.findItemChildBySelector = function (id, selector) {\r\n return this.findElementBySelector(this.element, \"[data-sid=\\\"\".concat(id, \"\\\"] \").concat(selector));\r\n };\r\n Routines.prototype.getScrollPosition = function () {\r\n if (this.settings.window) {\r\n return this.settings.horizontal ? window.pageXOffset : window.pageYOffset;\r\n }\r\n return this.viewport[this.settings.horizontal ? 'scrollLeft' : 'scrollTop'];\r\n };\r\n Routines.prototype.setScrollPosition = function (value) {\r\n value = Math.max(0, value);\r\n if (this.settings.window) {\r\n if (this.settings.horizontal) {\r\n window.scrollTo(value, window.scrollY);\r\n }\r\n else {\r\n window.scrollTo(window.scrollX, value);\r\n }\r\n return;\r\n }\r\n this.viewport[this.settings.horizontal ? 'scrollLeft' : 'scrollTop'] = value;\r\n };\r\n Routines.prototype.getElementParams = function (element) {\r\n this.checkElement(element);\r\n return element.getBoundingClientRect();\r\n };\r\n Routines.prototype.getWindowParams = function () {\r\n var _a = this.viewport, clientWidth = _a.clientWidth, clientHeight = _a.clientHeight, clientLeft = _a.clientLeft, clientTop = _a.clientTop;\r\n return {\r\n 'height': clientHeight,\r\n 'width': clientWidth,\r\n 'top': clientTop,\r\n 'bottom': clientTop + clientHeight,\r\n 'left': clientLeft,\r\n 'right': clientLeft + clientWidth,\r\n 'x': clientLeft,\r\n 'y': clientTop,\r\n 'toJSON': function () { return null; },\r\n };\r\n };\r\n Routines.prototype.getSize = function (element) {\r\n return this.getElementParams(element)[this.settings.horizontal ? 'width' : 'height'];\r\n };\r\n Routines.prototype.getScrollerSize = function () {\r\n return this.getElementParams(this.element)[this.settings.horizontal ? 'width' : 'height'];\r\n };\r\n Routines.prototype.getViewportSize = function () {\r\n if (this.settings.window) {\r\n return this.getWindowParams()[this.settings.horizontal ? 'width' : 'height'];\r\n }\r\n return this.getSize(this.viewport);\r\n };\r\n Routines.prototype.getSizeStyle = function (element) {\r\n this.checkElement(element);\r\n var size = element.style[this.settings.horizontal ? 'width' : 'height'];\r\n return parseFloat(size) || 0;\r\n };\r\n Routines.prototype.setSizeStyle = function (element, value) {\r\n this.checkElement(element);\r\n value = Math.max(0, Math.round(value));\r\n element.style[this.settings.horizontal ? 'width' : 'height'] = \"\".concat(value, \"px\");\r\n };\r\n Routines.prototype.getEdge = function (element, direction) {\r\n var horizontal = this.settings.horizontal;\r\n var params = this.getElementParams(element);\r\n var isFwd = direction === Direction.forward;\r\n return params[isFwd ? (horizontal ? 'right' : 'bottom') : (horizontal ? 'left' : 'top')];\r\n };\r\n Routines.prototype.getViewportEdge = function (direction) {\r\n var _a = this.settings, window = _a.window, horizontal = _a.horizontal;\r\n if (window) {\r\n var params = this.getWindowParams();\r\n var isFwd = direction === Direction.forward;\r\n return params[isFwd ? (horizontal ? 'right' : 'bottom') : (horizontal ? 'left' : 'top')];\r\n }\r\n return this.getEdge(this.viewport, direction);\r\n };\r\n Routines.prototype.makeElementVisible = function (element) {\r\n this.checkElement(element);\r\n element.style.left = '';\r\n element.style.top = '';\r\n element.style.position = '';\r\n };\r\n Routines.prototype.hideElement = function (element) {\r\n this.checkElement(element);\r\n element.style.display = 'none';\r\n };\r\n Routines.prototype.getOffset = function () {\r\n var _this = this;\r\n var get = function (element) {\r\n return (_this.settings.horizontal ? element.offsetLeft : element.offsetTop) || 0;\r\n };\r\n return get(this.element) - (!this.settings.window ? get(this.viewport) : 0);\r\n };\r\n Routines.prototype.scrollTo = function (element, argument) {\r\n this.checkElement(element);\r\n element.scrollIntoView(argument);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Routines.prototype.render = function (cb, params) {\r\n var timeoutId = setTimeout(function () { return cb(); });\r\n return function () { return clearTimeout(timeoutId); };\r\n };\r\n Routines.prototype.animate = function (cb) {\r\n var animationFrameId = requestAnimationFrame(function () { return cb(); });\r\n return function () { return cancelAnimationFrame(animationFrameId); };\r\n };\r\n Routines.prototype.onScroll = function (handler) {\r\n var eventReceiver = this.settings.window ? window : this.viewport;\r\n eventReceiver.addEventListener('scroll', handler);\r\n return function () { return eventReceiver.removeEventListener('scroll', handler); };\r\n };\r\n return Routines;\r\n}());\n\nvar Padding = /** @class */ (function () {\r\n function Padding(direction, routines) {\r\n var found = routines.findPaddingElement(direction);\r\n routines.checkElement(found);\r\n this.element = found;\r\n this.direction = direction;\r\n this.routines = routines;\r\n }\r\n Padding.prototype.reset = function (size) {\r\n this.size = size || 0;\r\n };\r\n Object.defineProperty(Padding.prototype, \"size\", {\r\n get: function () {\r\n return this.routines.getSizeStyle(this.element);\r\n },\r\n set: function (value) {\r\n this.routines.setSizeStyle(this.element, value);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Padding;\r\n}());\r\nvar Paddings = /** @class */ (function () {\r\n function Paddings(routines, settings) {\r\n this.settings = settings;\r\n this.forward = new Padding(Direction.forward, routines);\r\n this.backward = new Padding(Direction.backward, routines);\r\n }\r\n Paddings.prototype.byDirection = function (direction, opposite) {\r\n return direction === Direction.backward\r\n ? (opposite ? this.forward : this.backward)\r\n : (opposite ? this.backward : this.forward);\r\n };\r\n Paddings.prototype.reset = function (viewportSize, startIndex, offset) {\r\n var positive = this.getPositiveSize(startIndex, viewportSize, offset);\r\n var negative = this.getNegativeSize(startIndex);\r\n if (this.settings.inverse) {\r\n this.forward.reset(negative);\r\n this.backward.reset(positive);\r\n var diff = viewportSize - this.backward.size - offset;\r\n if (diff > 0) {\r\n this.backward.size += diff;\r\n this.forward.size -= diff;\r\n }\r\n }\r\n else {\r\n this.forward.reset(positive);\r\n this.backward.reset(negative);\r\n var diff = viewportSize - this.forward.size - offset;\r\n if (diff > 0) {\r\n this.backward.size -= diff;\r\n this.forward.size += diff;\r\n }\r\n }\r\n };\r\n Paddings.prototype.getPositiveSize = function (startIndex, viewportSize, offset) {\r\n var settings = this.settings;\r\n var positiveSize = viewportSize;\r\n if (isFinite(settings.maxIndex)) {\r\n positiveSize = (settings.maxIndex - startIndex + 1) * settings.itemSize;\r\n }\r\n if (offset) {\r\n positiveSize = Math.max(positiveSize - offset, 0);\r\n }\r\n return positiveSize;\r\n };\r\n Paddings.prototype.getNegativeSize = function (startIndex) {\r\n var settings = this.settings;\r\n var negativeSize = 0;\r\n if (isFinite(settings.minIndex)) {\r\n negativeSize = (startIndex - settings.minIndex) * settings.itemSize;\r\n }\r\n return negativeSize;\r\n };\r\n return Paddings;\r\n}());\n\nvar Viewport = /** @class */ (function () {\r\n function Viewport(settings, routines, state, logger) {\r\n this.settings = settings;\r\n this.routines = routines;\r\n this.state = state;\r\n this.logger = logger;\r\n this.paddings = new Paddings(this.routines, settings);\r\n }\r\n Viewport.prototype.reset = function (startIndex) {\r\n this.setOffset();\r\n this.paddings.reset(this.getSize(), startIndex, this.offset);\r\n this.scrollPosition = this.paddings.backward.size || 0;\r\n this.state.scroll.reset();\r\n };\r\n Viewport.prototype.setPosition = function (value) {\r\n var oldPosition = this.scrollPosition;\r\n if (oldPosition === value) {\r\n this.logger.log(function () { return ['setting scroll position at', value, '[cancelled]']; });\r\n return value;\r\n }\r\n this.routines.setScrollPosition(value);\r\n var position = this.scrollPosition;\r\n this.logger.log(function () { return __spreadArray([\r\n 'setting scroll position at', position\r\n ], __read((position !== value ? [\"(\".concat(value, \")\")] : [])), false); });\r\n return position;\r\n };\r\n Object.defineProperty(Viewport.prototype, \"scrollPosition\", {\r\n get: function () {\r\n return this.routines.getScrollPosition();\r\n },\r\n set: function (value) {\r\n this.setPosition(value);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Viewport.prototype.getSize = function () {\r\n return this.routines.getViewportSize();\r\n };\r\n Viewport.prototype.getScrollableSize = function () {\r\n return this.routines.getScrollerSize();\r\n };\r\n Viewport.prototype.getMaxScrollPosition = function () {\r\n return this.getScrollableSize() - this.getSize();\r\n };\r\n Viewport.prototype.getBufferPadding = function () {\r\n return this.getSize() * this.settings.padding;\r\n };\r\n Viewport.prototype.getEdge = function (direction) {\r\n return this.routines.getViewportEdge(direction);\r\n };\r\n Viewport.prototype.setOffset = function () {\r\n this.offset = this.routines.getOffset();\r\n };\r\n Viewport.prototype.findItemElementById = function (id) {\r\n return this.routines.findItemElement(id);\r\n };\r\n Viewport.prototype.getEdgeVisibleItem = function (items, direction) {\r\n var bwd = direction === Direction.backward;\r\n var opposite = bwd ? Direction.forward : Direction.backward;\r\n var viewportEdge = this.getEdge(direction);\r\n var item, diff = 0;\r\n for (var i = bwd ? 0 : items.length - 1; bwd ? i <= items.length - 1 : i >= 0; i += bwd ? 1 : -1) {\r\n var itemEdge = this.routines.getEdge(items[i].element, opposite);\r\n diff = itemEdge - viewportEdge;\r\n if (bwd && diff > 0 || !bwd && diff < 0) {\r\n item = items[i];\r\n break;\r\n }\r\n }\r\n return { item: item, index: item ? item.$index : NaN, diff: diff };\r\n };\r\n return Viewport;\r\n}());\n\nvar SizesRecalculation = /** @class */ (function () {\r\n function SizesRecalculation() {\r\n this.reset();\r\n }\r\n SizesRecalculation.prototype.reset = function () {\r\n this.newItems = [];\r\n this.oldItems = [];\r\n this.removed = [];\r\n };\r\n return SizesRecalculation;\r\n}());\r\nvar DefaultSize = /** @class */ (function () {\r\n function DefaultSize(itemSize, sizeStrategy) {\r\n this.itemSize = itemSize;\r\n this.sizeStrategy = sizeStrategy;\r\n this.sizeMap = new Map();\r\n this.recalculation = new SizesRecalculation();\r\n }\r\n DefaultSize.prototype.reset = function (force) {\r\n if (force) {\r\n this.constantSize = this.itemSize;\r\n this.frequentSize = this.itemSize;\r\n this.averageSize = this.itemSize;\r\n this.averageSizeFloat = this.itemSize;\r\n this.sizeMap.clear();\r\n }\r\n this.recalculation.reset();\r\n };\r\n DefaultSize.prototype.get = function () {\r\n switch (this.sizeStrategy) {\r\n case SizeStrategy.Average:\r\n return this.averageSize;\r\n case SizeStrategy.Frequent:\r\n return this.frequentSize;\r\n default:\r\n return this.constantSize;\r\n }\r\n };\r\n DefaultSize.prototype.recalculateAverageSize = function (cacheSize) {\r\n var _a = this.recalculation, oldItems = _a.oldItems, newItems = _a.newItems, removed = _a.removed;\r\n if (oldItems.length) {\r\n var oldSize = oldItems.reduce(function (acc, item) { return acc + item.size; }, 0);\r\n var newSize = oldItems.reduce(function (acc, item) { return acc + item.newSize; }, 0);\r\n var averageSize = this.averageSizeFloat || 0;\r\n this.averageSizeFloat = averageSize - (oldSize - newSize) / (cacheSize - newItems.length);\r\n }\r\n if (newItems.length) {\r\n var newSize = newItems.reduce(function (acc, item) { return acc + item.size; }, 0);\r\n var averageSize = this.averageSizeFloat || 0;\r\n this.averageSizeFloat = ((cacheSize - newItems.length) * averageSize + newSize) / cacheSize;\r\n }\r\n if (removed.length) {\r\n var removedSize = removed.reduce(function (acc, item) { return acc + item.size; }, 0);\r\n var averageSize = this.averageSizeFloat || 0;\r\n this.averageSizeFloat = ((cacheSize + removed.length) * averageSize - removedSize) / cacheSize;\r\n }\r\n this.averageSize = Math.round(this.averageSizeFloat);\r\n };\r\n DefaultSize.prototype.recalculateFrequentSize = function () {\r\n var _this = this;\r\n var _a = this.recalculation, oldItems = _a.oldItems, newItems = _a.newItems, removed = _a.removed;\r\n var oldFrequentSizeCount = this.sizeMap.get(this.frequentSize);\r\n if (newItems.length) {\r\n newItems.forEach(function (_a) {\r\n var size = _a.size;\r\n return _this.sizeMap.set(size, (_this.sizeMap.get(size) || 0) + 1);\r\n });\r\n }\r\n if (oldItems.length) {\r\n oldItems.forEach(function (_a) {\r\n var size = _a.size;\r\n return _this.sizeMap.set(size, Math.max((_this.sizeMap.get(size) || 0) - 1, 0));\r\n });\r\n oldItems.forEach(function (_a) {\r\n var s = _a.newSize;\r\n return _this.sizeMap.set(s, (_this.sizeMap.get(s) || 0) + 1);\r\n });\r\n }\r\n if (removed.length) {\r\n removed.forEach(function (_a) {\r\n var size = _a.size;\r\n return _this.sizeMap.set(size, Math.max((_this.sizeMap.get(size) || 0) - 1, 0));\r\n });\r\n }\r\n var sorted = __spreadArray([], __read(this.sizeMap.entries()), false).sort(function (a, b) { return b[1] - a[1]; });\r\n var mostFrequentCount = sorted[0][1];\r\n var listEqual = sorted.filter(function (i) { return i[1] === mostFrequentCount; });\r\n if (listEqual.length > 1 && listEqual.find(function (i) { return i[0] === oldFrequentSizeCount; })) {\r\n // if there are more than 1 most frequent sizes, but the old one is present\r\n return;\r\n }\r\n this.frequentSize = sorted[0][0];\r\n };\r\n DefaultSize.prototype.recalculate = function (cacheSize) {\r\n if (this.sizeStrategy === SizeStrategy.Constant) {\r\n return false;\r\n }\r\n var _a = this.recalculation, oldItems = _a.oldItems, newItems = _a.newItems, removed = _a.removed;\r\n if (!oldItems.length && !newItems.length && !removed.length) {\r\n return false;\r\n }\r\n var oldValue = this.get();\r\n if (!cacheSize) {\r\n this.reset(true);\r\n }\r\n else {\r\n if (this.sizeStrategy === SizeStrategy.Average) {\r\n this.recalculateAverageSize(cacheSize);\r\n }\r\n else {\r\n this.recalculateFrequentSize();\r\n }\r\n this.recalculation.reset();\r\n }\r\n return this.get() !== oldValue;\r\n };\r\n DefaultSize.prototype.setExisted = function (oldSize, newSize) {\r\n if (this.sizeStrategy !== SizeStrategy.Constant) {\r\n this.recalculation.oldItems.push({\r\n size: oldSize,\r\n newSize: newSize\r\n });\r\n }\r\n };\r\n DefaultSize.prototype.setNew = function (size) {\r\n if (this.sizeStrategy !== SizeStrategy.Constant) {\r\n this.recalculation.newItems.push({ size: size });\r\n }\r\n else {\r\n if (!this.constantSize) {\r\n this.constantSize = size;\r\n }\r\n }\r\n };\r\n DefaultSize.prototype.setRemoved = function (size) {\r\n if (this.sizeStrategy !== SizeStrategy.Constant) {\r\n this.recalculation.removed.push({ size: size });\r\n }\r\n };\r\n return DefaultSize;\r\n}());\n\nvar ItemCache = /** @class */ (function () {\r\n function ItemCache(item, saveData) {\r\n this.$index = item.$index;\r\n this.data = saveData ? item.data : null;\r\n this.size = item.size;\r\n }\r\n ItemCache.prototype.changeIndex = function (value) {\r\n this.$index = value;\r\n };\r\n return ItemCache;\r\n}());\r\nvar Cache = /** @class */ (function () {\r\n function Cache(_a, logger) {\r\n var itemSize = _a.itemSize, cacheData = _a.cacheData, cacheOnReload = _a.cacheOnReload, sizeStrategy = _a.sizeStrategy;\r\n this.itemSize = itemSize;\r\n this.saveData = cacheData;\r\n this.cacheOnReload = cacheOnReload;\r\n this.sizeStrategy = sizeStrategy;\r\n this.logger = logger;\r\n this.items = new Map();\r\n this.defaultSize = new DefaultSize(itemSize, sizeStrategy);\r\n this.reset(true);\r\n }\r\n Cache.prototype.reset = function (force) {\r\n force = force || !this.cacheOnReload;\r\n if (force) {\r\n this.minIndex = +Infinity;\r\n this.maxIndex = -Infinity;\r\n this.items.clear();\r\n }\r\n this.defaultSize.reset(force);\r\n };\r\n Object.defineProperty(Cache.prototype, \"size\", {\r\n get: function () {\r\n return this.items.size;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Cache.prototype.get = function (index) {\r\n return this.items.get(index);\r\n };\r\n Cache.prototype.getSizeByIndex = function (index) {\r\n var item = this.get(index);\r\n return item && item.size || this.defaultSize.get();\r\n };\r\n Cache.prototype.getDefaultSize = function () {\r\n return this.defaultSize.get();\r\n };\r\n Cache.prototype.recalculateDefaultSize = function () {\r\n var _this = this;\r\n if (this.defaultSize.recalculate(this.size)) {\r\n this.logger.log(function () { return \"default size has been updated: \".concat(_this.defaultSize.get()); });\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * Adds item to Set by $index, replaces existed item if $index matches.\r\n * Maintains min/max indexes and default item size.\r\n *\r\n * @param {Item} item A Buffer item to be cached, an objects with { $index, data, size } props.\r\n *\r\n * @returns {ItemCache} Cached item.\r\n */\r\n Cache.prototype.add = function (item) {\r\n var itemCache = this.get(item.$index);\r\n if (itemCache) { // adding item is already cached\r\n if (this.saveData) {\r\n itemCache.data = item.data;\r\n }\r\n if (itemCache.size !== item.size) {\r\n if (itemCache.size) {\r\n this.defaultSize.setExisted(itemCache.size, item.size);\r\n }\r\n else {\r\n this.defaultSize.setNew(item.size);\r\n }\r\n itemCache.size = item.size;\r\n }\r\n }\r\n else {\r\n itemCache = new ItemCache(item, this.saveData);\r\n this.items.set(item.$index, itemCache);\r\n this.defaultSize.setNew(item.size);\r\n }\r\n if (item.$index < this.minIndex) {\r\n this.minIndex = item.$index;\r\n }\r\n if (item.$index > this.maxIndex) {\r\n this.maxIndex = item.$index;\r\n }\r\n return itemCache;\r\n };\r\n /**\r\n * Inserts items to Set, shifts $indexes of items that remain.\r\n * Replaces current Set with a new one with new regular $indexes.\r\n * Maintains min/max indexes.\r\n *\r\n * @param {Data[]} toInsert List of non-indexed items to be inserted.\r\n * @param {number} index The index before/after which the insertion is performed.\r\n * @param {Direction} direction Determines the direction of insertion.\r\n * @param {boolean} fixRight Defines indexes shifting strategy.\r\n * If false, indexes that are greater than the inserted ones are increased.\r\n * If true, indexes that are less than than the inserted ones are decreased.\r\n */\r\n Cache.prototype.insertItems = function (toInsert, index, direction, fixRight) {\r\n var _this = this;\r\n var items = new Map();\r\n var length = toInsert.length;\r\n var min = Infinity, max = -Infinity;\r\n var set = function (item) {\r\n items.set(item.$index, item);\r\n min = item.$index < min ? item.$index : min;\r\n max = item.$index > max ? item.$index : max;\r\n };\r\n this.items.forEach(function (item) {\r\n var shift = 0;\r\n if (direction === Direction.backward) {\r\n if (item.$index < index && fixRight) {\r\n shift = -length;\r\n }\r\n else if (item.$index >= index && !fixRight) {\r\n shift = length;\r\n }\r\n }\r\n else if (direction === Direction.forward) {\r\n if (item.$index <= index && fixRight) {\r\n shift = -length;\r\n }\r\n else if (item.$index > index && !fixRight) {\r\n shift = length;\r\n }\r\n }\r\n if (shift) {\r\n item.changeIndex(item.$index + shift);\r\n }\r\n set(item);\r\n });\r\n if (this.saveData) { // persist data with no sizes\r\n toInsert.forEach(function (data, i) {\r\n var $index = index + i - (fixRight ? length : 0) + (direction === Direction.forward ? 1 : 0);\r\n var item = new ItemCache({ $index: $index, data: data }, _this.saveData);\r\n set(item);\r\n });\r\n }\r\n this.items = items;\r\n this.minIndex = min;\r\n this.maxIndex = max;\r\n };\r\n /**\r\n * Removes items from Set, shifts $indexes of items that remain.\r\n * Replaces current Set with a new one with new regular $indexes.\r\n * Maintains min/max indexes and default item size.\r\n *\r\n * @param {number[]} toRemove List of indexes to be removed.\r\n * @param {boolean} fixRight Defines indexes shifting strategy.\r\n * If false, indexes that are greater than the removed ones will be decreased.\r\n * If true, indexes that are less than than the removed ones will be increased.\r\n */\r\n Cache.prototype.removeItems = function (toRemove, fixRight) {\r\n var _this = this;\r\n var items = new Map();\r\n var min = Infinity, max = -Infinity;\r\n this.items.forEach(function (item) {\r\n if (toRemove.some(function (index) { return index === item.$index; })) {\r\n if (item.size) {\r\n _this.defaultSize.setRemoved(item.size);\r\n }\r\n return;\r\n }\r\n var diff = fixRight\r\n ? toRemove.reduce(function (acc, index) { return acc + (item.$index < index ? 1 : 0); }, 0)\r\n : toRemove.reduce(function (acc, index) { return acc - (item.$index > index ? 1 : 0); }, 0);\r\n item.changeIndex(item.$index + diff);\r\n items.set(item.$index, item);\r\n min = item.$index < min ? item.$index : min;\r\n max = item.$index > max ? item.$index : max;\r\n });\r\n this.items = items;\r\n this.minIndex = min;\r\n this.maxIndex = max;\r\n };\r\n /**\r\n * Destructively updates Set based on subset (before-after) changes.\r\n * Replaces current Set with a new one with new regular $indexes.\r\n * Maintains min/max indexes. Maintains default item size on remove only.\r\n *\r\n * @param {ItemUpdate[]} before Initial subset of items to be replaced by \"after\".\r\n * Each element is an object with { $index, size, toRemove } props. Must be $index-incremental.\r\n * Items to be removed must have toRemove flag: before[].toRemove = true.\r\n * @param {Item[]} after Transformed subset that replaces \"before\". Must be $index-incremental.\r\n * Must contain at least 1 $index from \"before\" or be empty.\r\n * @param {boolean} fixRight This is to fix right indexes during subset collapsing. Acts only if \"after\" is empty.\r\n */\r\n Cache.prototype.updateSubset = function (before, after, fixRight) {\r\n var _this = this;\r\n if (!this.size || !before.length) {\r\n return;\r\n }\r\n var minB = before[0].$index, maxB = before[before.length - 1].$index;\r\n var leftDiff, rightDiff;\r\n if (after.length) {\r\n var minA = after[0].$index, maxA = after[after.length - 1].$index;\r\n leftDiff = minA - minB;\r\n rightDiff = maxA - maxB;\r\n }\r\n else {\r\n leftDiff = fixRight ? maxB - minB + 1 : 0;\r\n rightDiff = fixRight ? 0 : minB - maxB - 1;\r\n }\r\n var items = new Map();\r\n this.items.forEach(function (item) {\r\n if (item.$index < minB) { // items to the left of the subset\r\n item.changeIndex(item.$index + leftDiff);\r\n items.set(item.$index, item);\r\n return;\r\n }\r\n else if (item.$index > maxB) { // items to the right of the subset\r\n item.changeIndex(item.$index + rightDiff);\r\n items.set(item.$index, item);\r\n return;\r\n }\r\n });\r\n after.forEach(function (item) {\r\n return items.set(item.$index, new ItemCache(item, _this.saveData));\r\n });\r\n before // to maintain default size on remove\r\n .filter(function (item) { return item.toRemove; })\r\n .forEach(function (item) { return _this.defaultSize.setRemoved(item.size); });\r\n this.minIndex += leftDiff;\r\n this.maxIndex += rightDiff;\r\n this.items = items;\r\n };\r\n /**\r\n * Shifts all indexes by some value.\r\n * Replaces current Set with a new one with new regular $indexes.\r\n * Maintains min/max indexes.\r\n *\r\n * @param {number} delta A shift value.\r\n */\r\n Cache.prototype.shiftIndexes = function (delta) {\r\n var items = new Map();\r\n var min = Infinity, max = -Infinity;\r\n this.items.forEach(function (item) {\r\n item.changeIndex(item.$index + delta);\r\n items.set(item.$index, item);\r\n min = item.$index < min ? item.$index : min;\r\n max = item.$index > max ? item.$index : max;\r\n });\r\n this.items = items;\r\n this.minIndex = min;\r\n this.maxIndex = max;\r\n };\r\n return Cache;\r\n}());\n\nvar CheckBufferCall = /** @class */ (function () {\r\n function CheckBufferCall(context, logger) {\r\n this.context = context;\r\n this.logger = logger;\r\n }\r\n CheckBufferCall.prototype.fillEmpty = function (items, before, after) {\r\n if (!items.length) {\r\n this.logger.log('no items to fill the buffer; empty list');\r\n return false;\r\n }\r\n if (!Number.isInteger(before) && !Number.isInteger(after)) {\r\n this.logger.log('no items to fill the buffer; wrong indexes');\r\n return false;\r\n }\r\n this.logger.log(function () { return \"going to fill the buffer with \".concat(items.length, \" item(s)\"); });\r\n return true;\r\n };\r\n CheckBufferCall.prototype.insertInBuffer = function (predicate, before, after) {\r\n var index = Number.isInteger(before) ? before : (Number.isInteger(after) ? after : NaN);\r\n var found = this.context.items.find(function (item) {\r\n return (predicate && predicate(item.get())) ||\r\n (Number.isInteger(index) && index === item.$index);\r\n });\r\n if (!found) {\r\n this.logger.log('no items to insert in buffer; empty predicate\\'s result');\r\n return NaN;\r\n }\r\n return found.$index;\r\n };\r\n CheckBufferCall.prototype.insertVirtual = function (items, index, direction) {\r\n if (!items.length) {\r\n this.logger.log('no items to insert virtually; empty list');\r\n return false;\r\n }\r\n var _a = this.context, firstIndex = _a.firstIndex, lastIndex = _a.lastIndex, finiteAbsMinIndex = _a.finiteAbsMinIndex, finiteAbsMaxIndex = _a.finiteAbsMaxIndex;\r\n if (index < finiteAbsMinIndex || index > finiteAbsMaxIndex) {\r\n this.logger.log(function () {\r\n return 'no items to insert virtually; ' +\r\n \"selected index (\".concat(index, \") does not match virtual area [\").concat(finiteAbsMinIndex, \"..\").concat(finiteAbsMaxIndex, \"]\");\r\n });\r\n return false;\r\n }\r\n var before = direction === Direction.backward;\r\n if (!(index < firstIndex + (before ? 1 : 0) || index > lastIndex - (before ? 0 : 1))) {\r\n this.logger.log(function () {\r\n return \"no items to insert virtually; selected index (\".concat(index, \") belongs Buffer [\").concat(firstIndex, \"..\").concat(lastIndex, \"]\");\r\n });\r\n return false;\r\n }\r\n this.logger.log(function () { return \"going to insert \".concat(items.length, \" item(s) virtually\"); });\r\n return true;\r\n };\r\n return CheckBufferCall;\r\n}());\n\nvar Buffer = /** @class */ (function () {\r\n function Buffer(settings, onDataChanged, logger) {\r\n this._items = [];\r\n this.logger = logger;\r\n this.changeItems = onDataChanged;\r\n this.bof = new Reactive(false);\r\n this.eof = new Reactive(false);\r\n this.cache = new Cache(settings, logger);\r\n this.checkCall = new CheckBufferCall(this, logger);\r\n this.startIndexUser = settings.startIndex;\r\n this.minIndexUser = settings.minIndex;\r\n this.maxIndexUser = settings.maxIndex;\r\n this.reset(true);\r\n }\r\n Buffer.prototype.dispose = function () {\r\n this.bof.dispose();\r\n this.eof.dispose();\r\n this._items.forEach(function (item) { return item.dispose(); });\r\n this._items = [];\r\n };\r\n Buffer.prototype.reset = function (force, startIndex) {\r\n this.items.forEach(function (item) { return item.hide(); });\r\n this.pristine = true;\r\n this.items = [];\r\n this.cache.reset(force);\r\n this.absMinIndex = this.minIndexUser;\r\n this.absMaxIndex = this.maxIndexUser;\r\n this.setCurrentStartIndex(startIndex);\r\n this.bof.set(false);\r\n this.eof.set(false);\r\n this.pristine = false;\r\n };\r\n Buffer.prototype.setCurrentStartIndex = function (newStartIndex) {\r\n var min = this.minIndexUser;\r\n var max = this.maxIndexUser;\r\n var start = this.startIndexUser;\r\n var index = Number(newStartIndex);\r\n if (Number.isNaN(index)) {\r\n this.logger.log(function () { return \"fallback startIndex to settings.startIndex (\".concat(start, \")\"); });\r\n index = start;\r\n }\r\n if (index < min) {\r\n this.logger.log(function () { return \"setting startIndex to settings.minIndex (\".concat(min, \") because \").concat(index, \" < \").concat(min); });\r\n index = min;\r\n }\r\n if (index > max) {\r\n this.logger.log(function () { return \"setting startIndex to settings.maxIndex (\".concat(max, \") because \").concat(index, \" > \").concat(max); });\r\n index = max;\r\n }\r\n this.startIndex = index;\r\n };\r\n Object.defineProperty(Buffer.prototype, \"items\", {\r\n get: function () {\r\n return this._items;\r\n },\r\n set: function (items) {\r\n this._items = items;\r\n this.changeItems(items);\r\n if (!this.pristine) {\r\n this.checkBOF();\r\n this.checkEOF();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Buffer.prototype, \"absMinIndex\", {\r\n get: function () {\r\n return this._absMinIndex;\r\n },\r\n set: function (value) {\r\n if (this._absMinIndex !== value) {\r\n this._absMinIndex = Number.isFinite(this._absMaxIndex) && value > this._absMaxIndex ? this._absMaxIndex : value;\r\n }\r\n if (!this.pristine) {\r\n this.checkBOF();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Buffer.prototype, \"absMaxIndex\", {\r\n get: function () {\r\n return this._absMaxIndex;\r\n },\r\n set: function (value) {\r\n if (this._absMaxIndex !== value) {\r\n this._absMaxIndex = Number.isFinite(this._absMinIndex) && value < this._absMinIndex ? this._absMinIndex : value;\r\n }\r\n if (!this.pristine) {\r\n this.checkEOF();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Buffer.prototype.checkBOF = function () {\r\n // since bof has no setter, need to call checkBOF() on items and absMinIndex change\r\n var bof = this.items.length\r\n ? (this.items[0].$index === this.absMinIndex)\r\n : isFinite(this.absMinIndex);\r\n this.bof.set(bof);\r\n };\r\n Buffer.prototype.checkEOF = function () {\r\n // since eof has no setter, need to call checkEOF() on items and absMaxIndex change\r\n var eof = this.items.length\r\n ? (this.items[this.items.length - 1].$index === this.absMaxIndex)\r\n : isFinite(this.absMaxIndex);\r\n this.eof.set(eof);\r\n };\r\n Object.defineProperty(Buffer.prototype, \"size\", {\r\n get: function () {\r\n return this._items.length;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Buffer.prototype, \"cacheSize\", {\r\n get: function () {\r\n return this.cache.size;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Buffer.prototype, \"defaultSize\", {\r\n get: function () {\r\n return this.cache.getDefaultSize();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Buffer.prototype, \"minIndex\", {\r\n get: function () {\r\n return isFinite(this.cache.minIndex) ? this.cache.minIndex : this.startIndex;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Buffer.prototype, \"maxIndex\", {\r\n get: function () {\r\n return isFinite(this.cache.maxIndex) ? this.cache.maxIndex : this.startIndex;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Buffer.prototype, \"firstIndex\", {\r\n get: function () {\r\n return this.items.length ? this.items[0].$index : NaN;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Buffer.prototype, \"lastIndex\", {\r\n get: function () {\r\n return this.items.length ? this.items[this.items.length - 1].$index : NaN;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Buffer.prototype, \"finiteAbsMinIndex\", {\r\n get: function () {\r\n return isFinite(this.absMinIndex) ? this.absMinIndex : this.minIndex;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Buffer.prototype, \"finiteAbsMaxIndex\", {\r\n get: function () {\r\n return isFinite(this.absMaxIndex) ? this.absMaxIndex : this.maxIndex;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Buffer.prototype.get = function ($index) {\r\n return this.items.find(function (item) { return item.$index === $index; });\r\n };\r\n Buffer.prototype.setItems = function (items) {\r\n if (!this.items.length) {\r\n this.items = __spreadArray([], __read(items), false);\r\n }\r\n else if (this.items[0].$index > items[items.length - 1].$index) {\r\n this.items = __spreadArray(__spreadArray([], __read(items), false), __read(this.items), false);\r\n }\r\n else if (items[0].$index > this.items[this.items.length - 1].$index) {\r\n this.items = __spreadArray(__spreadArray([], __read(this.items), false), __read(items), false);\r\n }\r\n else {\r\n return false;\r\n }\r\n return true;\r\n };\r\n Buffer.prototype.clip = function () {\r\n this.items = this.items.filter(function (_a) {\r\n var toRemove = _a.toRemove;\r\n return !toRemove;\r\n });\r\n };\r\n Buffer.prototype.getIndexToInsert = function (predicate, before, after) {\r\n return this.checkCall.insertInBuffer(predicate, before, after);\r\n };\r\n Buffer.prototype.shiftExtremum = function (amount, fixRight) {\r\n if (!fixRight) {\r\n this.absMaxIndex += amount;\r\n }\r\n else {\r\n this.absMinIndex -= amount;\r\n this.startIndex -= amount;\r\n }\r\n if (this.startIndex > this.absMaxIndex) {\r\n this.startIndex = this.absMaxIndex;\r\n }\r\n else if (this.startIndex < this.absMinIndex) {\r\n this.startIndex = this.absMinIndex;\r\n }\r\n };\r\n Buffer.prototype.insertVirtually = function (items, index, direction, fixRight) {\r\n if (!this.checkCall.insertVirtual(items, index, direction)) {\r\n return false;\r\n }\r\n var shift = 0;\r\n if (index <= this.firstIndex && !fixRight) {\r\n shift = items.length;\r\n }\r\n else if (index >= this.lastIndex && fixRight) {\r\n shift = -items.length;\r\n }\r\n if (shift) {\r\n this.items.forEach(function (item) { return item.updateIndex(item.$index + shift); });\r\n this.cache.insertItems(items, index, direction, fixRight);\r\n this.items = __spreadArray([], __read(this.items), false);\r\n }\r\n this.shiftExtremum(items.length, fixRight);\r\n return true;\r\n };\r\n Buffer.prototype.removeVirtually = function (indexes, fixRight) {\r\n var length = this.items.length;\r\n var shifted = false;\r\n var _loop_1 = function (i) {\r\n var item = this_1.items[i];\r\n var diff = indexes.reduce(function (acc, index) { return acc + (fixRight\r\n ? (item.$index < index ? 1 : 0)\r\n : (item.$index > index ? -1 : 0)); }, 0);\r\n shifted = shifted || !!diff;\r\n item.updateIndex(item.$index + diff);\r\n };\r\n var this_1 = this;\r\n for (var i = fixRight ? length - 1 : 0; fixRight ? i >= 0 : i < length; fixRight ? i-- : i++) {\r\n _loop_1(i);\r\n }\r\n this.shiftExtremum(-indexes.length, fixRight);\r\n if (shifted) {\r\n this.items = __spreadArray([], __read(this.items), false);\r\n }\r\n this.cache.removeItems(indexes, fixRight);\r\n };\r\n Buffer.prototype.fillEmpty = function (items, beforeIndex, afterIndex, fixRight, generator) {\r\n if (!this.checkCall.fillEmpty(items, beforeIndex, afterIndex)) {\r\n return false;\r\n }\r\n var before = Number.isInteger(beforeIndex);\r\n var index = (before ? beforeIndex : afterIndex);\r\n var shift = (fixRight ? items.length : (before ? 1 : 0));\r\n this.items = items.map(function (data, i) {\r\n return generator(index + i + (!before ? 1 : 0) - shift, data);\r\n });\r\n this._absMinIndex = this.items[0].$index;\r\n this._absMaxIndex = this.items[this.size - 1].$index;\r\n if (this.startIndex <= this.absMinIndex) {\r\n this.startIndex = this.absMinIndex;\r\n }\r\n else if (this.startIndex > this.absMaxIndex) {\r\n this.startIndex = this.absMaxIndex;\r\n }\r\n return true;\r\n };\r\n Buffer.prototype.updateItems = function (predicate, generator, indexToTrack, fixRight) {\r\n if (!this.size || Number.isNaN(this.firstIndex)) {\r\n return { trackedIndex: NaN, toRemove: [] };\r\n }\r\n var trackedIndex = indexToTrack;\r\n var index = fixRight ? this.lastIndex : this.firstIndex;\r\n var items = [];\r\n var diff = fixRight ? -1 : 1;\r\n var limit = this.size - 1;\r\n var beforeMap = new Map(); // need to persist original $indexes\r\n var updateArray = Array.prototype[fixRight ? 'unshift' : 'push'];\r\n var _loop_2 = function (i) {\r\n var item = this_2.items[i];\r\n beforeMap.set(item.$index, item);\r\n var result = predicate(item);\r\n // if predicate result is falsy or empty array -> delete\r\n if (!result || (Array.isArray(result) && !result.length)) {\r\n item.toRemove = true;\r\n trackedIndex += item.$index >= indexToTrack ? (fixRight ? 1 : 0) : (fixRight ? 0 : -1);\r\n this_2.shiftExtremum(-1, fixRight);\r\n return \"continue\";\r\n }\r\n // if predicate result is truthy but not array -> leave\r\n if (!Array.isArray(result)) {\r\n item.updateIndex(index);\r\n updateArray.call(items, item);\r\n index += diff;\r\n return \"continue\";\r\n }\r\n // if predicate result is non-empty array -> insert/replace\r\n if (item.$index < indexToTrack) {\r\n trackedIndex += fixRight ? 0 : result.length - 1;\r\n }\r\n else if (item.$index > indexToTrack) {\r\n trackedIndex += fixRight ? 1 - result.length : 0;\r\n }\r\n var toRemove_1 = true;\r\n var newItems = [];\r\n (fixRight ? __spreadArray([], __read(result), false).reverse() : result).forEach(function (data, i) {\r\n var newItem;\r\n if (item.data === data) {\r\n if (indexToTrack === item.$index) {\r\n trackedIndex = index + i * diff;\r\n }\r\n item.updateIndex(index + i * diff);\r\n newItem = item;\r\n toRemove_1 = false; // insert case\r\n }\r\n else {\r\n newItem = generator(index + i * diff, data);\r\n newItem.toInsert = true;\r\n }\r\n updateArray.call(newItems, newItem);\r\n });\r\n item.toRemove = toRemove_1;\r\n updateArray.call.apply(updateArray, __spreadArray([items], __read(newItems), false));\r\n index += diff * result.length;\r\n if (result.length > 1) {\r\n this_2.shiftExtremum(result.length - 1, fixRight);\r\n }\r\n };\r\n var this_2 = this;\r\n for (var i = fixRight ? limit : 0; fixRight ? i >= 0 : i <= limit; i += diff) {\r\n _loop_2(i);\r\n }\r\n var toRemove = this.items.filter(function (item) { return item.toRemove; });\r\n var itemsBefore = Array.from(beforeMap)\r\n .map(function (_a) {\r\n var _b = __read(_a, 2), $index = _b[0], _c = _b[1], size = _c.size, toRemove = _c.toRemove;\r\n return ({ $index: $index, size: size, toRemove: toRemove });\r\n })\r\n .sort(function (a, b) { return a.$index - b.$index; });\r\n this.items = items;\r\n this.cache.updateSubset(itemsBefore, items, fixRight);\r\n if (this.finiteAbsMinIndex === this.finiteAbsMaxIndex) {\r\n trackedIndex = NaN;\r\n }\r\n else if (trackedIndex > this.finiteAbsMaxIndex) {\r\n trackedIndex = this.finiteAbsMaxIndex;\r\n }\r\n else if (trackedIndex < this.finiteAbsMinIndex) {\r\n trackedIndex = this.finiteAbsMinIndex;\r\n }\r\n return { trackedIndex: trackedIndex, toRemove: toRemove };\r\n };\r\n Buffer.prototype.cacheItem = function (item) {\r\n this.cache.add(item);\r\n };\r\n Buffer.prototype.getFirstVisibleItemIndex = function () {\r\n var length = this.items.length;\r\n for (var i = 0; i < length; i++) {\r\n if (!this.items[i].invisible) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n Buffer.prototype.getLastVisibleItemIndex = function () {\r\n for (var i = this.items.length - 1; i >= 0; i--) {\r\n if (!this.items[i].invisible) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n Buffer.prototype.getFirstVisibleItem = function () {\r\n var index = this.getFirstVisibleItemIndex();\r\n return index >= 0 ? this.items[index] : void 0;\r\n };\r\n Buffer.prototype.getLastVisibleItem = function () {\r\n var index = this.getLastVisibleItemIndex();\r\n return index >= 0 ? this.items[index] : void 0;\r\n };\r\n Buffer.prototype.getEdgeVisibleItem = function (direction, opposite) {\r\n return direction === (!opposite ? Direction.forward : Direction.backward) ?\r\n this.getLastVisibleItem() : this.getFirstVisibleItem();\r\n };\r\n Buffer.prototype.getVisibleItemsCount = function () {\r\n return this.items.reduce(function (acc, item) { return acc + (item.invisible ? 0 : 1); }, 0);\r\n };\r\n Buffer.prototype.getSizeByIndex = function (index) {\r\n return this.cache.getSizeByIndex(index);\r\n };\r\n Buffer.prototype.checkDefaultSize = function () {\r\n return this.cache.recalculateDefaultSize();\r\n };\r\n return Buffer;\r\n}());\n\nvar InnerLoopModel = /** @class */ (function () {\r\n function InnerLoopModel(total) {\r\n this.total = total;\r\n this.isInitial = false;\r\n this.busy = new Reactive(false);\r\n }\r\n Object.defineProperty(InnerLoopModel.prototype, \"first\", {\r\n get: function () {\r\n return this.count === 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n InnerLoopModel.prototype.done = function () {\r\n this.isInitial = false;\r\n this.count++;\r\n this.total++;\r\n this.busy.set(false);\r\n };\r\n InnerLoopModel.prototype.start = function () {\r\n this.busy.set(true);\r\n };\r\n InnerLoopModel.prototype.dispose = function () {\r\n this.busy.dispose();\r\n };\r\n return InnerLoopModel;\r\n}());\r\nvar WorkflowCycleModel = /** @class */ (function () {\r\n function WorkflowCycleModel(instanceIndex, cycle) {\r\n var cycleCount = cycle ? cycle.count : 1;\r\n var loopCount = cycle ? cycle.innerLoop.count : 0;\r\n this.instanceIndex = instanceIndex;\r\n this.innerLoop = new InnerLoopModel(loopCount);\r\n this.interrupter = null;\r\n this.busy = new Reactive(false);\r\n this.end(cycleCount);\r\n }\r\n Object.defineProperty(WorkflowCycleModel.prototype, \"loopId\", {\r\n get: function () {\r\n return \"\".concat(this.instanceIndex, \"-\").concat(this.count, \"-\").concat(this.innerLoop.total);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(WorkflowCycleModel.prototype, \"loopIdNext\", {\r\n get: function () {\r\n return \"\".concat(this.instanceIndex, \"-\").concat(this.count, \"-\").concat(this.innerLoop.total + 1);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n WorkflowCycleModel.prototype.start = function (isInitial, initiator) {\r\n this.isInitial = isInitial;\r\n this.initiator = initiator;\r\n this.innerLoop.isInitial = isInitial;\r\n this.innerLoop.count = 0;\r\n this.interrupter = null;\r\n this.busy.set(true);\r\n };\r\n WorkflowCycleModel.prototype.end = function (count) {\r\n this.count = count;\r\n this.isInitial = false;\r\n this.busy.set(false);\r\n };\r\n WorkflowCycleModel.prototype.dispose = function (forever) {\r\n if (forever) {\r\n // otherwise the value will be persisted during re-instantiation\r\n this.busy.dispose();\r\n }\r\n this.innerLoop.dispose();\r\n };\r\n return WorkflowCycleModel;\r\n}());\n\nvar Positions = /** @class */ (function () {\r\n function Positions() {\r\n this.reset();\r\n }\r\n Positions.prototype.reset = function () {\r\n this.startDelta = 0;\r\n this.before = 0;\r\n };\r\n return Positions;\r\n}());\r\nvar First = /** @class */ (function () {\r\n function First() {\r\n this.reset();\r\n }\r\n First.prototype.reset = function () {\r\n this.index = NaN;\r\n this.indexBuffer = NaN;\r\n this.position = NaN;\r\n };\r\n return First;\r\n}());\r\nvar Last = /** @class */ (function () {\r\n function Last() {\r\n this.reset();\r\n }\r\n Last.prototype.reset = function () {\r\n this.index = NaN;\r\n this.indexBuffer = NaN;\r\n };\r\n return Last;\r\n}());\r\nvar FirstVisible = /** @class */ (function () {\r\n function FirstVisible() {\r\n this.reset();\r\n }\r\n FirstVisible.prototype.reset = function () {\r\n this.index = NaN;\r\n this.delta = 0;\r\n };\r\n return FirstVisible;\r\n}());\r\nvar FetchModel = /** @class */ (function () {\r\n function FetchModel(directionPriority) {\r\n this.directionPriority = directionPriority;\r\n this.callCount = 0;\r\n this.positions = new Positions();\r\n this.first = new First();\r\n this.last = new Last();\r\n this.firstVisible = new FirstVisible();\r\n this.reset();\r\n }\r\n FetchModel.prototype.reset = function () {\r\n this._newItemsData = null;\r\n this.items = [];\r\n this.positions.reset();\r\n this.first.reset();\r\n this.last.reset();\r\n this.firstVisible.reset();\r\n this.hasAnotherPack = false;\r\n this.direction = null;\r\n this.cancel = null;\r\n this.simulate = false;\r\n this.isCheck = false;\r\n this.doRemove = false;\r\n };\r\n Object.defineProperty(FetchModel.prototype, \"newItemsData\", {\r\n get: function () {\r\n return this._newItemsData;\r\n },\r\n set: function (items) {\r\n this._newItemsData = items;\r\n if (items && items.length) {\r\n this.callCount++;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FetchModel.prototype, \"shouldFetch\", {\r\n get: function () {\r\n return !!this.count;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FetchModel.prototype, \"hasNewItems\", {\r\n get: function () {\r\n return !!((this._newItemsData && this._newItemsData.length));\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FetchModel.prototype, \"index\", {\r\n get: function () {\r\n return this.first.index;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FetchModel.prototype, \"count\", {\r\n get: function () {\r\n return !isNaN(this.first.index) && !isNaN(this.last.index) ? this.last.index - this.first.index + 1 : 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n FetchModel.prototype.shouldCheckPreSizeExpectation = function (lastBufferedIndex) {\r\n if (this.directionPriority === Direction.backward) {\r\n return false;\r\n }\r\n var lastFetched = this.items[this.items.length - 1];\r\n return lastFetched && lastFetched.$index < lastBufferedIndex;\r\n };\r\n FetchModel.prototype.startSimulate = function (items) {\r\n this.simulate = true;\r\n this._newItemsData = items.map(function (item) { return item.data; });\r\n this.items = items;\r\n this.hasAnotherPack = false;\r\n };\r\n FetchModel.prototype.stopSimulate = function () {\r\n this.simulate = false;\r\n this.isCheck = false;\r\n this.doRemove = false;\r\n };\r\n FetchModel.prototype.fill = function (items, start) {\r\n this.startSimulate(items);\r\n this.first.index = items[0].$index;\r\n this.last.index = items[items.length - 1].$index;\r\n this.direction = Direction.forward;\r\n this.firstVisible.index = start;\r\n this.firstVisible.delta = 0;\r\n };\r\n FetchModel.prototype.check = function (items) {\r\n this.startSimulate(items);\r\n this.last.index = items[0].$index;\r\n this.first.index = items[items.length - 1].$index;\r\n this.isCheck = true;\r\n };\r\n FetchModel.prototype.update = function (index, delta, items, itemsToRemove) {\r\n this.startSimulate(items);\r\n this.firstVisible.index = index;\r\n this.firstVisible.delta = delta;\r\n this.doRemove = itemsToRemove.length > 0;\r\n };\r\n return FetchModel;\r\n}());\n\nvar ClipModel = /** @class */ (function () {\r\n function ClipModel() {\r\n this.callCount = 0;\r\n this.reset();\r\n }\r\n Object.defineProperty(ClipModel.prototype, \"force\", {\r\n get: function () {\r\n return this.forceForward || this.forceBackward;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ClipModel.prototype.reset = function (force) {\r\n this.doClip = false;\r\n if (!force) {\r\n this.forceForward = false;\r\n this.forceBackward = false;\r\n }\r\n };\r\n return ClipModel;\r\n}());\n\nvar RenderModel = /** @class */ (function () {\r\n function RenderModel() {\r\n this.reset();\r\n }\r\n Object.defineProperty(RenderModel.prototype, \"noSize\", {\r\n get: function () {\r\n return this.sizeBefore === this.sizeAfter;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n RenderModel.prototype.reset = function () {\r\n this.sizeBefore = 0;\r\n this.sizeAfter = 0;\r\n this.positionBefore = 0;\r\n this.cancel = null;\r\n };\r\n return RenderModel;\r\n}());\n\nvar ScrollModel = /** @class */ (function () {\r\n function ScrollModel() {\r\n this.reset();\r\n }\r\n ScrollModel.prototype.reset = function () {\r\n this.previous = null;\r\n this.current = null;\r\n this.syntheticPosition = null;\r\n this.syntheticFulfill = false;\r\n this.positionBeforeAsync = null;\r\n this.positionBeforeAdjust = null;\r\n this.positionAfterAdjust = null;\r\n this.stop();\r\n };\r\n ScrollModel.prototype.stop = function () {\r\n if (this.scrollTimer) {\r\n clearTimeout(this.scrollTimer);\r\n this.scrollTimer = null;\r\n }\r\n if (this.cancelAnimation) {\r\n this.cancelAnimation();\r\n this.cancelAnimation = null;\r\n }\r\n };\r\n ScrollModel.prototype.hasPositionChanged = function (position) {\r\n var before = this.positionBeforeAdjust;\r\n var after = this.positionAfterAdjust;\r\n return before === null || before !== position || after === null || after !== position;\r\n };\r\n return ScrollModel;\r\n}());\n\nvar State = /** @class */ (function () {\r\n function State(packageInfo, settings, state) {\r\n this.packageInfo = packageInfo;\r\n this.settings = settings;\r\n this.initTime = Number(new Date());\r\n this.paused = new Reactive(false);\r\n this.cycle = new WorkflowCycleModel(this.settings.instanceIndex, state ? state.cycle : void 0);\r\n this.fetch = new FetchModel(settings.directionPriority);\r\n this.clip = new ClipModel();\r\n this.render = new RenderModel();\r\n this.scroll = new ScrollModel();\r\n }\r\n Object.defineProperty(State.prototype, \"time\", {\r\n get: function () {\r\n return Number(new Date()) - this.initTime;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n State.prototype.startWorkflowCycle = function (isInitial, initiator) {\r\n this.cycle.start(isInitial, initiator);\r\n };\r\n State.prototype.endWorkflowCycle = function (count) {\r\n this.cycle.end(count);\r\n };\r\n State.prototype.startInnerLoop = function () {\r\n var _a = this, cycle = _a.cycle, scroll = _a.scroll, fetch = _a.fetch, render = _a.render, clip = _a.clip;\r\n cycle.innerLoop.start();\r\n scroll.positionBeforeAsync = null;\r\n if (!fetch.simulate) {\r\n fetch.reset();\r\n }\r\n clip.reset(clip.force);\r\n render.reset();\r\n return __assign({}, (cycle.innerLoop.first ? {\r\n process: cycle.initiator,\r\n doRender: fetch.simulate && fetch.items.length > 0\r\n } : {}));\r\n };\r\n State.prototype.endInnerLoop = function () {\r\n var _a = this, fetch = _a.fetch, clip = _a.clip, render = _a.render, cycle = _a.cycle;\r\n fetch.stopSimulate();\r\n clip.reset(true);\r\n if (fetch.cancel) {\r\n fetch.cancel();\r\n fetch.cancel = null;\r\n }\r\n if (render.cancel) {\r\n render.cancel();\r\n render.cancel = null;\r\n }\r\n cycle.innerLoop.done();\r\n };\r\n State.prototype.dispose = function () {\r\n this.scroll.stop();\r\n this.cycle.dispose();\r\n this.paused.dispose();\r\n this.endInnerLoop();\r\n };\r\n return State;\r\n}());\n\nvar ADAPTER_PROPS_STUB = getDefaultAdapterProps();\r\nvar ALLOWED_METHODS_WHEN_PAUSED = ADAPTER_PROPS_STUB.filter(function (v) { return !!v.allowedWhenPaused; }).map(function (v) { return v.name; });\r\nvar _has = function (obj, prop) {\r\n return !!obj && typeof obj === 'object' && Object.prototype.hasOwnProperty.call(obj, prop);\r\n};\r\nvar convertAppendArgs = function (prepend, options, eof) {\r\n var result = options;\r\n if (!_has(options, 'items')) {\r\n var items = !Array.isArray(options) ? [options] : options;\r\n result = prepend ? { items: items, bof: eof } : { items: items, eof: eof };\r\n }\r\n return result;\r\n};\r\nvar convertRemoveArgs = function (options) {\r\n if (!(_has(options, 'predicate') || _has(options, 'indexes'))) {\r\n var predicate = options;\r\n options = { predicate: predicate };\r\n }\r\n return options;\r\n};\r\nvar Adapter = /** @class */ (function () {\r\n function Adapter(context, getWorkflow, logger) {\r\n var _this = this;\r\n this.source = {}; // for Reactive props\r\n this.box = {}; // for Scalars over Reactive props\r\n this.demand = {}; // for Scalars on demand\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n this.setFirstOrLastVisible = function (_) { };\r\n this.getWorkflow = getWorkflow;\r\n this.logger = logger;\r\n this.relax$ = null;\r\n this.relaxRun = null;\r\n this.reloadCounter = 0;\r\n var contextId = (context === null || context === void 0 ? void 0 : context.id) || -1;\r\n // public context (if exists) should provide access to Reactive props config by id\r\n var reactivePropsStore = context && reactiveConfigStorage.get(context.id) || {};\r\n // the Adapter initialization should not trigger \"wanted\" props setting;\r\n // after the initialization is completed, \"wanted\" functionality must be unblocked\r\n wantedUtils.setBlock(true, contextId);\r\n // make array of the original values from public context if present\r\n var adapterProps = context\r\n ? ADAPTER_PROPS_STUB.map(function (prop) {\r\n var value = context[prop.name];\r\n // if context is augmented, we need to replace external reactive props with inner ones\r\n if (context.augmented) {\r\n var reactiveProp = reactivePropsStore[prop.name];\r\n if (reactiveProp) {\r\n value = reactiveProp.default; // boolean doesn't matter here\r\n }\r\n }\r\n return (__assign(__assign({}, prop), { value: value }));\r\n })\r\n : getDefaultAdapterProps();\r\n // restore default reactive props if they were configured\r\n Object.entries(reactivePropsStore).forEach(function (_a) {\r\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\r\n var prop = adapterProps.find(function (_a) {\r\n var name = _a.name;\r\n return name === key;\r\n });\r\n if (prop && value) {\r\n prop.value = value.default;\r\n }\r\n });\r\n // Scalar permanent props\r\n adapterProps\r\n .filter(function (_a) {\r\n var type = _a.type, permanent = _a.permanent;\r\n return type === AdapterPropType.Scalar && permanent;\r\n })\r\n .forEach(function (_a) {\r\n var name = _a.name, value = _a.value;\r\n return Object.defineProperty(_this, name, {\r\n configurable: true,\r\n get: function () { return value; }\r\n });\r\n });\r\n // Reactive props: store original values in \"source\" container, to avoid extra .get() calls on scalar twins set\r\n adapterProps\r\n .filter(function (prop) { return prop.type === AdapterPropType.Reactive; })\r\n .forEach(function (_a) {\r\n var name = _a.name, value = _a.value;\r\n _this.source[name] = value;\r\n Object.defineProperty(_this, name, {\r\n configurable: true,\r\n get: function () { return _this.source[name]; }\r\n });\r\n });\r\n // for \"wanted\" props that can be explicitly requested for the first time after the Adapter initialization,\r\n // an implicit calculation of the initial value is required;\r\n // so this method should be called when accessing the \"wanted\" props through one of the following getters\r\n var processWanted = function (prop) {\r\n if (wantedUtils.setBox(prop, contextId)) {\r\n if ([AdapterPropName.firstVisible, AdapterPropName.firstVisible$].some(function (n) { return n === prop.name; })) {\r\n _this.setFirstOrLastVisible({ first: true });\r\n }\r\n else if ([AdapterPropName.lastVisible, AdapterPropName.lastVisible$].some(function (n) { return n === prop.name; })) {\r\n _this.setFirstOrLastVisible({ last: true });\r\n }\r\n }\r\n };\r\n // Scalar props that have Reactive twins\r\n // 1) reactive props (from \"source\") should be triggered on set\r\n // 2) scalars should use \"box\" container on get\r\n // 3) \"wanted\" scalars should also run wanted-related logic on get\r\n adapterProps\r\n .filter(function (prop) { return prop.type === AdapterPropType.Scalar && !!prop.reactive; })\r\n .forEach(function (prop) {\r\n var name = prop.name, value = prop.value, reactive = prop.reactive;\r\n _this.box[name] = value;\r\n Object.defineProperty(_this, name, {\r\n configurable: true,\r\n set: function (newValue) {\r\n if (newValue !== _this.box[name]) {\r\n _this.box[name] = newValue;\r\n _this.source[reactive].set(newValue);\r\n // need to emit new value through the configured reactive prop if present\r\n var reactiveProp = reactivePropsStore[reactive];\r\n if (reactiveProp) {\r\n reactiveProp.emit(reactiveProp.source, newValue);\r\n }\r\n }\r\n },\r\n get: function () {\r\n processWanted(prop);\r\n return _this.box[name];\r\n }\r\n });\r\n });\r\n // Scalar props on-demand\r\n // these scalars should use \"demand\" container\r\n // setting defaults should be overridden on init()\r\n adapterProps\r\n .filter(function (prop) { return prop.type === AdapterPropType.Scalar && prop.onDemand; })\r\n .forEach(function (_a) {\r\n var name = _a.name, value = _a.value;\r\n _this.demand[name] = value;\r\n Object.defineProperty(_this, name, {\r\n configurable: true,\r\n get: function () { return _this.demand[name]; }\r\n });\r\n });\r\n if (!context) {\r\n return;\r\n }\r\n // Adapter public context augmentation\r\n adapterProps\r\n .forEach(function (prop) {\r\n var name = prop.name, type = prop.type, permanent = prop.permanent;\r\n var value = _this[name];\r\n if (type === AdapterPropType.Function) {\r\n value = value.bind(_this);\r\n }\r\n else if (type === AdapterPropType.WorkflowRunner) {\r\n value = _this.getWorkflowRunnerMethod(value, name);\r\n }\r\n else if (type === AdapterPropType.Reactive && reactivePropsStore[name]) {\r\n value = context[name];\r\n }\r\n else if (name === AdapterPropName.augmented) {\r\n value = true;\r\n }\r\n var nonPermanentScalar = !permanent && type === AdapterPropType.Scalar;\r\n Object.defineProperty(context, name, {\r\n configurable: true,\r\n get: function () {\r\n processWanted(prop); // consider accessing \"wanted\" Reactive props\r\n if (nonPermanentScalar) {\r\n return _this[name]; // non-permanent Scalars should be taken in runtime\r\n }\r\n return value; // other props (Reactive/Functions/WorkflowRunners) can be defined once\r\n }\r\n });\r\n });\r\n this.externalContext = context;\r\n wantedUtils.setBlock(false, contextId);\r\n }\r\n Object.defineProperty(Adapter.prototype, \"workflow\", {\r\n get: function () {\r\n return this.getWorkflow();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Adapter.prototype, \"reloadCount\", {\r\n get: function () {\r\n return this.reloadCounter;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Adapter.prototype, \"reloadId\", {\r\n get: function () {\r\n return this.id + '.' + this.reloadCounter;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Adapter.prototype.getPromisifiedMethod = function (method, args) {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n if (_this.relax$) {\r\n _this.relax$.once(function (value) { return resolve(value); });\r\n }\r\n method.apply(_this, args);\r\n });\r\n };\r\n Adapter.prototype.getWorkflowRunnerMethod = function (method, name) {\r\n var _this = this;\r\n return function () {\r\n var _a, _b, _c, _d;\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!_this.relax$) {\r\n (_b = (_a = _this.logger) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.call(_a, function () { return 'scroller is not initialized: ' + name + ' method is ignored'; });\r\n return Promise.resolve(methodPreResult);\r\n }\r\n if (_this.paused && !ALLOWED_METHODS_WHEN_PAUSED.includes(name)) {\r\n (_d = (_c = _this.logger) === null || _c === void 0 ? void 0 : _c.log) === null || _d === void 0 ? void 0 : _d.call(_c, function () { return 'scroller is paused: ' + name + ' method is ignored'; });\r\n return Promise.resolve(methodPausedResult);\r\n }\r\n return _this.getPromisifiedMethod(method, args);\r\n };\r\n };\r\n Adapter.prototype.initialize = function (_a) {\r\n var _this = this;\r\n var buffer = _a.buffer, state = _a.state, viewport = _a.viewport, logger = _a.logger, adapterRun$ = _a.adapterRun$, getWorkflow = _a.getWorkflow;\r\n // buffer\r\n Object.defineProperty(this.demand, AdapterPropName.itemsCount, {\r\n get: function () { return buffer.getVisibleItemsCount(); }\r\n });\r\n Object.defineProperty(this.demand, AdapterPropName.bufferInfo, {\r\n get: function () { return ({\r\n firstIndex: buffer.firstIndex,\r\n lastIndex: buffer.lastIndex,\r\n minIndex: buffer.minIndex,\r\n maxIndex: buffer.maxIndex,\r\n absMinIndex: buffer.absMinIndex,\r\n absMaxIndex: buffer.absMaxIndex,\r\n defaultSize: buffer.defaultSize,\r\n }); }\r\n });\r\n this.bof = buffer.bof.get();\r\n buffer.bof.on(function (bof) { return _this.bof = bof; });\r\n this.eof = buffer.eof.get();\r\n buffer.eof.on(function (eof) { return _this.eof = eof; });\r\n // state\r\n Object.defineProperty(this.demand, AdapterPropName.packageInfo, {\r\n get: function () { return state.packageInfo; }\r\n });\r\n this.loopPending = state.cycle.innerLoop.busy.get();\r\n state.cycle.innerLoop.busy.on(function (busy) { return _this.loopPending = busy; });\r\n this.isLoading = state.cycle.busy.get();\r\n state.cycle.busy.on(function (busy) { return _this.isLoading = busy; });\r\n this.paused = state.paused.get();\r\n state.paused.on(function (paused) { return _this.paused = paused; });\r\n //viewport\r\n this.setFirstOrLastVisible = function (_a) {\r\n var _b, _c, _d;\r\n var first = _a.first, last = _a.last, workflow = _a.workflow;\r\n if ((!first && !last) || ((_b = workflow === null || workflow === void 0 ? void 0 : workflow.call) === null || _b === void 0 ? void 0 : _b.interrupted)) {\r\n return;\r\n }\r\n var token = first ? AdapterPropName.firstVisible : AdapterPropName.lastVisible;\r\n if (!((_d = wantedUtils.getBox((_c = _this.externalContext) === null || _c === void 0 ? void 0 : _c.id)) === null || _d === void 0 ? void 0 : _d[token])) {\r\n return;\r\n }\r\n if (buffer.items.some(function (_a) {\r\n var element = _a.element;\r\n return !element;\r\n })) {\r\n logger.log('skipping first/lastVisible set because not all buffered items are rendered at this moment');\r\n return;\r\n }\r\n var direction = first ? Direction.backward : Direction.forward;\r\n var item = viewport.getEdgeVisibleItem(buffer.items, direction).item;\r\n if (!item || item.element !== _this[token].element) {\r\n _this[token] = (item ? item.get() : EMPTY_ITEM);\r\n }\r\n };\r\n // logger\r\n this.logger = logger;\r\n // self-pending subscription; set up only on the very first init\r\n if (adapterRun$) {\r\n if (!this.relax$) {\r\n this.relax$ = new Reactive();\r\n }\r\n var relax$_1 = this.relax$;\r\n adapterRun$.on(function (_a) {\r\n var status = _a.status, payload = _a.payload;\r\n var unSubRelax = function () { };\r\n if (status === ProcessStatus.start) {\r\n unSubRelax = _this.isLoading$.on(function (value) {\r\n if (!value) {\r\n unSubRelax();\r\n relax$_1.set({ success: true, immediate: false, details: null });\r\n }\r\n });\r\n }\r\n else if (status === ProcessStatus.done || status === ProcessStatus.error) {\r\n unSubRelax();\r\n relax$_1.set({\r\n success: status !== ProcessStatus.error,\r\n immediate: true,\r\n details: status === ProcessStatus.error && payload ? String(payload.error) : null\r\n });\r\n }\r\n });\r\n }\r\n // workflow getter\r\n if (getWorkflow) {\r\n this.getWorkflow = getWorkflow;\r\n }\r\n // init\r\n this.init = true;\r\n };\r\n Adapter.prototype.dispose = function () {\r\n var _this = this;\r\n if (this.relax$) {\r\n this.relax$.dispose();\r\n }\r\n if (this.externalContext) {\r\n this.resetContext();\r\n }\r\n Object.getOwnPropertyNames(this).forEach(function (prop) {\r\n delete _this[prop];\r\n });\r\n this.disposed = true;\r\n };\r\n Adapter.prototype.resetContext = function () {\r\n var _this = this;\r\n var _a;\r\n var reactiveStore = reactiveConfigStorage.get((_a = this.externalContext) === null || _a === void 0 ? void 0 : _a.id);\r\n ADAPTER_PROPS_STUB\r\n .forEach(function (_a) {\r\n var type = _a.type, permanent = _a.permanent, name = _a.name, value = _a.value;\r\n // assign initial values to non-reactive non-permanent props\r\n if (type !== AdapterPropType.Reactive && !permanent) {\r\n Object.defineProperty(_this.externalContext, name, {\r\n configurable: true,\r\n get: function () { return value; }\r\n });\r\n }\r\n // reset reactive props\r\n if (type === AdapterPropType.Reactive && reactiveStore) {\r\n var property = reactiveStore[name];\r\n if (property) {\r\n property.default.reset();\r\n property.emit(property.source, property.default.get());\r\n }\r\n }\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.reset = function (options) {\r\n this.reloadCounter++;\r\n this.logger.logAdapterMethod('reset', options, \" of \".concat(this.reloadId));\r\n this.workflow.call({\r\n process: AdapterProcess.reset,\r\n status: ProcessStatus.start,\r\n payload: { options: options }\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.reload = function (options) {\r\n this.reloadCounter++;\r\n this.logger.logAdapterMethod('reload', options, \" of \".concat(this.reloadId));\r\n this.workflow.call({\r\n process: AdapterProcess.reload,\r\n status: ProcessStatus.start,\r\n payload: { options: options }\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.append = function (_options, eof) {\r\n var options = convertAppendArgs(false, _options, eof); // support old signature\r\n this.logger.logAdapterMethod('append', [options.items, options.eof]);\r\n this.workflow.call({\r\n process: AdapterProcess.append,\r\n status: ProcessStatus.start,\r\n payload: { options: options }\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.prepend = function (_options, bof) {\r\n var options = convertAppendArgs(true, _options, bof); // support old signature\r\n this.logger.logAdapterMethod('prepend', [options.items, options.bof]);\r\n this.workflow.call({\r\n process: AdapterProcess.prepend,\r\n status: ProcessStatus.start,\r\n payload: { options: options }\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.check = function () {\r\n this.logger.logAdapterMethod('check');\r\n this.workflow.call({\r\n process: AdapterProcess.check,\r\n status: ProcessStatus.start\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.remove = function (options) {\r\n options = convertRemoveArgs(options); // support old signature\r\n this.logger.logAdapterMethod('remove', options);\r\n this.workflow.call({\r\n process: AdapterProcess.remove,\r\n status: ProcessStatus.start,\r\n payload: { options: options }\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.clip = function (options) {\r\n this.logger.logAdapterMethod('clip', options);\r\n this.workflow.call({\r\n process: AdapterProcess.clip,\r\n status: ProcessStatus.start,\r\n payload: { options: options }\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.insert = function (options) {\r\n this.logger.logAdapterMethod('insert', options);\r\n this.workflow.call({\r\n process: AdapterProcess.insert,\r\n status: ProcessStatus.start,\r\n payload: { options: options }\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.replace = function (options) {\r\n this.logger.logAdapterMethod('replace', options);\r\n this.workflow.call({\r\n process: AdapterProcess.replace,\r\n status: ProcessStatus.start,\r\n payload: { options: options }\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.update = function (options) {\r\n this.logger.logAdapterMethod('update', options);\r\n this.workflow.call({\r\n process: AdapterProcess.update,\r\n status: ProcessStatus.start,\r\n payload: { options: options }\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.pause = function () {\r\n this.logger.logAdapterMethod('pause');\r\n this.workflow.call({\r\n process: AdapterProcess.pause,\r\n status: ProcessStatus.start\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.resume = function () {\r\n this.logger.logAdapterMethod('resume');\r\n this.workflow.call({\r\n process: AdapterProcess.pause,\r\n status: ProcessStatus.start,\r\n payload: { options: { resume: true } }\r\n });\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Adapter.prototype.fix = function (options) {\r\n this.logger.logAdapterMethod('fix', options);\r\n this.workflow.call({\r\n process: AdapterProcess.fix,\r\n status: ProcessStatus.start,\r\n payload: { options: options }\r\n });\r\n };\r\n Adapter.prototype.relaxUnchained = function (callback, reloadId) {\r\n var _this = this;\r\n var runCallback = function () { return typeof callback === 'function' && reloadId === _this.reloadId && callback(); };\r\n if (!this.isLoading) {\r\n runCallback();\r\n }\r\n return new Promise(function (resolve) {\r\n if (!_this.isLoading) {\r\n resolve(true);\r\n return;\r\n }\r\n _this.isLoading$.once(function () {\r\n runCallback();\r\n resolve(false);\r\n });\r\n }).then(function (immediate) {\r\n var _a, _b;\r\n if (_this.disposed) {\r\n return {\r\n immediate: immediate,\r\n success: false,\r\n details: 'Adapter was disposed'\r\n };\r\n }\r\n var success = reloadId === _this.reloadId;\r\n (_b = (_a = _this.logger) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.call(_a, function () { return !success ? \"relax promise cancelled due to \".concat(reloadId, \" != \").concat(_this.reloadId) : void 0; });\r\n return {\r\n immediate: immediate,\r\n success: success,\r\n details: !success ? 'Interrupted by reload or reset' : null\r\n };\r\n });\r\n };\r\n Adapter.prototype.relax = function (callback) {\r\n var _this = this;\r\n var reloadId = this.reloadId;\r\n this.logger.logAdapterMethod('relax', callback, \" of \".concat(reloadId));\r\n if (!this.init) {\r\n return Promise.resolve(methodPreResult);\r\n }\r\n return this.relaxRun = this.relaxRun\r\n ? this.relaxRun.then(function () { return _this.relaxUnchained(callback, reloadId); })\r\n : this.relaxUnchained(callback, reloadId).then(function (result) {\r\n _this.relaxRun = null;\r\n return result;\r\n });\r\n };\r\n Adapter.prototype.showLog = function () {\r\n this.logger.logAdapterMethod('showLog');\r\n this.logger.logForce();\r\n };\r\n return Adapter;\r\n}());\n\nvar INVALID_DATASOURCE_PREFIX = 'Invalid datasource:';\r\nvar instanceCount = 0;\r\nvar Scroller = /** @class */ (function () {\r\n function Scroller(_a) {\r\n var datasource = _a.datasource, consumer = _a.consumer, element = _a.element, workflow = _a.workflow, CustomRoutines = _a.Routines, scroller = _a.scroller;\r\n var get = validate(datasource, DATASOURCE).params.get;\r\n if (!get.isValid) {\r\n throw new Error(\"\".concat(INVALID_DATASOURCE_PREFIX, \" \").concat(get.errors[0]));\r\n }\r\n var packageInfo = scroller ? scroller.state.packageInfo : { consumer: consumer, core: core };\r\n element = scroller ? scroller.routines.element : element;\r\n workflow = scroller ? scroller.workflow : workflow;\r\n // In general, custom Routines must extend the original Routines. If not, we provide implicit extending.\r\n // This is undocumented feature. It should be removed in vscroll v2.\r\n if (CustomRoutines && !(CustomRoutines.prototype instanceof Routines)) {\r\n var __Routines_1 = /** @class */ (function (_super) {\r\n __extends(__Routines, _super);\r\n function __Routines() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return __Routines;\r\n }(Routines));\r\n Object.getOwnPropertyNames(CustomRoutines.prototype)\r\n .filter(function (method) { return method !== 'constructor'; })\r\n .forEach(function (method) {\r\n return __Routines_1.prototype[method] = CustomRoutines === null || CustomRoutines === void 0 ? void 0 : CustomRoutines.prototype[method];\r\n });\r\n CustomRoutines = __Routines_1;\r\n }\r\n this.workflow = workflow;\r\n this.settings = new Settings(datasource.settings, datasource.devSettings, ++instanceCount);\r\n this.logger = new Logger(this, packageInfo, datasource.adapter);\r\n this.routines = new (CustomRoutines || Routines)(element, this.settings);\r\n this.state = new State(packageInfo, this.settings, scroller ? scroller.state : void 0);\r\n this.buffer = new Buffer(this.settings, workflow.onDataChanged, this.logger);\r\n this.viewport = new Viewport(this.settings, this.routines, this.state, this.logger);\r\n this.logger.object('vscroll settings object', this.settings, true);\r\n this.initDatasource(datasource, scroller);\r\n }\r\n Scroller.prototype.initDatasource = function (datasource, scroller) {\r\n var _this = this;\r\n if (scroller) { // scroller re-instantiating case\r\n this.datasource = datasource;\r\n this.adapter = scroller.adapter;\r\n // todo: what about (this.settings.adapter !== scroller.setting.adapter) case?\r\n return;\r\n }\r\n // scroller is being instantiated for the first time\r\n var constructed = datasource instanceof DatasourceGeneric;\r\n var mockAdapter = !constructed && !this.settings.adapter;\r\n if (constructed) { // datasource is already instantiated\r\n this.datasource = datasource;\r\n }\r\n else { // datasource as POJO\r\n var DS = makeDatasource(function () { return ({ mock: mockAdapter }); });\r\n this.datasource = new DS(datasource);\r\n if (this.settings.adapter) {\r\n datasource.adapter = this.datasource.adapter;\r\n }\r\n }\r\n var publicContext = !mockAdapter ? this.datasource.adapter : null;\r\n this.adapter = new Adapter(publicContext, function () { return _this.workflow; }, this.logger);\r\n };\r\n Scroller.prototype.init = function (adapterRun$) {\r\n var _this = this;\r\n this.viewport.reset(this.buffer.startIndex);\r\n this.logger.stat('initialization');\r\n this.adapter.initialize({\r\n buffer: this.buffer,\r\n state: this.state,\r\n viewport: this.viewport,\r\n logger: this.logger,\r\n adapterRun$: adapterRun$,\r\n getWorkflow: function () { return _this.workflow; }\r\n });\r\n };\r\n Scroller.prototype.dispose = function (forever) {\r\n this.logger.log(function () { return 'disposing scroller' + (forever ? ' (forever)' : ''); });\r\n if (forever) { // Adapter is not re-instantiated on reset\r\n this.adapter.dispose();\r\n }\r\n this.buffer.dispose();\r\n this.state.dispose();\r\n };\r\n Scroller.prototype.finalize = function () {\r\n };\r\n return Scroller;\r\n}());\n\nvar runStateMachine = function (_a) {\r\n var _b = _a.input, process = _b.process, status = _b.status, _c = _b.payload, payload = _c === void 0 ? {} : _c, _d = _a.methods, run = _d.run, interrupt = _d.interrupt, done = _d.done, onError = _d.onError;\r\n if (status === ProcessStatus.error) {\r\n onError(process, payload);\r\n if (!process.startsWith('adapter')) {\r\n run(End)(payload);\r\n }\r\n return;\r\n }\r\n var options = payload.options;\r\n switch (process) {\r\n case CommonProcess.init:\r\n if (status === ProcessStatus.start) { // App start\r\n run(Init)(process);\r\n }\r\n if (status === ProcessStatus.next) {\r\n run(Start)();\r\n }\r\n break;\r\n case CommonProcess.scroll:\r\n if (status === ProcessStatus.start) {\r\n run(Scroll)(payload);\r\n }\r\n if (status === ProcessStatus.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.reset:\r\n case AdapterProcess.reload:\r\n if (status === ProcessStatus.start) {\r\n if (process === AdapterProcess.reset) {\r\n run(Reset)(options);\r\n }\r\n else {\r\n run(Reload)(options);\r\n }\r\n }\r\n if (status === ProcessStatus.next) {\r\n interrupt(__assign({ process: process }, payload));\r\n if (payload.finalize) {\r\n run(End)();\r\n }\r\n else {\r\n run(Init)(process);\r\n }\r\n }\r\n break;\r\n case AdapterProcess.append:\r\n case AdapterProcess.prepend:\r\n if (status === ProcessStatus.start) {\r\n run(Append)({ process: process, options: options });\r\n }\r\n if (status === ProcessStatus.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.check:\r\n if (status === ProcessStatus.start) {\r\n run(Check)();\r\n }\r\n if (status === ProcessStatus.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.remove:\r\n if (status === ProcessStatus.start) {\r\n run(Remove)(options);\r\n }\r\n if (status === ProcessStatus.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.clip:\r\n if (status === ProcessStatus.start) {\r\n run(UserClip)(options);\r\n }\r\n if (status === ProcessStatus.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.insert:\r\n if (status === ProcessStatus.start) {\r\n run(Insert)(options);\r\n }\r\n if (status === ProcessStatus.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.replace:\r\n if (status === ProcessStatus.start) {\r\n run(Replace)(options);\r\n }\r\n if (status === ProcessStatus.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.update:\r\n if (status === ProcessStatus.start) {\r\n run(Update)(options);\r\n }\r\n if (status === ProcessStatus.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.pause:\r\n if (status === ProcessStatus.start) {\r\n run(Pause)(options);\r\n }\r\n if (status === ProcessStatus.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case AdapterProcess.fix:\r\n if (status === ProcessStatus.start) {\r\n run(Fix)(options);\r\n }\r\n if (status === ProcessStatus.next) {\r\n run(Init)(process);\r\n }\r\n break;\r\n case CommonProcess.start:\r\n switch (payload.process) {\r\n case AdapterProcess.append:\r\n case AdapterProcess.insert:\r\n case AdapterProcess.replace:\r\n case AdapterProcess.update:\r\n if (payload.doRender) {\r\n run(Render)();\r\n }\r\n else {\r\n run(Adjust)();\r\n }\r\n break;\r\n case AdapterProcess.check:\r\n run(Render)();\r\n break;\r\n case AdapterProcess.remove:\r\n run(Adjust)();\r\n break;\r\n default:\r\n run(PreFetch)();\r\n }\r\n break;\r\n case CommonProcess.preFetch:\r\n if (status === ProcessStatus.next) {\r\n switch (payload.process) {\r\n case AdapterProcess.clip:\r\n run(PreClip)();\r\n break;\r\n default:\r\n run(Fetch)();\r\n }\r\n }\r\n if (status === ProcessStatus.done) {\r\n run(End)();\r\n }\r\n break;\r\n case CommonProcess.fetch:\r\n run(PostFetch)();\r\n break;\r\n case CommonProcess.postFetch:\r\n if (status === ProcessStatus.next) {\r\n run(Render)();\r\n }\r\n if (status === ProcessStatus.done) {\r\n run(End)();\r\n }\r\n break;\r\n case CommonProcess.render:\r\n if (status === ProcessStatus.next) {\r\n switch (payload.process) {\r\n case AdapterProcess.append:\r\n case AdapterProcess.check:\r\n case AdapterProcess.insert:\r\n case AdapterProcess.replace:\r\n case AdapterProcess.update:\r\n run(Adjust)();\r\n break;\r\n default:\r\n run(PreClip)();\r\n }\r\n }\r\n if (status === ProcessStatus.done) {\r\n run(End)();\r\n }\r\n break;\r\n case CommonProcess.preClip:\r\n if (payload.doClip) {\r\n run(Clip)();\r\n }\r\n else {\r\n run(Adjust)();\r\n }\r\n break;\r\n case CommonProcess.clip:\r\n run(Adjust)();\r\n break;\r\n case CommonProcess.adjust:\r\n run(End)();\r\n break;\r\n case CommonProcess.end:\r\n if (status === ProcessStatus.next) {\r\n switch (payload.process) {\r\n case AdapterProcess.reset:\r\n case AdapterProcess.reload:\r\n done();\r\n run(Init)(payload.process);\r\n break;\r\n default:\r\n run(Start)();\r\n }\r\n }\r\n if (status === ProcessStatus.done) {\r\n done();\r\n }\r\n break;\r\n }\r\n};\n\nvar Workflow = /** @class */ (function () {\r\n function Workflow(params) {\r\n var _this = this;\r\n var element = params.element, datasource = params.datasource, consumer = params.consumer, run = params.run, Routines = params.Routines;\r\n var validationResult = validate(params, WORKFLOW);\r\n if (!validationResult.isValid) {\r\n throw new Error(\"Invalid Workflow params: \".concat(validationResult.errors.join(', '), \".\"));\r\n }\r\n this.isInitialized = false;\r\n this.disposed = false;\r\n this.initTimer = null;\r\n this.adapterRun$ = new Reactive();\r\n this.cyclesDone = 0;\r\n this.interruptionCount = 0;\r\n this.errors = [];\r\n this.offScroll = function () { return null; };\r\n this.propagateChanges = run;\r\n this.stateMachineMethods = {\r\n run: this.runProcess(),\r\n interrupt: this.interrupt.bind(this),\r\n done: this.done.bind(this),\r\n onError: this.onError.bind(this)\r\n };\r\n this.scroller = new Scroller({\r\n element: element,\r\n datasource: datasource,\r\n consumer: consumer,\r\n workflow: this.getUpdater(),\r\n Routines: Routines\r\n });\r\n if (this.scroller.settings.initializeDelay) {\r\n this.initTimer = setTimeout(function () {\r\n _this.initTimer = null;\r\n _this.init();\r\n }, this.scroller.settings.initializeDelay);\r\n }\r\n else {\r\n this.init();\r\n }\r\n }\r\n Workflow.prototype.init = function () {\r\n var _this = this;\r\n this.scroller.init(this.adapterRun$);\r\n // set up scroll event listener\r\n var routines = this.scroller.routines;\r\n var onScrollHandler = function (event) { return _this.callWorkflow({\r\n process: CommonProcess.scroll,\r\n status: ProcessStatus.start,\r\n payload: { event: event }\r\n }); };\r\n this.offScroll = routines.onScroll(onScrollHandler);\r\n // run the Workflow\r\n this.isInitialized = true;\r\n this.callWorkflow({\r\n process: CommonProcess.init,\r\n status: ProcessStatus.start\r\n });\r\n };\r\n Workflow.prototype.changeItems = function (items) {\r\n this.propagateChanges(items);\r\n };\r\n Workflow.prototype.callWorkflow = function (processSubject) {\r\n if (!this.isInitialized) {\r\n return;\r\n }\r\n var process = processSubject.process, status = processSubject.status;\r\n // if the scroller is paused, any process other than \"pause\" and \"reset\" should be blocked\r\n if (this.scroller.state.paused.get()) {\r\n if (![AdapterProcess.pause, AdapterProcess.reset].includes(process)) {\r\n this.scroller.logger.log('scroller is paused: ' + process + ' process is ignored');\r\n return;\r\n }\r\n }\r\n if (process && process.startsWith('adapter') && status !== ProcessStatus.next) {\r\n this.adapterRun$.set(processSubject);\r\n }\r\n this.process(processSubject);\r\n };\r\n Workflow.prototype.getUpdater = function () {\r\n return {\r\n call: this.callWorkflow.bind(this),\r\n onDataChanged: this.changeItems.bind(this),\r\n };\r\n };\r\n Workflow.prototype.process = function (data) {\r\n var status = data.status, process = data.process, payload = data.payload;\r\n if (this.scroller.settings.logProcessRun) {\r\n this.scroller.logger.log(function () { return __spreadArray(__spreadArray(__spreadArray([\r\n '%cfire%c'\r\n ], ['color: #cc7777;', 'color: #000000;'], false), [\r\n process,\r\n \"\\\"\".concat(status, \"\\\"\")\r\n ], false), __read((payload !== void 0 ? [payload] : [])), false); });\r\n }\r\n this.scroller.logger.logProcess(data);\r\n if (process === CommonProcess.end) {\r\n this.scroller.finalize();\r\n }\r\n runStateMachine({\r\n input: data,\r\n methods: this.stateMachineMethods\r\n });\r\n };\r\n Workflow.prototype.runProcess = function () {\r\n var _this = this;\r\n return function (_a) {\r\n var run = _a.run, process = _a.process, name = _a.name;\r\n return 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 if (_this.scroller.settings.logProcessRun) {\r\n _this.scroller.logger.log(function () { return __spreadArray(__spreadArray(__spreadArray([\r\n '%crun%c'\r\n ], ['color: #333399;', 'color: #000000;'], false), [\r\n process || name\r\n ], false), __read(args), false); });\r\n }\r\n run.apply(void 0, __spreadArray([_this.scroller], __read(args), false));\r\n };\r\n };\r\n };\r\n Workflow.prototype.onError = function (process, payload) {\r\n var message = payload && String(payload.error) || '';\r\n var _a = this.scroller.state, time = _a.time, cycle = _a.cycle;\r\n this.errors.push({\r\n process: process,\r\n message: message,\r\n time: time,\r\n loop: cycle.loopIdNext\r\n });\r\n this.scroller.logger.logError(message);\r\n };\r\n Workflow.prototype.interrupt = function (_a) {\r\n var _this = this;\r\n var process = _a.process, finalize = _a.finalize, datasource = _a.datasource;\r\n if (finalize) {\r\n var _b = this.scroller, workflow = _b.workflow, logger_1 = _b.logger;\r\n // we are going to create a new reference for the scroller.workflow object\r\n // calling the old version of the scroller.workflow by any outstanding async processes will be skipped\r\n workflow.call = function (_) {\r\n return logger_1.log('[skip wf call]');\r\n };\r\n workflow.call.interrupted = true;\r\n this.scroller.workflow = this.getUpdater();\r\n this.interruptionCount++;\r\n logger_1.log(function () { return \"workflow had been interrupted by the \".concat(process, \" process (\").concat(_this.interruptionCount, \")\"); });\r\n }\r\n if (datasource) { // Scroller re-initialization case\r\n var reInit = function () {\r\n _this.scroller.logger.log('new Scroller instantiation');\r\n var scroller = new Scroller({ datasource: datasource, scroller: _this.scroller });\r\n _this.scroller.dispose();\r\n _this.scroller = scroller;\r\n _this.scroller.init();\r\n };\r\n if (this.scroller.state.cycle.busy.get()) {\r\n // todo: think about immediate re-initialization even is there are pending processes\r\n this.scroller.adapter.relax(reInit.bind(this));\r\n }\r\n else {\r\n reInit();\r\n }\r\n }\r\n };\r\n Workflow.prototype.done = function () {\r\n var _a = this.scroller, state = _a.state, logger = _a.logger;\r\n this.cyclesDone++;\r\n logger.logCycle(false);\r\n state.endWorkflowCycle(this.cyclesDone + 1);\r\n this.finalize();\r\n };\r\n Workflow.prototype.dispose = function () {\r\n var _this = this;\r\n this.scroller.logger.log(function () { return 'disposing workflow'; });\r\n if (this.initTimer) {\r\n clearTimeout(this.initTimer);\r\n }\r\n this.offScroll();\r\n this.adapterRun$.dispose();\r\n this.scroller.dispose(true);\r\n Object.getOwnPropertyNames(this).forEach(function (prop) {\r\n delete _this[prop];\r\n });\r\n this.disposed = true;\r\n };\r\n Workflow.prototype.finalize = function () {\r\n };\r\n return Workflow;\r\n}());\n\nexport { AdapterPropName, Direction, EMPTY_ITEM, INVALID_DATASOURCE_PREFIX, Routines, SizeStrategy, Workflow, getDefaultAdapterProps, makeDatasource, core as packageInfo };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, Directive, Input, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { Workflow, EMPTY_ITEM, AdapterPropName, makeDatasource } from 'vscroll';\nexport { Routines, SizeStrategy } from 'vscroll';\nimport { Subject, BehaviorSubject } from 'rxjs';\n\nvar consumer = {\r\n name: 'ngx-ui-scroll',\r\n version: '3.2.1'\r\n};\n\nclass UiScrollComponent {\r\n constructor(changeDetector, elementRef, ngZone) {\r\n this.changeDetector = changeDetector;\r\n this.elementRef = elementRef;\r\n this.ngZone = ngZone;\r\n // the only template variable\r\n this.items = [];\r\n }\r\n ngOnInit() {\r\n // The workflow should be created outside of the Angular zone because it's causing many\r\n // change detection cycles. It runs its `init()` function in a `setTimeout` task, which\r\n // then sets up the `scroll` listener. The `scroll` event listener would force Angular to\r\n // run `tick()` any time the `scroll` task is invoked. We don't care about `scroll` events\r\n // since they're handled internally by `vscroll`. We still run change detection manually\r\n // tho when the `run` function is invoked.\r\n // `scroll` events may be also unpatched through zone.js flags:\r\n // `(window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll']`.\r\n // Having `runOutsideAngular` guarantees we're responsible for running change detection\r\n // only when it's \"required\" (when `items` are updated and the template should be updated too).\r\n this.workflow = this.ngZone.runOutsideAngular(() => new Workflow(Object.assign({ consumer, element: this.elementRef.nativeElement, datasource: this.datasource, run: (items) => {\r\n if (!items.length && !this.items.length) {\r\n return;\r\n }\r\n // Re-enter the Angular zone only when items are set and when we have to run the local change detection.\r\n this.ngZone.run(() => {\r\n this.items = items;\r\n this.changeDetector.detectChanges();\r\n });\r\n } }, (this.Routines ? { Routines: this.Routines } : {}))));\r\n }\r\n ngOnDestroy() {\r\n var _a;\r\n (_a = this.workflow) === null || _a === void 0 ? void 0 : _a.dispose();\r\n }\r\n}\r\nUiScrollComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: UiScrollComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\r\nUiScrollComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.17\", type: UiScrollComponent, selector: \"[ui-scroll]\", ngImport: i0, template: `
\r\n \r\n \r\n \r\n
`, isInline: true, directives: [{ type: i1.NgForOf, selector: \"[ngFor][ngForOf]\" }, { type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: UiScrollComponent, decorators: [{\r\n type: Component,\r\n args: [{\r\n selector: '[ui-scroll]',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: `
\r\n \r\n \r\n \r\n
`\r\n }]\r\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\n\nclass UiScrollDirective {\r\n constructor(templateRef, viewContainer) {\r\n this.templateRef = templateRef;\r\n this.viewContainer = viewContainer;\r\n }\r\n set uiScrollOf(datasource) {\r\n this.datasource = datasource;\r\n }\r\n set uiScrollRoutines(Routines) {\r\n this.Routines = Routines;\r\n }\r\n ngOnInit() {\r\n const componentRef = this.viewContainer.createComponent(UiScrollComponent);\r\n componentRef.instance.datasource = this.datasource;\r\n componentRef.instance.template = this.templateRef;\r\n componentRef.instance.Routines = this.Routines;\r\n }\r\n}\r\nUiScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: UiScrollDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\r\nUiScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.17\", type: UiScrollDirective, selector: \"[uiScroll][uiScrollOf]\", inputs: { uiScrollOf: \"uiScrollOf\", uiScrollRoutines: \"uiScrollRoutines\" }, ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: UiScrollDirective, decorators: [{\r\n type: Directive,\r\n args: [{ selector: '[uiScroll][uiScrollOf]' }]\r\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { uiScrollOf: [{\r\n type: Input\r\n }], uiScrollRoutines: [{\r\n type: Input\r\n }] } });\n\nclass UiScrollModule {\r\n}\r\nUiScrollModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: UiScrollModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\r\nUiScrollModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: UiScrollModule, declarations: [UiScrollComponent, UiScrollDirective], imports: [CommonModule], exports: [UiScrollDirective] });\r\nUiScrollModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: UiScrollModule, imports: [[CommonModule]] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: UiScrollModule, decorators: [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [UiScrollComponent, UiScrollDirective],\r\n imports: [CommonModule],\r\n exports: [UiScrollDirective]\r\n }]\r\n }] });\n\nconst getBooleanSubjectPropConfig = () => ({\r\n source: new Subject(),\r\n emit: (source, value) => source.next(value)\r\n});\r\nconst getItemBehaviorSubjectPropConfig = () => ({\r\n source: new BehaviorSubject(EMPTY_ITEM),\r\n emit: (source, value) => source.next(value)\r\n});\r\nconst getAdapterConfig = () => ({\r\n mock: false,\r\n reactive: {\r\n [AdapterPropName.init$]: getBooleanSubjectPropConfig(),\r\n [AdapterPropName.isLoading$]: getBooleanSubjectPropConfig(),\r\n [AdapterPropName.loopPending$]: getBooleanSubjectPropConfig(),\r\n [AdapterPropName.firstVisible$]: getItemBehaviorSubjectPropConfig(),\r\n [AdapterPropName.lastVisible$]: getItemBehaviorSubjectPropConfig(),\r\n [AdapterPropName.bof$]: getBooleanSubjectPropConfig(),\r\n [AdapterPropName.eof$]: getBooleanSubjectPropConfig(),\r\n [AdapterPropName.paused$]: getBooleanSubjectPropConfig()\r\n }\r\n});\r\nconst AngularDatasource = makeDatasource(getAdapterConfig);\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { AngularDatasource as Datasource, UiScrollDirective, UiScrollModule };\n","
\r\n\r\n {{ defaultDriverName }}\r\n \r\n {{ driver.FN }} {{ driver.LN }}\r\n \r\n\r\n \r\n\r\n {{ defaultVehicleName }}\r\n \r\n {{ vehicle.Nm }}\r\n \r\n\r\n
\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\nimport {BusinessEvent} from '../../../../../commons/models/domain/BusinessEvent';\r\nimport {Vehicle} from '../../../../../commons/models/domain/Vehicle';\r\nimport {Driver} from '../../../../../commons/models/domain/Driver';\r\n\r\nimport {NewDataStoreService} from '@shared/services/new-data-store.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'tk-event-list-alarm-item-info',\r\n styleUrls: ['./event-list-item-info.component.less'],\r\n templateUrl: './event-list-item-info.component.html'\r\n})\r\nexport class EventListItemInfoComponent implements OnInit {\r\n\r\n /**\r\n * Event to show\r\n */\r\n @Input() public event?: BusinessEvent;\r\n\r\n /**\r\n * Vehicle if event points to any\r\n */\r\n public vehicle?: Vehicle;\r\n\r\n /**\r\n * Driver if event points to any\r\n */\r\n public driver?: Driver;\r\n\r\n /**\r\n * Default vehicle name if event does not point to any vehicle\r\n */\r\n public defaultVehicleName: string;\r\n\r\n /**\r\n * Default driver name if event does not point to any driver\r\n */\r\n public defaultDriverName: string;\r\n\r\n constructor(\r\n private newDataStoreService: NewDataStoreService,\r\n private translate: TranslateService\r\n ) {\r\n this.defaultVehicleName = this.translate.instant('events-list.unknown-vehicle');\r\n this.defaultDriverName = this.translate.instant('events-list.unknown-driver');\r\n }\r\n\r\n public ngOnInit(): void {\r\n // Get names of vehicle and driver if any\r\n if (this.event?.DI) {\r\n const driver = this.newDataStoreService.getDriverById(this.event?.DI);\r\n if (driver) {\r\n this.driver = driver;\r\n }\r\n }\r\n\r\n if (this.event?.VI) {\r\n const vehicle = this.newDataStoreService.getVehicleById(this.event?.VI);\r\n if (vehicle) {\r\n this.vehicle = vehicle;\r\n }\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { BusinessEvent } from '@commons/models/domain/BusinessEvent';\r\n\r\n@Component({\r\n selector: 'app-event-item',\r\n templateUrl: './event-item.component.html',\r\n styleUrls: ['./event-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EventItemComponent implements OnInit {\r\n\r\n @Input() public eventData: BusinessEvent;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n {{ eventData.ED.Dc }}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {{ eventData.TS | date : 'HH:mm' }}\r\n \r\n
","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { BusinessEvent } from '@commons/models/domain/BusinessEvent';\r\nimport { NewDataStoreService } from '@shared/services/new-data-store.service';\r\nimport { Driver } from '@commons/models/domain/Driver';\r\nimport { Vehicle } from '@commons/models/domain/Vehicle';\r\nimport { Consts } from '@commons/consts/consts';\r\n\r\n// enum ValueSign {\r\n// Plus = 1,\r\n// Minus = 2,\r\n// }\r\n\r\n@Component({\r\n selector: 'app-fuel-item',\r\n templateUrl: './fuel-item.component.html',\r\n styleUrls: ['./fuel-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FuelItemComponent implements OnInit {\r\n @Input() public eventData: BusinessEvent;\r\n\r\n public defaultVehicleName: string;\r\n public defaultDriverName: string;\r\n public driver?: Driver;\r\n public vehicle?: Vehicle;\r\n\r\n public valueLFuel?: number;\r\n public invoiceDiff?: number;\r\n public fuelEventActionTypeClass: Object;\r\n\r\n public readonly VALUE_SIGN = Consts;\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private newDataStoreService: NewDataStoreService,\r\n ) {\r\n this.defaultVehicleName = this.translate.instant('events-list.unknown-vehicle');\r\n this.defaultDriverName = this.translate.instant('events-list.unknown-driver');\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.getVehicleData();\r\n this.getFuelData();\r\n }\r\n\r\n private getVehicleData(): void {\r\n if (this.eventData?.DI) {\r\n const driver = this.newDataStoreService.getDriverById(this.eventData?.DI);\r\n if (driver) {\r\n this.driver = driver;\r\n }\r\n }\r\n if (this.eventData?.VI) {\r\n const vehicle = this.newDataStoreService.getVehicleById(this.eventData?.VI);\r\n if (vehicle) {\r\n this.vehicle = vehicle;\r\n }\r\n }\r\n }\r\n\r\n private getFuelData(): void {\r\n if (this.eventData?.ED && this.eventData.ED.V) {\r\n this.valueLFuel = Math.abs(this.eventData.ED.V);\r\n if (this.eventData.ED.IV) {\r\n this.invoiceDiff = Math.abs(this.eventData.ED.V) - Math.abs(this.eventData.ED.IV);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n \r\n {{ eventData.EA === VALUE_SIGN.EventFuelRefuelling ? '+' : '-' }} {{ valueLFuel | number:'1.0-0' }} L {{ invoiceDiff }}\r\n \r\n
\r\n
\r\n \r\n {{ vehicle?.Nm }}\r\n \r\n \r\n {{ driver?.FN }} {{ driver?.LN }}\r\n \r\n
\r\n \r\n {{ eventData.TS | date : 'HH:mm' }}\r\n \r\n\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { Consts } from '@commons/consts/consts';\r\nimport { BusinessEvent } from '@commons/models/domain/BusinessEvent';\r\n\r\n@Component({\r\n selector: 'app-area-item',\r\n templateUrl: './area-item.component.html',\r\n styleUrls: ['./area-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AreaItemComponent implements OnInit {\r\n\r\n @Output() public onClickArea$: EventEmitter = new EventEmitter();\r\n\r\n @Input() public eventData: BusinessEvent;\r\n\r\n public readonly EVENT_TYPE = Consts;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n
\r\n \r\n {{ eventData?.ED?.Nm || 'Nieznany obszar' }}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{ eventData.TS | date : 'HH:mm' }}\r\n \r\n
\r\n","
\r\n
\r\n \r\n
\r\n {{ item.title }}\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","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\n\r\nimport { Datasource } from 'ngx-ui-scroll';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { EventTypeEnum } from '@commons/enums/event-type.enum';\r\nimport { BusinessEvent } from '@commons/models/domain/BusinessEvent';\r\nimport { AreaService } from '@commons/services/area/area.service';\r\nimport { AreaDrawerService } from '@commons/services/map/drawer/area/area-drawer.service';\r\nimport { EventDrawerService } from '@commons/services/map/drawer/event/event-drawer.service';\r\nimport { MapService } from '@commons/services/map/map/map.service';\r\n\r\n@Component({\r\n selector: 'app-event-list',\r\n templateUrl: './event-list.component.html',\r\n styleUrls: ['./event-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EventListComponent implements OnInit, OnDestroy {\r\n\r\n @Input() public listEventType: EventTypeEnum;\r\n @Input() public data: BusinessEvent[] = [];\r\n\r\n public datasource: any;\r\n public selectedItemList: BusinessEvent | null;\r\n\r\n public readonly EVENT_TYPE = EventTypeEnum;\r\n private readonly ComponentSubsc = new Subscription();\r\n\r\n constructor(\r\n private areaService: AreaService,\r\n private areaDrawer: AreaDrawerService,\r\n private eventDrawer: EventDrawerService,\r\n private mapService: MapService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.initList();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n }\r\n\r\n public onClickItemList(data: BusinessEvent): void {\r\n if (this.selectedItemList?.Id === data.Id) {\r\n this.selectedItemList = null;\r\n this.areaDrawer.remove();\r\n this.eventDrawer.removeAll();\r\n this.mapService.onClickEventList$.next(null as any);\r\n return;\r\n }\r\n this.selectedItemList = { ...data };\r\n this.mapService.onClickEventList$.next({ data, eventMode: this.listEventType });\r\n\r\n if (this.listEventType === this.EVENT_TYPE.Area) {\r\n this.onClickArea(data);\r\n }\r\n if (this.listEventType === this.EVENT_TYPE.Fuel || this.listEventType === this.EVENT_TYPE.Alarm) {\r\n this.onClickFuelOrAlarm(data);\r\n }\r\n }\r\n\r\n public onClickFuelOrAlarm(data: BusinessEvent): void {\r\n this.eventDrawer.removeAll();\r\n this.eventDrawer.drawEvent(data);\r\n this.eventDrawer.fitBoundsToVisibleEvents();\r\n }\r\n\r\n private onClickArea(data: BusinessEvent): void {\r\n const sub = this.areaService.getAreaDetails$(data.ED.Id).subscribe(\r\n (area) => {\r\n if (area) {\r\n this.areaDrawer.remove();\r\n this.areaDrawer.setArea(area, false, false);\r\n this.areaDrawer.draw();\r\n this.areaDrawer.fitBoundsToVisibleArea();\r\n }\r\n }\r\n );\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private initList(): void {\r\n this.datasource = new Datasource({\r\n get: (index: number, count: number, success: any) => {\r\n const dataSlice = this.getDataSlice(index, count);\r\n success(dataSlice);\r\n },\r\n settings: {\r\n startIndex: 0,\r\n }\r\n });\r\n }\r\n\r\n private getDataSlice(index: number, count: number): BusinessEvent[] {\r\n const startIndex = index;\r\n const endIndex = index + count;\r\n return this.data.slice(startIndex, endIndex);\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 {{'date'|translate}}\r\n \r\n | {{ _selectedDateCalendar[0] && (_selectedDateCalendar[0] | date: 'mediumDate' : '' : langauge) }}\r\n\r\n \r\n - {{ _selectedDateCalendar[1] && (_selectedDateCalendar[1] | date: 'mediumDate' : '' : langauge) }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { isSameDay } from 'date-fns';\r\n\r\nimport { FilterVehicleType } from '@src/app/enum/filters-vehicle.enum';\r\nimport { IFilterVehicle, IFilterVehicleOption, ISubmitFilters } from '@src/app/interfaces/filters-vehicle.interface';\r\nimport { EventService } from '@commons/services/event/event.service';\r\nimport { LanguageService } from '@shared/services/language.service';\r\nimport { EventTypeEnum } from '@commons/enums/event-type.enum';\r\n\r\n@Component({\r\n selector: 'app-filters-events',\r\n templateUrl: './filters-events.component.html',\r\n styleUrls: ['./filters-events.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FiltersEventsComponent implements OnInit {\r\n\r\n @Output() public onChangeFilters$: EventEmitter = new EventEmitter();\r\n @Output() public toogleDatePicker$: EventEmitter = new EventEmitter();\r\n\r\n @Input() public form: FormGroup;\r\n @Input() public selectedTab: EventTypeEnum;\r\n @Input() public isVisibleDatepicker: boolean;\r\n @Input('selectedDatesInCalendar') public set setSelectedDateCalendar(data: Date[]) {\r\n this._selectedDateCalendar = data?.length ? [...data] : null as any;\r\n\r\n if (this._selectedDateCalendar) {\r\n this.ifDateDayIsSame = isSameDay(data[0], data[1]);\r\n }\r\n }\r\n public ifDateDayIsSame: boolean;\r\n public _selectedDateCalendar: Date[];\r\n\r\n public filterTypeAlarmConfig: IFilterVehicle = {\r\n filterLabel: this.translate.instant('type'),\r\n type: FilterVehicleType.Group,\r\n dropdownLabel: this.translate.instant('showOnlyGroup'),\r\n options: [],\r\n };\r\n public filtersAlarmTypesCurrentFilters: ISubmitFilters;\r\n\r\n public filterEventTypeFuelConfig: IFilterVehicle = {\r\n filterLabel: this.translate.instant('type'),\r\n type: FilterVehicleType.Group,\r\n dropdownLabel: this.translate.instant('showOnlyGroup'),\r\n options: [\r\n { label: this.translate.instant('fuel-status.refueling'), value: 1, data: { Id: 1 } },\r\n { label: this.translate.instant('fuel-status.loss'), value: 2, data: { Id: 2 } },\r\n ],\r\n };\r\n public filtersEventTypeFuelCurrentFilters: ISubmitFilters;\r\n\r\n public filterEventTypeAreaConfig: IFilterVehicle = {\r\n filterLabel: this.translate.instant('type'),\r\n type: FilterVehicleType.Group,\r\n dropdownLabel: this.translate.instant('showOnlyGroup'),\r\n options: [\r\n { label: this.translate.instant('area-event-type.entry'), value: 1, data: { Id: 1 } },\r\n { label: this.translate.instant('area-event-type.leaves'), value: 2, data: { Id: 2 } },\r\n ],\r\n };\r\n public filterEventTypeAreaCurrentFilters: ISubmitFilters;\r\n\r\n public loading: boolean;\r\n public readonly langauge: string = this.languageService.current;\r\n public readonly EVENT_TYPE = EventTypeEnum;\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private eventService: EventService,\r\n private languageService: LanguageService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.eventService.getEventActionForAlarm().subscribe(\r\n (result) => {\r\n this.filterTypeAlarmConfig = {\r\n ...this.filterTypeAlarmConfig,\r\n options: result.map((item: any) => ({ label: item.Nm, value: item.Id, data: item })) as IFilterVehicleOption[],\r\n }\r\n }\r\n );\r\n }\r\n\r\n public onSearchEnter(): void {\r\n\r\n }\r\n\r\n public onClearEnter(): void {\r\n\r\n }\r\n\r\n public onInputFocus(data: any): void {\r\n\r\n }\r\n\r\n public onSubmitFilters(data: ISubmitFilters, filterData: IFilterVehicle): void {\r\n if (data.selectedControlValue) {\r\n const selectedItem = this.filterTypeAlarmConfig.options.find(item => item.value === data.selectedControlValue);\r\n this.filtersAlarmTypesCurrentFilters = {...data};\r\n this.form.get('EventActionTypeAlarm')?.setValue(selectedItem?.data);\r\n return;\r\n }\r\n this.form.get('EventActionTypeAlarm')?.setValue(null);\r\n }\r\n\r\n public onSubmitFiltersEventTypeFuel(data: ISubmitFilters, filterData: IFilterVehicle): void {\r\n if (data.selectedControlValue) {\r\n this.filtersAlarmTypesCurrentFilters = {...data};\r\n this.form.get('EventActionTypeFuel')?.setValue({ Id: data.selectedControlValue });\r\n return;\r\n }\r\n this.form.get('EventActionTypeFuel')?.setValue(null);\r\n }\r\n\r\n public onSubmitFiltersEventTypeArea(data: ISubmitFilters, filterData: IFilterVehicle): void {\r\n if (data.selectedControlValue) {\r\n this.filtersAlarmTypesCurrentFilters = {...data};\r\n this.form.get('EventActionTypeArea')?.setValue({ Id: data.selectedControlValue });\r\n return;\r\n }\r\n this.form.get('EventActionTypeArea')?.setValue(null);\r\n }\r\n\r\n}\r\n","
\r\n\r\n \r\n
\r\n {{'events-list.header' | translate}}\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n {{'events-list.alarm' | translate}}\r\n \r\n
\r\n
\r\n {{'labels.fuel' | translate | titlecase}}\r\n \r\n
\r\n
\r\n {{'labels.areas' | translate | titlecase}}\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 \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {animate, sequence, style, transition, trigger} from '@angular/animations';\r\nimport {Location} from \"@angular/common\";\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\n\r\nimport {debounceTime, filter, Observable, Subscription, switchMap, tap} from 'rxjs';\r\nimport { get } from 'lodash';\r\nimport { endOfDay, format, startOfDay } from 'date-fns';\r\n\r\nimport {EventTypeEnum} from '@commons/enums/event-type.enum';\r\nimport {EventDrawerService} from '@commons/services/map/drawer/event/event-drawer.service';\r\nimport {PanelNavigationService} from '@commons/services/navigation/panel-navigation.service';\r\nimport {EventService} from '@commons/services/event/event.service';\r\nimport {PermissionService} from \"@shared/services/permission.service\";\r\nimport { IEventResponse } from '@commons/models/remote.request/EventListFilterRequest';\r\nimport { BusinessEvent } from '@commons/models/domain/BusinessEvent';\r\nimport { LanguageService } from '@shared/services/language.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'tk-event-list-lite',\r\n templateUrl: './event-list-lite.component.html',\r\n styleUrls: ['./event-list-lite.component.scss'],\r\n animations: [\r\n trigger('openClose', [\r\n transition(\":enter\", [style({ transform: 'translateX(-264px)' }), animate('0.1s')]),\r\n transition(\":leave\", [sequence([style({ left: '56px', 'z-index': 0 }), animate('0.1s', style({ left: '-264px' }))])]),\r\n ])\r\n ]\r\n})\r\nexport class EventListLiteComponent implements OnDestroy, OnInit {\r\n\r\n /**\r\n * Indicates active tab of specific event type\r\n */\r\n public eventType: EventTypeEnum = EventTypeEnum.Alarm;\r\n\r\n /**\r\n * Subscription to navigation changes\r\n */\r\n private navSub: Subscription;\r\n\r\n /**\r\n * Subscription to stream of count of unread events\r\n */\r\n private unreadEventCountSub?: Subscription;\r\n\r\n /**\r\n * Flag indicating whether event list is visible\r\n */\r\n public isVisible = false;\r\n\r\n /**\r\n * Event type enum used in template\r\n */\r\n public EventType = EventTypeEnum;\r\n\r\n /**\r\n * Unread types of events\r\n */\r\n public unreadTypes: EventTypeEnum[] = [];\r\n\r\n /**\r\n * Flag indicating whether this is first filter request\r\n */\r\n private firstFilterRequest = true;\r\n\r\n /**\r\n * czy użytkownik ma dostęp do zakładki alarmy\r\n */\r\n public isAlarmsTabEnabled = false;\r\n\r\n /**\r\n * czy użytkownik ma dostęp do zakładki paliwo\r\n */\r\n public isFuelTabEnabled = false;\r\n\r\n /**\r\n * czy użytkownik ma dostęp do zakładki obszary\r\n */\r\n public isAreasTabEnabled = false;\r\n\r\n /* ----- */\r\n public isLoadingData: boolean;\r\n public isVisibleDatepicker: boolean;\r\n public selectedDatesInCalendar: Date[];\r\n public formFilters: FormGroup = new FormGroup({\r\n Phrase: new FormControl(''),\r\n EventActionTypeAlarm: new FormControl(),\r\n EventActionTypeFuel: new FormControl(),\r\n EventActionTypeArea: new FormControl(),\r\n Dates: new FormControl([]),\r\n });\r\n public eventsList: BusinessEvent[] = [];\r\n\r\n public readonly ComponentSubsc: Subscription = new Subscription();\r\n public GetEventsSubsc: Subscription;\r\n\r\n /**\r\n * Event list lite's constructor\r\n * @param $ws web socket service\r\n * @param $nav navigation service\r\n * @param $event event service\r\n * @param $areaDrawer area drawer service\r\n */\r\n constructor(\r\n private $nav: PanelNavigationService,\r\n private $event: EventService,\r\n private $eventDrawer: EventDrawerService,\r\n private location: Location,\r\n private permissionService: PermissionService,\r\n private languageService: LanguageService,\r\n private translate: TranslateService,\r\n ) {\r\n this.isAlarmsTabEnabled = this.isAlarmsPermitted();\r\n this.isFuelTabEnabled = this.isFuelPermitted();\r\n this.isAreasTabEnabled = this.isAreasPermitted();\r\n\r\n // Subscribe to stream of url changes\r\n this.navSub = this.$nav.getVisibilitySubject()\r\n .pipe(\r\n filter(item => (!item.subsites || item.subsites.indexOf('event-lite') !== -1)),\r\n debounceTime(50),\r\n )\r\n .subscribe(change => {\r\n this.isVisible = change.show;\r\n if (this.isVisible) {\r\n this.setCurrentTabNameInUrl(EventTypeEnum[this.eventType].toLowerCase());\r\n this.getEvents().subscribe();\r\n }\r\n else\r\n this.$eventDrawer.removeAll();\r\n });\r\n\r\n // // If new event is pushed send filter request to get new unread events\r\n // this.unreadEventCountSub = this.$ws.OnEventNotification()\r\n // .startWith()\r\n // .switchMap(event => this.$event.findEvent(new EventListFilterRequest()))\r\n // .map(events => {\r\n // return events.reduce((tally, event) => {\r\n // if (event.EventStatus === EventStatusEnum.Unread) {\r\n // tally.add(event.EventType);\r\n // }\r\n // return tally;\r\n // }, new Set());\r\n // })\r\n // .subscribe(unreadTypes => {\r\n // this.unreadTypes = Array.from(unreadTypes);\r\n // this.markTabAsRead(this.eventType);\r\n // });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.onChangeAlarmFiltersData();\r\n }\r\n /**\r\n * Ng on destroy lifecycle hook\r\n */\r\n public ngOnDestroy(): void {\r\n this.ComponentSubsc.unsubscribe();\r\n this.GetEventsSubsc?.unsubscribe();\r\n if (this.navSub) {\r\n this.navSub.unsubscribe();\r\n }\r\n if (this.unreadEventCountSub) {\r\n this.unreadEventCountSub.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Returns style class for tab with given event type\r\n * @param eventType event type\r\n */\r\n public getStyleClassForTab(eventType: EventTypeEnum): any {\r\n\r\n return {\r\n 'event-list__tab--active': this.eventType === eventType,\r\n 'event-list__tab--unread': this.unreadTypes.includes(eventType)\r\n };\r\n }\r\n\r\n\r\n /**\r\n * Switches to a tab with given event type\r\n * @param eventType event type\r\n */\r\n public goToTab(eventType: EventTypeEnum): any {\r\n this.isVisibleDatepicker = false;\r\n this.markTabAsRead(eventType);\r\n this.setCurrentTabNameInUrl(EventTypeEnum[eventType].toLowerCase(), EventTypeEnum[this.eventType].toLowerCase());\r\n this.eventType = eventType;\r\n this.getEventsAdSubsc();\r\n }\r\n\r\n private getEventsAdSubsc(): void {\r\n this.GetEventsSubsc?.unsubscribe();\r\n this.GetEventsSubsc = this.getEvents().subscribe();\r\n }\r\n\r\n private setCurrentTabNameInUrl(newTabName: string, oldTabName?: string) {\r\n const path = this.location.path();\r\n if (path.indexOf('&tab=') > -1)\r\n this.location.go(this.location.path().replace(`&tab=${oldTabName}`, `&tab=${newTabName}`));\r\n else\r\n this.location.go(`${this.location.path()}&tab=${newTabName}`);\r\n }\r\n\r\n /**\r\n * Marks given tab as read\r\n * @param eventType event type\r\n */\r\n private markTabAsRead(eventType: EventTypeEnum): void {\r\n\r\n const index = this.unreadTypes.indexOf(eventType);\r\n if (index > -1) {\r\n this.unreadTypes.splice(index, 1);\r\n }\r\n }\r\n\r\n /**\r\n * sprawdzenie uprawnień do zakładki alarmy\r\n */\r\n private isAlarmsPermitted(): boolean {\r\n return this.permissionService.hasAlarms_RAZ_PO();\r\n }\r\n\r\n /**\r\n * sprawdzenie uprawnień do zakładki paliwo\r\n */\r\n private isFuelPermitted(): boolean {\r\n return this.permissionService.hasStdReports_FUELALL_POL();\r\n }\r\n\r\n /**\r\n * sprawdzenie uprawnień do zakładki obszary\r\n */\r\n private isAreasPermitted(): boolean {\r\n return this.permissionService.hasStdReports_ROK_SP();\r\n }\r\n\r\n \r\n\r\n public onSelectDaysInCalendar(data: Date[]): void {\r\n this.selectedDatesInCalendar = [...data];\r\n this.formFilters.get('Dates')?.setValue(data);\r\n }\r\n\r\n private onChangeAlarmFiltersData(): void {\r\n this.GetEventsSubsc?.unsubscribe();\r\n\r\n const sub = this.formFilters.valueChanges\r\n .pipe(\r\n tap(() => this.isLoadingData = true),\r\n debounceTime(200),\r\n switchMap(() => this.getEvents()),\r\n )\r\n .subscribe();\r\n this.ComponentSubsc.add(sub);\r\n }\r\n\r\n private getEvents(): Observable {\r\n this.isLoadingData = true;\r\n return this.$event.findEvent(this.alarmFiltersRequestBody).pipe(\r\n tap(\r\n (data) => {\r\n this.eventsList = this.transformData(this.sortEventsByDate(data.events));\r\n this.isLoadingData = false;\r\n }\r\n ),\r\n );\r\n }\r\n\r\n private sortEventsByDate(data: BusinessEvent[]): BusinessEvent[] {\r\n return (data || []).sort(\r\n (a: BusinessEvent, b: BusinessEvent) => {\r\n const _a = new Date(a.TS).valueOf();\r\n const _b = new Date(b.TS).valueOf();\r\n \r\n if (_a < _b) {\r\n return 1;\r\n }\r\n if (_a > _b) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n );\r\n }\r\n\r\n private get alarmFiltersRequestBody(): any {\r\n const { value: form } = this.formFilters;\r\n\r\n const getEventTypeParamFormName = (): string => {\r\n if (this.eventType === EventTypeEnum.Alarm) {\r\n return 'EventActionTypeAlarm';\r\n }\r\n if (this.eventType === EventTypeEnum.Fuel) {\r\n return 'EventActionTypeFuel';\r\n }\r\n if (this.eventType === EventTypeEnum.Area) {\r\n return 'EventActionTypeArea';\r\n }\r\n return '';\r\n };\r\n\r\n return {\r\n DateFrom: startOfDay(get(form, 'Dates[0]', new Date())),\r\n DateTo: endOfDay(get(form, 'Dates[1]', new Date())),\r\n EventActionType: get(form, `${getEventTypeParamFormName()}.Id`, 0),\r\n Phrase: form.Phrase,\r\n EventType: this.eventType,\r\n };\r\n }\r\n\r\n private transformData(data: BusinessEvent[]): BusinessEvent[] {\r\n const flatData: BusinessEvent[] = [];\r\n let currentGroup = '';\r\n const today = new Date();\r\n const yesterday = new Date();\r\n yesterday.setDate(today.getDate() - 1);\r\n\r\n const getDateGroupTitle = (date: Date) => {\r\n if (date.toDateString() === today.toDateString()) {\r\n return this.translate.instant('date-time.today');\r\n } else if (date.toDateString() === yesterday.toDateString()) {\r\n return this.translate.instant('date-time.yesterday');\r\n } else {\r\n return format(date, 'EEEE, d MMMM yyyy', { locale: this.languageService.localeVariableDateFns });\r\n }\r\n };\r\n\r\n data.forEach(item => {\r\n const itemDate = new Date(item.TS);\r\n const groupTitle = getDateGroupTitle(itemDate);\r\n\r\n if (groupTitle !== currentGroup) {\r\n flatData.push({ isGroup: true, title: groupTitle } as any);\r\n currentGroup = groupTitle;\r\n }\r\n flatData.push(item);\r\n });\r\n return flatData;\r\n }\r\n\r\n}\r\n","
\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n {{'labels.areas' | translate | titlecase}}\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 \r\n \r\n\r\n \r\n
\r\n\r\n\r\n\r\n
{{'labels.loading-data' | translate}}
\r\n
\r\n {{'labels.no-result' | translate}}\r\n
\r\n\r\n\r\n 0\">\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
\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n","import { Component, OnInit, OnDestroy, ViewEncapsulation } from '@angular/core';\r\nimport { trigger, state, style, transition, animate, sequence } from '@angular/animations';\r\n\r\nimport { BehaviorSubject, filter, Subscription } from 'rxjs';\r\n\r\nimport { AreaTypeEnum } from '@commons/enums/area-type.enum';\r\nimport { Area } from '../../../commons/models/domain/Area';\r\nimport { PanelNavigationService } from '@commons/services/navigation/panel-navigation.service';\r\nimport { AreaDrawerService, State as AreaDrawerState } from '@commons/services/map/drawer/area/area-drawer.service';\r\nimport { AreaService } from '@commons/services/area/area.service';\r\n\r\nexport enum ViewMode {\r\n List = 0,\r\n Form = 1\r\n}\r\n\r\n@Component({\r\n selector: 'tk-area-list-lite',\r\n templateUrl: './area-list-lite.component.html',\r\n styleUrls: ['./area-list-lite.component.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [\r\n trigger('openClose', [\r\n transition(\":enter\", [style({transform: 'translateX(-264px)'}), animate('0.1s')]),\r\n transition(\":leave\", [sequence([style({left: '56px'}), animate('0.1s', style({left: '-264px'}))])]),\r\n ])\r\n ]\r\n})\r\nexport class AreaListLiteComponent implements OnDestroy {\r\n\r\n\r\n public filterHeight = 152;\r\n\r\n\r\n /**\r\n * Areas\r\n */\r\n public areas?: Area[];\r\n\r\n /**\r\n * Subsription to selected area stream\r\n */\r\n private selectedAreaSub: Subscription;\r\n\r\n /**\r\n * Subject for selected area type communication: create area componenet -> form component\r\n */\r\n public selectedAreaTypeSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n\r\n /**\r\n * Subsription to selected area type stream\r\n */\r\n private selectedAreaTypeSub: Subscription;\r\n\r\n\r\n /**\r\n * Subscription to saving done signal stream\r\n */\r\n private savingDoneSub?: Subscription;\r\n\r\n /**\r\n * Subscription to areas\r\n */\r\n private areaSub: Subscription;\r\n\r\n /**\r\n * Subscription to navigation changes\r\n */\r\n private navSub: Subscription;\r\n\r\n /**\r\n * Flag indicating whether areas list is visible\r\n */\r\n public isVisible = false;\r\n\r\n /**\r\n * View mode\r\n */\r\n public viewMode: ViewMode = ViewMode.List;\r\n\r\n /**\r\n * For template\r\n */\r\n public ViewMode = ViewMode;\r\n\r\n /**\r\n * Selected area\r\n */\r\n public selectedArea?: Area;\r\n public selectedAreaId?: number;\r\n\r\n\r\n /**\r\n * Event list lite's constructor\r\n * @param $nav navigation service\r\n * @param $area area service\r\n * @param $areaDrawer area drawer service\r\n */\r\n constructor(\r\n private $nav: PanelNavigationService,\r\n private $area: AreaService,\r\n private $areaDrawer: AreaDrawerService\r\n ) {\r\n // Subscribe to stream of url changes\r\n this.navSub = this.$nav.getVisibilitySubject()\r\n .pipe(filter((item: any) => (\r\n !item.subsites\r\n || item.subsites.indexOf('area-lite') !== -1\r\n )))\r\n .subscribe(change => {\r\n this.isVisible = change.show;\r\n if (!this.isVisible) {\r\n this.viewMode = ViewMode.List;\r\n this.$areaDrawer.remove();\r\n this.selectedArea = undefined;\r\n this.selectedAreaId = undefined;\r\n }\r\n });\r\n\r\n // Get areas\r\n this.areaSub = this.$area.getAreaList$().subscribe(areas => {\r\n if (this.isVisible) {\r\n this.areas = areas;\r\n }\r\n });\r\n\r\n // Subscribe for selected area stream\r\n this.selectedAreaSub = this.$areaDrawer.selectedAreaSubject.subscribe(area => {\r\n this.selectedArea = area;\r\n this.viewMode = ViewMode.Form;\r\n });\r\n\r\n // Subscribe for selected area types stream\r\n this.selectedAreaTypeSub = this.selectedAreaTypeSubject.subscribe(areaType => {\r\n this.viewMode = areaType ? ViewMode.Form : ViewMode.List;\r\n if (this.viewMode !== ViewMode.List) {\r\n this.selectedAreaId = undefined;\r\n this.selectedArea = undefined;\r\n }\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Ng on destroy lifecycle hook\r\n */\r\n public ngOnDestroy(): void {\r\n\r\n if (this.navSub) {\r\n this.navSub.unsubscribe();\r\n }\r\n if (this.areaSub) {\r\n this.areaSub.unsubscribe();\r\n }\r\n if (this.savingDoneSub) {\r\n this.savingDoneSub.unsubscribe();\r\n }\r\n if (this.selectedAreaSub) {\r\n this.selectedAreaSub.unsubscribe();\r\n }\r\n if (this.selectedAreaTypeSub) {\r\n this.selectedAreaTypeSub.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Selects area and switches to form view mode\r\n * @param area area\r\n */\r\n public selectArea(area?: Area): void {\r\n this.$areaDrawer.selectedAreaSubject.next(area);\r\n }\r\n\r\n\r\n public onCancel() {\r\n if (this.selectedArea) {\r\n this.selectedAreaId = this.selectedArea.Id;\r\n this.showArea(this.selectedArea);\r\n this.selectedArea = undefined;\r\n } else {\r\n this.$areaDrawer.setArea(undefined);\r\n this.$areaDrawer.remove();\r\n }\r\n this.$areaDrawer.areaDrawerState = AreaDrawerState.Default;\r\n this.$areaDrawer.drawingDoneSubject.next();\r\n }\r\n\r\n public onSelect(item: Area) {\r\n\r\n\r\n // odznaczenie i zaznaczenia\r\n if (item.Id && this.selectedAreaId === item.Id) {\r\n this.selectedAreaId = undefined;\r\n this.showArea(undefined);\r\n } else {\r\n this.selectedAreaId = item.Id;\r\n this.showArea(item);\r\n }\r\n\r\n }\r\n\r\n public onSave(item: Area) {\r\n this.selectedArea = item;\r\n this.$areaDrawer.areaDrawerState = AreaDrawerState.Default;\r\n this.$areaDrawer.drawingDoneSubject.next();\r\n }\r\n\r\n public onDelete(item: Area) {\r\n this.selectedArea = undefined;\r\n this.selectedAreaId = undefined;\r\n this.viewMode = ViewMode.List;\r\n this.onCancel();\r\n }\r\n\r\n private showArea(item?: Area) {\r\n console.log('show area');\r\n this.$areaDrawer.setArea(undefined);\r\n this.$areaDrawer.remove();\r\n this.$areaDrawer.setArea(item);\r\n this.$areaDrawer.draw();\r\n this.$areaDrawer.fitBoundsToVisibleArea();\r\n }\r\n\r\n\r\n handleOnHeightChanged(evt: any) {\r\n // filr ma 133px a lista musi się zaczynać na 140px\r\n // stad przesunięcie\r\n this.filterHeight = evt + 68;\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import {Component, Input, OnInit, TemplateRef} from '@angular/core';\r\nimport {animate, sequence, style, transition, trigger} from \"@angular/animations\";\r\n\r\n@Component({\r\n selector: 'lm-full-panel-container',\r\n templateUrl: './full-panel-container.component.html',\r\n styleUrls: ['./full-panel-container.component.less'],\r\n animations: [\r\n trigger('openClose', [\r\n transition(\":enter\", [style({transform: `translateX(-1300px)`}), animate('0.1s')]),\r\n transition(\":leave\", [sequence([style({left: '56px'}), animate('0.1s', style({left: '-1300px'}))])]),\r\n ])\r\n ]\r\n})\r\nexport class FullPanelContainerComponent implements OnInit {\r\n\r\n @Input() isVisible = false;\r\n @Input() currentTemplate: TemplateRef | null = null;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-activate-etoll',\r\n templateUrl: './activate-e-toll.component.html',\r\n styles: []\r\n})\r\nexport class ActivateETollComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n {{'etoll-panel.activate-etoll' | translate}}\r\n \r\n {{'contact.phone' | translate}}\r\n \r\n {{'labels.or' | translate}}\r\n \r\n {{'contact.email' | translate}}\r\n \r\n
\r\n\r\n
\r\n {{'etoll-panel.subscription-price' | translate}}\r\n {{'etoll-panel.activation-price' | translate}}\r\n
\r\n\r\n
\r\n","
\r\n \r\n
\r\n \r\n {{ 'etoll-panel.acc-etoll' | translate }}\r\n \r\n \r\n {{ 'etoll-panel.prepaid-only' | translate }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
{{ item.Balance | currency : 'PLN' : 'symbol-narrow' }}
\r\n
\r\n
\r\n {{ 'etoll-panel.account-number' | translate }} {{ item.IdETollBalance }}\r\n {{ 'etoll-panel.account-for-date' | translate }} {{ item.BalanceDate | date : 'dd.LL.yyyy HH:mm' }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\n\r\nimport { EtollStatusHttpService } from '@layout/vehicle/http-services/etoll-status-http.service';\r\nimport { etollBalance } from '@layout/vehicle/http-services/responses/getETollBalance.response';\r\nimport { PermissionService } from '@shared/services/permission.service';\r\n\r\nconst LOCAL_STORAGE_SELECTED_BALANCE_ID = 'SELECTED_ETOLL_BALANCE_ID';\r\n\r\n@Component({\r\n selector: 'app-etoll-dropdown-balance',\r\n templateUrl: './etoll-dropdown-balance.component.html',\r\n styleUrls: ['./etoll-dropdown-balance.component.scss'],\r\n})\r\nexport class EtollDropdownBalanceComponent implements OnInit {\r\n\r\n @Output() private onSelectedBalance$: EventEmitter = new EventEmitter();\r\n\r\n public etollSelectedBalance: number;\r\n public isETollRegistered: boolean;\r\n public isLoading: boolean;\r\n public list: etollBalance[] = [];\r\n\r\n private get pinnedBalanceAccId(): string {\r\n return localStorage.getItem(LOCAL_STORAGE_SELECTED_BALANCE_ID) as string;\r\n }\r\n\r\n constructor(\r\n private eTollStatusService: EtollStatusHttpService,\r\n private permissionService: PermissionService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.isETollRegistered = this.permissionService.hasEToll();\r\n\r\n if (this.isETollRegistered) {\r\n this.loadETollData();\r\n }\r\n }\r\n\r\n private getBalanceById(id: number): etollBalance {\r\n const item = this.list.find(item => item.IdETollBalance === id);\r\n return item as etollBalance;\r\n }\r\n\r\n public onChangeSelectedBalance(data: number): void {\r\n localStorage.setItem(LOCAL_STORAGE_SELECTED_BALANCE_ID, `${ data }`);\r\n const balance = this.getBalanceById(data);\r\n this.onSelectedBalance$.emit(balance);\r\n }\r\n\r\n private loadETollData(): void {\r\n this.isLoading = true;\r\n this.eTollStatusService.getBalance().subscribe(response => this.processETollData(response.Result?.Result));\r\n }\r\n\r\n private processETollData(list?: etollBalance[]): void {\r\n this.isLoading = false;\r\n if (list) {\r\n this.list = list;\r\n }\r\n this.selectPinnedBalanceInit();\r\n }\r\n\r\n private selectPinnedBalanceInit(): void {\r\n if (this.list?.length) {\r\n let selectedBalance: etollBalance = null as any; \r\n if (this.pinnedBalanceAccId) {\r\n selectedBalance = this.list.find(item => item.IdETollBalance === Number(this.pinnedBalanceAccId)) as etollBalance;\r\n }\r\n if (!this.pinnedBalanceAccId || (this.pinnedBalanceAccId && !selectedBalance)) {\r\n const [firstBalance] = this.list;\r\n selectedBalance = firstBalance;\r\n }\r\n if (selectedBalance) {\r\n this.etollSelectedBalance = selectedBalance.IdETollBalance;\r\n this.onChangeSelectedBalance(this.etollSelectedBalance);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
","import { animate, sequence, style, transition, trigger } from '@angular/animations';\r\nimport { Component, Input, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-right-panel-container',\r\n templateUrl: './right-panel-container.component.html',\r\n styleUrls: ['./right-panel-container.component.scss'],\r\n animations: [\r\n trigger('openClose', [\r\n transition(\":enter\", [style({transform: 'translateX(264px)'}), animate('0.1s')]),\r\n transition(\":leave\", [sequence([style({right: '0px'}), animate('0.1s', style({right: '-264px'}))])]),\r\n ])\r\n ]\r\n})\r\nexport class RightPanelContainerComponent {\r\n @Input() isVisible = false;\r\n @Input() currentTemplate: TemplateRef | null = null;\r\n\r\n constructor() { }\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 \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n\r\n \r\n\r\n
\r\n \r\n {{ userInitials }}\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
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{unreadEventsCount}}\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\r\n
\r\n
\r\n \r\n \"youtube\"\r\n \r\n \r\n \"facebook\"\r\n \r\n
\r\n \r\n
{{version}}
\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 \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 \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 \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n","import {RouterModule, Routes} from '@angular/router';\r\nimport {isDevMode, NgModule} from \"@angular/core\";\r\n\r\nimport {BokComponent} from './layout/bok/bok.component';\r\nimport {NotFoundComponent} from './layout/notfound/not-found.component';\r\nimport {PanelComponent} from './layout/panel/panel.component';\r\n\r\nimport {AuthGuard} from \"@shared/guards/auth-guard.service\";\r\nimport {HandoverComponent} from \"@handover/routes/main-route/components/handover/handover.component\";\r\n\r\nconst appRoutesModule: Routes = [\r\n {\r\n path: '', redirectTo: 'authentication', pathMatch: 'full'\r\n },\r\n {\r\n path: 'login', redirectTo: 'authentication'\r\n },\r\n {\r\n path: 'share', redirectTo: 'authentication/share'\r\n },\r\n {\r\n path: 'handover', redirectTo: 'authentication/handover'\r\n },\r\n {\r\n path: 'password-reset-confirm',\r\n redirectTo: 'authentication/set-new-password',\r\n },\r\n {\r\n path: 'authentication',\r\n loadChildren: () => import('@authentication/authentication.module').then(m => m.AuthenticationModule)\r\n },\r\n {\r\n path: 'bok', component: BokComponent\r\n },\r\n {\r\n path: 'panel/:subsite',\r\n component: PanelComponent,\r\n canActivate: [AuthGuard]\r\n },\r\n {\r\n path: 'handover-view/:token',\r\n component: HandoverComponent,\r\n canActivate: [AuthGuard]\r\n },\r\n {\r\n path: '**', component: NotFoundComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(appRoutesModule)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutesModule {\r\n constructor() {\r\n if (isDevMode())\r\n console.log('AppRoutesModule');\r\n }\r\n}\r\n","import {AfterContentInit, Component, isDevMode, OnDestroy, ViewEncapsulation} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport {Title} from '@angular/platform-browser';\r\n\r\nimport {map, take} from 'rxjs';\r\nimport { AnimationOptions } from 'ngx-lottie';\r\nimport { environment } from '@src/environments/environment';\r\n\r\nimport {SurveyDisplayService} from \"@survey/services/survey-display.service\";\r\n\r\nimport {WebAccessService} from '@commons/services/web.access/web-access.service';\r\nimport {NotificationService} from '@commons/services/notification/notification.service';\r\nimport {PanelNavigationService} from '@commons/services/navigation/panel-navigation.service';\r\nimport {VehicleService} from '@commons/services/vehicle/vehicle.service';\r\nimport {EventService} from '@commons/services/event/event.service';\r\nimport {MapEventsService} from \"@commons/services/map/map-events.service\";\r\n\r\nimport packageJson from \"../../../../package.json\";\r\n\r\nimport {MapPanelService} from \"@map-panel/services/map-panel.service\";\r\n\r\nimport {NewNavigationService} from '@shared/services/new-navigation.service';\r\nimport {BaseComponent} from \"@shared/components/base-component\";\r\nimport {ErrorLoggerProxy} from \"@shared/error-logger-proxy\";\r\nimport {LogInApiHttpService} from \"@shared/services-http/log-in-api-http.service\";\r\nimport {PermissionService} from \"@shared/services/permission.service\";\r\nimport {AuthenticationService} from \"@shared/services/authentication/authentication.service\";\r\nimport {UserHttpService} from \"@shared/services-http/user-http.service\";\r\nimport {AppInitializationService} from \"@shared/services/app-initialization.service\";\r\nimport {NewWebSocketHttpService} from \"@shared/websocket/new-web-socket-http.service\";\r\nimport {\r\n LoadingInitialDataComponent\r\n} from \"@layout/panel/components/loading-initial-data/loading-initial-data.component\";\r\nimport {DialogService} from \"@shared/services/dialog.service\";\r\nimport {MatDialogRef} from \"@angular/material/dialog\";\r\nimport { MapActionType } from '@src/app/enum/map.enum';\r\nimport { etollBalance } from '@layout/vehicle/http-services/responses/getETollBalance.response';\r\nimport { AdType } from '@src/app/enum/ad-type.enum';\r\nimport { AdsControlService } from '@shared/services/ads-control.service';\r\nimport { TawkToChatService } from '@shared/services/tawk-to-chat.service';\r\nimport { LOCAL_STORAGE_VAR } from '@src/app/utils/localstorage';\r\nimport { IDropdownMenuOptions } from '@src/app/interfaces/dropdown-menu.interface';\r\n\r\n@Component({\r\n templateUrl: './panel.component.html',\r\n styleUrls: ['./panel.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PanelComponent extends BaseComponent implements AfterContentInit, OnDestroy {\r\n\r\n readonly version: string = packageJson.version;\r\n public readonly AD_TYPE = AdType;\r\n\r\n public readonly isChristmasEvent: boolean = environment.isChristmasEvent;\r\n public readonly chrismatHatConfigLottie: AnimationOptions = {\r\n path: \"/assets/lottie/christmas-hat.json\"\r\n };\r\n\r\n isMapPanelVisible = false;\r\n unreadEventsCount = 0;\r\n visibleSegments?: number;\r\n\r\n hasPermissionToWorkers = false;\r\n hasPermissionToVehicles = false;\r\n hasPermissionToVehiclesList = false;\r\n hasPermissionToEvents = false;\r\n hasAccessToDataSharing = false;\r\n hasAccessToAreas = false;\r\n hasAccessToHandover = false;\r\n\r\n isVehiclesHovered = false;\r\n isEventsHovered = false;\r\n isWorkerHovered = false;\r\n isHelpHovered = false;\r\n isDataSharingHovered = false;\r\n isAreaHovered = false;\r\n isHandoverHovered = false;\r\n\r\n public isVisibleAreasModule: boolean;\r\n public isVisibleNewsModule: boolean;\r\n public selectedEtollBalance: etollBalance;\r\n\r\n public directoriesDropdownOptions: IDropdownMenuOptions[] = [\r\n {img: '', title: 'Pracownicy', onClick: () => this.onOpenWorkerPanel() },\r\n // {img: '', title: 'Pojazdy', onClick: () => alert('Pojazdy') },\r\n // {img: '', title: 'Grupy', onClick: () => alert('Grupy') }\r\n ];\r\n\r\n private currentNavInfo: any;\r\n private isInitialized = false;\r\n private loadingInitialDataComponentRef?: MatDialogRef;\r\n\r\n get isLoggedByLink(): boolean {\r\n return this.authenticationService.isLoggedByToken ?? false;\r\n }\r\n\r\n // public isVehicleFullListOpened: boolean;\r\n\r\n get userInitials(): string {\r\n const result = this.userHttpService.userViewModel?.initials ?? '';\r\n return result;\r\n }\r\n\r\n get isVehiclesButtonActive(): boolean {\r\n return this.isVehiclePanelOpened || this.isVehiclesHovered;\r\n }\r\n\r\n get isEventsButtonActive(): boolean {\r\n return this.isEventsPanelOpened || this.isEventsHovered;\r\n }\r\n\r\n get isWorkerButtonActive(): boolean {\r\n return this.isWorkerPanelOpened || this.isWorkerHovered;\r\n }\r\n\r\n get isDataSharingButtonActive(): boolean {\r\n return this.isDataSharingPanelOpened || this.isDataSharingHovered;\r\n }\r\n\r\n get isHelpButtonActive(): boolean {\r\n return this.isHelpPanelOpened || this.isHelpHovered;\r\n }\r\n\r\n get isAreaButtonActive(): boolean {\r\n return this.isAreasPanelOpened || this.isAreaHovered;\r\n }\r\n\r\n get isHandoverButtonActive(): boolean {\r\n return this.isHandoverPanelOpened || this.isHandoverHovered;\r\n }\r\n\r\n get isVehiclePanelOpened(): boolean {\r\n return this.isCurrentActive('vehicle');\r\n }\r\n\r\n get isWorkerPanelOpened(): boolean {\r\n return this.isCurrentActive('workers');\r\n }\r\n\r\n get isWorkerAddFormPanelOpened(): boolean {\r\n return this.isCurrentActive('worker-form');\r\n }\r\n\r\n get isEventsPanelOpened(): boolean {\r\n return this.isCurrentActive('event');\r\n }\r\n\r\n get isHelpPanelOpened(): boolean {\r\n return this.isCurrentActive('help');\r\n }\r\n\r\n get isProfilePanelOpened(): boolean {\r\n return this.isCurrentActive('profile');\r\n }\r\n\r\n get isDataSharingPanelOpened(): boolean {\r\n return this.isCurrentActive('data-sharing');\r\n }\r\n\r\n get isAreasPanelOpened(): boolean {\r\n return this.isCurrentActive('area');\r\n }\r\n\r\n get isHandoverPanelOpened(): boolean {\r\n return this.isCurrentActive('handover');\r\n }\r\n\r\n get isVehicleFullListOpened(): boolean {\r\n return this.isCurrentActive('vehicle-full-list');\r\n }\r\n\r\n constructor(\r\n private navigationService: PanelNavigationService,\r\n private notificationService: NotificationService,\r\n private eventService: EventService,\r\n private activatedRoute: ActivatedRoute,\r\n private vehicleService: VehicleService,\r\n private router: Router,\r\n private webAccessService: WebAccessService,\r\n private userHttpService: UserHttpService,\r\n private surveyDisplayService: SurveyDisplayService,\r\n private newNavigationService: NewNavigationService,\r\n private logInApiHttpService: LogInApiHttpService,\r\n private titleService: Title,\r\n private permissionService: PermissionService,\r\n private authenticationService: AuthenticationService,\r\n private mapPanelService: MapPanelService,\r\n private appInitializationService: AppInitializationService,\r\n private mapEventsService: MapEventsService,\r\n private newWebSocketHttpService: NewWebSocketHttpService,\r\n private dialogService: DialogService,\r\n public adControlService: AdsControlService,\r\n public tawkToChatService: TawkToChatService\r\n ) {\r\n super();\r\n this.logErrorInApi();\r\n this.authenticationService.startKeepSessionInterval();\r\n\r\n if (!this.isLoggedByLink) {\r\n this.subscribeToParamMap();\r\n this.subscribeToQueryParamMap();\r\n }\r\n\r\n this.setControlsVisibility();\r\n\r\n this.loadingInitialDataComponentRef = this.dialogService.open(LoadingInitialDataComponent);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll();\r\n this.newWebSocketHttpService.close();\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.subToMapPanelVisibility();\r\n this.afterAuthenticationFinished();\r\n this.refreshUrlParams();\r\n this.surveyDisplayService.tryShowSurvey();\r\n this.checkMonthlyTask();\r\n }\r\n\r\n public onSelectedBalance(data: etollBalance): void {\r\n this.selectedEtollBalance = data;\r\n }\r\n\r\n public onChangeMapModule(mapModule: MapActionType): void {\r\n if (mapModule === MapActionType.Areas) {\r\n this.isVisibleAreasModule = true;\r\n this.hideSwitchMapPanelOnChangeModule();\r\n }\r\n }\r\n\r\n public hideAreasModule(): void {\r\n this.isVisibleAreasModule = false;\r\n }\r\n\r\n public hideNewsModule(): void {\r\n this.isVisibleNewsModule = false;\r\n }\r\n\r\n isCurrentActive(subsite: string): boolean {\r\n const params = this.activatedRoute.snapshot.paramMap;\r\n return (params.get('subsite') === subsite);\r\n }\r\n\r\n private hideRightPanelsWhenOpenLeftPanels(hideChat?: boolean): void {\r\n this.hideAreasModule();\r\n this.hideNewsModule();\r\n if (hideChat) {\r\n this.tawkToChatService.hideChat();\r\n }\r\n }\r\n\r\n onOpenVehiclesPanel() {\r\n if (this.isVehiclePanelOpened)\r\n this.newNavigationService.toMainPanel();\r\n else\r\n this.newNavigationService.toVehiclesList();\r\n this.hideRightPanelsWhenOpenLeftPanels();\r\n }\r\n\r\n onOpenEventsPanel() {\r\n if (this.isEventsPanelOpened)\r\n this.newNavigationService.toMainPanel();\r\n else {\r\n this.newNavigationService.toEventsList();\r\n this.markEventsAsRead();\r\n this.hideRightPanelsWhenOpenLeftPanels();\r\n }\r\n }\r\n\r\n onOpenWorkerPanel() {\r\n if (this.isWorkerPanelOpened)\r\n this.newNavigationService.toMainPanel();\r\n else {\r\n this.newNavigationService.toWorkersList();\r\n this.hideRightPanelsWhenOpenLeftPanels();\r\n }\r\n }\r\n\r\n onOpenHandoverPanel() {\r\n this.hideSwitchMapPanelOnChangeModule();\r\n if (this.isHandoverPanelOpened)\r\n this.newNavigationService.toMainPanel();\r\n else\r\n this.newNavigationService.toHandover();\r\n this.hideRightPanelsWhenOpenLeftPanels(true);\r\n }\r\n\r\n onOpenDataSharingPanel() {\r\n this.hideSwitchMapPanelOnChangeModule();\r\n if (this.isDataSharingPanelOpened)\r\n this.newNavigationService.toMainPanel();\r\n else\r\n this.newNavigationService.toDataSharing();\r\n this.hideRightPanelsWhenOpenLeftPanels(true);\r\n }\r\n\r\n onShowHelp() {\r\n if (this.isHelpPanelOpened)\r\n this.newNavigationService.toMainPanel();\r\n else\r\n this.newNavigationService.toHelp();\r\n this.hideRightPanelsWhenOpenLeftPanels(true);\r\n }\r\n\r\n onShowProfile() {\r\n if (this.isProfilePanelOpened)\r\n this.newNavigationService.toMainPanel();\r\n else\r\n this.newNavigationService.toProfile();\r\n this.hideRightPanelsWhenOpenLeftPanels(true);\r\n }\r\n\r\n onButtonMouseOver(elementName: string) {\r\n this.setHoveredState(elementName, true);\r\n }\r\n\r\n onButtonMouseOut(elementName: string) {\r\n this.setHoveredState(elementName, false);\r\n }\r\n\r\n onOpenTekomWebsite() {\r\n window.open('https://tekom.pl/', '_blank')!.focus();\r\n }\r\n\r\n public onClickVehicleFullListModule(): void {\r\n if (this.isVehicleFullListOpened)\r\n this.newNavigationService.toMainPanel();\r\n else\r\n this.newNavigationService.toVehicleFullList();\r\n this.hideRightPanelsWhenOpenLeftPanels(true);\r\n }\r\n\r\n public showNewsPanel(): void {\r\n this.isVisibleNewsModule = !this.isVisibleNewsModule;\r\n this.tawkToChatService.hideChat();\r\n this.newNavigationService.toMainPanel();\r\n }\r\n\r\n public showChat(): void {\r\n this.newNavigationService.toMainPanel();\r\n this.isVisibleNewsModule = false;\r\n this.tawkToChatService.showWidgetAndChat();\r\n }\r\n\r\n private hideSwitchMapPanelOnChangeModule(): void {\r\n this.mapPanelService.isMapPanelVisibleSubject.next(false);\r\n }\r\n\r\n private logErrorInApi() {\r\n ErrorLoggerProxy.$onError.subscribe(error => {\r\n this.logInApiHttpService.logError(error).subscribe();\r\n });\r\n }\r\n\r\n private setHoveredState(elementName: string, state: boolean) {\r\n switch (elementName) {\r\n case 'vehicle':\r\n this.isVehiclesHovered = state;\r\n break;\r\n\r\n case 'event':\r\n this.isEventsHovered = state;\r\n break;\r\n\r\n case 'driver':\r\n this.isWorkerHovered = state;\r\n break;\r\n\r\n case 'data-sharing':\r\n this.isDataSharingHovered = state;\r\n break;\r\n\r\n case 'help':\r\n this.isHelpHovered = state;\r\n break;\r\n\r\n case 'area':\r\n this.isAreaHovered = state;\r\n break;\r\n\r\n case 'handover':\r\n this.isHandoverHovered = state;\r\n break;\r\n }\r\n }\r\n\r\n private markEventsAsRead() {\r\n this.eventService.resetEventNotification().subscribe(() => {\r\n this.unreadEventsCount = 0;\r\n });\r\n }\r\n\r\n private vehicleOnMapClicked(vehicleId: number) {\r\n // jak nie ma zadnej listy otwartej (ani lite ani full)\r\n // to otwieramy lite\r\n const item = this.navigationService.prepareMessage(this.currentNavInfo);\r\n\r\n const allClosed = item.subsites\r\n && item.subsites.indexOf('vehicle-lite') === -1\r\n && item.subsites.indexOf('vehicle-details') === -1\r\n && item.subsites.indexOf('vehicle-details-only') === -1\r\n && item.subsites.indexOf('vehicle-full') === -1;\r\n\r\n const isLiteOpen = item.subsites\r\n && (item.subsites.indexOf('vehicle-lite') !== -1\r\n || item.subsites.indexOf('vehicle-details') !== -1\r\n || item.subsites.indexOf('vehicle-details-only') !== -1\r\n );\r\n\r\n const isFullOpen = item.subsites && item.subsites.indexOf('vehicle-full') !== -1;\r\n\r\n if (allClosed || isLiteOpen) {\r\n this.router.navigate(['panel', 'vehicle'], {queryParams: {'mode': 'details', 'id': vehicleId}, queryParamsHandling: 'merge' });\r\n } else if (isFullOpen) {\r\n this.router.navigate(['panel', 'vehicle'], {queryParams: {'mode': 'full', 'id': vehicleId}, queryParamsHandling: 'merge' });\r\n }\r\n\r\n this.vehicleService.setFollowVehicleStatus(true);\r\n }\r\n\r\n private subscriptionsAfterInitialDataLoaded(isLoggedByLink: boolean) {\r\n this.addToUnsubscribe(\r\n this.mapEventsService.vehicleClicked.subscribe(vehicleId => {\r\n this.vehicleOnMapClicked(vehicleId);\r\n })\r\n );\r\n\r\n this.addToUnsubscribe(\r\n //TODO GB wczytywanie samych pojazdów działa tylko dla logowania się za pomocą linku\r\n this.appInitializationService.initialize(isLoggedByLink).subscribe(() => {\r\n this.subToEventsCountChange();\r\n this.refreshUrlParams(); //TODO GB po co to jest ?\r\n this.loadingInitialDataComponentRef?.close();\r\n })\r\n );\r\n }\r\n\r\n private subToEventsCountChange() {\r\n this.addToUnsubscribe(\r\n this.newWebSocketHttpService.eventNotification.subscribe(event => {\r\n if (event) {\r\n this.notificationService.notify(event);\r\n if (!this.isCurrentActive('event')) {\r\n this.unreadEventsCount += 1;\r\n }\r\n }\r\n }));\r\n }\r\n\r\n private setUnreadEventsNum() {\r\n this.addToUnsubscribe(\r\n this.webAccessService.GetEventNotification()\r\n .pipe(\r\n take(1),\r\n map(response => response.Result))\r\n .subscribe(response => {\r\n if (!this.isCurrentActive('event'))\r\n this.unreadEventsCount += response.Result;\r\n }));\r\n }\r\n\r\n private setControlsVisibility() {\r\n this.addToUnsubscribe(this.navigationService.getVisibilitySubject().subscribe(result => {\r\n if (result.subsites)\r\n this.setVisibleSegment(result.subsites);\r\n }));\r\n }\r\n\r\n private subscribeToParamMap() {\r\n this.activatedRoute.paramMap.subscribe(params => {\r\n const queryParams = this.activatedRoute.snapshot.queryParamMap;\r\n this.navigate(params, queryParams);\r\n this.setVisibleSegment([this.activatedRoute.snapshot.url.join('-')]);\r\n\r\n if (this.isCurrentActive('event'))\r\n this.unreadEventsCount = 0;\r\n });\r\n }\r\n\r\n private subscribeToQueryParamMap() {\r\n this.activatedRoute.queryParamMap.subscribe(queryParams => {\r\n const params = this.activatedRoute.snapshot.paramMap;\r\n this.navigate(params, queryParams);\r\n\r\n if (this.isCurrentActive('event'))\r\n this.unreadEventsCount = 0;\r\n });\r\n }\r\n\r\n /**\r\n * Send url params once again\r\n */\r\n private refreshUrlParams() {\r\n const params = this.activatedRoute.snapshot.paramMap;\r\n const queryParams = this.activatedRoute.snapshot.queryParamMap;\r\n this.navigate(params, queryParams);\r\n }\r\n\r\n private navigate(url: any, queryParams: any) {\r\n const change = {\r\n url: url,\r\n query: queryParams\r\n };\r\n this.currentNavInfo = change;\r\n this.navigationService.resolve(change);\r\n }\r\n\r\n private isEventsPermitted(): boolean {\r\n if (!this.hasPermissionToVehicles) {\r\n return false;\r\n }\r\n return this.permissionService.hasAlarms_RAZ_PO()\r\n || this.permissionService.hasStdReports_FUELALL_POL()\r\n || this.permissionService.hasStdReports_ROK_SP();\r\n }\r\n\r\n private setVisibleSegment(subsites: string[]) {\r\n if (subsites.indexOf('driver-lite') !== -1) {\r\n this.visibleSegments = 1;\r\n\r\n } else if (subsites.indexOf('driver-details') !== -1) {\r\n this.visibleSegments = 2;\r\n\r\n } else if (subsites.indexOf('vehicle-lite') !== -1) {\r\n this.visibleSegments = 1;\r\n\r\n } else if (subsites.indexOf('vehicle-details') !== -1) {\r\n this.visibleSegments = 2;\r\n\r\n } else if (subsites.indexOf('vehicle-full') !== -1) {\r\n this.visibleSegments = 3;\r\n\r\n } else if (subsites.indexOf('vehicle-details-only') !== -1) {\r\n this.visibleSegments = 1;\r\n\r\n } else if (subsites.indexOf('event-lite') !== -1) {\r\n this.visibleSegments = 1;\r\n\r\n } else if (subsites.indexOf('area-lite') !== -1) {\r\n this.visibleSegments = 1;\r\n\r\n } else {\r\n this.visibleSegments = 0;\r\n }\r\n }\r\n\r\n private afterAuthenticationFinished() {\r\n this.authenticationService.isAuthenticated$.pipe(take(1)).subscribe(isAuthenticated => {\r\n if (isAuthenticated && !this.isInitialized) {\r\n this.isInitialized = true;\r\n this.titleService.setTitle('MyCar - ' + this.authenticationService.currentClient);\r\n this.updateClientIdInRouteQueryParams();\r\n\r\n if (!this.isLoggedByLink) {\r\n this.addToUnsubscribe(this.userHttpService.getProfileUserData().subscribe());\r\n this.setPermissionsToPanelOptions();\r\n this.setUnreadEventsNum();\r\n }\r\n this.subscriptionsAfterInitialDataLoaded(this.authenticationService.isLoggedByToken);\r\n }\r\n });\r\n }\r\n\r\n private updateClientIdInRouteQueryParams(): void {\r\n this.router.navigate(\r\n [], \r\n {\r\n relativeTo: this.activatedRoute,\r\n queryParams: { client: this.authenticationService.currentClient }, \r\n queryParamsHandling: 'merge',\r\n }\r\n );\r\n }\r\n\r\n private setPermissionsToPanelOptions() {\r\n this.hasPermissionToWorkers = this.permissionService.hasCardFiles_FPersonals();\r\n this.hasPermissionToVehicles = this.permissionService.hasStatus_FormStatusMap();\r\n this.hasPermissionToVehiclesList = this.permissionService.hasStatus_FormStatusTab();\r\n this.hasAccessToDataSharing = this.permissionService.hasDataSharing();\r\n this.hasPermissionToEvents = this.isEventsPermitted();\r\n this.hasAccessToAreas = this.isAreasManagementPermitted();\r\n this.hasAccessToHandover = !!this.authenticationService.currentClient;\r\n }\r\n\r\n private subToMapPanelVisibility() {\r\n this.addToUnsubscribe(\r\n this.mapPanelService.isMapPanelVisibleSubject.subscribe(isVisible => {\r\n this.isMapPanelVisible = isVisible;\r\n if (isVisible) {\r\n this.hideAreasModule();\r\n this.hideNewsModule();\r\n }\r\n }));\r\n }\r\n\r\n private isAreasManagementPermitted(): boolean {\r\n const hasModuleAreasManagement = this.permissionService.hasAreasManagement();\r\n const hasTrackAreasFormClientAreasMap = this.permissionService.hasTrackAreasFormClientAreasMap();\r\n return hasModuleAreasManagement && hasTrackAreasFormClientAreasMap;\r\n }\r\n\r\n /*Pokazanie newsow jezel minal miesiac*/\r\n public checkMonthlyTask(): void {\r\n const lastRunDateStr = localStorage.getItem(LOCAL_STORAGE_VAR.APP_NEWS_SHOW_ONE_MONTH);\r\n const lastRunDate = lastRunDateStr ? new Date(lastRunDateStr) : null;\r\n const currentDate = new Date();\r\n\r\n if (!lastRunDate || this.isMonthPassedSineShowNewsPanel(lastRunDate, currentDate)) {\r\n localStorage.setItem(LOCAL_STORAGE_VAR.APP_NEWS_SHOW_ONE_MONTH, currentDate.toISOString());\r\n this.isVisibleNewsModule = true;\r\n }\r\n }\r\n\r\n private isMonthPassedSineShowNewsPanel(lastRunDate: Date, currentDate: Date): boolean {\r\n const oneMonthInMs = 30 * 24 * 60 * 60 * 1000;\r\n return (currentDate.getTime() - lastRunDate.getTime()) >= oneMonthInMs;\r\n }\r\n\r\n}\r\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n// THIS CODE IS GENERATED - DO NOT MODIFY.\n (function(global) {\n global.ng ??= {};\n global.ng.common ??= {};\n global.ng.common.locales ??= {};\n const u = undefined;\n function plural(val) {\nconst n = val, i = Math.floor(Math.abs(val)), v = val.toString().replace(/^[^.]*\\.?/, '').length;\n\nif (i === 1 && v === 0)\n return 1;\nif (v === 0 && (i % 10 === Math.floor(i % 10) && (i % 10 >= 2 && i % 10 <= 4) && !(i % 100 >= 12 && i % 100 <= 14)))\n return 3;\nif (v === 0 && (!(i === 1) && (i % 10 === Math.floor(i % 10) && (i % 10 >= 0 && i % 10 <= 1))) || (v === 0 && (i % 10 === Math.floor(i % 10) && (i % 10 >= 5 && i % 10 <= 9)) || v === 0 && (i % 100 === Math.floor(i % 100) && (i % 100 >= 12 && i % 100 <= 14))))\n return 4;\nreturn 5;\n}\n global.ng.common.locales['pl'] = [\"pl\",[[\"a\",\"p\"],[\"AM\",\"PM\"],u],u,[[\"n\",\"p\",\"w\",\"ś\",\"c\",\"p\",\"s\"],[\"niedz.\",\"pon.\",\"wt.\",\"śr.\",\"czw.\",\"pt.\",\"sob.\"],[\"niedziela\",\"poniedziałek\",\"wtorek\",\"środa\",\"czwartek\",\"piątek\",\"sobota\"],[\"nie\",\"pon\",\"wto\",\"śro\",\"czw\",\"pią\",\"sob\"]],[[\"N\",\"P\",\"W\",\"Ś\",\"C\",\"P\",\"S\"],[\"niedz.\",\"pon.\",\"wt.\",\"śr.\",\"czw.\",\"pt.\",\"sob.\"],[\"niedziela\",\"poniedziałek\",\"wtorek\",\"środa\",\"czwartek\",\"piątek\",\"sobota\"],[\"nie\",\"pon\",\"wto\",\"śro\",\"czw\",\"pią\",\"sob\"]],[[\"s\",\"l\",\"m\",\"k\",\"m\",\"c\",\"l\",\"s\",\"w\",\"p\",\"l\",\"g\"],[\"sty\",\"lut\",\"mar\",\"kwi\",\"maj\",\"cze\",\"lip\",\"sie\",\"wrz\",\"paź\",\"lis\",\"gru\"],[\"stycznia\",\"lutego\",\"marca\",\"kwietnia\",\"maja\",\"czerwca\",\"lipca\",\"sierpnia\",\"września\",\"października\",\"listopada\",\"grudnia\"]],[[\"S\",\"L\",\"M\",\"K\",\"M\",\"C\",\"L\",\"S\",\"W\",\"P\",\"L\",\"G\"],[\"sty\",\"lut\",\"mar\",\"kwi\",\"maj\",\"cze\",\"lip\",\"sie\",\"wrz\",\"paź\",\"lis\",\"gru\"],[\"styczeń\",\"luty\",\"marzec\",\"kwiecień\",\"maj\",\"czerwiec\",\"lipiec\",\"sierpień\",\"wrzesień\",\"październik\",\"listopad\",\"grudzień\"]],[[\"p.n.e.\",\"n.e.\"],u,[\"przed naszą erą\",\"naszej ery\"]],1,[6,0],[\"d.MM.y\",\"d MMM y\",\"d MMMM y\",\"EEEE, d MMMM y\"],[\"HH:mm\",\"HH:mm:ss\",\"HH:mm:ss z\",\"HH:mm:ss zzzz\"],[\"{1}, {0}\",u,\"{1} {0}\",u],[\",\",\" \",\";\",\"%\",\"+\",\"-\",\"E\",\"×\",\"‰\",\"∞\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"#,##0.00 ¤\",\"#E0\"],\"PLN\",\"zł\",\"złoty polski\",{\"AUD\":[u,\"$\"],\"CAD\":[u,\"$\"],\"CNY\":[u,\"¥\"],\"GBP\":[u,\"£\"],\"HKD\":[u,\"$\"],\"ILS\":[u,\"₪\"],\"INR\":[u,\"₹\"],\"JPY\":[u,\"¥\"],\"KRW\":[u,\"₩\"],\"MXN\":[u,\"$\"],\"NZD\":[u,\"$\"],\"PHP\":[u,\"₱\"],\"PLN\":[\"zł\"],\"RON\":[u,\"lej\"],\"TWD\":[u,\"NT$\"],\"USD\":[u,\"$\"],\"VND\":[u,\"₫\"]},\"ltr\", plural, [[[\"o półn.\",\"w poł.\",\"rano\",\"przed poł.\",\"po poł.\",\"wiecz.\",\"w nocy\"],[\"o północy\",\"w południe\",\"rano\",\"przed południem\",\"po południu\",\"wieczorem\",\"w nocy\"],u],[[\"półn.\",\"poł.\",\"rano\",\"przedpoł.\",\"popoł.\",\"wiecz.\",\"noc\"],[\"północ\",\"południe\",\"rano\",\"przedpołudnie\",\"popołudnie\",\"wieczór\",\"noc\"],u],[\"00:00\",\"12:00\",[\"06:00\",\"10:00\"],[\"10:00\",\"12:00\"],[\"12:00\",\"18:00\"],[\"18:00\",\"21:00\"],[\"21:00\",\"06:00\"]]]];\n })(globalThis);\n ","import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-offline-dialog',\r\n templateUrl: './offline-dialog.component.html',\r\n})\r\nexport class OfflineDialogComponent {\r\n\r\n onSubmit() {\r\n window.location.reload();\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
Nie masz internetu.
\r\n\r\n
Sprawdź swoje połączenie sieciowe i spróbuj ponownie.
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n","import { AuthenticationRoutesNames } from \"@shared/constans/authentication-routes-names.constans\";\r\n\r\nexport const listOfAddressesWhichIsAvailableInMobileDevice = [\r\n `${ AuthenticationRoutesNames.authenticationModuleName + AuthenticationRoutesNames.share }`,\r\n `${ AuthenticationRoutesNames.share }`,\r\n '/panel/main?shareLinkId',\r\n 'panel/vehicle?shareLinkId',\r\n '/authentication/handover',\r\n '/handover-view',\r\n];\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { listOfAddressesWhichIsAvailableInMobileDevice } from '@src/app/utils/list-of-addresses-which-is-available-in-mobile-device';\r\n\r\n/* info: Pipe sprawdza, czy routerName, który przesyłamy w argumencie metody jest dostępny na liscie listOfAddressesWhichIsAvailableInMobileDevice */\r\n\r\n@Pipe({\r\n name: 'ifAddressIsAvailableOnThePhone'\r\n})\r\nexport class IfAddressIsAvailableOnThePhonePipe implements PipeTransform {\r\n\r\n transform(value: string | undefined): boolean {\r\n if (value) {\r\n const ifAddressIsAvailableInList = listOfAddressesWhichIsAvailableInMobileDevice.some(item => value.includes(item));\r\n return ifAddressIsAvailableInList;\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {environment} from \"@src/environments/environment\";\r\nimport {JavascriptInjectorService} from \"@shared/services/external-scripts/javascript-injector.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HotjarService {\r\n\r\n constructor(private javascriptInjectorService: JavascriptInjectorService) {\r\n }\r\n\r\n tryInject() {\r\n if (environment.hotjarId > 0) {\r\n this.javascriptInjectorService.injectToHtmlHead(this.getHotjarScript());\r\n }\r\n }\r\n\r\n private getHotjarScript(): string {\r\n return `\r\n (function(h,o,t,j,a,r){\r\n h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\r\n h._hjSettings={hjid:${environment.hotjarId},hjsv:6};\r\n a=o.getElementsByTagName('head')[0];\r\n r=o.createElement('script');r.async=1;\r\n r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\r\n a.appendChild(r);\r\n })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');`\r\n }\r\n}\r\n","\r\n \r\n\r\n
\r\n Twój mobilny system operacyjny nie jest wspierany.\r\n Korzystanie z tej strony możliwe jest wyłącznie na nie mobilnych urządzeniach.\r\n
\r\n","import {AfterViewInit, Component, isDevMode, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport {NavigationEnd, Router} from '@angular/router';\r\nimport '@angular/common/locales/global/pl';\r\n\r\nimport {DeviceDetectorService} from \"ngx-device-detector\";\r\nimport {pl} from 'date-fns/locale';\r\nimport setDefaultOptions from 'date-fns/setDefaultOptions';\r\nimport { filter, Observable } from 'rxjs';\r\n\r\nimport {CountryCodeService} from '@commons/services/country.code/country-code.service';\r\n\r\nimport {OfflineDialogComponent} from \"@shared/components/offline-dialog/offline-dialog.component\";\r\nimport {DialogService} from \"@shared/services/dialog.service\";\r\nimport {HotjarService} from '@shared/services/external-scripts/hotjar.service';\r\nimport { IfAddressIsAvailableOnThePhonePipe } from '@shared/pipes/if-address-is-available-on-the-phone.pipe';\r\nimport { TawkToChatService } from '@shared/services/tawk-to-chat.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.less'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [IfAddressIsAvailableOnThePhonePipe],\r\n})\r\nexport class AppComponent implements OnInit, AfterViewInit {\r\n\r\n isMobile = this.deviceDetectorService.isMobile();\r\n isVisibleNotSupportedMobileOsMessage = false;\r\n\r\n public onRouterChange$: Observable = this.router.events.pipe(filter(event => event instanceof NavigationEnd));\r\n\r\n constructor(\r\n private countryCodeService: CountryCodeService,\r\n private router: Router,\r\n private dialogService: DialogService,\r\n private deviceDetectorService: DeviceDetectorService,\r\n private hotjarService: HotjarService,\r\n private ifAddressIsAvailableOnThePhonePipe: IfAddressIsAvailableOnThePhonePipe,\r\n private tawkToChatService: TawkToChatService\r\n ) {\r\n // if (isDevMode())\r\n // this.router.events.subscribe(x => console.log(x));\r\n this.initLibraries();\r\n }\r\n\r\n ngOnInit() {\r\n this.onChangeRoute();\r\n this.dectectOfflineMode();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.subscribeToGoogleAnalytics();\r\n }\r\n\r\n private onChangeRoute(): void {\r\n this.onRouterChange$.subscribe(value => {\r\n if (value) {\r\n const ifMobileAndRouteDontAvailableInMobileDevice = this.isMobile && !this.ifAddressIsAvailableOnThePhonePipe.transform(value.urlAfterRedirects);\r\n if (ifMobileAndRouteDontAvailableInMobileDevice) {\r\n this.openMobileStore();\r\n }\r\n }\r\n });\r\n }\r\n\r\n private initLibraries(): void {\r\n this.setDateFnsDefaultOptions();\r\n this.countryCodeService.loadCodes().subscribe();\r\n this.subscribeToGoogleAnalytics();\r\n this.hotjarService.tryInject();\r\n this.tawkToChatService.onStatusChange();\r\n }\r\n\r\n private setDateFnsDefaultOptions() {\r\n setDefaultOptions({locale: pl})\r\n }\r\n\r\n private dectectOfflineMode() {\r\n window.addEventListener(\"load\", () => {\r\n let showOffline = false;\r\n\r\n window.addEventListener(\"online\", () => showOffline = false);\r\n window.addEventListener(\"offline\", () => {\r\n showOffline = true;\r\n setTimeout(() => {\r\n if (showOffline)\r\n this.dialogService.open(OfflineDialogComponent);\r\n }, 20000);\r\n });\r\n });\r\n }\r\n\r\n private subscribeToGoogleAnalytics() {\r\n if (isDevMode())\r\n return;\r\n\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n (window).ga('set', 'page', event.urlAfterRedirects);\r\n (window).ga('send', 'pageview');\r\n }\r\n });\r\n }\r\n\r\n private openMobileStore() {\r\n const osName = this.deviceDetectorService.os.toLocaleLowerCase();\r\n if (osName.startsWith('android')) {\r\n window.location.replace('https://play.google.com/store/apps/details?id=pl.tekom.mycarbiz');\r\n } else if (osName.startsWith('ios'))\r\n window.location.replace('https://apps.apple.com/pl/app/mycar-business/id1062582464');\r\n else\r\n this.isVisibleNotSupportedMobileOsMessage = true;\r\n }\r\n}\r\n\r\nif (typeof Worker !== 'undefined') {\r\n const worker = new Worker(new URL('./app.worker', import.meta.url));\r\n worker.onmessage = ({ data }) => {\r\n console.log(`page got message: ${data}`);\r\n };\r\n worker.postMessage('hello');\r\n} else {\r\n // Web Workers are not supported in this environment.\r\n}","import { getDefaultOptions, setDefaultOptions as setInternalDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setDefaultOptions\n * @category Common Helpers\n * @summary Set default options including locale.\n * @pure false\n *\n * @description\n * Sets the defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * @param {Object} newOptions - an object with options.\n * @param {Locale} [newOptions.locale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [newOptions.weekStartsOn] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [newOptions.firstWeekContainsDate] - the day of January, which is always in the first week of the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Set global locale:\n * import { es } from 'date-fns/locale'\n * setDefaultOptions({ locale: es })\n * const result = format(new Date(2014, 8, 2), 'PPPP')\n * //=> 'martes, 2 de septiembre de 2014'\n *\n * @example\n * // Start of the week for 2 September 2014:\n * const result = startOfWeek(new Date(2014, 8, 2))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Start of the week for 2 September 2014,\n * // when we set that week starts on Monday by default:\n * setDefaultOptions({ weekStartsOn: 1 })\n * const result = startOfWeek(new Date(2014, 8, 2))\n * //=> Mon Sep 01 2014 00:00:00\n *\n * @example\n * // Manually set options take priority over default options:\n * setDefaultOptions({ weekStartsOn: 1 })\n * const result = startOfWeek(new Date(2014, 8, 2), { weekStartsOn: 0 })\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Remove the option by setting it to `undefined`:\n * setDefaultOptions({ weekStartsOn: 1 })\n * setDefaultOptions({ weekStartsOn: undefined })\n * const result = startOfWeek(new Date(2014, 8, 2))\n * //=> Sun Aug 31 2014 00:00:00\n */\n\nexport default function setDefaultOptions(newOptions) {\n requiredArgs(1, arguments);\n var result = {};\n var defaultOptions = getDefaultOptions();\n\n for (var property in defaultOptions) {\n if (Object.prototype.hasOwnProperty.call(defaultOptions, property)) {\n ;\n result[property] = defaultOptions[property];\n }\n }\n\n for (var _property in newOptions) {\n if (Object.prototype.hasOwnProperty.call(newOptions, _property)) {\n if (newOptions[_property] === undefined) {\n delete result[_property];\n } else {\n ;\n result[_property] = newOptions[_property];\n }\n }\n }\n\n setInternalDefaultOptions(result);\n}","import { NgModule } from '@angular/core';\r\nimport { ScrolledBarComponent } from './scrolled-bar.component';\r\nimport { ScrolledContentDirective } from './scrolled-content.directive';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ScrollBarService } from './scroll-bar.service';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ScrolledBarComponent,\r\n ScrolledContentDirective\r\n ],\r\n exports: [\r\n ScrolledBarComponent,\r\n ScrolledContentDirective\r\n ],\r\n providers: [\r\n ScrollBarService\r\n ]\r\n})\r\nexport class ScrollBarModule { }\r\n","import { FormsModule as NgFormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { DoubleDatePickerComponent } from './double-date-picker/double-date-picker.component';\r\nimport { DatePickerComponent } from './date-picker/date-picker.component';\r\nimport { SearchComponent } from './search/search.component';\r\nimport { SelectComponent } from './select/select.component';\r\nimport { TagPickerComponent } from './tag-picker/tag-picker.component';\r\nimport { TimeComponent } from './time/time.component';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { ButtonComponent } from './button/button.component';\r\nimport { DirectivesModule } from '../directives/directives.module';\r\nimport { BlockFocusOutDirective } from './tag-picker/directives/block-focus-out.directive';\r\nimport { ScrolledListComponent } from './scrolled-list/scrolled-list.component';\r\nimport { ScrolledBarComponent } from './scroll-bar/scrolled-bar.component';\r\nimport { ScrollBarModule } from './scroll-bar/scroll-bar.module';\r\nimport { FormFieldComponent } from './fields/field/form-field.component';\r\nimport { SortTagsPipe } from './tag-picker/pipes/sort-tags.pipe';\r\nimport { ToggleComponent } from './toggle/toggle.component'\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\n\r\n\r\n\r\n/**\r\n * Forms module\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n NgFormsModule,\r\n ReactiveFormsModule,\r\n DirectivesModule,\r\n ScrollBarModule,\r\n TranslateModule\r\n ],\r\n\tdeclarations: [\r\n\t\tDoubleDatePickerComponent,\r\n\t\tDatePickerComponent,\r\n\t\tSearchComponent,\r\n\t\tTagPickerComponent,\r\n\t\tSelectComponent,\r\n\t\tTimeComponent,\r\n\t\tCheckboxComponent,\r\n\t\tButtonComponent,\r\n\t\tBlockFocusOutDirective,\r\n\t\tScrolledListComponent,\r\n\t\tFormFieldComponent,\r\n\t\tSortTagsPipe,\r\n\t\tToggleComponent\r\n\t],\r\n\texports: [\r\n\t\tDoubleDatePickerComponent,\r\n\t\tDatePickerComponent,\r\n\t\tSearchComponent,\r\n\t\tTagPickerComponent,\r\n\t\tSelectComponent,\r\n\t\tTimeComponent,\r\n\t\tCheckboxComponent,\r\n\t\tButtonComponent,\r\n\t\tBlockFocusOutDirective,\r\n\t\tScrolledListComponent,\r\n\t\tFormFieldComponent,\r\n\t\tToggleComponent\r\n\t],\r\n\tproviders: [\r\n\t],\r\n\r\n})\r\nexport class FormsModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\n\r\nconst path = '../../assets/js/worker.js';\r\n\r\n@Injectable()\r\nexport class WorkerService {\r\n\r\n public response: Subject = new Subject();\r\n public result: Subject = new Subject();\r\n private _worker?: Worker;\r\n private isBusy = false;\r\n\r\n request(message: any, force: boolean = false) {\r\n if (force && this.isBusy) {\r\n this._worker?.terminate();\r\n this.process(message);\r\n this.response.next('FORCED START');\r\n }\r\n if (!force && this.isBusy) {\r\n this.response.next('WORKER IS BUSY');\r\n }\r\n if (!this.isBusy) {\r\n this.process(message);\r\n this.response.next('WORKER STARTED');\r\n }\r\n }\r\n\r\n process(message: any) {\r\n this.isBusy = true;\r\n this._worker = new Worker(path);\r\n this._worker.addEventListener('message', (e: MessageEvent) => {\r\n this.result.next(e.data);\r\n });\r\n this._worker.postMessage(message);\r\n\r\n }\r\n\r\n forceStop(): string {\r\n if (this.isBusy === true) {\r\n this._worker?.terminate();\r\n this.isBusy = false;\r\n return 'FORCED STOP';\r\n }\r\n return 'WORKER IS NOT RUNNING';\r\n }\r\n\r\n\r\n\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Observable, map, debounceTime, startWith } from 'rxjs';\r\nimport { combineLatest, distinctUntilChanged, scan } from 'rxjs/operators'; //import combineLatest musi być z 'rxjs/operators' ponieważ bezpośrednio z rxjs to jest 'inna' funkcja\r\n\r\nimport { IScrollService } from '../../interfaces/IScrollService';\r\n\r\n/**\r\n * Help struct.\r\n */\r\nclass Data {\r\n public ratio!: number;\r\n public numObjects!: number;\r\n}\r\n\r\n\r\n/**\r\n * Scroll service.\r\n */\r\n@Injectable()\r\nexport class ScrollService implements IScrollService {\r\n\r\n /**\r\n * Debounce time of scrolling.\r\n */\r\n private readonly DEBOUNCE_TIME: number = 0;\r\n\r\n\r\n /**\r\n * Scroll speed in percent. 100% means that scrolling will be very fast. Must be greater than 25.\r\n */\r\n private readonly SCROLL_SPEED_IN_PERCENT: number = 25;\r\n\r\n\r\n /**\r\n * Service constructor.\r\n */\r\n constructor() { }\r\n\r\n\r\n /**\r\n *\r\n */\r\n public getObjectsToShow$(\r\n objects$: Observable,\r\n scroll$: Observable,\r\n show: number,\r\n startIndex?: number\r\n ): Observable {\r\n\r\n const initial = startIndex || 0;\r\n // if (startIndex && startIndexFieldName) {\r\n // initial = objects$.findIndex(i => i[startIndexFieldName] === startIndex);\r\n // }\r\n\r\n const start$ = this.getStartIndex$(objects$, scroll$, show, initial);\r\n\r\n const sliced$ = objects$.pipe(combineLatest(start$, (objects, start) => {\r\n const end = start + show;\r\n return objects.slice(start, end);\r\n }));\r\n\r\n return sliced$;\r\n }\r\n\r\n\r\n /**\r\n *\r\n */\r\n public getStartIndex$(\r\n objects$: Observable,\r\n scroll$: Observable,\r\n show: number,\r\n initial: number = 0\r\n ): Observable {\r\n\r\n const ratio$ = scroll$.pipe(\r\n map(event => {\r\n const target = event.target as HTMLDivElement;\r\n const factor = target.scrollHeight - target.offsetHeight;\r\n const ratio = (factor === 0) ? 0 : target.scrollTop / factor;\r\n return ratio;\r\n }),\r\n startWith(0),\r\n debounceTime(this.DEBOUNCE_TIME));\r\n\r\n const data$ = ratio$.pipe(combineLatest(objects$, (ratio, objects) =>\r\n { ratio: ratio, numObjects: objects.length }));\r\n\r\n const start$ = data$\r\n .pipe(scan((acc, data) => {\r\n\r\n const hi = 1.0 - (this.SCROLL_SPEED_IN_PERCENT / 100.0);\r\n const lo = 0.0 + (this.SCROLL_SPEED_IN_PERCENT / 100.0);\r\n\r\n if (show > data.numObjects) {\r\n return 0;\r\n } else if (data.ratio >= hi) {\r\n return Math.min(data.numObjects - show, acc + 1);\r\n } else if (data.ratio <= lo) {\r\n return Math.max(0.0, acc - 1);\r\n } else {\r\n return acc;\r\n }\r\n\r\n }, initial),\r\n distinctUntilChanged());\r\n\r\n return start$;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class DataListService {\r\n\r\n private currentResultSet: any[] = [];\r\n private currentResultStream: BehaviorSubject = new BehaviorSubject(new Array());\r\n\r\n private currentStartChunk = 0;\r\n private chunkSize = 10;\r\n private stepSize = 1;\r\n\r\n GetNextChunk(): void {\r\n if (this.currentStartChunk + this.stepSize >= this.currentResultSet.length) {\r\n this.currentStartChunk = this.currentResultSet.length - this.stepSize;\r\n } else {\r\n this.currentStartChunk += this.stepSize;\r\n }\r\n this.SendChunk();\r\n }\r\n GetPrevChunk(): void {\r\n if (this.currentStartChunk - this.stepSize <= 0) {\r\n this.currentStartChunk = 0;\r\n } else {\r\n this.currentStartChunk -= this.stepSize;\r\n }\r\n this.SendChunk();\r\n }\r\n IsFirstChunk(): boolean {\r\n return (this.currentStartChunk === 0);\r\n }\r\n\r\n SetResultSet(result: any[]): void {\r\n // deep copy\r\n this.currentResultSet = JSON.parse(JSON.stringify(result));\r\n\r\n this.currentStartChunk = 0;\r\n\r\n this.SendChunk();\r\n }\r\n\r\n SendChunk(): void {\r\n const chunk = this.currentResultSet.slice(this.currentStartChunk, this.currentStartChunk + this.chunkSize);\r\n\r\n // wyslanie do zczytania\r\n this.currentResultStream.next(chunk);\r\n }\r\n\r\n GetResultSet(): Observable {\r\n return this.currentResultStream.asObservable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class VehicleFullListService {\r\n\r\n /**\r\n * subject dla wartosci chujnikow\r\n */\r\n private inidicatorValueSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {WorkerService} from './worker/worker.service';\r\nimport {ClusterService} from './map/cluster/cluster.service';\r\n\r\nimport {AreaDrawerService} from './map/drawer/area/area-drawer.service';\r\nimport {ClusterDrawerService} from './map/drawer/cluster/cluster-drawer.service';\r\nimport {RouteDrawerService} from './map/drawer/route/route-drawer.service';\r\nimport {EventDrawerService} from './map/drawer/event/event-drawer.service';\r\n\r\nimport {MapService} from './map/map/map.service';\r\nimport {VehicleService} from './vehicle/vehicle.service';\r\nimport {MappingService} from './mapping/mapping.service';\r\nimport {PanelNavigationService} from './navigation/panel-navigation.service';\r\nimport {WebAccessService} from './web.access/web-access.service';\r\nimport {ConfigurationService} from './configuration/configuration.service';\r\nimport {RemoteDataService} from './remote.data/remote-data.service';\r\nimport {NotificationService} from './notification/notification.service';\r\nimport {DriverService} from './driver/driver.service';\r\nimport {ScrollService} from './scroll/scroll.service';\r\nimport {DataListService} from './data.list/data-list.service';\r\nimport {DataListMouseScrollDirective} from './data.list/data-list-mouse-scroll.directive';\r\nimport {PopupRendererService} from './map/renderer/popup-renderer.service';\r\nimport {PopupDrawerService} from './map/drawer/popup/popup-drawer.service';\r\nimport {IconService} from './icon/icon.service';\r\nimport {RouteService} from './route/route.service';\r\nimport {TachoService} from './tacho/tacho.service';\r\nimport {VehicleFullListService} from './full.list/vehicle-full-list.service';\r\nimport {HttpProgressInterceptor} from './http.interceptor/http-progress-interceptor.service';\r\nimport {ProgressService} from './progress/progress.service';\r\nimport {EventService} from './event/event.service';\r\nimport {AreaService} from './area/area.service';\r\nimport {MapConfigService} from './map/config/map-config.service';\r\nimport {CountryCodeService} from './country.code/country-code.service';\r\nimport {MapControlService} from './map/control/map-control.serivce';\r\nimport {CacheService} from './cache/cache.service';\r\nimport {AuthenticationService} from '@shared/services/authentication/authentication.service';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n/**\r\n * Modul glowny wszystkich serwisow\r\n */\r\n@NgModule({\r\n imports: [],\r\n declarations: [\r\n DataListMouseScrollDirective\r\n ],\r\n exports: [\r\n DataListMouseScrollDirective\r\n ],\r\n providers: [\r\n WorkerService,\r\n ClusterService,\r\n MapService,\r\n VehicleService,\r\n AreaDrawerService,\r\n ClusterDrawerService,\r\n RouteDrawerService,\r\n EventDrawerService,\r\n MappingService,\r\n PanelNavigationService,\r\n WebAccessService,\r\n ConfigurationService,\r\n RemoteDataService,\r\n NotificationService,\r\n DriverService,\r\n DataListService,\r\n ScrollService,\r\n PopupRendererService,\r\n PopupDrawerService,\r\n IconService,\r\n RouteService,\r\n TachoService,\r\n VehicleFullListService,\r\n HttpProgressInterceptor,\r\n ProgressService,\r\n EventService,\r\n AreaService,\r\n MapConfigService,\r\n CountryCodeService,\r\n MapControlService,\r\n CacheService,\r\n AuthenticationService,\r\n DatePipe,\r\n ]\r\n})\r\nexport class ServicesModule {\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { FormsModule } from './forms/forms.module';\r\nimport { PipesModule } from './pipes/pipes.module';\r\nimport { ServicesModule } from './services/services.module';\r\nimport { DirectivesModule } from './directives/directives.module';\r\n\r\n/**\r\n * Commons module\r\n */\r\n@NgModule({\r\n\tdeclarations: [\r\n\t],\r\n\timports: [\r\n\t\tFormsModule,\r\n\t\tPipesModule,\r\n\t\tServicesModule,\r\n\t\tDirectivesModule\r\n\t],\r\n\texports: [\r\n\t\tFormsModule,\r\n\t\tPipesModule,\r\n\t\tServicesModule,\r\n\t\tDirectivesModule\r\n\t],\r\n\tproviders: [\r\n\t],\r\n\r\n})\r\nexport class CommonsModule { }\r\n","import {CommonModule} from '@angular/common';\r\nimport {NgModule} from '@angular/core';\r\n\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\n\r\nimport {LeafletModule} from '@asymmetrik/ngx-leaflet';\r\nimport {TableModule} from 'primeng/table';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport {ProgressBarModule} from 'primeng/progressbar';\r\n\r\nimport {MapService} from '@commons/services/map/map/map.service';\r\n\r\nimport {SharedModule} from \"@shared/shared.module\";\r\n\r\nimport {CommonsModule} from '../commons/commons.module';\r\nimport {MapComponent} from './map.component';\r\nimport {MapMainLayerComponent} from './main-layer/map-main-layer.component';\r\nimport {MapControlsComponent} from './controls/map-controls.component';\r\nimport {IconComponent} from './icon/icon.component';\r\nimport { MinimapControlsComponent } from './minimap-controls/minimap-controls.component';\r\nimport { ModalWithParkInformationComponent } from './components/modal-with-park-information/modal-with-park-information.component';\r\nimport { PipesModule } from '@commons/pipes/pipes.module';\r\nimport { LoaderMapComponent } from './components/loader-map/loader-map.component';\r\nimport { ModalEventInformationComponent } from './components/modal-event-information/modal-event-information.component';\r\nimport { ListVehicleBottomComponent } from './components/list-vehicle-bottom/list-vehicle-bottom.component';\r\nimport { CalculateTimeComponent } from './components/list-vehicle-bottom/calculate-time/calculate-time.component';\r\nimport { CalculateSpeedComponent } from './components/list-vehicle-bottom/calculate-speed/calculate-speed.component';\r\nimport { ETollStatusComponent } from './components/list-vehicle-bottom/e-toll-status/e-toll-status.component';\r\nimport { SingalStatusComponent } from './components/list-vehicle-bottom/gps-status/gps-status.component';\r\nimport { FuelStatusComponent } from './components/list-vehicle-bottom/fuel-status/fuel-status.component';\r\nimport { VehicleTextValueControlComponent } from './components/list-vehicle-bottom/vehicle-text-value-control/vehicle-text-value-control.component';\r\nimport { ControlsStatusComponent } from './components/list-vehicle-bottom/controls-status/controls-status.component';\r\nimport { LockStatusComponent } from './components/list-vehicle-bottom/lock-status/lock-status.component';\r\nimport { FilterControlComponent } from '@shared/components/vehicle-list/filter-control/filter-control.component';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { TachoStatusFullListComponent } from './components/list-vehicle-bottom/tacho-status-full-list/tacho-status-full-list.component';\r\nimport { ListFullVehicleColumnConfigComponent } from './components/list-vehicle-bottom/list-full-vehicle-column-config/list-full-vehicle-column-config.component';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n@NgModule({\r\n declarations: [\r\n MapComponent,\r\n MapMainLayerComponent,\r\n MapControlsComponent,\r\n IconComponent,\r\n MinimapControlsComponent,\r\n ModalWithParkInformationComponent,\r\n LoaderMapComponent,\r\n ModalEventInformationComponent,\r\n ListVehicleBottomComponent,\r\n CalculateTimeComponent,\r\n CalculateSpeedComponent,\r\n ETollStatusComponent,\r\n SingalStatusComponent,\r\n FuelStatusComponent,\r\n VehicleTextValueControlComponent,\r\n ControlsStatusComponent,\r\n LockStatusComponent,\r\n TachoStatusFullListComponent,\r\n ListFullVehicleColumnConfigComponent,\r\n ],\r\n imports: [\r\n CommonsModule,\r\n CommonModule,\r\n LeafletModule,\r\n TranslateModule,\r\n SharedModule,\r\n PipesModule,\r\n TableModule,\r\n SkeletonModule,\r\n ProgressBarModule,\r\n FilterControlComponent,\r\n TooltipModule,\r\n InputSwitchModule,\r\n FormsModule,\r\n ButtonModule,\r\n ],\r\n exports: [\r\n MapComponent,\r\n MapControlsComponent\r\n ],\r\n providers: [\r\n MapService\r\n ],\r\n\r\n})\r\nexport class MapModule {\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
","import { Component, OnDestroy, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges, ViewChild, ElementRef, AfterViewInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup, FormArray, FormBuilder, FormControl } from '@angular/forms';\r\n\r\nimport {debounceTime, startWith, Subject, Subscription } from 'rxjs';\r\n\r\nimport { AreaListFilterRequest } from '../../../commons/models/remote.request/AreaListFilterRequest';\r\nimport { ViewMode } from '../list-lite/area-list-lite.component';\r\nimport { Tag } from '../../../commons/models/domain/Tag';\r\nimport { AreaService } from '@commons/services/area/area.service';\r\nimport { SearchThemeEnum } from '@commons/enums/search-theme.enum';\r\n\r\n@Component({\r\n selector: 'tk-area-list-filter',\r\n templateUrl: './area-list-filter.component.html',\r\n styleUrls: ['./area-list-filter.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AreaListFilterComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {\r\n\r\n\r\n @ViewChild('filterBlock') filterBlock?: ElementRef;\r\n\r\n @Output() onHandleOnHeightChanged: EventEmitter = new EventEmitter();\r\n\r\n baseHeight?: number;\r\n\r\n public inputHasFocus = false;\r\n\r\n /**\r\n * View mode\r\n */\r\n @Input() viewMode?: ViewMode;\r\n\r\n /**\r\n * For template\r\n */\r\n public ViewMode = ViewMode;\r\n\r\n /**\r\n * Form\r\n */\r\n public form: FormGroup;\r\n\r\n /**\r\n * Flag indicating whether filter request is being processed\r\n */\r\n public loading = false;\r\n\r\n /**\r\n * Filter request subject\r\n */\r\n public filterRequestSubject: Subject = new Subject();\r\n\r\n /**\r\n * Subscription to stream of form controls value changess\r\n */\r\n private filterRequestSub?: Subscription;\r\n\r\n /**\r\n * Subscription to stream of value changes\r\n */\r\n private formValueChangesSub?: Subscription;\r\n\r\n public searchThemeEnum = SearchThemeEnum;\r\n\r\n /**\r\n * Component constructor\r\n * @param $fb form builder\r\n * @param $area area service\r\n */\r\n constructor(\r\n private $fb: FormBuilder,\r\n private $area: AreaService\r\n ) {\r\n // Prepare form and control\r\n const Phrase = this.$fb.control(null);\r\n const Tags = this.$fb.control([]);\r\n this.form = this.$fb.group({\r\n Phrase: Phrase,\r\n Tags: Tags,\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n\r\n // Subscribe for form value changes and when fired send filter request\r\n this.formValueChangesSub = this.form.valueChanges.pipe(\r\n debounceTime(500),\r\n startWith(this.form.value))\r\n .subscribe(form => {\r\n this.$area.findArea$(form as AreaListFilterRequest);\r\n });\r\n\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n // grey out when edithing\r\n if (changes && changes['viewMode']) {\r\n const viewMode = changes['viewMode'].currentValue;\r\n // When grey-out then should be disabled\r\n const Phrase = this.form.controls['Phrase'];\r\n if (viewMode === ViewMode.Form) {\r\n Phrase.disable();\r\n } else {\r\n Phrase.enable();\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * On destroy lifecycle hook\r\n */\r\n public ngOnDestroy(): void {\r\n\r\n if (this.formValueChangesSub) {\r\n this.formValueChangesSub.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Handles close event with selected tags\r\n * @param selectedTags\r\n */\r\n public handleOnSelectedTags(selectedTags: Tag[]): void {\r\n\r\n this.form.controls['Tags'].setValue(selectedTags);\r\n }\r\n\r\n\r\n /**\r\n * Handles enter event from search input\r\n */\r\n public onSearchEnter(): void {\r\n\r\n this.$area.findArea$(this.form.value as AreaListFilterRequest);\r\n }\r\n\r\n\r\n /**\r\n * Handles enter event from search input\r\n */\r\n public onClearEnter(): void {\r\n\r\n this.$area.findArea$(this.form.value as AreaListFilterRequest);\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.baseHeight = this.filterBlock?.nativeElement.offsetHeight;\r\n }\r\n\r\n\r\n /**\r\n * Handle container change of tags selector\r\n */\r\n public handleOnHeightChanged(h: number) {\r\n setTimeout(() => {\r\n const height = this.filterBlock?.nativeElement.offsetHeight;\r\n let delta = height - this.baseHeight!;\r\n if (delta < 0) {\r\n delta = 0;\r\n }\r\n this.onHandleOnHeightChanged.emit(this.baseHeight! + delta);\r\n }, 100);\r\n }\r\n\r\n\r\n onInputFocus(flag: boolean) {\r\n this.inputHasFocus = flag;\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\r\n
\r\n\r\n
\r\n +\r\n {{'map.new-area' | translate}}\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n","import { Component, OnInit, OnChanges, OnDestroy, Input, Output, EventEmitter, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\r\n\r\nimport { AreaDrawerService } from '@commons/services/map/drawer/area/area-drawer.service';\r\nimport { AreaTypeEnum } from '@commons/enums/area-type.enum';\r\n\r\nenum Step {\r\n Default = 1,\r\n TypeSelection = 2,\r\n Definition = 3\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'tk-area-create',\r\n templateUrl: './area-create.component.html',\r\n styleUrls: ['./area-create.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AreaCreateComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Output() public onCancel: EventEmitter = new EventEmitter();\r\n\r\n /**\r\n * When true component switches to definition view immediately\r\n */\r\n @Input() public goToDefinition: boolean = false;\r\n\r\n /**\r\n * Subject for selected area type communication: create area componenet -> form component\r\n */\r\n @Input() public selectedAreaTypeSubject?: BehaviorSubject;\r\n\r\n\r\n /**\r\n * Subscription to saving done signal stream\r\n */\r\n private savingDoneSub?: Subscription;\r\n\r\n /**\r\n * Subject for pushing steps\r\n */\r\n public stepSubject: Subject = new Subject();\r\n\r\n /**\r\n * Subscription to stream of view mode changes\r\n */\r\n private stepSub?: Subscription;\r\n\r\n /**\r\n * Current step\r\n */\r\n public step: Step = Step.Default;\r\n\r\n /**\r\n * For template\r\n */\r\n public Step = Step;\r\n\r\n /**\r\n * Selected area type\r\n */\r\n public areaType?: AreaTypeEnum;\r\n\r\n /**\r\n * For template\r\n */\r\n public AreaTypeEnum = AreaTypeEnum;\r\n\r\n\r\n /**\r\n * Component constructor\r\n * @param $areaDrawer area drawer service\r\n */\r\n constructor(\r\n private $areaDrawer: AreaDrawerService\r\n ) { }\r\n\r\n\r\n /**\r\n * On init lifecycle hook\r\n */\r\n public ngOnInit(): void {\r\n\r\n // Subscribe for view mode changes and push area type\r\n this.stepSub = this.stepSubject.subscribe(step => {\r\n this.step = step;\r\n if (step === Step.Default || step === Step.Definition) {\r\n console.log(99, this.areaType);\r\n this.selectedAreaTypeSubject?.next(this.areaType!);\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n /**\r\n * On changes lifecycle hook\r\n */\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n\r\n if (changes && changes['goToDefinition'] && changes['goToDefinition'].currentValue) {\r\n this.step = Step.Definition;\r\n } else {\r\n this.step = Step.Default;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * On destroy lifecycle hook\r\n */\r\n public ngOnDestroy(): void {\r\n\r\n this.cancel();\r\n if (this.stepSub) {\r\n this.stepSub.unsubscribe();\r\n }\r\n if (this.savingDoneSub) {\r\n this.savingDoneSub.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Switches to select area type mode\r\n */\r\n public addArea(): void {\r\n\r\n this.stepSubject.next(Step.TypeSelection);\r\n }\r\n\r\n\r\n /**\r\n * Cancels entire adding operation\r\n */\r\n public cancel(): void {\r\n\r\n this.areaType = undefined;\r\n this.stepSubject.next(Step.Default);\r\n\r\n this.onCancel.emit(null);\r\n }\r\n\r\n\r\n /**\r\n * Switches to adding mode according to given area type\r\n * @param actionType area type\r\n */\r\n public selectAreaType(areaType: AreaTypeEnum): void {\r\n this.areaType = areaType;\r\n this.stepSubject.next(Step.Definition);\r\n }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\nimport { AreaDrawerService } from '@commons/services/map/drawer/area/area-drawer.service';\r\nimport { Area } from '../../../../commons/models/domain/Area';\r\n\r\n@Component({\r\n selector: 'tk-area-list-item',\r\n styleUrls: ['./area-list-item.component.less'],\r\n templateUrl: './area-list-item.component.html'\r\n})\r\nexport class AreaListItemComponent {\r\n\r\n /**\r\n * Area to show\r\n */\r\n @Input() public area!: Area;\r\n\r\n @Input() isSelected: boolean = false;\r\n\r\n /**\r\n * Component constructor\r\n * @param $areaDrawer area drawer service\r\n */\r\n constructor(\r\n private $areaService: AreaDrawerService\r\n ) { }\r\n\r\n\r\n public editArea() {\r\n setTimeout(() =>\r\n this.$areaService.selectedAreaSubject.next(this.area), 300);\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
{{ area.Nm }}
\r\n
\r\n
\r\n\r\n
","import { Directive, HostListener, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[clearOnFocus]'\r\n})\r\nexport class ClearOnForcusDirective {\r\n\r\n @Input()\r\n public newAreaNamePlaceHolder?: string;\r\n\r\n @Output()\r\n public onFocusChanged: EventEmitter = new EventEmitter();\r\n\r\n @HostListener('focus', ['$event'])\r\n public onFocus(evt: Event) {\r\n const input = evt.target as HTMLInputElement;\r\n if (this.newAreaNamePlaceHolder && this.newAreaNamePlaceHolder === input.value) {\r\n input.value = '';\r\n this.onFocusChanged.emit(null);\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 \r\n \r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n","import { Component, Input, HostListener, Output, EventEmitter } from '@angular/core';\r\nimport {FormGroup, FormControl, AbstractControl} from '@angular/forms';\r\n\r\nimport { AreaTypeEnum } from '@commons/enums/area-type.enum';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'tk-area-form-input',\r\n styleUrls: ['./area-form-input.component.less'],\r\n templateUrl: './area-form-input.component.html'\r\n})\r\nexport class AreaFormInputComponent {\r\n\r\n /**\r\n * Filter form\r\n */\r\n @Input() public control!: AbstractControl;\r\n\r\n /**\r\n * Area type enum\r\n */\r\n @Input() public areaType!: AreaTypeEnum;\r\n\r\n\r\n @Input() public newAreaNamePlaceHolder!: string;\r\n\r\n /**\r\n * Clears form's phrase\r\n */\r\n public onClear(): void {\r\n\r\n // Clear phrase and send filter request\r\n this.control?.setValue('');\r\n this.control?.markAsDirty();\r\n }\r\n\r\n\r\n /**\r\n *\r\n */\r\n public getAreaIconTypeClass(): any {\r\n\r\n return {\r\n 'area-form-input__type-icon--polygon': this.areaType === AreaTypeEnum.Polygon,\r\n 'area-form-input__type-icon--circle': this.areaType === AreaTypeEnum.Circle,\r\n 'area-form-input__type-icon--line': this.areaType === AreaTypeEnum.Line\r\n };\r\n }\r\n\r\n public onFocusChanged() {\r\n this.control?.setValue('');\r\n this.control?.markAsDirty();\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 {{'areas.remove' | translate}} \"{{area.Nm}}\"?\r\n
\r\n\r\n
\r\n {{'areas.remove-desc' | translate}}\r\n
\r\n\r\n
\r\n {{'labels.yes' | translate}}\r\n {{'labels.cancel' | translate | titlecase}}\r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit, Input, EventEmitter, Output, ViewEncapsulation } from '@angular/core';\r\nimport { AreaService } from '@commons/services/area/area.service';\r\nimport { Area } from '../../../commons/models/domain/Area';\r\nimport { NotificationService } from '@commons/services/notification/notification.service';\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: 'tk-area-delete',\r\n templateUrl: './area-delete.component.html',\r\n styleUrls: ['./area-delete.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AreaDeleteComponent implements OnInit {\r\n\r\n @Input() public area!: Area;\r\n\r\n @Output() public onDelete: EventEmitter = new EventEmitter();\r\n\r\n public showDeleteModal = false;\r\n\r\n public inProgress = false;\r\n private confirmationTrans = '';\r\n constructor(\r\n private $service: AreaService,\r\n private $msg: NotificationService,\r\n private translateService: TranslateService\r\n ) {\r\n this.translateService.get('areas.remove-confirmation').subscribe(t => this.confirmationTrans = t);\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n deleteArea() {\r\n this.showDeleteModal = true;\r\n }\r\n\r\n confirm() {\r\n this.inProgress = true;\r\n this.$service.deleteAreaDetails$(this.area!.Id).subscribe(result => {\r\n this.inProgress = false;\r\n this.showDeleteModal = false;\r\n this.$msg.showSuccess(this.confirmationTrans);\r\n this.onDelete.emit(null);\r\n }, error => this.inProgress = false);\r\n }\r\n\r\n close() {\r\n this.showDeleteModal = false;\r\n }\r\n\r\n deny() {\r\n this.showDeleteModal = false;\r\n }\r\n}\r\n","
\r\n\r\n \r\n \r\n\r\n \r\n
\r\n {{'map.width' | translate}}\r\n
\r\n \r\n \r\n \r\n \r\n {{ form.controls['Th'].value }} {{'measure-unit.meter-short' | translate}}\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 \r\n \r\n {{'labels.save' | translate | titlecase}}\r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n","import { Component, Input, HostListener, Output, EventEmitter, OnInit, OnDestroy, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup, FormControl, FormBuilder, Validators, FormArray } from '@angular/forms';\r\n\r\nimport { BehaviorSubject, debounceTime, filter, Subscription } from 'rxjs';\r\n\r\nimport { AREA_COORDS_VALIDATOR } from '@commons/forms/validators/area-coords-validator.function';\r\nimport { AreaTypeEnum } from '@commons/enums/area-type.enum';\r\nimport { Point } from '../../../commons/models/domain/Point';\r\nimport { Area } from '../../../commons/models/domain/Area';\r\nimport { Tag } from '../../../commons/models/domain/Tag';\r\nimport { AreaDrawerService, State as AreaDrawerState } from '@commons/services/map/drawer/area/area-drawer.service';\r\nimport { AreaService } from '@commons/services/area/area.service';\r\nimport { NotificationService } from '@commons/services/notification/notification.service';\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: 'tk-area-form',\r\n styleUrls: ['./area-form.component.less'],\r\n templateUrl: './area-form.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AreaFormComponent implements OnInit, OnDestroy {\r\n\r\n /**\r\n * Area\r\n */\r\n @Input() public area?: Area;\r\n\r\n /**\r\n * Subject for selected area type communication: create area componenet -> form component\r\n */\r\n @Input() public selectedAreaTypeSubject?: BehaviorSubject;\r\n\r\n /**\r\n * Subject for saved area communication: form component -> create area component\r\n */\r\n @Output() onSave: EventEmitter = new EventEmitter();\r\n\r\n\r\n @Output() onDelete: EventEmitter = new EventEmitter();\r\n\r\n /**\r\n * Filter form\r\n */\r\n public form: FormGroup;\r\n\r\n /**\r\n * Thickness interval in meters\r\n */\r\n private readonly THICKNESS_INTERVAL_IN_METERS = 5;\r\n\r\n private readonly MINIMAL_THICKNESS_IN_METERS = 10;\r\n\r\n /**\r\n * Subsription to selected area type stream\r\n */\r\n private selectedAreaTypeSub?: Subscription;\r\n\r\n /**\r\n * Subscription for drawn area\r\n */\r\n private drawnAreaSub: Subscription;\r\n\r\n /**\r\n * Subscription to stream of value changes\r\n */\r\n private readonly formValueChangesSub: Subscription;\r\n\r\n /**\r\n * Coords\r\n */\r\n private coords?: Point[];\r\n\r\n /**\r\n * For template\r\n */\r\n public AreaTypeEnum = AreaTypeEnum;\r\n\r\n /**\r\n *\r\n */\r\n public get isSavingEnabled(): boolean {\r\n return true;// this.form.valid && this.form.dirty;\r\n }\r\n\r\n /**\r\n * Name for just created area\r\n */\r\n public newAreaNamePlaceHolder = '';\r\n\r\n /**\r\n * Component constructor\r\n * @param $fb form builder\r\n * @param $webAccess web access service\r\n * @param $areaDrawer area drawer service\r\n */\r\n constructor(\r\n private $fb: FormBuilder,\r\n private $area: AreaService,\r\n private $areaDrawer: AreaDrawerService,\r\n private $msg: NotificationService,\r\n private translateService: TranslateService,\r\n ) {\r\n this.translateService.get('map.new-area').subscribe(t => this.newAreaNamePlaceHolder = t);\r\n\r\n // Prepare form and control\r\n this.form = this.$fb.group({\r\n Id: [null],\r\n Nm: [this.newAreaNamePlaceHolder, Validators.required],\r\n Th: [this.MINIMAL_THICKNESS_IN_METERS, Validators.required],\r\n Tp: [null, Validators.required],\r\n Coords: [[], AREA_COORDS_VALIDATOR],\r\n Tg: [[]],\r\n });\r\n\r\n // Subscribe for form value changes\r\n this.formValueChangesSub = this.form.valueChanges.pipe(debounceTime(200)).subscribe(value => {\r\n console.log('!!!!!!', value);\r\n this.$areaDrawer.remove();\r\n this.$areaDrawer.setArea(value as Area, true); // inEdition = true\r\n this.$areaDrawer.draw();\r\n });\r\n\r\n // Subscribe for drawn area\r\n this.drawnAreaSub = this.$areaDrawer.drawnArea$.pipe(debounceTime(200)).subscribe(area => {\r\n console.log(1234, area);\r\n this.area = area;\r\n this.form.patchValue(this.area, { emitEvent: false });\r\n this.form.markAsDirty();\r\n });\r\n }\r\n\r\n\r\n /**\r\n * On init lifecycle hook\r\n */\r\n public ngOnInit(): void {\r\n\r\n this.$areaDrawer.areaDrawerState = AreaDrawerState.Default;\r\n\r\n if (this.area) {\r\n console.log(321, this.area);\r\n this.form.patchValue(this.area);\r\n } else {\r\n console.log(43, this.selectedAreaTypeSubject?.value);\r\n this.form.markAsDirty();\r\n this.selectedAreaTypeSub = this.selectedAreaTypeSubject!\r\n .pipe(filter(areaType => areaType != null))\r\n .subscribe(areaType => {\r\n this.form.controls['Tp'].setValue(areaType);\r\n });\r\n }\r\n }\r\n\r\n\r\n /**\r\n * On destroy lifecycle hook\r\n */\r\n public ngOnDestroy(): void {\r\n\r\n if (this.formValueChangesSub) {\r\n this.drawnAreaSub.unsubscribe();\r\n }\r\n if (this.formValueChangesSub) {\r\n this.formValueChangesSub.unsubscribe();\r\n }\r\n if (this.selectedAreaTypeSub) {\r\n this.selectedAreaTypeSub.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Substracts thickness\r\n */\r\n public subThickness(): void {\r\n\r\n const oldValue = this.form.controls['Th'].value;\r\n let newValue = oldValue - this.THICKNESS_INTERVAL_IN_METERS;\r\n\r\n if (newValue <= this.MINIMAL_THICKNESS_IN_METERS) {\r\n newValue = this.MINIMAL_THICKNESS_IN_METERS;\r\n }\r\n\r\n this.form.controls['Th'].setValue(newValue);\r\n this.form.markAsDirty();\r\n\r\n }\r\n\r\n\r\n /**\r\n * Adds thickness\r\n */\r\n public addThickness(): void {\r\n\r\n const oldValue = this.form.controls['Th'].value;\r\n const newValue = oldValue + this.THICKNESS_INTERVAL_IN_METERS;\r\n this.form.controls['Th'].setValue(newValue);\r\n this.form.markAsDirty();\r\n }\r\n\r\n\r\n /**\r\n * Handles close event with selected tags\r\n * @param selectedTags\r\n */\r\n public handleOnSelectedTags(selectedTags: Tag[]): void {\r\n\r\n this.form.controls['Tg'].setValue(selectedTags);\r\n this.form.markAsDirty();\r\n }\r\n\r\n /**\r\n * Saves area\r\n */\r\n public save(): void {\r\n\r\n if (!this.isSavingEnabled) {\r\n return;\r\n }\r\n\r\n\r\n // saveOrUpdate\r\n const area = this.form.getRawValue();\r\n\r\n this.$area.saveAreaDetails$(area)\r\n .subscribe(_area => {\r\n this.$msg.showSuccess('Dane obszaru zapisano poprawnie.');\r\n this.onSave.emit(_area);\r\n this.form.markAsPristine();\r\n });\r\n }\r\n\r\n public onDeleteDone() {\r\n this.onDelete.emit(this.area);\r\n }\r\n}\r\n\r\n","import {isDevMode, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\r\n\r\nimport {SharedModule} from \"@shared/shared.module\";\r\nimport {InputTextModule} from 'primeng/inputtext';\r\nimport {PasswordModule} from 'primeng/password';\r\n\r\nimport {ProfileDataComponent} from './components/profile-data/profile-data.component';\r\nimport {ChangePasswordComponent} from './components/change-password/change-password.component';\r\nimport {ProfileComponent} from './routes/profile/profile.component';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport { AccountDataFormComponent } from './components/account-data-form/account-data-form.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ProfileDataComponent,\r\n ChangePasswordComponent,\r\n ProfileComponent,\r\n AccountDataFormComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TranslateModule,\r\n InputTextModule,\r\n PasswordModule,\r\n ],\r\n exports: [\r\n ProfileComponent\r\n ]\r\n})\r\nexport class UserProfileModule {\r\n constructor() {\r\n if (isDevMode())\r\n console.log('UserProfileModule');\r\n }\r\n}\r\n","import {isDevMode, NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\r\n\r\nimport {SharedModule} from \"@shared/shared.module\";\r\n\r\nimport {HelpComponent} from './routes/help/help.component';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\n\r\n@NgModule({\r\n declarations: [\r\n HelpComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TranslateModule\r\n ],\r\n exports: [\r\n HelpComponent\r\n ]\r\n})\r\nexport class HelpModule {\r\n constructor() {\r\n if (isDevMode())\r\n console.info('HelpModule');\r\n }\r\n}\r\n","import { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, inject, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChild, ViewChild, ContentChildren, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { uuid, getOuterWidth, isDate, findSingle, getFocusableElements, hasClass, getIndex, find, isNotEmpty, addStyle, appendChild, absolutePosition, relativePosition, addClass, blockBodyScroll, unblockBodyScroll, setAttribute, isTouchDevice } from '@primeuix/utils';\nimport * as i1 from 'primeng/api';\nimport { TranslationKeys, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Button } from 'primeng/button';\nimport { ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, TimesIcon, CalendarIcon } from 'primeng/icons';\nimport { InputText } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-datepicker {\nposition: relative;\n display: inline-flex;\n max-width: 100%;\n}\n\n.p-datepicker-input {\n flex: 1 1 auto;\n width: 1%;\n}\n\n.p-datepicker:has(.p-datepicker-dropdown) .p-datepicker-input {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n}\n\n.p-datepicker-dropdown {\n cursor: pointer;\n display: inline-flex;\n cursor: pointer;\n user-select: none;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n width: ${dt('datepicker.dropdown.width')};\n border-start-end-radius: ${dt('datepicker.dropdown.border.radius')};\n border-end-end-radius: ${dt('datepicker.dropdown.border.radius')};\n background: ${dt('datepicker.dropdown.background')};\n border: 1px solid ${dt('datepicker.dropdown.border.color')};\n border-left: 0 none;\n color: ${dt('datepicker.dropdown.color')};\n transition: background ${dt('datepicker.transition.duration')}, color ${dt('datepicker.transition.duration')}, border-color ${dt('datepicker.transition.duration')}, outline-color ${dt('datepicker.transition.duration')};\n outline-color: transparent;\n}\n\n.p-datepicker-dropdown:not(:disabled):hover {\n background: ${dt('datepicker.dropdown.hover.background')};\n border-color: ${dt('datepicker.dropdown.hover.border.color')};\n color: ${dt('datepicker.dropdown.hover.color')};\n}\n\n.p-datepicker-dropdown:not(:disabled):active {\n background: ${dt('datepicker.dropdown.active.background')};\n border-color: ${dt('datepicker.dropdown.active.border.color')};\n color: ${dt('datepicker.dropdown.active.color')};\n}\n\n.p-datepicker-dropdown:focus-visible {\n box-shadow: ${dt('datepicker.dropdown.focus.ring.shadow')};\n outline: ${dt('datepicker.dropdown.focus.ring.width')} ${dt('datepicker.dropdown.focus.ring.style')} ${dt('datepicker.dropdown.focus.ring.color')};\n outline-offset: ${dt('datepicker.dropdown.focus.ring.offset')};\n}\n\n.p-datepicker:has(.p-datepicker-input-icon-container) {\n position: relative;\n}\n\n.p-datepicker:has(.p-datepicker-input-icon-container) .p-datepicker-input {\n padding-right: calc((${dt('form.field.padding.x')} * 2) + ${dt('icon.size')});\n}\n\n.p-datepicker-input-icon-container {\n cursor: pointer;\n position: absolute;\n top: 50%;\n right: ${dt('form.field.padding.x')};\n margin-top: calc(-1 * (${dt('icon.size')} / 2));\n color: ${dt('datepicker.input.icon.color')};\n}\n\n.p-datepicker-fluid {\n display: flex;\n}\n\n.p-datepicker-fluid .p-datepicker-input {\n width: 1%;\n}\n\n.p-datepicker .p-datepicker-panel {\n min-width: 100%;\n}\n\n.p-datepicker-panel {\n position: absolute;\n width: auto;\n padding: ${dt('datepicker.panel.padding')};\n background: ${dt('datepicker.panel.background')};\n color: ${dt('datepicker.panel.color')};\n border: 1px solid ${dt('datepicker.panel.border.color')};\n border-radius: ${dt('datepicker.panel.border.radius')};\n box-shadow: ${dt('datepicker.panel.shadow')};\n}\n\n.p-datepicker-panel-inline {\n display: inline-block;\n overflow-x: auto;\n box-shadow: none;\n}\n\n.p-datepicker-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ${dt('datepicker.header.padding')};\n font-weight: ${dt('datepicker.header.font.weight')};\n background: ${dt('datepicker.header.background')};\n color: ${dt('datepicker.header.color')};\n border-bottom: 1px solid ${dt('datepicker.header.border.color')};\n}\n\n.p-datepicker-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${dt('datepicker.title.gap')};\n font-weight: ${dt('datepicker.title.font.weight')};\n}\n\n.p-datepicker-select-year,\n.p-datepicker-select-month {\n border: none;\n background: transparent;\n margin: 0;\n cursor: pointer;\n font-weight: inherit;\n transition: background ${dt('datepicker.transition.duration')}, color ${dt('datepicker.transition.duration')}, border-color ${dt('datepicker.transition.duration')}, outline-color ${dt('datepicker.transition.duration')}, box-shadow ${dt('datepicker.transition.duration')};\n}\n\n.p-datepicker-select-month {\n padding: ${dt('datepicker.select.month.padding')};\n color: ${dt('datepicker.select.month.color')};\n border-radius: ${dt('datepicker.select.month.border.radius')};\n}\n\n.p-datepicker-select-year {\n padding: ${dt('datepicker.select.year.padding')};\n color: ${dt('datepicker.select.year.color')};\n border-radius: ${dt('datepicker.select.year.border.radius')};\n}\n\n.p-datepicker-select-month:enabled:hover {\n background: ${dt('datepicker.select.month.hover.background')};\n color: ${dt('datepicker.select.month.hover.color')};\n}\n\n.p-datepicker-select-year:enabled:hover {\n background: ${dt('datepicker.select.year.hover.background')};\n color: ${dt('datepicker.select.year.hover.color')};\n}\n\n.p-datepicker-calendar-container {\n display: flex;\n}\n\n.p-datepicker-calendar-container .p-datepicker-calendar {\n flex: 1 1 auto;\n border-left: 1px solid ${dt('datepicker.group.border.color')};\n padding-right: ${dt('datepicker.group.gap')};\n padding-left: ${dt('datepicker.group.gap')};\n}\n\n.p-datepicker-calendar-container .p-datepicker-calendar:first-child {\n padding-left: 0;\n border-left: 0 none;\n}\n\n.p-datepicker-calendar-container .p-datepicker-calendar:last-child {\n padding-right: 0;\n}\n\n.p-datepicker-day-view {\n width: 100%;\n border-collapse: collapse;\n font-size: 1rem;\n margin: ${dt('datepicker.day.view.margin')};\n}\n\n.p-datepicker-weekday-cell {\n padding: ${dt('datepicker.week.day.padding')};\n}\n\n.p-datepicker-weekday {\n font-weight: ${dt('datepicker.week.day.font.weight')};\n color: ${dt('datepicker.week.day.color')};\n}\n\n.p-datepicker-day-cell {\n padding: ${dt('datepicker.date.padding')};\n}\n\n.p-datepicker-day {\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n margin: 0 auto;\n overflow: hidden;\n position: relative;\n width: ${dt('datepicker.date.width')};\n height: ${dt('datepicker.date.height')};\n border-radius: ${dt('datepicker.date.border.radius')};\n transition: background ${dt('datepicker.transition.duration')}, color ${dt('datepicker.transition.duration')}, border-color ${dt('datepicker.transition.duration')},\n box-shadow ${dt('datepicker.transition.duration')}, outline-color ${dt('datepicker.transition.duration')};\n border: 1px solid transparent;\n outline-color: transparent;\n color: ${dt('datepicker.date.color')};\n}\n\n.p-datepicker-day:not(.p-datepicker-day-selected):not(.p-disabled):hover {\n background: ${dt('datepicker.date.hover.background')};\n color: ${dt('datepicker.date.hover.color')};\n}\n\n.p-datepicker-day:focus-visible {\n box-shadow: ${dt('datepicker.date.focus.ring.shadow')};\n outline: ${dt('datepicker.date.focus.ring.width')} ${dt('datepicker.date.focus.ring.style')} ${dt('datepicker.date.focus.ring.color')};\n outline-offset: ${dt('datepicker.date.focus.ring.offset')};\n}\n\n.p-datepicker-day-selected {\n background: ${dt('datepicker.date.selected.background')};\n color: ${dt('datepicker.date.selected.color')};\n}\n\n.p-datepicker-day-selected-range {\n background: ${dt('datepicker.date.range.selected.background')};\n color: ${dt('datepicker.date.range.selected.color')};\n}\n\n.p-datepicker-today > .p-datepicker-day {\n background: ${dt('datepicker.today.background')};\n color: ${dt('datepicker.today.color')};\n}\n\n.p-datepicker-today > .p-datepicker-day-selected {\n background: ${dt('datepicker.date.selected.background')};\n color: ${dt('datepicker.date.selected.color')};\n}\n\n.p-datepicker-today > .p-datepicker-day-selected-range {\n background: ${dt('datepicker.date.range.selected.background')};\n color: ${dt('datepicker.date.range.selected.color')};\n}\n\n.p-datepicker-weeknumber {\n text-align: center\n}\n\n.p-datepicker-month-view {\n margin: ${dt('datepicker.month.view.margin')};\n}\n\n.p-datepicker-month {\n width: 33.3%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n padding: ${dt('datepicker.month.padding')};\n transition: background ${dt('datepicker.transition.duration')}, color ${dt('datepicker.transition.duration')}, border-color ${dt('datepicker.transition.duration')}, box-shadow ${dt('datepicker.transition.duration')}, outline-color ${dt('datepicker.transition.duration')};\n border-radius: ${dt('datepicker.month.border.radius')};\n outline-color: transparent;\n color: ${dt('datepicker.date.color')};\n}\n\n.p-datepicker-month:not(.p-disabled):not(.p-datepicker-month-selected):hover {\n color: ${dt('datepicker.date.hover.color')};\n background: ${dt('datepicker.date.hover.background')};\n}\n\n.p-datepicker-month-selected {\n color: ${dt('datepicker.date.selected.color')};\n background: ${dt('datepicker.date.selected.background')};\n}\n\n.p-datepicker-month:not(.p-disabled):focus-visible {\n box-shadow: ${dt('datepicker.date.focus.ring.shadow')};\n outline: ${dt('datepicker.date.focus.ring.width')} ${dt('datepicker.date.focus.ring.style')} ${dt('datepicker.date.focus.ring.color')};\n outline-offset: ${dt('datepicker.date.focus.ring.offset')};\n}\n\n.p-datepicker-year-view {\n margin: ${dt('datepicker.year.view.margin')};\n}\n\n.p-datepicker-year {\n width: 50%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n padding: ${dt('datepicker.year.padding')};\n transition: background ${dt('datepicker.transition.duration')}, color ${dt('datepicker.transition.duration')}, border-color ${dt('datepicker.transition.duration')}, box-shadow ${dt('datepicker.transition.duration')}, outline-color ${dt('datepicker.transition.duration')};\n border-radius: ${dt('datepicker.year.border.radius')};\n outline-color: transparent;\n color: ${dt('datepicker.date.color')};\n}\n\n.p-datepicker-year:not(.p-disabled):not(.p-datepicker-year-selected):hover {\n color: ${dt('datepicker.date.hover.color')};\n background: ${dt('datepicker.date.hover.background')};\n}\n\n.p-datepicker-year-selected {\n color: ${dt('datepicker.date.selected.color')};\n background: ${dt('datepicker.date.selected.background')};\n}\n\n.p-datepicker-year:not(.p-disabled):focus-visible {\n box-shadow: ${dt('datepicker.date.focus.ring.shadow')};\n outline: ${dt('datepicker.date.focus.ring.width')} ${dt('datepicker.date.focus.ring.style')} ${dt('datepicker.date.focus.ring.color')};\n outline-offset: ${dt('datepicker.date.focus.ring.offset')};\n}\n\n.p-datepicker-buttonbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: ${dt('datepicker.buttonbar.padding')};\n border-top: 1px solid ${dt('datepicker.buttonbar.border.color')};\n}\n\n.p-datepicker-buttonbar .p-button {\n width: auto;\n}\n\n.p-datepicker-time-picker {\n display: flex;\n justify-content: center;\n align-items: center;\n border-top: 1px solid ${dt('datepicker.time.picker.border.color')};\n padding: 0;\n gap: ${dt('datepicker.time.picker.gap')};\n}\n\n.p-datepicker-calendar-container + .p-datepicker-time-picker {\n padding: ${dt('datepicker.time.picker.padding')};\n}\n\n.p-datepicker-time-picker > div {\n display: flex;\n align-items: center;\n flex-direction: column;\n gap: ${dt('datepicker.time.picker.button.gap')};\n}\n\n.p-datepicker-time-picker span {\n font-size: 1rem;\n}\n\n.p-datepicker-timeonly .p-datepicker-time-picker {\n border-top: 0 none;\n}\n\n.p-datepicker-calendar:not(:first-child):not(:last-child) .p-datepicker-header {\n justify-content: center;\n}\n\n/* For PrimeNG */\n\np-calendar.ng-invalid.ng-dirty .p-datepicker.p-inputwrapper .p-inputtext{\n border-color: ${dt('inputtext.invalid.border.color')};\n}\n\np-datepicker.ng-invalid.ng-dirty .p-datepicker.p-inputwrapper .p-inputtext{\n border-color: ${dt('inputtext.invalid.border.color')};\n}\n`;\nconst inlineStyles = {\n root: ({ props }) => ({ position: props.appendTo === 'self' ? 'relative' : undefined })\n};\nconst classes = {\n root: ({ instance }) => ({\n 'p-datepicker p-component p-inputwrapper': true,\n 'p-datepicker-fluid': instance.hasFluid,\n 'p-inputwrapper-filled': instance.filled,\n 'p-inputwrapper-focus': instance.focus,\n 'p-focus': instance.focus || instance.overlayVisible\n }),\n pcInput: 'p-datepicker-input',\n dropdown: 'p-datepicker-dropdown',\n inputIconContainer: 'p-datepicker-input-icon-container',\n inputIcon: 'p-datepicker-input-icon',\n panel: ({ instance }) => ({\n 'p-datepicker-panel p-component': true,\n 'p-datepicker-panel-inline': instance.inline,\n 'p-disabled': instance.disabled,\n 'p-datepicker-timeonly': instance.timeOnly\n }),\n calendarContainer: 'p-datepicker-calendar-container',\n calendar: 'p-datepicker-calendar',\n header: 'p-datepicker-header',\n pcPrevButton: 'p-datepicker-prev-button',\n title: 'p-datepicker-title',\n selectMonth: 'p-datepicker-select-month',\n selectYear: 'p-datepicker-select-year',\n decade: 'p-datepicker-decade',\n pcNextButton: 'p-datepicker-next-button',\n dayView: 'p-datepicker-day-view',\n weekHeader: 'p-datepicker-weekheader p-disabled',\n weekNumber: 'p-datepicker-weeknumber',\n weekLabelContainer: 'p-datepicker-weeklabel-container p-disabled',\n weekDayCell: 'p-datepicker-weekday-cell',\n weekDay: 'p-datepicker-weekday',\n dayCell: ({ date }) => [\n 'p-datepicker-day-cell',\n {\n 'p-datepicker-other-month': date.otherMonth,\n 'p-datepicker-today': date.today\n }\n ],\n day: ({ instance, date }) => {\n let selectedDayClass = '';\n if (instance.isRangeSelection() && instance.isSelected(date) && date.selectable) {\n selectedDayClass = date.day === instance.value[0].getDate() || date.day === instance.value[1].getDate() ? 'p-datepicker-day-selected' : 'p-datepicker-day-selected-range';\n }\n return {\n 'p-datepicker-day': true,\n 'p-datepicker-day-selected': !instance.isRangeSelection() && instance.isSelected(date) && date.selectable,\n 'p-disabled': instance.disabled || !date.selectable,\n [selectedDayClass]: true\n };\n },\n monthView: 'p-datepicker-month-view',\n month: ({ instance, props, month, index }) => [\n 'p-datepicker-month',\n {\n 'p-datepicker-month-selected': instance.isMonthSelected(index),\n 'p-disabled': props.disabled || !month.selectable\n }\n ],\n yearView: 'p-datepicker-year-view',\n year: ({ instance, props, year }) => [\n 'p-datepicker-year',\n {\n 'p-datepicker-year-selected': instance.isYearSelected(year.value),\n 'p-disabled': props.disabled || !year.selectable\n }\n ],\n timePicker: 'p-datepicker-time-picker',\n hourPicker: 'p-datepicker-hour-picker',\n pcIncrementButton: 'p-datepicker-increment-button',\n pcDecrementButton: 'p-datepicker-decrement-button',\n separator: 'p-datepicker-separator',\n minutePicker: 'p-datepicker-minute-picker',\n secondPicker: 'p-datepicker-second-picker',\n ampmPicker: 'p-datepicker-ampm-picker',\n buttonbar: 'p-datepicker-buttonbar',\n pcTodayButton: 'p-datepicker-today-button',\n pcClearButton: 'p-datepicker-clear-button'\n};\nclass CalendarStyle extends BaseStyle {\n name = 'datepicker';\n theme = theme;\n classes = classes;\n inlineStyles = inlineStyles;\n static ɵfac = /*@__PURE__*/ (() => { let ɵCalendarStyle_BaseFactory; return function CalendarStyle_Factory(__ngFactoryType__) { return (ɵCalendarStyle_BaseFactory || (ɵCalendarStyle_BaseFactory = i0.ɵɵgetInheritedFactory(CalendarStyle)))(__ngFactoryType__ || CalendarStyle); }; })();\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CalendarStyle, factory: CalendarStyle.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CalendarStyle, [{\n type: Injectable\n }], null, null); })();\n\nconst _c0 = [\"date\"];\nconst _c1 = [\"header\"];\nconst _c2 = [\"footer\"];\nconst _c3 = [\"disabledDate\"];\nconst _c4 = [\"decade\"];\nconst _c5 = [\"previousicon\"];\nconst _c6 = [\"nexticon\"];\nconst _c7 = [\"triggericon\"];\nconst _c8 = [\"clearicon\"];\nconst _c9 = [\"decrementicon\"];\nconst _c10 = [\"incrementicon\"];\nconst _c11 = [\"inputicon\"];\nconst _c12 = [\"container\"];\nconst _c13 = [\"inputfield\"];\nconst _c14 = [\"contentWrapper\"];\nconst _c15 = [[[\"p-header\"]], [[\"p-footer\"]]];\nconst _c16 = [\"p-header\", \"p-footer\"];\nconst _c17 = a0 => ({ clickCallBack: a0 });\nconst _c18 = a0 => ({ \"p-datepicker-input-icon\": a0 });\nconst _c19 = (a0, a1) => ({ showTransitionParams: a0, hideTransitionParams: a1 });\nconst _c20 = a0 => ({ value: \"visible\", params: a0 });\nconst _c21 = a0 => ({ visibility: a0 });\nconst _c22 = a0 => ({ $implicit: a0 });\nconst _c23 = (a0, a1) => ({ \"p-datepicker-day-cell\": true, \"p-datepicker-other-month\": a0, \"p-datepicker-today\": a1 });\nconst _c24 = (a0, a1) => ({ \"p-datepicker-month\": true, \"p-datepicker-month-selected\": a0, \"p-disabled\": a1 });\nconst _c25 = (a0, a1) => ({ \"p-datepicker-year\": true, \"p-datepicker-year-selected\": a0, \"p-disabled\": a1 });\nfunction Calendar_ng_template_2_ng_container_2_TimesIcon_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"TimesIcon\", 11);\n i0.ɵɵlistener(\"click\", function Calendar_ng_template_2_ng_container_2_TimesIcon_1_Template_TimesIcon_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.clear()); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n i0.ɵɵclassMap(\"p-datepicker-clear-icon\");\n} }\nfunction Calendar_ng_template_2_ng_container_2_span_2_1_ng_template_0_Template(rf, ctx) { }\nfunction Calendar_ng_template_2_ng_container_2_span_2_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Calendar_ng_template_2_ng_container_2_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Calendar_ng_template_2_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 12);\n i0.ɵɵlistener(\"click\", function Calendar_ng_template_2_ng_container_2_span_2_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.clear()); });\n i0.ɵɵtemplate(1, Calendar_ng_template_2_ng_container_2_span_2_1_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.clearIconTemplate || ctx_r1._clearIconTemplate);\n} }\nfunction Calendar_ng_template_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Calendar_ng_template_2_ng_container_2_TimesIcon_1_Template, 1, 2, \"TimesIcon\", 9)(2, Calendar_ng_template_2_ng_container_2_span_2_Template, 2, 1, \"span\", 10);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.clearIconTemplate && !ctx_r1._clearIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.clearIconTemplate || ctx_r1._clearIconTemplate);\n} }\nfunction Calendar_ng_template_2_button_3_span_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 16);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r1.icon);\n} }\nfunction Calendar_ng_template_2_button_3_ng_container_2_CalendarIcon_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"CalendarIcon\");\n} }\nfunction Calendar_ng_template_2_button_3_ng_container_2_2_ng_template_0_Template(rf, ctx) { }\nfunction Calendar_ng_template_2_button_3_ng_container_2_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Calendar_ng_template_2_button_3_ng_container_2_2_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Calendar_ng_template_2_button_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Calendar_ng_template_2_button_3_ng_container_2_CalendarIcon_1_Template, 1, 0, \"CalendarIcon\", 7)(2, Calendar_ng_template_2_button_3_ng_container_2_2_Template, 1, 0, null, 13);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.triggerIconTemplate && !ctx_r1._triggerIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.triggerIconTemplate || ctx_r1._triggerIconTemplate);\n} }\nfunction Calendar_ng_template_2_button_3_Template(rf, ctx) { if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 14);\n i0.ɵɵlistener(\"click\", function Calendar_ng_template_2_button_3_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r5); i0.ɵɵnextContext(); const inputfield_r6 = i0.ɵɵreference(1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onButtonClick($event, inputfield_r6)); });\n i0.ɵɵtemplate(1, Calendar_ng_template_2_button_3_span_1_Template, 1, 1, \"span\", 15)(2, Calendar_ng_template_2_button_3_ng_container_2_Template, 3, 2, \"ng-container\", 7);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n let tmp_6_0;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.iconButtonAriaLabel)(\"aria-expanded\", (tmp_6_0 = ctx_r1.overlayVisible) !== null && tmp_6_0 !== undefined ? tmp_6_0 : false)(\"aria-controls\", ctx_r1.overlayVisible ? ctx_r1.panelId : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.icon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.icon);\n} }\nfunction Calendar_ng_template_2_ng_container_4_CalendarIcon_2_Template(rf, ctx) { if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"CalendarIcon\", 20);\n i0.ɵɵlistener(\"click\", function Calendar_ng_template_2_ng_container_4_CalendarIcon_2_Template_CalendarIcon_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onButtonClick($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(1, _c18, ctx_r1.showOnFocus));\n} }\nfunction Calendar_ng_template_2_ng_container_4_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Calendar_ng_template_2_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"span\", 17);\n i0.ɵɵtemplate(2, Calendar_ng_template_2_ng_container_4_CalendarIcon_2_Template, 1, 3, \"CalendarIcon\", 18)(3, Calendar_ng_template_2_ng_container_4_ng_container_3_Template, 1, 0, \"ng-container\", 19);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.inputIconTemplate && !ctx_r1._inputIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.inputIconTemplate || ctx_r1._inputIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(3, _c17, ctx_r1.onButtonClick.bind(ctx_r1)));\n} }\nfunction Calendar_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 6, 1);\n i0.ɵɵlistener(\"focus\", function Calendar_ng_template_2_Template_input_focus_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputFocus($event)); })(\"keydown\", function Calendar_ng_template_2_Template_input_keydown_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputKeydown($event)); })(\"click\", function Calendar_ng_template_2_Template_input_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputClick()); })(\"blur\", function Calendar_ng_template_2_Template_input_blur_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputBlur($event)); })(\"input\", function Calendar_ng_template_2_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onUserInput($event)); });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, Calendar_ng_template_2_ng_container_2_Template, 3, 2, \"ng-container\", 7)(3, Calendar_ng_template_2_button_3_Template, 3, 6, \"button\", 8)(4, Calendar_ng_template_2_ng_container_4_Template, 4, 5, \"ng-container\", 7);\n} if (rf & 2) {\n let tmp_17_0;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.inputStyleClass);\n i0.ɵɵproperty(\"value\", ctx_r1.inputFieldValue)(\"readonly\", ctx_r1.readonlyInput)(\"ngStyle\", ctx_r1.inputStyle)(\"ngClass\", \"p-datepicker-input\")(\"placeholder\", ctx_r1.placeholder || \"\")(\"disabled\", ctx_r1.disabled)(\"pAutoFocus\", ctx_r1.autofocus)(\"variant\", ctx_r1.variant)(\"fluid\", ctx_r1.hasFluid);\n i0.ɵɵattribute(\"id\", ctx_r1.inputId)(\"name\", ctx_r1.name)(\"required\", ctx_r1.required)(\"aria-required\", ctx_r1.required)(\"aria-expanded\", (tmp_17_0 = ctx_r1.overlayVisible) !== null && tmp_17_0 !== undefined ? tmp_17_0 : false)(\"aria-controls\", ctx_r1.overlayVisible ? ctx_r1.panelId : null)(\"aria-labelledby\", ctx_r1.ariaLabelledBy)(\"aria-label\", ctx_r1.ariaLabel)(\"tabindex\", ctx_r1.tabindex)(\"inputmode\", ctx_r1.touchUI ? \"off\" : null);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showClear && !ctx_r1.disabled && ctx_r1.value != null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showIcon && ctx_r1.iconDisplay === \"button\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.iconDisplay === \"input\" && ctx_r1.showIcon);\n} }\nfunction Calendar_div_3_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Calendar_div_3_ng_container_4_div_2_ChevronLeftIcon_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronLeftIcon\");\n} }\nfunction Calendar_div_3_ng_container_4_div_2_span_4_1_ng_template_0_Template(rf, ctx) { }\nfunction Calendar_div_3_ng_container_4_div_2_span_4_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Calendar_div_3_ng_container_4_div_2_span_4_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Calendar_div_3_ng_container_4_div_2_span_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtemplate(1, Calendar_div_3_ng_container_4_div_2_span_4_1_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.previousIconTemplate || ctx_r1._previousIconTemplate);\n} }\nfunction Calendar_div_3_ng_container_4_div_2_button_6_Template(rf, ctx) { if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 37);\n i0.ɵɵlistener(\"click\", function Calendar_div_3_ng_container_4_div_2_button_6_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.switchToMonthView($event)); })(\"keydown\", function Calendar_div_3_ng_container_4_div_2_button_6_Template_button_keydown_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const month_r11 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"disabled\", ctx_r1.switchViewButtonDisabled());\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"chooseMonth\"));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.getMonthName(month_r11.month), \" \");\n} }\nfunction Calendar_div_3_ng_container_4_div_2_button_7_Template(rf, ctx) { if (rf & 1) {\n const _r12 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 38);\n i0.ɵɵlistener(\"click\", function Calendar_div_3_ng_container_4_div_2_button_7_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.switchToYearView($event)); })(\"keydown\", function Calendar_div_3_ng_container_4_div_2_button_7_Template_button_keydown_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const month_r11 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"disabled\", ctx_r1.switchViewButtonDisabled());\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"chooseYear\"));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.getYear(month_r11), \" \");\n} }\nfunction Calendar_div_3_ng_container_4_div_2_span_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(5);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate2(\"\", ctx_r1.yearPickerValues()[0], \" - \", ctx_r1.yearPickerValues()[ctx_r1.yearPickerValues().length - 1], \"\");\n} }\nfunction Calendar_div_3_ng_container_4_div_2_span_8_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Calendar_div_3_ng_container_4_div_2_span_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 39);\n i0.ɵɵtemplate(1, Calendar_div_3_ng_container_4_div_2_span_8_ng_container_1_Template, 2, 2, \"ng-container\", 7)(2, Calendar_div_3_ng_container_4_div_2_span_8_ng_container_2_Template, 1, 0, \"ng-container\", 19);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.decadeTemplate && ctx_r1._decadeTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.decadeTemplate || ctx_r1._decadeTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(3, _c22, ctx_r1.yearPickerValues));\n} }\nfunction Calendar_div_3_ng_container_4_div_2_ChevronRightIcon_10_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronRightIcon\");\n} }\nfunction Calendar_div_3_ng_container_4_div_2_span_11_1_ng_template_0_Template(rf, ctx) { }\nfunction Calendar_div_3_ng_container_4_div_2_span_11_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Calendar_div_3_ng_container_4_div_2_span_11_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Calendar_div_3_ng_container_4_div_2_span_11_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtemplate(1, Calendar_div_3_ng_container_4_div_2_span_11_1_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.nextIconTemplate || !ctx_r1._nextIconTemplate);\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_th_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"th\", 44)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(5);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.getTranslation(\"weekHeader\"));\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_th_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"th\", 45)(1, \"span\", 46);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const weekDay_r13 = ctx.$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(weekDay_r13);\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 49)(1, \"span\", 50);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const j_r14 = i0.ɵɵnextContext().index;\n const month_r11 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", month_r11.weekNumbers[j_r14], \" \");\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const date_r16 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(date_r16.day);\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_3_ng_container_1_Template, 1, 0, \"ng-container\", 19);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const date_r16 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(6);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.dateTemplate || ctx_r1._dateTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c22, date_r16));\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_4_ng_container_1_Template, 1, 0, \"ng-container\", 19);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const date_r16 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(6);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.disabledDateTemplate || ctx_r1._disabledDateTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c22, date_r16));\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_div_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 53);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const date_r16 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", date_r16.day, \" \");\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n const _r15 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"span\", 51);\n i0.ɵɵlistener(\"click\", function Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_Template_span_click_1_listener($event) { i0.ɵɵrestoreView(_r15); const date_r16 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.onDateSelect($event, date_r16)); })(\"keydown\", function Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_Template_span_keydown_1_listener($event) { i0.ɵɵrestoreView(_r15); const date_r16 = i0.ɵɵnextContext().$implicit; const i_r17 = i0.ɵɵnextContext(3).index; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onDateCellKeydown($event, date_r16, i_r17)); });\n i0.ɵɵtemplate(2, Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_2_Template, 2, 1, \"ng-container\", 7)(3, Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_3_Template, 2, 4, \"ng-container\", 7)(4, Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_ng_container_4_Template, 2, 4, \"ng-container\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_div_5_Template, 2, 1, \"div\", 52);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const date_r16 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(6);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx_r1.dayClass(date_r16));\n i0.ɵɵattribute(\"data-date\", ctx_r1.formatDateKey(ctx_r1.formatDateMetaToDate(date_r16)));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.dateTemplate && !ctx_r1._dateTemplate && (date_r16.selectable || !ctx_r1.disabledDateTemplate && !ctx_r1._disabledDateTemplate));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", date_r16.selectable || !ctx_r1.disabledDateTemplate && !ctx_r1._disabledDateTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !date_r16.selectable);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isSelected(date_r16));\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 16);\n i0.ɵɵtemplate(1, Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_ng_container_1_Template, 6, 6, \"ng-container\", 7);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const date_r16 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(6);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(3, _c23, date_r16.otherMonth, date_r16.today));\n i0.ɵɵattribute(\"aria-label\", date_r16.day);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", date_r16.otherMonth ? ctx_r1.showOtherMonths : true);\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_tr_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\");\n i0.ɵɵtemplate(1, Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_1_Template, 3, 1, \"td\", 47)(2, Calendar_div_3_ng_container_4_div_2_table_12_tr_6_td_2_Template, 2, 6, \"td\", 48);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const week_r18 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(5);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showWeek);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", week_r18);\n} }\nfunction Calendar_div_3_ng_container_4_div_2_table_12_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"table\", 40)(1, \"thead\")(2, \"tr\");\n i0.ɵɵtemplate(3, Calendar_div_3_ng_container_4_div_2_table_12_th_3_Template, 3, 1, \"th\", 41)(4, Calendar_div_3_ng_container_4_div_2_table_12_th_4_Template, 3, 1, \"th\", 42);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(5, \"tbody\");\n i0.ɵɵtemplate(6, Calendar_div_3_ng_container_4_div_2_table_12_tr_6_Template, 3, 2, \"tr\", 43);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const month_r11 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showWeek);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.weekDays);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", month_r11.dates);\n} }\nfunction Calendar_div_3_ng_container_4_div_2_Template(rf, ctx) { if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 28)(1, \"div\", 29)(2, \"p-button\", 30);\n i0.ɵɵlistener(\"keydown\", function Calendar_div_3_ng_container_4_div_2_Template_p_button_keydown_2_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"onClick\", function Calendar_div_3_ng_container_4_div_2_Template_p_button_onClick_2_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onPrevButtonClick($event)); });\n i0.ɵɵtemplate(3, Calendar_div_3_ng_container_4_div_2_ChevronLeftIcon_3_Template, 1, 0, \"ChevronLeftIcon\", 7)(4, Calendar_div_3_ng_container_4_div_2_span_4_Template, 2, 1, \"span\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 31);\n i0.ɵɵtemplate(6, Calendar_div_3_ng_container_4_div_2_button_6_Template, 2, 3, \"button\", 32)(7, Calendar_div_3_ng_container_4_div_2_button_7_Template, 2, 3, \"button\", 33)(8, Calendar_div_3_ng_container_4_div_2_span_8_Template, 3, 5, \"span\", 34);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(9, \"p-button\", 35);\n i0.ɵɵlistener(\"keydown\", function Calendar_div_3_ng_container_4_div_2_Template_p_button_keydown_9_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"onClick\", function Calendar_div_3_ng_container_4_div_2_Template_p_button_onClick_9_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onNextButtonClick($event)); });\n i0.ɵɵtemplate(10, Calendar_div_3_ng_container_4_div_2_ChevronRightIcon_10_Template, 1, 0, \"ChevronRightIcon\", 7)(11, Calendar_div_3_ng_container_4_div_2_span_11_Template, 2, 1, \"span\", 7);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(12, Calendar_div_3_ng_container_4_div_2_table_12_Template, 7, 3, \"table\", 36);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const i_r17 = ctx.index;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(12, _c21, i_r17 === 0 ? \"visible\" : \"hidden\"));\n i0.ɵɵattribute(\"aria-label\", ctx_r1.prevIconAriaLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.previousIconTemplate && !ctx_r1._previousIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.previousIconTemplate || !ctx_r1._previousIconTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentView === \"date\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentView !== \"year\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentView === \"year\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(14, _c21, i_r17 === ctx_r1.months.length - 1 ? \"visible\" : \"hidden\"));\n i0.ɵɵattribute(\"aria-label\", ctx_r1.nextIconAriaLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.decadeTemplate && !ctx_r1._decadeTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.nextIconTemplate || !ctx_r1._nextIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentView === \"date\");\n} }\nfunction Calendar_div_3_ng_container_4_div_3_span_1_div_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 53);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const m_r21 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", m_r21, \" \");\n} }\nfunction Calendar_div_3_ng_container_4_div_3_span_1_Template(rf, ctx) { if (rf & 1) {\n const _r19 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 56);\n i0.ɵɵlistener(\"click\", function Calendar_div_3_ng_container_4_div_3_span_1_Template_span_click_0_listener($event) { const i_r20 = i0.ɵɵrestoreView(_r19).index; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onMonthSelect($event, i_r20)); })(\"keydown\", function Calendar_div_3_ng_container_4_div_3_span_1_Template_span_keydown_0_listener($event) { const i_r20 = i0.ɵɵrestoreView(_r19).index; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onMonthCellKeydown($event, i_r20)); });\n i0.ɵɵtext(1);\n i0.ɵɵtemplate(2, Calendar_div_3_ng_container_4_div_3_span_1_div_2_Template, 2, 1, \"div\", 52);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const m_r21 = ctx.$implicit;\n const i_r20 = ctx.index;\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(3, _c24, ctx_r1.isMonthSelected(i_r20), ctx_r1.isMonthDisabled(i_r20)));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", m_r21, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isMonthSelected(i_r20));\n} }\nfunction Calendar_div_3_ng_container_4_div_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 54);\n i0.ɵɵtemplate(1, Calendar_div_3_ng_container_4_div_3_span_1_Template, 3, 6, \"span\", 55);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.monthPickerValues());\n} }\nfunction Calendar_div_3_ng_container_4_div_4_span_1_div_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 53);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const y_r23 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", y_r23, \" \");\n} }\nfunction Calendar_div_3_ng_container_4_div_4_span_1_Template(rf, ctx) { if (rf & 1) {\n const _r22 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 56);\n i0.ɵɵlistener(\"click\", function Calendar_div_3_ng_container_4_div_4_span_1_Template_span_click_0_listener($event) { const y_r23 = i0.ɵɵrestoreView(_r22).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onYearSelect($event, y_r23)); })(\"keydown\", function Calendar_div_3_ng_container_4_div_4_span_1_Template_span_keydown_0_listener($event) { const y_r23 = i0.ɵɵrestoreView(_r22).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onYearCellKeydown($event, y_r23)); });\n i0.ɵɵtext(1);\n i0.ɵɵtemplate(2, Calendar_div_3_ng_container_4_div_4_span_1_div_2_Template, 2, 1, \"div\", 52);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const y_r23 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(3, _c25, ctx_r1.isYearSelected(y_r23), ctx_r1.isYearDisabled(y_r23)));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", y_r23, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isYearSelected(y_r23));\n} }\nfunction Calendar_div_3_ng_container_4_div_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 57);\n i0.ɵɵtemplate(1, Calendar_div_3_ng_container_4_div_4_span_1_Template, 3, 6, \"span\", 55);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.yearPickerValues());\n} }\nfunction Calendar_div_3_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 24);\n i0.ɵɵtemplate(2, Calendar_div_3_ng_container_4_div_2_Template, 13, 16, \"div\", 25);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, Calendar_div_3_ng_container_4_div_3_Template, 2, 1, \"div\", 26)(4, Calendar_div_3_ng_container_4_div_4_Template, 2, 1, \"div\", 27);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.months);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentView === \"month\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentView === \"year\");\n} }\nfunction Calendar_div_3_div_5_ChevronUpIcon_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronUpIcon\");\n} }\nfunction Calendar_div_3_div_5_4_ng_template_0_Template(rf, ctx) { }\nfunction Calendar_div_3_div_5_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Calendar_div_3_div_5_4_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Calendar_div_3_div_5_ng_container_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1, \"0\");\n i0.ɵɵelementContainerEnd();\n} }\nfunction Calendar_div_3_div_5_ChevronDownIcon_9_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\");\n} }\nfunction Calendar_div_3_div_5_10_ng_template_0_Template(rf, ctx) { }\nfunction Calendar_div_3_div_5_10_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Calendar_div_3_div_5_10_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Calendar_div_3_div_5_ChevronUpIcon_16_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronUpIcon\");\n} }\nfunction Calendar_div_3_div_5_17_ng_template_0_Template(rf, ctx) { }\nfunction Calendar_div_3_div_5_17_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Calendar_div_3_div_5_17_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Calendar_div_3_div_5_ng_container_19_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1, \"0\");\n i0.ɵɵelementContainerEnd();\n} }\nfunction Calendar_div_3_div_5_ChevronDownIcon_22_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\");\n} }\nfunction Calendar_div_3_div_5_ng_container_23_1_ng_template_0_Template(rf, ctx) { }\nfunction Calendar_div_3_div_5_ng_container_23_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Calendar_div_3_div_5_ng_container_23_1_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Calendar_div_3_div_5_ng_container_23_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Calendar_div_3_div_5_ng_container_23_1_Template, 1, 0, null, 13);\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.decrementIconTemplate || ctx_r1._decrementIconTemplate);\n} }\nfunction Calendar_div_3_div_5_div_24_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 61)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.timeSeparator);\n} }\nfunction Calendar_div_3_div_5_div_25_ChevronUpIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronUpIcon\");\n} }\nfunction Calendar_div_3_div_5_div_25_3_ng_template_0_Template(rf, ctx) { }\nfunction Calendar_div_3_div_5_div_25_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Calendar_div_3_div_5_div_25_3_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Calendar_div_3_div_5_div_25_ng_container_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1, \"0\");\n i0.ɵɵelementContainerEnd();\n} }\nfunction Calendar_div_3_div_5_div_25_ChevronDownIcon_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\");\n} }\nfunction Calendar_div_3_div_5_div_25_9_ng_template_0_Template(rf, ctx) { }\nfunction Calendar_div_3_div_5_div_25_9_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Calendar_div_3_div_5_div_25_9_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Calendar_div_3_div_5_div_25_Template(rf, ctx) { if (rf & 1) {\n const _r25 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 66)(1, \"p-button\", 60);\n i0.ɵɵlistener(\"keydown\", function Calendar_div_3_div_5_div_25_Template_p_button_keydown_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"keydown.enter\", function Calendar_div_3_div_5_div_25_Template_p_button_keydown_enter_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.incrementSecond($event)); })(\"keydown.space\", function Calendar_div_3_div_5_div_25_Template_p_button_keydown_space_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.incrementSecond($event)); })(\"mousedown\", function Calendar_div_3_div_5_div_25_Template_p_button_mousedown_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseDown($event, 2, 1)); })(\"mouseup\", function Calendar_div_3_div_5_div_25_Template_p_button_mouseup_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.enter\", function Calendar_div_3_div_5_div_25_Template_p_button_keyup_enter_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.space\", function Calendar_div_3_div_5_div_25_Template_p_button_keyup_space_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"mouseleave\", function Calendar_div_3_div_5_div_25_Template_p_button_mouseleave_1_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseLeave()); });\n i0.ɵɵtemplate(2, Calendar_div_3_div_5_div_25_ChevronUpIcon_2_Template, 1, 0, \"ChevronUpIcon\", 7)(3, Calendar_div_3_div_5_div_25_3_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\");\n i0.ɵɵtemplate(5, Calendar_div_3_div_5_div_25_ng_container_5_Template, 2, 0, \"ng-container\", 7);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"p-button\", 60);\n i0.ɵɵlistener(\"keydown\", function Calendar_div_3_div_5_div_25_Template_p_button_keydown_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"keydown.enter\", function Calendar_div_3_div_5_div_25_Template_p_button_keydown_enter_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.decrementSecond($event)); })(\"keydown.space\", function Calendar_div_3_div_5_div_25_Template_p_button_keydown_space_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.decrementSecond($event)); })(\"mousedown\", function Calendar_div_3_div_5_div_25_Template_p_button_mousedown_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseDown($event, 2, -1)); })(\"mouseup\", function Calendar_div_3_div_5_div_25_Template_p_button_mouseup_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.enter\", function Calendar_div_3_div_5_div_25_Template_p_button_keyup_enter_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.space\", function Calendar_div_3_div_5_div_25_Template_p_button_keyup_space_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"mouseleave\", function Calendar_div_3_div_5_div_25_Template_p_button_mouseleave_7_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseLeave()); });\n i0.ɵɵtemplate(8, Calendar_div_3_div_5_div_25_ChevronDownIcon_8_Template, 1, 0, \"ChevronDownIcon\", 7)(9, Calendar_div_3_div_5_div_25_9_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"nextSecond\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.incrementIconTemplate && !ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.incrementIconTemplate || ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentSecond < 10);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.currentSecond);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"prevSecond\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.decrementIconTemplate && !ctx_r1._decrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.decrementIconTemplate || ctx_r1._decrementIconTemplate);\n} }\nfunction Calendar_div_3_div_5_div_26_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 61)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.timeSeparator);\n} }\nfunction Calendar_div_3_div_5_div_27_ChevronUpIcon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronUpIcon\");\n} }\nfunction Calendar_div_3_div_5_div_27_3_ng_template_0_Template(rf, ctx) { }\nfunction Calendar_div_3_div_5_div_27_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Calendar_div_3_div_5_div_27_3_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Calendar_div_3_div_5_div_27_ChevronDownIcon_7_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"ChevronDownIcon\");\n} }\nfunction Calendar_div_3_div_5_div_27_8_ng_template_0_Template(rf, ctx) { }\nfunction Calendar_div_3_div_5_div_27_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵtemplate(0, Calendar_div_3_div_5_div_27_8_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction Calendar_div_3_div_5_div_27_Template(rf, ctx) { if (rf & 1) {\n const _r26 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 67)(1, \"p-button\", 68);\n i0.ɵɵlistener(\"keydown\", function Calendar_div_3_div_5_div_27_Template_p_button_keydown_1_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"onClick\", function Calendar_div_3_div_5_div_27_Template_p_button_onClick_1_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleAMPM($event)); })(\"keydown.enter\", function Calendar_div_3_div_5_div_27_Template_p_button_keydown_enter_1_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleAMPM($event)); });\n i0.ɵɵtemplate(2, Calendar_div_3_div_5_div_27_ChevronUpIcon_2_Template, 1, 0, \"ChevronUpIcon\", 7)(3, Calendar_div_3_div_5_div_27_3_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\");\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"p-button\", 69);\n i0.ɵɵlistener(\"keydown\", function Calendar_div_3_div_5_div_27_Template_p_button_keydown_6_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"click\", function Calendar_div_3_div_5_div_27_Template_p_button_click_6_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleAMPM($event)); })(\"keydown.enter\", function Calendar_div_3_div_5_div_27_Template_p_button_keydown_enter_6_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleAMPM($event)); });\n i0.ɵɵtemplate(7, Calendar_div_3_div_5_div_27_ChevronDownIcon_7_Template, 1, 0, \"ChevronDownIcon\", 7)(8, Calendar_div_3_div_5_div_27_8_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"am\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.incrementIconTemplate && !ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.incrementIconTemplate || ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.pm ? \"PM\" : \"AM\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"pm\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.decrementIconTemplate && !ctx_r1._decrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.decrementIconTemplate || ctx_r1._decrementIconTemplate);\n} }\nfunction Calendar_div_3_div_5_Template(rf, ctx) { if (rf & 1) {\n const _r24 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 58)(1, \"div\", 59)(2, \"p-button\", 60);\n i0.ɵɵlistener(\"keydown\", function Calendar_div_3_div_5_Template_p_button_keydown_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"keydown.enter\", function Calendar_div_3_div_5_Template_p_button_keydown_enter_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.incrementHour($event)); })(\"keydown.space\", function Calendar_div_3_div_5_Template_p_button_keydown_space_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.incrementHour($event)); })(\"mousedown\", function Calendar_div_3_div_5_Template_p_button_mousedown_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseDown($event, 0, 1)); })(\"mouseup\", function Calendar_div_3_div_5_Template_p_button_mouseup_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.enter\", function Calendar_div_3_div_5_Template_p_button_keyup_enter_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.space\", function Calendar_div_3_div_5_Template_p_button_keyup_space_2_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"mouseleave\", function Calendar_div_3_div_5_Template_p_button_mouseleave_2_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseLeave()); });\n i0.ɵɵtemplate(3, Calendar_div_3_div_5_ChevronUpIcon_3_Template, 1, 0, \"ChevronUpIcon\", 7)(4, Calendar_div_3_div_5_4_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"span\");\n i0.ɵɵtemplate(6, Calendar_div_3_div_5_ng_container_6_Template, 2, 0, \"ng-container\", 7);\n i0.ɵɵtext(7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"p-button\", 60);\n i0.ɵɵlistener(\"keydown\", function Calendar_div_3_div_5_Template_p_button_keydown_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"keydown.enter\", function Calendar_div_3_div_5_Template_p_button_keydown_enter_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.decrementHour($event)); })(\"keydown.space\", function Calendar_div_3_div_5_Template_p_button_keydown_space_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.decrementHour($event)); })(\"mousedown\", function Calendar_div_3_div_5_Template_p_button_mousedown_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseDown($event, 0, -1)); })(\"mouseup\", function Calendar_div_3_div_5_Template_p_button_mouseup_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.enter\", function Calendar_div_3_div_5_Template_p_button_keyup_enter_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.space\", function Calendar_div_3_div_5_Template_p_button_keyup_space_8_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"mouseleave\", function Calendar_div_3_div_5_Template_p_button_mouseleave_8_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseLeave()); });\n i0.ɵɵtemplate(9, Calendar_div_3_div_5_ChevronDownIcon_9_Template, 1, 0, \"ChevronDownIcon\", 7)(10, Calendar_div_3_div_5_10_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(11, \"div\", 61)(12, \"span\");\n i0.ɵɵtext(13);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(14, \"div\", 62)(15, \"p-button\", 60);\n i0.ɵɵlistener(\"keydown\", function Calendar_div_3_div_5_Template_p_button_keydown_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"keydown.enter\", function Calendar_div_3_div_5_Template_p_button_keydown_enter_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.incrementMinute($event)); })(\"keydown.space\", function Calendar_div_3_div_5_Template_p_button_keydown_space_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.incrementMinute($event)); })(\"mousedown\", function Calendar_div_3_div_5_Template_p_button_mousedown_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseDown($event, 1, 1)); })(\"mouseup\", function Calendar_div_3_div_5_Template_p_button_mouseup_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.enter\", function Calendar_div_3_div_5_Template_p_button_keyup_enter_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.space\", function Calendar_div_3_div_5_Template_p_button_keyup_space_15_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"mouseleave\", function Calendar_div_3_div_5_Template_p_button_mouseleave_15_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseLeave()); });\n i0.ɵɵtemplate(16, Calendar_div_3_div_5_ChevronUpIcon_16_Template, 1, 0, \"ChevronUpIcon\", 7)(17, Calendar_div_3_div_5_17_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(18, \"span\");\n i0.ɵɵtemplate(19, Calendar_div_3_div_5_ng_container_19_Template, 2, 0, \"ng-container\", 7);\n i0.ɵɵtext(20);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(21, \"p-button\", 60);\n i0.ɵɵlistener(\"keydown\", function Calendar_div_3_div_5_Template_p_button_keydown_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"keydown.enter\", function Calendar_div_3_div_5_Template_p_button_keydown_enter_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.decrementMinute($event)); })(\"keydown.space\", function Calendar_div_3_div_5_Template_p_button_keydown_space_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.decrementMinute($event)); })(\"mousedown\", function Calendar_div_3_div_5_Template_p_button_mousedown_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseDown($event, 1, -1)); })(\"mouseup\", function Calendar_div_3_div_5_Template_p_button_mouseup_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.enter\", function Calendar_div_3_div_5_Template_p_button_keyup_enter_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"keyup.space\", function Calendar_div_3_div_5_Template_p_button_keyup_space_21_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseUp($event)); })(\"mouseleave\", function Calendar_div_3_div_5_Template_p_button_mouseleave_21_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimePickerElementMouseLeave()); });\n i0.ɵɵtemplate(22, Calendar_div_3_div_5_ChevronDownIcon_22_Template, 1, 0, \"ChevronDownIcon\", 7)(23, Calendar_div_3_div_5_ng_container_23_Template, 2, 1, \"ng-container\", 7);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(24, Calendar_div_3_div_5_div_24_Template, 3, 1, \"div\", 63)(25, Calendar_div_3_div_5_div_25_Template, 10, 8, \"div\", 64)(26, Calendar_div_3_div_5_div_26_Template, 3, 1, \"div\", 63)(27, Calendar_div_3_div_5_div_27_Template, 9, 7, \"div\", 65);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"nextHour\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.incrementIconTemplate && !ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.incrementIconTemplate || ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentHour < 10);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.currentHour);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"prevHour\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.decrementIconTemplate && !ctx_r1._decrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.decrementIconTemplate || ctx_r1._decrementIconTemplate);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx_r1.timeSeparator);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"nextMinute\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.incrementIconTemplate && !ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.incrementIconTemplate || ctx_r1._incrementIconTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.currentMinute < 10);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.currentMinute);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.getTranslation(\"prevMinute\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.decrementIconTemplate && !ctx_r1._decrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.decrementIconTemplate || ctx_r1._decrementIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showSeconds);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showSeconds);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.hourFormat == \"12\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.hourFormat == \"12\");\n} }\nfunction Calendar_div_3_div_6_Template(rf, ctx) { if (rf & 1) {\n const _r27 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 70)(1, \"p-button\", 71);\n i0.ɵɵlistener(\"keydown\", function Calendar_div_3_div_6_Template_p_button_keydown_1_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"onClick\", function Calendar_div_3_div_6_Template_p_button_onClick_1_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTodayButtonClick($event)); });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"p-button\", 72);\n i0.ɵɵlistener(\"keydown\", function Calendar_div_3_div_6_Template_p_button_keydown_2_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContainerButtonKeydown($event)); })(\"onClick\", function Calendar_div_3_div_6_Template_p_button_onClick_2_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onClearButtonClick($event)); });\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"label\", ctx_r1.getTranslation(\"today\"))(\"ngClass\", ctx_r1.todayButtonStyleClass);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"label\", ctx_r1.getTranslation(\"clear\"))(\"ngClass\", ctx_r1.clearButtonStyleClass);\n} }\nfunction Calendar_div_3_ng_container_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction Calendar_div_3_Template(rf, ctx) { if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 21, 2);\n i0.ɵɵlistener(\"@overlayAnimation.start\", function Calendar_div_3_Template_div_animation_overlayAnimation_start_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOverlayAnimationStart($event)); })(\"@overlayAnimation.done\", function Calendar_div_3_Template_div_animation_overlayAnimation_done_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOverlayAnimationDone($event)); })(\"click\", function Calendar_div_3_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOverlayClick($event)); });\n i0.ɵɵprojection(2);\n i0.ɵɵtemplate(3, Calendar_div_3_ng_container_3_Template, 1, 0, \"ng-container\", 13)(4, Calendar_div_3_ng_container_4_Template, 5, 3, \"ng-container\", 7)(5, Calendar_div_3_div_5_Template, 28, 21, \"div\", 22)(6, Calendar_div_3_div_6_Template, 3, 4, \"div\", 23);\n i0.ɵɵprojection(7, 1);\n i0.ɵɵtemplate(8, Calendar_div_3_ng_container_8_Template, 1, 0, \"ng-container\", 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.panelStyleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx_r1.panelStyle)(\"ngClass\", ctx_r1.panelClass)(\"@overlayAnimation\", i0.ɵɵpureFunction1(18, _c20, i0.ɵɵpureFunction2(15, _c19, ctx_r1.showTransitionOptions, ctx_r1.hideTransitionOptions)))(\"@.disabled\", ctx_r1.inline === true);\n i0.ɵɵattribute(\"id\", ctx_r1.panelId)(\"aria-label\", ctx_r1.getTranslation(\"chooseDate\"))(\"role\", ctx_r1.inline ? null : \"dialog\")(\"aria-modal\", ctx_r1.inline ? null : \"true\");\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.headerTemplate || ctx_r1._headerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.timeOnly);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r1.showTime || ctx_r1.timeOnly) && ctx_r1.currentView === \"date\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showButtonBar);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.footerTemplate || ctx_r1._footerTemplate);\n} }\nconst CALENDAR_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Calendar),\n multi: true\n};\n/**\n * Calendar also known as DatePicker, is a form component to work with dates.\n * @group Components\n */\nclass Calendar extends BaseComponent {\n zone;\n overlayService;\n iconDisplay = 'button';\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Inline style of the input field.\n * @group Props\n */\n inputStyle;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n inputId;\n /**\n * Name of the input element.\n * @group Props\n */\n name;\n /**\n * Style class of the input field.\n * @group Props\n */\n inputStyleClass;\n /**\n * Placeholder text for the input.\n * @group Props\n */\n placeholder;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n ariaLabel;\n /**\n * Defines a string that labels the icon button for accessibility.\n * @group Props\n */\n iconAriaLabel;\n /**\n * When specified, disables the component.\n * @group Props\n */\n disabled;\n /**\n * Format of the date which can also be defined at locale settings.\n * @group Props\n */\n dateFormat;\n /**\n * Separator for multiple selection mode.\n * @group Props\n */\n multipleSeparator = ',';\n /**\n * Separator for joining start and end dates on range selection mode.\n * @group Props\n */\n rangeSeparator = '-';\n /**\n * When enabled, displays the calendar as inline. Default is false for popup mode.\n * @group Props\n */\n inline = false;\n /**\n * Whether to display dates in other months (non-selectable) at the start or end of the current month. To make these days selectable use the selectOtherMonths option.\n * @group Props\n */\n showOtherMonths = true;\n /**\n * Whether days in other months shown before or after the current month are selectable. This only applies if the showOtherMonths option is set to true.\n * @group Props\n */\n selectOtherMonths;\n /**\n * When enabled, displays a button with icon next to input.\n * @group Props\n */\n showIcon;\n /**\n * Whether the component should span the full width of its parent.\n * @group Props\n */\n fluid;\n /**\n * Icon of the calendar button.\n * @group Props\n */\n icon;\n /**\n * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having#mydiv as variable name).\n * @group Props\n */\n appendTo;\n /**\n * When specified, prevents entering the date manually with keyboard.\n * @group Props\n */\n readonlyInput;\n /**\n * The cutoff year for determining the century for a date.\n * @group Props\n */\n shortYearCutoff = '+10';\n /**\n * Whether the month should be rendered as a dropdown instead of text.\n * @group Props\n * @deprecated Navigator is always on.\n */\n monthNavigator;\n /**\n * Whether the year should be rendered as a dropdown instead of text.\n * @group Props\n * @deprecated Navigator is always on.\n */\n yearNavigator;\n /**\n * Specifies 12 or 24 hour format.\n * @group Props\n */\n hourFormat = '24';\n /**\n * Whether to display timepicker only.\n * @group Props\n */\n timeOnly;\n /**\n * Hours to change per step.\n * @group Props\n */\n stepHour = 1;\n /**\n * Minutes to change per step.\n * @group Props\n */\n stepMinute = 1;\n /**\n * Seconds to change per step.\n * @group Props\n */\n stepSecond = 1;\n /**\n * Whether to show the seconds in time picker.\n * @group Props\n */\n showSeconds = false;\n /**\n * When present, it specifies that an input field must be filled out before submitting the form.\n * @group Props\n */\n required;\n /**\n * When disabled, datepicker will not be visible with input focus.\n * @group Props\n */\n showOnFocus = true;\n /**\n * When enabled, calendar will show week numbers.\n * @group Props\n */\n showWeek = false;\n /**\n * When enabled, calendar will start week numbers from first day of the year.\n * @group Props\n */\n startWeekFromFirstDayOfYear = false;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n showClear = false;\n /**\n * Type of the value to write back to ngModel, default is date and alternative is string.\n * @group Props\n */\n dataType = 'date';\n /**\n * Defines the quantity of the selection, valid values are \"single\", \"multiple\" and \"range\".\n * @group Props\n */\n selectionMode = 'single';\n /**\n * Maximum number of selectable dates in multiple mode.\n * @group Props\n */\n maxDateCount;\n /**\n * Whether to display today and clear buttons at the footer\n * @group Props\n */\n showButtonBar;\n /**\n * Style class of the today button.\n * @group Props\n */\n todayButtonStyleClass;\n /**\n * Style class of the clear button.\n * @group Props\n */\n clearButtonStyleClass;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Whether to automatically manage layering.\n * @group Props\n */\n autoZIndex = true;\n /**\n * Base zIndex value to use in layering.\n * @group Props\n */\n baseZIndex = 0;\n /**\n * Style class of the datetimepicker container element.\n * @group Props\n */\n panelStyleClass;\n /**\n * Inline style of the datetimepicker container element.\n * @group Props\n */\n panelStyle;\n /**\n * Keep invalid value when input blur.\n * @group Props\n */\n keepInvalid = false;\n /**\n * Whether to hide the overlay on date selection.\n * @group Props\n */\n hideOnDateTimeSelect = true;\n /**\n * When enabled, calendar overlay is displayed as optimized for touch devices.\n * @group Props\n */\n touchUI;\n /**\n * Separator of time selector.\n * @group Props\n */\n timeSeparator = ':';\n /**\n * When enabled, can only focus on elements inside the calendar.\n * @group Props\n */\n focusTrap = true;\n /**\n * Transition options of the show animation.\n * @group Props\n */\n showTransitionOptions = '.12s cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation.\n * @group Props\n */\n hideTransitionOptions = '.1s linear';\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant;\n /**\n * The minimum selectable date.\n * @group Props\n */\n get minDate() {\n return this._minDate;\n }\n set minDate(date) {\n this._minDate = date;\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * The maximum selectable date.\n * @group Props\n */\n get maxDate() {\n return this._maxDate;\n }\n set maxDate(date) {\n this._maxDate = date;\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * Array with dates that should be disabled (not selectable).\n * @group Props\n */\n get disabledDates() {\n return this._disabledDates;\n }\n set disabledDates(disabledDates) {\n this._disabledDates = disabledDates;\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * Array with weekday numbers that should be disabled (not selectable).\n * @group Props\n */\n get disabledDays() {\n return this._disabledDays;\n }\n set disabledDays(disabledDays) {\n this._disabledDays = disabledDays;\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * The range of years displayed in the year drop-down in (nnnn:nnnn) format such as (2000:2020).\n * @group Props\n * @deprecated Years are based on decades by default.\n */\n get yearRange() {\n return this._yearRange;\n }\n set yearRange(yearRange) {\n this._yearRange = yearRange;\n if (yearRange) {\n const years = yearRange.split(':');\n const yearStart = parseInt(years[0]);\n const yearEnd = parseInt(years[1]);\n this.populateYearOptions(yearStart, yearEnd);\n }\n }\n /**\n * Whether to display timepicker.\n * @group Props\n */\n get showTime() {\n return this._showTime;\n }\n set showTime(showTime) {\n this._showTime = showTime;\n if (this.currentHour === undefined) {\n this.initTime(this.value || new Date());\n }\n this.updateInputfield();\n }\n /**\n * An array of options for responsive design.\n * @group Props\n */\n get responsiveOptions() {\n return this._responsiveOptions;\n }\n set responsiveOptions(responsiveOptions) {\n this._responsiveOptions = responsiveOptions;\n this.destroyResponsiveStyleElement();\n this.createResponsiveStyle();\n }\n /**\n * Number of months to display.\n * @group Props\n */\n get numberOfMonths() {\n return this._numberOfMonths;\n }\n set numberOfMonths(numberOfMonths) {\n this._numberOfMonths = numberOfMonths;\n this.destroyResponsiveStyleElement();\n this.createResponsiveStyle();\n }\n /**\n * Defines the first of the week for various date calculations.\n * @group Props\n */\n get firstDayOfWeek() {\n return this._firstDayOfWeek;\n }\n set firstDayOfWeek(firstDayOfWeek) {\n this._firstDayOfWeek = firstDayOfWeek;\n this.createWeekDays();\n }\n /**\n * Option to set calendar locale.\n * @group Props\n * @deprecated Locale property has no effect, use new i18n API instead.\n */\n set locale(newLocale) {\n console.log('Locale property has no effect, use new i18n API instead.');\n }\n /**\n * Type of view to display, valid values are \"date\" for datepicker and \"month\" for month picker.\n * @group Props\n */\n get view() {\n return this._view;\n }\n set view(view) {\n this._view = view;\n this.currentView = this._view;\n }\n /**\n * Set the date to highlight on first opening if the field is blank.\n * @group Props\n */\n get defaultDate() {\n return this._defaultDate;\n }\n set defaultDate(defaultDate) {\n this._defaultDate = defaultDate;\n if (this.initialized) {\n const date = defaultDate || new Date();\n this.currentMonth = date.getMonth();\n this.currentYear = date.getFullYear();\n this.initTime(date);\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * Callback to invoke on focus of input field.\n * @param {Event} event - browser event.\n * @group Emits\n */\n onFocus = new EventEmitter();\n /**\n * Callback to invoke on blur of input field.\n * @param {Event} event - browser event.\n * @group Emits\n */\n onBlur = new EventEmitter();\n /**\n * Callback to invoke when date panel closed.\n * @param {Event} event - Mouse event\n * @group Emits\n */\n onClose = new EventEmitter();\n /**\n * Callback to invoke on date select.\n * @param {Date} date - date value.\n * @group Emits\n */\n onSelect = new EventEmitter();\n /**\n * Callback to invoke when input field cleared.\n * @group Emits\n */\n onClear = new EventEmitter();\n /**\n * Callback to invoke when input field is being typed.\n * @param {Event} event - browser event\n * @group Emits\n */\n onInput = new EventEmitter();\n /**\n * Callback to invoke when today button is clicked.\n * @param {Date} date - today as a date instance.\n * @group Emits\n */\n onTodayClick = new EventEmitter();\n /**\n * Callback to invoke when clear button is clicked.\n * @param {Event} event - browser event.\n * @group Emits\n */\n onClearClick = new EventEmitter();\n /**\n * Callback to invoke when a month is changed using the navigators.\n * @param {CalendarMonthChangeEvent} event - custom month change event.\n * @group Emits\n */\n onMonthChange = new EventEmitter();\n /**\n * Callback to invoke when a year is changed using the navigators.\n * @param {CalendarYearChangeEvent} event - custom year change event.\n * @group Emits\n */\n onYearChange = new EventEmitter();\n /**\n * Callback to invoke when clicked outside of the date panel.\n * @group Emits\n */\n onClickOutside = new EventEmitter();\n /**\n * Callback to invoke when datepicker panel is shown.\n * @group Emits\n */\n onShow = new EventEmitter();\n /**\n * Custom template for date cells.\n * @group Templates\n */\n dateTemplate;\n /**\n * Custom template for header section.\n * @group Templates\n */\n headerTemplate;\n /**\n * Custom template for footer section.\n * @group Templates\n */\n footerTemplate;\n /**\n * Custom template for disabled date cells.\n * @group Templates\n */\n disabledDateTemplate;\n /**\n * Custom template for decade view.\n * @group Templates\n */\n decadeTemplate;\n /**\n * Custom template for previous month icon.\n * @group Templates\n */\n previousIconTemplate;\n /**\n * Custom template for next month icon.\n * @group Templates\n */\n nextIconTemplate;\n /**\n * Custom template for trigger icon.\n * @group Templates\n */\n triggerIconTemplate;\n /**\n * Custom template for clear icon.\n * @group Templates\n */\n clearIconTemplate;\n /**\n * Custom template for decrement icon.\n * @group Templates\n */\n decrementIconTemplate;\n /**\n * Custom template for increment icon.\n * @group Templates\n */\n incrementIconTemplate;\n /**\n * Custom template for input icon.\n * @group Templates\n */\n inputIconTemplate;\n containerViewChild;\n inputfieldViewChild;\n set content(content) {\n this.contentViewChild = content;\n if (this.contentViewChild) {\n if (this.isMonthNavigate) {\n Promise.resolve(null).then(() => this.updateFocus());\n this.isMonthNavigate = false;\n }\n else {\n if (!this.focus && !this.inline) {\n this.initFocusableCell();\n }\n }\n }\n }\n _dateTemplate;\n _headerTemplate;\n _footerTemplate;\n _disabledDateTemplate;\n _decadeTemplate;\n _previousIconTemplate;\n _nextIconTemplate;\n _triggerIconTemplate;\n _clearIconTemplate;\n _decrementIconTemplate;\n _incrementIconTemplate;\n _inputIconTemplate;\n _componentStyle = inject(CalendarStyle);\n contentViewChild;\n value;\n dates;\n months;\n weekDays;\n currentMonth;\n currentYear;\n currentHour;\n currentMinute;\n currentSecond;\n pm;\n mask;\n maskClickListener;\n overlay;\n responsiveStyleElement;\n overlayVisible;\n onModelChange = () => { };\n onModelTouched = () => { };\n calendarElement;\n timePickerTimer;\n documentClickListener;\n animationEndListener;\n ticksTo1970;\n yearOptions;\n focus;\n isKeydown;\n filled;\n inputFieldValue = null;\n _minDate;\n _maxDate;\n _showTime;\n _yearRange;\n preventDocumentListener;\n dayClass(date) {\n return this._componentStyle.classes.day({ instance: this, date: date });\n }\n _disabledDates;\n _disabledDays;\n selectElement;\n todayElement;\n focusElement;\n scrollHandler;\n documentResizeListener;\n navigationState = null;\n isMonthNavigate;\n initialized;\n translationSubscription;\n _locale;\n _responsiveOptions;\n currentView;\n attributeSelector;\n panelId;\n _numberOfMonths = 1;\n _firstDayOfWeek;\n _view = 'date';\n preventFocus;\n _defaultDate;\n _focusKey = null;\n window;\n get locale() {\n return this._locale;\n }\n get iconButtonAriaLabel() {\n return this.iconAriaLabel ? this.iconAriaLabel : this.getTranslation('chooseDate');\n }\n get prevIconAriaLabel() {\n return this.currentView === 'year' ? this.getTranslation('prevDecade') : this.currentView === 'month' ? this.getTranslation('prevYear') : this.getTranslation('prevMonth');\n }\n get nextIconAriaLabel() {\n return this.currentView === 'year' ? this.getTranslation('nextDecade') : this.currentView === 'month' ? this.getTranslation('nextYear') : this.getTranslation('nextMonth');\n }\n get rootClass() {\n return this._componentStyle.classes.root({ instance: this });\n }\n get panelClass() {\n return this._componentStyle.classes.panel({ instance: this });\n }\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return this.fluid || !!fluidComponent;\n }\n constructor(zone, overlayService) {\n super();\n this.zone = zone;\n this.overlayService = overlayService;\n }\n ngOnInit() {\n console.log('Calendar component is deprecated as of v18, use DatePicker component instead.');\n super.ngOnInit();\n this.attributeSelector = uuid('pn_id_');\n this.panelId = this.attributeSelector + '_panel';\n const date = this.defaultDate || new Date();\n this.createResponsiveStyle();\n this.currentMonth = date.getMonth();\n this.currentYear = date.getFullYear();\n this.yearOptions = [];\n this.currentView = this.view;\n if (this.view === 'date') {\n this.createWeekDays();\n this.initTime(date);\n this.createMonths(this.currentMonth, this.currentYear);\n this.ticksTo1970 = ((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000;\n }\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.createWeekDays();\n this.cd.markForCheck();\n });\n this.initialized = true;\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.inline) {\n this.contentViewChild && this.contentViewChild.nativeElement.setAttribute(this.attributeSelector, '');\n if (!this.disabled && !this.inline) {\n this.initFocusableCell();\n if (this.numberOfMonths === 1) {\n if (this.contentViewChild && this.contentViewChild.nativeElement) {\n this.contentViewChild.nativeElement.style.width = getOuterWidth(this.containerViewChild?.nativeElement) + 'px';\n }\n }\n }\n }\n }\n templates;\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'date':\n this._dateTemplate = item.template;\n break;\n case 'decade':\n this._decadeTemplate = item.template;\n break;\n case 'disabledDate':\n this._disabledDateTemplate = item.template;\n break;\n case 'header':\n this._headerTemplate = item.template;\n break;\n case 'inputicon':\n this._inputIconTemplate = item.template;\n break;\n case 'previousicon':\n this._previousIconTemplate = item.template;\n break;\n case 'nexticon':\n this._nextIconTemplate = item.template;\n break;\n case 'triggericon':\n this._triggerIconTemplate = item.template;\n break;\n case 'clearicon':\n this._clearIconTemplate = item.template;\n break;\n case 'decrementicon':\n this._decrementIconTemplate = item.template;\n break;\n case 'incrementicon':\n this._incrementIconTemplate = item.template;\n break;\n case 'footer':\n this._footerTemplate = item.template;\n break;\n default:\n this._dateTemplate = item.template;\n break;\n }\n });\n }\n getTranslation(option) {\n return this.config.getTranslation(option);\n }\n populateYearOptions(start, end) {\n this.yearOptions = [];\n for (let i = start; i <= end; i++) {\n this.yearOptions.push(i);\n }\n }\n createWeekDays() {\n this.weekDays = [];\n let dayIndex = this.getFirstDateOfWeek();\n let dayLabels = this.getTranslation(TranslationKeys.DAY_NAMES_MIN);\n for (let i = 0; i < 7; i++) {\n this.weekDays.push(dayLabels[dayIndex]);\n dayIndex = dayIndex == 6 ? 0 : ++dayIndex;\n }\n }\n monthPickerValues() {\n let monthPickerValues = [];\n for (let i = 0; i <= 11; i++) {\n monthPickerValues.push(this.config.getTranslation('monthNamesShort')[i]);\n }\n return monthPickerValues;\n }\n yearPickerValues() {\n let yearPickerValues = [];\n let base = this.currentYear - (this.currentYear % 10);\n for (let i = 0; i < 10; i++) {\n yearPickerValues.push(base + i);\n }\n return yearPickerValues;\n }\n createMonths(month, year) {\n this.months = this.months = [];\n for (let i = 0; i < this.numberOfMonths; i++) {\n let m = month + i;\n let y = year;\n if (m > 11) {\n m = (m % 11) - 1;\n y = year + 1;\n }\n this.months.push(this.createMonth(m, y));\n }\n }\n getWeekNumber(date) {\n let checkDate = new Date(date.getTime());\n if (this.startWeekFromFirstDayOfYear) {\n let firstDayOfWeek = +this.getFirstDateOfWeek();\n checkDate.setDate(checkDate.getDate() + 6 + firstDayOfWeek - checkDate.getDay());\n }\n else {\n checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));\n }\n let time = checkDate.getTime();\n checkDate.setMonth(0);\n checkDate.setDate(1);\n return Math.floor(Math.round((time - checkDate.getTime()) / 86400000) / 7) + 1;\n }\n createMonth(month, year) {\n let dates = [];\n let firstDay = this.getFirstDayOfMonthIndex(month, year);\n let daysLength = this.getDaysCountInMonth(month, year);\n let prevMonthDaysLength = this.getDaysCountInPrevMonth(month, year);\n let dayNo = 1;\n let today = new Date();\n let weekNumbers = [];\n let monthRows = Math.ceil((daysLength + firstDay) / 7);\n for (let i = 0; i < monthRows; i++) {\n let week = [];\n if (i == 0) {\n for (let j = prevMonthDaysLength - firstDay + 1; j <= prevMonthDaysLength; j++) {\n let prev = this.getPreviousMonthAndYear(month, year);\n week.push({\n day: j,\n month: prev.month,\n year: prev.year,\n otherMonth: true,\n today: this.isToday(today, j, prev.month, prev.year),\n selectable: this.isSelectable(j, prev.month, prev.year, true)\n });\n }\n let remainingDaysLength = 7 - week.length;\n for (let j = 0; j < remainingDaysLength; j++) {\n week.push({\n day: dayNo,\n month: month,\n year: year,\n today: this.isToday(today, dayNo, month, year),\n selectable: this.isSelectable(dayNo, month, year, false)\n });\n dayNo++;\n }\n }\n else {\n for (let j = 0; j < 7; j++) {\n if (dayNo > daysLength) {\n let next = this.getNextMonthAndYear(month, year);\n week.push({\n day: dayNo - daysLength,\n month: next.month,\n year: next.year,\n otherMonth: true,\n today: this.isToday(today, dayNo - daysLength, next.month, next.year),\n selectable: this.isSelectable(dayNo - daysLength, next.month, next.year, true)\n });\n }\n else {\n week.push({\n day: dayNo,\n month: month,\n year: year,\n today: this.isToday(today, dayNo, month, year),\n selectable: this.isSelectable(dayNo, month, year, false)\n });\n }\n dayNo++;\n }\n }\n if (this.showWeek) {\n weekNumbers.push(this.getWeekNumber(new Date(week[0].year, week[0].month, week[0].day)));\n }\n dates.push(week);\n }\n return {\n month: month,\n year: year,\n dates: dates,\n weekNumbers: weekNumbers\n };\n }\n initTime(date) {\n this.pm = date.getHours() > 11;\n if (this.showTime) {\n this.currentMinute = date.getMinutes();\n this.currentSecond = date.getSeconds();\n this.setCurrentHourPM(date.getHours());\n }\n else if (this.timeOnly) {\n this.currentMinute = 0;\n this.currentHour = 0;\n this.currentSecond = 0;\n }\n }\n navBackward(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n this.isMonthNavigate = true;\n if (this.currentView === 'month') {\n this.decrementYear();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n }\n else if (this.currentView === 'year') {\n this.decrementDecade();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n }\n else {\n if (this.currentMonth === 0) {\n this.currentMonth = 11;\n this.decrementYear();\n }\n else {\n this.currentMonth--;\n }\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n navForward(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n this.isMonthNavigate = true;\n if (this.currentView === 'month') {\n this.incrementYear();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n }\n else if (this.currentView === 'year') {\n this.incrementDecade();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n }\n else {\n if (this.currentMonth === 11) {\n this.currentMonth = 0;\n this.incrementYear();\n }\n else {\n this.currentMonth++;\n }\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n decrementYear() {\n this.currentYear--;\n let _yearOptions = this.yearOptions;\n if (this.yearNavigator && this.currentYear < _yearOptions[0]) {\n let difference = _yearOptions[_yearOptions.length - 1] - _yearOptions[0];\n this.populateYearOptions(_yearOptions[0] - difference, _yearOptions[_yearOptions.length - 1] - difference);\n }\n }\n decrementDecade() {\n this.currentYear = this.currentYear - 10;\n }\n incrementDecade() {\n this.currentYear = this.currentYear + 10;\n }\n incrementYear() {\n this.currentYear++;\n let _yearOptions = this.yearOptions;\n if (this.yearNavigator && this.currentYear > _yearOptions[_yearOptions.length - 1]) {\n let difference = _yearOptions[_yearOptions.length - 1] - _yearOptions[0];\n this.populateYearOptions(_yearOptions[0] + difference, _yearOptions[_yearOptions.length - 1] + difference);\n }\n }\n switchToMonthView(event) {\n this.setCurrentView('month');\n event.preventDefault();\n }\n switchToYearView(event) {\n this.setCurrentView('year');\n event.preventDefault();\n }\n onDateSelect(event, dateMeta) {\n if (this.disabled || !dateMeta.selectable) {\n event.preventDefault();\n return;\n }\n if (this.isMultipleSelection() && this.isSelected(dateMeta)) {\n this.value = this.value.filter((date, i) => {\n return !this.isDateEquals(date, dateMeta);\n });\n if (this.value.length === 0) {\n this.value = null;\n }\n this.updateModel(this.value);\n }\n else {\n if (this.shouldSelectDate(dateMeta)) {\n this.selectDate(dateMeta);\n }\n }\n if ((this.isSingleSelection() && this.hideOnDateTimeSelect) || (this.isRangeSelection() && this.value[1])) {\n setTimeout(() => {\n event.preventDefault();\n this.hideOverlay();\n if (this.mask) {\n this.disableModality();\n }\n this.cd.markForCheck();\n }, 150);\n }\n this.updateInputfield();\n event.preventDefault();\n }\n shouldSelectDate(dateMeta) {\n if (this.isMultipleSelection())\n return this.maxDateCount != null ? this.maxDateCount > (this.value ? this.value.length : 0) : true;\n else\n return true;\n }\n onMonthSelect(event, index) {\n if (this.view === 'month') {\n this.onDateSelect(event, { year: this.currentYear, month: index, day: 1, selectable: true });\n }\n else {\n this.currentMonth = index;\n this.createMonths(this.currentMonth, this.currentYear);\n this.setCurrentView('date');\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n }\n }\n onYearSelect(event, year) {\n if (this.view === 'year') {\n this.onDateSelect(event, { year: year, month: 0, day: 1, selectable: true });\n }\n else {\n this.currentYear = year;\n this.setCurrentView('month');\n this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n }\n }\n updateInputfield() {\n let formattedValue = '';\n if (this.value) {\n if (this.isSingleSelection()) {\n formattedValue = this.formatDateTime(this.value);\n }\n else if (this.isMultipleSelection()) {\n for (let i = 0; i < this.value.length; i++) {\n let dateAsString = this.formatDateTime(this.value[i]);\n formattedValue += dateAsString;\n if (i !== this.value.length - 1) {\n formattedValue += this.multipleSeparator + ' ';\n }\n }\n }\n else if (this.isRangeSelection()) {\n if (this.value && this.value.length) {\n let startDate = this.value[0];\n let endDate = this.value[1];\n formattedValue = this.formatDateTime(startDate);\n if (endDate) {\n formattedValue += ' ' + this.rangeSeparator + ' ' + this.formatDateTime(endDate);\n }\n }\n }\n }\n this.inputFieldValue = formattedValue;\n this.updateFilledState();\n if (this.inputfieldViewChild && this.inputfieldViewChild.nativeElement) {\n this.inputfieldViewChild.nativeElement.value = this.inputFieldValue;\n }\n }\n formatDateTime(date) {\n let formattedValue = this.keepInvalid ? date : null;\n const isDateValid = this.isValidDateForTimeConstraints(date);\n if (this.isValidDate(date)) {\n if (this.timeOnly) {\n formattedValue = this.formatTime(date);\n }\n else {\n formattedValue = this.formatDate(date, this.getDateFormat());\n if (this.showTime) {\n formattedValue += ' ' + this.formatTime(date);\n }\n }\n }\n else if (this.dataType === 'string') {\n formattedValue = date;\n }\n formattedValue = isDateValid ? formattedValue : '';\n return formattedValue;\n }\n formatDateMetaToDate(dateMeta) {\n return new Date(dateMeta.year, dateMeta.month, dateMeta.day);\n }\n formatDateKey(date) {\n return `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;\n }\n setCurrentHourPM(hours) {\n if (this.hourFormat == '12') {\n this.pm = hours > 11;\n if (hours >= 12) {\n this.currentHour = hours == 12 ? 12 : hours - 12;\n }\n else {\n this.currentHour = hours == 0 ? 12 : hours;\n }\n }\n else {\n this.currentHour = hours;\n }\n }\n setCurrentView(currentView) {\n this.currentView = currentView;\n this.cd.detectChanges();\n this.alignOverlay();\n }\n selectDate(dateMeta) {\n let date = this.formatDateMetaToDate(dateMeta);\n if (this.showTime) {\n if (this.hourFormat == '12') {\n if (this.currentHour === 12)\n date.setHours(this.pm ? 12 : 0);\n else\n date.setHours(this.pm ? this.currentHour + 12 : this.currentHour);\n }\n else {\n date.setHours(this.currentHour);\n }\n date.setMinutes(this.currentMinute);\n date.setSeconds(this.currentSecond);\n }\n if (this.minDate && this.minDate > date) {\n date = this.minDate;\n this.setCurrentHourPM(date.getHours());\n this.currentMinute = date.getMinutes();\n this.currentSecond = date.getSeconds();\n }\n if (this.maxDate && this.maxDate < date) {\n date = this.maxDate;\n this.setCurrentHourPM(date.getHours());\n this.currentMinute = date.getMinutes();\n this.currentSecond = date.getSeconds();\n }\n if (this.isSingleSelection()) {\n this.updateModel(date);\n }\n else if (this.isMultipleSelection()) {\n this.updateModel(this.value ? [...this.value, date] : [date]);\n }\n else if (this.isRangeSelection()) {\n if (this.value && this.value.length) {\n let startDate = this.value[0];\n let endDate = this.value[1];\n if (!endDate && date.getTime() >= startDate.getTime()) {\n endDate = date;\n }\n else {\n startDate = date;\n endDate = null;\n }\n this.updateModel([startDate, endDate]);\n }\n else {\n this.updateModel([date, null]);\n }\n }\n this.onSelect.emit(date);\n }\n updateModel(value) {\n this.value = value;\n if (this.dataType == 'date') {\n this.onModelChange(this.value);\n }\n else if (this.dataType == 'string') {\n if (this.isSingleSelection()) {\n this.onModelChange(this.formatDateTime(this.value));\n }\n else {\n let stringArrValue = null;\n if (Array.isArray(this.value)) {\n stringArrValue = this.value.map((date) => this.formatDateTime(date));\n }\n this.onModelChange(stringArrValue);\n }\n }\n }\n getFirstDayOfMonthIndex(month, year) {\n let day = new Date();\n day.setDate(1);\n day.setMonth(month);\n day.setFullYear(year);\n let dayIndex = day.getDay() + this.getSundayIndex();\n return dayIndex >= 7 ? dayIndex - 7 : dayIndex;\n }\n getDaysCountInMonth(month, year) {\n return 32 - this.daylightSavingAdjust(new Date(year, month, 32)).getDate();\n }\n getDaysCountInPrevMonth(month, year) {\n let prev = this.getPreviousMonthAndYear(month, year);\n return this.getDaysCountInMonth(prev.month, prev.year);\n }\n getPreviousMonthAndYear(month, year) {\n let m, y;\n if (month === 0) {\n m = 11;\n y = year - 1;\n }\n else {\n m = month - 1;\n y = year;\n }\n return { month: m, year: y };\n }\n getNextMonthAndYear(month, year) {\n let m, y;\n if (month === 11) {\n m = 0;\n y = year + 1;\n }\n else {\n m = month + 1;\n y = year;\n }\n return { month: m, year: y };\n }\n getSundayIndex() {\n let firstDayOfWeek = this.getFirstDateOfWeek();\n return firstDayOfWeek > 0 ? 7 - firstDayOfWeek : 0;\n }\n isSelected(dateMeta) {\n if (this.value) {\n if (this.isSingleSelection()) {\n return this.isDateEquals(this.value, dateMeta);\n }\n else if (this.isMultipleSelection()) {\n let selected = false;\n for (let date of this.value) {\n selected = this.isDateEquals(date, dateMeta);\n if (selected) {\n break;\n }\n }\n return selected;\n }\n else if (this.isRangeSelection()) {\n if (this.value[1])\n return this.isDateEquals(this.value[0], dateMeta) || this.isDateEquals(this.value[1], dateMeta) || this.isDateBetween(this.value[0], this.value[1], dateMeta);\n else\n return this.isDateEquals(this.value[0], dateMeta);\n }\n }\n else {\n return false;\n }\n }\n isComparable() {\n return this.value != null && typeof this.value !== 'string';\n }\n isMonthSelected(month) {\n if (this.isComparable() && !this.isMultipleSelection()) {\n const [start, end] = this.isRangeSelection() ? this.value : [this.value, this.value];\n const selected = new Date(this.currentYear, month, 1);\n return selected >= start && selected <= (end ?? start);\n }\n return false;\n }\n isMonthDisabled(month, year) {\n const yearToCheck = year ?? this.currentYear;\n for (let day = 1; day < this.getDaysCountInMonth(month, yearToCheck) + 1; day++) {\n if (this.isSelectable(day, month, yearToCheck, false)) {\n return false;\n }\n }\n return true;\n }\n isYearDisabled(year) {\n return Array(12)\n .fill(0)\n .every((v, month) => this.isMonthDisabled(month, year));\n }\n isYearSelected(year) {\n if (this.isComparable()) {\n let value = this.isRangeSelection() ? this.value[0] : this.value;\n return !this.isMultipleSelection() ? value.getFullYear() === year : false;\n }\n return false;\n }\n isDateEquals(value, dateMeta) {\n if (value && isDate(value))\n return value.getDate() === dateMeta.day && value.getMonth() === dateMeta.month && value.getFullYear() === dateMeta.year;\n else\n return false;\n }\n isDateBetween(start, end, dateMeta) {\n let between = false;\n if (isDate(start) && isDate(end)) {\n let date = this.formatDateMetaToDate(dateMeta);\n return start.getTime() <= date.getTime() && end.getTime() >= date.getTime();\n }\n return between;\n }\n isSingleSelection() {\n return this.selectionMode === 'single';\n }\n isRangeSelection() {\n return this.selectionMode === 'range';\n }\n isMultipleSelection() {\n return this.selectionMode === 'multiple';\n }\n isToday(today, day, month, year) {\n return today.getDate() === day && today.getMonth() === month && today.getFullYear() === year;\n }\n isSelectable(day, month, year, otherMonth) {\n let validMin = true;\n let validMax = true;\n let validDate = true;\n let validDay = true;\n if (otherMonth && !this.selectOtherMonths) {\n return false;\n }\n if (this.minDate) {\n if (this.minDate.getFullYear() > year) {\n validMin = false;\n }\n else if (this.minDate.getFullYear() === year && this.currentView != 'year') {\n if (this.minDate.getMonth() > month) {\n validMin = false;\n }\n else if (this.minDate.getMonth() === month) {\n if (this.minDate.getDate() > day) {\n validMin = false;\n }\n }\n }\n }\n if (this.maxDate) {\n if (this.maxDate.getFullYear() < year) {\n validMax = false;\n }\n else if (this.maxDate.getFullYear() === year) {\n if (this.maxDate.getMonth() < month) {\n validMax = false;\n }\n else if (this.maxDate.getMonth() === month) {\n if (this.maxDate.getDate() < day) {\n validMax = false;\n }\n }\n }\n }\n if (this.disabledDates) {\n validDate = !this.isDateDisabled(day, month, year);\n }\n if (this.disabledDays) {\n validDay = !this.isDayDisabled(day, month, year);\n }\n return validMin && validMax && validDate && validDay;\n }\n isDateDisabled(day, month, year) {\n if (this.disabledDates) {\n for (let disabledDate of this.disabledDates) {\n if (disabledDate.getFullYear() === year && disabledDate.getMonth() === month && disabledDate.getDate() === day) {\n return true;\n }\n }\n }\n return false;\n }\n isDayDisabled(day, month, year) {\n if (this.disabledDays) {\n let weekday = new Date(year, month, day);\n let weekdayNumber = weekday.getDay();\n return this.disabledDays.indexOf(weekdayNumber) !== -1;\n }\n return false;\n }\n onInputFocus(event) {\n this.focus = true;\n if (this.showOnFocus) {\n this.showOverlay();\n }\n this.onFocus.emit(event);\n }\n onInputClick() {\n if (this.showOnFocus && !this.overlayVisible) {\n this.showOverlay();\n }\n }\n onInputBlur(event) {\n this.focus = false;\n this.onBlur.emit(event);\n if (!this.keepInvalid) {\n this.updateInputfield();\n }\n this.onModelTouched();\n }\n onButtonClick(event, inputfield = this.inputfieldViewChild?.nativeElement) {\n if (!this.overlayVisible) {\n inputfield.focus();\n this.showOverlay();\n }\n else {\n this.hideOverlay();\n }\n }\n clear() {\n this.inputFieldValue = null;\n this.value = null;\n this.onModelChange(this.value);\n this.onClear.emit();\n }\n onOverlayClick(event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\n }\n getMonthName(index) {\n return this.config.getTranslation('monthNames')[index];\n }\n getYear(month) {\n return this.currentView === 'month' ? this.currentYear : month.year;\n }\n switchViewButtonDisabled() {\n return this.numberOfMonths > 1 || this.disabled;\n }\n onPrevButtonClick(event) {\n this.navigationState = { backward: true, button: true };\n this.navBackward(event);\n }\n onNextButtonClick(event) {\n this.navigationState = { backward: false, button: true };\n this.navForward(event);\n }\n onContainerButtonKeydown(event) {\n switch (event.which) {\n //tab\n case 9:\n if (!this.inline) {\n this.trapFocus(event);\n }\n if (this.inline) {\n const headerElements = findSingle(this.containerViewChild?.nativeElement, '.p-datepicker-header');\n const element = event.target;\n if (this.timeOnly) {\n return;\n }\n else {\n if (element == headerElements.children[headerElements?.children?.length - 1]) {\n this.initFocusableCell();\n }\n }\n }\n break;\n //escape\n case 27:\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n default:\n //Noop\n break;\n }\n }\n onInputKeydown(event) {\n this.isKeydown = true;\n if (event.keyCode === 40 && this.contentViewChild) {\n this.trapFocus(event);\n }\n else if (event.keyCode === 27) {\n if (this.overlayVisible) {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n }\n }\n else if (event.keyCode === 13) {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n event.preventDefault();\n }\n }\n else if (event.keyCode === 9 && this.contentViewChild) {\n getFocusableElements(this.contentViewChild.nativeElement).forEach((el) => (el.tabIndex = '-1'));\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n }\n }\n onDateCellKeydown(event, dateMeta, groupIndex) {\n const cellContent = event.currentTarget;\n const cell = cellContent.parentElement;\n const currentDate = this.formatDateMetaToDate(dateMeta);\n switch (event.which) {\n //down arrow\n case 40: {\n cellContent.tabIndex = '-1';\n let cellIndex = getIndex(cell);\n let nextRow = cell.parentElement.nextElementSibling;\n if (nextRow) {\n let focusCell = nextRow.children[cellIndex].children[0];\n if (hasClass(focusCell, 'p-disabled')) {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n else {\n nextRow.children[cellIndex].children[0].tabIndex = '0';\n nextRow.children[cellIndex].children[0].focus();\n }\n }\n else {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n event.preventDefault();\n break;\n }\n //up arrow\n case 38: {\n cellContent.tabIndex = '-1';\n let cellIndex = getIndex(cell);\n let prevRow = cell.parentElement.previousElementSibling;\n if (prevRow) {\n let focusCell = prevRow.children[cellIndex].children[0];\n if (hasClass(focusCell, 'p-disabled')) {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n else {\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n else {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n event.preventDefault();\n break;\n }\n //left arrow\n case 37: {\n cellContent.tabIndex = '-1';\n let prevCell = cell.previousElementSibling;\n if (prevCell) {\n let focusCell = prevCell.children[0];\n if (hasClass(focusCell, 'p-disabled') || hasClass(focusCell.parentElement, 'p-datepicker-weeknumber')) {\n this.navigateToMonth(true, groupIndex);\n }\n else {\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n else {\n this.navigateToMonth(true, groupIndex);\n }\n event.preventDefault();\n break;\n }\n //right arrow\n case 39: {\n cellContent.tabIndex = '-1';\n let nextCell = cell.nextElementSibling;\n if (nextCell) {\n let focusCell = nextCell.children[0];\n if (hasClass(focusCell, 'p-disabled')) {\n this.navigateToMonth(false, groupIndex);\n }\n else {\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n else {\n this.navigateToMonth(false, groupIndex);\n }\n event.preventDefault();\n break;\n }\n //enter\n //space\n case 13:\n case 32: {\n this.onDateSelect(event, dateMeta);\n event.preventDefault();\n break;\n }\n //escape\n case 27: {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n }\n //tab\n case 9: {\n if (!this.inline) {\n this.trapFocus(event);\n }\n break;\n }\n // page up\n case 33: {\n cellContent.tabIndex = '-1';\n const dateToFocus = new Date(currentDate.getFullYear(), currentDate.getMonth() - 1, currentDate.getDate());\n const focusKey = this.formatDateKey(dateToFocus);\n this.navigateToMonth(true, groupIndex, `span[data-date='${focusKey}']:not(.p-disabled):not(.p-ink)`);\n event.preventDefault();\n break;\n }\n // page down\n case 34: {\n cellContent.tabIndex = '-1';\n const dateToFocus = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, currentDate.getDate());\n const focusKey = this.formatDateKey(dateToFocus);\n this.navigateToMonth(false, groupIndex, `span[data-date='${focusKey}']:not(.p-disabled):not(.p-ink)`);\n event.preventDefault();\n break;\n }\n //home\n case 36:\n cellContent.tabIndex = '-1';\n const firstDayDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n const firstDayDateKey = this.formatDateKey(firstDayDate);\n const firstDayCell = findSingle(cellContent.offsetParent, `span[data-date='${firstDayDateKey}']:not(.p-disabled):not(.p-ink)`);\n if (firstDayCell) {\n firstDayCell.tabIndex = '0';\n firstDayCell.focus();\n }\n event.preventDefault();\n break;\n //end\n case 35:\n cellContent.tabIndex = '-1';\n const lastDayDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n const lastDayDateKey = this.formatDateKey(lastDayDate);\n const lastDayCell = findSingle(cellContent.offsetParent, `span[data-date='${lastDayDateKey}']:not(.p-disabled):not(.p-ink)`);\n if (lastDayDate) {\n lastDayCell.tabIndex = '0';\n lastDayCell.focus();\n }\n event.preventDefault();\n break;\n default:\n //no op\n break;\n }\n }\n onMonthCellKeydown(event, index) {\n const cell = event.currentTarget;\n switch (event.which) {\n //arrows\n case 38:\n case 40: {\n cell.tabIndex = '-1';\n var cells = cell.parentElement.children;\n var cellIndex = getIndex(cell);\n let nextCell = cells[event.which === 40 ? cellIndex + 3 : cellIndex - 3];\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n event.preventDefault();\n break;\n }\n //left arrow\n case 37: {\n cell.tabIndex = '-1';\n let prevCell = cell.previousElementSibling;\n if (prevCell) {\n prevCell.tabIndex = '0';\n prevCell.focus();\n }\n else {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n event.preventDefault();\n break;\n }\n //right arrow\n case 39: {\n cell.tabIndex = '-1';\n let nextCell = cell.nextElementSibling;\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n else {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n event.preventDefault();\n break;\n }\n //enter\n //space\n case 13:\n case 32: {\n this.onMonthSelect(event, index);\n event.preventDefault();\n break;\n }\n //escape\n case 27: {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n }\n //tab\n case 9: {\n if (!this.inline) {\n this.trapFocus(event);\n }\n break;\n }\n default:\n //no op\n break;\n }\n }\n onYearCellKeydown(event, index) {\n const cell = event.currentTarget;\n switch (event.which) {\n //arrows\n case 38:\n case 40: {\n cell.tabIndex = '-1';\n var cells = cell.parentElement.children;\n var cellIndex = getIndex(cell);\n let nextCell = cells[event.which === 40 ? cellIndex + 2 : cellIndex - 2];\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n event.preventDefault();\n break;\n }\n //left arrow\n case 37: {\n cell.tabIndex = '-1';\n let prevCell = cell.previousElementSibling;\n if (prevCell) {\n prevCell.tabIndex = '0';\n prevCell.focus();\n }\n else {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n event.preventDefault();\n break;\n }\n //right arrow\n case 39: {\n cell.tabIndex = '-1';\n let nextCell = cell.nextElementSibling;\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n else {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n event.preventDefault();\n break;\n }\n //enter\n //space\n case 13:\n case 32: {\n this.onYearSelect(event, index);\n event.preventDefault();\n break;\n }\n //escape\n case 27: {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n }\n //tab\n case 9: {\n this.trapFocus(event);\n break;\n }\n default:\n //no op\n break;\n }\n }\n navigateToMonth(prev, groupIndex, focusKey) {\n if (prev) {\n if (this.numberOfMonths === 1 || groupIndex === 0) {\n this.navigationState = { backward: true };\n this._focusKey = focusKey;\n this.navBackward(event);\n }\n else {\n let prevMonthContainer = this.contentViewChild.nativeElement.children[groupIndex - 1];\n if (focusKey) {\n const firstDayCell = findSingle(prevMonthContainer, focusKey);\n firstDayCell.tabIndex = '0';\n firstDayCell.focus();\n }\n else {\n let cells = find(prevMonthContainer, '.p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)');\n let focusCell = cells[cells.length - 1];\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n }\n else {\n if (this.numberOfMonths === 1 || groupIndex === this.numberOfMonths - 1) {\n this.navigationState = { backward: false };\n this._focusKey = focusKey;\n this.navForward(event);\n }\n else {\n let nextMonthContainer = this.contentViewChild.nativeElement.children[groupIndex + 1];\n if (focusKey) {\n const firstDayCell = findSingle(nextMonthContainer, focusKey);\n firstDayCell.tabIndex = '0';\n firstDayCell.focus();\n }\n else {\n let focusCell = findSingle(nextMonthContainer, '.p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)');\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n }\n }\n updateFocus() {\n let cell;\n if (this.navigationState) {\n if (this.navigationState.button) {\n this.initFocusableCell();\n if (this.navigationState.backward)\n findSingle(this.contentViewChild.nativeElement, '.p-datepicker-prev').focus();\n else\n findSingle(this.contentViewChild.nativeElement, '.p-datepicker-next').focus();\n }\n else {\n if (this.navigationState.backward) {\n let cells;\n if (this.currentView === 'month') {\n cells = find(this.contentViewChild.nativeElement, '.p-monthpicker .p-monthpicker-month:not(.p-disabled)');\n }\n else if (this.currentView === 'year') {\n cells = find(this.contentViewChild.nativeElement, '.p-yearpicker .p-yearpicker-year:not(.p-disabled)');\n }\n else {\n cells = find(this.contentViewChild.nativeElement, this._focusKey || '.p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)');\n }\n if (cells && cells.length > 0) {\n cell = cells[cells.length - 1];\n }\n }\n else {\n if (this.currentView === 'month') {\n cell = findSingle(this.contentViewChild.nativeElement, '.p-monthpicker .p-monthpicker-month:not(.p-disabled)');\n }\n else if (this.currentView === 'year') {\n cell = findSingle(this.contentViewChild.nativeElement, '.p-yearpicker .p-yearpicker-year:not(.p-disabled)');\n }\n else {\n cell = findSingle(this.contentViewChild.nativeElement, this._focusKey || '.p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)');\n }\n }\n if (cell) {\n cell.tabIndex = '0';\n cell.focus();\n }\n }\n this.navigationState = null;\n this._focusKey = null;\n }\n else {\n this.initFocusableCell();\n }\n }\n initFocusableCell() {\n const contentEl = this.contentViewChild?.nativeElement;\n let cell;\n if (this.currentView === 'month') {\n let cells = find(contentEl, '.p-monthpicker .p-monthpicker-month:not(.p-disabled)');\n let selectedCell = findSingle(contentEl, '.p-monthpicker .p-monthpicker-month.p-highlight');\n cells.forEach((cell) => (cell.tabIndex = -1));\n cell = selectedCell || cells[0];\n if (cells.length === 0) {\n let disabledCells = find(contentEl, '.p-monthpicker .p-monthpicker-month.p-disabled[tabindex = \"0\"]');\n disabledCells.forEach((cell) => (cell.tabIndex = -1));\n }\n }\n else if (this.currentView === 'year') {\n let cells = find(contentEl, '.p-yearpicker .p-yearpicker-year:not(.p-disabled)');\n let selectedCell = findSingle(contentEl, '.p-yearpicker .p-yearpicker-year.p-highlight');\n cells.forEach((cell) => (cell.tabIndex = -1));\n cell = selectedCell || cells[0];\n if (cells.length === 0) {\n let disabledCells = find(contentEl, '.p-yearpicker .p-yearpicker-year.p-disabled[tabindex = \"0\"]');\n disabledCells.forEach((cell) => (cell.tabIndex = -1));\n }\n }\n else {\n cell = findSingle(contentEl, 'span.p-highlight');\n if (!cell) {\n let todayCell = findSingle(contentEl, 'td.p-datepicker-today span:not(.p-disabled):not(.p-ink)');\n if (todayCell)\n cell = todayCell;\n else\n cell = findSingle(contentEl, '.p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)');\n }\n }\n if (cell) {\n cell.tabIndex = '0';\n if (!this.preventFocus && (!this.navigationState || !this.navigationState.button)) {\n setTimeout(() => {\n if (!this.disabled) {\n cell.focus();\n }\n }, 1);\n }\n this.preventFocus = false;\n }\n }\n trapFocus(event) {\n let focusableElements = getFocusableElements(this.contentViewChild.nativeElement);\n if (focusableElements && focusableElements.length > 0) {\n if (!focusableElements[0].ownerDocument.activeElement) {\n focusableElements[0].focus();\n }\n else {\n let focusedIndex = focusableElements.indexOf(focusableElements[0].ownerDocument.activeElement);\n if (event.shiftKey) {\n if (focusedIndex == -1 || focusedIndex === 0) {\n if (this.focusTrap) {\n focusableElements[focusableElements.length - 1].focus();\n }\n else {\n if (focusedIndex === -1)\n return this.hideOverlay();\n else if (focusedIndex === 0)\n return;\n }\n }\n else {\n focusableElements[focusedIndex - 1].focus();\n }\n }\n else {\n if (focusedIndex == -1) {\n if (this.timeOnly) {\n focusableElements[0].focus();\n }\n else {\n let spanIndex = 0;\n for (let i = 0; i < focusableElements.length; i++) {\n if (focusableElements[i].tagName === 'SPAN')\n spanIndex = i;\n }\n focusableElements[spanIndex].focus();\n }\n }\n else if (focusedIndex === focusableElements.length - 1) {\n if (!this.focusTrap && focusedIndex != -1)\n return this.hideOverlay();\n focusableElements[0].focus();\n }\n else {\n focusableElements[focusedIndex + 1].focus();\n }\n }\n }\n }\n event.preventDefault();\n }\n onMonthDropdownChange(m) {\n this.currentMonth = parseInt(m);\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n onYearDropdownChange(y) {\n this.currentYear = parseInt(y);\n this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n convertTo24Hour(hours, pm) {\n //@ts-ignore\n if (this.hourFormat == '12') {\n if (hours === 12) {\n return pm ? 12 : 0;\n }\n else {\n return pm ? hours + 12 : hours;\n }\n }\n return hours;\n }\n constrainTime(hour, minute, second, pm) {\n let returnTimeTriple = [hour, minute, second];\n let minHoursExceeds12;\n let value = this.value;\n const convertedHour = this.convertTo24Hour(hour, pm);\n const isRange = this.isRangeSelection(), isMultiple = this.isMultipleSelection(), isMultiValue = isRange || isMultiple;\n if (isMultiValue) {\n if (!this.value) {\n this.value = [new Date(), new Date()];\n }\n if (isRange) {\n value = this.value[1] || this.value[0];\n }\n if (isMultiple) {\n value = this.value[this.value.length - 1];\n }\n }\n const valueDateString = value ? value.toDateString() : null;\n let isMinDate = this.minDate && valueDateString && this.minDate.toDateString() === valueDateString;\n let isMaxDate = this.maxDate && valueDateString && this.maxDate.toDateString() === valueDateString;\n if (isMinDate) {\n minHoursExceeds12 = this.minDate.getHours() >= 12;\n }\n switch (true // intentional fall through\n ) {\n case isMinDate && minHoursExceeds12 && this.minDate.getHours() === 12 && this.minDate.getHours() > convertedHour:\n returnTimeTriple[0] = 11;\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMinDate && !minHoursExceeds12 && this.minDate.getHours() - 1 === convertedHour && this.minDate.getHours() > convertedHour:\n returnTimeTriple[0] = 11;\n this.pm = true;\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMinDate && minHoursExceeds12 && this.minDate.getHours() > convertedHour && convertedHour !== 12:\n this.setCurrentHourPM(this.minDate.getHours());\n returnTimeTriple[0] = this.currentHour;\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMinDate && this.minDate.getHours() > convertedHour:\n returnTimeTriple[0] = this.minDate.getHours();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMaxDate && this.maxDate.getHours() < convertedHour:\n returnTimeTriple[0] = this.maxDate.getHours();\n case isMaxDate && this.maxDate.getHours() === convertedHour && this.maxDate.getMinutes() < minute:\n returnTimeTriple[1] = this.maxDate.getMinutes();\n case isMaxDate && this.maxDate.getHours() === convertedHour && this.maxDate.getMinutes() === minute && this.maxDate.getSeconds() < second:\n returnTimeTriple[2] = this.maxDate.getSeconds();\n break;\n }\n return returnTimeTriple;\n }\n incrementHour(event) {\n const prevHour = this.currentHour ?? 0;\n let newHour = (this.currentHour ?? 0) + this.stepHour;\n let newPM = this.pm;\n if (this.hourFormat == '24')\n newHour = newHour >= 24 ? newHour - 24 : newHour;\n else if (this.hourFormat == '12') {\n // Before the AM/PM break, now after\n if (prevHour < 12 && newHour > 11) {\n newPM = !this.pm;\n }\n newHour = newHour >= 13 ? newHour - 12 : newHour;\n }\n this.toggleAMPMIfNotMinDate(newPM);\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(newHour, this.currentMinute, this.currentSecond, newPM);\n event.preventDefault();\n }\n toggleAMPMIfNotMinDate(newPM) {\n let value = this.value;\n const valueDateString = value ? value.toDateString() : null;\n let isMinDate = this.minDate && valueDateString && this.minDate.toDateString() === valueDateString;\n if (isMinDate && this.minDate.getHours() >= 12) {\n this.pm = true;\n }\n else {\n this.pm = newPM;\n }\n }\n onTimePickerElementMouseDown(event, type, direction) {\n if (!this.disabled) {\n this.repeat(event, null, type, direction);\n event.preventDefault();\n }\n }\n onTimePickerElementMouseUp(event) {\n if (!this.disabled) {\n this.clearTimePickerTimer();\n this.updateTime();\n }\n }\n onTimePickerElementMouseLeave() {\n if (!this.disabled && this.timePickerTimer) {\n this.clearTimePickerTimer();\n this.updateTime();\n }\n }\n repeat(event, interval, type, direction) {\n let i = interval || 500;\n this.clearTimePickerTimer();\n this.timePickerTimer = setTimeout(() => {\n this.repeat(event, 100, type, direction);\n this.cd.markForCheck();\n }, i);\n switch (type) {\n case 0:\n if (direction === 1)\n this.incrementHour(event);\n else\n this.decrementHour(event);\n break;\n case 1:\n if (direction === 1)\n this.incrementMinute(event);\n else\n this.decrementMinute(event);\n break;\n case 2:\n if (direction === 1)\n this.incrementSecond(event);\n else\n this.decrementSecond(event);\n break;\n }\n this.updateInputfield();\n }\n clearTimePickerTimer() {\n if (this.timePickerTimer) {\n clearTimeout(this.timePickerTimer);\n this.timePickerTimer = null;\n }\n }\n decrementHour(event) {\n let newHour = (this.currentHour ?? 0) - this.stepHour;\n let newPM = this.pm;\n if (this.hourFormat == '24')\n newHour = newHour < 0 ? 24 + newHour : newHour;\n else if (this.hourFormat == '12') {\n // If we were at noon/midnight, then switch\n if (this.currentHour === 12) {\n newPM = !this.pm;\n }\n newHour = newHour <= 0 ? 12 + newHour : newHour;\n }\n this.toggleAMPMIfNotMinDate(newPM);\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(newHour, this.currentMinute, this.currentSecond, newPM);\n event.preventDefault();\n }\n incrementMinute(event) {\n let newMinute = (this.currentMinute ?? 0) + this.stepMinute;\n newMinute = newMinute > 59 ? newMinute - 60 : newMinute;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, newMinute, this.currentSecond, this.pm);\n event.preventDefault();\n }\n decrementMinute(event) {\n let newMinute = (this.currentMinute ?? 0) - this.stepMinute;\n newMinute = newMinute < 0 ? 60 + newMinute : newMinute;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, newMinute, this.currentSecond, this.pm);\n event.preventDefault();\n }\n incrementSecond(event) {\n let newSecond = this.currentSecond + this.stepSecond;\n newSecond = newSecond > 59 ? newSecond - 60 : newSecond;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, newSecond, this.pm);\n event.preventDefault();\n }\n decrementSecond(event) {\n let newSecond = this.currentSecond - this.stepSecond;\n newSecond = newSecond < 0 ? 60 + newSecond : newSecond;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, newSecond, this.pm);\n event.preventDefault();\n }\n updateTime() {\n let value = this.value;\n if (this.isRangeSelection()) {\n value = this.value[1] || this.value[0];\n }\n if (this.isMultipleSelection()) {\n value = this.value[this.value.length - 1];\n }\n value = value ? new Date(value.getTime()) : new Date();\n if (this.hourFormat == '12') {\n if (this.currentHour === 12)\n value.setHours(this.pm ? 12 : 0);\n else\n value.setHours(this.pm ? this.currentHour + 12 : this.currentHour);\n }\n else {\n value.setHours(this.currentHour);\n }\n value.setMinutes(this.currentMinute);\n value.setSeconds(this.currentSecond);\n if (this.isRangeSelection()) {\n if (this.value[1])\n value = [this.value[0], value];\n else\n value = [value, null];\n }\n if (this.isMultipleSelection()) {\n value = [...this.value.slice(0, -1), value];\n }\n this.updateModel(value);\n this.onSelect.emit(value);\n this.updateInputfield();\n }\n toggleAMPM(event) {\n const newPM = !this.pm;\n this.pm = newPM;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, this.currentSecond, newPM);\n this.updateTime();\n event.preventDefault();\n }\n onUserInput(event) {\n // IE 11 Workaround for input placeholder : https://github.com/primefaces/primeng/issues/2026\n if (!this.isKeydown) {\n return;\n }\n this.isKeydown = false;\n let val = event.target.value;\n try {\n let value = this.parseValueFromString(val);\n if (this.isValidSelection(value)) {\n this.updateModel(value);\n this.updateUI();\n }\n else if (this.keepInvalid) {\n this.updateModel(value);\n }\n }\n catch (err) {\n //invalid date\n let value = this.keepInvalid ? val : null;\n this.updateModel(value);\n }\n this.filled = (val != null && val.length);\n this.onInput.emit(event);\n }\n isValidSelection(value) {\n if (this.isSingleSelection()) {\n return this.isSelectable(value.getDate(), value.getMonth(), value.getFullYear(), false);\n }\n let isValid = value.every((v) => this.isSelectable(v.getDate(), v.getMonth(), v.getFullYear(), false));\n if (isValid && this.isRangeSelection()) {\n isValid = value.length === 1 || (value.length > 1 && value[1] >= value[0]);\n }\n return isValid;\n }\n parseValueFromString(text) {\n if (!text || text.trim().length === 0) {\n return null;\n }\n let value;\n if (this.isSingleSelection()) {\n value = this.parseDateTime(text);\n }\n else if (this.isMultipleSelection()) {\n let tokens = text.split(this.multipleSeparator);\n value = [];\n for (let token of tokens) {\n value.push(this.parseDateTime(token.trim()));\n }\n }\n else if (this.isRangeSelection()) {\n let tokens = text.split(' ' + this.rangeSeparator + ' ');\n value = [];\n for (let i = 0; i < tokens.length; i++) {\n value[i] = this.parseDateTime(tokens[i].trim());\n }\n }\n return value;\n }\n parseDateTime(text) {\n let date;\n let parts = text.split(' ');\n if (this.timeOnly) {\n date = new Date();\n this.populateTime(date, parts[0], parts[1]);\n }\n else {\n const dateFormat = this.getDateFormat();\n if (this.showTime) {\n let ampm = this.hourFormat == '12' ? parts.pop() : null;\n let timeString = parts.pop();\n date = this.parseDate(parts.join(' '), dateFormat);\n this.populateTime(date, timeString, ampm);\n }\n else {\n date = this.parseDate(text, dateFormat);\n }\n }\n return date;\n }\n populateTime(value, timeString, ampm) {\n if (this.hourFormat == '12' && !ampm) {\n throw 'Invalid Time';\n }\n this.pm = ampm === 'PM' || ampm === 'pm';\n let time = this.parseTime(timeString);\n value.setHours(time.hour);\n value.setMinutes(time.minute);\n value.setSeconds(time.second);\n }\n isValidDate(date) {\n return isDate(date) && isNotEmpty(date);\n }\n updateUI() {\n let propValue = this.value;\n if (Array.isArray(propValue)) {\n propValue = propValue.length === 2 ? propValue[1] : propValue[0];\n }\n let val = this.defaultDate && this.isValidDate(this.defaultDate) && !this.value ? this.defaultDate : propValue && this.isValidDate(propValue) ? propValue : new Date();\n this.currentMonth = val.getMonth();\n this.currentYear = val.getFullYear();\n this.createMonths(this.currentMonth, this.currentYear);\n if (this.showTime || this.timeOnly) {\n this.setCurrentHourPM(val.getHours());\n this.currentMinute = val.getMinutes();\n this.currentSecond = val.getSeconds();\n }\n }\n showOverlay() {\n if (!this.overlayVisible) {\n this.updateUI();\n if (!this.touchUI) {\n this.preventFocus = true;\n }\n this.overlayVisible = true;\n }\n }\n hideOverlay() {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n this.clearTimePickerTimer();\n if (this.touchUI) {\n this.disableModality();\n }\n this.cd.markForCheck();\n }\n toggle() {\n if (!this.inline) {\n if (!this.overlayVisible) {\n this.showOverlay();\n this.inputfieldViewChild?.nativeElement.focus();\n }\n else {\n this.hideOverlay();\n }\n }\n }\n onOverlayAnimationStart(event) {\n switch (event.toState) {\n case 'visible':\n case 'visibleTouchUI':\n if (!this.inline) {\n this.overlay = event.element;\n this.overlay?.setAttribute(this.attributeSelector, '');\n const styles = !this.inline ? { position: 'absolute', top: '0', left: '0' } : undefined;\n addStyle(this.overlay, styles);\n this.appendOverlay();\n this.updateFocus();\n if (this.autoZIndex) {\n if (this.touchUI)\n ZIndexUtils.set('modal', this.overlay, this.baseZIndex || this.config.zIndex.modal);\n else\n ZIndexUtils.set('overlay', this.overlay, this.baseZIndex || this.config.zIndex.overlay);\n }\n this.alignOverlay();\n this.onShow.emit(event);\n }\n break;\n case 'void':\n this.onOverlayHide();\n this.onClose.emit(event);\n break;\n }\n }\n onOverlayAnimationDone(event) {\n switch (event.toState) {\n case 'visible':\n case 'visibleTouchUI':\n if (!this.inline) {\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n }\n break;\n case 'void':\n if (this.autoZIndex) {\n ZIndexUtils.clear(event.element);\n }\n break;\n }\n }\n appendOverlay() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n this.document.body.appendChild(this.overlay);\n else\n appendChild(this.appendTo, this.overlay);\n }\n }\n restoreOverlayAppend() {\n if (this.overlay && this.appendTo) {\n this.el.nativeElement.appendChild(this.overlay);\n }\n }\n alignOverlay() {\n if (this.touchUI) {\n this.enableModality(this.overlay);\n }\n else if (this.overlay) {\n if (this.appendTo) {\n if (this.view === 'date') {\n this.overlay.style.width = getOuterWidth(this.overlay) + 'px';\n this.overlay.style.minWidth = getOuterWidth(this.inputfieldViewChild?.nativeElement) + 'px';\n }\n else {\n this.overlay.style.width = getOuterWidth(this.inputfieldViewChild?.nativeElement) + 'px';\n }\n absolutePosition(this.overlay, this.inputfieldViewChild?.nativeElement);\n }\n else {\n relativePosition(this.overlay, this.inputfieldViewChild?.nativeElement);\n }\n }\n }\n enableModality(element) {\n if (!this.mask && this.touchUI) {\n this.mask = this.renderer.createElement('div');\n this.renderer.setStyle(this.mask, 'zIndex', String(parseInt(element.style.zIndex) - 1));\n let maskStyleClass = 'p-overlay-mask p-datepicker-mask p-datepicker-mask-scrollblocker p-overlay-mask p-overlay-mask-enter';\n addClass(this.mask, maskStyleClass);\n this.maskClickListener = this.renderer.listen(this.mask, 'click', (event) => {\n this.disableModality();\n this.overlayVisible = false;\n });\n this.renderer.appendChild(this.document.body, this.mask);\n blockBodyScroll();\n }\n }\n disableModality() {\n if (this.mask) {\n addClass(this.mask, 'p-overlay-mask-leave');\n if (!this.animationEndListener) {\n this.animationEndListener = this.renderer.listen(this.mask, 'animationend', this.destroyMask.bind(this));\n }\n }\n }\n destroyMask() {\n if (!this.mask) {\n return;\n }\n this.renderer.removeChild(this.document.body, this.mask);\n let bodyChildren = this.document.body.children;\n let hasBlockerMasks;\n for (let i = 0; i < bodyChildren.length; i++) {\n let bodyChild = bodyChildren[i];\n if (hasClass(bodyChild, 'p-datepicker-mask-scrollblocker')) {\n hasBlockerMasks = true;\n break;\n }\n }\n if (!hasBlockerMasks) {\n unblockBodyScroll();\n }\n this.unbindAnimationEndListener();\n this.unbindMaskClickListener();\n this.mask = null;\n }\n unbindMaskClickListener() {\n if (this.maskClickListener) {\n this.maskClickListener();\n this.maskClickListener = null;\n }\n }\n unbindAnimationEndListener() {\n if (this.animationEndListener && this.mask) {\n this.animationEndListener();\n this.animationEndListener = null;\n }\n }\n writeValue(value) {\n this.value = value;\n if (this.value && typeof this.value === 'string') {\n try {\n this.value = this.parseValueFromString(this.value);\n }\n catch {\n if (this.keepInvalid) {\n this.value = value;\n }\n }\n }\n this.updateInputfield();\n this.updateUI();\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n getDateFormat() {\n return this.dateFormat || this.getTranslation('dateFormat');\n }\n getFirstDateOfWeek() {\n return this._firstDayOfWeek || this.getTranslation(TranslationKeys.FIRST_DAY_OF_WEEK);\n }\n // Ported from jquery-ui datepicker formatDate\n formatDate(date, format) {\n if (!date) {\n return '';\n }\n let iFormat;\n const lookAhead = (match) => {\n const matches = iFormat + 1 < format.length && format.charAt(iFormat + 1) === match;\n if (matches) {\n iFormat++;\n }\n return matches;\n }, formatNumber = (match, value, len) => {\n let num = '' + value;\n if (lookAhead(match)) {\n while (num.length < len) {\n num = '0' + num;\n }\n }\n return num;\n }, formatName = (match, value, shortNames, longNames) => {\n return lookAhead(match) ? longNames[value] : shortNames[value];\n };\n let output = '';\n let literal = false;\n if (date) {\n for (iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\n literal = false;\n }\n else {\n output += format.charAt(iFormat);\n }\n }\n else {\n switch (format.charAt(iFormat)) {\n case 'd':\n output += formatNumber('d', date.getDate(), 2);\n break;\n case 'D':\n output += formatName('D', date.getDay(), this.getTranslation(TranslationKeys.DAY_NAMES_SHORT), this.getTranslation(TranslationKeys.DAY_NAMES));\n break;\n case 'o':\n output += formatNumber('o', Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);\n break;\n case 'm':\n output += formatNumber('m', date.getMonth() + 1, 2);\n break;\n case 'M':\n output += formatName('M', date.getMonth(), this.getTranslation(TranslationKeys.MONTH_NAMES_SHORT), this.getTranslation(TranslationKeys.MONTH_NAMES));\n break;\n case 'y':\n output += lookAhead('y') ? date.getFullYear() : (date.getFullYear() % 100 < 10 ? '0' : '') + (date.getFullYear() % 100);\n break;\n case '@':\n output += date.getTime();\n break;\n case '!':\n output += date.getTime() * 10000 + this.ticksTo1970;\n break;\n case \"'\":\n if (lookAhead(\"'\")) {\n output += \"'\";\n }\n else {\n literal = true;\n }\n break;\n default:\n output += format.charAt(iFormat);\n }\n }\n }\n }\n return output;\n }\n formatTime(date) {\n if (!date) {\n return '';\n }\n let output = '';\n let hours = date.getHours();\n let minutes = date.getMinutes();\n let seconds = date.getSeconds();\n if (this.hourFormat == '12' && hours > 11 && hours != 12) {\n hours -= 12;\n }\n if (this.hourFormat == '12') {\n output += hours === 0 ? 12 : hours < 10 ? '0' + hours : hours;\n }\n else {\n output += hours < 10 ? '0' + hours : hours;\n }\n output += ':';\n output += minutes < 10 ? '0' + minutes : minutes;\n if (this.showSeconds) {\n output += ':';\n output += seconds < 10 ? '0' + seconds : seconds;\n }\n if (this.hourFormat == '12') {\n output += date.getHours() > 11 ? ' PM' : ' AM';\n }\n return output;\n }\n parseTime(value) {\n let tokens = value.split(':');\n let validTokenLength = this.showSeconds ? 3 : 2;\n if (tokens.length !== validTokenLength) {\n throw 'Invalid time';\n }\n let h = parseInt(tokens[0]);\n let m = parseInt(tokens[1]);\n let s = this.showSeconds ? parseInt(tokens[2]) : null;\n if (isNaN(h) || isNaN(m) || h > 23 || m > 59 || (this.hourFormat == '12' && h > 12) || (this.showSeconds && (isNaN(s) || s > 59))) {\n throw 'Invalid time';\n }\n else {\n if (this.hourFormat == '12') {\n if (h !== 12 && this.pm) {\n h += 12;\n }\n else if (!this.pm && h === 12) {\n h -= 12;\n }\n }\n return { hour: h, minute: m, second: s };\n }\n }\n // Ported from jquery-ui datepicker parseDate\n parseDate(value, format) {\n if (format == null || value == null) {\n throw 'Invalid arguments';\n }\n value = typeof value === 'object' ? value.toString() : value + '';\n if (value === '') {\n return null;\n }\n let iFormat, dim, extra, iValue = 0, shortYearCutoff = typeof this.shortYearCutoff !== 'string' ? this.shortYearCutoff : (new Date().getFullYear() % 100) + parseInt(this.shortYearCutoff, 10), year = -1, month = -1, day = -1, doy = -1, literal = false, date, lookAhead = (match) => {\n let matches = iFormat + 1 < format.length && format.charAt(iFormat + 1) === match;\n if (matches) {\n iFormat++;\n }\n return matches;\n }, getNumber = (match) => {\n let isDoubled = lookAhead(match), size = match === '@' ? 14 : match === '!' ? 20 : match === 'y' && isDoubled ? 4 : match === 'o' ? 3 : 2, minSize = match === 'y' ? size : 1, digits = new RegExp('^\\\\d{' + minSize + ',' + size + '}'), num = value.substring(iValue).match(digits);\n if (!num) {\n throw 'Missing number at position ' + iValue;\n }\n iValue += num[0].length;\n return parseInt(num[0], 10);\n }, getName = (match, shortNames, longNames) => {\n let index = -1;\n let arr = lookAhead(match) ? longNames : shortNames;\n let names = [];\n for (let i = 0; i < arr.length; i++) {\n names.push([i, arr[i]]);\n }\n names.sort((a, b) => {\n return -(a[1].length - b[1].length);\n });\n for (let i = 0; i < names.length; i++) {\n let name = names[i][1];\n if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) {\n index = names[i][0];\n iValue += name.length;\n break;\n }\n }\n if (index !== -1) {\n return index + 1;\n }\n else {\n throw 'Unknown name at position ' + iValue;\n }\n }, checkLiteral = () => {\n if (value.charAt(iValue) !== format.charAt(iFormat)) {\n throw 'Unexpected literal at position ' + iValue;\n }\n iValue++;\n };\n if (this.view === 'month') {\n day = 1;\n }\n for (iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\n literal = false;\n }\n else {\n checkLiteral();\n }\n }\n else {\n switch (format.charAt(iFormat)) {\n case 'd':\n day = getNumber('d');\n break;\n case 'D':\n getName('D', this.getTranslation(TranslationKeys.DAY_NAMES_SHORT), this.getTranslation(TranslationKeys.DAY_NAMES));\n break;\n case 'o':\n doy = getNumber('o');\n break;\n case 'm':\n month = getNumber('m');\n break;\n case 'M':\n month = getName('M', this.getTranslation(TranslationKeys.MONTH_NAMES_SHORT), this.getTranslation(TranslationKeys.MONTH_NAMES));\n break;\n case 'y':\n year = getNumber('y');\n break;\n case '@':\n date = new Date(getNumber('@'));\n year = date.getFullYear();\n month = date.getMonth() + 1;\n day = date.getDate();\n break;\n case '!':\n date = new Date((getNumber('!') - this.ticksTo1970) / 10000);\n year = date.getFullYear();\n month = date.getMonth() + 1;\n day = date.getDate();\n break;\n case \"'\":\n if (lookAhead(\"'\")) {\n checkLiteral();\n }\n else {\n literal = true;\n }\n break;\n default:\n checkLiteral();\n }\n }\n }\n if (iValue < value.length) {\n extra = value.substr(iValue);\n if (!/^\\s+/.test(extra)) {\n throw 'Extra/unparsed characters found in date: ' + extra;\n }\n }\n if (year === -1) {\n year = new Date().getFullYear();\n }\n else if (year < 100) {\n year += new Date().getFullYear() - (new Date().getFullYear() % 100) + (year <= shortYearCutoff ? 0 : -100);\n }\n if (doy > -1) {\n month = 1;\n day = doy;\n do {\n dim = this.getDaysCountInMonth(year, month - 1);\n if (day <= dim) {\n break;\n }\n month++;\n day -= dim;\n } while (true);\n }\n if (this.view === 'year') {\n month = month === -1 ? 1 : month;\n day = day === -1 ? 1 : day;\n }\n date = this.daylightSavingAdjust(new Date(year, month - 1, day));\n if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) {\n throw 'Invalid date'; // E.g. 31/02/00\n }\n return date;\n }\n daylightSavingAdjust(date) {\n if (!date) {\n return null;\n }\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n return date;\n }\n updateFilledState() {\n this.filled = (this.inputFieldValue && this.inputFieldValue != '');\n }\n isValidDateForTimeConstraints(selectedDate) {\n if (this.keepInvalid) {\n return true; // If we are keeping invalid dates, we don't need to check for time constraints\n }\n return (!this.minDate || selectedDate >= this.minDate) && (!this.maxDate || selectedDate <= this.maxDate);\n }\n onTodayButtonClick(event) {\n const date = new Date();\n const dateMeta = {\n day: date.getDate(),\n month: date.getMonth(),\n year: date.getFullYear(),\n otherMonth: date.getMonth() !== this.currentMonth || date.getFullYear() !== this.currentYear,\n today: true,\n selectable: true\n };\n this.createMonths(date.getMonth(), date.getFullYear());\n this.onDateSelect(event, dateMeta);\n this.onTodayClick.emit(date);\n }\n onClearButtonClick(event) {\n this.updateModel(null);\n this.updateInputfield();\n this.hideOverlay();\n this.onClearClick.emit(event);\n }\n createResponsiveStyle() {\n if (this.numberOfMonths > 1 && this.responsiveOptions) {\n if (!this.responsiveStyleElement) {\n this.responsiveStyleElement = this.renderer.createElement('style');\n this.responsiveStyleElement.type = 'text/css';\n this.renderer.appendChild(this.document.body, this.responsiveStyleElement);\n }\n let innerHTML = '';\n if (this.responsiveOptions) {\n let responsiveOptions = [...this.responsiveOptions].filter((o) => !!(o.breakpoint && o.numMonths)).sort((o1, o2) => -1 * o1.breakpoint.localeCompare(o2.breakpoint, undefined, { numeric: true }));\n for (let i = 0; i < responsiveOptions.length; i++) {\n let { breakpoint, numMonths } = responsiveOptions[i];\n let styles = `\n .p-datepicker[${this.attributeSelector}] .p-datepicker-group:nth-child(${numMonths}) .p-datepicker-next {\n display: inline-flex !important;\n }\n `;\n for (let j = numMonths; j < this.numberOfMonths; j++) {\n styles += `\n .p-datepicker[${this.attributeSelector}] .p-datepicker-group:nth-child(${j + 1}) {\n display: none !important;\n }\n `;\n }\n innerHTML += `\n @media screen and (max-width: ${breakpoint}) {\n ${styles}\n }\n `;\n }\n }\n this.responsiveStyleElement.innerHTML = innerHTML;\n setAttribute(this.responsiveStyleElement, 'nonce', this.config?.csp()?.nonce);\n }\n }\n destroyResponsiveStyleElement() {\n if (this.responsiveStyleElement) {\n this.responsiveStyleElement.remove();\n this.responsiveStyleElement = null;\n }\n }\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.zone.runOutsideAngular(() => {\n const documentTarget = this.el ? this.el.nativeElement.ownerDocument : this.document;\n this.documentClickListener = this.renderer.listen(documentTarget, 'mousedown', (event) => {\n if (this.isOutsideClicked(event) && this.overlayVisible) {\n this.zone.run(() => {\n this.hideOverlay();\n this.onClickOutside.emit(event);\n this.cd.markForCheck();\n });\n }\n });\n });\n }\n }\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n bindDocumentResizeListener() {\n if (!this.documentResizeListener && !this.touchUI) {\n this.documentResizeListener = this.renderer.listen(this.window, 'resize', this.onWindowResize.bind(this));\n }\n }\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.containerViewChild?.nativeElement, () => {\n if (this.overlayVisible) {\n this.hideOverlay();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n isOutsideClicked(event) {\n return !(this.el.nativeElement.isSameNode(event.target) || this.isNavIconClicked(event) || this.el.nativeElement.contains(event.target) || (this.overlay && this.overlay.contains(event.target)));\n }\n isNavIconClicked(event) {\n return hasClass(event.target, 'p-datepicker-prev') || hasClass(event.target, 'p-datepicker-prev-icon') || hasClass(event.target, 'p-datepicker-next') || hasClass(event.target, 'p-datepicker-next-icon');\n }\n onWindowResize() {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hideOverlay();\n }\n }\n onOverlayHide() {\n this.currentView = this.view;\n if (this.mask) {\n this.destroyMask();\n }\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n }\n ngOnDestroy() {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n if (this.overlay && this.autoZIndex) {\n ZIndexUtils.clear(this.overlay);\n }\n this.destroyResponsiveStyleElement();\n this.clearTimePickerTimer();\n this.restoreOverlayAppend();\n this.onOverlayHide();\n super.ngOnDestroy();\n }\n static ɵfac = function Calendar_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Calendar)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.OverlayService)); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Calendar, selectors: [[\"p-calendar\"]], contentQueries: function Calendar_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, _c1, 4);\n i0.ɵɵcontentQuery(dirIndex, _c2, 4);\n i0.ɵɵcontentQuery(dirIndex, _c3, 4);\n i0.ɵɵcontentQuery(dirIndex, _c4, 4);\n i0.ɵɵcontentQuery(dirIndex, _c5, 4);\n i0.ɵɵcontentQuery(dirIndex, _c6, 4);\n i0.ɵɵcontentQuery(dirIndex, _c7, 4);\n i0.ɵɵcontentQuery(dirIndex, _c8, 4);\n i0.ɵɵcontentQuery(dirIndex, _c9, 4);\n i0.ɵɵcontentQuery(dirIndex, _c10, 4);\n i0.ɵɵcontentQuery(dirIndex, _c11, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dateTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.disabledDateTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.decadeTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.previousIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nextIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.triggerIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.clearIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.decrementIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.incrementIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n } }, viewQuery: function Calendar_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c12, 5);\n i0.ɵɵviewQuery(_c13, 5);\n i0.ɵɵviewQuery(_c14, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputfieldViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);\n } }, inputs: { iconDisplay: \"iconDisplay\", style: \"style\", styleClass: \"styleClass\", inputStyle: \"inputStyle\", inputId: \"inputId\", name: \"name\", inputStyleClass: \"inputStyleClass\", placeholder: \"placeholder\", ariaLabelledBy: \"ariaLabelledBy\", ariaLabel: \"ariaLabel\", iconAriaLabel: \"iconAriaLabel\", disabled: [2, \"disabled\", \"disabled\", booleanAttribute], dateFormat: \"dateFormat\", multipleSeparator: \"multipleSeparator\", rangeSeparator: \"rangeSeparator\", inline: [2, \"inline\", \"inline\", booleanAttribute], showOtherMonths: [2, \"showOtherMonths\", \"showOtherMonths\", booleanAttribute], selectOtherMonths: [2, \"selectOtherMonths\", \"selectOtherMonths\", booleanAttribute], showIcon: [2, \"showIcon\", \"showIcon\", booleanAttribute], fluid: [2, \"fluid\", \"fluid\", booleanAttribute], icon: \"icon\", appendTo: \"appendTo\", readonlyInput: [2, \"readonlyInput\", \"readonlyInput\", booleanAttribute], shortYearCutoff: \"shortYearCutoff\", monthNavigator: [2, \"monthNavigator\", \"monthNavigator\", booleanAttribute], yearNavigator: [2, \"yearNavigator\", \"yearNavigator\", booleanAttribute], hourFormat: \"hourFormat\", timeOnly: [2, \"timeOnly\", \"timeOnly\", booleanAttribute], stepHour: [2, \"stepHour\", \"stepHour\", numberAttribute], stepMinute: [2, \"stepMinute\", \"stepMinute\", numberAttribute], stepSecond: [2, \"stepSecond\", \"stepSecond\", numberAttribute], showSeconds: [2, \"showSeconds\", \"showSeconds\", booleanAttribute], required: [2, \"required\", \"required\", booleanAttribute], showOnFocus: [2, \"showOnFocus\", \"showOnFocus\", booleanAttribute], showWeek: [2, \"showWeek\", \"showWeek\", booleanAttribute], startWeekFromFirstDayOfYear: \"startWeekFromFirstDayOfYear\", showClear: [2, \"showClear\", \"showClear\", booleanAttribute], dataType: \"dataType\", selectionMode: \"selectionMode\", maxDateCount: [2, \"maxDateCount\", \"maxDateCount\", numberAttribute], showButtonBar: [2, \"showButtonBar\", \"showButtonBar\", booleanAttribute], todayButtonStyleClass: \"todayButtonStyleClass\", clearButtonStyleClass: \"clearButtonStyleClass\", autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute], autoZIndex: [2, \"autoZIndex\", \"autoZIndex\", booleanAttribute], baseZIndex: [2, \"baseZIndex\", \"baseZIndex\", numberAttribute], panelStyleClass: \"panelStyleClass\", panelStyle: \"panelStyle\", keepInvalid: [2, \"keepInvalid\", \"keepInvalid\", booleanAttribute], hideOnDateTimeSelect: [2, \"hideOnDateTimeSelect\", \"hideOnDateTimeSelect\", booleanAttribute], touchUI: [2, \"touchUI\", \"touchUI\", booleanAttribute], timeSeparator: \"timeSeparator\", focusTrap: [2, \"focusTrap\", \"focusTrap\", booleanAttribute], showTransitionOptions: \"showTransitionOptions\", hideTransitionOptions: \"hideTransitionOptions\", tabindex: [2, \"tabindex\", \"tabindex\", numberAttribute], variant: \"variant\", minDate: \"minDate\", maxDate: \"maxDate\", disabledDates: \"disabledDates\", disabledDays: \"disabledDays\", yearRange: \"yearRange\", showTime: \"showTime\", responsiveOptions: \"responsiveOptions\", numberOfMonths: \"numberOfMonths\", firstDayOfWeek: \"firstDayOfWeek\", locale: \"locale\", view: \"view\", defaultDate: \"defaultDate\" }, outputs: { onFocus: \"onFocus\", onBlur: \"onBlur\", onClose: \"onClose\", onSelect: \"onSelect\", onClear: \"onClear\", onInput: \"onInput\", onTodayClick: \"onTodayClick\", onClearClick: \"onClearClick\", onMonthChange: \"onMonthChange\", onYearChange: \"onYearChange\", onClickOutside: \"onClickOutside\", onShow: \"onShow\" }, standalone: true, features: [i0.ɵɵProvidersFeature([CALENDAR_VALUE_ACCESSOR, CalendarStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c16, decls: 4, vars: 6, consts: [[\"container\", \"\"], [\"inputfield\", \"\"], [\"contentWrapper\", \"\"], [3, \"ngClass\", \"ngStyle\"], [3, \"ngIf\"], [3, \"class\", \"ngStyle\", \"ngClass\", \"click\", 4, \"ngIf\"], [\"pInputText\", \"\", \"type\", \"text\", \"role\", \"combobox\", \"aria-autocomplete\", \"none\", \"aria-haspopup\", \"dialog\", \"autocomplete\", \"off\", 3, \"focus\", \"keydown\", \"click\", \"blur\", \"input\", \"value\", \"readonly\", \"ngStyle\", \"ngClass\", \"placeholder\", \"disabled\", \"pAutoFocus\", \"variant\", \"fluid\"], [4, \"ngIf\"], [\"type\", \"button\", \"aria-haspopup\", \"dialog\", \"class\", \"p-datepicker-dropdown\", \"tabindex\", \"0\", 3, \"disabled\", \"click\", 4, \"ngIf\"], [3, \"class\", \"click\", 4, \"ngIf\"], [\"class\", \"p-datepicker-clear-icon\", 3, \"click\", 4, \"ngIf\"], [3, \"click\"], [1, \"p-datepicker-clear-icon\", 3, \"click\"], [4, \"ngTemplateOutlet\"], [\"type\", \"button\", \"aria-haspopup\", \"dialog\", \"tabindex\", \"0\", 1, \"p-datepicker-dropdown\", 3, \"click\", \"disabled\"], [3, \"ngClass\", 4, \"ngIf\"], [3, \"ngClass\"], [1, \"p-datepicker-input-icon-container\"], [3, \"ngClass\", \"click\", 4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"click\", \"ngClass\"], [3, \"click\", \"ngStyle\", \"ngClass\"], [\"class\", \"p-datepicker-time-picker\", 4, \"ngIf\"], [\"class\", \"p-datepicker-buttonbar\", 4, \"ngIf\"], [1, \"p-datepicker-calendar-container\"], [\"class\", \"p-datepicker-calendar\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"p-datepicker-month-view\", 4, \"ngIf\"], [\"class\", \"p-datepicker-year-view\", 4, \"ngIf\"], [1, \"p-datepicker-calendar\"], [1, \"p-datepicker-header\"], [\"size\", \"small\", \"rounded\", \"\", \"text\", \"\", \"styleClass\", \"p-datepicker-prev-button p-button-icon-only\", \"type\", \"button\", 3, \"keydown\", \"onClick\", \"ngStyle\"], [1, \"p-datepicker-title\"], [\"type\", \"button\", \"class\", \"p-datepicker-select-month\", \"pRipple\", \"\", 3, \"disabled\", \"click\", \"keydown\", 4, \"ngIf\"], [\"type\", \"button\", \"class\", \"p-datepicker-select-year\", \"pRipple\", \"\", 3, \"disabled\", \"click\", \"keydown\", 4, \"ngIf\"], [\"class\", \"p-datepicker-decade\", 4, \"ngIf\"], [\"rounded\", \"\", \"text\", \"\", \"size\", \"small\", \"styleClass\", \"p-datepicker-next-button p-button-icon-only\", 3, \"keydown\", \"onClick\", \"ngStyle\"], [\"class\", \"p-datepicker-day-view\", \"role\", \"grid\", 4, \"ngIf\"], [\"type\", \"button\", \"pRipple\", \"\", 1, \"p-datepicker-select-month\", 3, \"click\", \"keydown\", \"disabled\"], [\"type\", \"button\", \"pRipple\", \"\", 1, \"p-datepicker-select-year\", 3, \"click\", \"keydown\", \"disabled\"], [1, \"p-datepicker-decade\"], [\"role\", \"grid\", 1, \"p-datepicker-day-view\"], [\"class\", \"p-datepicker-weekheader p-disabled\", 4, \"ngIf\"], [\"class\", \"p-datepicker-weekday-cell\", \"scope\", \"col\", 4, \"ngFor\", \"ngForOf\"], [4, \"ngFor\", \"ngForOf\"], [1, \"p-datepicker-weekheader\", \"p-disabled\"], [\"scope\", \"col\", 1, \"p-datepicker-weekday-cell\"], [1, \"p-datepicker-weekday\"], [\"class\", \"p-datepicker-weeknumber\", 4, \"ngIf\"], [3, \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [1, \"p-datepicker-weeknumber\"], [1, \"p-datepicker-weeklabel-container\", \"p-disabled\"], [\"draggable\", \"false\", \"pRipple\", \"\", 3, \"click\", \"keydown\", \"ngClass\"], [\"class\", \"p-hidden-accessible\", \"aria-live\", \"polite\", 4, \"ngIf\"], [\"aria-live\", \"polite\", 1, \"p-hidden-accessible\"], [1, \"p-datepicker-month-view\"], [\"pRipple\", \"\", 3, \"ngClass\", \"click\", \"keydown\", 4, \"ngFor\", \"ngForOf\"], [\"pRipple\", \"\", 3, \"click\", \"keydown\", \"ngClass\"], [1, \"p-datepicker-year-view\"], [1, \"p-datepicker-time-picker\"], [1, \"p-datepicker-hour-picker\"], [\"rounded\", \"\", \"text\", \"\", \"size\", \"small\", \"styleClass\", \"p-datepicker-increment-button p-button-icon-only\", 3, \"keydown\", \"keydown.enter\", \"keydown.space\", \"mousedown\", \"mouseup\", \"keyup.enter\", \"keyup.space\", \"mouseleave\"], [1, \"p-datepicker-separator\"], [1, \"p-datepicker-minute-picker\"], [\"class\", \"p-datepicker-separator\", 4, \"ngIf\"], [\"class\", \"p-datepicker-second-picker\", 4, \"ngIf\"], [\"class\", \"p-datepicker-ampm-picker\", 4, \"ngIf\"], [1, \"p-datepicker-second-picker\"], [1, \"p-datepicker-ampm-picker\"], [\"size\", \"small\", \"text\", \"\", \"rounded\", \"\", \"styleClass\", \"p-datepicker-increment-button p-button-icon-only\", 3, \"keydown\", \"onClick\", \"keydown.enter\"], [\"size\", \"small\", \"text\", \"\", \"rounded\", \"\", \"styleClass\", \"p-datepicker-increment-button p-button-icon-only\", 3, \"keydown\", \"click\", \"keydown.enter\"], [1, \"p-datepicker-buttonbar\"], [\"size\", \"small\", \"styleClass\", \"p-datepicker-today-button\", 3, \"keydown\", \"onClick\", \"label\", \"ngClass\"], [\"size\", \"small\", \"styleClass\", \"p-datepicker-clear-button\", 3, \"keydown\", \"onClick\", \"label\", \"ngClass\"]], template: function Calendar_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵprojectionDef(_c15);\n i0.ɵɵelementStart(0, \"span\", 3, 0);\n i0.ɵɵtemplate(2, Calendar_ng_template_2_Template, 5, 24, \"ng-template\", 4)(3, Calendar_div_3_Template, 9, 20, \"div\", 5);\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", ctx.rootClass)(\"ngStyle\", ctx.style);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx.inline);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.inline || ctx.overlayVisible);\n } }, dependencies: [CommonModule, i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, Button, Ripple, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, TimesIcon, CalendarIcon, AutoFocus, InputText, SharedModule], encapsulation: 2, data: { animation: [\n trigger('overlayAnimation', [\n state('visibleTouchUI', style({\n transform: 'translate(-50%,-50%)',\n opacity: 1\n })),\n transition('void => visible', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}', style({ opacity: 1, transform: '*' }))]),\n transition('visible => void', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))]),\n transition('void => visibleTouchUI', [style({ opacity: 0, transform: 'translate3d(-50%, -40%, 0) scale(0.9)' }), animate('{{showTransitionParams}}')]),\n transition('visibleTouchUI => void', [\n animate('{{hideTransitionParams}}', style({\n opacity: 0,\n transform: 'translate3d(-50%, -40%, 0) scale(0.9)'\n }))\n ])\n ])\n ] }, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Calendar, [{\n type: Component,\n args: [{\n selector: 'p-calendar',\n standalone: true,\n imports: [CommonModule, Button, Ripple, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, TimesIcon, CalendarIcon, AutoFocus, InputText, SharedModule],\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 \n \n \n \n \n \n
\n \n {{ getMonthName(month.month) }}\n \n \n {{ getYear(month) }}\n \n \n {{ yearPickerValues()[0] }} - {{ yearPickerValues()[yearPickerValues().length - 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 {{ date.day }}\n \n \n \n \n \n \n \n
\n {{ date.day }}\n
\n
\n \n
\n \n
\n {{ getTranslation('weekHeader') }}\n \n {{ weekDay }}\n
\n \n {{ month.weekNumbers[j] }}\n \n
\n
\n
\n
\n \n {{ m }}\n
\n {{ m }}\n
\n \n
\n
\n \n {{ y }}\n
\n {{ y }}\n
\n \n
\n
\n
\n
\n \n \n\n \n \n 0{{ currentHour }}\n \n \n\n \n \n
\n
\n {{ timeSeparator }}\n
\n
\n \n \n\n \n \n 0{{ currentMinute }}\n \n \n \n \n \n \n
\n
\n {{ timeSeparator }}\n
\n
\n \n \n\n \n \n 0{{ currentSecond }}\n \n \n\n \n \n
\n
\n {{ timeSeparator }}\n
\n
\n \n \n \n \n {{ pm ? 'PM' : 'AM' }}\n \n \n \n \n
\n
\n
\n \n \n
\n \n \n \n
\n `,\n animations: [\n trigger('overlayAnimation', [\n state('visibleTouchUI', style({\n transform: 'translate(-50%,-50%)',\n opacity: 1\n })),\n transition('void => visible', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}', style({ opacity: 1, transform: '*' }))]),\n transition('visible => void', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))]),\n transition('void => visibleTouchUI', [style({ opacity: 0, transform: 'translate3d(-50%, -40%, 0) scale(0.9)' }), animate('{{showTransitionParams}}')]),\n transition('visibleTouchUI => void', [\n animate('{{hideTransitionParams}}', style({\n opacity: 0,\n transform: 'translate3d(-50%, -40%, 0) scale(0.9)'\n }))\n ])\n ])\n ],\n providers: [CALENDAR_VALUE_ACCESSOR, CalendarStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{ type: i0.NgZone }, { type: i1.OverlayService }], { iconDisplay: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], inputStyle: [{\n type: Input\n }], inputId: [{\n type: Input\n }], name: [{\n type: Input\n }], inputStyleClass: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], iconAriaLabel: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], dateFormat: [{\n type: Input\n }], multipleSeparator: [{\n type: Input\n }], rangeSeparator: [{\n type: Input\n }], inline: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showOtherMonths: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], selectOtherMonths: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showIcon: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], fluid: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], icon: [{\n type: Input\n }], appendTo: [{\n type: Input\n }], readonlyInput: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], shortYearCutoff: [{\n type: Input\n }], monthNavigator: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], yearNavigator: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], hourFormat: [{\n type: Input\n }], timeOnly: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], stepHour: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], stepMinute: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], stepSecond: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], showSeconds: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], required: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showOnFocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showWeek: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], startWeekFromFirstDayOfYear: [{\n type: Input\n }], showClear: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], dataType: [{\n type: Input\n }], selectionMode: [{\n type: Input\n }], maxDateCount: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], showButtonBar: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], todayButtonStyleClass: [{\n type: Input\n }], clearButtonStyleClass: [{\n type: Input\n }], autofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], autoZIndex: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], baseZIndex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], panelStyleClass: [{\n type: Input\n }], panelStyle: [{\n type: Input\n }], keepInvalid: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], hideOnDateTimeSelect: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], touchUI: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], timeSeparator: [{\n type: Input\n }], focusTrap: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], showTransitionOptions: [{\n type: Input\n }], hideTransitionOptions: [{\n type: Input\n }], tabindex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], variant: [{\n type: Input\n }], minDate: [{\n type: Input\n }], maxDate: [{\n type: Input\n }], disabledDates: [{\n type: Input\n }], disabledDays: [{\n type: Input\n }], yearRange: [{\n type: Input\n }], showTime: [{\n type: Input\n }], responsiveOptions: [{\n type: Input\n }], numberOfMonths: [{\n type: Input\n }], firstDayOfWeek: [{\n type: Input\n }], locale: [{\n type: Input\n }], view: [{\n type: Input\n }], defaultDate: [{\n type: Input\n }], onFocus: [{\n type: Output\n }], onBlur: [{\n type: Output\n }], onClose: [{\n type: Output\n }], onSelect: [{\n type: Output\n }], onClear: [{\n type: Output\n }], onInput: [{\n type: Output\n }], onTodayClick: [{\n type: Output\n }], onClearClick: [{\n type: Output\n }], onMonthChange: [{\n type: Output\n }], onYearChange: [{\n type: Output\n }], onClickOutside: [{\n type: Output\n }], onShow: [{\n type: Output\n }], dateTemplate: [{\n type: ContentChild,\n args: ['date', { descendants: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: ['header', { descendants: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: ['footer', { descendants: false }]\n }], disabledDateTemplate: [{\n type: ContentChild,\n args: ['disabledDate', { descendants: false }]\n }], decadeTemplate: [{\n type: ContentChild,\n args: ['decade', { descendants: false }]\n }], previousIconTemplate: [{\n type: ContentChild,\n args: ['previousicon', { descendants: false }]\n }], nextIconTemplate: [{\n type: ContentChild,\n args: ['nexticon', { descendants: false }]\n }], triggerIconTemplate: [{\n type: ContentChild,\n args: ['triggericon', { descendants: false }]\n }], clearIconTemplate: [{\n type: ContentChild,\n args: ['clearicon', { descendants: false }]\n }], decrementIconTemplate: [{\n type: ContentChild,\n args: ['decrementicon', { descendants: false }]\n }], incrementIconTemplate: [{\n type: ContentChild,\n args: ['incrementicon', { descendants: false }]\n }], inputIconTemplate: [{\n type: ContentChild,\n args: ['inputicon', { descendants: false }]\n }], containerViewChild: [{\n type: ViewChild,\n args: ['container', { static: false }]\n }], inputfieldViewChild: [{\n type: ViewChild,\n args: ['inputfield', { static: false }]\n }], content: [{\n type: ViewChild,\n args: ['contentWrapper', { static: false }]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(Calendar, { className: \"Calendar\" }); })();\nclass CalendarModule {\n static ɵfac = function CalendarModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CalendarModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CalendarModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Calendar, SharedModule, SharedModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CalendarModule, [{\n type: NgModule,\n args: [{\n imports: [Calendar, SharedModule],\n exports: [Calendar, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(CalendarModule, { imports: [Calendar, SharedModule], exports: [Calendar, SharedModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CALENDAR_VALUE_ACCESSOR, Calendar, CalendarModule, CalendarStyle };\n","import {isDevMode, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\r\n\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\n\r\nimport {HttpProgressInterceptor} from \"@commons/services/http.interceptor/http-progress-interceptor.service\";\r\n\r\nimport {SharedModule} from \"@shared/shared.module\";\r\nimport {ShowTimeoutModalService} from \"@shared/services/show-timeout-modal.service\";\r\nimport {ShowErrorModalService} from \"@shared/services/show-error-modal.service\";\r\nimport {AppErrorHandler} from \"@shared/error-handler\";\r\n\r\nimport {LinksListComponent} from './routes/links-list/links-list.component';\r\nimport {LinkViewComponent} from './routes/link-view/link-view.component';\r\nimport {LinksListTableComponent} from './routes/links-list/components/links-list-table/links-list-table.component';\r\nimport {VehiclesListComponent} from './routes/link-view/components/vehicles-list/vehicles-list.component';\r\nimport {SelectedVehiclesComponent} from './routes/link-view/components/selected-vehicles/selected-vehicles.component';\r\nimport {LinkNameComponent} from './routes/link-view/components/link-name/link-name.component';\r\nimport {LinkActivityComponent} from './routes/link-view/components/link-activity/link-activity.component';\r\nimport {SearchInputComponent} from './routes/links-list/components/search-input/search-input.component';\r\nimport {AddedLinkModalComponent} from './routes/links-list/components/added-link-modal/added-link-modal.component';\r\nimport {\r\n ConfirmLinksRemovalModalComponent\r\n} from './routes/links-list/components/confirm-links-removal-modal/confirm-links-removal-modal.component';\r\nimport {RootRouteComponent} from './routes/root-route/root-route.component';\r\nimport {IntegrationsComponent} from './routes/integrations/integrations.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n LinksListComponent,\r\n LinkViewComponent,\r\n LinksListTableComponent,\r\n VehiclesListComponent,\r\n SelectedVehiclesComponent,\r\n LinkNameComponent,\r\n LinkActivityComponent,\r\n SearchInputComponent,\r\n AddedLinkModalComponent,\r\n ConfirmLinksRemovalModalComponent,\r\n RootRouteComponent,\r\n IntegrationsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n // DataSharingRoutingModule,\r\n SharedModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TranslateModule,\r\n ],\r\n exports: [\r\n RootRouteComponent,\r\n ]\r\n})\r\nexport class DataSharingModule {\r\n\r\n constructor(\r\n private showTimeoutModalService: ShowTimeoutModalService,\r\n private showErrorModalService: ShowErrorModalService\r\n ) {\r\n if (isDevMode())\r\n console.log('DataSharingModule');\r\n\r\n this.subscribeToError();\r\n this.subscribeToHttpProgressInterceptorEvents();\r\n }\r\n\r\n private subscribeToError() {\r\n AppErrorHandler.$onError.subscribe(error => this.showErrorModalService.showModal(error));\r\n }\r\n\r\n private subscribeToHttpProgressInterceptorEvents() {\r\n HttpProgressInterceptor.$errorSubject.subscribe(() => this.showTimeoutModalService.showModal());\r\n HttpProgressInterceptor.$timeoutSubject.subscribe(() => this.showTimeoutModalService.showModal());\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MapPanelComponent } from './routes/map-panel/map-panel.component';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport {SharedModule} from \"@shared/shared.module\";\r\n\r\n@NgModule({\r\n declarations: [\r\n MapPanelComponent\r\n ],\r\n exports: [\r\n MapPanelComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TranslateModule,\r\n SharedModule\r\n ]\r\n})\r\nexport class MapPanelModule { }\r\n","import {isDevMode, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ReactiveFormsModule} from \"@angular/forms\";\r\n\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\n\r\nimport {HttpProgressInterceptor} from \"@commons/services/http.interceptor/http-progress-interceptor.service\";\r\n\r\nimport {ShowTimeoutModalService} from \"@shared/services/show-timeout-modal.service\";\r\nimport {ShowErrorModalService} from \"@shared/services/show-error-modal.service\";\r\nimport {AppErrorHandler} from \"@shared/error-handler\";\r\nimport {SharedModule} from \"@shared/shared.module\";\r\n\r\nimport {MainRouteComponent} from './routes/main-route/main-route.component';\r\nimport {VehiclesListComponent} from './routes/main-route/components/vehicles-list/vehicles-list.component';\r\nimport {VehiclesFilterComponent} from './routes/main-route/components/vehicles-filter/vehicles-filter.component';\r\nimport {VehicleItemComponent} from './routes/main-route/components/vehicles-list/components/vehicle-item/vehicle-item.component';\r\nimport {\r\n VehicleHandoversListComponent\r\n} from './routes/main-route/components/vehicle-handovers-list/vehicle-handovers-list.component';\r\nimport {\r\n HandoversListItemComponent\r\n} from './routes/main-route/components/vehicle-handovers-list/components/handovers-list-item/handovers-list-item.component';\r\nimport {\r\n RightPanelComponent\r\n} from './routes/main-route/components/right-panel/right-panel.component';\r\nimport {WorkerStatementComponent} from './routes/main-route/components/worker-statment/worker-statement.component';\r\nimport { HandoverComponent } from './routes/main-route/components/handover/handover.component';\r\nimport { HandoverSectionComponent } from './routes/main-route/components/handover/components/handover-section/handover-section.component';\r\nimport { HandoverDamagesComponent } from './routes/main-route/components/handover/components/handover-damages/handover-damages.component';\r\nimport { HandoverGeneralComponent } from './routes/main-route/components/handover/components/handover-general/handover-general.component';\r\nimport { HandoverCommentsComponent } from './routes/main-route/components/handover/components/handover-comments/handover-comments.component';\r\nimport { HandoverEquipmentComponent } from './routes/main-route/components/handover/components/handover-equipment/handover-equipment.component';\r\nimport { HandoverHeaderComponent } from './routes/main-route/components/handover/components/handover-header/handover-header.component';\r\nimport { HandoverTopLabelComponent } from './routes/main-route/components/handover/components/handover-top-label/handover-top-label.component';\r\nimport { HandoverStatementComponent } from './routes/main-route/components/handover/components/handover-statement/handover-statement.component';\r\nimport { HandoverSignatureComponent } from './routes/main-route/components/handover/components/handover-signature/handover-signature.component';\r\nimport { HandoverBottomLabelComponent } from './routes/main-route/components/handover/components/handover-bottom-label/handover-bottom-label.component';\r\nimport { HandoverMenuComponent } from './routes/main-route/components/handover/components/handover-menu/handover-menu.component';\r\nimport { HandoverLimitedAccessModalComponent } from './routes/main-route/components/vehicle-handovers-list/components/handover-limited-access-modal/handover-limited-access-modal.component';\r\nimport { HandoverAddComponent } from './routes/main-route/components/handover-add/handover-add.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n MainRouteComponent,\r\n VehiclesListComponent,\r\n VehiclesFilterComponent,\r\n VehicleItemComponent,\r\n VehicleHandoversListComponent,\r\n HandoversListItemComponent,\r\n RightPanelComponent,\r\n WorkerStatementComponent,\r\n HandoverComponent,\r\n HandoverSectionComponent,\r\n HandoverDamagesComponent,\r\n HandoverGeneralComponent,\r\n HandoverCommentsComponent,\r\n HandoverEquipmentComponent,\r\n HandoverHeaderComponent,\r\n HandoverTopLabelComponent,\r\n HandoverStatementComponent,\r\n HandoverSignatureComponent,\r\n HandoverBottomLabelComponent,\r\n HandoverMenuComponent,\r\n HandoverLimitedAccessModalComponent,\r\n HandoverAddComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TranslateModule,\r\n SharedModule,\r\n ReactiveFormsModule\r\n ],\r\n exports: [\r\n MainRouteComponent\r\n ]\r\n})\r\nexport class HandoverModule {\r\n constructor(\r\n private showTimeoutModalService: ShowTimeoutModalService,\r\n private showErrorModalService: ShowErrorModalService\r\n ) {\r\n this.subscribeToError();\r\n this.subscribeToHttpProgressInterceptorEvents();\r\n }\r\n\r\n private subscribeToError() {\r\n AppErrorHandler.$onError.subscribe(error => this.showErrorModalService.showModal(error));\r\n }\r\n\r\n private subscribeToHttpProgressInterceptorEvents() {\r\n HttpProgressInterceptor.$errorSubject.subscribe(() => this.showTimeoutModalService.showModal());\r\n HttpProgressInterceptor.$timeoutSubject.subscribe(() => this.showTimeoutModalService.showModal());\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { ColorPickerModule } from 'primeng/colorpicker';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\n\r\nimport { AreasComponent } from './areas.component';\r\nimport { AreasListComponent } from './areas-list/areas-list.component';\r\nimport { AreaFormComponent } from './area-form/area-form.component';\r\nimport { AreaItemListComponent } from './areas-list/area-item-list/area-item-list.component';\r\nimport { PipesModule } from '@commons/pipes/pipes.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\nconst components = [\r\n AreasComponent,\r\n AreasListComponent,\r\n AreaFormComponent,\r\n AreaItemListComponent\r\n];\r\n\r\n@NgModule({\r\n declarations: components,\r\n exports: components,\r\n imports: [\r\n CommonModule,\r\n InputTextModule,\r\n CheckboxModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AccordionModule,\r\n ButtonModule,\r\n MultiSelectModule,\r\n ColorPickerModule,\r\n TooltipModule,\r\n ProgressSpinnerModule,\r\n SkeletonModule,\r\n PipesModule,\r\n TranslateModule,\r\n ]\r\n})\r\nexport class AreasModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { AdFuelSavingComponent } from './ad-fuel-saving/ad-fuel-saving.component';\r\nimport { DigitalDisplayDirective } from './digital-display.directive';\r\nimport { AdTypicalUiComponent } from './ad-typical-ui/ad-typical-ui.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AdFuelSavingComponent,\r\n DigitalDisplayDirective,\r\n AdTypicalUiComponent\r\n ],\r\n exports: [\r\n AdFuelSavingComponent,\r\n AdTypicalUiComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class AdsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\nimport { NewsComponent } from './news.component';\r\nimport { NewsRssService } from './news-rss.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n NewsComponent\r\n ],\r\n exports: [\r\n NewsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TranslateModule\r\n ],\r\n providers: [NewsRssService]\r\n})\r\nexport class NewsModule { }\r\n","
\r\n
\r\n
","import {\r\n Component,\r\n HostListener,\r\n OnInit,\r\n ElementRef,\r\n AfterContentInit,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewEncapsulation,\r\n AfterViewInit,\r\n Output,\r\n EventEmitter,\r\n OnDestroy,\r\n Input\r\n} from '@angular/core';\r\nimport {filter, Subscription } from 'rxjs';\r\n\r\nimport { ScrollBarService } from './scroll-bar.service';\r\n\r\n@Component({\r\n templateUrl: './scrolled-bar.component.html',\r\n selector: 'tk-scroll-bar',\r\n styleUrls: ['./scrolled-bar.component.less'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ScrolledBarComponent implements OnInit, OnDestroy {\r\n\r\n\r\n @Output() onScroll: EventEmitter = new EventEmitter();\r\n\r\n @Input() elementId?: string;\r\n\r\n public scrollTrackVisible = false;\r\n\r\n private isDragged = false;\r\n\r\n private isDraggedTop = 0;\r\n\r\n private isDraggedClientTop = 0;\r\n\r\n private options = { factor: 1 };\r\n\r\n public itemScrollTrackTop = 0;\r\n\r\n public itemScrollTrackHeight: any;\r\n\r\n private itemScrollTrackHeightDiff = 0;\r\n\r\n public itemsScrollHeight = 0;\r\n\r\n private deltaSub: Subscription;\r\n\r\n private optionsSub: Subscription;\r\n\r\n constructor(\r\n private $element: ElementRef,\r\n private $scrollBar: ScrollBarService\r\n ) {\r\n\r\n this.deltaSub = this.$scrollBar.getDelta().pipe(filter(delta => delta && delta.elementId === this.elementId))\r\n .subscribe(delta => {\r\n this.itemScrollTrackTop = delta.delta;\r\n if (this.itemScrollTrackTop < 0) {\r\n this.itemScrollTrackTop = 0;\r\n }\r\n if (this.itemScrollTrackTop >= this.itemsScrollHeight - this.itemScrollTrackHeight) {\r\n this.itemScrollTrackTop = this.itemsScrollHeight - this.itemScrollTrackHeight;\r\n }\r\n });\r\n this.optionsSub = this.$scrollBar.getOptions()\r\n .pipe(filter(options => options && options.elementId === this.elementId))\r\n .subscribe(options => {\r\n this.options = options;\r\n this.calculateTrackHeight();\r\n });\r\n\r\n }\r\n\r\n @HostListener('pointerdown', ['$event'])\r\n public onPointerDown(e: any) {\r\n\r\n if (!this.isDragged) {\r\n this.isDragged = true;\r\n\r\n let layerY = 0;\r\n layerY = e.layerY;\r\n // jak scroll tracker\r\n if (e.target.classList.contains('scroll-tracker')) {\r\n const top = parseInt((e.target.style.top || '0').replace('px', ''), 10);\r\n layerY = top;\r\n }\r\n\r\n // lapie pozycje klikniecia\r\n // jezeli klikniecie jest poza scrollem to dciagam jak moge w gore latwo w dol nie wiecej niz do krawedzi\r\n this.isDraggedClientTop = e.clientY;\r\n if (layerY <= this.itemScrollTrackTop) {\r\n this.itemScrollTrackTop = layerY;\r\n } else {\r\n if (layerY > this.itemScrollTrackTop + this.itemScrollTrackHeight) {\r\n this.itemScrollTrackTop = layerY;\r\n }\r\n }\r\n\r\n // if (this.itemScrollTrackTop > this.itemsScrollHeight - this.itemScrollTrackHeight) {\r\n // this.itemScrollTrackTop = this.itemsScrollHeight - this.itemScrollTrackHeight;\r\n // }\r\n\r\n const position = Math.ceil(this.itemScrollTrackTop / this.options.factor);\r\n this.$scrollBar.setScrollDelta({ elementId: this.elementId, position: position });\r\n\r\n if (e.stopPropagation) { e.stopPropagation(); }\r\n if (e.preventDefault) { e.preventDefault(); }\r\n e.cancelBubble = true;\r\n e.returnValue = false;\r\n return false;\r\n }\r\n return false; //TODO GB - dodany return - nie wiem czy wynik jest poprawny\r\n }\r\n\r\n @HostListener('document:pointerup', ['$event'])\r\n public onPointerUp(e: any) {\r\n\r\n if (this.isDragged) {\r\n this.isDragged = false;\r\n\r\n if (e.stopPropagation) { e.stopPropagation(); }\r\n if (e.preventDefault) { e.preventDefault(); }\r\n e.cancelBubble = true;\r\n e.returnValue = false;\r\n return false;\r\n }\r\n return false; //TODO GB - dodany return - nie wiem czy wynik jest poprawny\r\n }\r\n\r\n\r\n @HostListener('document:pointermove', ['$event'])\r\n public onPointerMove(e: any) {\r\n\r\n if (this.isDragged && e.target) {\r\n\r\n // klikamy przed suwakiem\r\n let itemScrollTrackTop = e.clientY - this.isDraggedClientTop;\r\n itemScrollTrackTop = (this.itemScrollTrackTop || 0) + itemScrollTrackTop;\r\n\r\n const itemScrollTrackHeight = this.itemScrollTrackHeight;\r\n\r\n if (itemScrollTrackTop < 0) {\r\n itemScrollTrackTop = 0;\r\n } else if (itemScrollTrackTop > this.itemsScrollHeight - itemScrollTrackHeight) {\r\n itemScrollTrackTop = this.itemsScrollHeight - itemScrollTrackHeight;\r\n }\r\n\r\n\r\n this.itemScrollTrackTop = Math.ceil(itemScrollTrackTop);\r\n this.isDraggedClientTop = e.clientY;\r\n\r\n\r\n const position = Math.ceil(\r\n this.itemScrollTrackTop / this.options.factor) +\r\n Math.ceil(this.itemScrollTrackTop * this.itemScrollTrackHeightDiff / this.itemsScrollHeight / this.options.factor);\r\n this.$scrollBar.setScrollDelta({ elementId: this.elementId, position: position });\r\n\r\n\r\n if (e.stopPropagation) { e.stopPropagation(); }\r\n if (e.preventDefault) { e.preventDefault(); }\r\n e.cancelBubble = true;\r\n e.returnValue = false;\r\n return false;\r\n }\r\n return false; //TODO GB - dodany return - nie wiem czy wynik jest poprawny\r\n }\r\n\r\n private calculateTrackHeight() {\r\n this.itemsScrollHeight = (this.$element.nativeElement.offsetParent ? this.$element.nativeElement.offsetParent.clientHeight : 0);\r\n\r\n\r\n // top pozwala na poprawne obliczenie dlugosci tracka\r\n if (this.options && this.options.factor && this.itemsScrollHeight) {\r\n let itemScrollTrackHeight = Math.floor((this.options.factor || 1) * this.itemsScrollHeight);\r\n\r\n if (itemScrollTrackHeight < 25) {\r\n this.itemScrollTrackHeightDiff = 25 - itemScrollTrackHeight;\r\n itemScrollTrackHeight = 25;\r\n }\r\n\r\n this.itemScrollTrackHeight = itemScrollTrackHeight;\r\n }\r\n\r\n this.scrollTrackVisible = this.itemScrollTrackHeight < this.itemsScrollHeight;\r\n }\r\n\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.deltaSub) {\r\n this.deltaSub.unsubscribe();\r\n }\r\n if (this.optionsSub) {\r\n this.optionsSub.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { CommonsModule } from '../commons/commons.module';\r\nimport { MapModule } from '../map/map.module';\r\nimport { UiScrollModule } from 'ngx-ui-scroll';\r\nimport { DatePicker } from 'primeng/datepicker';\r\nimport { LottieComponent } from 'ngx-lottie';\r\n\r\nimport { BokComponent } from './bok/bok.component';\r\nimport { NotFoundComponent } from './notfound/not-found.component';\r\nimport { PanelComponent } from './panel/panel.component';\r\nimport { CommonPlaceholderComponent } from './placeholders/common/common-placeholder.component';\r\n\r\nimport { VehiclePanelLiteComponent } from './vehicle/list-lite/vehicle-panel-lite.component';\r\nimport { VehicleListLiteItemComponent } from './vehicle/list-lite/item/vehicle-list-lite-item.component';\r\nimport { VehicleListFullComponent } from './vehicle/list-full/vehicle-list-full.component';\r\nimport { VehicleListFullConfigComponent } from './vehicle/list-full/config/vehicle-list-full-config.component';\r\nimport { VehicleListFullIndicatorStatusHeaderComponent } from './vehicle/list-full/headers/indicator-status/vehicle-list-full-indicator-status-header.component';\r\nimport { VehicleListFullIndicatorValueHeaderComponent } from './vehicle/list-full/headers/indicator-value/vehicle-list-full-indicator-value-header.component';\r\nimport { VehicleListFullTachoHeaderComponent } from './vehicle/list-full/headers/tacho/vehicle-list-full-tacho-header.component';\r\nimport { VehicleListFullItemComponent } from './vehicle/list-full/item/vehicle-list-full-item.component';\r\nimport { VehicleListFilterComponent } from './vehicle/filter/vehicle-list-filter.component';\r\nimport { VehicleDetailsComponent } from './vehicle/details/vehicle-details.component';\r\nimport { VehicleDetailsHeaderComponent } from './vehicle/details/header/vehicle-details-header.component';\r\nimport { VehicleDetailsTabsComponent } from './vehicle/details/tabs/vehicle-details-tabs.component';\r\nimport { VehicleDetailsEcoTabComponent } from './vehicle/details/tabs/eco/vehicle-details-eco-tab.component';\r\nimport { VehicleDetailsParamsTabComponent } from './vehicle/details/tabs/params/vehicle-details-params-tab.component';\r\nimport { VehicleDetailsRoutesTabComponent } from './vehicle/details/tabs/routes/vehicle-details-routes-tab.component';\r\nimport { VehicleDetailsTachoTabComponent } from './vehicle/details/tabs/tacho/vehicle-details-tacho-tab.component';\r\nimport { VehicleDetailsETollTabComponent } from './vehicle/details/tabs/e-toll/vehicle-details-etoll-tab.component';\r\nimport { VehicleControlIndicatorValueComponent } from './vehicle/control-value/vehicle-control-indicator-value.component';\r\nimport { VehicleLocationComponent } from './vehicle/location/vehicle-location.component';\r\nimport { VehicleCurrentDriverComponent } from './vehicle/details/header/current-driver/vehicle-current-driver.component';\r\nimport { VehicleControlIndicatorSignalValueComponent } from './vehicle/control-value/singnal-value/vehicle-control-indicator-signal-value.component';\r\nimport { VehicleControlIndicatorValueTypeComponent } from './vehicle/control-value/control-value-type/vehicle-control-indicator-value-type.component';\r\n\r\nimport { DriverListLiteComponent } from './driver/list-lite/driver-list-lite.component';\r\nimport { DriverDetailsComponent } from './driver/details/driver-details.component';\r\nimport { DriverDetailsHeaderComponent } from './driver/details/header/driver-details-header.component';\r\nimport { DriverDetailsTabsComponent } from './driver/details/tabs/driver-details-tabs.component';\r\nimport { DriverDetailsEcoTabComponent } from './driver/details/tabs/eco/driver-details-eco-tab.component';\r\nimport { DriverDetailsTachoTabComponent } from './driver/details/tabs/tacho/driver-details-tacho-tab.component';\r\nimport { DriverTachoSlotDetailsComponent } from './driver/details/tabs/tacho/details/driver-tacho-slot-details.component';\r\n\r\nimport { NotificationComponent } from './notification/notification.component';\r\n\r\nimport { EventListLiteComponent } from './event/list-lite/event-list-lite.component';\r\n\r\nimport { AreaListLiteComponent } from './area/list-lite/area-list-lite.component';\r\nimport { AreaListFilterComponent } from './area/filter/area-list-filter.component';\r\nimport { AreaCreateComponent } from './area/create/area-create.component';\r\nimport { AreaListItemComponent } from './area/list-lite/item/area-list-item.component';\r\nimport { AreaFormComponent } from './area/form/area-form.component';\r\nimport { AreaFormInputComponent } from './area/form/input/area-form-input.component';\r\nimport { PipesModule } from '../commons/pipes/pipes.module';\r\nimport { VehicleDetailsRouteItemComponent } from './vehicle/details/tabs/routes/item/vehicle-details-route-item.component';\r\nimport { VehicleDetailsRouteStatsComponent } from './vehicle/details/tabs/routes/stats/vehicle-details-route-stats.component';\r\nimport { VehicleListFullExpandComponent } from './vehicle/list-full/expand/vehicle-list-full-expand.component';\r\nimport { ScrollBarModule } from '@commons/forms/scroll-bar/scroll-bar.module';\r\nimport { DistancePipe } from './vehicle/details/tabs/routes/stats/pipes/distance.pipe';\r\nimport { FuelPipe } from './vehicle/details/tabs/routes/stats/pipes/fuel.pipe';\r\nimport { AreaDeleteComponent } from './area/delete/area-delete.component';\r\nimport { VehicleLastUpdatedComponent } from './vehicle/details/header/last-updated/vehicle-last-updated.component';\r\nimport { VehicleSignalLostComponent } from './vehicle/details/header/signal-lost/vehicle-signal-lost.component';\r\nimport { VehicleTachoDetailsComponent } from './vehicle/details/tabs/tacho/details/vehicle-tacho-details.component';\r\nimport { VehicleTachoDriverComponent } from './vehicle/details/tabs/tacho/driver/vehicle-tacho-driver.component';\r\nimport { VehicleTachoStatusComponent } from './vehicle/details/tabs/tacho/status/vehicle-tacho-status.component';\r\nimport { VehicleListFullInidicatorColumnFullComponent } from './vehicle/list-full/headers/indicator-column-full/vehicle-list-full-inidicator-column-full.component';\r\n\r\nimport { ETollBalanceComponent } from './vehicle/list-lite/etoll-panel/etoll-balance/e-toll-balance.component';\r\nimport { ETollItemComponent } from './vehicle/list-lite/etoll-panel/etoll-item/e-toll-item.component';\r\nimport { ActivateETollComponent } from './vehicle/list-lite/etoll-panel/activate-etoll/activate-e-toll.component';\r\n\r\nimport {SharedModule} from \"@shared/shared.module\";\r\nimport {UserProfileModule} from \"@user-profile/user-profile.module\";\r\nimport { HelpModule } from '@help/help.module';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport {CalendarModule} from 'primeng/calendar';\r\n\r\nimport { NoETollDataComponent } from './vehicle/list-lite/etoll-panel/no-etoll-data/no-etoll-data.component';\r\nimport { ETollBalanceFooterComponent } from './vehicle/list-lite/etoll-panel/etoll-balance-footer/etoll-balance-footer.component';\r\nimport { DirectivesModule } from '@commons/directives/directives.module';\r\n\r\nimport {DataSharingModule} from \"@data-sharing/data-sharing.module\";\r\nimport { SidePanelContainerComponent } from './side-panel-container/side-panel-container.component';\r\nimport { FullPanelContainerComponent } from './full-panel-container/full-panel-container.component';\r\nimport {\r\n DriverDetailsDataTabComponent\r\n} from \"@layout/driver/details/tabs/driver-details-data-tab/driver-details-data-tab.component\";\r\nimport {\r\n DriverDeactivationModalComponent\r\n} from \"@layout/driver/details/tabs/driver-details-data-tab/driver-deactivation-modal/driver-deactivation-modal.component\";\r\nimport { DriverUnarchiveModalComponent } from './driver/details/tabs/driver-details-data-tab/driver-unarchive-modal/driver-unarchive-modal.component';\r\nimport { DriverListItemComponent } from './driver/list-lite/driver-list-item/driver-list-item.component';\r\nimport {MapPanelModule} from \"@src/app/map-panel/map-panel.module\";\r\nimport {HandoverModule} from \"@handover/handover.module\";\r\nimport { LoadingInitialDataComponent } from './panel/components/loading-initial-data/loading-initial-data.component';\r\nimport { VehicleListComponent } from './vehicle/list-lite/vehicle-list/vehicle-list.component';\r\nimport { AreasModule } from './areas/areas.module';\r\nimport { EtollDropdownBalanceComponent } from './panel/components/etoll-dropdown-balance/etoll-dropdown-balance.component';\r\nimport { RightPanelContainerComponent } from './right-panel-container/right-panel-container.component';\r\nimport { ListVehicleItemComponent } from './vehicle/components/list-vehicle-item/list-vehicle-item.component';\r\nimport { FilterControlComponent } from './vehicle/filter/filter-control/filter-control.component';\r\nimport { ConfiguratorListVehicleComponent } from './vehicle/components/configurator-list-vehicle/configurator-list-vehicle.component';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { ThVehicleDetailsLocksTabComponent } from './vehicle/details/tabs/th-vehicle-details-locks-tab/th-vehicle-details-locks-tab.component';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\nimport { ETollDisableModalComponent } from './vehicle/details/tabs/e-toll/e-toll-disable-modal/e-toll-disable-modal.component';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { VehicleTachoSlotsComponent } from './vehicle/details/tabs/tacho/vehicle-tacho-slots/vehicle-tacho-slots.component';\r\nimport { DriverTachoComponent } from './vehicle/details/tabs/tacho/driver-tacho/driver-tacho.component';\r\nimport { TachoSummaryDataComponent } from './vehicle/details/tabs/tacho/tacho-summary-data/tacho-summary-data.component';\r\nimport { TachoDataDetailsComponent } from './vehicle/details/tabs/tacho/tacho-data-details/tacho-data-details.component';\r\nimport { TachoEmptyStateComponent } from './vehicle/details/tabs/tacho/tacho-empty-state/tacho-empty-state.component';\r\nimport { SentTabComponent } from './vehicle/details/tabs/sent-tab/sent-tab.component';\r\nimport { SentTabNoActiveServiceComponent } from './vehicle/details/tabs/sent-tab/sent-tab-no-active-service/sent-tab-no-active-service.component';\r\nimport { ListVehicleTachoItemComponent } from './vehicle/list-lite/list-vehicle-tacho-item/list-vehicle-tacho-item.component';\r\nimport { SentDisableModalComponent } from './vehicle/details/tabs/sent-tab/sent-disable-modal/sent-disable-modal.component';\r\nimport { VehicleDetailsRoutesCalendarComponent } from './vehicle/details/tabs/routes/vehicle-details-routes-calendar/vehicle-details-routes-calendar.component';\r\nimport { VehicleDetailsRouteSummaryDataComponent } from './vehicle/details/tabs/routes/vehicle-details-route-summary-data/vehicle-details-route-summary-data.component';\r\nimport { VehicleDetailsRoutesDaysSwitchComponent } from './vehicle/details/tabs/routes/vehicle-details-routes-days-switch/vehicle-details-routes-days-switch.component';\r\nimport { AdsModule } from '@shared/components/ads/ads.module';\r\nimport { NewsModule } from './news/news.module';\r\nimport { EventListComponent } from './event/list-lite/event-list/event-list.component';\r\nimport { EventItemComponent } from './event/list-lite/event-list/alarm-item/event-item.component';\r\nimport { FuelItemComponent } from './event/list-lite/event-list/fuel-item/fuel-item.component';\r\nimport { AreaItemComponent } from './event/list-lite/event-list/area-item/area-item.component';\r\nimport { DatepickerEventComponent } from './event/list-lite/filters/datepicker-event/datepicker-event.component';\r\nimport { FiltersEventsComponent } from './event/list-lite/filters/filters-events/filters-events.component';\r\nimport { EventListItemInfoComponent } from './event/list-lite/event-list/info/event-list-item-info.component';\r\nimport { DropdownMenuComponent } from '@shared/standalone/dropdown-menu/dropdown-menu.component';\r\nimport { WorkersComponent } from '../directories/workers/workers.component';\r\nimport { WorkersAddFormComponent } from '../directories/workers/workers-add-form/workers-add-form.component';\r\nimport { GroupRoutesByDatePipe } from '@shared/pipes/group-routes-by-date.pipe';\r\nimport { FormatDatePipe } from '@shared/pipes/format-date.pipe';\r\nimport { NetworkTypeMarkerComponent } from '../standalone-components/network-type-marker/network-type-marker.component';\r\nimport { NetworkWarrningComponent } from '../standalone-components/network-warrning/network-warrning.component';\r\nimport { VehicleBusinessNumberPinComponent } from '../standalone-components/vehicle-business-number-pin/vehicle-business-number-pin.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n CommonsModule,\r\n MapModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n PipesModule,\r\n ScrollBarModule,\r\n SharedModule,\r\n UserProfileModule,\r\n HelpModule,\r\n TranslateModule,\r\n DataSharingModule,\r\n MapPanelModule,\r\n HandoverModule,\r\n AreasModule,\r\n PipesModule,\r\n TooltipModule,\r\n OverlayPanelModule,\r\n RadioButtonModule,\r\n DirectivesModule,\r\n ButtonModule,\r\n CheckboxModule,\r\n InputTextModule,\r\n ProgressBarModule,\r\n InputSwitchModule,\r\n MatDialogModule,\r\n SkeletonModule,\r\n ProgressSpinnerModule,\r\n CalendarModule,\r\n AdsModule,\r\n NewsModule,\r\n UiScrollModule,\r\n DropdownMenuComponent,\r\n WorkersComponent,\r\n WorkersAddFormComponent,\r\n GroupRoutesByDatePipe,\r\n FormatDatePipe,\r\n DatePicker,\r\n NetworkTypeMarkerComponent,\r\n NetworkWarrningComponent,\r\n VehicleBusinessNumberPinComponent,\r\n LottieComponent,\r\n ],\r\n declarations: [\r\n CommonPlaceholderComponent,\r\n BokComponent,\r\n NotFoundComponent,\r\n PanelComponent,\r\n VehiclePanelLiteComponent,\r\n VehicleListLiteItemComponent,\r\n VehicleListFullComponent,\r\n VehicleListFullConfigComponent,\r\n VehicleDetailsComponent,\r\n VehicleDetailsHeaderComponent,\r\n VehicleDetailsTabsComponent,\r\n VehicleDetailsEcoTabComponent,\r\n VehicleDetailsParamsTabComponent,\r\n VehicleDetailsRoutesTabComponent,\r\n VehicleDetailsTachoTabComponent,\r\n VehicleTachoDetailsComponent,\r\n VehicleTachoDriverComponent,\r\n VehicleTachoStatusComponent,\r\n VehicleDetailsETollTabComponent,\r\n VehicleCurrentDriverComponent,\r\n VehicleListFilterComponent,\r\n VehicleListFullItemComponent,\r\n VehicleControlIndicatorValueComponent,\r\n VehicleControlIndicatorSignalValueComponent,\r\n VehicleListFullIndicatorStatusHeaderComponent,\r\n VehicleListFullIndicatorValueHeaderComponent,\r\n VehicleListFullTachoHeaderComponent,\r\n VehicleLocationComponent,\r\n VehicleControlIndicatorValueTypeComponent,\r\n DriverListLiteComponent,\r\n DriverDetailsComponent,\r\n DriverDetailsHeaderComponent,\r\n DriverDetailsTabsComponent,\r\n DriverDetailsEcoTabComponent,\r\n DriverDetailsTachoTabComponent,\r\n DriverTachoSlotDetailsComponent,\r\n NotificationComponent,\r\n EventListLiteComponent,\r\n EventListItemInfoComponent,\r\n AreaListLiteComponent,\r\n AreaListFilterComponent,\r\n AreaCreateComponent,\r\n AreaListItemComponent,\r\n AreaFormComponent,\r\n AreaFormInputComponent,\r\n VehicleDetailsRouteItemComponent,\r\n VehicleDetailsRouteStatsComponent,\r\n VehicleListFullExpandComponent,\r\n DistancePipe,\r\n FuelPipe,\r\n AreaDeleteComponent,\r\n VehicleLastUpdatedComponent,\r\n VehicleSignalLostComponent,\r\n VehicleListFullInidicatorColumnFullComponent,\r\n ETollBalanceComponent,\r\n ETollItemComponent,\r\n ActivateETollComponent,\r\n NoETollDataComponent,\r\n ETollBalanceFooterComponent,\r\n SidePanelContainerComponent,\r\n FullPanelContainerComponent,\r\n DriverDetailsDataTabComponent,\r\n DriverDeactivationModalComponent,\r\n DriverUnarchiveModalComponent,\r\n DriverListItemComponent,\r\n LoadingInitialDataComponent,\r\n VehicleListComponent,\r\n EtollDropdownBalanceComponent,\r\n RightPanelContainerComponent,\r\n ListVehicleItemComponent,\r\n FilterControlComponent,\r\n ConfiguratorListVehicleComponent,\r\n ThVehicleDetailsLocksTabComponent,\r\n ETollDisableModalComponent,\r\n VehicleTachoSlotsComponent,\r\n DriverTachoComponent,\r\n TachoSummaryDataComponent,\r\n TachoDataDetailsComponent,\r\n TachoEmptyStateComponent,\r\n SentTabComponent,\r\n SentTabNoActiveServiceComponent,\r\n ListVehicleTachoItemComponent,\r\n SentDisableModalComponent,\r\n VehicleDetailsRoutesCalendarComponent,\r\n VehicleDetailsRouteSummaryDataComponent,\r\n VehicleDetailsRoutesDaysSwitchComponent,\r\n EventListComponent,\r\n EventItemComponent,\r\n FuelItemComponent,\r\n AreaItemComponent,\r\n DatepickerEventComponent,\r\n FiltersEventsComponent,\r\n ],\r\n exports: [\r\n NotFoundComponent,\r\n PanelComponent,\r\n NotificationComponent,\r\n BokComponent,\r\n]\r\n})\r\nexport class LayoutModule {\r\n\r\n}\r\n","import {isDevMode, NgModule} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\nimport {SharedModule} from \"@shared/shared.module\";\r\n\r\nimport { SurveyComponent } from './components/survey/survey.component';\r\nimport { StarComponent } from './components/star/star.component';\r\nimport {SurveySentComponent} from \"./components/survey-sent/survey-sent.component\";\r\nimport { RatingComponent } from './components/rating/rating.component';\r\nimport { ReasonsListComponent } from './components/reasons-list/reasons-list.component';\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\n\r\n@NgModule({\r\n declarations: [\r\n SurveyComponent,\r\n StarComponent,\r\n SurveySentComponent,\r\n RatingComponent,\r\n ReasonsListComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n FormsModule,\r\n TranslateModule\r\n ],\r\n exports: [ SurveyComponent ]\r\n})\r\nexport class SurveyModule {\r\n constructor() {\r\n if (isDevMode())\r\n console.log('SurveyModule loaded');\r\n }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS, HttpClient } from '@angular/common/http';\r\nimport { DEFAULT_CURRENCY_CODE, ErrorHandler, isDevMode, LOCALE_ID, NgModule } from '@angular/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { RedZoomModule } from 'ngx-red-zoom';\r\nimport player from 'lottie-web';\r\nimport { provideLottieOptions } from 'ngx-lottie';\r\n\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { providePrimeNG } from 'primeng/config';\r\nimport Aura from '@primeng/themes/aura';\r\n\r\nimport { HttpProgressInterceptor } from '@commons/services/http.interceptor/http-progress-interceptor.service';\r\n\r\nimport { SharedModule } from '@shared/shared.module';\r\nimport { ErrorLoggerProxy } from '@shared/error-logger-proxy';\r\nimport { AuthGuard } from '@shared/guards/auth-guard.service';\r\nimport { LanguageService } from '@shared/services/language.service';\r\n\r\nimport { AppRoutesModule } from '@src/app/app-routes.module';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { LayoutModule } from './layout/layout.module';\r\nimport { SurveyModule } from './survey/survey.module';\r\n\r\nexport function HttpLoaderFactory(httpClient: HttpClient) {\r\n return new TranslateHttpLoader(httpClient);\r\n}\r\n\r\n@NgModule({\r\n declarations: [AppComponent],\r\n bootstrap: [AppComponent],\r\n imports: [\r\n BrowserModule,\r\n CommonModule,\r\n RouterModule,\r\n HttpClientModule,\r\n BrowserAnimationsModule,\r\n AppRoutesModule,\r\n LayoutModule,\r\n SharedModule,\r\n SurveyModule,\r\n TranslateModule.forRoot({\r\n defaultLanguage: 'pl',\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient],\r\n },\r\n }),\r\n RedZoomModule,\r\n ],\r\n providers: [\r\n { provide: ErrorHandler, useClass: ErrorLoggerProxy },\r\n {\r\n provide: LOCALE_ID,\r\n deps: [LanguageService],\r\n useFactory: (service: LanguageService) => service.currentLanguageViewModel.locale,\r\n },\r\n {\r\n provide: DEFAULT_CURRENCY_CODE,\r\n deps: [LanguageService],\r\n useFactory: (service: LanguageService) => service.currentLanguageViewModel.currency,\r\n },\r\n { provide: HTTP_INTERCEPTORS, useClass: HttpProgressInterceptor, multi: true },\r\n AuthGuard,\r\n providePrimeNG({ \r\n theme: {\r\n preset: Aura,\r\n options: {\r\n darkModeSelector: false || 'none'\r\n }\r\n }\r\n }),\r\n provideLottieOptions({\r\n player: () => player,\r\n }),\r\n ],\r\n})\r\nexport class AppModule {\r\n constructor() {\r\n if (isDevMode()) console.warn('14:55');\r\n }\r\n}\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t const N = 16;\n\n\t //Origin pbox and sbox, derived from PI\n\t const ORIG_P = [\n\t 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,\n\t 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,\n\t 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,\n\t 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,\n\t 0x9216D5D9, 0x8979FB1B\n\t ];\n\n\t const ORIG_S = [\n\t [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,\n\t 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,\n\t 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,\n\t 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,\n\t 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,\n\t 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,\n\t 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,\n\t 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,\n\t 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,\n\t 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,\n\t 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,\n\t 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,\n\t 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,\n\t 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,\n\t 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,\n\t 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,\n\t 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,\n\t 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,\n\t 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,\n\t 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,\n\t 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,\n\t 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,\n\t 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,\n\t 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,\n\t 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,\n\t 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,\n\t 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,\n\t 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,\n\t 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,\n\t 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,\n\t 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,\n\t 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,\n\t 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,\n\t 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,\n\t 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,\n\t 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,\n\t 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,\n\t 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,\n\t 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,\n\t 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,\n\t 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,\n\t 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,\n\t 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,\n\t 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,\n\t 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,\n\t 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,\n\t 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,\n\t 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,\n\t 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,\n\t 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,\n\t 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,\n\t 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,\n\t 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,\n\t 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,\n\t 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,\n\t 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,\n\t 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,\n\t 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,\n\t 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,\n\t 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,\n\t 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,\n\t 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,\n\t 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,\n\t 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ],\n\t [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,\n\t 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,\n\t 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,\n\t 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,\n\t 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,\n\t 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,\n\t 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,\n\t 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,\n\t 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,\n\t 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,\n\t 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,\n\t 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,\n\t 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,\n\t 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,\n\t 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,\n\t 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,\n\t 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,\n\t 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,\n\t 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,\n\t 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,\n\t 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,\n\t 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,\n\t 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,\n\t 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,\n\t 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,\n\t 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,\n\t 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,\n\t 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,\n\t 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,\n\t 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,\n\t 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,\n\t 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,\n\t 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,\n\t 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,\n\t 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,\n\t 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,\n\t 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,\n\t 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,\n\t 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,\n\t 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,\n\t 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,\n\t 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,\n\t 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,\n\t 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,\n\t 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,\n\t 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,\n\t 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,\n\t 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,\n\t 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,\n\t 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,\n\t 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,\n\t 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,\n\t 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,\n\t 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,\n\t 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,\n\t 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,\n\t 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,\n\t 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,\n\t 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,\n\t 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,\n\t 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,\n\t 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,\n\t 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,\n\t 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ],\n\t [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,\n\t 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,\n\t 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,\n\t 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,\n\t 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,\n\t 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,\n\t 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,\n\t 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,\n\t 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,\n\t 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,\n\t 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,\n\t 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,\n\t 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,\n\t 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,\n\t 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,\n\t 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,\n\t 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,\n\t 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,\n\t 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,\n\t 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,\n\t 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,\n\t 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,\n\t 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,\n\t 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,\n\t 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,\n\t 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,\n\t 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,\n\t 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,\n\t 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,\n\t 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,\n\t 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,\n\t 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,\n\t 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,\n\t 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,\n\t 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,\n\t 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,\n\t 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,\n\t 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,\n\t 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,\n\t 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,\n\t 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,\n\t 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,\n\t 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,\n\t 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,\n\t 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,\n\t 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,\n\t 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,\n\t 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,\n\t 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,\n\t 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,\n\t 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,\n\t 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,\n\t 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,\n\t 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,\n\t 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,\n\t 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,\n\t 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,\n\t 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,\n\t 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,\n\t 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,\n\t 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,\n\t 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,\n\t 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,\n\t 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ],\n\t [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,\n\t 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,\n\t 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,\n\t 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,\n\t 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,\n\t 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,\n\t 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,\n\t 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,\n\t 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,\n\t 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,\n\t 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,\n\t 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,\n\t 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,\n\t 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,\n\t 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,\n\t 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,\n\t 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,\n\t 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,\n\t 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,\n\t 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,\n\t 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,\n\t 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,\n\t 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,\n\t 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,\n\t 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,\n\t 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,\n\t 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,\n\t 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,\n\t 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,\n\t 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,\n\t 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,\n\t 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,\n\t 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,\n\t 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,\n\t 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,\n\t 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,\n\t 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,\n\t 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,\n\t 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,\n\t 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,\n\t 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,\n\t 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,\n\t 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,\n\t 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,\n\t 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,\n\t 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,\n\t 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,\n\t 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,\n\t 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,\n\t 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,\n\t 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,\n\t 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,\n\t 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,\n\t 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,\n\t 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,\n\t 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,\n\t 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,\n\t 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,\n\t 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,\n\t 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,\n\t 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,\n\t 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,\n\t 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,\n\t 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ]\n\t ];\n\n\t var BLOWFISH_CTX = {\n\t pbox: [],\n\t sbox: []\n\t }\n\n\t function F(ctx, x){\n\t let a = (x >> 24) & 0xFF;\n\t let b = (x >> 16) & 0xFF;\n\t let c = (x >> 8) & 0xFF;\n\t let d = x & 0xFF;\n\n\t let y = ctx.sbox[0][a] + ctx.sbox[1][b];\n\t y = y ^ ctx.sbox[2][c];\n\t y = y + ctx.sbox[3][d];\n\n\t return y;\n\t }\n\n\t function BlowFish_Encrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = 0; i < N; ++i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[N];\n\t Xl = Xl ^ ctx.pbox[N + 1];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t function BlowFish_Decrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = N + 1; i > 1; --i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[1];\n\t Xl = Xl ^ ctx.pbox[0];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t /**\n\t * Initialization ctx's pbox and sbox.\n\t *\n\t * @param {Object} ctx The object has pbox and sbox.\n\t * @param {Array} key An array of 32-bit words.\n\t * @param {int} keysize The length of the key.\n\t *\n\t * @example\n\t *\n\t * BlowFishInit(BLOWFISH_CTX, key, 128/32);\n\t */\n\t function BlowFishInit(ctx, key, keysize)\n\t {\n\t for(let Row = 0; Row < 4; Row++)\n\t {\n\t ctx.sbox[Row] = [];\n\t for(let Col = 0; Col < 256; Col++)\n\t {\n\t ctx.sbox[Row][Col] = ORIG_S[Row][Col];\n\t }\n\t }\n\n\t let keyIndex = 0;\n\t for(let index = 0; index < N + 2; index++)\n\t {\n\t ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];\n\t keyIndex++;\n\t if(keyIndex >= keysize)\n\t {\n\t keyIndex = 0;\n\t }\n\t }\n\n\t let Data1 = 0;\n\t let Data2 = 0;\n\t let res = 0;\n\t for(let i = 0; i < N + 2; i += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.pbox[i] = Data1;\n\t ctx.pbox[i + 1] = Data2;\n\t }\n\n\t for(let i = 0; i < 4; i++)\n\t {\n\t for(let j = 0; j < 256; j += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.sbox[i][j] = Data1;\n\t ctx.sbox[i][j + 1] = Data2;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t /**\n\t * Blowfish block cipher algorithm.\n\t */\n\t var Blowfish = C_algo.Blowfish = BlockCipher.extend({\n\t _doReset: function () {\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t //Initialization pbox and sbox\n\t BlowFishInit(BLOWFISH_CTX, keyWords, keySize);\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t blockSize: 64/32,\n\n\t keySize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Blowfish = BlockCipher._createHelper(Blowfish);\n\t}());\n\n\n\treturn CryptoJS.Blowfish;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt, hasher) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t if (!hasher) {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\t } else {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);\n\t }\n\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64url encoding strategy.\n\t */\n\t var Base64url = C_enc.Base64url = {\n\t /**\n\t * Converts a word array to a Base64url string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {string} The Base64url string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\n\t */\n\t stringify: function (wordArray, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = urlSafe ? this._safe_map : this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64url string to a word array.\n\t *\n\t * @param {string} base64Str The Base64url string.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\n\t */\n\t parse: function (base64Str, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = urlSafe ? this._safe_map : this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n\t _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64url;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./enc-base64url\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"), require(\"./blowfish\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./enc-base64url\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\", \"./blowfish\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t var keystream;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t for (var i = data.sigBytes - 1; i >= 0; i--) {\n\t if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t data.sigBytes = i + 1;\n\t break;\n\t }\n\t }\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA256\n\t * @property {number} iterations The number of iterations to perform. Default: 250000\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA256,\n\t iterations: 250000\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t var tMsw;\n\t var tLsw;\n\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t var Wil;\n\t var Wih;\n\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t Wih = Wi.high = M[offset + i * 2] | 0;\n\t Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t Wil = gamma0l + Wi7l;\n\t Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t Wil = Wil + gamma1l;\n\t Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t Wil = Wil + Wi16l;\n\t Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function trunc(value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Days in 1 year\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 *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var daysInYear = 365.2425;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInDay = secondsInHour * 24;\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInWeek = secondsInDay * 7;\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInYear = secondsInDay * daysInYear;\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMonth = secondsInYear / 12;\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInQuarter = secondsInMonth * 3;","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","import { millisecondsInMinute } from \"../constants/index.js\";\nimport differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\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 * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of minutes\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function differenceInMinutes(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\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 */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\n\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: {\n regular: 'mniej niż sekunda',\n past: 'mniej niż sekundę',\n future: 'mniej niż sekundę'\n },\n twoFour: 'mniej niż {{count}} sekundy',\n other: 'mniej niż {{count}} sekund'\n },\n xSeconds: {\n one: {\n regular: 'sekunda',\n past: 'sekundę',\n future: 'sekundę'\n },\n twoFour: '{{count}} sekundy',\n other: '{{count}} sekund'\n },\n halfAMinute: {\n one: 'pół minuty',\n twoFour: 'pół minuty',\n other: 'pół minuty'\n },\n lessThanXMinutes: {\n one: {\n regular: 'mniej niż minuta',\n past: 'mniej niż minutę',\n future: 'mniej niż minutę'\n },\n twoFour: 'mniej niż {{count}} minuty',\n other: 'mniej niż {{count}} minut'\n },\n xMinutes: {\n one: {\n regular: 'minuta',\n past: 'minutę',\n future: 'minutę'\n },\n twoFour: '{{count}} minuty',\n other: '{{count}} minut'\n },\n aboutXHours: {\n one: {\n regular: 'około godziny',\n past: 'około godziny',\n future: 'około godzinę'\n },\n twoFour: 'około {{count}} godziny',\n other: 'około {{count}} godzin'\n },\n xHours: {\n one: {\n regular: 'godzina',\n past: 'godzinę',\n future: 'godzinę'\n },\n twoFour: '{{count}} godziny',\n other: '{{count}} godzin'\n },\n xDays: {\n one: {\n regular: 'dzień',\n past: 'dzień',\n future: '1 dzień'\n },\n twoFour: '{{count}} dni',\n other: '{{count}} dni'\n },\n aboutXWeeks: {\n one: 'około tygodnia',\n twoFour: 'około {{count}} tygodni',\n other: 'około {{count}} tygodni'\n },\n xWeeks: {\n one: 'tydzień',\n twoFour: '{{count}} tygodnie',\n other: '{{count}} tygodni'\n },\n aboutXMonths: {\n one: 'około miesiąc',\n twoFour: 'około {{count}} miesiące',\n other: 'około {{count}} miesięcy'\n },\n xMonths: {\n one: 'miesiąc',\n twoFour: '{{count}} miesiące',\n other: '{{count}} miesięcy'\n },\n aboutXYears: {\n one: 'około rok',\n twoFour: 'około {{count}} lata',\n other: 'około {{count}} lat'\n },\n xYears: {\n one: 'rok',\n twoFour: '{{count}} lata',\n other: '{{count}} lat'\n },\n overXYears: {\n one: 'ponad rok',\n twoFour: 'ponad {{count}} lata',\n other: 'ponad {{count}} lat'\n },\n almostXYears: {\n one: 'prawie rok',\n twoFour: 'prawie {{count}} lata',\n other: 'prawie {{count}} lat'\n }\n};\n\nfunction declensionGroup(scheme, count) {\n if (count === 1) {\n return scheme.one;\n }\n\n var rem100 = count % 100; // ends with 11-20\n\n if (rem100 <= 20 && rem100 > 10) {\n return scheme.other;\n }\n\n var rem10 = rem100 % 10; // ends with 2, 3, 4\n\n if (rem10 >= 2 && rem10 <= 4) {\n return scheme.twoFour;\n }\n\n return scheme.other;\n}\n\nfunction declension(scheme, count, time) {\n var group = declensionGroup(scheme, count);\n var finalText = typeof group === 'string' ? group : group[time];\n return finalText.replace('{{count}}', String(count));\n}\n\nvar formatDistance = function formatDistance(token, count, options) {\n var scheme = formatDistanceLocale[token];\n\n if (!(options !== null && options !== void 0 && options.addSuffix)) {\n return declension(scheme, count, 'regular');\n }\n\n if (options.comparison && options.comparison > 0) {\n return 'za ' + declension(scheme, count, 'future');\n } else {\n return declension(scheme, count, 'past') + ' temu';\n }\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n long: 'do MMMM y',\n medium: 'do MMM y',\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import isSameUTCWeek from \"../../../../_lib/isSameUTCWeek/index.js\";\nvar adjectivesLastWeek = {\n masculine: 'ostatni',\n feminine: 'ostatnia'\n};\nvar adjectivesThisWeek = {\n masculine: 'ten',\n feminine: 'ta'\n};\nvar adjectivesNextWeek = {\n masculine: 'następny',\n feminine: 'następna'\n};\nvar dayGrammaticalGender = {\n 0: 'feminine',\n 1: 'masculine',\n 2: 'masculine',\n 3: 'feminine',\n 4: 'masculine',\n 5: 'masculine',\n 6: 'feminine'\n};\n\nfunction dayAndTimeWithAdjective(token, date, baseDate, options) {\n var adjectives;\n\n if (isSameUTCWeek(date, baseDate, options)) {\n adjectives = adjectivesThisWeek;\n } else if (token === 'lastWeek') {\n adjectives = adjectivesLastWeek;\n } else if (token === 'nextWeek') {\n adjectives = adjectivesNextWeek;\n } else {\n throw new Error(\"Cannot determine adjectives for token \".concat(token));\n }\n\n var day = date.getUTCDay();\n var grammaticalGender = dayGrammaticalGender[day];\n var adjective = adjectives[grammaticalGender];\n return \"'\".concat(adjective, \"' eeee 'o' p\");\n}\n\nvar formatRelativeLocale = {\n lastWeek: dayAndTimeWithAdjective,\n yesterday: \"'wczoraj o' p\",\n today: \"'dzisiaj o' p\",\n tomorrow: \"'jutro o' p\",\n nextWeek: dayAndTimeWithAdjective,\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(token, date, baseDate, options);\n }\n\n return format;\n};\n\nexport default formatRelative;","import requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nexport default function isSameUTCWeek(dirtyDateLeft, dirtyDateRight, options) {\n requiredArgs(2, arguments);\n var dateLeftStartOfWeek = startOfUTCWeek(dirtyDateLeft, options);\n var dateRightStartOfWeek = startOfUTCWeek(dirtyDateRight, options);\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['p.n.e.', 'n.e.'],\n abbreviated: ['p.n.e.', 'n.e.'],\n wide: ['przed naszą erą', 'naszej ery']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['I kw.', 'II kw.', 'III kw.', 'IV kw.'],\n wide: ['I kwartał', 'II kwartał', 'III kwartał', 'IV kwartał']\n};\nvar monthValues = {\n narrow: ['S', 'L', 'M', 'K', 'M', 'C', 'L', 'S', 'W', 'P', 'L', 'G'],\n abbreviated: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'],\n wide: ['styczeń', 'luty', 'marzec', 'kwiecień', 'maj', 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', 'grudzień']\n};\nvar monthFormattingValues = {\n narrow: ['s', 'l', 'm', 'k', 'm', 'c', 'l', 's', 'w', 'p', 'l', 'g'],\n abbreviated: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'],\n wide: ['stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia']\n};\nvar dayValues = {\n narrow: ['N', 'P', 'W', 'Ś', 'C', 'P', 'S'],\n short: ['nie', 'pon', 'wto', 'śro', 'czw', 'pią', 'sob'],\n abbreviated: ['niedz.', 'pon.', 'wt.', 'śr.', 'czw.', 'pt.', 'sob.'],\n wide: ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota']\n};\nvar dayFormattingValues = {\n narrow: ['n', 'p', 'w', 'ś', 'c', 'p', 's'],\n short: ['nie', 'pon', 'wto', 'śro', 'czw', 'pią', 'sob'],\n abbreviated: ['niedz.', 'pon.', 'wt.', 'śr.', 'czw.', 'pt.', 'sob.'],\n wide: ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'półn.',\n noon: 'poł',\n morning: 'rano',\n afternoon: 'popoł.',\n evening: 'wiecz.',\n night: 'noc'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'północ',\n noon: 'południe',\n morning: 'rano',\n afternoon: 'popołudnie',\n evening: 'wieczór',\n night: 'noc'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'północ',\n noon: 'południe',\n morning: 'rano',\n afternoon: 'popołudnie',\n evening: 'wieczór',\n night: 'noc'\n }\n};\nvar dayPeriodFormattingValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'o półn.',\n noon: 'w poł.',\n morning: 'rano',\n afternoon: 'po poł.',\n evening: 'wiecz.',\n night: 'w nocy'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o północy',\n noon: 'w południe',\n morning: 'rano',\n afternoon: 'po południu',\n evening: 'wieczorem',\n night: 'w nocy'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o północy',\n noon: 'w południe',\n morning: 'rano',\n afternoon: 'po południu',\n evening: 'wieczorem',\n night: 'w nocy'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n return String(dirtyNumber);\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: monthFormattingValues,\n defaultFormattingWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide',\n formattingValues: dayFormattingValues,\n defaultFormattingWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: dayPeriodFormattingValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Polish locale.\n * @language Polish\n * @iso-639-2 pol\n * @author Mateusz Derks [@ertrzyiks]{@link https://github.com/ertrzyiks}\n * @author Just RAG [@justrag]{@link https://github.com/justrag}\n * @author Mikolaj Grzyb [@mikolajgrzyb]{@link https://github.com/mikolajgrzyb}\n * @author Mateusz Tokarski [@mutisz]{@link https://github.com/mutisz}\n */\n\nvar locale = {\n code: 'pl',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(p\\.?\\s*n\\.?\\s*e\\.?\\s*|n\\.?\\s*e\\.?\\s*)/i,\n abbreviated: /^(p\\.?\\s*n\\.?\\s*e\\.?\\s*|n\\.?\\s*e\\.?\\s*)/i,\n wide: /^(przed\\s*nasz(ą|a)\\s*er(ą|a)|naszej\\s*ery)/i\n};\nvar parseEraPatterns = {\n any: [/^p/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^(I|II|III|IV)\\s*kw\\.?/i,\n wide: /^(I|II|III|IV)\\s*kwarta(ł|l)/i\n};\nvar parseQuarterPatterns = {\n narrow: [/1/i, /2/i, /3/i, /4/i],\n any: [/^I kw/i, /^II kw/i, /^III kw/i, /^IV kw/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[slmkcwpg]/i,\n abbreviated: /^(sty|lut|mar|kwi|maj|cze|lip|sie|wrz|pa(ź|z)|lis|gru)/i,\n wide: /^(stycznia|stycze(ń|n)|lutego|luty|marca|marzec|kwietnia|kwiecie(ń|n)|maja|maj|czerwca|czerwiec|lipca|lipiec|sierpnia|sierpie(ń|n)|wrze(ś|s)nia|wrzesie(ń|n)|pa(ź|z)dziernika|pa(ź|z)dziernik|listopada|listopad|grudnia|grudzie(ń|n))/i\n};\nvar parseMonthPatterns = {\n narrow: [/^s/i, /^l/i, /^m/i, /^k/i, /^m/i, /^c/i, /^l/i, /^s/i, /^w/i, /^p/i, /^l/i, /^g/i],\n any: [/^st/i, /^lu/i, /^mar/i, /^k/i, /^maj/i, /^c/i, /^lip/i, /^si/i, /^w/i, /^p/i, /^lis/i, /^g/i]\n};\nvar matchDayPatterns = {\n narrow: /^[npwścs]/i,\n short: /^(nie|pon|wto|(ś|s)ro|czw|pi(ą|a)|sob)/i,\n abbreviated: /^(niedz|pon|wt|(ś|s)r|czw|pt|sob)\\.?/i,\n wide: /^(niedziela|poniedzia(ł|l)ek|wtorek|(ś|s)roda|czwartek|pi(ą|a)tek|sobota)/i\n};\nvar parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^w/i, /^ś/i, /^c/i, /^p/i, /^s/i],\n abbreviated: [/^n/i, /^po/i, /^w/i, /^(ś|s)r/i, /^c/i, /^pt/i, /^so/i],\n any: [/^n/i, /^po/i, /^w/i, /^(ś|s)r/i, /^c/i, /^pi/i, /^so/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(^a$|^p$|pó(ł|l)n\\.?|o\\s*pó(ł|l)n\\.?|po(ł|l)\\.?|w\\s*po(ł|l)\\.?|po\\s*po(ł|l)\\.?|rano|wiecz\\.?|noc|w\\s*nocy)/i,\n any: /^(am|pm|pó(ł|l)noc|o\\s*pó(ł|l)nocy|po(ł|l)udnie|w\\s*po(ł|l)udnie|popo(ł|l)udnie|po\\s*po(ł|l)udniu|rano|wieczór|wieczorem|noc|w\\s*nocy)/i\n};\nvar parseDayPeriodPatterns = {\n narrow: {\n am: /^a$/i,\n pm: /^p$/i,\n midnight: /pó(ł|l)n/i,\n noon: /po(ł|l)/i,\n morning: /rano/i,\n afternoon: /po\\s*po(ł|l)/i,\n evening: /wiecz/i,\n night: /noc/i\n },\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /pó(ł|l)n/i,\n noon: /po(ł|l)/i,\n morning: /rano/i,\n afternoon: /po\\s*po(ł|l)/i,\n evening: /wiecz/i,\n night: /noc/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\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 */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\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 */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","(function(factory,window){if(typeof define===\"function\"&&define.amd){define([\"leaflet\"],factory)}else if(typeof exports===\"object\"){module.exports=factory(require(\"leaflet\"))}if(typeof window!==\"undefined\"&&window.L){window.L.Control.MiniMap=factory(L);window.L.control.minimap=function(layer,options){return new window.L.Control.MiniMap(layer,options)}}})(function(L){var MiniMap=L.Control.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,options:{position:\"bottomright\",toggleDisplay:false,zoomLevelOffset:-5,zoomLevelFixed:false,centerFixed:false,zoomAnimation:false,autoToggleDisplay:false,minimized:false,width:150,height:150,collapsedWidth:19,collapsedHeight:19,aimingRectOptions:{color:\"#ff7800\",weight:1,clickable:false},shadowRectOptions:{color:\"#000000\",weight:1,clickable:false,opacity:0,fillOpacity:0},strings:{hideText:\"Hide MiniMap\",showText:\"Show MiniMap\"},mapOptions:{}},initialize:function(layer,options){L.Util.setOptions(this,options);this.options.aimingRectOptions.clickable=false;this.options.shadowRectOptions.clickable=false;this._layer=layer},onAdd:function(map){this._mainMap=map;this._container=L.DomUtil.create(\"div\",\"leaflet-control-minimap\");this._container.style.width=this.options.width+\"px\";this._container.style.height=this.options.height+\"px\";L.DomEvent.disableClickPropagation(this._container);L.DomEvent.on(this._container,\"mousewheel\",L.DomEvent.stopPropagation);var mapOptions={attributionControl:false,dragging:!this.options.centerFixed,zoomControl:false,zoomAnimation:this.options.zoomAnimation,autoToggleDisplay:this.options.autoToggleDisplay,touchZoom:this.options.centerFixed?\"center\":!this._isZoomLevelFixed(),scrollWheelZoom:this.options.centerFixed?\"center\":!this._isZoomLevelFixed(),doubleClickZoom:this.options.centerFixed?\"center\":!this._isZoomLevelFixed(),boxZoom:!this._isZoomLevelFixed(),crs:map.options.crs};mapOptions=L.Util.extend(this.options.mapOptions,mapOptions);this._miniMap=new L.Map(this._container,mapOptions);this._miniMap.addLayer(this._layer);this._mainMapMoving=false;this._miniMapMoving=false;this._userToggledDisplay=false;this._minimized=false;if(this.options.toggleDisplay){this._addToggleButton()}this._miniMap.whenReady(L.Util.bind(function(){this._aimingRect=L.rectangle(this._mainMap.getBounds(),this.options.aimingRectOptions).addTo(this._miniMap);this._shadowRect=L.rectangle(this._mainMap.getBounds(),this.options.shadowRectOptions).addTo(this._miniMap);this._mainMap.on(\"moveend\",this._onMainMapMoved,this);this._mainMap.on(\"move\",this._onMainMapMoving,this);this._miniMap.on(\"movestart\",this._onMiniMapMoveStarted,this);this._miniMap.on(\"move\",this._onMiniMapMoving,this);this._miniMap.on(\"moveend\",this._onMiniMapMoved,this)},this));return this._container},addTo:function(map){L.Control.prototype.addTo.call(this,map);var center=this.options.centerFixed||this._mainMap.getCenter();this._miniMap.setView(center,this._decideZoom(true));this._setDisplay(this.options.minimized);return this},onRemove:function(map){this._mainMap.off(\"moveend\",this._onMainMapMoved,this);this._mainMap.off(\"move\",this._onMainMapMoving,this);this._miniMap.off(\"moveend\",this._onMiniMapMoved,this);this._miniMap.removeLayer(this._layer)},changeLayer:function(layer){this._miniMap.removeLayer(this._layer);this._layer=layer;this._miniMap.addLayer(this._layer)},_addToggleButton:function(){this._toggleDisplayButton=this.options.toggleDisplay?this._createButton(\"\",this._toggleButtonInitialTitleText(),\"leaflet-control-minimap-toggle-display leaflet-control-minimap-toggle-display-\"+this.options.position,this._container,this._toggleDisplayButtonClicked,this):undefined;this._toggleDisplayButton.style.width=this.options.collapsedWidth+\"px\";this._toggleDisplayButton.style.height=this.options.collapsedHeight+\"px\"},_toggleButtonInitialTitleText:function(){if(this.options.minimized){return this.options.strings.showText}else{return this.options.strings.hideText}},_createButton:function(html,title,className,container,fn,context){var link=L.DomUtil.create(\"a\",className,container);link.innerHTML=html;link.href=\"#\";link.title=title;var stop=L.DomEvent.stopPropagation;L.DomEvent.on(link,\"click\",stop).on(link,\"mousedown\",stop).on(link,\"dblclick\",stop).on(link,\"click\",L.DomEvent.preventDefault).on(link,\"click\",fn,context);return link},_toggleDisplayButtonClicked:function(){this._userToggledDisplay=true;if(!this._minimized){this._minimize()}else{this._restore()}},_setDisplay:function(minimize){if(minimize!==this._minimized){if(!this._minimized){this._minimize()}else{this._restore()}}},_minimize:function(){if(this.options.toggleDisplay){this._container.style.width=this.options.collapsedWidth+\"px\";this._container.style.height=this.options.collapsedHeight+\"px\";this._toggleDisplayButton.className+=\" minimized-\"+this.options.position;this._toggleDisplayButton.title=this.options.strings.showText}else{this._container.style.display=\"none\"}this._minimized=true;this._onToggle()},_restore:function(){if(this.options.toggleDisplay){this._container.style.width=this.options.width+\"px\";this._container.style.height=this.options.height+\"px\";this._toggleDisplayButton.className=this._toggleDisplayButton.className.replace(\"minimized-\"+this.options.position,\"\");this._toggleDisplayButton.title=this.options.strings.hideText}else{this._container.style.display=\"block\"}this._minimized=false;this._onToggle()},_onMainMapMoved:function(e){if(!this._miniMapMoving){var center=this.options.centerFixed||this._mainMap.getCenter();this._mainMapMoving=true;this._miniMap.setView(center,this._decideZoom(true));this._setDisplay(this._decideMinimized())}else{this._miniMapMoving=false}this._aimingRect.setBounds(this._mainMap.getBounds())},_onMainMapMoving:function(e){this._aimingRect.setBounds(this._mainMap.getBounds())},_onMiniMapMoveStarted:function(e){if(!this.options.centerFixed){var lastAimingRect=this._aimingRect.getBounds();var sw=this._miniMap.latLngToContainerPoint(lastAimingRect.getSouthWest());var ne=this._miniMap.latLngToContainerPoint(lastAimingRect.getNorthEast());this._lastAimingRectPosition={sw:sw,ne:ne}}},_onMiniMapMoving:function(e){if(!this.options.centerFixed){if(!this._mainMapMoving&&this._lastAimingRectPosition){this._shadowRect.setBounds(new L.LatLngBounds(this._miniMap.containerPointToLatLng(this._lastAimingRectPosition.sw),this._miniMap.containerPointToLatLng(this._lastAimingRectPosition.ne)));this._shadowRect.setStyle({opacity:1,fillOpacity:.3})}}},_onMiniMapMoved:function(e){if(!this._mainMapMoving){this._miniMapMoving=true;this._mainMap.setView(this._miniMap.getCenter(),this._decideZoom(false));this._shadowRect.setStyle({opacity:0,fillOpacity:0})}else{this._mainMapMoving=false}},_isZoomLevelFixed:function(){var zoomLevelFixed=this.options.zoomLevelFixed;return this._isDefined(zoomLevelFixed)&&this._isInteger(zoomLevelFixed)},_decideZoom:function(fromMaintoMini){if(!this._isZoomLevelFixed()){if(fromMaintoMini){return this._mainMap.getZoom()+this.options.zoomLevelOffset}else{var currentDiff=this._miniMap.getZoom()-this._mainMap.getZoom();var proposedZoom=this._miniMap.getZoom()-this.options.zoomLevelOffset;var toRet;if(currentDiff>this.options.zoomLevelOffset&&this._mainMap.getZoom()this._lastMiniMapZoom){toRet=this._mainMap.getZoom()+1;this._miniMap.setZoom(this._miniMap.getZoom()-1)}else{toRet=this._mainMap.getZoom()}}else{toRet=proposedZoom}this._lastMiniMapZoom=this._miniMap.getZoom();return toRet}}else{if(fromMaintoMini){return this.options.zoomLevelFixed}else{return this._mainMap.getZoom()}}},_decideMinimized:function(){if(this._userToggledDisplay){return this._minimized}if(this.options.autoToggleDisplay){if(this._mainMap.getBounds().contains(this._miniMap.getBounds())){return true}return false}return this._minimized},_isInteger:function(value){return typeof value===\"number\"},_isDefined:function(value){return typeof value!==\"undefined\"},_onToggle:function(){L.Util.requestAnimFrame(function(){L.DomEvent.on(this._container,\"transitionend\",this._fireToggleEvents,this);if(!L.Browser.any3d){L.Util.requestAnimFrame(this._fireToggleEvents,this)}},this)},_fireToggleEvents:function(){L.DomEvent.off(this._container,\"transitionend\",this._fireToggleEvents,this);var data={minimized:this._minimized};this.fire(this._minimized?\"minimize\":\"restore\",data);this.fire(\"toggle\",data)}});L.Map.mergeOptions({miniMapControl:false});L.Map.addInitHook(function(){if(this.options.miniMapControl){this.miniMapControl=(new MiniMap).addTo(this)}});return MiniMap},window);","(function () {\n\t'use strict';\n\n\t/**\n\t * GoogleMutant by Iván Sánchez Ortega https://ivan.sanchezortega.es\n\t * Source and issue tracking: https://gitlab.com/IvanSanchez/Leaflet.GridLayer.GoogleMutant/\n\t *\n\t * Based on techniques from https://github.com/shramov/leaflet-plugins\n\t * and https://avinmathew.com/leaflet-and-google-maps/ , but relying on MutationObserver.\n\t *\n\t * \"THE BEER-WARE LICENSE\":\n\t * wrote this file. As long as you retain this notice you\n\t * can do whatever you want with this stuff. If we meet some day, and you think\n\t * this stuff is worth it, you can buy me a beer in return.\n\t *\n\t * Uses MIT-licensed code from https://github.com/rsms/js-lru/\n\t */\n\n\t// This implementation of LRUMap is a copy of https://github.com/rsms/js-lru/ ,\n\t// trivially adapted for ES6 exports.\n\n\t/*\n\tThe MIT License\n\n\tCopyright (c) 2010-2020 Rasmus Andersson \n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this software and associated documentation files (the \"Software\"), to deal\n\tin the Software without restriction, including without limitation the rights\n\tto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n\tcopies of the Software, and to permit persons to whom the Software is\n\tfurnished to do so, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in\n\tall copies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n\tTHE SOFTWARE.\n\t*/\n\n\t/**\n\t * A doubly linked list-based Least Recently Used (LRU) cache. Will keep most\n\t * recently used items while discarding least recently used items when its limit\n\t * is reached.\n\t *\n\t * Licensed under MIT. Copyright (c) 2010 Rasmus Andersson \n\t * See README.md for details.\n\t *\n\t * Illustration of the design:\n\t *\n\t * entry entry entry entry\n\t * ______ ______ ______ ______\n\t * | head |.newer => | |.newer => | |.newer => | tail |\n\t * | A | | B | | C | | D |\n\t * |______| <= older.|______| <= older.|______| <= older.|______|\n\t *\n\t * removed <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- added\n\t */\n\n\tvar NEWER = Symbol(\"newer\");\n\tvar OLDER = Symbol(\"older\");\n\n\tvar LRUMap = function LRUMap(limit, entries) {\n\t\tif (typeof limit !== \"number\") {\n\t\t\t// called as (entries)\n\t\t\tentries = limit;\n\t\t\tlimit = 0;\n\t\t}\n\n\t\tthis.size = 0;\n\t\tthis.limit = limit;\n\t\tthis.oldest = this.newest = undefined;\n\t\tthis._keymap = new Map();\n\n\t\tif (entries) {\n\t\t\tthis.assign(entries);\n\t\t\tif (limit < 1) {\n\t\t\t\tthis.limit = this.size;\n\t\t\t}\n\t\t}\n\t};\n\n\tLRUMap.prototype._markEntryAsUsed = function _markEntryAsUsed (entry) {\n\t\tif (entry === this.newest) {\n\t\t\t// Already the most recenlty used entry, so no need to update the list\n\t\t\treturn;\n\t\t}\n\t\t// HEAD--------------TAIL\n\t\t// <.older .newer>\n\t\t// <--- add direction --\n\t\t// A B C E\n\t\tif (entry[NEWER]) {\n\t\t\tif (entry === this.oldest) {\n\t\t\t\tthis.oldest = entry[NEWER];\n\t\t\t}\n\t\t\tentry[NEWER][OLDER] = entry[OLDER]; // C <-- E.\n\t\t}\n\t\tif (entry[OLDER]) {\n\t\t\tentry[OLDER][NEWER] = entry[NEWER]; // C. --> E\n\t\t}\n\t\tentry[NEWER] = undefined; // D --x\n\t\tentry[OLDER] = this.newest; // D. --> E\n\t\tif (this.newest) {\n\t\t\tthis.newest[NEWER] = entry; // E. <-- D\n\t\t}\n\t\tthis.newest = entry;\n\t};\n\n\tLRUMap.prototype.assign = function assign (entries) {\n\t\tvar entry,\n\t\t\tlimit = this.limit || Number.MAX_VALUE;\n\t\tthis._keymap.clear();\n\t\tvar it = entries[Symbol.iterator]();\n\t\tfor (var itv = it.next(); !itv.done; itv = it.next()) {\n\t\t\tvar e = new Entry(itv.value[0], itv.value[1]);\n\t\t\tthis._keymap.set(e.key, e);\n\t\t\tif (!entry) {\n\t\t\t\tthis.oldest = e;\n\t\t\t} else {\n\t\t\t\tentry[NEWER] = e;\n\t\t\t\te[OLDER] = entry;\n\t\t\t}\n\t\t\tentry = e;\n\t\t\tif (limit-- == 0) {\n\t\t\t\tthrow new Error(\"overflow\");\n\t\t\t}\n\t\t}\n\t\tthis.newest = entry;\n\t\tthis.size = this._keymap.size;\n\t};\n\n\tLRUMap.prototype.get = function get (key) {\n\t\t// First, find our cache entry\n\t\tvar entry = this._keymap.get(key);\n\t\tif (!entry) { return; } // Not cached. Sorry.\n\t\t// As was found in the cache, register it as being requested recently\n\t\tthis._markEntryAsUsed(entry);\n\t\treturn entry.value;\n\t};\n\n\tLRUMap.prototype.set = function set (key, value) {\n\t\tvar entry = this._keymap.get(key);\n\n\t\tif (entry) {\n\t\t\t// update existing\n\t\t\tentry.value = value;\n\t\t\tthis._markEntryAsUsed(entry);\n\t\t\treturn this;\n\t\t}\n\n\t\t// new entry\n\t\tthis._keymap.set(key, (entry = new Entry(key, value)));\n\n\t\tif (this.newest) {\n\t\t\t// link previous tail to the new tail (entry)\n\t\t\tthis.newest[NEWER] = entry;\n\t\t\tentry[OLDER] = this.newest;\n\t\t} else {\n\t\t\t// we're first in -- yay\n\t\t\tthis.oldest = entry;\n\t\t}\n\n\t\t// add new entry to the end of the linked list -- it's now the freshest entry.\n\t\tthis.newest = entry;\n\t\t++this.size;\n\t\tif (this.size > this.limit) {\n\t\t\t// we hit the limit -- remove the head\n\t\t\tthis.shift();\n\t\t}\n\n\t\treturn this;\n\t};\n\n\tLRUMap.prototype.shift = function shift () {\n\t\t// todo: handle special case when limit == 1\n\t\tvar entry = this.oldest;\n\t\tif (entry) {\n\t\t\tif (this.oldest[NEWER]) {\n\t\t\t\t// advance the list\n\t\t\t\tthis.oldest = this.oldest[NEWER];\n\t\t\t\tthis.oldest[OLDER] = undefined;\n\t\t\t} else {\n\t\t\t\t// the cache is exhausted\n\t\t\t\tthis.oldest = undefined;\n\t\t\t\tthis.newest = undefined;\n\t\t\t}\n\t\t\t// Remove last strong reference to and remove links from the purged\n\t\t\t// entry being returned:\n\t\t\tentry[NEWER] = entry[OLDER] = undefined;\n\t\t\tthis._keymap.delete(entry.key);\n\t\t\t--this.size;\n\t\t\treturn [entry.key, entry.value];\n\t\t}\n\t};\n\n\t// -------------------------------------------------------------------------------------\n\t// Following code (until end of class definition) is optional and can be removed without\n\t// breaking the core functionality.\n\n\tLRUMap.prototype.find = function find (key) {\n\t\tvar e = this._keymap.get(key);\n\t\treturn e ? e.value : undefined;\n\t};\n\n\tLRUMap.prototype.has = function has (key) {\n\t\treturn this._keymap.has(key);\n\t};\n\n\tLRUMap.prototype.delete = function delete$1 (key) {\n\t\tvar entry = this._keymap.get(key);\n\t\tif (!entry) { return; }\n\t\tthis._keymap.delete(entry.key);\n\t\tif (entry[NEWER] && entry[OLDER]) {\n\t\t\t// relink the older entry with the newer entry\n\t\t\tentry[OLDER][NEWER] = entry[NEWER];\n\t\t\tentry[NEWER][OLDER] = entry[OLDER];\n\t\t} else if (entry[NEWER]) {\n\t\t\t// remove the link to us\n\t\t\tentry[NEWER][OLDER] = undefined;\n\t\t\t// link the newer entry to head\n\t\t\tthis.oldest = entry[NEWER];\n\t\t} else if (entry[OLDER]) {\n\t\t\t// remove the link to us\n\t\t\tentry[OLDER][NEWER] = undefined;\n\t\t\t// link the newer entry to head\n\t\t\tthis.newest = entry[OLDER];\n\t\t} else {\n\t\t\t// if(entry[OLDER] === undefined && entry.newer === undefined) {\n\t\t\tthis.oldest = this.newest = undefined;\n\t\t}\n\n\t\tthis.size--;\n\t\treturn entry.value;\n\t};\n\n\tLRUMap.prototype.clear = function clear () {\n\t\t// Not clearing links should be safe, as we don't expose live links to user\n\t\tthis.oldest = this.newest = undefined;\n\t\tthis.size = 0;\n\t\tthis._keymap.clear();\n\t};\n\n\tLRUMap.prototype.keys = function keys () {\n\t\treturn new KeyIterator(this.oldest);\n\t};\n\n\tLRUMap.prototype.values = function values () {\n\t\treturn new ValueIterator(this.oldest);\n\t};\n\n\tLRUMap.prototype.entries = function entries () {\n\t\treturn this;\n\t};\n\n\tLRUMap.prototype[Symbol.iterator] = function () {\n\t\treturn new EntryIterator(this.oldest);\n\t};\n\n\tLRUMap.prototype.forEach = function forEach (fun, thisObj) {\n\t\tif (typeof thisObj !== \"object\") {\n\t\t\tthisObj = this;\n\t\t}\n\t\tvar entry = this.oldest;\n\t\twhile (entry) {\n\t\t\tfun.call(thisObj, entry.value, entry.key, this);\n\t\t\tentry = entry[NEWER];\n\t\t}\n\t};\n\n\t/** Returns a JSON (array) representation */\n\tLRUMap.prototype.toJSON = function toJSON () {\n\t\tvar s = new Array(this.size),\n\t\t\ti = 0,\n\t\t\tentry = this.oldest;\n\t\twhile (entry) {\n\t\t\ts[i++] = { key: entry.key, value: entry.value };\n\t\t\tentry = entry[NEWER];\n\t\t}\n\t\treturn s;\n\t};\n\n\t/** Returns a String representation */\n\tLRUMap.prototype.toString = function toString () {\n\t\tvar s = \"\",\n\t\t\tentry = this.oldest;\n\t\twhile (entry) {\n\t\t\ts += String(entry.key) + \":\" + entry.value;\n\t\t\tentry = entry[NEWER];\n\t\t\tif (entry) {\n\t\t\t\ts += \" < \";\n\t\t\t}\n\t\t}\n\t\treturn s;\n\t};\n\n\tfunction Entry(key, value) {\n\t\tthis.key = key;\n\t\tthis.value = value;\n\t\tthis[NEWER] = undefined;\n\t\tthis[OLDER] = undefined;\n\t}\n\n\tfunction EntryIterator(oldestEntry) {\n\t\tthis.entry = oldestEntry;\n\t}\n\tEntryIterator.prototype[Symbol.iterator] = function () {\n\t\treturn this;\n\t};\n\tEntryIterator.prototype.next = function () {\n\t\tvar ent = this.entry;\n\t\tif (ent) {\n\t\t\tthis.entry = ent[NEWER];\n\t\t\treturn { done: false, value: [ent.key, ent.value] };\n\t\t} else {\n\t\t\treturn { done: true, value: undefined };\n\t\t}\n\t};\n\n\tfunction KeyIterator(oldestEntry) {\n\t\tthis.entry = oldestEntry;\n\t}\n\tKeyIterator.prototype[Symbol.iterator] = function () {\n\t\treturn this;\n\t};\n\tKeyIterator.prototype.next = function () {\n\t\tvar ent = this.entry;\n\t\tif (ent) {\n\t\t\tthis.entry = ent[NEWER];\n\t\t\treturn { done: false, value: ent.key };\n\t\t} else {\n\t\t\treturn { done: true, value: undefined };\n\t\t}\n\t};\n\n\tfunction ValueIterator(oldestEntry) {\n\t\tthis.entry = oldestEntry;\n\t}\n\tValueIterator.prototype[Symbol.iterator] = function () {\n\t\treturn this;\n\t};\n\tValueIterator.prototype.next = function () {\n\t\tvar ent = this.entry;\n\t\tif (ent) {\n\t\t\tthis.entry = ent[NEWER];\n\t\t\treturn { done: false, value: ent.value };\n\t\t} else {\n\t\t\treturn { done: true, value: undefined };\n\t\t}\n\t};\n\n\t// GoogleMutant by Iván Sánchez Ortega \n\n\tfunction waitForAPI(callback, context) {\n\t\tvar checkCounter = 0,\n\t\t\tintervalId = null;\n\n\t\tintervalId = setInterval(function () {\n\t\t\tif (checkCounter >= 20) {\n\t\t\t\tclearInterval(intervalId);\n\t\t\t\tthrow new Error(\"window.google not found after 10 seconds\");\n\t\t\t}\n\t\t\tif (!!window.google && !!window.google.maps && !!window.google.maps.Map) {\n\t\t\t\tclearInterval(intervalId);\n\t\t\t\tcallback.call(context);\n\t\t\t}\n\t\t\t++checkCounter;\n\t\t}, 500);\n\t}\n\n\t// 🍂class GridLayer.GoogleMutant\n\t// 🍂extends GridLayer\n\tL.GridLayer.GoogleMutant = L.GridLayer.extend({\n\t\toptions: {\n\t\t\tmaxZoom: 21, // can be 23, but ugly if more than maxNativeZoom\n\t\t\t// 🍂option type: String = 'roadmap'\n\t\t\t// Google's map type. Valid values are 'roadmap', 'satellite' or 'terrain'. 'hybrid' is not really supported.\n\t\t\ttype: \"roadmap\",\n\t\t\tmaxNativeZoom: 21,\n\t\t},\n\n\t\tinitialize: function (options) {\n\t\t\tL.GridLayer.prototype.initialize.call(this, options);\n\n\t\t\t// Couple data structures indexed by tile key\n\t\t\tthis._tileCallbacks = {}; // Callbacks for promises for tiles that are expected\n\t\t\tthis._lru = new LRUMap(100); // Tile LRU cache\n\n\t\t\tthis._imagesPerTile = this.options.type === \"hybrid\" ? 2 : 1;\n\n\t\t\tthis._boundOnMutatedImage = this._onMutatedImage.bind(this);\n\t\t},\n\n\t\tonAdd: function (map) {\n\t\t\tvar this$1 = this;\n\n\t\t\tL.GridLayer.prototype.onAdd.call(this, map);\n\t\t\tthis._initMutantContainer();\n\n\t\t\t// Attribution and logo nodes are not mutated a second time if the\n\t\t\t// mutant is removed and re-added to the map, hence they are\n\t\t\t// not cleaned up on layer removal, so they can be added here.\n\t\t\tif (this._logoContainer) {\n\t\t\t\tmap._controlCorners.bottomleft.appendChild(this._logoContainer);\n\t\t\t}\n\t\t\tif (this._attributionContainer) {\n\t\t\t\tmap._controlCorners.bottomright.appendChild(this._attributionContainer);\n\t\t\t}\n\n\t\t\twaitForAPI(function () {\n\t\t\t\tif (!this$1._map) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis$1._initMutant();\n\n\t\t\t\t//handle layer being added to a map for which there are no Google tiles at the given zoom\n\t\t\t\tgoogle.maps.event.addListenerOnce(this$1._mutant, \"idle\", function () {\n\t\t\t\t\tif (!this$1._map) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis$1._checkZoomLevels();\n\t\t\t\t\tthis$1._mutantIsReady = true;\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\tonRemove: function (map) {\n\t\t\tL.GridLayer.prototype.onRemove.call(this, map);\n\t\t\tthis._observer.disconnect();\n\t\t\tmap._container.removeChild(this._mutantContainer);\n\t\t\tif (this._logoContainer) {\n\t\t\t\tL.DomUtil.remove(this._logoContainer);\n\t\t\t}\n\t\t\tif (this._attributionContainer) {\n\t\t\t\tL.DomUtil.remove(this._attributionContainer);\n\t\t\t}\n\t\t\tif (this._mutant) {\n\t\t\t\tgoogle.maps.event.clearListeners(this._mutant, \"idle\");\n\t\t\t}\n\t\t},\n\n\t\t// 🍂method addGoogleLayer(name: String, options?: Object): this\n\t\t// Adds layer with the given name and options to the google Map instance.\n\t\t// `name`: one of the google maps API layers, with it's constructor available in `google.maps` object.\n\t\t// currently following values supported: 'TrafficLayer', 'TransitLayer', 'BicyclingLayer'.\n\t\t// `options`: see https://developers.google.com/maps/documentation/javascript/reference/map\n\t\taddGoogleLayer: function (googleLayerName, options) {\n\t\t\tvar this$1 = this;\n\n\t\t\tif (!this._subLayers) { this._subLayers = {}; }\n\t\t\tthis.whenReady(function () {\n\t\t\t\tvar Constructor = google.maps[googleLayerName];\n\t\t\t\tvar googleLayer = new Constructor(options);\n\t\t\t\tgoogleLayer.setMap(this$1._mutant);\n\t\t\t\tthis$1._subLayers[googleLayerName] = googleLayer;\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t// 🍂method removeGoogleLayer(name: String): this\n\t\t// Removes layer with the given name from the google Map instance.\n\t\tremoveGoogleLayer: function (googleLayerName) {\n\t\t\tvar this$1 = this;\n\n\t\t\tthis.whenReady(function () {\n\t\t\t\tvar googleLayer = this$1._subLayers && this$1._subLayers[googleLayerName];\n\t\t\t\tif (googleLayer) {\n\t\t\t\t\tgoogleLayer.setMap(null);\n\t\t\t\t\tdelete this$1._subLayers[googleLayerName];\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t},\n\n\t\t_initMutantContainer: function () {\n\t\t\tif (!this._mutantContainer) {\n\t\t\t\tthis._mutantContainer = L.DomUtil.create(\n\t\t\t\t\t\"div\",\n\t\t\t\t\t\"leaflet-google-mutant leaflet-top leaflet-left\"\n\t\t\t\t);\n\t\t\t\tthis._mutantContainer.id = \"_MutantContainer_\" + L.Util.stamp(this._mutantContainer);\n\t\t\t\tthis._mutantContainer.style.pointerEvents = \"none\";\n\t\t\t\tthis._mutantContainer.style.visibility = \"hidden\";\n\n\t\t\t\tL.DomEvent.off(this._mutantContainer);\n\t\t\t}\n\t\t\tthis._map.getContainer().appendChild(this._mutantContainer);\n\n\t\t\tthis.setOpacity(this.options.opacity);\n\t\t\tvar style = this._mutantContainer.style;\n\t\t\tif (this._map.options.zoomSnap < 1) {\n\t\t\t\t// Fractional zoom needs a bigger mutant container in order to load more (smaller) tiles\n\t\t\t\tstyle.width = \"180%\";\n\t\t\t\tstyle.height = \"180%\";\n\t\t\t} else {\n\t\t\t\tstyle.width = \"100%\";\n\t\t\t\tstyle.height = \"100%\";\n\t\t\t}\n\t\t\tstyle.zIndex = -1;\n\n\t\t\tthis._attachObserver(this._mutantContainer);\n\t\t},\n\n\t\t_initMutant: function () {\n\t\t\tif (this._mutant) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar map = new google.maps.Map(this._mutantContainer, {\n\t\t\t\tcenter: { lat: 0, lng: 0 },\n\t\t\t\tzoom: 0,\n\t\t\t\ttilt: 0,\n\t\t\t\tmapTypeId: this.options.type,\n\t\t\t\tdisableDefaultUI: true,\n\t\t\t\tkeyboardShortcuts: false,\n\t\t\t\tdraggable: false,\n\t\t\t\tdisableDoubleClickZoom: true,\n\t\t\t\tscrollwheel: false,\n\t\t\t\tstyles: this.options.styles || [],\n\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t});\n\n\t\t\tthis._mutant = map;\n\n\t\t\tthis._update();\n\n\t\t\t// 🍂event spawned\n\t\t\t// Fired when the mutant has been created.\n\t\t\tthis.fire(\"spawned\", { mapObject: map });\n\n\t\t\tthis._waitControls();\n\t\t\tthis.once('controls_ready', this._setupAttribution);\n\t\t},\n\n\t\t_attachObserver: function _attachObserver(node) {\n\t\t\tif (!this._observer) { this._observer = new MutationObserver(this._onMutations.bind(this)); }\n\n\t\t\t// pass in the target node, as well as the observer options\n\t\t\tthis._observer.observe(node, { childList: true, subtree: true });\n\n\t\t\t// if we are reusing an old _mutantContainer, we must manually detect\n\t\t\t// all existing tiles in it\n\t\t\tArray.prototype.forEach.call(node.querySelectorAll(\"img\"), this._boundOnMutatedImage);\n\t\t},\n\n\t\t_waitControls: function () {\n\t\t\tvar this$1 = this;\n\n\t\t\tvar id = setInterval(function () {\n\t\t\t\tvar layoutManager = this$1._mutant.__gm.layoutManager;\n\t\t\t\tif (!layoutManager) { return; }\n\t\t\t\tclearInterval(id);\n\t\t\t\tvar positions;\n\t\t\t\t// iterate through obfuscated key names to find positions set (atm: layoutManager.o)\n\t\t\t\tObject.keys(layoutManager).forEach(function(key) {\n\t\t\t\t\tvar el = layoutManager[key];\n\t\t\t\t\tif (el.get) {\n\t\t\t\t\t\tif (el.get(1) instanceof Node) {\n\t\t\t\t\t\t\tpositions = el;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// 🍂event controls_ready\n\t\t\t\t// Fired when controls positions get available (passed in `positions` property).\n\t\t\t\tthis$1.fire(\"controls_ready\", { positions: positions });\n\t\t\t}, 50);\n\t\t},\n\n\t\t_setupAttribution: function (ev) {\n\t\t\t// https://developers.google.com/maps/documentation/javascript/reference/control#ControlPosition\n\t\t\tvar pos = google.maps.ControlPosition;\n\t\t\tvar ctr = this._attributionContainer = ev.positions.get(pos.BOTTOM_RIGHT);\n\t\t\tL.DomUtil.addClass(ctr, \"leaflet-control leaflet-control-attribution\");\n\t\t\tL.DomEvent.disableClickPropagation(ctr);\n\t\t\tctr.style.height = \"14px\";\n\t\t\tthis._map._controlCorners.bottomright.appendChild(ctr);\n\n\t\t\tthis._logoContainer = ev.positions.get(pos.BOTTOM_LEFT);\n\t\t\tthis._logoContainer.style.pointerEvents = \"auto\";\n\t\t\tthis._map._controlCorners.bottomleft.appendChild(this._logoContainer);\n\t\t},\n\n\t\t_onMutations: function _onMutations(mutations) {\n\t\t\tfor (var i = 0; i < mutations.length; ++i) {\n\t\t\t\tvar mutation = mutations[i];\n\t\t\t\tfor (var j = 0; j < mutation.addedNodes.length; ++j) {\n\t\t\t\t\tvar node = mutation.addedNodes[j];\n\n\t\t\t\t\tif (node instanceof HTMLImageElement) {\n\t\t\t\t\t\tthis._onMutatedImage(node);\n\t\t\t\t\t} else if (node instanceof HTMLElement) {\n\t\t\t\t\t\tArray.prototype.forEach.call(\n\t\t\t\t\t\t\tnode.querySelectorAll(\"img\"),\n\t\t\t\t\t\t\tthis._boundOnMutatedImage\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// Only images which 'src' attrib match this will be considered for moving around.\n\t\t// Looks like some kind of string-based protobuf, maybe??\n\t\t// Only the roads (and terrain, and vector-based stuff) match this pattern\n\t\t_roadRegexp: /!1i(\\d+)!2i(\\d+)!3i(\\d+)!/,\n\n\t\t// On the other hand, raster imagery matches this other pattern\n\t\t_satRegexp: /x=(\\d+)&y=(\\d+)&z=(\\d+)/,\n\n\t\t// On small viewports, when zooming in/out, a static image is requested\n\t\t// This will not be moved around, just removed from the DOM.\n\t\t_staticRegExp: /StaticMapService\\.GetMapImage/,\n\n\t\t_onMutatedImage: function _onMutatedImage(imgNode) {\n\t\t\tvar coords;\n\t\t\tvar match = imgNode.src.match(this._roadRegexp);\n\t\t\tvar sublayer = 0;\n\n\t\t\tif (match) {\n\t\t\t\tcoords = {\n\t\t\t\t\tz: match[1],\n\t\t\t\t\tx: match[2],\n\t\t\t\t\ty: match[3],\n\t\t\t\t};\n\t\t\t\tif (this._imagesPerTile > 1) {\n\t\t\t\t\timgNode.style.zIndex = 1;\n\t\t\t\t\tsublayer = 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmatch = imgNode.src.match(this._satRegexp);\n\t\t\t\tif (match) {\n\t\t\t\t\tcoords = {\n\t\t\t\t\t\tx: match[1],\n\t\t\t\t\t\ty: match[2],\n\t\t\t\t\t\tz: match[3],\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t// imgNode.style.zIndex = 0;\n\t\t\t\tsublayer = 0;\n\t\t\t}\n\n\t\t\tif (coords) {\n\t\t\t\tvar tileKey = this._tileCoordsToKey(coords);\n\t\t\t\timgNode.style.position = \"absolute\";\n\n\t\t\t\tvar key = tileKey + \"/\" + sublayer;\n\t\t\t\t// Cache img so it can also be used in subsequent tile requests\n\t\t\t\tthis._lru.set(key, imgNode);\n\n\t\t\t\tif (key in this._tileCallbacks && this._tileCallbacks[key]) {\n\t\t\t\t\t// Use the tile for *all* pending callbacks. They'll be cloned anyway.\n\t\t\t\t\tthis._tileCallbacks[key].forEach(function (callback) { return callback(imgNode); });\n\t\t\t\t\tdelete this._tileCallbacks[key];\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcreateTile: function (coords, done) {\n\t\t\tvar key = this._tileCoordsToKey(coords),\n\t\t\t\ttileContainer = L.DomUtil.create(\"div\");\n\n\t\t\ttileContainer.style.textAlign = \"left\";\n\t\t\ttileContainer.dataset.pending = this._imagesPerTile;\n\t\t\tdone = done.bind(this, null, tileContainer);\n\n\t\t\tfor (var i = 0; i < this._imagesPerTile; ++i) {\n\t\t\t\tvar key2 = key + \"/\" + i,\n\t\t\t\t\timgNode = this._lru.get(key2);\n\t\t\t\tif (imgNode) {\n\t\t\t\t\ttileContainer.appendChild(this._clone(imgNode));\n\t\t\t\t\t--tileContainer.dataset.pending;\n\t\t\t\t} else {\n\t\t\t\t\tthis._tileCallbacks[key2] = this._tileCallbacks[key2] || [];\n\t\t\t\t\tthis._tileCallbacks[key2].push(\n\t\t\t\t\t\tfunction (c /*, k2*/) {\n\t\t\t\t\t\t\treturn function (imgNode) {\n\t\t\t\t\t\t\t\tc.appendChild(this._clone(imgNode));\n\t\t\t\t\t\t\t\t--c.dataset.pending;\n\t\t\t\t\t\t\t\tif (!parseInt(c.dataset.pending)) {\n\t\t\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}.bind(this);\n\t\t\t\t\t\t}.bind(this)(tileContainer /*, key2*/)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!parseInt(tileContainer.dataset.pending)) {\n\t\t\t\tL.Util.requestAnimFrame(done);\n\t\t\t}\n\t\t\treturn tileContainer;\n\t\t},\n\n\t\t_clone: function (imgNode) {\n\t\t\tvar clonedImgNode = imgNode.cloneNode(true);\n\t\t\tclonedImgNode.style.visibility = \"visible\";\n\t\t\treturn clonedImgNode;\n\t\t},\n\n\t\t_checkZoomLevels: function () {\n\t\t\t//setting the zoom level on the Google map may result in a different zoom level than the one requested\n\t\t\t//(it won't go beyond the level for which they have data).\n\t\t\tvar zoomLevel = this._map.getZoom(),\n\t\t\t\tgMapZoomLevel = this._mutant.getZoom();\n\n\t\t\tif (!zoomLevel || !gMapZoomLevel) { return; }\n\n\t\t\tif (\n\t\t\t\tgMapZoomLevel !== zoomLevel || //zoom levels are out of sync, Google doesn't have data\n\t\t\t\tgMapZoomLevel > this.options.maxNativeZoom\n\t\t\t) {\n\t\t\t\t//at current location, Google does have data (contrary to maxNativeZoom)\n\t\t\t\t//Update maxNativeZoom\n\t\t\t\tthis._setMaxNativeZoom(gMapZoomLevel);\n\t\t\t}\n\t\t},\n\n\t\t_setMaxNativeZoom: function (zoomLevel) {\n\t\t\tif (zoomLevel !== this.options.maxNativeZoom) {\n\t\t\t\tthis.options.maxNativeZoom = zoomLevel;\n\t\t\t\tthis._resetView();\n\t\t\t}\n\t\t},\n\n\t\t_update: function (center) {\n\t\t\t// zoom level check needs to happen before super's implementation (tile addition/creation)\n\t\t\t// otherwise tiles may be missed if maxNativeZoom is not yet correctly determined\n\t\t\tif (this._mutant) {\n\t\t\t\tcenter = center || this._map.getCenter();\n\t\t\t\tvar _center = new google.maps.LatLng(center.lat, center.lng),\n\t\t\t\t\tzoom = Math.round(this._map.getZoom()),\n\t\t\t\t\tmutantZoom = this._mutant.getZoom();\n\n\t\t\t\tthis._mutant.setCenter(_center);\n\n\t\t\t\t//ignore fractional zoom levels\n\t\t\t\tif (zoom !== mutantZoom) {\n\t\t\t\t\tthis._mutant.setZoom(zoom);\n\n\t\t\t\t\tif (this._mutantIsReady) { this._checkZoomLevels(); }\n\t\t\t\t\t//else zoom level check will be done later by 'idle' handler\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tL.GridLayer.prototype._update.call(this, center);\n\t\t},\n\n\t\t// @method whenReady(fn: Function, context?: Object): this\n\t\t// Runs the given function `fn` when the mutant gets initialized, or immediately\n\t\t// if it's already initialized, optionally passing a function context.\n\t\twhenReady: function (callback, context) {\n\t\t\tif (this._mutant) {\n\t\t\t\tcallback.call(context || this, { target: this });\n\t\t\t} else {\n\t\t\t\tthis.on(\"spawned\", callback, context);\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\t});\n\n\t// 🍂factory gridLayer.googleMutant(options)\n\t// Returns a new `GridLayer.GoogleMutant` given its options\n\tL.gridLayer.googleMutant = function (options) {\n\t\treturn new L.GridLayer.GoogleMutant(options);\n\t};\n\n}());\n","/* @preserve\n * Leaflet 1.8.0, a JS library for interactive maps. https://leafletjs.com\n * (c) 2010-2022 Vladimir Agafonkin, (c) 2010-2011 CloudMade\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.leaflet = {}));\n})(this, (function (exports) { 'use strict';\n\n var version = \"1.8.0\";\n\n /*\r\n * @namespace Util\r\n *\r\n * Various utility functions, used by Leaflet internally.\r\n */\r\n\r\n // @function extend(dest: Object, src?: Object): Object\r\n // Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.\r\n function extend(dest) {\r\n \tvar i, j, len, src;\r\n\r\n \tfor (j = 1, len = arguments.length; j < len; j++) {\r\n \t\tsrc = arguments[j];\r\n \t\tfor (i in src) {\r\n \t\t\tdest[i] = src[i];\r\n \t\t}\r\n \t}\r\n \treturn dest;\r\n }\r\n\r\n // @function create(proto: Object, properties?: Object): Object\r\n // Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create)\r\n var create$2 = Object.create || (function () {\r\n \tfunction F() {}\r\n \treturn function (proto) {\r\n \t\tF.prototype = proto;\r\n \t\treturn new F();\r\n \t};\r\n })();\r\n\r\n // @function bind(fn: Function, …): Function\r\n // Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\r\n // Has a `L.bind()` shortcut.\r\n function bind(fn, obj) {\r\n \tvar slice = Array.prototype.slice;\r\n\r\n \tif (fn.bind) {\r\n \t\treturn fn.bind.apply(fn, slice.call(arguments, 1));\r\n \t}\r\n\r\n \tvar args = slice.call(arguments, 2);\r\n\r\n \treturn function () {\r\n \t\treturn fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments);\r\n \t};\r\n }\r\n\r\n // @property lastId: Number\r\n // Last unique ID used by [`stamp()`](#util-stamp)\r\n var lastId = 0;\r\n\r\n // @function stamp(obj: Object): Number\r\n // Returns the unique ID of an object, assigning it one if it doesn't have it.\r\n function stamp(obj) {\r\n \tif (!('_leaflet_id' in obj)) {\r\n \t\tobj['_leaflet_id'] = ++lastId;\r\n \t}\r\n \treturn obj._leaflet_id;\r\n }\r\n\r\n // @function throttle(fn: Function, time: Number, context: Object): Function\r\n // Returns a function which executes function `fn` with the given scope `context`\r\n // (so that the `this` keyword refers to `context` inside `fn`'s code). The function\r\n // `fn` will be called no more than one time per given amount of `time`. The arguments\r\n // received by the bound function will be any arguments passed when binding the\r\n // function, followed by any arguments passed when invoking the bound function.\r\n // Has an `L.throttle` shortcut.\r\n function throttle(fn, time, context) {\r\n \tvar lock, args, wrapperFn, later;\r\n\r\n \tlater = function () {\r\n \t\t// reset lock and call if queued\r\n \t\tlock = false;\r\n \t\tif (args) {\r\n \t\t\twrapperFn.apply(context, args);\r\n \t\t\targs = false;\r\n \t\t}\r\n \t};\r\n\r\n \twrapperFn = function () {\r\n \t\tif (lock) {\r\n \t\t\t// called too soon, queue to call later\r\n \t\t\targs = arguments;\r\n\r\n \t\t} else {\r\n \t\t\t// call and lock until later\r\n \t\t\tfn.apply(context, arguments);\r\n \t\t\tsetTimeout(later, time);\r\n \t\t\tlock = true;\r\n \t\t}\r\n \t};\r\n\r\n \treturn wrapperFn;\r\n }\r\n\r\n // @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number\r\n // Returns the number `num` modulo `range` in such a way so it lies within\r\n // `range[0]` and `range[1]`. The returned value will be always smaller than\r\n // `range[1]` unless `includeMax` is set to `true`.\r\n function wrapNum(x, range, includeMax) {\r\n \tvar max = range[1],\r\n \t min = range[0],\r\n \t d = max - min;\r\n \treturn x === max && includeMax ? x : ((x - min) % d + d) % d + min;\r\n }\r\n\r\n // @function falseFn(): Function\r\n // Returns a function which always returns `false`.\r\n function falseFn() { return false; }\r\n\r\n // @function formatNum(num: Number, precision?: Number|false): Number\r\n // Returns the number `num` rounded with specified `precision`.\r\n // The default `precision` value is 6 decimal places.\r\n // `false` can be passed to skip any processing (can be useful to avoid round-off errors).\r\n function formatNum(num, precision) {\r\n \tif (precision === false) { return num; }\r\n \tvar pow = Math.pow(10, precision === undefined ? 6 : precision);\r\n \treturn Math.round(num * pow) / pow;\r\n }\r\n\r\n // @function trim(str: String): String\r\n // Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)\r\n function trim(str) {\r\n \treturn str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n\r\n // @function splitWords(str: String): String[]\r\n // Trims and splits the string on whitespace and returns the array of parts.\r\n function splitWords(str) {\r\n \treturn trim(str).split(/\\s+/);\r\n }\r\n\r\n // @function setOptions(obj: Object, options: Object): Object\r\n // Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut.\r\n function setOptions(obj, options) {\r\n \tif (!Object.prototype.hasOwnProperty.call(obj, 'options')) {\r\n \t\tobj.options = obj.options ? create$2(obj.options) : {};\r\n \t}\r\n \tfor (var i in options) {\r\n \t\tobj.options[i] = options[i];\r\n \t}\r\n \treturn obj.options;\r\n }\r\n\r\n // @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String\r\n // Converts an object into a parameter URL string, e.g. `{a: \"foo\", b: \"bar\"}`\r\n // translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will\r\n // be appended at the end. If `uppercase` is `true`, the parameter names will\r\n // be uppercased (e.g. `'?A=foo&B=bar'`)\r\n function getParamString(obj, existingUrl, uppercase) {\r\n \tvar params = [];\r\n \tfor (var i in obj) {\r\n \t\tparams.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));\r\n \t}\r\n \treturn ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');\r\n }\r\n\r\n var templateRe = /\\{ *([\\w_ -]+) *\\}/g;\r\n\r\n // @function template(str: String, data: Object): String\r\n // Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'`\r\n // and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string\r\n // `('Hello foo, bar')`. You can also specify functions instead of strings for\r\n // data values — they will be evaluated passing `data` as an argument.\r\n function template(str, data) {\r\n \treturn str.replace(templateRe, function (str, key) {\r\n \t\tvar value = data[key];\r\n\r\n \t\tif (value === undefined) {\r\n \t\t\tthrow new Error('No value provided for variable ' + str);\r\n\r\n \t\t} else if (typeof value === 'function') {\r\n \t\t\tvalue = value(data);\r\n \t\t}\r\n \t\treturn value;\r\n \t});\r\n }\r\n\r\n // @function isArray(obj): Boolean\r\n // Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)\r\n var isArray = Array.isArray || function (obj) {\r\n \treturn (Object.prototype.toString.call(obj) === '[object Array]');\r\n };\r\n\r\n // @function indexOf(array: Array, el: Object): Number\r\n // Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\r\n function indexOf(array, el) {\r\n \tfor (var i = 0; i < array.length; i++) {\r\n \t\tif (array[i] === el) { return i; }\r\n \t}\r\n \treturn -1;\r\n }\r\n\r\n // @property emptyImageUrl: String\r\n // Data URI string containing a base64-encoded empty GIF image.\r\n // Used as a hack to free memory from unused images on WebKit-powered\r\n // mobile devices (by setting image `src` to this string).\r\n var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\r\n\r\n // inspired by https://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\r\n function getPrefixed(name) {\r\n \treturn window['webkit' + name] || window['moz' + name] || window['ms' + name];\r\n }\r\n\r\n var lastTime = 0;\r\n\r\n // fallback for IE 7-8\r\n function timeoutDefer(fn) {\r\n \tvar time = +new Date(),\r\n \t timeToCall = Math.max(0, 16 - (time - lastTime));\r\n\r\n \tlastTime = time + timeToCall;\r\n \treturn window.setTimeout(fn, timeToCall);\r\n }\r\n\r\n var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer;\r\n var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') ||\r\n \t\tgetPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); };\r\n\r\n // @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number\r\n // Schedules `fn` to be executed when the browser repaints. `fn` is bound to\r\n // `context` if given. When `immediate` is set, `fn` is called immediately if\r\n // the browser doesn't have native support for\r\n // [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame),\r\n // otherwise it's delayed. Returns a request ID that can be used to cancel the request.\r\n function requestAnimFrame(fn, context, immediate) {\r\n \tif (immediate && requestFn === timeoutDefer) {\r\n \t\tfn.call(context);\r\n \t} else {\r\n \t\treturn requestFn.call(window, bind(fn, context));\r\n \t}\r\n }\r\n\r\n // @function cancelAnimFrame(id: Number): undefined\r\n // Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame).\r\n function cancelAnimFrame(id) {\r\n \tif (id) {\r\n \t\tcancelFn.call(window, id);\r\n \t}\r\n }\n\n var Util = {\n __proto__: null,\n extend: extend,\n create: create$2,\n bind: bind,\n get lastId () { return lastId; },\n stamp: stamp,\n throttle: throttle,\n wrapNum: wrapNum,\n falseFn: falseFn,\n formatNum: formatNum,\n trim: trim,\n splitWords: splitWords,\n setOptions: setOptions,\n getParamString: getParamString,\n template: template,\n isArray: isArray,\n indexOf: indexOf,\n emptyImageUrl: emptyImageUrl,\n requestFn: requestFn,\n cancelFn: cancelFn,\n requestAnimFrame: requestAnimFrame,\n cancelAnimFrame: cancelAnimFrame\n };\n\n // @class Class\r\n // @aka L.Class\r\n\r\n // @section\r\n // @uninheritable\r\n\r\n // Thanks to John Resig and Dean Edwards for inspiration!\r\n\r\n function Class() {}\r\n\r\n Class.extend = function (props) {\r\n\r\n \t// @function extend(props: Object): Function\r\n \t// [Extends the current class](#class-inheritance) given the properties to be included.\r\n \t// Returns a Javascript function that is a class constructor (to be called with `new`).\r\n \tvar NewClass = function () {\r\n\r\n \t\tsetOptions(this);\r\n\r\n \t\t// call the constructor\r\n \t\tif (this.initialize) {\r\n \t\t\tthis.initialize.apply(this, arguments);\r\n \t\t}\r\n\r\n \t\t// call all constructor hooks\r\n \t\tthis.callInitHooks();\r\n \t};\r\n\r\n \tvar parentProto = NewClass.__super__ = this.prototype;\r\n\r\n \tvar proto = create$2(parentProto);\r\n \tproto.constructor = NewClass;\r\n\r\n \tNewClass.prototype = proto;\r\n\r\n \t// inherit parent's statics\r\n \tfor (var i in this) {\r\n \t\tif (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') {\r\n \t\t\tNewClass[i] = this[i];\r\n \t\t}\r\n \t}\r\n\r\n \t// mix static properties into the class\r\n \tif (props.statics) {\r\n \t\textend(NewClass, props.statics);\r\n \t}\r\n\r\n \t// mix includes into the prototype\r\n \tif (props.includes) {\r\n \t\tcheckDeprecatedMixinEvents(props.includes);\r\n \t\textend.apply(null, [proto].concat(props.includes));\r\n \t}\r\n\r\n \t// mix given properties into the prototype\r\n \textend(proto, props);\r\n \tdelete proto.statics;\r\n \tdelete proto.includes;\r\n\r\n \t// merge options\r\n \tif (proto.options) {\r\n \t\tproto.options = parentProto.options ? create$2(parentProto.options) : {};\r\n \t\textend(proto.options, props.options);\r\n \t}\r\n\r\n \tproto._initHooks = [];\r\n\r\n \t// add method for calling all hooks\r\n \tproto.callInitHooks = function () {\r\n\r\n \t\tif (this._initHooksCalled) { return; }\r\n\r\n \t\tif (parentProto.callInitHooks) {\r\n \t\t\tparentProto.callInitHooks.call(this);\r\n \t\t}\r\n\r\n \t\tthis._initHooksCalled = true;\r\n\r\n \t\tfor (var i = 0, len = proto._initHooks.length; i < len; i++) {\r\n \t\t\tproto._initHooks[i].call(this);\r\n \t\t}\r\n \t};\r\n\r\n \treturn NewClass;\r\n };\r\n\r\n\r\n // @function include(properties: Object): this\r\n // [Includes a mixin](#class-includes) into the current class.\r\n Class.include = function (props) {\r\n \tvar parentOptions = this.prototype.options;\r\n \textend(this.prototype, props);\r\n \tif (props.options) {\r\n \t\tthis.prototype.options = parentOptions;\r\n \t\tthis.mergeOptions(props.options);\r\n \t}\r\n \treturn this;\r\n };\r\n\r\n // @function mergeOptions(options: Object): this\r\n // [Merges `options`](#class-options) into the defaults of the class.\r\n Class.mergeOptions = function (options) {\r\n \textend(this.prototype.options, options);\r\n \treturn this;\r\n };\r\n\r\n // @function addInitHook(fn: Function): this\r\n // Adds a [constructor hook](#class-constructor-hooks) to the class.\r\n Class.addInitHook = function (fn) { // (Function) || (String, args...)\r\n \tvar args = Array.prototype.slice.call(arguments, 1);\r\n\r\n \tvar init = typeof fn === 'function' ? fn : function () {\r\n \t\tthis[fn].apply(this, args);\r\n \t};\r\n\r\n \tthis.prototype._initHooks = this.prototype._initHooks || [];\r\n \tthis.prototype._initHooks.push(init);\r\n \treturn this;\r\n };\r\n\r\n function checkDeprecatedMixinEvents(includes) {\r\n \tif (typeof L === 'undefined' || !L || !L.Mixin) { return; }\r\n\r\n \tincludes = isArray(includes) ? includes : [includes];\r\n\r\n \tfor (var i = 0; i < includes.length; i++) {\r\n \t\tif (includes[i] === L.Mixin.Events) {\r\n \t\t\tconsole.warn('Deprecated include of L.Mixin.Events: ' +\r\n \t\t\t\t'this property will be removed in future releases, ' +\r\n \t\t\t\t'please inherit from L.Evented instead.', new Error().stack);\r\n \t\t}\r\n \t}\r\n }\n\n /*\r\n * @class Evented\r\n * @aka L.Evented\r\n * @inherits Class\r\n *\r\n * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event).\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * map.on('click', function(e) {\r\n * \talert(e.latlng);\r\n * } );\r\n * ```\r\n *\r\n * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function:\r\n *\r\n * ```js\r\n * function onClick(e) { ... }\r\n *\r\n * map.on('click', onClick);\r\n * map.off('click', onClick);\r\n * ```\r\n */\r\n\r\n var Events = {\r\n \t/* @method on(type: String, fn: Function, context?: Object): this\r\n \t * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).\r\n \t *\r\n \t * @alternative\r\n \t * @method on(eventMap: Object): this\r\n \t * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n \t */\r\n \ton: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t/* @method off(type: String, fn?: Function, context?: Object): this\r\n \t * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener.\r\n \t *\r\n \t * @alternative\r\n \t * @method off(eventMap: Object): this\r\n \t * Removes a set of type/listener pairs.\r\n \t *\r\n \t * @alternative\r\n \t * @method off: this\r\n \t * Removes all listeners to all events on the object. This includes implicitly attached events.\r\n \t */\r\n \toff: function (types, fn, context) {\r\n\r\n \t\tif (!arguments.length) {\r\n \t\t\t// clear all listeners if called without arguments\r\n \t\t\tdelete this._events;\r\n\r\n \t\t} else if (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\tthis._off(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tvar removeAll = arguments.length === 1;\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tif (removeAll) {\r\n \t\t\t\t\tthis._off(types[i]);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tthis._off(types[i], fn, context);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// attach listener (without syntactic sugar now)\r\n \t_on: function (type, fn, context) {\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n \t\tthis._events = this._events || {};\r\n\r\n \t\t/* get/init listeners for type */\r\n \t\tvar typeListeners = this._events[type];\r\n \t\tif (!typeListeners) {\r\n \t\t\ttypeListeners = [];\r\n \t\t\tthis._events[type] = typeListeners;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n \t\tvar newListener = {fn: fn, ctx: context},\r\n \t\t listeners = typeListeners;\r\n\r\n \t\t// check if fn already there\r\n \t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\tif (listeners[i].fn === fn && listeners[i].ctx === context) {\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tlisteners.push(newListener);\r\n \t},\r\n\r\n \t_off: function (type, fn, context) {\r\n \t\tvar listeners,\r\n \t\t i,\r\n \t\t len;\r\n\r\n \t\tif (!this._events) { return; }\r\n\r\n \t\tlisteners = this._events[type];\r\n\r\n \t\tif (!listeners) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (arguments.length === 1) { // remove all\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// Set all removed listeners to noop\r\n \t\t\t\t// so they are not called if remove happens in fire\r\n \t\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tlisteners[i].fn = falseFn;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\t// clear all listeners for a type if function isn't specified\r\n \t\t\tdelete this._events[type];\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n \t\t// find fn and remove it\r\n \t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\tvar l = listeners[i];\r\n \t\t\tif (l.ctx !== context) { continue; }\r\n \t\t\tif (l.fn === fn) {\r\n \t\t\t\tif (this._firingCount) {\r\n \t\t\t\t\t// set the removed listener to noop so that's not called if remove happens in fire\r\n \t\t\t\t\tl.fn = falseFn;\r\n\r\n \t\t\t\t\t/* copy array in case events are being fired */\r\n \t\t\t\t\tthis._events[type] = listeners = listeners.slice();\r\n \t\t\t\t}\r\n \t\t\t\tlisteners.splice(i, 1);\r\n\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n \t\t}\r\n \t\tconsole.warn('listener not found');\r\n \t},\r\n\r\n \t// @method fire(type: String, data?: Object, propagate?: Boolean): this\r\n \t// Fires an event of the specified type. You can optionally provide a data\r\n \t// object — the first argument of the listener function will contain its\r\n \t// properties. The event can optionally be propagated to event parents.\r\n \tfire: function (type, data, propagate) {\r\n \t\tif (!this.listens(type, propagate)) { return this; }\r\n\r\n \t\tvar event = extend({}, data, {\r\n \t\t\ttype: type,\r\n \t\t\ttarget: this,\r\n \t\t\tsourceTarget: data && data.sourceTarget || this\r\n \t\t});\r\n\r\n \t\tif (this._events) {\r\n \t\t\tvar listeners = this._events[type];\r\n\r\n \t\t\tif (listeners) {\r\n \t\t\t\tthis._firingCount = (this._firingCount + 1) || 1;\r\n \t\t\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tvar l = listeners[i];\r\n \t\t\t\t\tl.fn.call(l.ctx || this, event);\r\n \t\t\t\t}\r\n\r\n \t\t\t\tthis._firingCount--;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// propagate the event to parents (set with addEventParent)\r\n \t\t\tthis._propagateEvent(event);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method listens(type: String, propagate?: Boolean): Boolean\r\n \t// Returns `true` if a particular event type has any listeners attached to it.\r\n \t// The verification can optionally be propagated, it will return `true` if parents have the listener attached to it.\r\n \tlistens: function (type, propagate) {\r\n \t\tif (typeof type !== 'string') {\r\n \t\t\tconsole.warn('\"string\" type argument expected');\r\n \t\t}\r\n \t\tvar listeners = this._events && this._events[type];\r\n \t\tif (listeners && listeners.length) { return true; }\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// also check parents for listeners if event propagates\r\n \t\t\tfor (var id in this._eventParents) {\r\n \t\t\t\tif (this._eventParents[id].listens(type, propagate)) { return true; }\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n \t},\r\n\r\n \t// @method once(…): this\r\n \t// Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed.\r\n \tonce: function (types, fn, context) {\r\n\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\tthis.once(type, types[type], fn);\r\n \t\t\t}\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\tvar handler = bind(function () {\r\n \t\t\tthis\r\n \t\t\t .off(types, fn, context)\r\n \t\t\t .off(types, handler, context);\r\n \t\t}, this);\r\n\r\n \t\t// add a listener that's executed once and removed after that\r\n \t\treturn this\r\n \t\t .on(types, fn, context)\r\n \t\t .on(types, handler, context);\r\n \t},\r\n\r\n \t// @method addEventParent(obj: Evented): this\r\n \t// Adds an event parent - an `Evented` that will receive propagated events\r\n \taddEventParent: function (obj) {\r\n \t\tthis._eventParents = this._eventParents || {};\r\n \t\tthis._eventParents[stamp(obj)] = obj;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeEventParent(obj: Evented): this\r\n \t// Removes an event parent, so it will stop receiving propagated events\r\n \tremoveEventParent: function (obj) {\r\n \t\tif (this._eventParents) {\r\n \t\t\tdelete this._eventParents[stamp(obj)];\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_propagateEvent: function (e) {\r\n \t\tfor (var id in this._eventParents) {\r\n \t\t\tthis._eventParents[id].fire(e.type, extend({\r\n \t\t\t\tlayer: e.target,\r\n \t\t\t\tpropagatedFrom: e.target\r\n \t\t\t}, e), true);\r\n \t\t}\r\n \t}\r\n };\r\n\r\n // aliases; we should ditch those eventually\r\n\r\n // @method addEventListener(…): this\r\n // Alias to [`on(…)`](#evented-on)\r\n Events.addEventListener = Events.on;\r\n\r\n // @method removeEventListener(…): this\r\n // Alias to [`off(…)`](#evented-off)\r\n\r\n // @method clearAllEventListeners(…): this\r\n // Alias to [`off()`](#evented-off)\r\n Events.removeEventListener = Events.clearAllEventListeners = Events.off;\r\n\r\n // @method addOneTimeEventListener(…): this\r\n // Alias to [`once(…)`](#evented-once)\r\n Events.addOneTimeEventListener = Events.once;\r\n\r\n // @method fireEvent(…): this\r\n // Alias to [`fire(…)`](#evented-fire)\r\n Events.fireEvent = Events.fire;\r\n\r\n // @method hasEventListeners(…): Boolean\r\n // Alias to [`listens(…)`](#evented-listens)\r\n Events.hasEventListeners = Events.listens;\r\n\r\n var Evented = Class.extend(Events);\n\n /*\r\n * @class Point\r\n * @aka L.Point\r\n *\r\n * Represents a point with `x` and `y` coordinates in pixels.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var point = L.point(200, 300);\r\n * ```\r\n *\r\n * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```js\r\n * map.panBy([200, 300]);\r\n * map.panBy(L.point(200, 300));\r\n * ```\r\n *\r\n * Note that `Point` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Point(x, y, round) {\r\n \t// @property x: Number; The `x` coordinate of the point\r\n \tthis.x = (round ? Math.round(x) : x);\r\n \t// @property y: Number; The `y` coordinate of the point\r\n \tthis.y = (round ? Math.round(y) : y);\r\n }\r\n\r\n var trunc = Math.trunc || function (v) {\r\n \treturn v > 0 ? Math.floor(v) : Math.ceil(v);\r\n };\r\n\r\n Point.prototype = {\r\n\r\n \t// @method clone(): Point\r\n \t// Returns a copy of the current point.\r\n \tclone: function () {\r\n \t\treturn new Point(this.x, this.y);\r\n \t},\r\n\r\n \t// @method add(otherPoint: Point): Point\r\n \t// Returns the result of addition of the current and the given points.\r\n \tadd: function (point) {\r\n \t\t// non-destructive, returns a new point\r\n \t\treturn this.clone()._add(toPoint(point));\r\n \t},\r\n\r\n \t_add: function (point) {\r\n \t\t// destructive, used directly for performance in situations where it's safe to modify existing point\r\n \t\tthis.x += point.x;\r\n \t\tthis.y += point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method subtract(otherPoint: Point): Point\r\n \t// Returns the result of subtraction of the given point from the current.\r\n \tsubtract: function (point) {\r\n \t\treturn this.clone()._subtract(toPoint(point));\r\n \t},\r\n\r\n \t_subtract: function (point) {\r\n \t\tthis.x -= point.x;\r\n \t\tthis.y -= point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method divideBy(num: Number): Point\r\n \t// Returns the result of division of the current point by the given number.\r\n \tdivideBy: function (num) {\r\n \t\treturn this.clone()._divideBy(num);\r\n \t},\r\n\r\n \t_divideBy: function (num) {\r\n \t\tthis.x /= num;\r\n \t\tthis.y /= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method multiplyBy(num: Number): Point\r\n \t// Returns the result of multiplication of the current point by the given number.\r\n \tmultiplyBy: function (num) {\r\n \t\treturn this.clone()._multiplyBy(num);\r\n \t},\r\n\r\n \t_multiplyBy: function (num) {\r\n \t\tthis.x *= num;\r\n \t\tthis.y *= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method scaleBy(scale: Point): Point\r\n \t// Multiply each coordinate of the current point by each coordinate of\r\n \t// `scale`. In linear algebra terms, multiply the point by the\r\n \t// [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation)\r\n \t// defined by `scale`.\r\n \tscaleBy: function (point) {\r\n \t\treturn new Point(this.x * point.x, this.y * point.y);\r\n \t},\r\n\r\n \t// @method unscaleBy(scale: Point): Point\r\n \t// Inverse of `scaleBy`. Divide each coordinate of the current point by\r\n \t// each coordinate of `scale`.\r\n \tunscaleBy: function (point) {\r\n \t\treturn new Point(this.x / point.x, this.y / point.y);\r\n \t},\r\n\r\n \t// @method round(): Point\r\n \t// Returns a copy of the current point with rounded coordinates.\r\n \tround: function () {\r\n \t\treturn this.clone()._round();\r\n \t},\r\n\r\n \t_round: function () {\r\n \t\tthis.x = Math.round(this.x);\r\n \t\tthis.y = Math.round(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method floor(): Point\r\n \t// Returns a copy of the current point with floored coordinates (rounded down).\r\n \tfloor: function () {\r\n \t\treturn this.clone()._floor();\r\n \t},\r\n\r\n \t_floor: function () {\r\n \t\tthis.x = Math.floor(this.x);\r\n \t\tthis.y = Math.floor(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method ceil(): Point\r\n \t// Returns a copy of the current point with ceiled coordinates (rounded up).\r\n \tceil: function () {\r\n \t\treturn this.clone()._ceil();\r\n \t},\r\n\r\n \t_ceil: function () {\r\n \t\tthis.x = Math.ceil(this.x);\r\n \t\tthis.y = Math.ceil(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method trunc(): Point\r\n \t// Returns a copy of the current point with truncated coordinates (rounded towards zero).\r\n \ttrunc: function () {\r\n \t\treturn this.clone()._trunc();\r\n \t},\r\n\r\n \t_trunc: function () {\r\n \t\tthis.x = trunc(this.x);\r\n \t\tthis.y = trunc(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method distanceTo(otherPoint: Point): Number\r\n \t// Returns the cartesian distance between the current and the given points.\r\n \tdistanceTo: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\tvar x = point.x - this.x,\r\n \t\t y = point.y - this.y;\r\n\r\n \t\treturn Math.sqrt(x * x + y * y);\r\n \t},\r\n\r\n \t// @method equals(otherPoint: Point): Boolean\r\n \t// Returns `true` if the given point has the same coordinates.\r\n \tequals: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn point.x === this.x &&\r\n \t\t point.y === this.y;\r\n \t},\r\n\r\n \t// @method contains(otherPoint: Point): Boolean\r\n \t// Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values).\r\n \tcontains: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn Math.abs(point.x) <= Math.abs(this.x) &&\r\n \t\t Math.abs(point.y) <= Math.abs(this.y);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point for debugging purposes.\r\n \ttoString: function () {\r\n \t\treturn 'Point(' +\r\n \t\t formatNum(this.x) + ', ' +\r\n \t\t formatNum(this.y) + ')';\r\n \t}\r\n };\r\n\r\n // @factory L.point(x: Number, y: Number, round?: Boolean)\r\n // Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Number[])\r\n // Expects an array of the form `[x, y]` instead.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Object)\r\n // Expects a plain object of the form `{x: Number, y: Number}` instead.\r\n function toPoint(x, y, round) {\r\n \tif (x instanceof Point) {\r\n \t\treturn x;\r\n \t}\r\n \tif (isArray(x)) {\r\n \t\treturn new Point(x[0], x[1]);\r\n \t}\r\n \tif (x === undefined || x === null) {\r\n \t\treturn x;\r\n \t}\r\n \tif (typeof x === 'object' && 'x' in x && 'y' in x) {\r\n \t\treturn new Point(x.x, x.y);\r\n \t}\r\n \treturn new Point(x, y, round);\r\n }\n\n /*\r\n * @class Bounds\r\n * @aka L.Bounds\r\n *\r\n * Represents a rectangular area in pixel coordinates.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var p1 = L.point(10, 10),\r\n * p2 = L.point(40, 60),\r\n * bounds = L.bounds(p1, p2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * otherBounds.intersects([[10, 10], [40, 60]]);\r\n * ```\r\n *\r\n * Note that `Bounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Bounds(a, b) {\r\n \tif (!a) { return; }\r\n\r\n \tvar points = b ? [a, b] : a;\r\n\r\n \tfor (var i = 0, len = points.length; i < len; i++) {\r\n \t\tthis.extend(points[i]);\r\n \t}\r\n }\r\n\r\n Bounds.prototype = {\r\n \t// @method extend(point: Point): this\r\n \t// Extends the bounds to contain the given point.\r\n \textend: function (point) { // (Point)\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\t// @property min: Point\r\n \t\t// The top left corner of the rectangle.\r\n \t\t// @property max: Point\r\n \t\t// The bottom right corner of the rectangle.\r\n \t\tif (!this.min && !this.max) {\r\n \t\t\tthis.min = point.clone();\r\n \t\t\tthis.max = point.clone();\r\n \t\t} else {\r\n \t\t\tthis.min.x = Math.min(point.x, this.min.x);\r\n \t\t\tthis.max.x = Math.max(point.x, this.max.x);\r\n \t\t\tthis.min.y = Math.min(point.y, this.min.y);\r\n \t\t\tthis.max.y = Math.max(point.y, this.max.y);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getCenter(round?: Boolean): Point\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function (round) {\r\n \t\treturn new Point(\r\n \t\t (this.min.x + this.max.x) / 2,\r\n \t\t (this.min.y + this.max.y) / 2, round);\r\n \t},\r\n\r\n \t// @method getBottomLeft(): Point\r\n \t// Returns the bottom-left point of the bounds.\r\n \tgetBottomLeft: function () {\r\n \t\treturn new Point(this.min.x, this.max.y);\r\n \t},\r\n\r\n \t// @method getTopRight(): Point\r\n \t// Returns the top-right point of the bounds.\r\n \tgetTopRight: function () { // -> Point\r\n \t\treturn new Point(this.max.x, this.min.y);\r\n \t},\r\n\r\n \t// @method getTopLeft(): Point\r\n \t// Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)).\r\n \tgetTopLeft: function () {\r\n \t\treturn this.min; // left, top\r\n \t},\r\n\r\n \t// @method getBottomRight(): Point\r\n \t// Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)).\r\n \tgetBottomRight: function () {\r\n \t\treturn this.max; // right, bottom\r\n \t},\r\n\r\n \t// @method getSize(): Point\r\n \t// Returns the size of the given bounds\r\n \tgetSize: function () {\r\n \t\treturn this.max.subtract(this.min);\r\n \t},\r\n\r\n \t// @method contains(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n \t// @alternative\r\n \t// @method contains(point: Point): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) {\r\n \t\tvar min, max;\r\n\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof Point) {\r\n \t\t\tobj = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t}\r\n\r\n \t\tif (obj instanceof Bounds) {\r\n \t\t\tmin = obj.min;\r\n \t\t\tmax = obj.max;\r\n \t\t} else {\r\n \t\t\tmin = max = obj;\r\n \t\t}\r\n\r\n \t\treturn (min.x >= this.min.x) &&\r\n \t\t (max.x <= this.max.x) &&\r\n \t\t (min.y >= this.min.y) &&\r\n \t\t (max.y <= this.max.y);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds\r\n \t// intersect if they have at least one point in common.\r\n \tintersects: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xIntersects = (max2.x >= min.x) && (min2.x <= max.x),\r\n \t\t yIntersects = (max2.y >= min.y) && (min2.y <= max.y);\r\n\r\n \t\treturn xIntersects && yIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds\r\n \t// overlap if their intersection is an area.\r\n \toverlaps: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xOverlaps = (max2.x > min.x) && (min2.x < max.x),\r\n \t\t yOverlaps = (max2.y > min.y) && (min2.y < max.y);\r\n\r\n \t\treturn xOverlaps && yOverlaps;\r\n \t},\r\n\r\n \tisValid: function () {\r\n \t\treturn !!(this.min && this.max);\r\n \t}\r\n };\r\n\r\n\r\n // @factory L.bounds(corner1: Point, corner2: Point)\r\n // Creates a Bounds object from two corners coordinate pairs.\r\n // @alternative\r\n // @factory L.bounds(points: Point[])\r\n // Creates a Bounds object from the given array of points.\r\n function toBounds(a, b) {\r\n \tif (!a || a instanceof Bounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new Bounds(a, b);\r\n }\n\n /*\r\n * @class LatLngBounds\r\n * @aka L.LatLngBounds\r\n *\r\n * Represents a rectangular geographical area on a map.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var corner1 = L.latLng(40.712, -74.227),\r\n * corner2 = L.latLng(40.774, -74.125),\r\n * bounds = L.latLngBounds(corner1, corner2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * map.fitBounds([\r\n * \t[40.712, -74.227],\r\n * \t[40.774, -74.125]\r\n * ]);\r\n * ```\r\n *\r\n * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range.\r\n *\r\n * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])\r\n \tif (!corner1) { return; }\r\n\r\n \tvar latlngs = corner2 ? [corner1, corner2] : corner1;\r\n\r\n \tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n \t\tthis.extend(latlngs[i]);\r\n \t}\r\n }\r\n\r\n LatLngBounds.prototype = {\r\n\r\n \t// @method extend(latlng: LatLng): this\r\n \t// Extend the bounds to contain the given point\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: LatLngBounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLng) {\r\n \t\t\tsw2 = obj;\r\n \t\t\tne2 = obj;\r\n\r\n \t\t} else if (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj._southWest;\r\n \t\t\tne2 = obj._northEast;\r\n\r\n \t\t\tif (!sw2 || !ne2) { return this; }\r\n\r\n \t\t} else {\r\n \t\t\treturn obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this;\r\n \t\t}\r\n\r\n \t\tif (!sw && !ne) {\r\n \t\t\tthis._southWest = new LatLng(sw2.lat, sw2.lng);\r\n \t\t\tthis._northEast = new LatLng(ne2.lat, ne2.lng);\r\n \t\t} else {\r\n \t\t\tsw.lat = Math.min(sw2.lat, sw.lat);\r\n \t\t\tsw.lng = Math.min(sw2.lng, sw.lng);\r\n \t\t\tne.lat = Math.max(ne2.lat, ne.lat);\r\n \t\t\tne.lng = Math.max(ne2.lng, ne.lng);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method pad(bufferRatio: Number): LatLngBounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,\r\n \t\t widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;\r\n\r\n \t\treturn new LatLngBounds(\r\n \t\t new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),\r\n \t\t new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));\r\n \t},\r\n\r\n \t// @method getCenter(): LatLng\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function () {\r\n \t\treturn new LatLng(\r\n \t\t (this._southWest.lat + this._northEast.lat) / 2,\r\n \t\t (this._southWest.lng + this._northEast.lng) / 2);\r\n \t},\r\n\r\n \t// @method getSouthWest(): LatLng\r\n \t// Returns the south-west point of the bounds.\r\n \tgetSouthWest: function () {\r\n \t\treturn this._southWest;\r\n \t},\r\n\r\n \t// @method getNorthEast(): LatLng\r\n \t// Returns the north-east point of the bounds.\r\n \tgetNorthEast: function () {\r\n \t\treturn this._northEast;\r\n \t},\r\n\r\n \t// @method getNorthWest(): LatLng\r\n \t// Returns the north-west point of the bounds.\r\n \tgetNorthWest: function () {\r\n \t\treturn new LatLng(this.getNorth(), this.getWest());\r\n \t},\r\n\r\n \t// @method getSouthEast(): LatLng\r\n \t// Returns the south-east point of the bounds.\r\n \tgetSouthEast: function () {\r\n \t\treturn new LatLng(this.getSouth(), this.getEast());\r\n \t},\r\n\r\n \t// @method getWest(): Number\r\n \t// Returns the west longitude of the bounds\r\n \tgetWest: function () {\r\n \t\treturn this._southWest.lng;\r\n \t},\r\n\r\n \t// @method getSouth(): Number\r\n \t// Returns the south latitude of the bounds\r\n \tgetSouth: function () {\r\n \t\treturn this._southWest.lat;\r\n \t},\r\n\r\n \t// @method getEast(): Number\r\n \t// Returns the east longitude of the bounds\r\n \tgetEast: function () {\r\n \t\treturn this._northEast.lng;\r\n \t},\r\n\r\n \t// @method getNorth(): Number\r\n \t// Returns the north latitude of the bounds\r\n \tgetNorth: function () {\r\n \t\treturn this._northEast.lat;\r\n \t},\r\n\r\n \t// @method contains(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n\r\n \t// @alternative\r\n \t// @method contains (latlng: LatLng): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) {\r\n \t\t\tobj = toLatLng(obj);\r\n \t\t} else {\r\n \t\t\tobj = toLatLngBounds(obj);\r\n \t\t}\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj.getSouthWest();\r\n \t\t\tne2 = obj.getNorthEast();\r\n \t\t} else {\r\n \t\t\tsw2 = ne2 = obj;\r\n \t\t}\r\n\r\n \t\treturn (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&\r\n \t\t (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common.\r\n \tintersects: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),\r\n \t\t lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);\r\n\r\n \t\treturn latIntersects && lngIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area.\r\n \toverlaps: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat),\r\n \t\t lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng);\r\n\r\n \t\treturn latOverlaps && lngOverlaps;\r\n \t},\r\n\r\n \t// @method toBBoxString(): String\r\n \t// Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data.\r\n \ttoBBoxString: function () {\r\n \t\treturn [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');\r\n \t},\r\n\r\n \t// @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (bounds, maxMargin) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\treturn this._southWest.equals(bounds.getSouthWest(), maxMargin) &&\r\n \t\t this._northEast.equals(bounds.getNorthEast(), maxMargin);\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this._southWest && this._northEast);\r\n \t}\r\n };\r\n\r\n // TODO International date line?\r\n\r\n // @factory L.latLngBounds(corner1: LatLng, corner2: LatLng)\r\n // Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle.\r\n\r\n // @alternative\r\n // @factory L.latLngBounds(latlngs: LatLng[])\r\n // Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds).\r\n function toLatLngBounds(a, b) {\r\n \tif (a instanceof LatLngBounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new LatLngBounds(a, b);\r\n }\n\n /* @class LatLng\r\n * @aka L.LatLng\r\n *\r\n * Represents a geographical point with a certain latitude and longitude.\r\n *\r\n * @example\r\n *\r\n * ```\r\n * var latlng = L.latLng(50.5, 30.5);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```\r\n * map.panTo([50, 30]);\r\n * map.panTo({lon: 30, lat: 50});\r\n * map.panTo({lat: 50, lng: 30});\r\n * map.panTo(L.latLng(50, 30));\r\n * ```\r\n *\r\n * Note that `LatLng` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLng(lat, lng, alt) {\r\n \tif (isNaN(lat) || isNaN(lng)) {\r\n \t\tthrow new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\r\n \t}\r\n\r\n \t// @property lat: Number\r\n \t// Latitude in degrees\r\n \tthis.lat = +lat;\r\n\r\n \t// @property lng: Number\r\n \t// Longitude in degrees\r\n \tthis.lng = +lng;\r\n\r\n \t// @property alt: Number\r\n \t// Altitude in meters (optional)\r\n \tif (alt !== undefined) {\r\n \t\tthis.alt = +alt;\r\n \t}\r\n }\r\n\r\n LatLng.prototype = {\r\n \t// @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (obj, maxMargin) {\r\n \t\tif (!obj) { return false; }\r\n\r\n \t\tobj = toLatLng(obj);\r\n\r\n \t\tvar margin = Math.max(\r\n \t\t Math.abs(this.lat - obj.lat),\r\n \t\t Math.abs(this.lng - obj.lng));\r\n\r\n \t\treturn margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point (for debugging purposes).\r\n \ttoString: function (precision) {\r\n \t\treturn 'LatLng(' +\r\n \t\t formatNum(this.lat, precision) + ', ' +\r\n \t\t formatNum(this.lng, precision) + ')';\r\n \t},\r\n\r\n \t// @method distanceTo(otherLatLng: LatLng): Number\r\n \t// Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines).\r\n \tdistanceTo: function (other) {\r\n \t\treturn Earth.distance(this, toLatLng(other));\r\n \t},\r\n\r\n \t// @method wrap(): LatLng\r\n \t// Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees.\r\n \twrap: function () {\r\n \t\treturn Earth.wrapLatLng(this);\r\n \t},\r\n\r\n \t// @method toBounds(sizeInMeters: Number): LatLngBounds\r\n \t// Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`.\r\n \ttoBounds: function (sizeInMeters) {\r\n \t\tvar latAccuracy = 180 * sizeInMeters / 40075017,\r\n \t\t lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat);\r\n\r\n \t\treturn toLatLngBounds(\r\n \t\t [this.lat - latAccuracy, this.lng - lngAccuracy],\r\n \t\t [this.lat + latAccuracy, this.lng + lngAccuracy]);\r\n \t},\r\n\r\n \tclone: function () {\r\n \t\treturn new LatLng(this.lat, this.lng, this.alt);\r\n \t}\r\n };\r\n\r\n\r\n\r\n // @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng\r\n // Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude).\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Array): LatLng\r\n // Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead.\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Object): LatLng\r\n // Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead.\r\n\r\n function toLatLng(a, b, c) {\r\n \tif (a instanceof LatLng) {\r\n \t\treturn a;\r\n \t}\r\n \tif (isArray(a) && typeof a[0] !== 'object') {\r\n \t\tif (a.length === 3) {\r\n \t\t\treturn new LatLng(a[0], a[1], a[2]);\r\n \t\t}\r\n \t\tif (a.length === 2) {\r\n \t\t\treturn new LatLng(a[0], a[1]);\r\n \t\t}\r\n \t\treturn null;\r\n \t}\r\n \tif (a === undefined || a === null) {\r\n \t\treturn a;\r\n \t}\r\n \tif (typeof a === 'object' && 'lat' in a) {\r\n \t\treturn new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt);\r\n \t}\r\n \tif (b === undefined) {\r\n \t\treturn null;\r\n \t}\r\n \treturn new LatLng(a, b, c);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.Base\r\n * Object that defines coordinate reference systems for projecting\r\n * geographical points into pixel (screen) coordinates and back (and to\r\n * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See\r\n * [spatial reference system](https://en.wikipedia.org/wiki/Spatial_reference_system).\r\n *\r\n * Leaflet defines the most usual CRSs by default. If you want to use a\r\n * CRS not defined by default, take a look at the\r\n * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin.\r\n *\r\n * Note that the CRS instances do not inherit from Leaflet's `Class` object,\r\n * and can't be instantiated. Also, new classes can't inherit from them,\r\n * and methods can't be added to them with the `include` function.\r\n */\r\n\r\n var CRS = {\r\n \t// @method latLngToPoint(latlng: LatLng, zoom: Number): Point\r\n \t// Projects geographical coordinates into pixel coordinates for a given zoom.\r\n \tlatLngToPoint: function (latlng, zoom) {\r\n \t\tvar projectedPoint = this.projection.project(latlng),\r\n \t\t scale = this.scale(zoom);\r\n\r\n \t\treturn this.transformation._transform(projectedPoint, scale);\r\n \t},\r\n\r\n \t// @method pointToLatLng(point: Point, zoom: Number): LatLng\r\n \t// The inverse of `latLngToPoint`. Projects pixel coordinates on a given\r\n \t// zoom into geographical coordinates.\r\n \tpointToLatLng: function (point, zoom) {\r\n \t\tvar scale = this.scale(zoom),\r\n \t\t untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n \t\treturn this.projection.unproject(untransformedPoint);\r\n \t},\r\n\r\n \t// @method project(latlng: LatLng): Point\r\n \t// Projects geographical coordinates into coordinates in units accepted for\r\n \t// this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).\r\n \tproject: function (latlng) {\r\n \t\treturn this.projection.project(latlng);\r\n \t},\r\n\r\n \t// @method unproject(point: Point): LatLng\r\n \t// Given a projected coordinate returns the corresponding LatLng.\r\n \t// The inverse of `project`.\r\n \tunproject: function (point) {\r\n \t\treturn this.projection.unproject(point);\r\n \t},\r\n\r\n \t// @method scale(zoom: Number): Number\r\n \t// Returns the scale used when transforming projected coordinates into\r\n \t// pixel coordinates for a particular zoom. For example, it returns\r\n \t// `256 * 2^zoom` for Mercator-based CRS.\r\n \tscale: function (zoom) {\r\n \t\treturn 256 * Math.pow(2, zoom);\r\n \t},\r\n\r\n \t// @method zoom(scale: Number): Number\r\n \t// Inverse of `scale()`, returns the zoom level corresponding to a scale\r\n \t// factor of `scale`.\r\n \tzoom: function (scale) {\r\n \t\treturn Math.log(scale / 256) / Math.LN2;\r\n \t},\r\n\r\n \t// @method getProjectedBounds(zoom: Number): Bounds\r\n \t// Returns the projection's bounds scaled and transformed for the provided `zoom`.\r\n \tgetProjectedBounds: function (zoom) {\r\n \t\tif (this.infinite) { return null; }\r\n\r\n \t\tvar b = this.projection.bounds,\r\n \t\t s = this.scale(zoom),\r\n \t\t min = this.transformation.transform(b.min, s),\r\n \t\t max = this.transformation.transform(b.max, s);\r\n\r\n \t\treturn new Bounds(min, max);\r\n \t},\r\n\r\n \t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n \t// Returns the distance between two geographical coordinates.\r\n\r\n \t// @property code: String\r\n \t// Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)\r\n \t//\r\n \t// @property wrapLng: Number[]\r\n \t// An array of two numbers defining whether the longitude (horizontal) coordinate\r\n \t// axis wraps around a given range and how. Defaults to `[-180, 180]` in most\r\n \t// geographical CRSs. If `undefined`, the longitude axis does not wrap around.\r\n \t//\r\n \t// @property wrapLat: Number[]\r\n \t// Like `wrapLng`, but for the latitude (vertical) axis.\r\n\r\n \t// wrapLng: [min, max],\r\n \t// wrapLat: [min, max],\r\n\r\n \t// @property infinite: Boolean\r\n \t// If true, the coordinate space will be unbounded (infinite in both axes)\r\n \tinfinite: false,\r\n\r\n \t// @method wrapLatLng(latlng: LatLng): LatLng\r\n \t// Returns a `LatLng` where lat and lng has been wrapped according to the\r\n \t// CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.\r\n \twrapLatLng: function (latlng) {\r\n \t\tvar lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng,\r\n \t\t lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat,\r\n \t\t alt = latlng.alt;\r\n\r\n \t\treturn new LatLng(lat, lng, alt);\r\n \t},\r\n\r\n \t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n \t// Returns a `LatLngBounds` with the same size as the given one, ensuring\r\n \t// that its center is within the CRS's bounds.\r\n \t// Only accepts actual `L.LatLngBounds` instances, not arrays.\r\n \twrapLatLngBounds: function (bounds) {\r\n \t\tvar center = bounds.getCenter(),\r\n \t\t newCenter = this.wrapLatLng(center),\r\n \t\t latShift = center.lat - newCenter.lat,\r\n \t\t lngShift = center.lng - newCenter.lng;\r\n\r\n \t\tif (latShift === 0 && lngShift === 0) {\r\n \t\t\treturn bounds;\r\n \t\t}\r\n\r\n \t\tvar sw = bounds.getSouthWest(),\r\n \t\t ne = bounds.getNorthEast(),\r\n \t\t newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift),\r\n \t\t newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);\r\n\r\n \t\treturn new LatLngBounds(newSw, newNe);\r\n \t}\r\n };\n\n /*\n * @namespace CRS\n * @crs L.CRS.Earth\n *\n * Serves as the base for CRS that are global such that they cover the earth.\n * Can only be used as the base for other CRS and cannot be used directly,\n * since it does not have a `code`, `projection` or `transformation`. `distance()` returns\n * meters.\n */\n\n var Earth = extend({}, CRS, {\n \twrapLng: [-180, 180],\n\n \t// Mean Earth Radius, as recommended for use by\n \t// the International Union of Geodesy and Geophysics,\n \t// see https://rosettacode.org/wiki/Haversine_formula\n \tR: 6371000,\n\n \t// distance between two geographical points using spherical law of cosines approximation\n \tdistance: function (latlng1, latlng2) {\n \t\tvar rad = Math.PI / 180,\n \t\t lat1 = latlng1.lat * rad,\n \t\t lat2 = latlng2.lat * rad,\n \t\t sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2),\n \t\t sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2),\n \t\t a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,\n \t\t c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n \t\treturn this.R * c;\n \t}\n });\n\n /*\r\n * @namespace Projection\r\n * @projection L.Projection.SphericalMercator\r\n *\r\n * Spherical Mercator projection — the most common projection for online maps,\r\n * used by almost all free and commercial tile providers. Assumes that Earth is\r\n * a sphere. Used by the `EPSG:3857` CRS.\r\n */\r\n\r\n var earthRadius = 6378137;\r\n\r\n var SphericalMercator = {\r\n\r\n \tR: earthRadius,\r\n \tMAX_LATITUDE: 85.0511287798,\r\n\r\n \tproject: function (latlng) {\r\n \t\tvar d = Math.PI / 180,\r\n \t\t max = this.MAX_LATITUDE,\r\n \t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n \t\t sin = Math.sin(lat * d);\r\n\r\n \t\treturn new Point(\r\n \t\t\tthis.R * latlng.lng * d,\r\n \t\t\tthis.R * Math.log((1 + sin) / (1 - sin)) / 2);\r\n \t},\r\n\r\n \tunproject: function (point) {\r\n \t\tvar d = 180 / Math.PI;\r\n\r\n \t\treturn new LatLng(\r\n \t\t\t(2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d,\r\n \t\t\tpoint.x * d / this.R);\r\n \t},\r\n\r\n \tbounds: (function () {\r\n \t\tvar d = earthRadius * Math.PI;\r\n \t\treturn new Bounds([-d, -d], [d, d]);\r\n \t})()\r\n };\n\n /*\r\n * @class Transformation\r\n * @aka L.Transformation\r\n *\r\n * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d`\r\n * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing\r\n * the reverse. Used by Leaflet in its projections code.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var transformation = L.transformation(2, 5, -1, 10),\r\n * \tp = L.point(1, 2),\r\n * \tp2 = transformation.transform(p), // L.point(7, 8)\r\n * \tp3 = transformation.untransform(p2); // L.point(1, 2)\r\n * ```\r\n */\r\n\r\n\r\n // factory new L.Transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Creates a `Transformation` object with the given coefficients.\r\n function Transformation(a, b, c, d) {\r\n \tif (isArray(a)) {\r\n \t\t// use array properties\r\n \t\tthis._a = a[0];\r\n \t\tthis._b = a[1];\r\n \t\tthis._c = a[2];\r\n \t\tthis._d = a[3];\r\n \t\treturn;\r\n \t}\r\n \tthis._a = a;\r\n \tthis._b = b;\r\n \tthis._c = c;\r\n \tthis._d = d;\r\n }\r\n\r\n Transformation.prototype = {\r\n \t// @method transform(point: Point, scale?: Number): Point\r\n \t// Returns a transformed point, optionally multiplied by the given scale.\r\n \t// Only accepts actual `L.Point` instances, not arrays.\r\n \ttransform: function (point, scale) { // (Point, Number) -> Point\r\n \t\treturn this._transform(point.clone(), scale);\r\n \t},\r\n\r\n \t// destructive transform (faster)\r\n \t_transform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\tpoint.x = scale * (this._a * point.x + this._b);\r\n \t\tpoint.y = scale * (this._c * point.y + this._d);\r\n \t\treturn point;\r\n \t},\r\n\r\n \t// @method untransform(point: Point, scale?: Number): Point\r\n \t// Returns the reverse transformation of the given point, optionally divided\r\n \t// by the given scale. Only accepts actual `L.Point` instances, not arrays.\r\n \tuntransform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\treturn new Point(\r\n \t\t (point.x / scale - this._b) / this._a,\r\n \t\t (point.y / scale - this._d) / this._c);\r\n \t}\r\n };\r\n\r\n // factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n\r\n // @factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Instantiates a Transformation object with the given coefficients.\r\n\r\n // @alternative\r\n // @factory L.transformation(coefficients: Array): Transformation\r\n // Expects an coefficients array of the form\r\n // `[a: Number, b: Number, c: Number, d: Number]`.\r\n\r\n function toTransformation(a, b, c, d) {\r\n \treturn new Transformation(a, b, c, d);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3857\r\n *\r\n * The most common CRS for online maps, used by almost all free and commercial\r\n * tile providers. Uses Spherical Mercator projection. Set in by default in\r\n * Map's `crs` option.\r\n */\r\n\r\n var EPSG3857 = extend({}, Earth, {\r\n \tcode: 'EPSG:3857',\r\n \tprojection: SphericalMercator,\r\n\r\n \ttransformation: (function () {\r\n \t\tvar scale = 0.5 / (Math.PI * SphericalMercator.R);\r\n \t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n \t}())\r\n });\r\n\r\n var EPSG900913 = extend({}, EPSG3857, {\r\n \tcode: 'EPSG:900913'\r\n });\n\n // @namespace SVG; @section\n // There are several static functions which can be called without instantiating L.SVG:\n\n // @function create(name: String): SVGElement\n // Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement),\n // corresponding to the class name passed. For example, using 'line' will return\n // an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement).\n function svgCreate(name) {\n \treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n }\n\n // @function pointsToPath(rings: Point[], closed: Boolean): String\n // Generates a SVG path string for multiple rings, with each ring turning\n // into \"M..L..L..\" instructions\n function pointsToPath(rings, closed) {\n \tvar str = '',\n \ti, j, len, len2, points, p;\n\n \tfor (i = 0, len = rings.length; i < len; i++) {\n \t\tpoints = rings[i];\n\n \t\tfor (j = 0, len2 = points.length; j < len2; j++) {\n \t\t\tp = points[j];\n \t\t\tstr += (j ? 'L' : 'M') + p.x + ' ' + p.y;\n \t\t}\n\n \t\t// closes the ring for polygons; \"x\" is VML syntax\n \t\tstr += closed ? (Browser.svg ? 'z' : 'x') : '';\n \t}\n\n \t// SVG complains about empty path strings\n \treturn str || 'M0 0';\n }\n\n /*\r\n * @namespace Browser\r\n * @aka L.Browser\r\n *\r\n * A namespace with static properties for browser/feature detection used by Leaflet internally.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * if (L.Browser.ielt9) {\r\n * alert('Upgrade your browser, dude!');\r\n * }\r\n * ```\r\n */\r\n\r\n var style = document.documentElement.style;\r\n\r\n // @property ie: Boolean; `true` for all Internet Explorer versions (not Edge).\r\n var ie = 'ActiveXObject' in window;\r\n\r\n // @property ielt9: Boolean; `true` for Internet Explorer versions less than 9.\r\n var ielt9 = ie && !document.addEventListener;\r\n\r\n // @property edge: Boolean; `true` for the Edge web browser.\r\n var edge = 'msLaunchUri' in navigator && !('documentMode' in document);\r\n\r\n // @property webkit: Boolean;\r\n // `true` for webkit-based browsers like Chrome and Safari (including mobile versions).\r\n var webkit = userAgentContains('webkit');\r\n\r\n // @property android: Boolean\r\n // **Deprecated.** `true` for any browser running on an Android platform.\r\n var android = userAgentContains('android');\r\n\r\n // @property android23: Boolean; **Deprecated.** `true` for browsers running on Android 2 or Android 3.\r\n var android23 = userAgentContains('android 2') || userAgentContains('android 3');\r\n\r\n /* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */\r\n var webkitVer = parseInt(/WebKit\\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit\r\n // @property androidStock: Boolean; **Deprecated.** `true` for the Android stock browser (i.e. not Chrome)\r\n var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window);\r\n\r\n // @property opera: Boolean; `true` for the Opera browser\r\n var opera = !!window.opera;\r\n\r\n // @property chrome: Boolean; `true` for the Chrome browser.\r\n var chrome = !edge && userAgentContains('chrome');\r\n\r\n // @property gecko: Boolean; `true` for gecko-based browsers like Firefox.\r\n var gecko = userAgentContains('gecko') && !webkit && !opera && !ie;\r\n\r\n // @property safari: Boolean; `true` for the Safari browser.\r\n var safari = !chrome && userAgentContains('safari');\r\n\r\n var phantom = userAgentContains('phantom');\r\n\r\n // @property opera12: Boolean\r\n // `true` for the Opera browser supporting CSS transforms (version 12 or later).\r\n var opera12 = 'OTransition' in style;\r\n\r\n // @property win: Boolean; `true` when the browser is running in a Windows platform\r\n var win = navigator.platform.indexOf('Win') === 0;\r\n\r\n // @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms.\r\n var ie3d = ie && ('transition' in style);\r\n\r\n // @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms.\r\n var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;\r\n\r\n // @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms.\r\n var gecko3d = 'MozPerspective' in style;\r\n\r\n // @property any3d: Boolean\r\n // `true` for all browsers supporting CSS transforms.\r\n var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom;\r\n\r\n // @property mobile: Boolean; `true` for all browsers running in a mobile device.\r\n var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile');\r\n\r\n // @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device.\r\n var mobileWebkit = mobile && webkit;\r\n\r\n // @property mobileWebkit3d: Boolean\r\n // `true` for all webkit-based browsers in a mobile device supporting CSS transforms.\r\n var mobileWebkit3d = mobile && webkit3d;\r\n\r\n // @property msPointer: Boolean\r\n // `true` for browsers implementing the Microsoft touch events model (notably IE10).\r\n var msPointer = !window.PointerEvent && window.MSPointerEvent;\r\n\r\n // @property pointer: Boolean\r\n // `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).\r\n var pointer = !!(window.PointerEvent || msPointer);\r\n\r\n // @property touchNative: Boolean\r\n // `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).\r\n // **This does not necessarily mean** that the browser is running in a computer with\r\n // a touchscreen, it only means that the browser is capable of understanding\r\n // touch events.\r\n var touchNative = 'ontouchstart' in window || !!window.TouchEvent;\r\n\r\n // @property touch: Boolean\r\n // `true` for all browsers supporting either [touch](#browser-touch) or [pointer](#browser-pointer) events.\r\n // Note: pointer events will be preferred (if available), and processed for all `touch*` listeners.\r\n var touch = !window.L_NO_TOUCH && (touchNative || pointer);\r\n\r\n // @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device.\r\n var mobileOpera = mobile && opera;\r\n\r\n // @property mobileGecko: Boolean\r\n // `true` for gecko-based browsers running in a mobile device.\r\n var mobileGecko = mobile && gecko;\r\n\r\n // @property retina: Boolean\r\n // `true` for browsers on a high-resolution \"retina\" screen or on any screen when browser's display zoom is more than 100%.\r\n var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1;\r\n\r\n // @property passiveEvents: Boolean\r\n // `true` for browsers that support passive events.\r\n var passiveEvents = (function () {\r\n \tvar supportsPassiveOption = false;\r\n \ttry {\r\n \t\tvar opts = Object.defineProperty({}, 'passive', {\r\n \t\t\tget: function () { // eslint-disable-line getter-return\r\n \t\t\t\tsupportsPassiveOption = true;\r\n \t\t\t}\r\n \t\t});\r\n \t\twindow.addEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t\twindow.removeEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t} catch (e) {\r\n \t\t// Errors can safely be ignored since this is only a browser support test.\r\n \t}\r\n \treturn supportsPassiveOption;\r\n }());\r\n\r\n // @property canvas: Boolean\r\n // `true` when the browser supports [``](https://developer.mozilla.org/docs/Web/API/Canvas_API).\r\n var canvas$1 = (function () {\r\n \treturn !!document.createElement('canvas').getContext;\r\n }());\r\n\r\n // @property svg: Boolean\r\n // `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG).\r\n var svg$1 = !!(document.createElementNS && svgCreate('svg').createSVGRect);\r\n\r\n var inlineSvg = !!svg$1 && (function () {\r\n \tvar div = document.createElement('div');\r\n \tdiv.innerHTML = '';\r\n \treturn (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg';\r\n })();\r\n\r\n // @property vml: Boolean\r\n // `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language).\r\n var vml = !svg$1 && (function () {\r\n \ttry {\r\n \t\tvar div = document.createElement('div');\r\n \t\tdiv.innerHTML = '';\r\n\r\n \t\tvar shape = div.firstChild;\r\n \t\tshape.style.behavior = 'url(#default#VML)';\r\n\r\n \t\treturn shape && (typeof shape.adj === 'object');\r\n\r\n \t} catch (e) {\r\n \t\treturn false;\r\n \t}\r\n }());\r\n\r\n function userAgentContains(str) {\r\n \treturn navigator.userAgent.toLowerCase().indexOf(str) >= 0;\r\n }\r\n\r\n\r\n var Browser = {\r\n \tie: ie,\r\n \tielt9: ielt9,\r\n \tedge: edge,\r\n \twebkit: webkit,\r\n \tandroid: android,\r\n \tandroid23: android23,\r\n \tandroidStock: androidStock,\r\n \topera: opera,\r\n \tchrome: chrome,\r\n \tgecko: gecko,\r\n \tsafari: safari,\r\n \tphantom: phantom,\r\n \topera12: opera12,\r\n \twin: win,\r\n \tie3d: ie3d,\r\n \twebkit3d: webkit3d,\r\n \tgecko3d: gecko3d,\r\n \tany3d: any3d,\r\n \tmobile: mobile,\r\n \tmobileWebkit: mobileWebkit,\r\n \tmobileWebkit3d: mobileWebkit3d,\r\n \tmsPointer: msPointer,\r\n \tpointer: pointer,\r\n \ttouch: touch,\r\n \ttouchNative: touchNative,\r\n \tmobileOpera: mobileOpera,\r\n \tmobileGecko: mobileGecko,\r\n \tretina: retina,\r\n \tpassiveEvents: passiveEvents,\r\n \tcanvas: canvas$1,\r\n \tsvg: svg$1,\r\n \tvml: vml,\r\n \tinlineSvg: inlineSvg\r\n };\n\n /*\n * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices.\n */\n\n var POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown';\n var POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove';\n var POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup';\n var POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel';\n var pEvent = {\n \ttouchstart : POINTER_DOWN,\n \ttouchmove : POINTER_MOVE,\n \ttouchend : POINTER_UP,\n \ttouchcancel : POINTER_CANCEL\n };\n var handle = {\n \ttouchstart : _onPointerStart,\n \ttouchmove : _handlePointer,\n \ttouchend : _handlePointer,\n \ttouchcancel : _handlePointer\n };\n var _pointers = {};\n var _pointerDocListener = false;\n\n // Provides a touch events wrapper for (ms)pointer events.\n // ref https://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890\n\n function addPointerListener(obj, type, handler) {\n \tif (type === 'touchstart') {\n \t\t_addPointerDocListener();\n \t}\n \tif (!handle[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn L.Util.falseFn;\n \t}\n \thandler = handle[type].bind(this, handler);\n \tobj.addEventListener(pEvent[type], handler, false);\n \treturn handler;\n }\n\n function removePointerListener(obj, type, handler) {\n \tif (!pEvent[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn;\n \t}\n \tobj.removeEventListener(pEvent[type], handler, false);\n }\n\n function _globalPointerDown(e) {\n \t_pointers[e.pointerId] = e;\n }\n\n function _globalPointerMove(e) {\n \tif (_pointers[e.pointerId]) {\n \t\t_pointers[e.pointerId] = e;\n \t}\n }\n\n function _globalPointerUp(e) {\n \tdelete _pointers[e.pointerId];\n }\n\n function _addPointerDocListener() {\n \t// need to keep track of what pointers and how many are active to provide e.touches emulation\n \tif (!_pointerDocListener) {\n \t\t// we listen document as any drags that end by moving the touch off the screen get fired there\n \t\tdocument.addEventListener(POINTER_DOWN, _globalPointerDown, true);\n \t\tdocument.addEventListener(POINTER_MOVE, _globalPointerMove, true);\n \t\tdocument.addEventListener(POINTER_UP, _globalPointerUp, true);\n \t\tdocument.addEventListener(POINTER_CANCEL, _globalPointerUp, true);\n\n \t\t_pointerDocListener = true;\n \t}\n }\n\n function _handlePointer(handler, e) {\n \tif (e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { return; }\n\n \te.touches = [];\n \tfor (var i in _pointers) {\n \t\te.touches.push(_pointers[i]);\n \t}\n \te.changedTouches = [e];\n\n \thandler(e);\n }\n\n function _onPointerStart(handler, e) {\n \t// IE10 specific: MsTouch needs preventDefault. See #2000\n \tif (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) {\n \t\tpreventDefault(e);\n \t}\n \t_handlePointer(handler, e);\n }\n\n /*\r\n * Extends the event handling code with double tap support for mobile browsers.\r\n *\r\n * Note: currently most browsers fire native dblclick, with only a few exceptions\r\n * (see https://github.com/Leaflet/Leaflet/issues/7012#issuecomment-595087386)\r\n */\r\n\r\n function makeDblclick(event) {\r\n \t// in modern browsers `type` cannot be just overridden:\r\n \t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only\r\n \tvar newEvent = {},\r\n \t prop, i;\r\n \tfor (i in event) {\r\n \t\tprop = event[i];\r\n \t\tnewEvent[i] = prop && prop.bind ? prop.bind(event) : prop;\r\n \t}\r\n \tevent = newEvent;\r\n \tnewEvent.type = 'dblclick';\r\n \tnewEvent.detail = 2;\r\n \tnewEvent.isTrusted = false;\r\n \tnewEvent._simulated = true; // for debug purposes\r\n \treturn newEvent;\r\n }\r\n\r\n var delay = 200;\r\n function addDoubleTapListener(obj, handler) {\r\n \t// Most browsers handle double tap natively\r\n \tobj.addEventListener('dblclick', handler);\r\n\r\n \t// On some platforms the browser doesn't fire native dblclicks for touch events.\r\n \t// It seems that in all such cases `detail` property of `click` event is always `1`.\r\n \t// So here we rely on that fact to avoid excessive 'dblclick' simulation when not needed.\r\n \tvar last = 0,\r\n \t detail;\r\n \tfunction simDblclick(e) {\r\n \t\tif (e.detail !== 1) {\r\n \t\t\tdetail = e.detail; // keep in sync to avoid false dblclick in some cases\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (e.pointerType === 'mouse' ||\r\n \t\t\t(e.sourceCapabilities && !e.sourceCapabilities.firesTouchEvents)) {\r\n\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tvar now = Date.now();\r\n \t\tif (now - last <= delay) {\r\n \t\t\tdetail++;\r\n \t\t\tif (detail === 2) {\r\n \t\t\t\thandler(makeDblclick(e));\r\n \t\t\t}\r\n \t\t} else {\r\n \t\t\tdetail = 1;\r\n \t\t}\r\n \t\tlast = now;\r\n \t}\r\n\r\n \tobj.addEventListener('click', simDblclick);\r\n\r\n \treturn {\r\n \t\tdblclick: handler,\r\n \t\tsimDblclick: simDblclick\r\n \t};\r\n }\r\n\r\n function removeDoubleTapListener(obj, handlers) {\r\n \tobj.removeEventListener('dblclick', handlers.dblclick);\r\n \tobj.removeEventListener('click', handlers.simDblclick);\r\n }\n\n /*\r\n * @namespace DomUtil\r\n *\r\n * Utility functions to work with the [DOM](https://developer.mozilla.org/docs/Web/API/Document_Object_Model)\r\n * tree, used by Leaflet internally.\r\n *\r\n * Most functions expecting or returning a `HTMLElement` also work for\r\n * SVG elements. The only difference is that classes refer to CSS classes\r\n * in HTML and SVG classes in SVG.\r\n */\r\n\r\n\r\n // @property TRANSFORM: String\r\n // Vendor-prefixed transform style name (e.g. `'webkitTransform'` for WebKit).\r\n var TRANSFORM = testProp(\r\n \t['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']);\r\n\r\n // webkitTransition comes first because some browser versions that drop vendor prefix don't do\r\n // the same for the transitionend event, in particular the Android 4.1 stock browser\r\n\r\n // @property TRANSITION: String\r\n // Vendor-prefixed transition style name.\r\n var TRANSITION = testProp(\r\n \t['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']);\r\n\r\n // @property TRANSITION_END: String\r\n // Vendor-prefixed transitionend event name.\r\n var TRANSITION_END =\r\n \tTRANSITION === 'webkitTransition' || TRANSITION === 'OTransition' ? TRANSITION + 'End' : 'transitionend';\r\n\r\n\r\n // @function get(id: String|HTMLElement): HTMLElement\r\n // Returns an element given its DOM id, or returns the element itself\r\n // if it was passed directly.\r\n function get(id) {\r\n \treturn typeof id === 'string' ? document.getElementById(id) : id;\r\n }\r\n\r\n // @function getStyle(el: HTMLElement, styleAttrib: String): String\r\n // Returns the value for a certain style attribute on an element,\r\n // including computed values or values set through CSS.\r\n function getStyle(el, style) {\r\n \tvar value = el.style[style] || (el.currentStyle && el.currentStyle[style]);\r\n\r\n \tif ((!value || value === 'auto') && document.defaultView) {\r\n \t\tvar css = document.defaultView.getComputedStyle(el, null);\r\n \t\tvalue = css ? css[style] : null;\r\n \t}\r\n \treturn value === 'auto' ? null : value;\r\n }\r\n\r\n // @function create(tagName: String, className?: String, container?: HTMLElement): HTMLElement\r\n // Creates an HTML element with `tagName`, sets its class to `className`, and optionally appends it to `container` element.\r\n function create$1(tagName, className, container) {\r\n \tvar el = document.createElement(tagName);\r\n \tel.className = className || '';\r\n\r\n \tif (container) {\r\n \t\tcontainer.appendChild(el);\r\n \t}\r\n \treturn el;\r\n }\r\n\r\n // @function remove(el: HTMLElement)\r\n // Removes `el` from its parent element\r\n function remove(el) {\r\n \tvar parent = el.parentNode;\r\n \tif (parent) {\r\n \t\tparent.removeChild(el);\r\n \t}\r\n }\r\n\r\n // @function empty(el: HTMLElement)\r\n // Removes all of `el`'s children elements from `el`\r\n function empty(el) {\r\n \twhile (el.firstChild) {\r\n \t\tel.removeChild(el.firstChild);\r\n \t}\r\n }\r\n\r\n // @function toFront(el: HTMLElement)\r\n // Makes `el` the last child of its parent, so it renders in front of the other children.\r\n function toFront(el) {\r\n \tvar parent = el.parentNode;\r\n \tif (parent && parent.lastChild !== el) {\r\n \t\tparent.appendChild(el);\r\n \t}\r\n }\r\n\r\n // @function toBack(el: HTMLElement)\r\n // Makes `el` the first child of its parent, so it renders behind the other children.\r\n function toBack(el) {\r\n \tvar parent = el.parentNode;\r\n \tif (parent && parent.firstChild !== el) {\r\n \t\tparent.insertBefore(el, parent.firstChild);\r\n \t}\r\n }\r\n\r\n // @function hasClass(el: HTMLElement, name: String): Boolean\r\n // Returns `true` if the element's class attribute contains `name`.\r\n function hasClass(el, name) {\r\n \tif (el.classList !== undefined) {\r\n \t\treturn el.classList.contains(name);\r\n \t}\r\n \tvar className = getClass(el);\r\n \treturn className.length > 0 && new RegExp('(^|\\\\s)' + name + '(\\\\s|$)').test(className);\r\n }\r\n\r\n // @function addClass(el: HTMLElement, name: String)\r\n // Adds `name` to the element's class attribute.\r\n function addClass(el, name) {\r\n \tif (el.classList !== undefined) {\r\n \t\tvar classes = splitWords(name);\r\n \t\tfor (var i = 0, len = classes.length; i < len; i++) {\r\n \t\t\tel.classList.add(classes[i]);\r\n \t\t}\r\n \t} else if (!hasClass(el, name)) {\r\n \t\tvar className = getClass(el);\r\n \t\tsetClass(el, (className ? className + ' ' : '') + name);\r\n \t}\r\n }\r\n\r\n // @function removeClass(el: HTMLElement, name: String)\r\n // Removes `name` from the element's class attribute.\r\n function removeClass(el, name) {\r\n \tif (el.classList !== undefined) {\r\n \t\tel.classList.remove(name);\r\n \t} else {\r\n \t\tsetClass(el, trim((' ' + getClass(el) + ' ').replace(' ' + name + ' ', ' ')));\r\n \t}\r\n }\r\n\r\n // @function setClass(el: HTMLElement, name: String)\r\n // Sets the element's class.\r\n function setClass(el, name) {\r\n \tif (el.className.baseVal === undefined) {\r\n \t\tel.className = name;\r\n \t} else {\r\n \t\t// in case of SVG element\r\n \t\tel.className.baseVal = name;\r\n \t}\r\n }\r\n\r\n // @function getClass(el: HTMLElement): String\r\n // Returns the element's class.\r\n function getClass(el) {\r\n \t// Check if the element is an SVGElementInstance and use the correspondingElement instead\r\n \t// (Required for linked SVG elements in IE11.)\r\n \tif (el.correspondingElement) {\r\n \t\tel = el.correspondingElement;\r\n \t}\r\n \treturn el.className.baseVal === undefined ? el.className : el.className.baseVal;\r\n }\r\n\r\n // @function setOpacity(el: HTMLElement, opacity: Number)\r\n // Set the opacity of an element (including old IE support).\r\n // `opacity` must be a number from `0` to `1`.\r\n function setOpacity(el, value) {\r\n \tif ('opacity' in el.style) {\r\n \t\tel.style.opacity = value;\r\n \t} else if ('filter' in el.style) {\r\n \t\t_setOpacityIE(el, value);\r\n \t}\r\n }\r\n\r\n function _setOpacityIE(el, value) {\r\n \tvar filter = false,\r\n \t filterName = 'DXImageTransform.Microsoft.Alpha';\r\n\r\n \t// filters collection throws an error if we try to retrieve a filter that doesn't exist\r\n \ttry {\r\n \t\tfilter = el.filters.item(filterName);\r\n \t} catch (e) {\r\n \t\t// don't set opacity to 1 if we haven't already set an opacity,\r\n \t\t// it isn't needed and breaks transparent pngs.\r\n \t\tif (value === 1) { return; }\r\n \t}\r\n\r\n \tvalue = Math.round(value * 100);\r\n\r\n \tif (filter) {\r\n \t\tfilter.Enabled = (value !== 100);\r\n \t\tfilter.Opacity = value;\r\n \t} else {\r\n \t\tel.style.filter += ' progid:' + filterName + '(opacity=' + value + ')';\r\n \t}\r\n }\r\n\r\n // @function testProp(props: String[]): String|false\r\n // Goes through the array of style names and returns the first name\r\n // that is a valid style name for an element. If no such name is found,\r\n // it returns false. Useful for vendor-prefixed styles like `transform`.\r\n function testProp(props) {\r\n \tvar style = document.documentElement.style;\r\n\r\n \tfor (var i = 0; i < props.length; i++) {\r\n \t\tif (props[i] in style) {\r\n \t\t\treturn props[i];\r\n \t\t}\r\n \t}\r\n \treturn false;\r\n }\r\n\r\n // @function setTransform(el: HTMLElement, offset: Point, scale?: Number)\r\n // Resets the 3D CSS transform of `el` so it is translated by `offset` pixels\r\n // and optionally scaled by `scale`. Does not have an effect if the\r\n // browser doesn't support 3D CSS transforms.\r\n function setTransform(el, offset, scale) {\r\n \tvar pos = offset || new Point(0, 0);\r\n\r\n \tel.style[TRANSFORM] =\r\n \t\t(Browser.ie3d ?\r\n \t\t\t'translate(' + pos.x + 'px,' + pos.y + 'px)' :\r\n \t\t\t'translate3d(' + pos.x + 'px,' + pos.y + 'px,0)') +\r\n \t\t(scale ? ' scale(' + scale + ')' : '');\r\n }\r\n\r\n // @function setPosition(el: HTMLElement, position: Point)\r\n // Sets the position of `el` to coordinates specified by `position`,\r\n // using CSS translate or top/left positioning depending on the browser\r\n // (used by Leaflet internally to position its layers).\r\n function setPosition(el, point) {\r\n\r\n \t/*eslint-disable */\r\n \tel._leaflet_pos = point;\r\n \t/* eslint-enable */\r\n\r\n \tif (Browser.any3d) {\r\n \t\tsetTransform(el, point);\r\n \t} else {\r\n \t\tel.style.left = point.x + 'px';\r\n \t\tel.style.top = point.y + 'px';\r\n \t}\r\n }\r\n\r\n // @function getPosition(el: HTMLElement): Point\r\n // Returns the coordinates of an element previously positioned with setPosition.\r\n function getPosition(el) {\r\n \t// this method is only used for elements previously positioned using setPosition,\r\n \t// so it's safe to cache the position for performance\r\n\r\n \treturn el._leaflet_pos || new Point(0, 0);\r\n }\r\n\r\n // @function disableTextSelection()\r\n // Prevents the user from generating `selectstart` DOM events, usually generated\r\n // when the user drags the mouse through a page with text. Used internally\r\n // by Leaflet to override the behaviour of any click-and-drag interaction on\r\n // the map. Affects drag interactions on the whole document.\r\n\r\n // @function enableTextSelection()\r\n // Cancels the effects of a previous [`L.DomUtil.disableTextSelection`](#domutil-disabletextselection).\r\n var disableTextSelection;\r\n var enableTextSelection;\r\n var _userSelect;\r\n if ('onselectstart' in document) {\r\n \tdisableTextSelection = function () {\r\n \t\ton(window, 'selectstart', preventDefault);\r\n \t};\r\n \tenableTextSelection = function () {\r\n \t\toff(window, 'selectstart', preventDefault);\r\n \t};\r\n } else {\r\n \tvar userSelectProperty = testProp(\r\n \t\t['userSelect', 'WebkitUserSelect', 'OUserSelect', 'MozUserSelect', 'msUserSelect']);\r\n\r\n \tdisableTextSelection = function () {\r\n \t\tif (userSelectProperty) {\r\n \t\t\tvar style = document.documentElement.style;\r\n \t\t\t_userSelect = style[userSelectProperty];\r\n \t\t\tstyle[userSelectProperty] = 'none';\r\n \t\t}\r\n \t};\r\n \tenableTextSelection = function () {\r\n \t\tif (userSelectProperty) {\r\n \t\t\tdocument.documentElement.style[userSelectProperty] = _userSelect;\r\n \t\t\t_userSelect = undefined;\r\n \t\t}\r\n \t};\r\n }\r\n\r\n // @function disableImageDrag()\r\n // As [`L.DomUtil.disableTextSelection`](#domutil-disabletextselection), but\r\n // for `dragstart` DOM events, usually generated when the user drags an image.\r\n function disableImageDrag() {\r\n \ton(window, 'dragstart', preventDefault);\r\n }\r\n\r\n // @function enableImageDrag()\r\n // Cancels the effects of a previous [`L.DomUtil.disableImageDrag`](#domutil-disabletextselection).\r\n function enableImageDrag() {\r\n \toff(window, 'dragstart', preventDefault);\r\n }\r\n\r\n var _outlineElement, _outlineStyle;\r\n // @function preventOutline(el: HTMLElement)\r\n // Makes the [outline](https://developer.mozilla.org/docs/Web/CSS/outline)\r\n // of the element `el` invisible. Used internally by Leaflet to prevent\r\n // focusable elements from displaying an outline when the user performs a\r\n // drag interaction on them.\r\n function preventOutline(element) {\r\n \twhile (element.tabIndex === -1) {\r\n \t\telement = element.parentNode;\r\n \t}\r\n \tif (!element.style) { return; }\r\n \trestoreOutline();\r\n \t_outlineElement = element;\r\n \t_outlineStyle = element.style.outline;\r\n \telement.style.outline = 'none';\r\n \ton(window, 'keydown', restoreOutline);\r\n }\r\n\r\n // @function restoreOutline()\r\n // Cancels the effects of a previous [`L.DomUtil.preventOutline`]().\r\n function restoreOutline() {\r\n \tif (!_outlineElement) { return; }\r\n \t_outlineElement.style.outline = _outlineStyle;\r\n \t_outlineElement = undefined;\r\n \t_outlineStyle = undefined;\r\n \toff(window, 'keydown', restoreOutline);\r\n }\r\n\r\n // @function getSizedParentNode(el: HTMLElement): HTMLElement\r\n // Finds the closest parent node which size (width and height) is not null.\r\n function getSizedParentNode(element) {\r\n \tdo {\r\n \t\telement = element.parentNode;\r\n \t} while ((!element.offsetWidth || !element.offsetHeight) && element !== document.body);\r\n \treturn element;\r\n }\r\n\r\n // @function getScale(el: HTMLElement): Object\r\n // Computes the CSS scale currently applied on the element.\r\n // Returns an object with `x` and `y` members as horizontal and vertical scales respectively,\r\n // and `boundingClientRect` as the result of [`getBoundingClientRect()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect).\r\n function getScale(element) {\r\n \tvar rect = element.getBoundingClientRect(); // Read-only in old browsers.\r\n\r\n \treturn {\r\n \t\tx: rect.width / element.offsetWidth || 1,\r\n \t\ty: rect.height / element.offsetHeight || 1,\r\n \t\tboundingClientRect: rect\r\n \t};\r\n }\n\n var DomUtil = {\n __proto__: null,\n TRANSFORM: TRANSFORM,\n TRANSITION: TRANSITION,\n TRANSITION_END: TRANSITION_END,\n get: get,\n getStyle: getStyle,\n create: create$1,\n remove: remove,\n empty: empty,\n toFront: toFront,\n toBack: toBack,\n hasClass: hasClass,\n addClass: addClass,\n removeClass: removeClass,\n setClass: setClass,\n getClass: getClass,\n setOpacity: setOpacity,\n testProp: testProp,\n setTransform: setTransform,\n setPosition: setPosition,\n getPosition: getPosition,\n get disableTextSelection () { return disableTextSelection; },\n get enableTextSelection () { return enableTextSelection; },\n disableImageDrag: disableImageDrag,\n enableImageDrag: enableImageDrag,\n preventOutline: preventOutline,\n restoreOutline: restoreOutline,\n getSizedParentNode: getSizedParentNode,\n getScale: getScale\n };\n\n /*\r\n * @namespace DomEvent\r\n * Utility functions to work with the [DOM events](https://developer.mozilla.org/docs/Web/API/Event), used by Leaflet internally.\r\n */\r\n\r\n // Inspired by John Resig, Dean Edwards and YUI addEvent implementations.\r\n\r\n // @function on(el: HTMLElement, types: String, fn: Function, context?: Object): this\r\n // Adds a listener function (`fn`) to a particular DOM event type of the\r\n // element `el`. You can optionally specify the context of the listener\r\n // (object the `this` keyword will point to). You can also pass several\r\n // space-separated types (e.g. `'click dblclick'`).\r\n\r\n // @alternative\r\n // @function on(el: HTMLElement, eventMap: Object, context?: Object): this\r\n // Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n function on(obj, types, fn, context) {\r\n\r\n \tif (types && typeof types === 'object') {\r\n \t\tfor (var type in types) {\r\n \t\t\taddOne(obj, type, types[type], fn);\r\n \t\t}\r\n \t} else {\r\n \t\ttypes = splitWords(types);\r\n\r\n \t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\taddOne(obj, types[i], fn, context);\r\n \t\t}\r\n \t}\r\n\r\n \treturn this;\r\n }\r\n\r\n var eventsKey = '_leaflet_events';\r\n\r\n // @function off(el: HTMLElement, types: String, fn: Function, context?: Object): this\r\n // Removes a previously added listener function.\r\n // Note that if you passed a custom context to on, you must pass the same\r\n // context to `off` in order to remove the listener.\r\n\r\n // @alternative\r\n // @function off(el: HTMLElement, eventMap: Object, context?: Object): this\r\n // Removes a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n\r\n // @alternative\r\n // @function off(el: HTMLElement, types: String): this\r\n // Removes all previously added listeners of given types.\r\n\r\n // @alternative\r\n // @function off(el: HTMLElement): this\r\n // Removes all previously added listeners from given HTMLElement\r\n function off(obj, types, fn, context) {\r\n\r\n \tif (arguments.length === 1) {\r\n \t\tbatchRemove(obj);\r\n \t\tdelete obj[eventsKey];\r\n\r\n \t} else if (types && typeof types === 'object') {\r\n \t\tfor (var type in types) {\r\n \t\t\tremoveOne(obj, type, types[type], fn);\r\n \t\t}\r\n\r\n \t} else {\r\n \t\ttypes = splitWords(types);\r\n\r\n \t\tif (arguments.length === 2) {\r\n \t\t\tbatchRemove(obj, function (type) {\r\n \t\t\t\treturn indexOf(types, type) !== -1;\r\n \t\t\t});\r\n \t\t} else {\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tremoveOne(obj, types[i], fn, context);\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n\r\n \treturn this;\r\n }\r\n\r\n function batchRemove(obj, filterFn) {\r\n \tfor (var id in obj[eventsKey]) {\r\n \t\tvar type = id.split(/\\d/)[0];\r\n \t\tif (!filterFn || filterFn(type)) {\r\n \t\t\tremoveOne(obj, type, null, null, id);\r\n \t\t}\r\n \t}\r\n }\r\n\r\n var mouseSubst = {\r\n \tmouseenter: 'mouseover',\r\n \tmouseleave: 'mouseout',\r\n \twheel: !('onwheel' in window) && 'mousewheel'\r\n };\r\n\r\n function addOne(obj, type, fn, context) {\r\n \tvar id = type + stamp(fn) + (context ? '_' + stamp(context) : '');\r\n\r\n \tif (obj[eventsKey] && obj[eventsKey][id]) { return this; }\r\n\r\n \tvar handler = function (e) {\r\n \t\treturn fn.call(context || obj, e || window.event);\r\n \t};\r\n\r\n \tvar originalHandler = handler;\r\n\r\n \tif (!Browser.touchNative && Browser.pointer && type.indexOf('touch') === 0) {\r\n \t\t// Needs DomEvent.Pointer.js\r\n \t\thandler = addPointerListener(obj, type, handler);\r\n\r\n \t} else if (Browser.touch && (type === 'dblclick')) {\r\n \t\thandler = addDoubleTapListener(obj, handler);\r\n\r\n \t} else if ('addEventListener' in obj) {\r\n\r\n \t\tif (type === 'touchstart' || type === 'touchmove' || type === 'wheel' || type === 'mousewheel') {\r\n \t\t\tobj.addEventListener(mouseSubst[type] || type, handler, Browser.passiveEvents ? {passive: false} : false);\r\n\r\n \t\t} else if (type === 'mouseenter' || type === 'mouseleave') {\r\n \t\t\thandler = function (e) {\r\n \t\t\t\te = e || window.event;\r\n \t\t\t\tif (isExternalTarget(obj, e)) {\r\n \t\t\t\t\toriginalHandler(e);\r\n \t\t\t\t}\r\n \t\t\t};\r\n \t\t\tobj.addEventListener(mouseSubst[type], handler, false);\r\n\r\n \t\t} else {\r\n \t\t\tobj.addEventListener(type, originalHandler, false);\r\n \t\t}\r\n\r\n \t} else {\r\n \t\tobj.attachEvent('on' + type, handler);\r\n \t}\r\n\r\n \tobj[eventsKey] = obj[eventsKey] || {};\r\n \tobj[eventsKey][id] = handler;\r\n }\r\n\r\n function removeOne(obj, type, fn, context, id) {\r\n \tid = id || type + stamp(fn) + (context ? '_' + stamp(context) : '');\r\n \tvar handler = obj[eventsKey] && obj[eventsKey][id];\r\n\r\n \tif (!handler) { return this; }\r\n\r\n \tif (!Browser.touchNative && Browser.pointer && type.indexOf('touch') === 0) {\r\n \t\tremovePointerListener(obj, type, handler);\r\n\r\n \t} else if (Browser.touch && (type === 'dblclick')) {\r\n \t\tremoveDoubleTapListener(obj, handler);\r\n\r\n \t} else if ('removeEventListener' in obj) {\r\n\r\n \t\tobj.removeEventListener(mouseSubst[type] || type, handler, false);\r\n\r\n \t} else {\r\n \t\tobj.detachEvent('on' + type, handler);\r\n \t}\r\n\r\n \tobj[eventsKey][id] = null;\r\n }\r\n\r\n // @function stopPropagation(ev: DOMEvent): this\r\n // Stop the given event from propagation to parent elements. Used inside the listener functions:\r\n // ```js\r\n // L.DomEvent.on(div, 'click', function (ev) {\r\n // \tL.DomEvent.stopPropagation(ev);\r\n // });\r\n // ```\r\n function stopPropagation(e) {\r\n\r\n \tif (e.stopPropagation) {\r\n \t\te.stopPropagation();\r\n \t} else if (e.originalEvent) { // In case of Leaflet event.\r\n \t\te.originalEvent._stopped = true;\r\n \t} else {\r\n \t\te.cancelBubble = true;\r\n \t}\r\n\r\n \treturn this;\r\n }\r\n\r\n // @function disableScrollPropagation(el: HTMLElement): this\r\n // Adds `stopPropagation` to the element's `'wheel'` events (plus browser variants).\r\n function disableScrollPropagation(el) {\r\n \taddOne(el, 'wheel', stopPropagation);\r\n \treturn this;\r\n }\r\n\r\n // @function disableClickPropagation(el: HTMLElement): this\r\n // Adds `stopPropagation` to the element's `'click'`, `'dblclick'`, `'contextmenu'`,\r\n // `'mousedown'` and `'touchstart'` events (plus browser variants).\r\n function disableClickPropagation(el) {\r\n \ton(el, 'mousedown touchstart dblclick contextmenu', stopPropagation);\r\n \tel['_leaflet_disable_click'] = true;\r\n \treturn this;\r\n }\r\n\r\n // @function preventDefault(ev: DOMEvent): this\r\n // Prevents the default action of the DOM Event `ev` from happening (such as\r\n // following a link in the href of the a element, or doing a POST request\r\n // with page reload when a `
` is submitted).\r\n // Use it inside listener functions.\r\n function preventDefault(e) {\r\n \tif (e.preventDefault) {\r\n \t\te.preventDefault();\r\n \t} else {\r\n \t\te.returnValue = false;\r\n \t}\r\n \treturn this;\r\n }\r\n\r\n // @function stop(ev: DOMEvent): this\r\n // Does `stopPropagation` and `preventDefault` at the same time.\r\n function stop(e) {\r\n \tpreventDefault(e);\r\n \tstopPropagation(e);\r\n \treturn this;\r\n }\r\n\r\n // @function getMousePosition(ev: DOMEvent, container?: HTMLElement): Point\r\n // Gets normalized mouse position from a DOM event relative to the\r\n // `container` (border excluded) or to the whole page if not specified.\r\n function getMousePosition(e, container) {\r\n \tif (!container) {\r\n \t\treturn new Point(e.clientX, e.clientY);\r\n \t}\r\n\r\n \tvar scale = getScale(container),\r\n \t offset = scale.boundingClientRect; // left and top values are in page scale (like the event clientX/Y)\r\n\r\n \treturn new Point(\r\n \t\t// offset.left/top values are in page scale (like clientX/Y),\r\n \t\t// whereas clientLeft/Top (border width) values are the original values (before CSS scale applies).\r\n \t\t(e.clientX - offset.left) / scale.x - container.clientLeft,\r\n \t\t(e.clientY - offset.top) / scale.y - container.clientTop\r\n \t);\r\n }\r\n\r\n // Chrome on Win scrolls double the pixels as in other platforms (see #4538),\r\n // and Firefox scrolls device pixels, not CSS pixels\r\n var wheelPxFactor =\r\n \t(Browser.win && Browser.chrome) ? 2 * window.devicePixelRatio :\r\n \tBrowser.gecko ? window.devicePixelRatio : 1;\r\n\r\n // @function getWheelDelta(ev: DOMEvent): Number\r\n // Gets normalized wheel delta from a wheel DOM event, in vertical\r\n // pixels scrolled (negative if scrolling down).\r\n // Events from pointing devices without precise scrolling are mapped to\r\n // a best guess of 60 pixels.\r\n function getWheelDelta(e) {\r\n \treturn (Browser.edge) ? e.wheelDeltaY / 2 : // Don't trust window-geometry-based delta\r\n \t (e.deltaY && e.deltaMode === 0) ? -e.deltaY / wheelPxFactor : // Pixels\r\n \t (e.deltaY && e.deltaMode === 1) ? -e.deltaY * 20 : // Lines\r\n \t (e.deltaY && e.deltaMode === 2) ? -e.deltaY * 60 : // Pages\r\n \t (e.deltaX || e.deltaZ) ? 0 :\t// Skip horizontal/depth wheel events\r\n \t e.wheelDelta ? (e.wheelDeltaY || e.wheelDelta) / 2 : // Legacy IE pixels\r\n \t (e.detail && Math.abs(e.detail) < 32765) ? -e.detail * 20 : // Legacy Moz lines\r\n \t e.detail ? e.detail / -32765 * 60 : // Legacy Moz pages\r\n \t 0;\r\n }\r\n\r\n // check if element really left/entered the event target (for mouseenter/mouseleave)\r\n function isExternalTarget(el, e) {\r\n\r\n \tvar related = e.relatedTarget;\r\n\r\n \tif (!related) { return true; }\r\n\r\n \ttry {\r\n \t\twhile (related && (related !== el)) {\r\n \t\t\trelated = related.parentNode;\r\n \t\t}\r\n \t} catch (err) {\r\n \t\treturn false;\r\n \t}\r\n \treturn (related !== el);\r\n }\n\n var DomEvent = {\n __proto__: null,\n on: on,\n off: off,\n stopPropagation: stopPropagation,\n disableScrollPropagation: disableScrollPropagation,\n disableClickPropagation: disableClickPropagation,\n preventDefault: preventDefault,\n stop: stop,\n getMousePosition: getMousePosition,\n getWheelDelta: getWheelDelta,\n isExternalTarget: isExternalTarget,\n addListener: on,\n removeListener: off\n };\n\n /*\n * @class PosAnimation\n * @aka L.PosAnimation\n * @inherits Evented\n * Used internally for panning animations, utilizing CSS3 Transitions for modern browsers and a timer fallback for IE6-9.\n *\n * @example\n * ```js\n * var fx = new L.PosAnimation();\n * fx.run(el, [300, 500], 0.5);\n * ```\n *\n * @constructor L.PosAnimation()\n * Creates a `PosAnimation` object.\n *\n */\n\n var PosAnimation = Evented.extend({\n\n \t// @method run(el: HTMLElement, newPos: Point, duration?: Number, easeLinearity?: Number)\n \t// Run an animation of a given element to a new position, optionally setting\n \t// duration in seconds (`0.25` by default) and easing linearity factor (3rd\n \t// argument of the [cubic bezier curve](https://cubic-bezier.com/#0,0,.5,1),\n \t// `0.5` by default).\n \trun: function (el, newPos, duration, easeLinearity) {\n \t\tthis.stop();\n\n \t\tthis._el = el;\n \t\tthis._inProgress = true;\n \t\tthis._duration = duration || 0.25;\n \t\tthis._easeOutPower = 1 / Math.max(easeLinearity || 0.5, 0.2);\n\n \t\tthis._startPos = getPosition(el);\n \t\tthis._offset = newPos.subtract(this._startPos);\n \t\tthis._startTime = +new Date();\n\n \t\t// @event start: Event\n \t\t// Fired when the animation starts\n \t\tthis.fire('start');\n\n \t\tthis._animate();\n \t},\n\n \t// @method stop()\n \t// Stops the animation (if currently running).\n \tstop: function () {\n \t\tif (!this._inProgress) { return; }\n\n \t\tthis._step(true);\n \t\tthis._complete();\n \t},\n\n \t_animate: function () {\n \t\t// animation loop\n \t\tthis._animId = requestAnimFrame(this._animate, this);\n \t\tthis._step();\n \t},\n\n \t_step: function (round) {\n \t\tvar elapsed = (+new Date()) - this._startTime,\n \t\t duration = this._duration * 1000;\n\n \t\tif (elapsed < duration) {\n \t\t\tthis._runFrame(this._easeOut(elapsed / duration), round);\n \t\t} else {\n \t\t\tthis._runFrame(1);\n \t\t\tthis._complete();\n \t\t}\n \t},\n\n \t_runFrame: function (progress, round) {\n \t\tvar pos = this._startPos.add(this._offset.multiplyBy(progress));\n \t\tif (round) {\n \t\t\tpos._round();\n \t\t}\n \t\tsetPosition(this._el, pos);\n\n \t\t// @event step: Event\n \t\t// Fired continuously during the animation.\n \t\tthis.fire('step');\n \t},\n\n \t_complete: function () {\n \t\tcancelAnimFrame(this._animId);\n\n \t\tthis._inProgress = false;\n \t\t// @event end: Event\n \t\t// Fired when the animation ends.\n \t\tthis.fire('end');\n \t},\n\n \t_easeOut: function (t) {\n \t\treturn 1 - Math.pow(1 - t, this._easeOutPower);\n \t}\n });\n\n /*\r\n * @class Map\r\n * @aka L.Map\r\n * @inherits Evented\r\n *\r\n * The central class of the API — it is used to create a map on a page and manipulate it.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * // initialize the map on the \"map\" div with a given center and zoom\r\n * var map = L.map('map', {\r\n * \tcenter: [51.505, -0.09],\r\n * \tzoom: 13\r\n * });\r\n * ```\r\n *\r\n */\r\n\r\n var Map = Evented.extend({\r\n\r\n \toptions: {\r\n \t\t// @section Map State Options\r\n \t\t// @option crs: CRS = L.CRS.EPSG3857\r\n \t\t// The [Coordinate Reference System](#crs) to use. Don't change this if you're not\r\n \t\t// sure what it means.\r\n \t\tcrs: EPSG3857,\r\n\r\n \t\t// @option center: LatLng = undefined\r\n \t\t// Initial geographic center of the map\r\n \t\tcenter: undefined,\r\n\r\n \t\t// @option zoom: Number = undefined\r\n \t\t// Initial map zoom level\r\n \t\tzoom: undefined,\r\n\r\n \t\t// @option minZoom: Number = *\r\n \t\t// Minimum zoom level of the map.\r\n \t\t// If not specified and at least one `GridLayer` or `TileLayer` is in the map,\r\n \t\t// the lowest of their `minZoom` options will be used instead.\r\n \t\tminZoom: undefined,\r\n\r\n \t\t// @option maxZoom: Number = *\r\n \t\t// Maximum zoom level of the map.\r\n \t\t// If not specified and at least one `GridLayer` or `TileLayer` is in the map,\r\n \t\t// the highest of their `maxZoom` options will be used instead.\r\n \t\tmaxZoom: undefined,\r\n\r\n \t\t// @option layers: Layer[] = []\r\n \t\t// Array of layers that will be added to the map initially\r\n \t\tlayers: [],\r\n\r\n \t\t// @option maxBounds: LatLngBounds = null\r\n \t\t// When this option is set, the map restricts the view to the given\r\n \t\t// geographical bounds, bouncing the user back if the user tries to pan\r\n \t\t// outside the view. To set the restriction dynamically, use\r\n \t\t// [`setMaxBounds`](#map-setmaxbounds) method.\r\n \t\tmaxBounds: undefined,\r\n\r\n \t\t// @option renderer: Renderer = *\r\n \t\t// The default method for drawing vector layers on the map. `L.SVG`\r\n \t\t// or `L.Canvas` by default depending on browser support.\r\n \t\trenderer: undefined,\r\n\r\n\r\n \t\t// @section Animation Options\r\n \t\t// @option zoomAnimation: Boolean = true\r\n \t\t// Whether the map zoom animation is enabled. By default it's enabled\r\n \t\t// in all browsers that support CSS3 Transitions except Android.\r\n \t\tzoomAnimation: true,\r\n\r\n \t\t// @option zoomAnimationThreshold: Number = 4\r\n \t\t// Won't animate zoom if the zoom difference exceeds this value.\r\n \t\tzoomAnimationThreshold: 4,\r\n\r\n \t\t// @option fadeAnimation: Boolean = true\r\n \t\t// Whether the tile fade animation is enabled. By default it's enabled\r\n \t\t// in all browsers that support CSS3 Transitions except Android.\r\n \t\tfadeAnimation: true,\r\n\r\n \t\t// @option markerZoomAnimation: Boolean = true\r\n \t\t// Whether markers animate their zoom with the zoom animation, if disabled\r\n \t\t// they will disappear for the length of the animation. By default it's\r\n \t\t// enabled in all browsers that support CSS3 Transitions except Android.\r\n \t\tmarkerZoomAnimation: true,\r\n\r\n \t\t// @option transform3DLimit: Number = 2^23\r\n \t\t// Defines the maximum size of a CSS translation transform. The default\r\n \t\t// value should not be changed unless a web browser positions layers in\r\n \t\t// the wrong place after doing a large `panBy`.\r\n \t\ttransform3DLimit: 8388608, // Precision limit of a 32-bit float\r\n\r\n \t\t// @section Interaction Options\r\n \t\t// @option zoomSnap: Number = 1\r\n \t\t// Forces the map's zoom level to always be a multiple of this, particularly\r\n \t\t// right after a [`fitBounds()`](#map-fitbounds) or a pinch-zoom.\r\n \t\t// By default, the zoom level snaps to the nearest integer; lower values\r\n \t\t// (e.g. `0.5` or `0.1`) allow for greater granularity. A value of `0`\r\n \t\t// means the zoom level will not be snapped after `fitBounds` or a pinch-zoom.\r\n \t\tzoomSnap: 1,\r\n\r\n \t\t// @option zoomDelta: Number = 1\r\n \t\t// Controls how much the map's zoom level will change after a\r\n \t\t// [`zoomIn()`](#map-zoomin), [`zoomOut()`](#map-zoomout), pressing `+`\r\n \t\t// or `-` on the keyboard, or using the [zoom controls](#control-zoom).\r\n \t\t// Values smaller than `1` (e.g. `0.5`) allow for greater granularity.\r\n \t\tzoomDelta: 1,\r\n\r\n \t\t// @option trackResize: Boolean = true\r\n \t\t// Whether the map automatically handles browser window resize to update itself.\r\n \t\ttrackResize: true\r\n \t},\r\n\r\n \tinitialize: function (id, options) { // (HTMLElement or String, Object)\r\n \t\toptions = setOptions(this, options);\r\n\r\n \t\t// Make sure to assign internal flags at the beginning,\r\n \t\t// to avoid inconsistent state in some edge cases.\r\n \t\tthis._handlers = [];\r\n \t\tthis._layers = {};\r\n \t\tthis._zoomBoundLayers = {};\r\n \t\tthis._sizeChanged = true;\r\n\r\n \t\tthis._initContainer(id);\r\n \t\tthis._initLayout();\r\n\r\n \t\t// hack for https://github.com/Leaflet/Leaflet/issues/1980\r\n \t\tthis._onResize = bind(this._onResize, this);\r\n\r\n \t\tthis._initEvents();\r\n\r\n \t\tif (options.maxBounds) {\r\n \t\t\tthis.setMaxBounds(options.maxBounds);\r\n \t\t}\r\n\r\n \t\tif (options.zoom !== undefined) {\r\n \t\t\tthis._zoom = this._limitZoom(options.zoom);\r\n \t\t}\r\n\r\n \t\tif (options.center && options.zoom !== undefined) {\r\n \t\t\tthis.setView(toLatLng(options.center), options.zoom, {reset: true});\r\n \t\t}\r\n\r\n \t\tthis.callInitHooks();\r\n\r\n \t\t// don't animate on browsers without hardware-accelerated transitions or old Android/Opera\r\n \t\tthis._zoomAnimated = TRANSITION && Browser.any3d && !Browser.mobileOpera &&\r\n \t\t\t\tthis.options.zoomAnimation;\r\n\r\n \t\t// zoom transitions run with the same duration for all layers, so if one of transitionend events\r\n \t\t// happens after starting zoom animation (propagating to the map pane), we know that it ended globally\r\n \t\tif (this._zoomAnimated) {\r\n \t\t\tthis._createAnimProxy();\r\n \t\t\ton(this._proxy, TRANSITION_END, this._catchTransitionEnd, this);\r\n \t\t}\r\n\r\n \t\tthis._addLayers(this.options.layers);\r\n \t},\r\n\r\n\r\n \t// @section Methods for modifying map state\r\n\r\n \t// @method setView(center: LatLng, zoom: Number, options?: Zoom/pan options): this\r\n \t// Sets the view of the map (geographical center and zoom) with the given\r\n \t// animation options.\r\n \tsetView: function (center, zoom, options) {\r\n\r\n \t\tzoom = zoom === undefined ? this._zoom : this._limitZoom(zoom);\r\n \t\tcenter = this._limitCenter(toLatLng(center), zoom, this.options.maxBounds);\r\n \t\toptions = options || {};\r\n\r\n \t\tthis._stop();\r\n\r\n \t\tif (this._loaded && !options.reset && options !== true) {\r\n\r\n \t\t\tif (options.animate !== undefined) {\r\n \t\t\t\toptions.zoom = extend({animate: options.animate}, options.zoom);\r\n \t\t\t\toptions.pan = extend({animate: options.animate, duration: options.duration}, options.pan);\r\n \t\t\t}\r\n\r\n \t\t\t// try animating pan or zoom\r\n \t\t\tvar moved = (this._zoom !== zoom) ?\r\n \t\t\t\tthis._tryAnimatedZoom && this._tryAnimatedZoom(center, zoom, options.zoom) :\r\n \t\t\t\tthis._tryAnimatedPan(center, options.pan);\r\n\r\n \t\t\tif (moved) {\r\n \t\t\t\t// prevent resize handler call, the view will refresh after animation anyway\r\n \t\t\t\tclearTimeout(this._sizeTimer);\r\n \t\t\t\treturn this;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// animation didn't start, just reset the map view\r\n \t\tthis._resetView(center, zoom);\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method setZoom(zoom: Number, options?: Zoom/pan options): this\r\n \t// Sets the zoom of the map.\r\n \tsetZoom: function (zoom, options) {\r\n \t\tif (!this._loaded) {\r\n \t\t\tthis._zoom = zoom;\r\n \t\t\treturn this;\r\n \t\t}\r\n \t\treturn this.setView(this.getCenter(), zoom, {zoom: options});\r\n \t},\r\n\r\n \t// @method zoomIn(delta?: Number, options?: Zoom options): this\r\n \t// Increases the zoom of the map by `delta` ([`zoomDelta`](#map-zoomdelta) by default).\r\n \tzoomIn: function (delta, options) {\r\n \t\tdelta = delta || (Browser.any3d ? this.options.zoomDelta : 1);\r\n \t\treturn this.setZoom(this._zoom + delta, options);\r\n \t},\r\n\r\n \t// @method zoomOut(delta?: Number, options?: Zoom options): this\r\n \t// Decreases the zoom of the map by `delta` ([`zoomDelta`](#map-zoomdelta) by default).\r\n \tzoomOut: function (delta, options) {\r\n \t\tdelta = delta || (Browser.any3d ? this.options.zoomDelta : 1);\r\n \t\treturn this.setZoom(this._zoom - delta, options);\r\n \t},\r\n\r\n \t// @method setZoomAround(latlng: LatLng, zoom: Number, options: Zoom options): this\r\n \t// Zooms the map while keeping a specified geographical point on the map\r\n \t// stationary (e.g. used internally for scroll zoom and double-click zoom).\r\n \t// @alternative\r\n \t// @method setZoomAround(offset: Point, zoom: Number, options: Zoom options): this\r\n \t// Zooms the map while keeping a specified pixel on the map (relative to the top-left corner) stationary.\r\n \tsetZoomAround: function (latlng, zoom, options) {\r\n \t\tvar scale = this.getZoomScale(zoom),\r\n \t\t viewHalf = this.getSize().divideBy(2),\r\n \t\t containerPoint = latlng instanceof Point ? latlng : this.latLngToContainerPoint(latlng),\r\n\r\n \t\t centerOffset = containerPoint.subtract(viewHalf).multiplyBy(1 - 1 / scale),\r\n \t\t newCenter = this.containerPointToLatLng(viewHalf.add(centerOffset));\r\n\r\n \t\treturn this.setView(newCenter, zoom, {zoom: options});\r\n \t},\r\n\r\n \t_getBoundsCenterZoom: function (bounds, options) {\r\n\r\n \t\toptions = options || {};\r\n \t\tbounds = bounds.getBounds ? bounds.getBounds() : toLatLngBounds(bounds);\r\n\r\n \t\tvar paddingTL = toPoint(options.paddingTopLeft || options.padding || [0, 0]),\r\n \t\t paddingBR = toPoint(options.paddingBottomRight || options.padding || [0, 0]),\r\n\r\n \t\t zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR));\r\n\r\n \t\tzoom = (typeof options.maxZoom === 'number') ? Math.min(options.maxZoom, zoom) : zoom;\r\n\r\n \t\tif (zoom === Infinity) {\r\n \t\t\treturn {\r\n \t\t\t\tcenter: bounds.getCenter(),\r\n \t\t\t\tzoom: zoom\r\n \t\t\t};\r\n \t\t}\r\n\r\n \t\tvar paddingOffset = paddingBR.subtract(paddingTL).divideBy(2),\r\n\r\n \t\t swPoint = this.project(bounds.getSouthWest(), zoom),\r\n \t\t nePoint = this.project(bounds.getNorthEast(), zoom),\r\n \t\t center = this.unproject(swPoint.add(nePoint).divideBy(2).add(paddingOffset), zoom);\r\n\r\n \t\treturn {\r\n \t\t\tcenter: center,\r\n \t\t\tzoom: zoom\r\n \t\t};\r\n \t},\r\n\r\n \t// @method fitBounds(bounds: LatLngBounds, options?: fitBounds options): this\r\n \t// Sets a map view that contains the given geographical bounds with the\r\n \t// maximum zoom level possible.\r\n \tfitBounds: function (bounds, options) {\r\n\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tif (!bounds.isValid()) {\r\n \t\t\tthrow new Error('Bounds are not valid.');\r\n \t\t}\r\n\r\n \t\tvar target = this._getBoundsCenterZoom(bounds, options);\r\n \t\treturn this.setView(target.center, target.zoom, options);\r\n \t},\r\n\r\n \t// @method fitWorld(options?: fitBounds options): this\r\n \t// Sets a map view that mostly contains the whole world with the maximum\r\n \t// zoom level possible.\r\n \tfitWorld: function (options) {\r\n \t\treturn this.fitBounds([[-90, -180], [90, 180]], options);\r\n \t},\r\n\r\n \t// @method panTo(latlng: LatLng, options?: Pan options): this\r\n \t// Pans the map to a given center.\r\n \tpanTo: function (center, options) { // (LatLng)\r\n \t\treturn this.setView(center, this._zoom, {pan: options});\r\n \t},\r\n\r\n \t// @method panBy(offset: Point, options?: Pan options): this\r\n \t// Pans the map by a given number of pixels (animated).\r\n \tpanBy: function (offset, options) {\r\n \t\toffset = toPoint(offset).round();\r\n \t\toptions = options || {};\r\n\r\n \t\tif (!offset.x && !offset.y) {\r\n \t\t\treturn this.fire('moveend');\r\n \t\t}\r\n \t\t// If we pan too far, Chrome gets issues with tiles\r\n \t\t// and makes them disappear or appear in the wrong place (slightly offset) #2602\r\n \t\tif (options.animate !== true && !this.getSize().contains(offset)) {\r\n \t\t\tthis._resetView(this.unproject(this.project(this.getCenter()).add(offset)), this.getZoom());\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\tif (!this._panAnim) {\r\n \t\t\tthis._panAnim = new PosAnimation();\r\n\r\n \t\t\tthis._panAnim.on({\r\n \t\t\t\t'step': this._onPanTransitionStep,\r\n \t\t\t\t'end': this._onPanTransitionEnd\r\n \t\t\t}, this);\r\n \t\t}\r\n\r\n \t\t// don't fire movestart if animating inertia\r\n \t\tif (!options.noMoveStart) {\r\n \t\t\tthis.fire('movestart');\r\n \t\t}\r\n\r\n \t\t// animate pan unless animate: false specified\r\n \t\tif (options.animate !== false) {\r\n \t\t\taddClass(this._mapPane, 'leaflet-pan-anim');\r\n\r\n \t\t\tvar newPos = this._getMapPanePos().subtract(offset).round();\r\n \t\t\tthis._panAnim.run(this._mapPane, newPos, options.duration || 0.25, options.easeLinearity);\r\n \t\t} else {\r\n \t\t\tthis._rawPanBy(offset);\r\n \t\t\tthis.fire('move').fire('moveend');\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method flyTo(latlng: LatLng, zoom?: Number, options?: Zoom/pan options): this\r\n \t// Sets the view of the map (geographical center and zoom) performing a smooth\r\n \t// pan-zoom animation.\r\n \tflyTo: function (targetCenter, targetZoom, options) {\r\n\r\n \t\toptions = options || {};\r\n \t\tif (options.animate === false || !Browser.any3d) {\r\n \t\t\treturn this.setView(targetCenter, targetZoom, options);\r\n \t\t}\r\n\r\n \t\tthis._stop();\r\n\r\n \t\tvar from = this.project(this.getCenter()),\r\n \t\t to = this.project(targetCenter),\r\n \t\t size = this.getSize(),\r\n \t\t startZoom = this._zoom;\r\n\r\n \t\ttargetCenter = toLatLng(targetCenter);\r\n \t\ttargetZoom = targetZoom === undefined ? startZoom : targetZoom;\r\n\r\n \t\tvar w0 = Math.max(size.x, size.y),\r\n \t\t w1 = w0 * this.getZoomScale(startZoom, targetZoom),\r\n \t\t u1 = (to.distanceTo(from)) || 1,\r\n \t\t rho = 1.42,\r\n \t\t rho2 = rho * rho;\r\n\r\n \t\tfunction r(i) {\r\n \t\t\tvar s1 = i ? -1 : 1,\r\n \t\t\t s2 = i ? w1 : w0,\r\n \t\t\t t1 = w1 * w1 - w0 * w0 + s1 * rho2 * rho2 * u1 * u1,\r\n \t\t\t b1 = 2 * s2 * rho2 * u1,\r\n \t\t\t b = t1 / b1,\r\n \t\t\t sq = Math.sqrt(b * b + 1) - b;\r\n\r\n \t\t\t // workaround for floating point precision bug when sq = 0, log = -Infinite,\r\n \t\t\t // thus triggering an infinite loop in flyTo\r\n \t\t\t var log = sq < 0.000000001 ? -18 : Math.log(sq);\r\n\r\n \t\t\treturn log;\r\n \t\t}\r\n\r\n \t\tfunction sinh(n) { return (Math.exp(n) - Math.exp(-n)) / 2; }\r\n \t\tfunction cosh(n) { return (Math.exp(n) + Math.exp(-n)) / 2; }\r\n \t\tfunction tanh(n) { return sinh(n) / cosh(n); }\r\n\r\n \t\tvar r0 = r(0);\r\n\r\n \t\tfunction w(s) { return w0 * (cosh(r0) / cosh(r0 + rho * s)); }\r\n \t\tfunction u(s) { return w0 * (cosh(r0) * tanh(r0 + rho * s) - sinh(r0)) / rho2; }\r\n\r\n \t\tfunction easeOut(t) { return 1 - Math.pow(1 - t, 1.5); }\r\n\r\n \t\tvar start = Date.now(),\r\n \t\t S = (r(1) - r0) / rho,\r\n \t\t duration = options.duration ? 1000 * options.duration : 1000 * S * 0.8;\r\n\r\n \t\tfunction frame() {\r\n \t\t\tvar t = (Date.now() - start) / duration,\r\n \t\t\t s = easeOut(t) * S;\r\n\r\n \t\t\tif (t <= 1) {\r\n \t\t\t\tthis._flyToFrame = requestAnimFrame(frame, this);\r\n\r\n \t\t\t\tthis._move(\r\n \t\t\t\t\tthis.unproject(from.add(to.subtract(from).multiplyBy(u(s) / u1)), startZoom),\r\n \t\t\t\t\tthis.getScaleZoom(w0 / w(s), startZoom),\r\n \t\t\t\t\t{flyTo: true});\r\n\r\n \t\t\t} else {\r\n \t\t\t\tthis\r\n \t\t\t\t\t._move(targetCenter, targetZoom)\r\n \t\t\t\t\t._moveEnd(true);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tthis._moveStart(true, options.noMoveStart);\r\n\r\n \t\tframe.call(this);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method flyToBounds(bounds: LatLngBounds, options?: fitBounds options): this\r\n \t// Sets the view of the map with a smooth animation like [`flyTo`](#map-flyto),\r\n \t// but takes a bounds parameter like [`fitBounds`](#map-fitbounds).\r\n \tflyToBounds: function (bounds, options) {\r\n \t\tvar target = this._getBoundsCenterZoom(bounds, options);\r\n \t\treturn this.flyTo(target.center, target.zoom, options);\r\n \t},\r\n\r\n \t// @method setMaxBounds(bounds: LatLngBounds): this\r\n \t// Restricts the map view to the given bounds (see the [maxBounds](#map-maxbounds) option).\r\n \tsetMaxBounds: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tif (!bounds.isValid()) {\r\n \t\t\tthis.options.maxBounds = null;\r\n \t\t\treturn this.off('moveend', this._panInsideMaxBounds);\r\n \t\t} else if (this.options.maxBounds) {\r\n \t\t\tthis.off('moveend', this._panInsideMaxBounds);\r\n \t\t}\r\n\r\n \t\tthis.options.maxBounds = bounds;\r\n\r\n \t\tif (this._loaded) {\r\n \t\t\tthis._panInsideMaxBounds();\r\n \t\t}\r\n\r\n \t\treturn this.on('moveend', this._panInsideMaxBounds);\r\n \t},\r\n\r\n \t// @method setMinZoom(zoom: Number): this\r\n \t// Sets the lower limit for the available zoom levels (see the [minZoom](#map-minzoom) option).\r\n \tsetMinZoom: function (zoom) {\r\n \t\tvar oldZoom = this.options.minZoom;\r\n \t\tthis.options.minZoom = zoom;\r\n\r\n \t\tif (this._loaded && oldZoom !== zoom) {\r\n \t\t\tthis.fire('zoomlevelschange');\r\n\r\n \t\t\tif (this.getZoom() < this.options.minZoom) {\r\n \t\t\t\treturn this.setZoom(zoom);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method setMaxZoom(zoom: Number): this\r\n \t// Sets the upper limit for the available zoom levels (see the [maxZoom](#map-maxzoom) option).\r\n \tsetMaxZoom: function (zoom) {\r\n \t\tvar oldZoom = this.options.maxZoom;\r\n \t\tthis.options.maxZoom = zoom;\r\n\r\n \t\tif (this._loaded && oldZoom !== zoom) {\r\n \t\t\tthis.fire('zoomlevelschange');\r\n\r\n \t\t\tif (this.getZoom() > this.options.maxZoom) {\r\n \t\t\t\treturn this.setZoom(zoom);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method panInsideBounds(bounds: LatLngBounds, options?: Pan options): this\r\n \t// Pans the map to the closest view that would lie inside the given bounds (if it's not already), controlling the animation using the options specific, if any.\r\n \tpanInsideBounds: function (bounds, options) {\r\n \t\tthis._enforcingBounds = true;\r\n \t\tvar center = this.getCenter(),\r\n \t\t newCenter = this._limitCenter(center, this._zoom, toLatLngBounds(bounds));\r\n\r\n \t\tif (!center.equals(newCenter)) {\r\n \t\t\tthis.panTo(newCenter, options);\r\n \t\t}\r\n\r\n \t\tthis._enforcingBounds = false;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method panInside(latlng: LatLng, options?: padding options): this\r\n \t// Pans the map the minimum amount to make the `latlng` visible. Use\r\n \t// padding options to fit the display to more restricted bounds.\r\n \t// If `latlng` is already within the (optionally padded) display bounds,\r\n \t// the map will not be panned.\r\n \tpanInside: function (latlng, options) {\r\n \t\toptions = options || {};\r\n\r\n \t\tvar paddingTL = toPoint(options.paddingTopLeft || options.padding || [0, 0]),\r\n \t\t paddingBR = toPoint(options.paddingBottomRight || options.padding || [0, 0]),\r\n \t\t pixelCenter = this.project(this.getCenter()),\r\n \t\t pixelPoint = this.project(latlng),\r\n \t\t pixelBounds = this.getPixelBounds(),\r\n \t\t paddedBounds = toBounds([pixelBounds.min.add(paddingTL), pixelBounds.max.subtract(paddingBR)]),\r\n \t\t paddedSize = paddedBounds.getSize();\r\n\r\n \t\tif (!paddedBounds.contains(pixelPoint)) {\r\n \t\t\tthis._enforcingBounds = true;\r\n \t\t\tvar centerOffset = pixelPoint.subtract(paddedBounds.getCenter());\r\n \t\t\tvar offset = paddedBounds.extend(pixelPoint).getSize().subtract(paddedSize);\r\n \t\t\tpixelCenter.x += centerOffset.x < 0 ? -offset.x : offset.x;\r\n \t\t\tpixelCenter.y += centerOffset.y < 0 ? -offset.y : offset.y;\r\n \t\t\tthis.panTo(this.unproject(pixelCenter), options);\r\n \t\t\tthis._enforcingBounds = false;\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method invalidateSize(options: Zoom/pan options): this\r\n \t// Checks if the map container size changed and updates the map if so —\r\n \t// call it after you've changed the map size dynamically, also animating\r\n \t// pan by default. If `options.pan` is `false`, panning will not occur.\r\n \t// If `options.debounceMoveend` is `true`, it will delay `moveend` event so\r\n \t// that it doesn't happen often even if the method is called many\r\n \t// times in a row.\r\n\r\n \t// @alternative\r\n \t// @method invalidateSize(animate: Boolean): this\r\n \t// Checks if the map container size changed and updates the map if so —\r\n \t// call it after you've changed the map size dynamically, also animating\r\n \t// pan by default.\r\n \tinvalidateSize: function (options) {\r\n \t\tif (!this._loaded) { return this; }\r\n\r\n \t\toptions = extend({\r\n \t\t\tanimate: false,\r\n \t\t\tpan: true\r\n \t\t}, options === true ? {animate: true} : options);\r\n\r\n \t\tvar oldSize = this.getSize();\r\n \t\tthis._sizeChanged = true;\r\n \t\tthis._lastCenter = null;\r\n\r\n \t\tvar newSize = this.getSize(),\r\n \t\t oldCenter = oldSize.divideBy(2).round(),\r\n \t\t newCenter = newSize.divideBy(2).round(),\r\n \t\t offset = oldCenter.subtract(newCenter);\r\n\r\n \t\tif (!offset.x && !offset.y) { return this; }\r\n\r\n \t\tif (options.animate && options.pan) {\r\n \t\t\tthis.panBy(offset);\r\n\r\n \t\t} else {\r\n \t\t\tif (options.pan) {\r\n \t\t\t\tthis._rawPanBy(offset);\r\n \t\t\t}\r\n\r\n \t\t\tthis.fire('move');\r\n\r\n \t\t\tif (options.debounceMoveend) {\r\n \t\t\t\tclearTimeout(this._sizeTimer);\r\n \t\t\t\tthis._sizeTimer = setTimeout(bind(this.fire, this, 'moveend'), 200);\r\n \t\t\t} else {\r\n \t\t\t\tthis.fire('moveend');\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// @section Map state change events\r\n \t\t// @event resize: ResizeEvent\r\n \t\t// Fired when the map is resized.\r\n \t\treturn this.fire('resize', {\r\n \t\t\toldSize: oldSize,\r\n \t\t\tnewSize: newSize\r\n \t\t});\r\n \t},\r\n\r\n \t// @section Methods for modifying map state\r\n \t// @method stop(): this\r\n \t// Stops the currently running `panTo` or `flyTo` animation, if any.\r\n \tstop: function () {\r\n \t\tthis.setZoom(this._limitZoom(this._zoom));\r\n \t\tif (!this.options.zoomSnap) {\r\n \t\t\tthis.fire('viewreset');\r\n \t\t}\r\n \t\treturn this._stop();\r\n \t},\r\n\r\n \t// @section Geolocation methods\r\n \t// @method locate(options?: Locate options): this\r\n \t// Tries to locate the user using the Geolocation API, firing a [`locationfound`](#map-locationfound)\r\n \t// event with location data on success or a [`locationerror`](#map-locationerror) event on failure,\r\n \t// and optionally sets the map view to the user's location with respect to\r\n \t// detection accuracy (or to the world view if geolocation failed).\r\n \t// Note that, if your page doesn't use HTTPS, this method will fail in\r\n \t// modern browsers ([Chrome 50 and newer](https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins))\r\n \t// See `Locate options` for more details.\r\n \tlocate: function (options) {\r\n\r\n \t\toptions = this._locateOptions = extend({\r\n \t\t\ttimeout: 10000,\r\n \t\t\twatch: false\r\n \t\t\t// setView: false\r\n \t\t\t// maxZoom: \r\n \t\t\t// maximumAge: 0\r\n \t\t\t// enableHighAccuracy: false\r\n \t\t}, options);\r\n\r\n \t\tif (!('geolocation' in navigator)) {\r\n \t\t\tthis._handleGeolocationError({\r\n \t\t\t\tcode: 0,\r\n \t\t\t\tmessage: 'Geolocation not supported.'\r\n \t\t\t});\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\tvar onResponse = bind(this._handleGeolocationResponse, this),\r\n \t\t onError = bind(this._handleGeolocationError, this);\r\n\r\n \t\tif (options.watch) {\r\n \t\t\tthis._locationWatchId =\r\n \t\t\t navigator.geolocation.watchPosition(onResponse, onError, options);\r\n \t\t} else {\r\n \t\t\tnavigator.geolocation.getCurrentPosition(onResponse, onError, options);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method stopLocate(): this\r\n \t// Stops watching location previously initiated by `map.locate({watch: true})`\r\n \t// and aborts resetting the map view if map.locate was called with\r\n \t// `{setView: true}`.\r\n \tstopLocate: function () {\r\n \t\tif (navigator.geolocation && navigator.geolocation.clearWatch) {\r\n \t\t\tnavigator.geolocation.clearWatch(this._locationWatchId);\r\n \t\t}\r\n \t\tif (this._locateOptions) {\r\n \t\t\tthis._locateOptions.setView = false;\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_handleGeolocationError: function (error) {\r\n \t\tif (!this._container._leaflet_id) { return; }\r\n\r\n \t\tvar c = error.code,\r\n \t\t message = error.message ||\r\n \t\t (c === 1 ? 'permission denied' :\r\n \t\t (c === 2 ? 'position unavailable' : 'timeout'));\r\n\r\n \t\tif (this._locateOptions.setView && !this._loaded) {\r\n \t\t\tthis.fitWorld();\r\n \t\t}\r\n\r\n \t\t// @section Location events\r\n \t\t// @event locationerror: ErrorEvent\r\n \t\t// Fired when geolocation (using the [`locate`](#map-locate) method) failed.\r\n \t\tthis.fire('locationerror', {\r\n \t\t\tcode: c,\r\n \t\t\tmessage: 'Geolocation error: ' + message + '.'\r\n \t\t});\r\n \t},\r\n\r\n \t_handleGeolocationResponse: function (pos) {\r\n \t\tif (!this._container._leaflet_id) { return; }\r\n\r\n \t\tvar lat = pos.coords.latitude,\r\n \t\t lng = pos.coords.longitude,\r\n \t\t latlng = new LatLng(lat, lng),\r\n \t\t bounds = latlng.toBounds(pos.coords.accuracy * 2),\r\n \t\t options = this._locateOptions;\r\n\r\n \t\tif (options.setView) {\r\n \t\t\tvar zoom = this.getBoundsZoom(bounds);\r\n \t\t\tthis.setView(latlng, options.maxZoom ? Math.min(zoom, options.maxZoom) : zoom);\r\n \t\t}\r\n\r\n \t\tvar data = {\r\n \t\t\tlatlng: latlng,\r\n \t\t\tbounds: bounds,\r\n \t\t\ttimestamp: pos.timestamp\r\n \t\t};\r\n\r\n \t\tfor (var i in pos.coords) {\r\n \t\t\tif (typeof pos.coords[i] === 'number') {\r\n \t\t\t\tdata[i] = pos.coords[i];\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// @event locationfound: LocationEvent\r\n \t\t// Fired when geolocation (using the [`locate`](#map-locate) method)\r\n \t\t// went successfully.\r\n \t\tthis.fire('locationfound', data);\r\n \t},\r\n\r\n \t// TODO Appropriate docs section?\r\n \t// @section Other Methods\r\n \t// @method addHandler(name: String, HandlerClass: Function): this\r\n \t// Adds a new `Handler` to the map, given its name and constructor function.\r\n \taddHandler: function (name, HandlerClass) {\r\n \t\tif (!HandlerClass) { return this; }\r\n\r\n \t\tvar handler = this[name] = new HandlerClass(this);\r\n\r\n \t\tthis._handlers.push(handler);\r\n\r\n \t\tif (this.options[name]) {\r\n \t\t\thandler.enable();\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method remove(): this\r\n \t// Destroys the map and clears all related event listeners.\r\n \tremove: function () {\r\n\r\n \t\tthis._initEvents(true);\r\n \t\tif (this.options.maxBounds) { this.off('moveend', this._panInsideMaxBounds); }\r\n\r\n \t\tif (this._containerId !== this._container._leaflet_id) {\r\n \t\t\tthrow new Error('Map container is being reused by another instance');\r\n \t\t}\r\n\r\n \t\ttry {\r\n \t\t\t// throws error in IE6-8\r\n \t\t\tdelete this._container._leaflet_id;\r\n \t\t\tdelete this._containerId;\r\n \t\t} catch (e) {\r\n \t\t\t/*eslint-disable */\r\n \t\t\tthis._container._leaflet_id = undefined;\r\n \t\t\t/* eslint-enable */\r\n \t\t\tthis._containerId = undefined;\r\n \t\t}\r\n\r\n \t\tif (this._locationWatchId !== undefined) {\r\n \t\t\tthis.stopLocate();\r\n \t\t}\r\n\r\n \t\tthis._stop();\r\n\r\n \t\tremove(this._mapPane);\r\n\r\n \t\tif (this._clearControlPos) {\r\n \t\t\tthis._clearControlPos();\r\n \t\t}\r\n \t\tif (this._resizeRequest) {\r\n \t\t\tcancelAnimFrame(this._resizeRequest);\r\n \t\t\tthis._resizeRequest = null;\r\n \t\t}\r\n\r\n \t\tthis._clearHandlers();\r\n\r\n \t\tif (this._loaded) {\r\n \t\t\t// @section Map state change events\r\n \t\t\t// @event unload: Event\r\n \t\t\t// Fired when the map is destroyed with [remove](#map-remove) method.\r\n \t\t\tthis.fire('unload');\r\n \t\t}\r\n\r\n \t\tvar i;\r\n \t\tfor (i in this._layers) {\r\n \t\t\tthis._layers[i].remove();\r\n \t\t}\r\n \t\tfor (i in this._panes) {\r\n \t\t\tremove(this._panes[i]);\r\n \t\t}\r\n\r\n \t\tthis._layers = [];\r\n \t\tthis._panes = [];\r\n \t\tdelete this._mapPane;\r\n \t\tdelete this._renderer;\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @section Other Methods\r\n \t// @method createPane(name: String, container?: HTMLElement): HTMLElement\r\n \t// Creates a new [map pane](#map-pane) with the given name if it doesn't exist already,\r\n \t// then returns it. The pane is created as a child of `container`, or\r\n \t// as a child of the main map pane if not set.\r\n \tcreatePane: function (name, container) {\r\n \t\tvar className = 'leaflet-pane' + (name ? ' leaflet-' + name.replace('Pane', '') + '-pane' : ''),\r\n \t\t pane = create$1('div', className, container || this._mapPane);\r\n\r\n \t\tif (name) {\r\n \t\t\tthis._panes[name] = pane;\r\n \t\t}\r\n \t\treturn pane;\r\n \t},\r\n\r\n \t// @section Methods for Getting Map State\r\n\r\n \t// @method getCenter(): LatLng\r\n \t// Returns the geographical center of the map view\r\n \tgetCenter: function () {\r\n \t\tthis._checkIfLoaded();\r\n\r\n \t\tif (this._lastCenter && !this._moved()) {\r\n \t\t\treturn this._lastCenter;\r\n \t\t}\r\n \t\treturn this.layerPointToLatLng(this._getCenterLayerPoint());\r\n \t},\r\n\r\n \t// @method getZoom(): Number\r\n \t// Returns the current zoom level of the map view\r\n \tgetZoom: function () {\r\n \t\treturn this._zoom;\r\n \t},\r\n\r\n \t// @method getBounds(): LatLngBounds\r\n \t// Returns the geographical bounds visible in the current map view\r\n \tgetBounds: function () {\r\n \t\tvar bounds = this.getPixelBounds(),\r\n \t\t sw = this.unproject(bounds.getBottomLeft()),\r\n \t\t ne = this.unproject(bounds.getTopRight());\r\n\r\n \t\treturn new LatLngBounds(sw, ne);\r\n \t},\r\n\r\n \t// @method getMinZoom(): Number\r\n \t// Returns the minimum zoom level of the map (if set in the `minZoom` option of the map or of any layers), or `0` by default.\r\n \tgetMinZoom: function () {\r\n \t\treturn this.options.minZoom === undefined ? this._layersMinZoom || 0 : this.options.minZoom;\r\n \t},\r\n\r\n \t// @method getMaxZoom(): Number\r\n \t// Returns the maximum zoom level of the map (if set in the `maxZoom` option of the map or of any layers).\r\n \tgetMaxZoom: function () {\r\n \t\treturn this.options.maxZoom === undefined ?\r\n \t\t\t(this._layersMaxZoom === undefined ? Infinity : this._layersMaxZoom) :\r\n \t\t\tthis.options.maxZoom;\r\n \t},\r\n\r\n \t// @method getBoundsZoom(bounds: LatLngBounds, inside?: Boolean, padding?: Point): Number\r\n \t// Returns the maximum zoom level on which the given bounds fit to the map\r\n \t// view in its entirety. If `inside` (optional) is set to `true`, the method\r\n \t// instead returns the minimum zoom level on which the map view fits into\r\n \t// the given bounds in its entirety.\r\n \tgetBoundsZoom: function (bounds, inside, padding) { // (LatLngBounds[, Boolean, Point]) -> Number\r\n \t\tbounds = toLatLngBounds(bounds);\r\n \t\tpadding = toPoint(padding || [0, 0]);\r\n\r\n \t\tvar zoom = this.getZoom() || 0,\r\n \t\t min = this.getMinZoom(),\r\n \t\t max = this.getMaxZoom(),\r\n \t\t nw = bounds.getNorthWest(),\r\n \t\t se = bounds.getSouthEast(),\r\n \t\t size = this.getSize().subtract(padding),\r\n \t\t boundsSize = toBounds(this.project(se, zoom), this.project(nw, zoom)).getSize(),\r\n \t\t snap = Browser.any3d ? this.options.zoomSnap : 1,\r\n \t\t scalex = size.x / boundsSize.x,\r\n \t\t scaley = size.y / boundsSize.y,\r\n \t\t scale = inside ? Math.max(scalex, scaley) : Math.min(scalex, scaley);\r\n\r\n \t\tzoom = this.getScaleZoom(scale, zoom);\r\n\r\n \t\tif (snap) {\r\n \t\t\tzoom = Math.round(zoom / (snap / 100)) * (snap / 100); // don't jump if within 1% of a snap level\r\n \t\t\tzoom = inside ? Math.ceil(zoom / snap) * snap : Math.floor(zoom / snap) * snap;\r\n \t\t}\r\n\r\n \t\treturn Math.max(min, Math.min(max, zoom));\r\n \t},\r\n\r\n \t// @method getSize(): Point\r\n \t// Returns the current size of the map container (in pixels).\r\n \tgetSize: function () {\r\n \t\tif (!this._size || this._sizeChanged) {\r\n \t\t\tthis._size = new Point(\r\n \t\t\t\tthis._container.clientWidth || 0,\r\n \t\t\t\tthis._container.clientHeight || 0);\r\n\r\n \t\t\tthis._sizeChanged = false;\r\n \t\t}\r\n \t\treturn this._size.clone();\r\n \t},\r\n\r\n \t// @method getPixelBounds(): Bounds\r\n \t// Returns the bounds of the current map view in projected pixel\r\n \t// coordinates (sometimes useful in layer and overlay implementations).\r\n \tgetPixelBounds: function (center, zoom) {\r\n \t\tvar topLeftPoint = this._getTopLeftPoint(center, zoom);\r\n \t\treturn new Bounds(topLeftPoint, topLeftPoint.add(this.getSize()));\r\n \t},\r\n\r\n \t// TODO: Check semantics - isn't the pixel origin the 0,0 coord relative to\r\n \t// the map pane? \"left point of the map layer\" can be confusing, specially\r\n \t// since there can be negative offsets.\r\n \t// @method getPixelOrigin(): Point\r\n \t// Returns the projected pixel coordinates of the top left point of\r\n \t// the map layer (useful in custom layer and overlay implementations).\r\n \tgetPixelOrigin: function () {\r\n \t\tthis._checkIfLoaded();\r\n \t\treturn this._pixelOrigin;\r\n \t},\r\n\r\n \t// @method getPixelWorldBounds(zoom?: Number): Bounds\r\n \t// Returns the world's bounds in pixel coordinates for zoom level `zoom`.\r\n \t// If `zoom` is omitted, the map's current zoom level is used.\r\n \tgetPixelWorldBounds: function (zoom) {\r\n \t\treturn this.options.crs.getProjectedBounds(zoom === undefined ? this.getZoom() : zoom);\r\n \t},\r\n\r\n \t// @section Other Methods\r\n\r\n \t// @method getPane(pane: String|HTMLElement): HTMLElement\r\n \t// Returns a [map pane](#map-pane), given its name or its HTML element (its identity).\r\n \tgetPane: function (pane) {\r\n \t\treturn typeof pane === 'string' ? this._panes[pane] : pane;\r\n \t},\r\n\r\n \t// @method getPanes(): Object\r\n \t// Returns a plain object containing the names of all [panes](#map-pane) as keys and\r\n \t// the panes as values.\r\n \tgetPanes: function () {\r\n \t\treturn this._panes;\r\n \t},\r\n\r\n \t// @method getContainer: HTMLElement\r\n \t// Returns the HTML element that contains the map.\r\n \tgetContainer: function () {\r\n \t\treturn this._container;\r\n \t},\r\n\r\n\r\n \t// @section Conversion Methods\r\n\r\n \t// @method getZoomScale(toZoom: Number, fromZoom: Number): Number\r\n \t// Returns the scale factor to be applied to a map transition from zoom level\r\n \t// `fromZoom` to `toZoom`. Used internally to help with zoom animations.\r\n \tgetZoomScale: function (toZoom, fromZoom) {\r\n \t\t// TODO replace with universal implementation after refactoring projections\r\n \t\tvar crs = this.options.crs;\r\n \t\tfromZoom = fromZoom === undefined ? this._zoom : fromZoom;\r\n \t\treturn crs.scale(toZoom) / crs.scale(fromZoom);\r\n \t},\r\n\r\n \t// @method getScaleZoom(scale: Number, fromZoom: Number): Number\r\n \t// Returns the zoom level that the map would end up at, if it is at `fromZoom`\r\n \t// level and everything is scaled by a factor of `scale`. Inverse of\r\n \t// [`getZoomScale`](#map-getZoomScale).\r\n \tgetScaleZoom: function (scale, fromZoom) {\r\n \t\tvar crs = this.options.crs;\r\n \t\tfromZoom = fromZoom === undefined ? this._zoom : fromZoom;\r\n \t\tvar zoom = crs.zoom(scale * crs.scale(fromZoom));\r\n \t\treturn isNaN(zoom) ? Infinity : zoom;\r\n \t},\r\n\r\n \t// @method project(latlng: LatLng, zoom: Number): Point\r\n \t// Projects a geographical coordinate `LatLng` according to the projection\r\n \t// of the map's CRS, then scales it according to `zoom` and the CRS's\r\n \t// `Transformation`. The result is pixel coordinate relative to\r\n \t// the CRS origin.\r\n \tproject: function (latlng, zoom) {\r\n \t\tzoom = zoom === undefined ? this._zoom : zoom;\r\n \t\treturn this.options.crs.latLngToPoint(toLatLng(latlng), zoom);\r\n \t},\r\n\r\n \t// @method unproject(point: Point, zoom: Number): LatLng\r\n \t// Inverse of [`project`](#map-project).\r\n \tunproject: function (point, zoom) {\r\n \t\tzoom = zoom === undefined ? this._zoom : zoom;\r\n \t\treturn this.options.crs.pointToLatLng(toPoint(point), zoom);\r\n \t},\r\n\r\n \t// @method layerPointToLatLng(point: Point): LatLng\r\n \t// Given a pixel coordinate relative to the [origin pixel](#map-getpixelorigin),\r\n \t// returns the corresponding geographical coordinate (for the current zoom level).\r\n \tlayerPointToLatLng: function (point) {\r\n \t\tvar projectedPoint = toPoint(point).add(this.getPixelOrigin());\r\n \t\treturn this.unproject(projectedPoint);\r\n \t},\r\n\r\n \t// @method latLngToLayerPoint(latlng: LatLng): Point\r\n \t// Given a geographical coordinate, returns the corresponding pixel coordinate\r\n \t// relative to the [origin pixel](#map-getpixelorigin).\r\n \tlatLngToLayerPoint: function (latlng) {\r\n \t\tvar projectedPoint = this.project(toLatLng(latlng))._round();\r\n \t\treturn projectedPoint._subtract(this.getPixelOrigin());\r\n \t},\r\n\r\n \t// @method wrapLatLng(latlng: LatLng): LatLng\r\n \t// Returns a `LatLng` where `lat` and `lng` has been wrapped according to the\r\n \t// map's CRS's `wrapLat` and `wrapLng` properties, if they are outside the\r\n \t// CRS's bounds.\r\n \t// By default this means longitude is wrapped around the dateline so its\r\n \t// value is between -180 and +180 degrees.\r\n \twrapLatLng: function (latlng) {\r\n \t\treturn this.options.crs.wrapLatLng(toLatLng(latlng));\r\n \t},\r\n\r\n \t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n \t// Returns a `LatLngBounds` with the same size as the given one, ensuring that\r\n \t// its center is within the CRS's bounds.\r\n \t// By default this means the center longitude is wrapped around the dateline so its\r\n \t// value is between -180 and +180 degrees, and the majority of the bounds\r\n \t// overlaps the CRS's bounds.\r\n \twrapLatLngBounds: function (latlng) {\r\n \t\treturn this.options.crs.wrapLatLngBounds(toLatLngBounds(latlng));\r\n \t},\r\n\r\n \t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n \t// Returns the distance between two geographical coordinates according to\r\n \t// the map's CRS. By default this measures distance in meters.\r\n \tdistance: function (latlng1, latlng2) {\r\n \t\treturn this.options.crs.distance(toLatLng(latlng1), toLatLng(latlng2));\r\n \t},\r\n\r\n \t// @method containerPointToLayerPoint(point: Point): Point\r\n \t// Given a pixel coordinate relative to the map container, returns the corresponding\r\n \t// pixel coordinate relative to the [origin pixel](#map-getpixelorigin).\r\n \tcontainerPointToLayerPoint: function (point) { // (Point)\r\n \t\treturn toPoint(point).subtract(this._getMapPanePos());\r\n \t},\r\n\r\n \t// @method layerPointToContainerPoint(point: Point): Point\r\n \t// Given a pixel coordinate relative to the [origin pixel](#map-getpixelorigin),\r\n \t// returns the corresponding pixel coordinate relative to the map container.\r\n \tlayerPointToContainerPoint: function (point) { // (Point)\r\n \t\treturn toPoint(point).add(this._getMapPanePos());\r\n \t},\r\n\r\n \t// @method containerPointToLatLng(point: Point): LatLng\r\n \t// Given a pixel coordinate relative to the map container, returns\r\n \t// the corresponding geographical coordinate (for the current zoom level).\r\n \tcontainerPointToLatLng: function (point) {\r\n \t\tvar layerPoint = this.containerPointToLayerPoint(toPoint(point));\r\n \t\treturn this.layerPointToLatLng(layerPoint);\r\n \t},\r\n\r\n \t// @method latLngToContainerPoint(latlng: LatLng): Point\r\n \t// Given a geographical coordinate, returns the corresponding pixel coordinate\r\n \t// relative to the map container.\r\n \tlatLngToContainerPoint: function (latlng) {\r\n \t\treturn this.layerPointToContainerPoint(this.latLngToLayerPoint(toLatLng(latlng)));\r\n \t},\r\n\r\n \t// @method mouseEventToContainerPoint(ev: MouseEvent): Point\r\n \t// Given a MouseEvent object, returns the pixel coordinate relative to the\r\n \t// map container where the event took place.\r\n \tmouseEventToContainerPoint: function (e) {\r\n \t\treturn getMousePosition(e, this._container);\r\n \t},\r\n\r\n \t// @method mouseEventToLayerPoint(ev: MouseEvent): Point\r\n \t// Given a MouseEvent object, returns the pixel coordinate relative to\r\n \t// the [origin pixel](#map-getpixelorigin) where the event took place.\r\n \tmouseEventToLayerPoint: function (e) {\r\n \t\treturn this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e));\r\n \t},\r\n\r\n \t// @method mouseEventToLatLng(ev: MouseEvent): LatLng\r\n \t// Given a MouseEvent object, returns geographical coordinate where the\r\n \t// event took place.\r\n \tmouseEventToLatLng: function (e) { // (MouseEvent)\r\n \t\treturn this.layerPointToLatLng(this.mouseEventToLayerPoint(e));\r\n \t},\r\n\r\n\r\n \t// map initialization methods\r\n\r\n \t_initContainer: function (id) {\r\n \t\tvar container = this._container = get(id);\r\n\r\n \t\tif (!container) {\r\n \t\t\tthrow new Error('Map container not found.');\r\n \t\t} else if (container._leaflet_id) {\r\n \t\t\tthrow new Error('Map container is already initialized.');\r\n \t\t}\r\n\r\n \t\ton(container, 'scroll', this._onScroll, this);\r\n \t\tthis._containerId = stamp(container);\r\n \t},\r\n\r\n \t_initLayout: function () {\r\n \t\tvar container = this._container;\r\n\r\n \t\tthis._fadeAnimated = this.options.fadeAnimation && Browser.any3d;\r\n\r\n \t\taddClass(container, 'leaflet-container' +\r\n \t\t\t(Browser.touch ? ' leaflet-touch' : '') +\r\n \t\t\t(Browser.retina ? ' leaflet-retina' : '') +\r\n \t\t\t(Browser.ielt9 ? ' leaflet-oldie' : '') +\r\n \t\t\t(Browser.safari ? ' leaflet-safari' : '') +\r\n \t\t\t(this._fadeAnimated ? ' leaflet-fade-anim' : ''));\r\n\r\n \t\tvar position = getStyle(container, 'position');\r\n\r\n \t\tif (position !== 'absolute' && position !== 'relative' && position !== 'fixed') {\r\n \t\t\tcontainer.style.position = 'relative';\r\n \t\t}\r\n\r\n \t\tthis._initPanes();\r\n\r\n \t\tif (this._initControlPos) {\r\n \t\t\tthis._initControlPos();\r\n \t\t}\r\n \t},\r\n\r\n \t_initPanes: function () {\r\n \t\tvar panes = this._panes = {};\r\n \t\tthis._paneRenderers = {};\r\n\r\n \t\t// @section\r\n \t\t//\r\n \t\t// Panes are DOM elements used to control the ordering of layers on the map. You\r\n \t\t// can access panes with [`map.getPane`](#map-getpane) or\r\n \t\t// [`map.getPanes`](#map-getpanes) methods. New panes can be created with the\r\n \t\t// [`map.createPane`](#map-createpane) method.\r\n \t\t//\r\n \t\t// Every map has the following default panes that differ only in zIndex.\r\n \t\t//\r\n \t\t// @pane mapPane: HTMLElement = 'auto'\r\n \t\t// Pane that contains all other map panes\r\n\r\n \t\tthis._mapPane = this.createPane('mapPane', this._container);\r\n \t\tsetPosition(this._mapPane, new Point(0, 0));\r\n\r\n \t\t// @pane tilePane: HTMLElement = 200\r\n \t\t// Pane for `GridLayer`s and `TileLayer`s\r\n \t\tthis.createPane('tilePane');\r\n \t\t// @pane overlayPane: HTMLElement = 400\r\n \t\t// Pane for vectors (`Path`s, like `Polyline`s and `Polygon`s), `ImageOverlay`s and `VideoOverlay`s\r\n \t\tthis.createPane('overlayPane');\r\n \t\t// @pane shadowPane: HTMLElement = 500\r\n \t\t// Pane for overlay shadows (e.g. `Marker` shadows)\r\n \t\tthis.createPane('shadowPane');\r\n \t\t// @pane markerPane: HTMLElement = 600\r\n \t\t// Pane for `Icon`s of `Marker`s\r\n \t\tthis.createPane('markerPane');\r\n \t\t// @pane tooltipPane: HTMLElement = 650\r\n \t\t// Pane for `Tooltip`s.\r\n \t\tthis.createPane('tooltipPane');\r\n \t\t// @pane popupPane: HTMLElement = 700\r\n \t\t// Pane for `Popup`s.\r\n \t\tthis.createPane('popupPane');\r\n\r\n \t\tif (!this.options.markerZoomAnimation) {\r\n \t\t\taddClass(panes.markerPane, 'leaflet-zoom-hide');\r\n \t\t\taddClass(panes.shadowPane, 'leaflet-zoom-hide');\r\n \t\t}\r\n \t},\r\n\r\n\r\n \t// private methods that modify map state\r\n\r\n \t// @section Map state change events\r\n \t_resetView: function (center, zoom) {\r\n \t\tsetPosition(this._mapPane, new Point(0, 0));\r\n\r\n \t\tvar loading = !this._loaded;\r\n \t\tthis._loaded = true;\r\n \t\tzoom = this._limitZoom(zoom);\r\n\r\n \t\tthis.fire('viewprereset');\r\n\r\n \t\tvar zoomChanged = this._zoom !== zoom;\r\n \t\tthis\r\n \t\t\t._moveStart(zoomChanged, false)\r\n \t\t\t._move(center, zoom)\r\n \t\t\t._moveEnd(zoomChanged);\r\n\r\n \t\t// @event viewreset: Event\r\n \t\t// Fired when the map needs to redraw its content (this usually happens\r\n \t\t// on map zoom or load). Very useful for creating custom overlays.\r\n \t\tthis.fire('viewreset');\r\n\r\n \t\t// @event load: Event\r\n \t\t// Fired when the map is initialized (when its center and zoom are set\r\n \t\t// for the first time).\r\n \t\tif (loading) {\r\n \t\t\tthis.fire('load');\r\n \t\t}\r\n \t},\r\n\r\n \t_moveStart: function (zoomChanged, noMoveStart) {\r\n \t\t// @event zoomstart: Event\r\n \t\t// Fired when the map zoom is about to change (e.g. before zoom animation).\r\n \t\t// @event movestart: Event\r\n \t\t// Fired when the view of the map starts changing (e.g. user starts dragging the map).\r\n \t\tif (zoomChanged) {\r\n \t\t\tthis.fire('zoomstart');\r\n \t\t}\r\n \t\tif (!noMoveStart) {\r\n \t\t\tthis.fire('movestart');\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_move: function (center, zoom, data, supressEvent) {\r\n \t\tif (zoom === undefined) {\r\n \t\t\tzoom = this._zoom;\r\n \t\t}\r\n \t\tvar zoomChanged = this._zoom !== zoom;\r\n\r\n \t\tthis._zoom = zoom;\r\n \t\tthis._lastCenter = center;\r\n \t\tthis._pixelOrigin = this._getNewPixelOrigin(center);\r\n\r\n \t\tif (!supressEvent) {\r\n \t\t\t// @event zoom: Event\r\n \t\t\t// Fired repeatedly during any change in zoom level,\r\n \t\t\t// including zoom and fly animations.\r\n \t\t\tif (zoomChanged || (data && data.pinch)) {\t// Always fire 'zoom' if pinching because #3530\r\n \t\t\t\tthis.fire('zoom', data);\r\n \t\t\t}\r\n\r\n \t\t\t// @event move: Event\r\n \t\t\t// Fired repeatedly during any movement of the map,\r\n \t\t\t// including pan and fly animations.\r\n \t\t\tthis.fire('move', data);\r\n \t\t} else if (data && data.pinch) {\t// Always fire 'zoom' if pinching because #3530\r\n \t\t\tthis.fire('zoom', data);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_moveEnd: function (zoomChanged) {\r\n \t\t// @event zoomend: Event\r\n \t\t// Fired when the map zoom changed, after any animations.\r\n \t\tif (zoomChanged) {\r\n \t\t\tthis.fire('zoomend');\r\n \t\t}\r\n\r\n \t\t// @event moveend: Event\r\n \t\t// Fired when the center of the map stops changing\r\n \t\t// (e.g. user stopped dragging the map or after non-centered zoom).\r\n \t\treturn this.fire('moveend');\r\n \t},\r\n\r\n \t_stop: function () {\r\n \t\tcancelAnimFrame(this._flyToFrame);\r\n \t\tif (this._panAnim) {\r\n \t\t\tthis._panAnim.stop();\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_rawPanBy: function (offset) {\r\n \t\tsetPosition(this._mapPane, this._getMapPanePos().subtract(offset));\r\n \t},\r\n\r\n \t_getZoomSpan: function () {\r\n \t\treturn this.getMaxZoom() - this.getMinZoom();\r\n \t},\r\n\r\n \t_panInsideMaxBounds: function () {\r\n \t\tif (!this._enforcingBounds) {\r\n \t\t\tthis.panInsideBounds(this.options.maxBounds);\r\n \t\t}\r\n \t},\r\n\r\n \t_checkIfLoaded: function () {\r\n \t\tif (!this._loaded) {\r\n \t\t\tthrow new Error('Set map center and zoom first.');\r\n \t\t}\r\n \t},\r\n\r\n \t// DOM event handling\r\n\r\n \t// @section Interaction events\r\n \t_initEvents: function (remove) {\r\n \t\tthis._targets = {};\r\n \t\tthis._targets[stamp(this._container)] = this;\r\n\r\n \t\tvar onOff = remove ? off : on;\r\n\r\n \t\t// @event click: MouseEvent\r\n \t\t// Fired when the user clicks (or taps) the map.\r\n \t\t// @event dblclick: MouseEvent\r\n \t\t// Fired when the user double-clicks (or double-taps) the map.\r\n \t\t// @event mousedown: MouseEvent\r\n \t\t// Fired when the user pushes the mouse button on the map.\r\n \t\t// @event mouseup: MouseEvent\r\n \t\t// Fired when the user releases the mouse button on the map.\r\n \t\t// @event mouseover: MouseEvent\r\n \t\t// Fired when the mouse enters the map.\r\n \t\t// @event mouseout: MouseEvent\r\n \t\t// Fired when the mouse leaves the map.\r\n \t\t// @event mousemove: MouseEvent\r\n \t\t// Fired while the mouse moves over the map.\r\n \t\t// @event contextmenu: MouseEvent\r\n \t\t// Fired when the user pushes the right mouse button on the map, prevents\r\n \t\t// default browser context menu from showing if there are listeners on\r\n \t\t// this event. Also fired on mobile when the user holds a single touch\r\n \t\t// for a second (also called long press).\r\n \t\t// @event keypress: KeyboardEvent\r\n \t\t// Fired when the user presses a key from the keyboard that produces a character value while the map is focused.\r\n \t\t// @event keydown: KeyboardEvent\r\n \t\t// Fired when the user presses a key from the keyboard while the map is focused. Unlike the `keypress` event,\r\n \t\t// the `keydown` event is fired for keys that produce a character value and for keys\r\n \t\t// that do not produce a character value.\r\n \t\t// @event keyup: KeyboardEvent\r\n \t\t// Fired when the user releases a key from the keyboard while the map is focused.\r\n \t\tonOff(this._container, 'click dblclick mousedown mouseup ' +\r\n \t\t\t'mouseover mouseout mousemove contextmenu keypress keydown keyup', this._handleDOMEvent, this);\r\n\r\n \t\tif (this.options.trackResize) {\r\n \t\t\tonOff(window, 'resize', this._onResize, this);\r\n \t\t}\r\n\r\n \t\tif (Browser.any3d && this.options.transform3DLimit) {\r\n \t\t\t(remove ? this.off : this.on).call(this, 'moveend', this._onMoveEnd);\r\n \t\t}\r\n \t},\r\n\r\n \t_onResize: function () {\r\n \t\tcancelAnimFrame(this._resizeRequest);\r\n \t\tthis._resizeRequest = requestAnimFrame(\r\n \t\t function () { this.invalidateSize({debounceMoveend: true}); }, this);\r\n \t},\r\n\r\n \t_onScroll: function () {\r\n \t\tthis._container.scrollTop = 0;\r\n \t\tthis._container.scrollLeft = 0;\r\n \t},\r\n\r\n \t_onMoveEnd: function () {\r\n \t\tvar pos = this._getMapPanePos();\r\n \t\tif (Math.max(Math.abs(pos.x), Math.abs(pos.y)) >= this.options.transform3DLimit) {\r\n \t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=1203873 but Webkit also have\r\n \t\t\t// a pixel offset on very high values, see: https://jsfiddle.net/dg6r5hhb/\r\n \t\t\tthis._resetView(this.getCenter(), this.getZoom());\r\n \t\t}\r\n \t},\r\n\r\n \t_findEventTargets: function (e, type) {\r\n \t\tvar targets = [],\r\n \t\t target,\r\n \t\t isHover = type === 'mouseout' || type === 'mouseover',\r\n \t\t src = e.target || e.srcElement,\r\n \t\t dragging = false;\r\n\r\n \t\twhile (src) {\r\n \t\t\ttarget = this._targets[stamp(src)];\r\n \t\t\tif (target && (type === 'click' || type === 'preclick') && this._draggableMoved(target)) {\r\n \t\t\t\t// Prevent firing click after you just dragged an object.\r\n \t\t\t\tdragging = true;\r\n \t\t\t\tbreak;\r\n \t\t\t}\r\n \t\t\tif (target && target.listens(type, true)) {\r\n \t\t\t\tif (isHover && !isExternalTarget(src, e)) { break; }\r\n \t\t\t\ttargets.push(target);\r\n \t\t\t\tif (isHover) { break; }\r\n \t\t\t}\r\n \t\t\tif (src === this._container) { break; }\r\n \t\t\tsrc = src.parentNode;\r\n \t\t}\r\n \t\tif (!targets.length && !dragging && !isHover && this.listens(type, true)) {\r\n \t\t\ttargets = [this];\r\n \t\t}\r\n \t\treturn targets;\r\n \t},\r\n\r\n \t_isClickDisabled: function (el) {\r\n \t\twhile (el !== this._container) {\r\n \t\t\tif (el['_leaflet_disable_click']) { return true; }\r\n \t\t\tel = el.parentNode;\r\n \t\t}\r\n \t},\r\n\r\n \t_handleDOMEvent: function (e) {\r\n \t\tvar el = (e.target || e.srcElement);\r\n \t\tif (!this._loaded || el['_leaflet_disable_events'] || e.type === 'click' && this._isClickDisabled(el)) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tvar type = e.type;\r\n\r\n \t\tif (type === 'mousedown') {\r\n \t\t\t// prevents outline when clicking on keyboard-focusable element\r\n \t\t\tpreventOutline(el);\r\n \t\t}\r\n\r\n \t\tthis._fireDOMEvent(e, type);\r\n \t},\r\n\r\n \t_mouseEvents: ['click', 'dblclick', 'mouseover', 'mouseout', 'contextmenu'],\r\n\r\n \t_fireDOMEvent: function (e, type, canvasTargets) {\r\n\r\n \t\tif (e.type === 'click') {\r\n \t\t\t// Fire a synthetic 'preclick' event which propagates up (mainly for closing popups).\r\n \t\t\t// @event preclick: MouseEvent\r\n \t\t\t// Fired before mouse click on the map (sometimes useful when you\r\n \t\t\t// want something to happen on click before any existing click\r\n \t\t\t// handlers start running).\r\n \t\t\tvar synth = extend({}, e);\r\n \t\t\tsynth.type = 'preclick';\r\n \t\t\tthis._fireDOMEvent(synth, synth.type, canvasTargets);\r\n \t\t}\r\n\r\n \t\t// Find the layer the event is propagating from and its parents.\r\n \t\tvar targets = this._findEventTargets(e, type);\r\n\r\n \t\tif (canvasTargets) {\r\n \t\t\tvar filtered = []; // pick only targets with listeners\r\n \t\t\tfor (var i = 0; i < canvasTargets.length; i++) {\r\n \t\t\t\tif (canvasTargets[i].listens(type, true)) {\r\n \t\t\t\t\tfiltered.push(canvasTargets[i]);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\ttargets = filtered.concat(targets);\r\n \t\t}\r\n\r\n \t\tif (!targets.length) { return; }\r\n\r\n \t\tif (type === 'contextmenu') {\r\n \t\t\tpreventDefault(e);\r\n \t\t}\r\n\r\n \t\tvar target = targets[0];\r\n \t\tvar data = {\r\n \t\t\toriginalEvent: e\r\n \t\t};\r\n\r\n \t\tif (e.type !== 'keypress' && e.type !== 'keydown' && e.type !== 'keyup') {\r\n \t\t\tvar isMarker = target.getLatLng && (!target._radius || target._radius <= 10);\r\n \t\t\tdata.containerPoint = isMarker ?\r\n \t\t\t\tthis.latLngToContainerPoint(target.getLatLng()) : this.mouseEventToContainerPoint(e);\r\n \t\t\tdata.layerPoint = this.containerPointToLayerPoint(data.containerPoint);\r\n \t\t\tdata.latlng = isMarker ? target.getLatLng() : this.layerPointToLatLng(data.layerPoint);\r\n \t\t}\r\n\r\n \t\tfor (i = 0; i < targets.length; i++) {\r\n \t\t\ttargets[i].fire(type, data, true);\r\n \t\t\tif (data.originalEvent._stopped ||\r\n \t\t\t\t(targets[i].options.bubblingMouseEvents === false && indexOf(this._mouseEvents, type) !== -1)) { return; }\r\n \t\t}\r\n \t},\r\n\r\n \t_draggableMoved: function (obj) {\r\n \t\tobj = obj.dragging && obj.dragging.enabled() ? obj : this;\r\n \t\treturn (obj.dragging && obj.dragging.moved()) || (this.boxZoom && this.boxZoom.moved());\r\n \t},\r\n\r\n \t_clearHandlers: function () {\r\n \t\tfor (var i = 0, len = this._handlers.length; i < len; i++) {\r\n \t\t\tthis._handlers[i].disable();\r\n \t\t}\r\n \t},\r\n\r\n \t// @section Other Methods\r\n\r\n \t// @method whenReady(fn: Function, context?: Object): this\r\n \t// Runs the given function `fn` when the map gets initialized with\r\n \t// a view (center and zoom) and at least one layer, or immediately\r\n \t// if it's already initialized, optionally passing a function context.\r\n \twhenReady: function (callback, context) {\r\n \t\tif (this._loaded) {\r\n \t\t\tcallback.call(context || this, {target: this});\r\n \t\t} else {\r\n \t\t\tthis.on('load', callback, context);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n\r\n \t// private methods for getting map state\r\n\r\n \t_getMapPanePos: function () {\r\n \t\treturn getPosition(this._mapPane) || new Point(0, 0);\r\n \t},\r\n\r\n \t_moved: function () {\r\n \t\tvar pos = this._getMapPanePos();\r\n \t\treturn pos && !pos.equals([0, 0]);\r\n \t},\r\n\r\n \t_getTopLeftPoint: function (center, zoom) {\r\n \t\tvar pixelOrigin = center && zoom !== undefined ?\r\n \t\t\tthis._getNewPixelOrigin(center, zoom) :\r\n \t\t\tthis.getPixelOrigin();\r\n \t\treturn pixelOrigin.subtract(this._getMapPanePos());\r\n \t},\r\n\r\n \t_getNewPixelOrigin: function (center, zoom) {\r\n \t\tvar viewHalf = this.getSize()._divideBy(2);\r\n \t\treturn this.project(center, zoom)._subtract(viewHalf)._add(this._getMapPanePos())._round();\r\n \t},\r\n\r\n \t_latLngToNewLayerPoint: function (latlng, zoom, center) {\r\n \t\tvar topLeft = this._getNewPixelOrigin(center, zoom);\r\n \t\treturn this.project(latlng, zoom)._subtract(topLeft);\r\n \t},\r\n\r\n \t_latLngBoundsToNewLayerBounds: function (latLngBounds, zoom, center) {\r\n \t\tvar topLeft = this._getNewPixelOrigin(center, zoom);\r\n \t\treturn toBounds([\r\n \t\t\tthis.project(latLngBounds.getSouthWest(), zoom)._subtract(topLeft),\r\n \t\t\tthis.project(latLngBounds.getNorthWest(), zoom)._subtract(topLeft),\r\n \t\t\tthis.project(latLngBounds.getSouthEast(), zoom)._subtract(topLeft),\r\n \t\t\tthis.project(latLngBounds.getNorthEast(), zoom)._subtract(topLeft)\r\n \t\t]);\r\n \t},\r\n\r\n \t// layer point of the current center\r\n \t_getCenterLayerPoint: function () {\r\n \t\treturn this.containerPointToLayerPoint(this.getSize()._divideBy(2));\r\n \t},\r\n\r\n \t// offset of the specified place to the current center in pixels\r\n \t_getCenterOffset: function (latlng) {\r\n \t\treturn this.latLngToLayerPoint(latlng).subtract(this._getCenterLayerPoint());\r\n \t},\r\n\r\n \t// adjust center for view to get inside bounds\r\n \t_limitCenter: function (center, zoom, bounds) {\r\n\r\n \t\tif (!bounds) { return center; }\r\n\r\n \t\tvar centerPoint = this.project(center, zoom),\r\n \t\t viewHalf = this.getSize().divideBy(2),\r\n \t\t viewBounds = new Bounds(centerPoint.subtract(viewHalf), centerPoint.add(viewHalf)),\r\n \t\t offset = this._getBoundsOffset(viewBounds, bounds, zoom);\r\n\r\n \t\t// If offset is less than a pixel, ignore.\r\n \t\t// This prevents unstable projections from getting into\r\n \t\t// an infinite loop of tiny offsets.\r\n \t\tif (offset.round().equals([0, 0])) {\r\n \t\t\treturn center;\r\n \t\t}\r\n\r\n \t\treturn this.unproject(centerPoint.add(offset), zoom);\r\n \t},\r\n\r\n \t// adjust offset for view to get inside bounds\r\n \t_limitOffset: function (offset, bounds) {\r\n \t\tif (!bounds) { return offset; }\r\n\r\n \t\tvar viewBounds = this.getPixelBounds(),\r\n \t\t newBounds = new Bounds(viewBounds.min.add(offset), viewBounds.max.add(offset));\r\n\r\n \t\treturn offset.add(this._getBoundsOffset(newBounds, bounds));\r\n \t},\r\n\r\n \t// returns offset needed for pxBounds to get inside maxBounds at a specified zoom\r\n \t_getBoundsOffset: function (pxBounds, maxBounds, zoom) {\r\n \t\tvar projectedMaxBounds = toBounds(\r\n \t\t this.project(maxBounds.getNorthEast(), zoom),\r\n \t\t this.project(maxBounds.getSouthWest(), zoom)\r\n \t\t ),\r\n \t\t minOffset = projectedMaxBounds.min.subtract(pxBounds.min),\r\n \t\t maxOffset = projectedMaxBounds.max.subtract(pxBounds.max),\r\n\r\n \t\t dx = this._rebound(minOffset.x, -maxOffset.x),\r\n \t\t dy = this._rebound(minOffset.y, -maxOffset.y);\r\n\r\n \t\treturn new Point(dx, dy);\r\n \t},\r\n\r\n \t_rebound: function (left, right) {\r\n \t\treturn left + right > 0 ?\r\n \t\t\tMath.round(left - right) / 2 :\r\n \t\t\tMath.max(0, Math.ceil(left)) - Math.max(0, Math.floor(right));\r\n \t},\r\n\r\n \t_limitZoom: function (zoom) {\r\n \t\tvar min = this.getMinZoom(),\r\n \t\t max = this.getMaxZoom(),\r\n \t\t snap = Browser.any3d ? this.options.zoomSnap : 1;\r\n \t\tif (snap) {\r\n \t\t\tzoom = Math.round(zoom / snap) * snap;\r\n \t\t}\r\n \t\treturn Math.max(min, Math.min(max, zoom));\r\n \t},\r\n\r\n \t_onPanTransitionStep: function () {\r\n \t\tthis.fire('move');\r\n \t},\r\n\r\n \t_onPanTransitionEnd: function () {\r\n \t\tremoveClass(this._mapPane, 'leaflet-pan-anim');\r\n \t\tthis.fire('moveend');\r\n \t},\r\n\r\n \t_tryAnimatedPan: function (center, options) {\r\n \t\t// difference between the new and current centers in pixels\r\n \t\tvar offset = this._getCenterOffset(center)._trunc();\r\n\r\n \t\t// don't animate too far unless animate: true specified in options\r\n \t\tif ((options && options.animate) !== true && !this.getSize().contains(offset)) { return false; }\r\n\r\n \t\tthis.panBy(offset, options);\r\n\r\n \t\treturn true;\r\n \t},\r\n\r\n \t_createAnimProxy: function () {\r\n\r\n \t\tvar proxy = this._proxy = create$1('div', 'leaflet-proxy leaflet-zoom-animated');\r\n \t\tthis._panes.mapPane.appendChild(proxy);\r\n\r\n \t\tthis.on('zoomanim', function (e) {\r\n \t\t\tvar prop = TRANSFORM,\r\n \t\t\t transform = this._proxy.style[prop];\r\n\r\n \t\t\tsetTransform(this._proxy, this.project(e.center, e.zoom), this.getZoomScale(e.zoom, 1));\r\n\r\n \t\t\t// workaround for case when transform is the same and so transitionend event is not fired\r\n \t\t\tif (transform === this._proxy.style[prop] && this._animatingZoom) {\r\n \t\t\t\tthis._onZoomTransitionEnd();\r\n \t\t\t}\r\n \t\t}, this);\r\n\r\n \t\tthis.on('load moveend', this._animMoveEnd, this);\r\n\r\n \t\tthis._on('unload', this._destroyAnimProxy, this);\r\n \t},\r\n\r\n \t_destroyAnimProxy: function () {\r\n \t\tremove(this._proxy);\r\n \t\tthis.off('load moveend', this._animMoveEnd, this);\r\n \t\tdelete this._proxy;\r\n \t},\r\n\r\n \t_animMoveEnd: function () {\r\n \t\tvar c = this.getCenter(),\r\n \t\t z = this.getZoom();\r\n \t\tsetTransform(this._proxy, this.project(c, z), this.getZoomScale(z, 1));\r\n \t},\r\n\r\n \t_catchTransitionEnd: function (e) {\r\n \t\tif (this._animatingZoom && e.propertyName.indexOf('transform') >= 0) {\r\n \t\t\tthis._onZoomTransitionEnd();\r\n \t\t}\r\n \t},\r\n\r\n \t_nothingToAnimate: function () {\r\n \t\treturn !this._container.getElementsByClassName('leaflet-zoom-animated').length;\r\n \t},\r\n\r\n \t_tryAnimatedZoom: function (center, zoom, options) {\r\n\r\n \t\tif (this._animatingZoom) { return true; }\r\n\r\n \t\toptions = options || {};\r\n\r\n \t\t// don't animate if disabled, not supported or zoom difference is too large\r\n \t\tif (!this._zoomAnimated || options.animate === false || this._nothingToAnimate() ||\r\n \t\t Math.abs(zoom - this._zoom) > this.options.zoomAnimationThreshold) { return false; }\r\n\r\n \t\t// offset is the pixel coords of the zoom origin relative to the current center\r\n \t\tvar scale = this.getZoomScale(zoom),\r\n \t\t offset = this._getCenterOffset(center)._divideBy(1 - 1 / scale);\r\n\r\n \t\t// don't animate if the zoom origin isn't within one screen from the current center, unless forced\r\n \t\tif (options.animate !== true && !this.getSize().contains(offset)) { return false; }\r\n\r\n \t\trequestAnimFrame(function () {\r\n \t\t\tthis\r\n \t\t\t ._moveStart(true, false)\r\n \t\t\t ._animateZoom(center, zoom, true);\r\n \t\t}, this);\r\n\r\n \t\treturn true;\r\n \t},\r\n\r\n \t_animateZoom: function (center, zoom, startAnim, noUpdate) {\r\n \t\tif (!this._mapPane) { return; }\r\n\r\n \t\tif (startAnim) {\r\n \t\t\tthis._animatingZoom = true;\r\n\r\n \t\t\t// remember what center/zoom to set after animation\r\n \t\t\tthis._animateToCenter = center;\r\n \t\t\tthis._animateToZoom = zoom;\r\n\r\n \t\t\taddClass(this._mapPane, 'leaflet-zoom-anim');\r\n \t\t}\r\n\r\n \t\t// @section Other Events\r\n \t\t// @event zoomanim: ZoomAnimEvent\r\n \t\t// Fired at least once per zoom animation. For continuous zoom, like pinch zooming, fired once per frame during zoom.\r\n \t\tthis.fire('zoomanim', {\r\n \t\t\tcenter: center,\r\n \t\t\tzoom: zoom,\r\n \t\t\tnoUpdate: noUpdate\r\n \t\t});\r\n\r\n \t\tif (!this._tempFireZoomEvent) {\r\n \t\t\tthis._tempFireZoomEvent = this._zoom !== this._animateToZoom;\r\n \t\t}\r\n\r\n \t\tthis._move(this._animateToCenter, this._animateToZoom, undefined, true);\r\n\r\n \t\t// Work around webkit not firing 'transitionend', see https://github.com/Leaflet/Leaflet/issues/3689, 2693\r\n \t\tsetTimeout(bind(this._onZoomTransitionEnd, this), 250);\r\n \t},\r\n\r\n \t_onZoomTransitionEnd: function () {\r\n \t\tif (!this._animatingZoom) { return; }\r\n\r\n \t\tif (this._mapPane) {\r\n \t\t\tremoveClass(this._mapPane, 'leaflet-zoom-anim');\r\n \t\t}\r\n\r\n \t\tthis._animatingZoom = false;\r\n\r\n \t\tthis._move(this._animateToCenter, this._animateToZoom, undefined, true);\r\n\r\n \t\tif (this._tempFireZoomEvent) {\r\n \t\t\tthis.fire('zoom');\r\n \t\t}\r\n \t\tdelete this._tempFireZoomEvent;\r\n\r\n \t\tthis.fire('move');\r\n\r\n \t\tthis._moveEnd(true);\r\n \t}\r\n });\r\n\r\n // @section\r\n\r\n // @factory L.map(id: String, options?: Map options)\r\n // Instantiates a map object given the DOM ID of a `
` element\r\n // and optionally an object literal with `Map options`.\r\n //\r\n // @alternative\r\n // @factory L.map(el: HTMLElement, options?: Map options)\r\n // Instantiates a map object given an instance of a `
` HTML element\r\n // and optionally an object literal with `Map options`.\r\n function createMap(id, options) {\r\n \treturn new Map(id, options);\r\n }\n\n /*\r\n * @class Control\r\n * @aka L.Control\r\n * @inherits Class\r\n *\r\n * L.Control is a base class for implementing map controls. Handles positioning.\r\n * All other controls extend from this class.\r\n */\r\n\r\n var Control = Class.extend({\r\n \t// @section\r\n \t// @aka Control Options\r\n \toptions: {\r\n \t\t// @option position: String = 'topright'\r\n \t\t// The position of the control (one of the map corners). Possible values are `'topleft'`,\r\n \t\t// `'topright'`, `'bottomleft'` or `'bottomright'`\r\n \t\tposition: 'topright'\r\n \t},\r\n\r\n \tinitialize: function (options) {\r\n \t\tsetOptions(this, options);\r\n \t},\r\n\r\n \t/* @section\r\n \t * Classes extending L.Control will inherit the following methods:\r\n \t *\r\n \t * @method getPosition: string\r\n \t * Returns the position of the control.\r\n \t */\r\n \tgetPosition: function () {\r\n \t\treturn this.options.position;\r\n \t},\r\n\r\n \t// @method setPosition(position: string): this\r\n \t// Sets the position of the control.\r\n \tsetPosition: function (position) {\r\n \t\tvar map = this._map;\r\n\r\n \t\tif (map) {\r\n \t\t\tmap.removeControl(this);\r\n \t\t}\r\n\r\n \t\tthis.options.position = position;\r\n\r\n \t\tif (map) {\r\n \t\t\tmap.addControl(this);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getContainer: HTMLElement\r\n \t// Returns the HTMLElement that contains the control.\r\n \tgetContainer: function () {\r\n \t\treturn this._container;\r\n \t},\r\n\r\n \t// @method addTo(map: Map): this\r\n \t// Adds the control to the given map.\r\n \taddTo: function (map) {\r\n \t\tthis.remove();\r\n \t\tthis._map = map;\r\n\r\n \t\tvar container = this._container = this.onAdd(map),\r\n \t\t pos = this.getPosition(),\r\n \t\t corner = map._controlCorners[pos];\r\n\r\n \t\taddClass(container, 'leaflet-control');\r\n\r\n \t\tif (pos.indexOf('bottom') !== -1) {\r\n \t\t\tcorner.insertBefore(container, corner.firstChild);\r\n \t\t} else {\r\n \t\t\tcorner.appendChild(container);\r\n \t\t}\r\n\r\n \t\tthis._map.on('unload', this.remove, this);\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method remove: this\r\n \t// Removes the control from the map it is currently active on.\r\n \tremove: function () {\r\n \t\tif (!this._map) {\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\tremove(this._container);\r\n\r\n \t\tif (this.onRemove) {\r\n \t\t\tthis.onRemove(this._map);\r\n \t\t}\r\n\r\n \t\tthis._map.off('unload', this.remove, this);\r\n \t\tthis._map = null;\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_refocusOnMap: function (e) {\r\n \t\t// if map exists and event is not a keyboard event\r\n \t\tif (this._map && e && e.screenX > 0 && e.screenY > 0) {\r\n \t\t\tthis._map.getContainer().focus();\r\n \t\t}\r\n \t}\r\n });\r\n\r\n var control = function (options) {\r\n \treturn new Control(options);\r\n };\r\n\r\n /* @section Extension methods\r\n * @uninheritable\r\n *\r\n * Every control should extend from `L.Control` and (re-)implement the following methods.\r\n *\r\n * @method onAdd(map: Map): HTMLElement\r\n * Should return the container DOM element for the control and add listeners on relevant map events. Called on [`control.addTo(map)`](#control-addTo).\r\n *\r\n * @method onRemove(map: Map)\r\n * Optional method. Should contain all clean up code that removes the listeners previously added in [`onAdd`](#control-onadd). Called on [`control.remove()`](#control-remove).\r\n */\r\n\r\n /* @namespace Map\r\n * @section Methods for Layers and Controls\r\n */\r\n Map.include({\r\n \t// @method addControl(control: Control): this\r\n \t// Adds the given control to the map\r\n \taddControl: function (control) {\r\n \t\tcontrol.addTo(this);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeControl(control: Control): this\r\n \t// Removes the given control from the map\r\n \tremoveControl: function (control) {\r\n \t\tcontrol.remove();\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_initControlPos: function () {\r\n \t\tvar corners = this._controlCorners = {},\r\n \t\t l = 'leaflet-',\r\n \t\t container = this._controlContainer =\r\n \t\t create$1('div', l + 'control-container', this._container);\r\n\r\n \t\tfunction createCorner(vSide, hSide) {\r\n \t\t\tvar className = l + vSide + ' ' + l + hSide;\r\n\r\n \t\t\tcorners[vSide + hSide] = create$1('div', className, container);\r\n \t\t}\r\n\r\n \t\tcreateCorner('top', 'left');\r\n \t\tcreateCorner('top', 'right');\r\n \t\tcreateCorner('bottom', 'left');\r\n \t\tcreateCorner('bottom', 'right');\r\n \t},\r\n\r\n \t_clearControlPos: function () {\r\n \t\tfor (var i in this._controlCorners) {\r\n \t\t\tremove(this._controlCorners[i]);\r\n \t\t}\r\n \t\tremove(this._controlContainer);\r\n \t\tdelete this._controlCorners;\r\n \t\tdelete this._controlContainer;\r\n \t}\r\n });\n\n /*\r\n * @class Control.Layers\r\n * @aka L.Control.Layers\r\n * @inherits Control\r\n *\r\n * The layers control gives users the ability to switch between different base layers and switch overlays on/off (check out the [detailed example](https://leafletjs.com/examples/layers-control/)). Extends `Control`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var baseLayers = {\r\n * \t\"Mapbox\": mapbox,\r\n * \t\"OpenStreetMap\": osm\r\n * };\r\n *\r\n * var overlays = {\r\n * \t\"Marker\": marker,\r\n * \t\"Roads\": roadsLayer\r\n * };\r\n *\r\n * L.control.layers(baseLayers, overlays).addTo(map);\r\n * ```\r\n *\r\n * The `baseLayers` and `overlays` parameters are object literals with layer names as keys and `Layer` objects as values:\r\n *\r\n * ```js\r\n * {\r\n * \"\": layer1,\r\n * \"\": layer2\r\n * }\r\n * ```\r\n *\r\n * The layer names can contain HTML, which allows you to add additional styling to the items:\r\n *\r\n * ```js\r\n * {\" My Layer\": myLayer}\r\n * ```\r\n */\r\n\r\n var Layers = Control.extend({\r\n \t// @section\r\n \t// @aka Control.Layers options\r\n \toptions: {\r\n \t\t// @option collapsed: Boolean = true\r\n \t\t// If `true`, the control will be collapsed into an icon and expanded on mouse hover, touch, or keyboard activation.\r\n \t\tcollapsed: true,\r\n \t\tposition: 'topright',\r\n\r\n \t\t// @option autoZIndex: Boolean = true\r\n \t\t// If `true`, the control will assign zIndexes in increasing order to all of its layers so that the order is preserved when switching them on/off.\r\n \t\tautoZIndex: true,\r\n\r\n \t\t// @option hideSingleBase: Boolean = false\r\n \t\t// If `true`, the base layers in the control will be hidden when there is only one.\r\n \t\thideSingleBase: false,\r\n\r\n \t\t// @option sortLayers: Boolean = false\r\n \t\t// Whether to sort the layers. When `false`, layers will keep the order\r\n \t\t// in which they were added to the control.\r\n \t\tsortLayers: false,\r\n\r\n \t\t// @option sortFunction: Function = *\r\n \t\t// A [compare function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)\r\n \t\t// that will be used for sorting the layers, when `sortLayers` is `true`.\r\n \t\t// The function receives both the `L.Layer` instances and their names, as in\r\n \t\t// `sortFunction(layerA, layerB, nameA, nameB)`.\r\n \t\t// By default, it sorts layers alphabetically by their name.\r\n \t\tsortFunction: function (layerA, layerB, nameA, nameB) {\r\n \t\t\treturn nameA < nameB ? -1 : (nameB < nameA ? 1 : 0);\r\n \t\t}\r\n \t},\r\n\r\n \tinitialize: function (baseLayers, overlays, options) {\r\n \t\tsetOptions(this, options);\r\n\r\n \t\tthis._layerControlInputs = [];\r\n \t\tthis._layers = [];\r\n \t\tthis._lastZIndex = 0;\r\n \t\tthis._handlingClick = false;\r\n\r\n \t\tfor (var i in baseLayers) {\r\n \t\t\tthis._addLayer(baseLayers[i], i);\r\n \t\t}\r\n\r\n \t\tfor (i in overlays) {\r\n \t\t\tthis._addLayer(overlays[i], i, true);\r\n \t\t}\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n \t\tthis._initLayout();\r\n \t\tthis._update();\r\n\r\n \t\tthis._map = map;\r\n \t\tmap.on('zoomend', this._checkDisabledLayers, this);\r\n\r\n \t\tfor (var i = 0; i < this._layers.length; i++) {\r\n \t\t\tthis._layers[i].layer.on('add remove', this._onLayerChange, this);\r\n \t\t}\r\n\r\n \t\treturn this._container;\r\n \t},\r\n\r\n \taddTo: function (map) {\r\n \t\tControl.prototype.addTo.call(this, map);\r\n \t\t// Trigger expand after Layers Control has been inserted into DOM so that is now has an actual height.\r\n \t\treturn this._expandIfNotCollapsed();\r\n \t},\r\n\r\n \tonRemove: function () {\r\n \t\tthis._map.off('zoomend', this._checkDisabledLayers, this);\r\n\r\n \t\tfor (var i = 0; i < this._layers.length; i++) {\r\n \t\t\tthis._layers[i].layer.off('add remove', this._onLayerChange, this);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method addBaseLayer(layer: Layer, name: String): this\r\n \t// Adds a base layer (radio button entry) with the given name to the control.\r\n \taddBaseLayer: function (layer, name) {\r\n \t\tthis._addLayer(layer, name);\r\n \t\treturn (this._map) ? this._update() : this;\r\n \t},\r\n\r\n \t// @method addOverlay(layer: Layer, name: String): this\r\n \t// Adds an overlay (checkbox entry) with the given name to the control.\r\n \taddOverlay: function (layer, name) {\r\n \t\tthis._addLayer(layer, name, true);\r\n \t\treturn (this._map) ? this._update() : this;\r\n \t},\r\n\r\n \t// @method removeLayer(layer: Layer): this\r\n \t// Remove the given layer from the control.\r\n \tremoveLayer: function (layer) {\r\n \t\tlayer.off('add remove', this._onLayerChange, this);\r\n\r\n \t\tvar obj = this._getLayer(stamp(layer));\r\n \t\tif (obj) {\r\n \t\t\tthis._layers.splice(this._layers.indexOf(obj), 1);\r\n \t\t}\r\n \t\treturn (this._map) ? this._update() : this;\r\n \t},\r\n\r\n \t// @method expand(): this\r\n \t// Expand the control container if collapsed.\r\n \texpand: function () {\r\n \t\taddClass(this._container, 'leaflet-control-layers-expanded');\r\n \t\tthis._section.style.height = null;\r\n \t\tvar acceptableHeight = this._map.getSize().y - (this._container.offsetTop + 50);\r\n \t\tif (acceptableHeight < this._section.clientHeight) {\r\n \t\t\taddClass(this._section, 'leaflet-control-layers-scrollbar');\r\n \t\t\tthis._section.style.height = acceptableHeight + 'px';\r\n \t\t} else {\r\n \t\t\tremoveClass(this._section, 'leaflet-control-layers-scrollbar');\r\n \t\t}\r\n \t\tthis._checkDisabledLayers();\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method collapse(): this\r\n \t// Collapse the control container if expanded.\r\n \tcollapse: function () {\r\n \t\tremoveClass(this._container, 'leaflet-control-layers-expanded');\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_initLayout: function () {\r\n \t\tvar className = 'leaflet-control-layers',\r\n \t\t container = this._container = create$1('div', className),\r\n \t\t collapsed = this.options.collapsed;\r\n\r\n \t\t// makes this work on IE touch devices by stopping it from firing a mouseout event when the touch is released\r\n \t\tcontainer.setAttribute('aria-haspopup', true);\r\n\r\n \t\tdisableClickPropagation(container);\r\n \t\tdisableScrollPropagation(container);\r\n\r\n \t\tvar section = this._section = create$1('section', className + '-list');\r\n\r\n \t\tif (collapsed) {\r\n \t\t\tthis._map.on('click', this.collapse, this);\r\n\r\n \t\t\ton(container, {\r\n \t\t\t\tmouseenter: function () {\r\n \t\t\t\t\ton(section, 'click', preventDefault);\r\n \t\t\t\t\tthis.expand();\r\n \t\t\t\t\tsetTimeout(function () {\r\n \t\t\t\t\t\toff(section, 'click', preventDefault);\r\n \t\t\t\t\t});\r\n \t\t\t\t},\r\n \t\t\t\tmouseleave: this.collapse\r\n \t\t\t}, this);\r\n \t\t}\r\n\r\n \t\tvar link = this._layersLink = create$1('a', className + '-toggle', container);\r\n \t\tlink.href = '#';\r\n \t\tlink.title = 'Layers';\r\n \t\tlink.setAttribute('role', 'button');\r\n\r\n \t\ton(link, 'click', preventDefault); // prevent link function\r\n \t\ton(link, 'focus', this.expand, this);\r\n\r\n \t\tif (!collapsed) {\r\n \t\t\tthis.expand();\r\n \t\t}\r\n\r\n \t\tthis._baseLayersList = create$1('div', className + '-base', section);\r\n \t\tthis._separator = create$1('div', className + '-separator', section);\r\n \t\tthis._overlaysList = create$1('div', className + '-overlays', section);\r\n\r\n \t\tcontainer.appendChild(section);\r\n \t},\r\n\r\n \t_getLayer: function (id) {\r\n \t\tfor (var i = 0; i < this._layers.length; i++) {\r\n\r\n \t\t\tif (this._layers[i] && stamp(this._layers[i].layer) === id) {\r\n \t\t\t\treturn this._layers[i];\r\n \t\t\t}\r\n \t\t}\r\n \t},\r\n\r\n \t_addLayer: function (layer, name, overlay) {\r\n \t\tif (this._map) {\r\n \t\t\tlayer.on('add remove', this._onLayerChange, this);\r\n \t\t}\r\n\r\n \t\tthis._layers.push({\r\n \t\t\tlayer: layer,\r\n \t\t\tname: name,\r\n \t\t\toverlay: overlay\r\n \t\t});\r\n\r\n \t\tif (this.options.sortLayers) {\r\n \t\t\tthis._layers.sort(bind(function (a, b) {\r\n \t\t\t\treturn this.options.sortFunction(a.layer, b.layer, a.name, b.name);\r\n \t\t\t}, this));\r\n \t\t}\r\n\r\n \t\tif (this.options.autoZIndex && layer.setZIndex) {\r\n \t\t\tthis._lastZIndex++;\r\n \t\t\tlayer.setZIndex(this._lastZIndex);\r\n \t\t}\r\n\r\n \t\tthis._expandIfNotCollapsed();\r\n \t},\r\n\r\n \t_update: function () {\r\n \t\tif (!this._container) { return this; }\r\n\r\n \t\tempty(this._baseLayersList);\r\n \t\tempty(this._overlaysList);\r\n\r\n \t\tthis._layerControlInputs = [];\r\n \t\tvar baseLayersPresent, overlaysPresent, i, obj, baseLayersCount = 0;\r\n\r\n \t\tfor (i = 0; i < this._layers.length; i++) {\r\n \t\t\tobj = this._layers[i];\r\n \t\t\tthis._addItem(obj);\r\n \t\t\toverlaysPresent = overlaysPresent || obj.overlay;\r\n \t\t\tbaseLayersPresent = baseLayersPresent || !obj.overlay;\r\n \t\t\tbaseLayersCount += !obj.overlay ? 1 : 0;\r\n \t\t}\r\n\r\n \t\t// Hide base layers section if there's only one layer.\r\n \t\tif (this.options.hideSingleBase) {\r\n \t\t\tbaseLayersPresent = baseLayersPresent && baseLayersCount > 1;\r\n \t\t\tthis._baseLayersList.style.display = baseLayersPresent ? '' : 'none';\r\n \t\t}\r\n\r\n \t\tthis._separator.style.display = overlaysPresent && baseLayersPresent ? '' : 'none';\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_onLayerChange: function (e) {\r\n \t\tif (!this._handlingClick) {\r\n \t\t\tthis._update();\r\n \t\t}\r\n\r\n \t\tvar obj = this._getLayer(stamp(e.target));\r\n\r\n \t\t// @namespace Map\r\n \t\t// @section Layer events\r\n \t\t// @event baselayerchange: LayersControlEvent\r\n \t\t// Fired when the base layer is changed through the [layers control](#control-layers).\r\n \t\t// @event overlayadd: LayersControlEvent\r\n \t\t// Fired when an overlay is selected through the [layers control](#control-layers).\r\n \t\t// @event overlayremove: LayersControlEvent\r\n \t\t// Fired when an overlay is deselected through the [layers control](#control-layers).\r\n \t\t// @namespace Control.Layers\r\n \t\tvar type = obj.overlay ?\r\n \t\t\t(e.type === 'add' ? 'overlayadd' : 'overlayremove') :\r\n \t\t\t(e.type === 'add' ? 'baselayerchange' : null);\r\n\r\n \t\tif (type) {\r\n \t\t\tthis._map.fire(type, obj);\r\n \t\t}\r\n \t},\r\n\r\n \t// IE7 bugs out if you create a radio dynamically, so you have to do it this hacky way (see https://stackoverflow.com/a/119079)\r\n \t_createRadioElement: function (name, checked) {\r\n\r\n \t\tvar radioHtml = '';\r\n\r\n \t\tvar radioFragment = document.createElement('div');\r\n \t\tradioFragment.innerHTML = radioHtml;\r\n\r\n \t\treturn radioFragment.firstChild;\r\n \t},\r\n\r\n \t_addItem: function (obj) {\r\n \t\tvar label = document.createElement('label'),\r\n \t\t checked = this._map.hasLayer(obj.layer),\r\n \t\t input;\r\n\r\n \t\tif (obj.overlay) {\r\n \t\t\tinput = document.createElement('input');\r\n \t\t\tinput.type = 'checkbox';\r\n \t\t\tinput.className = 'leaflet-control-layers-selector';\r\n \t\t\tinput.defaultChecked = checked;\r\n \t\t} else {\r\n \t\t\tinput = this._createRadioElement('leaflet-base-layers_' + stamp(this), checked);\r\n \t\t}\r\n\r\n \t\tthis._layerControlInputs.push(input);\r\n \t\tinput.layerId = stamp(obj.layer);\r\n\r\n \t\ton(input, 'click', this._onInputClick, this);\r\n\r\n \t\tvar name = document.createElement('span');\r\n \t\tname.innerHTML = ' ' + obj.name;\r\n\r\n \t\t// Helps from preventing layer control flicker when checkboxes are disabled\r\n \t\t// https://github.com/Leaflet/Leaflet/issues/2771\r\n \t\tvar holder = document.createElement('span');\r\n\r\n \t\tlabel.appendChild(holder);\r\n \t\tholder.appendChild(input);\r\n \t\tholder.appendChild(name);\r\n\r\n \t\tvar container = obj.overlay ? this._overlaysList : this._baseLayersList;\r\n \t\tcontainer.appendChild(label);\r\n\r\n \t\tthis._checkDisabledLayers();\r\n \t\treturn label;\r\n \t},\r\n\r\n \t_onInputClick: function () {\r\n \t\tvar inputs = this._layerControlInputs,\r\n \t\t input, layer;\r\n \t\tvar addedLayers = [],\r\n \t\t removedLayers = [];\r\n\r\n \t\tthis._handlingClick = true;\r\n\r\n \t\tfor (var i = inputs.length - 1; i >= 0; i--) {\r\n \t\t\tinput = inputs[i];\r\n \t\t\tlayer = this._getLayer(input.layerId).layer;\r\n\r\n \t\t\tif (input.checked) {\r\n \t\t\t\taddedLayers.push(layer);\r\n \t\t\t} else if (!input.checked) {\r\n \t\t\t\tremovedLayers.push(layer);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// Bugfix issue 2318: Should remove all old layers before readding new ones\r\n \t\tfor (i = 0; i < removedLayers.length; i++) {\r\n \t\t\tif (this._map.hasLayer(removedLayers[i])) {\r\n \t\t\t\tthis._map.removeLayer(removedLayers[i]);\r\n \t\t\t}\r\n \t\t}\r\n \t\tfor (i = 0; i < addedLayers.length; i++) {\r\n \t\t\tif (!this._map.hasLayer(addedLayers[i])) {\r\n \t\t\t\tthis._map.addLayer(addedLayers[i]);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tthis._handlingClick = false;\r\n\r\n \t\tthis._refocusOnMap();\r\n \t},\r\n\r\n \t_checkDisabledLayers: function () {\r\n \t\tvar inputs = this._layerControlInputs,\r\n \t\t input,\r\n \t\t layer,\r\n \t\t zoom = this._map.getZoom();\r\n\r\n \t\tfor (var i = inputs.length - 1; i >= 0; i--) {\r\n \t\t\tinput = inputs[i];\r\n \t\t\tlayer = this._getLayer(input.layerId).layer;\r\n \t\t\tinput.disabled = (layer.options.minZoom !== undefined && zoom < layer.options.minZoom) ||\r\n \t\t\t (layer.options.maxZoom !== undefined && zoom > layer.options.maxZoom);\r\n\r\n \t\t}\r\n \t},\r\n\r\n \t_expandIfNotCollapsed: function () {\r\n \t\tif (this._map && !this.options.collapsed) {\r\n \t\t\tthis.expand();\r\n \t\t}\r\n \t\treturn this;\r\n \t}\r\n\r\n });\r\n\r\n\r\n // @factory L.control.layers(baselayers?: Object, overlays?: Object, options?: Control.Layers options)\r\n // Creates a layers control with the given layers. Base layers will be switched with radio buttons, while overlays will be switched with checkboxes. Note that all base layers should be passed in the base layers object, but only one should be added to the map during map instantiation.\r\n var layers = function (baseLayers, overlays, options) {\r\n \treturn new Layers(baseLayers, overlays, options);\r\n };\n\n /*\r\n * @class Control.Zoom\r\n * @aka L.Control.Zoom\r\n * @inherits Control\r\n *\r\n * A basic zoom control with two buttons (zoom in and zoom out). It is put on the map by default unless you set its [`zoomControl` option](#map-zoomcontrol) to `false`. Extends `Control`.\r\n */\r\n\r\n var Zoom = Control.extend({\r\n \t// @section\r\n \t// @aka Control.Zoom options\r\n \toptions: {\r\n \t\tposition: 'topleft',\r\n\r\n \t\t// @option zoomInText: String = '+'\r\n \t\t// The text set on the 'zoom in' button.\r\n \t\tzoomInText: '+',\r\n\r\n \t\t// @option zoomInTitle: String = 'Zoom in'\r\n \t\t// The title set on the 'zoom in' button.\r\n \t\tzoomInTitle: 'Zoom in',\r\n\r\n \t\t// @option zoomOutText: String = ''\r\n \t\t// The text set on the 'zoom out' button.\r\n \t\tzoomOutText: '',\r\n\r\n \t\t// @option zoomOutTitle: String = 'Zoom out'\r\n \t\t// The title set on the 'zoom out' button.\r\n \t\tzoomOutTitle: 'Zoom out'\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n \t\tvar zoomName = 'leaflet-control-zoom',\r\n \t\t container = create$1('div', zoomName + ' leaflet-bar'),\r\n \t\t options = this.options;\r\n\r\n \t\tthis._zoomInButton = this._createButton(options.zoomInText, options.zoomInTitle,\r\n \t\t zoomName + '-in', container, this._zoomIn);\r\n \t\tthis._zoomOutButton = this._createButton(options.zoomOutText, options.zoomOutTitle,\r\n \t\t zoomName + '-out', container, this._zoomOut);\r\n\r\n \t\tthis._updateDisabled();\r\n \t\tmap.on('zoomend zoomlevelschange', this._updateDisabled, this);\r\n\r\n \t\treturn container;\r\n \t},\r\n\r\n \tonRemove: function (map) {\r\n \t\tmap.off('zoomend zoomlevelschange', this._updateDisabled, this);\r\n \t},\r\n\r\n \tdisable: function () {\r\n \t\tthis._disabled = true;\r\n \t\tthis._updateDisabled();\r\n \t\treturn this;\r\n \t},\r\n\r\n \tenable: function () {\r\n \t\tthis._disabled = false;\r\n \t\tthis._updateDisabled();\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_zoomIn: function (e) {\r\n \t\tif (!this._disabled && this._map._zoom < this._map.getMaxZoom()) {\r\n \t\t\tthis._map.zoomIn(this._map.options.zoomDelta * (e.shiftKey ? 3 : 1));\r\n \t\t}\r\n \t},\r\n\r\n \t_zoomOut: function (e) {\r\n \t\tif (!this._disabled && this._map._zoom > this._map.getMinZoom()) {\r\n \t\t\tthis._map.zoomOut(this._map.options.zoomDelta * (e.shiftKey ? 3 : 1));\r\n \t\t}\r\n \t},\r\n\r\n \t_createButton: function (html, title, className, container, fn) {\r\n \t\tvar link = create$1('a', className, container);\r\n \t\tlink.innerHTML = html;\r\n \t\tlink.href = '#';\r\n \t\tlink.title = title;\r\n\r\n \t\t/*\r\n \t\t * Will force screen readers like VoiceOver to read this as \"Zoom in - button\"\r\n \t\t */\r\n \t\tlink.setAttribute('role', 'button');\r\n \t\tlink.setAttribute('aria-label', title);\r\n\r\n \t\tdisableClickPropagation(link);\r\n \t\ton(link, 'click', stop);\r\n \t\ton(link, 'click', fn, this);\r\n \t\ton(link, 'click', this._refocusOnMap, this);\r\n\r\n \t\treturn link;\r\n \t},\r\n\r\n \t_updateDisabled: function () {\r\n \t\tvar map = this._map,\r\n \t\t className = 'leaflet-disabled';\r\n\r\n \t\tremoveClass(this._zoomInButton, className);\r\n \t\tremoveClass(this._zoomOutButton, className);\r\n \t\tthis._zoomInButton.setAttribute('aria-disabled', 'false');\r\n \t\tthis._zoomOutButton.setAttribute('aria-disabled', 'false');\r\n\r\n \t\tif (this._disabled || map._zoom === map.getMinZoom()) {\r\n \t\t\taddClass(this._zoomOutButton, className);\r\n \t\t\tthis._zoomOutButton.setAttribute('aria-disabled', 'true');\r\n \t\t}\r\n \t\tif (this._disabled || map._zoom === map.getMaxZoom()) {\r\n \t\t\taddClass(this._zoomInButton, className);\r\n \t\t\tthis._zoomInButton.setAttribute('aria-disabled', 'true');\r\n \t\t}\r\n \t}\r\n });\r\n\r\n // @namespace Map\r\n // @section Control options\r\n // @option zoomControl: Boolean = true\r\n // Whether a [zoom control](#control-zoom) is added to the map by default.\r\n Map.mergeOptions({\r\n \tzoomControl: true\r\n });\r\n\r\n Map.addInitHook(function () {\r\n \tif (this.options.zoomControl) {\r\n \t\t// @section Controls\r\n \t\t// @property zoomControl: Control.Zoom\r\n \t\t// The default zoom control (only available if the\r\n \t\t// [`zoomControl` option](#map-zoomcontrol) was `true` when creating the map).\r\n \t\tthis.zoomControl = new Zoom();\r\n \t\tthis.addControl(this.zoomControl);\r\n \t}\r\n });\r\n\r\n // @namespace Control.Zoom\r\n // @factory L.control.zoom(options: Control.Zoom options)\r\n // Creates a zoom control\r\n var zoom = function (options) {\r\n \treturn new Zoom(options);\r\n };\n\n /*\n * @class Control.Scale\n * @aka L.Control.Scale\n * @inherits Control\n *\n * A simple scale control that shows the scale of the current center of screen in metric (m/km) and imperial (mi/ft) systems. Extends `Control`.\n *\n * @example\n *\n * ```js\n * L.control.scale().addTo(map);\n * ```\n */\n\n var Scale = Control.extend({\n \t// @section\n \t// @aka Control.Scale options\n \toptions: {\n \t\tposition: 'bottomleft',\n\n \t\t// @option maxWidth: Number = 100\n \t\t// Maximum width of the control in pixels. The width is set dynamically to show round values (e.g. 100, 200, 500).\n \t\tmaxWidth: 100,\n\n \t\t// @option metric: Boolean = True\n \t\t// Whether to show the metric scale line (m/km).\n \t\tmetric: true,\n\n \t\t// @option imperial: Boolean = True\n \t\t// Whether to show the imperial scale line (mi/ft).\n \t\timperial: true\n\n \t\t// @option updateWhenIdle: Boolean = false\n \t\t// If `true`, the control is updated on [`moveend`](#map-moveend), otherwise it's always up-to-date (updated on [`move`](#map-move)).\n \t},\n\n \tonAdd: function (map) {\n \t\tvar className = 'leaflet-control-scale',\n \t\t container = create$1('div', className),\n \t\t options = this.options;\n\n \t\tthis._addScales(options, className + '-line', container);\n\n \t\tmap.on(options.updateWhenIdle ? 'moveend' : 'move', this._update, this);\n \t\tmap.whenReady(this._update, this);\n\n \t\treturn container;\n \t},\n\n \tonRemove: function (map) {\n \t\tmap.off(this.options.updateWhenIdle ? 'moveend' : 'move', this._update, this);\n \t},\n\n \t_addScales: function (options, className, container) {\n \t\tif (options.metric) {\n \t\t\tthis._mScale = create$1('div', className, container);\n \t\t}\n \t\tif (options.imperial) {\n \t\t\tthis._iScale = create$1('div', className, container);\n \t\t}\n \t},\n\n \t_update: function () {\n \t\tvar map = this._map,\n \t\t y = map.getSize().y / 2;\n\n \t\tvar maxMeters = map.distance(\n \t\t\tmap.containerPointToLatLng([0, y]),\n \t\t\tmap.containerPointToLatLng([this.options.maxWidth, y]));\n\n \t\tthis._updateScales(maxMeters);\n \t},\n\n \t_updateScales: function (maxMeters) {\n \t\tif (this.options.metric && maxMeters) {\n \t\t\tthis._updateMetric(maxMeters);\n \t\t}\n \t\tif (this.options.imperial && maxMeters) {\n \t\t\tthis._updateImperial(maxMeters);\n \t\t}\n \t},\n\n \t_updateMetric: function (maxMeters) {\n \t\tvar meters = this._getRoundNum(maxMeters),\n \t\t label = meters < 1000 ? meters + ' m' : (meters / 1000) + ' km';\n\n \t\tthis._updateScale(this._mScale, label, meters / maxMeters);\n \t},\n\n \t_updateImperial: function (maxMeters) {\n \t\tvar maxFeet = maxMeters * 3.2808399,\n \t\t maxMiles, miles, feet;\n\n \t\tif (maxFeet > 5280) {\n \t\t\tmaxMiles = maxFeet / 5280;\n \t\t\tmiles = this._getRoundNum(maxMiles);\n \t\t\tthis._updateScale(this._iScale, miles + ' mi', miles / maxMiles);\n\n \t\t} else {\n \t\t\tfeet = this._getRoundNum(maxFeet);\n \t\t\tthis._updateScale(this._iScale, feet + ' ft', feet / maxFeet);\n \t\t}\n \t},\n\n \t_updateScale: function (scale, text, ratio) {\n \t\tscale.style.width = Math.round(this.options.maxWidth * ratio) + 'px';\n \t\tscale.innerHTML = text;\n \t},\n\n \t_getRoundNum: function (num) {\n \t\tvar pow10 = Math.pow(10, (Math.floor(num) + '').length - 1),\n \t\t d = num / pow10;\n\n \t\td = d >= 10 ? 10 :\n \t\t d >= 5 ? 5 :\n \t\t d >= 3 ? 3 :\n \t\t d >= 2 ? 2 : 1;\n\n \t\treturn pow10 * d;\n \t}\n });\n\n\n // @factory L.control.scale(options?: Control.Scale options)\n // Creates an scale control with the given options.\n var scale = function (options) {\n \treturn new Scale(options);\n };\n\n var ukrainianFlag = '';\r\n\r\n\r\n /*\r\n * @class Control.Attribution\r\n * @aka L.Control.Attribution\r\n * @inherits Control\r\n *\r\n * The attribution control allows you to display attribution data in a small text box on a map. It is put on the map by default unless you set its [`attributionControl` option](#map-attributioncontrol) to `false`, and it fetches attribution texts from layers with the [`getAttribution` method](#layer-getattribution) automatically. Extends Control.\r\n */\r\n\r\n var Attribution = Control.extend({\r\n \t// @section\r\n \t// @aka Control.Attribution options\r\n \toptions: {\r\n \t\tposition: 'bottomright',\r\n\r\n \t\t// @option prefix: String|false = 'Leaflet'\r\n \t\t// The HTML text shown before the attributions. Pass `false` to disable.\r\n \t\tprefix: '' + (Browser.inlineSvg ? ukrainianFlag + ' ' : '') + 'Leaflet'\r\n \t},\r\n\r\n \tinitialize: function (options) {\r\n \t\tsetOptions(this, options);\r\n\r\n \t\tthis._attributions = {};\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n \t\tmap.attributionControl = this;\r\n \t\tthis._container = create$1('div', 'leaflet-control-attribution');\r\n \t\tdisableClickPropagation(this._container);\r\n\r\n \t\t// TODO ugly, refactor\r\n \t\tfor (var i in map._layers) {\r\n \t\t\tif (map._layers[i].getAttribution) {\r\n \t\t\t\tthis.addAttribution(map._layers[i].getAttribution());\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tthis._update();\r\n\r\n \t\tmap.on('layeradd', this._addAttribution, this);\r\n\r\n \t\treturn this._container;\r\n \t},\r\n\r\n \tonRemove: function (map) {\r\n \t\tmap.off('layeradd', this._addAttribution, this);\r\n \t},\r\n\r\n \t_addAttribution: function (ev) {\r\n \t\tif (ev.layer.getAttribution) {\r\n \t\t\tthis.addAttribution(ev.layer.getAttribution());\r\n \t\t\tev.layer.once('remove', function () {\r\n \t\t\t\tthis.removeAttribution(ev.layer.getAttribution());\r\n \t\t\t}, this);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method setPrefix(prefix: String|false): this\r\n \t// The HTML text shown before the attributions. Pass `false` to disable.\r\n \tsetPrefix: function (prefix) {\r\n \t\tthis.options.prefix = prefix;\r\n \t\tthis._update();\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method addAttribution(text: String): this\r\n \t// Adds an attribution text (e.g. `'Vector data © Mapbox'`).\r\n \taddAttribution: function (text) {\r\n \t\tif (!text) { return this; }\r\n\r\n \t\tif (!this._attributions[text]) {\r\n \t\t\tthis._attributions[text] = 0;\r\n \t\t}\r\n \t\tthis._attributions[text]++;\r\n\r\n \t\tthis._update();\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeAttribution(text: String): this\r\n \t// Removes an attribution text.\r\n \tremoveAttribution: function (text) {\r\n \t\tif (!text) { return this; }\r\n\r\n \t\tif (this._attributions[text]) {\r\n \t\t\tthis._attributions[text]--;\r\n \t\t\tthis._update();\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_update: function () {\r\n \t\tif (!this._map) { return; }\r\n\r\n \t\tvar attribs = [];\r\n\r\n \t\tfor (var i in this._attributions) {\r\n \t\t\tif (this._attributions[i]) {\r\n \t\t\t\tattribs.push(i);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tvar prefixAndAttribs = [];\r\n\r\n \t\tif (this.options.prefix) {\r\n \t\t\tprefixAndAttribs.push(this.options.prefix);\r\n \t\t}\r\n \t\tif (attribs.length) {\r\n \t\t\tprefixAndAttribs.push(attribs.join(', '));\r\n \t\t}\r\n\r\n \t\tthis._container.innerHTML = prefixAndAttribs.join(' | ');\r\n \t}\r\n });\r\n\r\n // @namespace Map\r\n // @section Control options\r\n // @option attributionControl: Boolean = true\r\n // Whether a [attribution control](#control-attribution) is added to the map by default.\r\n Map.mergeOptions({\r\n \tattributionControl: true\r\n });\r\n\r\n Map.addInitHook(function () {\r\n \tif (this.options.attributionControl) {\r\n \t\tnew Attribution().addTo(this);\r\n \t}\r\n });\r\n\r\n // @namespace Control.Attribution\r\n // @factory L.control.attribution(options: Control.Attribution options)\r\n // Creates an attribution control.\r\n var attribution = function (options) {\r\n \treturn new Attribution(options);\r\n };\n\n Control.Layers = Layers;\n Control.Zoom = Zoom;\n Control.Scale = Scale;\n Control.Attribution = Attribution;\n\n control.layers = layers;\n control.zoom = zoom;\n control.scale = scale;\n control.attribution = attribution;\n\n /*\n \tL.Handler is a base class for handler classes that are used internally to inject\n \tinteraction features like dragging to classes like Map and Marker.\n */\n\n // @class Handler\n // @aka L.Handler\n // Abstract class for map interaction handlers\n\n var Handler = Class.extend({\n \tinitialize: function (map) {\n \t\tthis._map = map;\n \t},\n\n \t// @method enable(): this\n \t// Enables the handler\n \tenable: function () {\n \t\tif (this._enabled) { return this; }\n\n \t\tthis._enabled = true;\n \t\tthis.addHooks();\n \t\treturn this;\n \t},\n\n \t// @method disable(): this\n \t// Disables the handler\n \tdisable: function () {\n \t\tif (!this._enabled) { return this; }\n\n \t\tthis._enabled = false;\n \t\tthis.removeHooks();\n \t\treturn this;\n \t},\n\n \t// @method enabled(): Boolean\n \t// Returns `true` if the handler is enabled\n \tenabled: function () {\n \t\treturn !!this._enabled;\n \t}\n\n \t// @section Extension methods\n \t// Classes inheriting from `Handler` must implement the two following methods:\n \t// @method addHooks()\n \t// Called when the handler is enabled, should add event hooks.\n \t// @method removeHooks()\n \t// Called when the handler is disabled, should remove the event hooks added previously.\n });\n\n // @section There is static function which can be called without instantiating L.Handler:\n // @function addTo(map: Map, name: String): this\n // Adds a new Handler to the given map with the given name.\n Handler.addTo = function (map, name) {\n \tmap.addHandler(name, this);\n \treturn this;\n };\n\n var Mixin = {Events: Events};\n\n /*\r\n * @class Draggable\r\n * @aka L.Draggable\r\n * @inherits Evented\r\n *\r\n * A class for making DOM elements draggable (including touch support).\r\n * Used internally for map and marker dragging. Only works for elements\r\n * that were positioned with [`L.DomUtil.setPosition`](#domutil-setposition).\r\n *\r\n * @example\r\n * ```js\r\n * var draggable = new L.Draggable(elementToDrag);\r\n * draggable.enable();\r\n * ```\r\n */\r\n\r\n var START = Browser.touch ? 'touchstart mousedown' : 'mousedown';\r\n\r\n var Draggable = Evented.extend({\r\n\r\n \toptions: {\r\n \t\t// @section\r\n \t\t// @aka Draggable options\r\n \t\t// @option clickTolerance: Number = 3\r\n \t\t// The max number of pixels a user can shift the mouse pointer during a click\r\n \t\t// for it to be considered a valid click (as opposed to a mouse drag).\r\n \t\tclickTolerance: 3\r\n \t},\r\n\r\n \t// @constructor L.Draggable(el: HTMLElement, dragHandle?: HTMLElement, preventOutline?: Boolean, options?: Draggable options)\r\n \t// Creates a `Draggable` object for moving `el` when you start dragging the `dragHandle` element (equals `el` itself by default).\r\n \tinitialize: function (element, dragStartTarget, preventOutline, options) {\r\n \t\tsetOptions(this, options);\r\n\r\n \t\tthis._element = element;\r\n \t\tthis._dragStartTarget = dragStartTarget || element;\r\n \t\tthis._preventOutline = preventOutline;\r\n \t},\r\n\r\n \t// @method enable()\r\n \t// Enables the dragging ability\r\n \tenable: function () {\r\n \t\tif (this._enabled) { return; }\r\n\r\n \t\ton(this._dragStartTarget, START, this._onDown, this);\r\n\r\n \t\tthis._enabled = true;\r\n \t},\r\n\r\n \t// @method disable()\r\n \t// Disables the dragging ability\r\n \tdisable: function () {\r\n \t\tif (!this._enabled) { return; }\r\n\r\n \t\t// If we're currently dragging this draggable,\r\n \t\t// disabling it counts as first ending the drag.\r\n \t\tif (Draggable._dragging === this) {\r\n \t\t\tthis.finishDrag(true);\r\n \t\t}\r\n\r\n \t\toff(this._dragStartTarget, START, this._onDown, this);\r\n\r\n \t\tthis._enabled = false;\r\n \t\tthis._moved = false;\r\n \t},\r\n\r\n \t_onDown: function (e) {\r\n \t\t// Ignore the event if disabled; this happens in IE11\r\n \t\t// under some circumstances, see #3666.\r\n \t\tif (!this._enabled) { return; }\r\n\r\n \t\tthis._moved = false;\r\n\r\n \t\tif (hasClass(this._element, 'leaflet-zoom-anim')) { return; }\r\n\r\n \t\tif (e.touches && e.touches.length !== 1) {\r\n \t\t\t// Finish dragging to avoid conflict with touchZoom\r\n \t\t\tif (Draggable._dragging === this) {\r\n \t\t\t\tthis.finishDrag();\r\n \t\t\t}\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (Draggable._dragging || e.shiftKey || ((e.which !== 1) && (e.button !== 1) && !e.touches)) { return; }\r\n \t\tDraggable._dragging = this; // Prevent dragging multiple objects at once.\r\n\r\n \t\tif (this._preventOutline) {\r\n \t\t\tpreventOutline(this._element);\r\n \t\t}\r\n\r\n \t\tdisableImageDrag();\r\n \t\tdisableTextSelection();\r\n\r\n \t\tif (this._moving) { return; }\r\n\r\n \t\t// @event down: Event\r\n \t\t// Fired when a drag is about to start.\r\n \t\tthis.fire('down');\r\n\r\n \t\tvar first = e.touches ? e.touches[0] : e,\r\n \t\t sizedParent = getSizedParentNode(this._element);\r\n\r\n \t\tthis._startPoint = new Point(first.clientX, first.clientY);\r\n \t\tthis._startPos = getPosition(this._element);\r\n\r\n \t\t// Cache the scale, so that we can continuously compensate for it during drag (_onMove).\r\n \t\tthis._parentScale = getScale(sizedParent);\r\n\r\n \t\tvar mouseevent = e.type === 'mousedown';\r\n \t\ton(document, mouseevent ? 'mousemove' : 'touchmove', this._onMove, this);\r\n \t\ton(document, mouseevent ? 'mouseup' : 'touchend touchcancel', this._onUp, this);\r\n \t},\r\n\r\n \t_onMove: function (e) {\r\n \t\t// Ignore the event if disabled; this happens in IE11\r\n \t\t// under some circumstances, see #3666.\r\n \t\tif (!this._enabled) { return; }\r\n\r\n \t\tif (e.touches && e.touches.length > 1) {\r\n \t\t\tthis._moved = true;\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tvar first = (e.touches && e.touches.length === 1 ? e.touches[0] : e),\r\n \t\t offset = new Point(first.clientX, first.clientY)._subtract(this._startPoint);\r\n\r\n \t\tif (!offset.x && !offset.y) { return; }\r\n \t\tif (Math.abs(offset.x) + Math.abs(offset.y) < this.options.clickTolerance) { return; }\r\n\r\n \t\t// We assume that the parent container's position, border and scale do not change for the duration of the drag.\r\n \t\t// Therefore there is no need to account for the position and border (they are eliminated by the subtraction)\r\n \t\t// and we can use the cached value for the scale.\r\n \t\toffset.x /= this._parentScale.x;\r\n \t\toffset.y /= this._parentScale.y;\r\n\r\n \t\tpreventDefault(e);\r\n\r\n \t\tif (!this._moved) {\r\n \t\t\t// @event dragstart: Event\r\n \t\t\t// Fired when a drag starts\r\n \t\t\tthis.fire('dragstart');\r\n\r\n \t\t\tthis._moved = true;\r\n\r\n \t\t\taddClass(document.body, 'leaflet-dragging');\r\n\r\n \t\t\tthis._lastTarget = e.target || e.srcElement;\r\n \t\t\t// IE and Edge do not give the element, so fetch it\r\n \t\t\t// if necessary\r\n \t\t\tif (window.SVGElementInstance && this._lastTarget instanceof window.SVGElementInstance) {\r\n \t\t\t\tthis._lastTarget = this._lastTarget.correspondingUseElement;\r\n \t\t\t}\r\n \t\t\taddClass(this._lastTarget, 'leaflet-drag-target');\r\n \t\t}\r\n\r\n \t\tthis._newPos = this._startPos.add(offset);\r\n \t\tthis._moving = true;\r\n\r\n \t\tthis._lastEvent = e;\r\n \t\tthis._updatePosition();\r\n \t},\r\n\r\n \t_updatePosition: function () {\r\n \t\tvar e = {originalEvent: this._lastEvent};\r\n\r\n \t\t// @event predrag: Event\r\n \t\t// Fired continuously during dragging *before* each corresponding\r\n \t\t// update of the element's position.\r\n \t\tthis.fire('predrag', e);\r\n \t\tsetPosition(this._element, this._newPos);\r\n\r\n \t\t// @event drag: Event\r\n \t\t// Fired continuously during dragging.\r\n \t\tthis.fire('drag', e);\r\n \t},\r\n\r\n \t_onUp: function () {\r\n \t\t// Ignore the event if disabled; this happens in IE11\r\n \t\t// under some circumstances, see #3666.\r\n \t\tif (!this._enabled) { return; }\r\n \t\tthis.finishDrag();\r\n \t},\r\n\r\n \tfinishDrag: function (noInertia) {\r\n \t\tremoveClass(document.body, 'leaflet-dragging');\r\n\r\n \t\tif (this._lastTarget) {\r\n \t\t\tremoveClass(this._lastTarget, 'leaflet-drag-target');\r\n \t\t\tthis._lastTarget = null;\r\n \t\t}\r\n\r\n \t\toff(document, 'mousemove touchmove', this._onMove, this);\r\n \t\toff(document, 'mouseup touchend touchcancel', this._onUp, this);\r\n\r\n \t\tenableImageDrag();\r\n \t\tenableTextSelection();\r\n\r\n \t\tif (this._moved && this._moving) {\r\n\r\n \t\t\t// @event dragend: DragEndEvent\r\n \t\t\t// Fired when the drag ends.\r\n \t\t\tthis.fire('dragend', {\r\n \t\t\t\tnoInertia: noInertia,\r\n \t\t\t\tdistance: this._newPos.distanceTo(this._startPos)\r\n \t\t\t});\r\n \t\t}\r\n\r\n \t\tthis._moving = false;\r\n \t\tDraggable._dragging = false;\r\n \t}\r\n\r\n });\n\n /*\r\n * @namespace LineUtil\r\n *\r\n * Various utility functions for polyline points processing, used by Leaflet internally to make polylines lightning-fast.\r\n */\r\n\r\n // Simplify polyline with vertex reduction and Douglas-Peucker simplification.\r\n // Improves rendering performance dramatically by lessening the number of points to draw.\r\n\r\n // @function simplify(points: Point[], tolerance: Number): Point[]\r\n // Dramatically reduces the number of points in a polyline while retaining\r\n // its shape and returns a new array of simplified points, using the\r\n // [Ramer-Douglas-Peucker algorithm](https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm).\r\n // Used for a huge performance boost when processing/displaying Leaflet polylines for\r\n // each zoom level and also reducing visual noise. tolerance affects the amount of\r\n // simplification (lesser value means higher quality but slower and with more points).\r\n // Also released as a separated micro-library [Simplify.js](https://mourner.github.io/simplify-js/).\r\n function simplify(points, tolerance) {\r\n \tif (!tolerance || !points.length) {\r\n \t\treturn points.slice();\r\n \t}\r\n\r\n \tvar sqTolerance = tolerance * tolerance;\r\n\r\n \t // stage 1: vertex reduction\r\n \t points = _reducePoints(points, sqTolerance);\r\n\r\n \t // stage 2: Douglas-Peucker simplification\r\n \t points = _simplifyDP(points, sqTolerance);\r\n\r\n \treturn points;\r\n }\r\n\r\n // @function pointToSegmentDistance(p: Point, p1: Point, p2: Point): Number\r\n // Returns the distance between point `p` and segment `p1` to `p2`.\r\n function pointToSegmentDistance(p, p1, p2) {\r\n \treturn Math.sqrt(_sqClosestPointOnSegment(p, p1, p2, true));\r\n }\r\n\r\n // @function closestPointOnSegment(p: Point, p1: Point, p2: Point): Number\r\n // Returns the closest point from a point `p` on a segment `p1` to `p2`.\r\n function closestPointOnSegment(p, p1, p2) {\r\n \treturn _sqClosestPointOnSegment(p, p1, p2);\r\n }\r\n\r\n // Ramer-Douglas-Peucker simplification, see https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm\r\n function _simplifyDP(points, sqTolerance) {\r\n\r\n \tvar len = points.length,\r\n \t ArrayConstructor = typeof Uint8Array !== undefined + '' ? Uint8Array : Array,\r\n \t markers = new ArrayConstructor(len);\r\n\r\n \t markers[0] = markers[len - 1] = 1;\r\n\r\n \t_simplifyDPStep(points, markers, sqTolerance, 0, len - 1);\r\n\r\n \tvar i,\r\n \t newPoints = [];\r\n\r\n \tfor (i = 0; i < len; i++) {\r\n \t\tif (markers[i]) {\r\n \t\t\tnewPoints.push(points[i]);\r\n \t\t}\r\n \t}\r\n\r\n \treturn newPoints;\r\n }\r\n\r\n function _simplifyDPStep(points, markers, sqTolerance, first, last) {\r\n\r\n \tvar maxSqDist = 0,\r\n \tindex, i, sqDist;\r\n\r\n \tfor (i = first + 1; i <= last - 1; i++) {\r\n \t\tsqDist = _sqClosestPointOnSegment(points[i], points[first], points[last], true);\r\n\r\n \t\tif (sqDist > maxSqDist) {\r\n \t\t\tindex = i;\r\n \t\t\tmaxSqDist = sqDist;\r\n \t\t}\r\n \t}\r\n\r\n \tif (maxSqDist > sqTolerance) {\r\n \t\tmarkers[index] = 1;\r\n\r\n \t\t_simplifyDPStep(points, markers, sqTolerance, first, index);\r\n \t\t_simplifyDPStep(points, markers, sqTolerance, index, last);\r\n \t}\r\n }\r\n\r\n // reduce points that are too close to each other to a single point\r\n function _reducePoints(points, sqTolerance) {\r\n \tvar reducedPoints = [points[0]];\r\n\r\n \tfor (var i = 1, prev = 0, len = points.length; i < len; i++) {\r\n \t\tif (_sqDist(points[i], points[prev]) > sqTolerance) {\r\n \t\t\treducedPoints.push(points[i]);\r\n \t\t\tprev = i;\r\n \t\t}\r\n \t}\r\n \tif (prev < len - 1) {\r\n \t\treducedPoints.push(points[len - 1]);\r\n \t}\r\n \treturn reducedPoints;\r\n }\r\n\r\n var _lastCode;\r\n\r\n // @function clipSegment(a: Point, b: Point, bounds: Bounds, useLastCode?: Boolean, round?: Boolean): Point[]|Boolean\r\n // Clips the segment a to b by rectangular bounds with the\r\n // [Cohen-Sutherland algorithm](https://en.wikipedia.org/wiki/Cohen%E2%80%93Sutherland_algorithm)\r\n // (modifying the segment points directly!). Used by Leaflet to only show polyline\r\n // points that are on the screen or near, increasing performance.\r\n function clipSegment(a, b, bounds, useLastCode, round) {\r\n \tvar codeA = useLastCode ? _lastCode : _getBitCode(a, bounds),\r\n \t codeB = _getBitCode(b, bounds),\r\n\r\n \t codeOut, p, newCode;\r\n\r\n \t // save 2nd code to avoid calculating it on the next segment\r\n \t _lastCode = codeB;\r\n\r\n \twhile (true) {\r\n \t\t// if a,b is inside the clip window (trivial accept)\r\n \t\tif (!(codeA | codeB)) {\r\n \t\t\treturn [a, b];\r\n \t\t}\r\n\r\n \t\t// if a,b is outside the clip window (trivial reject)\r\n \t\tif (codeA & codeB) {\r\n \t\t\treturn false;\r\n \t\t}\r\n\r\n \t\t// other cases\r\n \t\tcodeOut = codeA || codeB;\r\n \t\tp = _getEdgeIntersection(a, b, codeOut, bounds, round);\r\n \t\tnewCode = _getBitCode(p, bounds);\r\n\r\n \t\tif (codeOut === codeA) {\r\n \t\t\ta = p;\r\n \t\t\tcodeA = newCode;\r\n \t\t} else {\r\n \t\t\tb = p;\r\n \t\t\tcodeB = newCode;\r\n \t\t}\r\n \t}\r\n }\r\n\r\n function _getEdgeIntersection(a, b, code, bounds, round) {\r\n \tvar dx = b.x - a.x,\r\n \t dy = b.y - a.y,\r\n \t min = bounds.min,\r\n \t max = bounds.max,\r\n \t x, y;\r\n\r\n \tif (code & 8) { // top\r\n \t\tx = a.x + dx * (max.y - a.y) / dy;\r\n \t\ty = max.y;\r\n\r\n \t} else if (code & 4) { // bottom\r\n \t\tx = a.x + dx * (min.y - a.y) / dy;\r\n \t\ty = min.y;\r\n\r\n \t} else if (code & 2) { // right\r\n \t\tx = max.x;\r\n \t\ty = a.y + dy * (max.x - a.x) / dx;\r\n\r\n \t} else if (code & 1) { // left\r\n \t\tx = min.x;\r\n \t\ty = a.y + dy * (min.x - a.x) / dx;\r\n \t}\r\n\r\n \treturn new Point(x, y, round);\r\n }\r\n\r\n function _getBitCode(p, bounds) {\r\n \tvar code = 0;\r\n\r\n \tif (p.x < bounds.min.x) { // left\r\n \t\tcode |= 1;\r\n \t} else if (p.x > bounds.max.x) { // right\r\n \t\tcode |= 2;\r\n \t}\r\n\r\n \tif (p.y < bounds.min.y) { // bottom\r\n \t\tcode |= 4;\r\n \t} else if (p.y > bounds.max.y) { // top\r\n \t\tcode |= 8;\r\n \t}\r\n\r\n \treturn code;\r\n }\r\n\r\n // square distance (to avoid unnecessary Math.sqrt calls)\r\n function _sqDist(p1, p2) {\r\n \tvar dx = p2.x - p1.x,\r\n \t dy = p2.y - p1.y;\r\n \treturn dx * dx + dy * dy;\r\n }\r\n\r\n // return closest point on segment or distance to that point\r\n function _sqClosestPointOnSegment(p, p1, p2, sqDist) {\r\n \tvar x = p1.x,\r\n \t y = p1.y,\r\n \t dx = p2.x - x,\r\n \t dy = p2.y - y,\r\n \t dot = dx * dx + dy * dy,\r\n \t t;\r\n\r\n \tif (dot > 0) {\r\n \t\tt = ((p.x - x) * dx + (p.y - y) * dy) / dot;\r\n\r\n \t\tif (t > 1) {\r\n \t\t\tx = p2.x;\r\n \t\t\ty = p2.y;\r\n \t\t} else if (t > 0) {\r\n \t\t\tx += dx * t;\r\n \t\t\ty += dy * t;\r\n \t\t}\r\n \t}\r\n\r\n \tdx = p.x - x;\r\n \tdy = p.y - y;\r\n\r\n \treturn sqDist ? dx * dx + dy * dy : new Point(x, y);\r\n }\r\n\r\n\r\n // @function isFlat(latlngs: LatLng[]): Boolean\r\n // Returns true if `latlngs` is a flat array, false is nested.\r\n function isFlat(latlngs) {\r\n \treturn !isArray(latlngs[0]) || (typeof latlngs[0][0] !== 'object' && typeof latlngs[0][0] !== 'undefined');\r\n }\r\n\r\n function _flat(latlngs) {\r\n \tconsole.warn('Deprecated use of _flat, please use L.LineUtil.isFlat instead.');\r\n \treturn isFlat(latlngs);\r\n }\n\n var LineUtil = {\n __proto__: null,\n simplify: simplify,\n pointToSegmentDistance: pointToSegmentDistance,\n closestPointOnSegment: closestPointOnSegment,\n clipSegment: clipSegment,\n _getEdgeIntersection: _getEdgeIntersection,\n _getBitCode: _getBitCode,\n _sqClosestPointOnSegment: _sqClosestPointOnSegment,\n isFlat: isFlat,\n _flat: _flat\n };\n\n /*\r\n * @namespace PolyUtil\r\n * Various utility functions for polygon geometries.\r\n */\r\n\r\n /* @function clipPolygon(points: Point[], bounds: Bounds, round?: Boolean): Point[]\r\n * Clips the polygon geometry defined by the given `points` by the given bounds (using the [Sutherland-Hodgman algorithm](https://en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman_algorithm)).\r\n * Used by Leaflet to only show polygon points that are on the screen or near, increasing\r\n * performance. Note that polygon points needs different algorithm for clipping\r\n * than polyline, so there's a separate method for it.\r\n */\r\n function clipPolygon(points, bounds, round) {\r\n \tvar clippedPoints,\r\n \t edges = [1, 4, 2, 8],\r\n \t i, j, k,\r\n \t a, b,\r\n \t len, edge, p;\r\n\r\n \tfor (i = 0, len = points.length; i < len; i++) {\r\n \t\tpoints[i]._code = _getBitCode(points[i], bounds);\r\n \t}\r\n\r\n \t// for each edge (left, bottom, right, top)\r\n \tfor (k = 0; k < 4; k++) {\r\n \t\tedge = edges[k];\r\n \t\tclippedPoints = [];\r\n\r\n \t\tfor (i = 0, len = points.length, j = len - 1; i < len; j = i++) {\r\n \t\t\ta = points[i];\r\n \t\t\tb = points[j];\r\n\r\n \t\t\t// if a is inside the clip window\r\n \t\t\tif (!(a._code & edge)) {\r\n \t\t\t\t// if b is outside the clip window (a->b goes out of screen)\r\n \t\t\t\tif (b._code & edge) {\r\n \t\t\t\t\tp = _getEdgeIntersection(b, a, edge, bounds, round);\r\n \t\t\t\t\tp._code = _getBitCode(p, bounds);\r\n \t\t\t\t\tclippedPoints.push(p);\r\n \t\t\t\t}\r\n \t\t\t\tclippedPoints.push(a);\r\n\r\n \t\t\t// else if b is inside the clip window (a->b enters the screen)\r\n \t\t\t} else if (!(b._code & edge)) {\r\n \t\t\t\tp = _getEdgeIntersection(b, a, edge, bounds, round);\r\n \t\t\t\tp._code = _getBitCode(p, bounds);\r\n \t\t\t\tclippedPoints.push(p);\r\n \t\t\t}\r\n \t\t}\r\n \t\tpoints = clippedPoints;\r\n \t}\r\n\r\n \treturn points;\r\n }\n\n var PolyUtil = {\n __proto__: null,\n clipPolygon: clipPolygon\n };\n\n /*\r\n * @namespace Projection\r\n * @section\r\n * Leaflet comes with a set of already defined Projections out of the box:\r\n *\r\n * @projection L.Projection.LonLat\r\n *\r\n * Equirectangular, or Plate Carree projection — the most simple projection,\r\n * mostly used by GIS enthusiasts. Directly maps `x` as longitude, and `y` as\r\n * latitude. Also suitable for flat worlds, e.g. game maps. Used by the\r\n * `EPSG:4326` and `Simple` CRS.\r\n */\r\n\r\n var LonLat = {\r\n \tproject: function (latlng) {\r\n \t\treturn new Point(latlng.lng, latlng.lat);\r\n \t},\r\n\r\n \tunproject: function (point) {\r\n \t\treturn new LatLng(point.y, point.x);\r\n \t},\r\n\r\n \tbounds: new Bounds([-180, -90], [180, 90])\r\n };\n\n /*\r\n * @namespace Projection\r\n * @projection L.Projection.Mercator\r\n *\r\n * Elliptical Mercator projection — more complex than Spherical Mercator. Assumes that Earth is an ellipsoid. Used by the EPSG:3395 CRS.\r\n */\r\n\r\n var Mercator = {\r\n \tR: 6378137,\r\n \tR_MINOR: 6356752.314245179,\r\n\r\n \tbounds: new Bounds([-20037508.34279, -15496570.73972], [20037508.34279, 18764656.23138]),\r\n\r\n \tproject: function (latlng) {\r\n \t\tvar d = Math.PI / 180,\r\n \t\t r = this.R,\r\n \t\t y = latlng.lat * d,\r\n \t\t tmp = this.R_MINOR / r,\r\n \t\t e = Math.sqrt(1 - tmp * tmp),\r\n \t\t con = e * Math.sin(y);\r\n\r\n \t\tvar ts = Math.tan(Math.PI / 4 - y / 2) / Math.pow((1 - con) / (1 + con), e / 2);\r\n \t\ty = -r * Math.log(Math.max(ts, 1E-10));\r\n\r\n \t\treturn new Point(latlng.lng * d * r, y);\r\n \t},\r\n\r\n \tunproject: function (point) {\r\n \t\tvar d = 180 / Math.PI,\r\n \t\t r = this.R,\r\n \t\t tmp = this.R_MINOR / r,\r\n \t\t e = Math.sqrt(1 - tmp * tmp),\r\n \t\t ts = Math.exp(-point.y / r),\r\n \t\t phi = Math.PI / 2 - 2 * Math.atan(ts);\r\n\r\n \t\tfor (var i = 0, dphi = 0.1, con; i < 15 && Math.abs(dphi) > 1e-7; i++) {\r\n \t\t\tcon = e * Math.sin(phi);\r\n \t\t\tcon = Math.pow((1 - con) / (1 + con), e / 2);\r\n \t\t\tdphi = Math.PI / 2 - 2 * Math.atan(ts * con) - phi;\r\n \t\t\tphi += dphi;\r\n \t\t}\r\n\r\n \t\treturn new LatLng(phi * d, point.x * d / r);\r\n \t}\r\n };\n\n /*\n * @class Projection\n\n * An object with methods for projecting geographical coordinates of the world onto\n * a flat surface (and back). See [Map projection](https://en.wikipedia.org/wiki/Map_projection).\n\n * @property bounds: Bounds\n * The bounds (specified in CRS units) where the projection is valid\n\n * @method project(latlng: LatLng): Point\n * Projects geographical coordinates into a 2D point.\n * Only accepts actual `L.LatLng` instances, not arrays.\n\n * @method unproject(point: Point): LatLng\n * The inverse of `project`. Projects a 2D point into a geographical location.\n * Only accepts actual `L.Point` instances, not arrays.\n\n * Note that the projection instances do not inherit from Leaflet's `Class` object,\n * and can't be instantiated. Also, new classes can't inherit from them,\n * and methods can't be added to them with the `include` function.\n\n */\n\n var index = {\n __proto__: null,\n LonLat: LonLat,\n Mercator: Mercator,\n SphericalMercator: SphericalMercator\n };\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3395\r\n *\r\n * Rarely used by some commercial tile providers. Uses Elliptical Mercator projection.\r\n */\r\n var EPSG3395 = extend({}, Earth, {\r\n \tcode: 'EPSG:3395',\r\n \tprojection: Mercator,\r\n\r\n \ttransformation: (function () {\r\n \t\tvar scale = 0.5 / (Math.PI * Mercator.R);\r\n \t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n \t}())\r\n });\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG4326\r\n *\r\n * A common CRS among GIS enthusiasts. Uses simple Equirectangular projection.\r\n *\r\n * Leaflet 1.0.x complies with the [TMS coordinate scheme for EPSG:4326](https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification#global-geodetic),\r\n * which is a breaking change from 0.7.x behaviour. If you are using a `TileLayer`\r\n * with this CRS, ensure that there are two 256x256 pixel tiles covering the\r\n * whole earth at zoom level zero, and that the tile coordinate origin is (-180,+90),\r\n * or (-180,-90) for `TileLayer`s with [the `tms` option](#tilelayer-tms) set.\r\n */\r\n\r\n var EPSG4326 = extend({}, Earth, {\r\n \tcode: 'EPSG:4326',\r\n \tprojection: LonLat,\r\n \ttransformation: toTransformation(1 / 180, 1, -1 / 180, 0.5)\r\n });\n\n /*\n * @namespace CRS\n * @crs L.CRS.Simple\n *\n * A simple CRS that maps longitude and latitude into `x` and `y` directly.\n * May be used for maps of flat surfaces (e.g. game maps). Note that the `y`\n * axis should still be inverted (going from bottom to top). `distance()` returns\n * simple euclidean distance.\n */\n\n var Simple = extend({}, CRS, {\n \tprojection: LonLat,\n \ttransformation: toTransformation(1, 0, -1, 0),\n\n \tscale: function (zoom) {\n \t\treturn Math.pow(2, zoom);\n \t},\n\n \tzoom: function (scale) {\n \t\treturn Math.log(scale) / Math.LN2;\n \t},\n\n \tdistance: function (latlng1, latlng2) {\n \t\tvar dx = latlng2.lng - latlng1.lng,\n \t\t dy = latlng2.lat - latlng1.lat;\n\n \t\treturn Math.sqrt(dx * dx + dy * dy);\n \t},\n\n \tinfinite: true\n });\n\n CRS.Earth = Earth;\n CRS.EPSG3395 = EPSG3395;\n CRS.EPSG3857 = EPSG3857;\n CRS.EPSG900913 = EPSG900913;\n CRS.EPSG4326 = EPSG4326;\n CRS.Simple = Simple;\n\n /*\n * @class Layer\n * @inherits Evented\n * @aka L.Layer\n * @aka ILayer\n *\n * A set of methods from the Layer base class that all Leaflet layers use.\n * Inherits all methods, options and events from `L.Evented`.\n *\n * @example\n *\n * ```js\n * var layer = L.marker(latlng).addTo(map);\n * layer.addTo(map);\n * layer.remove();\n * ```\n *\n * @event add: Event\n * Fired after the layer is added to a map\n *\n * @event remove: Event\n * Fired after the layer is removed from a map\n */\n\n\n var Layer = Evented.extend({\n\n \t// Classes extending `L.Layer` will inherit the following options:\n \toptions: {\n \t\t// @option pane: String = 'overlayPane'\n \t\t// By default the layer will be added to the map's [overlay pane](#map-overlaypane). Overriding this option will cause the layer to be placed on another pane by default.\n \t\tpane: 'overlayPane',\n\n \t\t// @option attribution: String = null\n \t\t// String to be shown in the attribution control, e.g. \"© OpenStreetMap contributors\". It describes the layer data and is often a legal obligation towards copyright holders and tile providers.\n \t\tattribution: null,\n\n \t\tbubblingMouseEvents: true\n \t},\n\n \t/* @section\n \t * Classes extending `L.Layer` will inherit the following methods:\n \t *\n \t * @method addTo(map: Map|LayerGroup): this\n \t * Adds the layer to the given map or layer group.\n \t */\n \taddTo: function (map) {\n \t\tmap.addLayer(this);\n \t\treturn this;\n \t},\n\n \t// @method remove: this\n \t// Removes the layer from the map it is currently active on.\n \tremove: function () {\n \t\treturn this.removeFrom(this._map || this._mapToAdd);\n \t},\n\n \t// @method removeFrom(map: Map): this\n \t// Removes the layer from the given map\n \t//\n \t// @alternative\n \t// @method removeFrom(group: LayerGroup): this\n \t// Removes the layer from the given `LayerGroup`\n \tremoveFrom: function (obj) {\n \t\tif (obj) {\n \t\t\tobj.removeLayer(this);\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method getPane(name? : String): HTMLElement\n \t// Returns the `HTMLElement` representing the named pane on the map. If `name` is omitted, returns the pane for this layer.\n \tgetPane: function (name) {\n \t\treturn this._map.getPane(name ? (this.options[name] || name) : this.options.pane);\n \t},\n\n \taddInteractiveTarget: function (targetEl) {\n \t\tthis._map._targets[stamp(targetEl)] = this;\n \t\treturn this;\n \t},\n\n \tremoveInteractiveTarget: function (targetEl) {\n \t\tdelete this._map._targets[stamp(targetEl)];\n \t\treturn this;\n \t},\n\n \t// @method getAttribution: String\n \t// Used by the `attribution control`, returns the [attribution option](#gridlayer-attribution).\n \tgetAttribution: function () {\n \t\treturn this.options.attribution;\n \t},\n\n \t_layerAdd: function (e) {\n \t\tvar map = e.target;\n\n \t\t// check in case layer gets added and then removed before the map is ready\n \t\tif (!map.hasLayer(this)) { return; }\n\n \t\tthis._map = map;\n \t\tthis._zoomAnimated = map._zoomAnimated;\n\n \t\tif (this.getEvents) {\n \t\t\tvar events = this.getEvents();\n \t\t\tmap.on(events, this);\n \t\t\tthis.once('remove', function () {\n \t\t\t\tmap.off(events, this);\n \t\t\t}, this);\n \t\t}\n\n \t\tthis.onAdd(map);\n\n \t\tthis.fire('add');\n \t\tmap.fire('layeradd', {layer: this});\n \t}\n });\n\n /* @section Extension methods\n * @uninheritable\n *\n * Every layer should extend from `L.Layer` and (re-)implement the following methods.\n *\n * @method onAdd(map: Map): this\n * Should contain code that creates DOM elements for the layer, adds them to `map panes` where they should belong and puts listeners on relevant map events. Called on [`map.addLayer(layer)`](#map-addlayer).\n *\n * @method onRemove(map: Map): this\n * Should contain all clean up code that removes the layer's elements from the DOM and removes listeners previously added in [`onAdd`](#layer-onadd). Called on [`map.removeLayer(layer)`](#map-removelayer).\n *\n * @method getEvents(): Object\n * This optional method should return an object like `{ viewreset: this._reset }` for [`addEventListener`](#evented-addeventlistener). The event handlers in this object will be automatically added and removed from the map with your layer.\n *\n * @method getAttribution(): String\n * This optional method should return a string containing HTML to be shown on the `Attribution control` whenever the layer is visible.\n *\n * @method beforeAdd(map: Map): this\n * Optional method. Called on [`map.addLayer(layer)`](#map-addlayer), before the layer is added to the map, before events are initialized, without waiting until the map is in a usable state. Use for early initialization only.\n */\n\n\n /* @namespace Map\n * @section Layer events\n *\n * @event layeradd: LayerEvent\n * Fired when a new layer is added to the map.\n *\n * @event layerremove: LayerEvent\n * Fired when some layer is removed from the map\n *\n * @section Methods for Layers and Controls\n */\n Map.include({\n \t// @method addLayer(layer: Layer): this\n \t// Adds the given layer to the map\n \taddLayer: function (layer) {\n \t\tif (!layer._layerAdd) {\n \t\t\tthrow new Error('The provided object is not a Layer.');\n \t\t}\n\n \t\tvar id = stamp(layer);\n \t\tif (this._layers[id]) { return this; }\n \t\tthis._layers[id] = layer;\n\n \t\tlayer._mapToAdd = this;\n\n \t\tif (layer.beforeAdd) {\n \t\t\tlayer.beforeAdd(this);\n \t\t}\n\n \t\tthis.whenReady(layer._layerAdd, layer);\n\n \t\treturn this;\n \t},\n\n \t// @method removeLayer(layer: Layer): this\n \t// Removes the given layer from the map.\n \tremoveLayer: function (layer) {\n \t\tvar id = stamp(layer);\n\n \t\tif (!this._layers[id]) { return this; }\n\n \t\tif (this._loaded) {\n \t\t\tlayer.onRemove(this);\n \t\t}\n\n \t\tdelete this._layers[id];\n\n \t\tif (this._loaded) {\n \t\t\tthis.fire('layerremove', {layer: layer});\n \t\t\tlayer.fire('remove');\n \t\t}\n\n \t\tlayer._map = layer._mapToAdd = null;\n\n \t\treturn this;\n \t},\n\n \t// @method hasLayer(layer: Layer): Boolean\n \t// Returns `true` if the given layer is currently added to the map\n \thasLayer: function (layer) {\n \t\treturn stamp(layer) in this._layers;\n \t},\n\n \t/* @method eachLayer(fn: Function, context?: Object): this\n \t * Iterates over the layers of the map, optionally specifying context of the iterator function.\n \t * ```\n \t * map.eachLayer(function(layer){\n \t * layer.bindPopup('Hello');\n \t * });\n \t * ```\n \t */\n \teachLayer: function (method, context) {\n \t\tfor (var i in this._layers) {\n \t\t\tmethod.call(context, this._layers[i]);\n \t\t}\n \t\treturn this;\n \t},\n\n \t_addLayers: function (layers) {\n \t\tlayers = layers ? (isArray(layers) ? layers : [layers]) : [];\n\n \t\tfor (var i = 0, len = layers.length; i < len; i++) {\n \t\t\tthis.addLayer(layers[i]);\n \t\t}\n \t},\n\n \t_addZoomLimit: function (layer) {\n \t\tif (!isNaN(layer.options.maxZoom) || !isNaN(layer.options.minZoom)) {\n \t\t\tthis._zoomBoundLayers[stamp(layer)] = layer;\n \t\t\tthis._updateZoomLevels();\n \t\t}\n \t},\n\n \t_removeZoomLimit: function (layer) {\n \t\tvar id = stamp(layer);\n\n \t\tif (this._zoomBoundLayers[id]) {\n \t\t\tdelete this._zoomBoundLayers[id];\n \t\t\tthis._updateZoomLevels();\n \t\t}\n \t},\n\n \t_updateZoomLevels: function () {\n \t\tvar minZoom = Infinity,\n \t\t maxZoom = -Infinity,\n \t\t oldZoomSpan = this._getZoomSpan();\n\n \t\tfor (var i in this._zoomBoundLayers) {\n \t\t\tvar options = this._zoomBoundLayers[i].options;\n\n \t\t\tminZoom = options.minZoom === undefined ? minZoom : Math.min(minZoom, options.minZoom);\n \t\t\tmaxZoom = options.maxZoom === undefined ? maxZoom : Math.max(maxZoom, options.maxZoom);\n \t\t}\n\n \t\tthis._layersMaxZoom = maxZoom === -Infinity ? undefined : maxZoom;\n \t\tthis._layersMinZoom = minZoom === Infinity ? undefined : minZoom;\n\n \t\t// @section Map state change events\n \t\t// @event zoomlevelschange: Event\n \t\t// Fired when the number of zoomlevels on the map is changed due\n \t\t// to adding or removing a layer.\n \t\tif (oldZoomSpan !== this._getZoomSpan()) {\n \t\t\tthis.fire('zoomlevelschange');\n \t\t}\n\n \t\tif (this.options.maxZoom === undefined && this._layersMaxZoom && this.getZoom() > this._layersMaxZoom) {\n \t\t\tthis.setZoom(this._layersMaxZoom);\n \t\t}\n \t\tif (this.options.minZoom === undefined && this._layersMinZoom && this.getZoom() < this._layersMinZoom) {\n \t\t\tthis.setZoom(this._layersMinZoom);\n \t\t}\n \t}\n });\n\n /*\r\n * @class LayerGroup\r\n * @aka L.LayerGroup\r\n * @inherits Interactive layer\r\n *\r\n * Used to group several layers and handle them as one. If you add it to the map,\r\n * any layers added or removed from the group will be added/removed on the map as\r\n * well. Extends `Layer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.layerGroup([marker1, marker2])\r\n * \t.addLayer(polyline)\r\n * \t.addTo(map);\r\n * ```\r\n */\r\n\r\n var LayerGroup = Layer.extend({\r\n\r\n \tinitialize: function (layers, options) {\r\n \t\tsetOptions(this, options);\r\n\r\n \t\tthis._layers = {};\r\n\r\n \t\tvar i, len;\r\n\r\n \t\tif (layers) {\r\n \t\t\tfor (i = 0, len = layers.length; i < len; i++) {\r\n \t\t\t\tthis.addLayer(layers[i]);\r\n \t\t\t}\r\n \t\t}\r\n \t},\r\n\r\n \t// @method addLayer(layer: Layer): this\r\n \t// Adds the given layer to the group.\r\n \taddLayer: function (layer) {\r\n \t\tvar id = this.getLayerId(layer);\r\n\r\n \t\tthis._layers[id] = layer;\r\n\r\n \t\tif (this._map) {\r\n \t\t\tthis._map.addLayer(layer);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeLayer(layer: Layer): this\r\n \t// Removes the given layer from the group.\r\n \t// @alternative\r\n \t// @method removeLayer(id: Number): this\r\n \t// Removes the layer with the given internal ID from the group.\r\n \tremoveLayer: function (layer) {\r\n \t\tvar id = layer in this._layers ? layer : this.getLayerId(layer);\r\n\r\n \t\tif (this._map && this._layers[id]) {\r\n \t\t\tthis._map.removeLayer(this._layers[id]);\r\n \t\t}\r\n\r\n \t\tdelete this._layers[id];\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method hasLayer(layer: Layer): Boolean\r\n \t// Returns `true` if the given layer is currently added to the group.\r\n \t// @alternative\r\n \t// @method hasLayer(id: Number): Boolean\r\n \t// Returns `true` if the given internal ID is currently added to the group.\r\n \thasLayer: function (layer) {\r\n \t\tvar layerId = typeof layer === 'number' ? layer : this.getLayerId(layer);\r\n \t\treturn layerId in this._layers;\r\n \t},\r\n\r\n \t// @method clearLayers(): this\r\n \t// Removes all the layers from the group.\r\n \tclearLayers: function () {\r\n \t\treturn this.eachLayer(this.removeLayer, this);\r\n \t},\r\n\r\n \t// @method invoke(methodName: String, …): this\r\n \t// Calls `methodName` on every layer contained in this group, passing any\r\n \t// additional parameters. Has no effect if the layers contained do not\r\n \t// implement `methodName`.\r\n \tinvoke: function (methodName) {\r\n \t\tvar args = Array.prototype.slice.call(arguments, 1),\r\n \t\t i, layer;\r\n\r\n \t\tfor (i in this._layers) {\r\n \t\t\tlayer = this._layers[i];\r\n\r\n \t\t\tif (layer[methodName]) {\r\n \t\t\t\tlayer[methodName].apply(layer, args);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n \t\tthis.eachLayer(map.addLayer, map);\r\n \t},\r\n\r\n \tonRemove: function (map) {\r\n \t\tthis.eachLayer(map.removeLayer, map);\r\n \t},\r\n\r\n \t// @method eachLayer(fn: Function, context?: Object): this\r\n \t// Iterates over the layers of the group, optionally specifying context of the iterator function.\r\n \t// ```js\r\n \t// group.eachLayer(function (layer) {\r\n \t// \tlayer.bindPopup('Hello');\r\n \t// });\r\n \t// ```\r\n \teachLayer: function (method, context) {\r\n \t\tfor (var i in this._layers) {\r\n \t\t\tmethod.call(context, this._layers[i]);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getLayer(id: Number): Layer\r\n \t// Returns the layer with the given internal ID.\r\n \tgetLayer: function (id) {\r\n \t\treturn this._layers[id];\r\n \t},\r\n\r\n \t// @method getLayers(): Layer[]\r\n \t// Returns an array of all the layers added to the group.\r\n \tgetLayers: function () {\r\n \t\tvar layers = [];\r\n \t\tthis.eachLayer(layers.push, layers);\r\n \t\treturn layers;\r\n \t},\r\n\r\n \t// @method setZIndex(zIndex: Number): this\r\n \t// Calls `setZIndex` on every layer contained in this group, passing the z-index.\r\n \tsetZIndex: function (zIndex) {\r\n \t\treturn this.invoke('setZIndex', zIndex);\r\n \t},\r\n\r\n \t// @method getLayerId(layer: Layer): Number\r\n \t// Returns the internal ID for a layer\r\n \tgetLayerId: function (layer) {\r\n \t\treturn stamp(layer);\r\n \t}\r\n });\r\n\r\n\r\n // @factory L.layerGroup(layers?: Layer[], options?: Object)\r\n // Create a layer group, optionally given an initial set of layers and an `options` object.\r\n var layerGroup = function (layers, options) {\r\n \treturn new LayerGroup(layers, options);\r\n };\n\n /*\r\n * @class FeatureGroup\r\n * @aka L.FeatureGroup\r\n * @inherits LayerGroup\r\n *\r\n * Extended `LayerGroup` that makes it easier to do the same thing to all its member layers:\r\n * * [`bindPopup`](#layer-bindpopup) binds a popup to all of the layers at once (likewise with [`bindTooltip`](#layer-bindtooltip))\r\n * * Events are propagated to the `FeatureGroup`, so if the group has an event\r\n * handler, it will handle events from any of the layers. This includes mouse events\r\n * and custom events.\r\n * * Has `layeradd` and `layerremove` events\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.featureGroup([marker1, marker2, polyline])\r\n * \t.bindPopup('Hello world!')\r\n * \t.on('click', function() { alert('Clicked on a member of the group!'); })\r\n * \t.addTo(map);\r\n * ```\r\n */\r\n\r\n var FeatureGroup = LayerGroup.extend({\r\n\r\n \taddLayer: function (layer) {\r\n \t\tif (this.hasLayer(layer)) {\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\tlayer.addEventParent(this);\r\n\r\n \t\tLayerGroup.prototype.addLayer.call(this, layer);\r\n\r\n \t\t// @event layeradd: LayerEvent\r\n \t\t// Fired when a layer is added to this `FeatureGroup`\r\n \t\treturn this.fire('layeradd', {layer: layer});\r\n \t},\r\n\r\n \tremoveLayer: function (layer) {\r\n \t\tif (!this.hasLayer(layer)) {\r\n \t\t\treturn this;\r\n \t\t}\r\n \t\tif (layer in this._layers) {\r\n \t\t\tlayer = this._layers[layer];\r\n \t\t}\r\n\r\n \t\tlayer.removeEventParent(this);\r\n\r\n \t\tLayerGroup.prototype.removeLayer.call(this, layer);\r\n\r\n \t\t// @event layerremove: LayerEvent\r\n \t\t// Fired when a layer is removed from this `FeatureGroup`\r\n \t\treturn this.fire('layerremove', {layer: layer});\r\n \t},\r\n\r\n \t// @method setStyle(style: Path options): this\r\n \t// Sets the given path options to each layer of the group that has a `setStyle` method.\r\n \tsetStyle: function (style) {\r\n \t\treturn this.invoke('setStyle', style);\r\n \t},\r\n\r\n \t// @method bringToFront(): this\r\n \t// Brings the layer group to the top of all other layers\r\n \tbringToFront: function () {\r\n \t\treturn this.invoke('bringToFront');\r\n \t},\r\n\r\n \t// @method bringToBack(): this\r\n \t// Brings the layer group to the back of all other layers\r\n \tbringToBack: function () {\r\n \t\treturn this.invoke('bringToBack');\r\n \t},\r\n\r\n \t// @method getBounds(): LatLngBounds\r\n \t// Returns the LatLngBounds of the Feature Group (created from bounds and coordinates of its children).\r\n \tgetBounds: function () {\r\n \t\tvar bounds = new LatLngBounds();\r\n\r\n \t\tfor (var id in this._layers) {\r\n \t\t\tvar layer = this._layers[id];\r\n \t\t\tbounds.extend(layer.getBounds ? layer.getBounds() : layer.getLatLng());\r\n \t\t}\r\n \t\treturn bounds;\r\n \t}\r\n });\r\n\r\n // @factory L.featureGroup(layers?: Layer[], options?: Object)\r\n // Create a feature group, optionally given an initial set of layers and an `options` object.\r\n var featureGroup = function (layers, options) {\r\n \treturn new FeatureGroup(layers, options);\r\n };\n\n /*\r\n * @class Icon\r\n * @aka L.Icon\r\n *\r\n * Represents an icon to provide when creating a marker.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var myIcon = L.icon({\r\n * iconUrl: 'my-icon.png',\r\n * iconRetinaUrl: 'my-icon@2x.png',\r\n * iconSize: [38, 95],\r\n * iconAnchor: [22, 94],\r\n * popupAnchor: [-3, -76],\r\n * shadowUrl: 'my-icon-shadow.png',\r\n * shadowRetinaUrl: 'my-icon-shadow@2x.png',\r\n * shadowSize: [68, 95],\r\n * shadowAnchor: [22, 94]\r\n * });\r\n *\r\n * L.marker([50.505, 30.57], {icon: myIcon}).addTo(map);\r\n * ```\r\n *\r\n * `L.Icon.Default` extends `L.Icon` and is the blue icon Leaflet uses for markers by default.\r\n *\r\n */\r\n\r\n var Icon = Class.extend({\r\n\r\n \t/* @section\r\n \t * @aka Icon options\r\n \t *\r\n \t * @option iconUrl: String = null\r\n \t * **(required)** The URL to the icon image (absolute or relative to your script path).\r\n \t *\r\n \t * @option iconRetinaUrl: String = null\r\n \t * The URL to a retina sized version of the icon image (absolute or relative to your\r\n \t * script path). Used for Retina screen devices.\r\n \t *\r\n \t * @option iconSize: Point = null\r\n \t * Size of the icon image in pixels.\r\n \t *\r\n \t * @option iconAnchor: Point = null\r\n \t * The coordinates of the \"tip\" of the icon (relative to its top left corner). The icon\r\n \t * will be aligned so that this point is at the marker's geographical location. Centered\r\n \t * by default if size is specified, also can be set in CSS with negative margins.\r\n \t *\r\n \t * @option popupAnchor: Point = [0, 0]\r\n \t * The coordinates of the point from which popups will \"open\", relative to the icon anchor.\r\n \t *\r\n \t * @option tooltipAnchor: Point = [0, 0]\r\n \t * The coordinates of the point from which tooltips will \"open\", relative to the icon anchor.\r\n \t *\r\n \t * @option shadowUrl: String = null\r\n \t * The URL to the icon shadow image. If not specified, no shadow image will be created.\r\n \t *\r\n \t * @option shadowRetinaUrl: String = null\r\n \t *\r\n \t * @option shadowSize: Point = null\r\n \t * Size of the shadow image in pixels.\r\n \t *\r\n \t * @option shadowAnchor: Point = null\r\n \t * The coordinates of the \"tip\" of the shadow (relative to its top left corner) (the same\r\n \t * as iconAnchor if not specified).\r\n \t *\r\n \t * @option className: String = ''\r\n \t * A custom class name to assign to both icon and shadow images. Empty by default.\r\n \t */\r\n\r\n \toptions: {\r\n \t\tpopupAnchor: [0, 0],\r\n \t\ttooltipAnchor: [0, 0],\r\n\r\n \t\t// @option crossOrigin: Boolean|String = false\r\n \t\t// Whether the crossOrigin attribute will be added to the tiles.\r\n \t\t// If a String is provided, all tiles will have their crossOrigin attribute set to the String provided. This is needed if you want to access tile pixel data.\r\n \t\t// Refer to [CORS Settings](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for valid String values.\r\n \t\tcrossOrigin: false\r\n \t},\r\n\r\n \tinitialize: function (options) {\r\n \t\tsetOptions(this, options);\r\n \t},\r\n\r\n \t// @method createIcon(oldIcon?: HTMLElement): HTMLElement\r\n \t// Called internally when the icon has to be shown, returns a `` HTML element\r\n \t// styled according to the options.\r\n \tcreateIcon: function (oldIcon) {\r\n \t\treturn this._createIcon('icon', oldIcon);\r\n \t},\r\n\r\n \t// @method createShadow(oldIcon?: HTMLElement): HTMLElement\r\n \t// As `createIcon`, but for the shadow beneath it.\r\n \tcreateShadow: function (oldIcon) {\r\n \t\treturn this._createIcon('shadow', oldIcon);\r\n \t},\r\n\r\n \t_createIcon: function (name, oldIcon) {\r\n \t\tvar src = this._getIconUrl(name);\r\n\r\n \t\tif (!src) {\r\n \t\t\tif (name === 'icon') {\r\n \t\t\t\tthrow new Error('iconUrl not set in Icon options (see the docs).');\r\n \t\t\t}\r\n \t\t\treturn null;\r\n \t\t}\r\n\r\n \t\tvar img = this._createImg(src, oldIcon && oldIcon.tagName === 'IMG' ? oldIcon : null);\r\n \t\tthis._setIconStyles(img, name);\r\n\r\n \t\tif (this.options.crossOrigin || this.options.crossOrigin === '') {\r\n \t\t\timg.crossOrigin = this.options.crossOrigin === true ? '' : this.options.crossOrigin;\r\n \t\t}\r\n\r\n \t\treturn img;\r\n \t},\r\n\r\n \t_setIconStyles: function (img, name) {\r\n \t\tvar options = this.options;\r\n \t\tvar sizeOption = options[name + 'Size'];\r\n\r\n \t\tif (typeof sizeOption === 'number') {\r\n \t\t\tsizeOption = [sizeOption, sizeOption];\r\n \t\t}\r\n\r\n \t\tvar size = toPoint(sizeOption),\r\n \t\t anchor = toPoint(name === 'shadow' && options.shadowAnchor || options.iconAnchor ||\r\n \t\t size && size.divideBy(2, true));\r\n\r\n \t\timg.className = 'leaflet-marker-' + name + ' ' + (options.className || '');\r\n\r\n \t\tif (anchor) {\r\n \t\t\timg.style.marginLeft = (-anchor.x) + 'px';\r\n \t\t\timg.style.marginTop = (-anchor.y) + 'px';\r\n \t\t}\r\n\r\n \t\tif (size) {\r\n \t\t\timg.style.width = size.x + 'px';\r\n \t\t\timg.style.height = size.y + 'px';\r\n \t\t}\r\n \t},\r\n\r\n \t_createImg: function (src, el) {\r\n \t\tel = el || document.createElement('img');\r\n \t\tel.src = src;\r\n \t\treturn el;\r\n \t},\r\n\r\n \t_getIconUrl: function (name) {\r\n \t\treturn Browser.retina && this.options[name + 'RetinaUrl'] || this.options[name + 'Url'];\r\n \t}\r\n });\r\n\r\n\r\n // @factory L.icon(options: Icon options)\r\n // Creates an icon instance with the given options.\r\n function icon(options) {\r\n \treturn new Icon(options);\r\n }\n\n /*\n * @miniclass Icon.Default (Icon)\n * @aka L.Icon.Default\n * @section\n *\n * A trivial subclass of `Icon`, represents the icon to use in `Marker`s when\n * no icon is specified. Points to the blue marker image distributed with Leaflet\n * releases.\n *\n * In order to customize the default icon, just change the properties of `L.Icon.Default.prototype.options`\n * (which is a set of `Icon options`).\n *\n * If you want to _completely_ replace the default icon, override the\n * `L.Marker.prototype.options.icon` with your own icon instead.\n */\n\n var IconDefault = Icon.extend({\n\n \toptions: {\n \t\ticonUrl: 'marker-icon.png',\n \t\ticonRetinaUrl: 'marker-icon-2x.png',\n \t\tshadowUrl: 'marker-shadow.png',\n \t\ticonSize: [25, 41],\n \t\ticonAnchor: [12, 41],\n \t\tpopupAnchor: [1, -34],\n \t\ttooltipAnchor: [16, -28],\n \t\tshadowSize: [41, 41]\n \t},\n\n \t_getIconUrl: function (name) {\n \t\tif (typeof IconDefault.imagePath !== 'string') {\t// Deprecated, backwards-compatibility only\n \t\t\tIconDefault.imagePath = this._detectIconPath();\n \t\t}\n\n \t\t// @option imagePath: String\n \t\t// `Icon.Default` will try to auto-detect the location of the\n \t\t// blue icon images. If you are placing these images in a non-standard\n \t\t// way, set this option to point to the right path.\n \t\treturn (this.options.imagePath || IconDefault.imagePath) + Icon.prototype._getIconUrl.call(this, name);\n \t},\n\n \t_stripUrl: function (path) {\t// separate function to use in tests\n \t\tvar strip = function (str, re, idx) {\n \t\t\tvar match = re.exec(str);\n \t\t\treturn match && match[idx];\n \t\t};\n \t\tpath = strip(path, /^url\\((['\"])?(.+)\\1\\)$/, 2);\n \t\treturn path && strip(path, /^(.*)marker-icon\\.png$/, 1);\n \t},\n\n \t_detectIconPath: function () {\n \t\tvar el = create$1('div', 'leaflet-default-icon-path', document.body);\n \t\tvar path = getStyle(el, 'background-image') ||\n \t\t getStyle(el, 'backgroundImage');\t// IE8\n\n \t\tdocument.body.removeChild(el);\n \t\tpath = this._stripUrl(path);\n \t\tif (path) { return path; }\n \t\tvar link = document.querySelector('link[href$=\"leaflet.css\"]');\n \t\tif (!link) { return ''; }\n \t\treturn link.href.substring(0, link.href.length - 'leaflet.css'.length - 1);\n \t}\n });\n\n /*\n * L.Handler.MarkerDrag is used internally by L.Marker to make the markers draggable.\n */\n\n\n /* @namespace Marker\n * @section Interaction handlers\n *\n * Interaction handlers are properties of a marker instance that allow you to control interaction behavior in runtime, enabling or disabling certain features such as dragging (see `Handler` methods). Example:\n *\n * ```js\n * marker.dragging.disable();\n * ```\n *\n * @property dragging: Handler\n * Marker dragging handler (by both mouse and touch). Only valid when the marker is on the map (Otherwise set [`marker.options.draggable`](#marker-draggable)).\n */\n\n var MarkerDrag = Handler.extend({\n \tinitialize: function (marker) {\n \t\tthis._marker = marker;\n \t},\n\n \taddHooks: function () {\n \t\tvar icon = this._marker._icon;\n\n \t\tif (!this._draggable) {\n \t\t\tthis._draggable = new Draggable(icon, icon, true);\n \t\t}\n\n \t\tthis._draggable.on({\n \t\t\tdragstart: this._onDragStart,\n \t\t\tpredrag: this._onPreDrag,\n \t\t\tdrag: this._onDrag,\n \t\t\tdragend: this._onDragEnd\n \t\t}, this).enable();\n\n \t\taddClass(icon, 'leaflet-marker-draggable');\n \t},\n\n \tremoveHooks: function () {\n \t\tthis._draggable.off({\n \t\t\tdragstart: this._onDragStart,\n \t\t\tpredrag: this._onPreDrag,\n \t\t\tdrag: this._onDrag,\n \t\t\tdragend: this._onDragEnd\n \t\t}, this).disable();\n\n \t\tif (this._marker._icon) {\n \t\t\tremoveClass(this._marker._icon, 'leaflet-marker-draggable');\n \t\t}\n \t},\n\n \tmoved: function () {\n \t\treturn this._draggable && this._draggable._moved;\n \t},\n\n \t_adjustPan: function (e) {\n \t\tvar marker = this._marker,\n \t\t map = marker._map,\n \t\t speed = this._marker.options.autoPanSpeed,\n \t\t padding = this._marker.options.autoPanPadding,\n \t\t iconPos = getPosition(marker._icon),\n \t\t bounds = map.getPixelBounds(),\n \t\t origin = map.getPixelOrigin();\n\n \t\tvar panBounds = toBounds(\n \t\t\tbounds.min._subtract(origin).add(padding),\n \t\t\tbounds.max._subtract(origin).subtract(padding)\n \t\t);\n\n \t\tif (!panBounds.contains(iconPos)) {\n \t\t\t// Compute incremental movement\n \t\t\tvar movement = toPoint(\n \t\t\t\t(Math.max(panBounds.max.x, iconPos.x) - panBounds.max.x) / (bounds.max.x - panBounds.max.x) -\n \t\t\t\t(Math.min(panBounds.min.x, iconPos.x) - panBounds.min.x) / (bounds.min.x - panBounds.min.x),\n\n \t\t\t\t(Math.max(panBounds.max.y, iconPos.y) - panBounds.max.y) / (bounds.max.y - panBounds.max.y) -\n \t\t\t\t(Math.min(panBounds.min.y, iconPos.y) - panBounds.min.y) / (bounds.min.y - panBounds.min.y)\n \t\t\t).multiplyBy(speed);\n\n \t\t\tmap.panBy(movement, {animate: false});\n\n \t\t\tthis._draggable._newPos._add(movement);\n \t\t\tthis._draggable._startPos._add(movement);\n\n \t\t\tsetPosition(marker._icon, this._draggable._newPos);\n \t\t\tthis._onDrag(e);\n\n \t\t\tthis._panRequest = requestAnimFrame(this._adjustPan.bind(this, e));\n \t\t}\n \t},\n\n \t_onDragStart: function () {\n \t\t// @section Dragging events\n \t\t// @event dragstart: Event\n \t\t// Fired when the user starts dragging the marker.\n\n \t\t// @event movestart: Event\n \t\t// Fired when the marker starts moving (because of dragging).\n\n \t\tthis._oldLatLng = this._marker.getLatLng();\n\n \t\t// When using ES6 imports it could not be set when `Popup` was not imported as well\n \t\tthis._marker.closePopup && this._marker.closePopup();\n\n \t\tthis._marker\n \t\t\t.fire('movestart')\n \t\t\t.fire('dragstart');\n \t},\n\n \t_onPreDrag: function (e) {\n \t\tif (this._marker.options.autoPan) {\n \t\t\tcancelAnimFrame(this._panRequest);\n \t\t\tthis._panRequest = requestAnimFrame(this._adjustPan.bind(this, e));\n \t\t}\n \t},\n\n \t_onDrag: function (e) {\n \t\tvar marker = this._marker,\n \t\t shadow = marker._shadow,\n \t\t iconPos = getPosition(marker._icon),\n \t\t latlng = marker._map.layerPointToLatLng(iconPos);\n\n \t\t// update shadow position\n \t\tif (shadow) {\n \t\t\tsetPosition(shadow, iconPos);\n \t\t}\n\n \t\tmarker._latlng = latlng;\n \t\te.latlng = latlng;\n \t\te.oldLatLng = this._oldLatLng;\n\n \t\t// @event drag: Event\n \t\t// Fired repeatedly while the user drags the marker.\n \t\tmarker\n \t\t .fire('move', e)\n \t\t .fire('drag', e);\n \t},\n\n \t_onDragEnd: function (e) {\n \t\t// @event dragend: DragEndEvent\n \t\t// Fired when the user stops dragging the marker.\n\n \t\t cancelAnimFrame(this._panRequest);\n\n \t\t// @event moveend: Event\n \t\t// Fired when the marker stops moving (because of dragging).\n \t\tdelete this._oldLatLng;\n \t\tthis._marker\n \t\t .fire('moveend')\n \t\t .fire('dragend', e);\n \t}\n });\n\n /*\r\n * @class Marker\r\n * @inherits Interactive layer\r\n * @aka L.Marker\r\n * L.Marker is used to display clickable/draggable icons on the map. Extends `Layer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.marker([50.5, 30.5]).addTo(map);\r\n * ```\r\n */\r\n\r\n var Marker = Layer.extend({\r\n\r\n \t// @section\r\n \t// @aka Marker options\r\n \toptions: {\r\n \t\t// @option icon: Icon = *\r\n \t\t// Icon instance to use for rendering the marker.\r\n \t\t// See [Icon documentation](#L.Icon) for details on how to customize the marker icon.\r\n \t\t// If not specified, a common instance of `L.Icon.Default` is used.\r\n \t\ticon: new IconDefault(),\r\n\r\n \t\t// Option inherited from \"Interactive layer\" abstract class\r\n \t\tinteractive: true,\r\n\r\n \t\t// @option keyboard: Boolean = true\r\n \t\t// Whether the marker can be tabbed to with a keyboard and clicked by pressing enter.\r\n \t\tkeyboard: true,\r\n\r\n \t\t// @option title: String = ''\r\n \t\t// Text for the browser tooltip that appear on marker hover (no tooltip by default).\r\n \t\t// [Useful for accessibility](https://leafletjs.com/examples/accessibility/#markers-must-be-labelled).\r\n \t\ttitle: '',\r\n\r\n \t\t// @option alt: String = 'Marker'\r\n \t\t// Text for the `alt` attribute of the icon image.\r\n \t\t// [Useful for accessibility](https://leafletjs.com/examples/accessibility/#markers-must-be-labelled).\r\n \t\talt: 'Marker',\r\n\r\n \t\t// @option zIndexOffset: Number = 0\r\n \t\t// By default, marker images zIndex is set automatically based on its latitude. Use this option if you want to put the marker on top of all others (or below), specifying a high value like `1000` (or high negative value, respectively).\r\n \t\tzIndexOffset: 0,\r\n\r\n \t\t// @option opacity: Number = 1.0\r\n \t\t// The opacity of the marker.\r\n \t\topacity: 1,\r\n\r\n \t\t// @option riseOnHover: Boolean = false\r\n \t\t// If `true`, the marker will get on top of others when you hover the mouse over it.\r\n \t\triseOnHover: false,\r\n\r\n \t\t// @option riseOffset: Number = 250\r\n \t\t// The z-index offset used for the `riseOnHover` feature.\r\n \t\triseOffset: 250,\r\n\r\n \t\t// @option pane: String = 'markerPane'\r\n \t\t// `Map pane` where the markers icon will be added.\r\n \t\tpane: 'markerPane',\r\n\r\n \t\t// @option shadowPane: String = 'shadowPane'\r\n \t\t// `Map pane` where the markers shadow will be added.\r\n \t\tshadowPane: 'shadowPane',\r\n\r\n \t\t// @option bubblingMouseEvents: Boolean = false\r\n \t\t// When `true`, a mouse event on this marker will trigger the same event on the map\r\n \t\t// (unless [`L.DomEvent.stopPropagation`](#domevent-stoppropagation) is used).\r\n \t\tbubblingMouseEvents: false,\r\n\r\n \t\t// @option autoPanOnFocus: Boolean = true\r\n \t\t// When `true`, the map will pan whenever the marker is focused (via\r\n \t\t// e.g. pressing `tab` on the keyboard) to ensure the marker is\r\n \t\t// visible within the map's bounds\r\n \t\tautoPanOnFocus: true,\r\n\r\n \t\t// @section Draggable marker options\r\n \t\t// @option draggable: Boolean = false\r\n \t\t// Whether the marker is draggable with mouse/touch or not.\r\n \t\tdraggable: false,\r\n\r\n \t\t// @option autoPan: Boolean = false\r\n \t\t// Whether to pan the map when dragging this marker near its edge or not.\r\n \t\tautoPan: false,\r\n\r\n \t\t// @option autoPanPadding: Point = Point(50, 50)\r\n \t\t// Distance (in pixels to the left/right and to the top/bottom) of the\r\n \t\t// map edge to start panning the map.\r\n \t\tautoPanPadding: [50, 50],\r\n\r\n \t\t// @option autoPanSpeed: Number = 10\r\n \t\t// Number of pixels the map should pan by.\r\n \t\tautoPanSpeed: 10\r\n \t},\r\n\r\n \t/* @section\r\n \t *\r\n \t * In addition to [shared layer methods](#Layer) like `addTo()` and `remove()` and [popup methods](#Popup) like bindPopup() you can also use the following methods:\r\n \t */\r\n\r\n \tinitialize: function (latlng, options) {\r\n \t\tsetOptions(this, options);\r\n \t\tthis._latlng = toLatLng(latlng);\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n \t\tthis._zoomAnimated = this._zoomAnimated && map.options.markerZoomAnimation;\r\n\r\n \t\tif (this._zoomAnimated) {\r\n \t\t\tmap.on('zoomanim', this._animateZoom, this);\r\n \t\t}\r\n\r\n \t\tthis._initIcon();\r\n \t\tthis.update();\r\n \t},\r\n\r\n \tonRemove: function (map) {\r\n \t\tif (this.dragging && this.dragging.enabled()) {\r\n \t\t\tthis.options.draggable = true;\r\n \t\t\tthis.dragging.removeHooks();\r\n \t\t}\r\n \t\tdelete this.dragging;\r\n\r\n \t\tif (this._zoomAnimated) {\r\n \t\t\tmap.off('zoomanim', this._animateZoom, this);\r\n \t\t}\r\n\r\n \t\tthis._removeIcon();\r\n \t\tthis._removeShadow();\r\n \t},\r\n\r\n \tgetEvents: function () {\r\n \t\treturn {\r\n \t\t\tzoom: this.update,\r\n \t\t\tviewreset: this.update\r\n \t\t};\r\n \t},\r\n\r\n \t// @method getLatLng: LatLng\r\n \t// Returns the current geographical position of the marker.\r\n \tgetLatLng: function () {\r\n \t\treturn this._latlng;\r\n \t},\r\n\r\n \t// @method setLatLng(latlng: LatLng): this\r\n \t// Changes the marker position to the given point.\r\n \tsetLatLng: function (latlng) {\r\n \t\tvar oldLatLng = this._latlng;\r\n \t\tthis._latlng = toLatLng(latlng);\r\n \t\tthis.update();\r\n\r\n \t\t// @event move: Event\r\n \t\t// Fired when the marker is moved via [`setLatLng`](#marker-setlatlng) or by [dragging](#marker-dragging). Old and new coordinates are included in event arguments as `oldLatLng`, `latlng`.\r\n \t\treturn this.fire('move', {oldLatLng: oldLatLng, latlng: this._latlng});\r\n \t},\r\n\r\n \t// @method setZIndexOffset(offset: Number): this\r\n \t// Changes the [zIndex offset](#marker-zindexoffset) of the marker.\r\n \tsetZIndexOffset: function (offset) {\r\n \t\tthis.options.zIndexOffset = offset;\r\n \t\treturn this.update();\r\n \t},\r\n\r\n \t// @method getIcon: Icon\r\n \t// Returns the current icon used by the marker\r\n \tgetIcon: function () {\r\n \t\treturn this.options.icon;\r\n \t},\r\n\r\n \t// @method setIcon(icon: Icon): this\r\n \t// Changes the marker icon.\r\n \tsetIcon: function (icon) {\r\n\r\n \t\tthis.options.icon = icon;\r\n\r\n \t\tif (this._map) {\r\n \t\t\tthis._initIcon();\r\n \t\t\tthis.update();\r\n \t\t}\r\n\r\n \t\tif (this._popup) {\r\n \t\t\tthis.bindPopup(this._popup, this._popup.options);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \tgetElement: function () {\r\n \t\treturn this._icon;\r\n \t},\r\n\r\n \tupdate: function () {\r\n\r\n \t\tif (this._icon && this._map) {\r\n \t\t\tvar pos = this._map.latLngToLayerPoint(this._latlng).round();\r\n \t\t\tthis._setPos(pos);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_initIcon: function () {\r\n \t\tvar options = this.options,\r\n \t\t classToAdd = 'leaflet-zoom-' + (this._zoomAnimated ? 'animated' : 'hide');\r\n\r\n \t\tvar icon = options.icon.createIcon(this._icon),\r\n \t\t addIcon = false;\r\n\r\n \t\t// if we're not reusing the icon, remove the old one and init new one\r\n \t\tif (icon !== this._icon) {\r\n \t\t\tif (this._icon) {\r\n \t\t\t\tthis._removeIcon();\r\n \t\t\t}\r\n \t\t\taddIcon = true;\r\n\r\n \t\t\tif (options.title) {\r\n \t\t\t\ticon.title = options.title;\r\n \t\t\t}\r\n\r\n \t\t\tif (icon.tagName === 'IMG') {\r\n \t\t\t\ticon.alt = options.alt || '';\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\taddClass(icon, classToAdd);\r\n\r\n \t\tif (options.keyboard) {\r\n \t\t\ticon.tabIndex = '0';\r\n \t\t\ticon.setAttribute('role', 'button');\r\n \t\t}\r\n\r\n \t\tthis._icon = icon;\r\n\r\n \t\tif (options.riseOnHover) {\r\n \t\t\tthis.on({\r\n \t\t\t\tmouseover: this._bringToFront,\r\n \t\t\t\tmouseout: this._resetZIndex\r\n \t\t\t});\r\n \t\t}\r\n\r\n \t\tif (this.options.autoPanOnFocus) {\r\n \t\t\ton(icon, 'focus', this._panOnFocus, this);\r\n \t\t}\r\n\r\n \t\tvar newShadow = options.icon.createShadow(this._shadow),\r\n \t\t addShadow = false;\r\n\r\n \t\tif (newShadow !== this._shadow) {\r\n \t\t\tthis._removeShadow();\r\n \t\t\taddShadow = true;\r\n \t\t}\r\n\r\n \t\tif (newShadow) {\r\n \t\t\taddClass(newShadow, classToAdd);\r\n \t\t\tnewShadow.alt = '';\r\n \t\t}\r\n \t\tthis._shadow = newShadow;\r\n\r\n\r\n \t\tif (options.opacity < 1) {\r\n \t\t\tthis._updateOpacity();\r\n \t\t}\r\n\r\n\r\n \t\tif (addIcon) {\r\n \t\t\tthis.getPane().appendChild(this._icon);\r\n \t\t}\r\n \t\tthis._initInteraction();\r\n \t\tif (newShadow && addShadow) {\r\n \t\t\tthis.getPane(options.shadowPane).appendChild(this._shadow);\r\n \t\t}\r\n \t},\r\n\r\n \t_removeIcon: function () {\r\n \t\tif (this.options.riseOnHover) {\r\n \t\t\tthis.off({\r\n \t\t\t\tmouseover: this._bringToFront,\r\n \t\t\t\tmouseout: this._resetZIndex\r\n \t\t\t});\r\n \t\t}\r\n\r\n \t\tif (this.options.autoPanOnFocus) {\r\n \t\t\toff(this._icon, 'focus', this._panOnFocus, this);\r\n \t\t}\r\n\r\n \t\tremove(this._icon);\r\n \t\tthis.removeInteractiveTarget(this._icon);\r\n\r\n \t\tthis._icon = null;\r\n \t},\r\n\r\n \t_removeShadow: function () {\r\n \t\tif (this._shadow) {\r\n \t\t\tremove(this._shadow);\r\n \t\t}\r\n \t\tthis._shadow = null;\r\n \t},\r\n\r\n \t_setPos: function (pos) {\r\n\r\n \t\tif (this._icon) {\r\n \t\t\tsetPosition(this._icon, pos);\r\n \t\t}\r\n\r\n \t\tif (this._shadow) {\r\n \t\t\tsetPosition(this._shadow, pos);\r\n \t\t}\r\n\r\n \t\tthis._zIndex = pos.y + this.options.zIndexOffset;\r\n\r\n \t\tthis._resetZIndex();\r\n \t},\r\n\r\n \t_updateZIndex: function (offset) {\r\n \t\tif (this._icon) {\r\n \t\t\tthis._icon.style.zIndex = this._zIndex + offset;\r\n \t\t}\r\n \t},\r\n\r\n \t_animateZoom: function (opt) {\r\n \t\tvar pos = this._map._latLngToNewLayerPoint(this._latlng, opt.zoom, opt.center).round();\r\n\r\n \t\tthis._setPos(pos);\r\n \t},\r\n\r\n \t_initInteraction: function () {\r\n\r\n \t\tif (!this.options.interactive) { return; }\r\n\r\n \t\taddClass(this._icon, 'leaflet-interactive');\r\n\r\n \t\tthis.addInteractiveTarget(this._icon);\r\n\r\n \t\tif (MarkerDrag) {\r\n \t\t\tvar draggable = this.options.draggable;\r\n \t\t\tif (this.dragging) {\r\n \t\t\t\tdraggable = this.dragging.enabled();\r\n \t\t\t\tthis.dragging.disable();\r\n \t\t\t}\r\n\r\n \t\t\tthis.dragging = new MarkerDrag(this);\r\n\r\n \t\t\tif (draggable) {\r\n \t\t\t\tthis.dragging.enable();\r\n \t\t\t}\r\n \t\t}\r\n \t},\r\n\r\n \t// @method setOpacity(opacity: Number): this\r\n \t// Changes the opacity of the marker.\r\n \tsetOpacity: function (opacity) {\r\n \t\tthis.options.opacity = opacity;\r\n \t\tif (this._map) {\r\n \t\t\tthis._updateOpacity();\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_updateOpacity: function () {\r\n \t\tvar opacity = this.options.opacity;\r\n\r\n \t\tif (this._icon) {\r\n \t\t\tsetOpacity(this._icon, opacity);\r\n \t\t}\r\n\r\n \t\tif (this._shadow) {\r\n \t\t\tsetOpacity(this._shadow, opacity);\r\n \t\t}\r\n \t},\r\n\r\n \t_bringToFront: function () {\r\n \t\tthis._updateZIndex(this.options.riseOffset);\r\n \t},\r\n\r\n \t_resetZIndex: function () {\r\n \t\tthis._updateZIndex(0);\r\n \t},\r\n\r\n \t_panOnFocus: function () {\r\n \t\tvar map = this._map;\r\n \t\tif (!map) { return; }\r\n\r\n \t\tvar iconOpts = this.options.icon.options;\r\n \t\tvar size = iconOpts.iconSize ? toPoint(iconOpts.iconSize) : toPoint(0, 0);\r\n \t\tvar anchor = iconOpts.iconAnchor ? toPoint(iconOpts.iconAnchor) : toPoint(0, 0);\r\n\r\n \t\tmap.panInside(this._latlng, {\r\n \t\t\tpaddingTopLeft: anchor,\r\n \t\t\tpaddingBottomRight: size.subtract(anchor)\r\n \t\t});\r\n \t},\r\n\r\n \t_getPopupAnchor: function () {\r\n \t\treturn this.options.icon.options.popupAnchor;\r\n \t},\r\n\r\n \t_getTooltipAnchor: function () {\r\n \t\treturn this.options.icon.options.tooltipAnchor;\r\n \t}\r\n });\r\n\r\n\r\n // factory L.marker(latlng: LatLng, options? : Marker options)\r\n\r\n // @factory L.marker(latlng: LatLng, options? : Marker options)\r\n // Instantiates a Marker object given a geographical point and optionally an options object.\r\n function marker(latlng, options) {\r\n \treturn new Marker(latlng, options);\r\n }\n\n /*\n * @class Path\n * @aka L.Path\n * @inherits Interactive layer\n *\n * An abstract class that contains options and constants shared between vector\n * overlays (Polygon, Polyline, Circle). Do not use it directly. Extends `Layer`.\n */\n\n var Path = Layer.extend({\n\n \t// @section\n \t// @aka Path options\n \toptions: {\n \t\t// @option stroke: Boolean = true\n \t\t// Whether to draw stroke along the path. Set it to `false` to disable borders on polygons or circles.\n \t\tstroke: true,\n\n \t\t// @option color: String = '#3388ff'\n \t\t// Stroke color\n \t\tcolor: '#3388ff',\n\n \t\t// @option weight: Number = 3\n \t\t// Stroke width in pixels\n \t\tweight: 3,\n\n \t\t// @option opacity: Number = 1.0\n \t\t// Stroke opacity\n \t\topacity: 1,\n\n \t\t// @option lineCap: String= 'round'\n \t\t// A string that defines [shape to be used at the end](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-linecap) of the stroke.\n \t\tlineCap: 'round',\n\n \t\t// @option lineJoin: String = 'round'\n \t\t// A string that defines [shape to be used at the corners](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-linejoin) of the stroke.\n \t\tlineJoin: 'round',\n\n \t\t// @option dashArray: String = null\n \t\t// A string that defines the stroke [dash pattern](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-dasharray). Doesn't work on `Canvas`-powered layers in [some old browsers](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash#Browser_compatibility).\n \t\tdashArray: null,\n\n \t\t// @option dashOffset: String = null\n \t\t// A string that defines the [distance into the dash pattern to start the dash](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-dashoffset). Doesn't work on `Canvas`-powered layers in [some old browsers](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash#Browser_compatibility).\n \t\tdashOffset: null,\n\n \t\t// @option fill: Boolean = depends\n \t\t// Whether to fill the path with color. Set it to `false` to disable filling on polygons or circles.\n \t\tfill: false,\n\n \t\t// @option fillColor: String = *\n \t\t// Fill color. Defaults to the value of the [`color`](#path-color) option\n \t\tfillColor: null,\n\n \t\t// @option fillOpacity: Number = 0.2\n \t\t// Fill opacity.\n \t\tfillOpacity: 0.2,\n\n \t\t// @option fillRule: String = 'evenodd'\n \t\t// A string that defines [how the inside of a shape](https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rule) is determined.\n \t\tfillRule: 'evenodd',\n\n \t\t// className: '',\n\n \t\t// Option inherited from \"Interactive layer\" abstract class\n \t\tinteractive: true,\n\n \t\t// @option bubblingMouseEvents: Boolean = true\n \t\t// When `true`, a mouse event on this path will trigger the same event on the map\n \t\t// (unless [`L.DomEvent.stopPropagation`](#domevent-stoppropagation) is used).\n \t\tbubblingMouseEvents: true\n \t},\n\n \tbeforeAdd: function (map) {\n \t\t// Renderer is set here because we need to call renderer.getEvents\n \t\t// before this.getEvents.\n \t\tthis._renderer = map.getRenderer(this);\n \t},\n\n \tonAdd: function () {\n \t\tthis._renderer._initPath(this);\n \t\tthis._reset();\n \t\tthis._renderer._addPath(this);\n \t},\n\n \tonRemove: function () {\n \t\tthis._renderer._removePath(this);\n \t},\n\n \t// @method redraw(): this\n \t// Redraws the layer. Sometimes useful after you changed the coordinates that the path uses.\n \tredraw: function () {\n \t\tif (this._map) {\n \t\t\tthis._renderer._updatePath(this);\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method setStyle(style: Path options): this\n \t// Changes the appearance of a Path based on the options in the `Path options` object.\n \tsetStyle: function (style) {\n \t\tsetOptions(this, style);\n \t\tif (this._renderer) {\n \t\t\tthis._renderer._updateStyle(this);\n \t\t\tif (this.options.stroke && style && Object.prototype.hasOwnProperty.call(style, 'weight')) {\n \t\t\t\tthis._updateBounds();\n \t\t\t}\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method bringToFront(): this\n \t// Brings the layer to the top of all path layers.\n \tbringToFront: function () {\n \t\tif (this._renderer) {\n \t\t\tthis._renderer._bringToFront(this);\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method bringToBack(): this\n \t// Brings the layer to the bottom of all path layers.\n \tbringToBack: function () {\n \t\tif (this._renderer) {\n \t\t\tthis._renderer._bringToBack(this);\n \t\t}\n \t\treturn this;\n \t},\n\n \tgetElement: function () {\n \t\treturn this._path;\n \t},\n\n \t_reset: function () {\n \t\t// defined in child classes\n \t\tthis._project();\n \t\tthis._update();\n \t},\n\n \t_clickTolerance: function () {\n \t\t// used when doing hit detection for Canvas layers\n \t\treturn (this.options.stroke ? this.options.weight / 2 : 0) +\n \t\t (this._renderer.options.tolerance || 0);\n \t}\n });\n\n /*\n * @class CircleMarker\n * @aka L.CircleMarker\n * @inherits Path\n *\n * A circle of a fixed size with radius specified in pixels. Extends `Path`.\n */\n\n var CircleMarker = Path.extend({\n\n \t// @section\n \t// @aka CircleMarker options\n \toptions: {\n \t\tfill: true,\n\n \t\t// @option radius: Number = 10\n \t\t// Radius of the circle marker, in pixels\n \t\tradius: 10\n \t},\n\n \tinitialize: function (latlng, options) {\n \t\tsetOptions(this, options);\n \t\tthis._latlng = toLatLng(latlng);\n \t\tthis._radius = this.options.radius;\n \t},\n\n \t// @method setLatLng(latLng: LatLng): this\n \t// Sets the position of a circle marker to a new location.\n \tsetLatLng: function (latlng) {\n \t\tvar oldLatLng = this._latlng;\n \t\tthis._latlng = toLatLng(latlng);\n \t\tthis.redraw();\n\n \t\t// @event move: Event\n \t\t// Fired when the marker is moved via [`setLatLng`](#circlemarker-setlatlng). Old and new coordinates are included in event arguments as `oldLatLng`, `latlng`.\n \t\treturn this.fire('move', {oldLatLng: oldLatLng, latlng: this._latlng});\n \t},\n\n \t// @method getLatLng(): LatLng\n \t// Returns the current geographical position of the circle marker\n \tgetLatLng: function () {\n \t\treturn this._latlng;\n \t},\n\n \t// @method setRadius(radius: Number): this\n \t// Sets the radius of a circle marker. Units are in pixels.\n \tsetRadius: function (radius) {\n \t\tthis.options.radius = this._radius = radius;\n \t\treturn this.redraw();\n \t},\n\n \t// @method getRadius(): Number\n \t// Returns the current radius of the circle\n \tgetRadius: function () {\n \t\treturn this._radius;\n \t},\n\n \tsetStyle : function (options) {\n \t\tvar radius = options && options.radius || this._radius;\n \t\tPath.prototype.setStyle.call(this, options);\n \t\tthis.setRadius(radius);\n \t\treturn this;\n \t},\n\n \t_project: function () {\n \t\tthis._point = this._map.latLngToLayerPoint(this._latlng);\n \t\tthis._updateBounds();\n \t},\n\n \t_updateBounds: function () {\n \t\tvar r = this._radius,\n \t\t r2 = this._radiusY || r,\n \t\t w = this._clickTolerance(),\n \t\t p = [r + w, r2 + w];\n \t\tthis._pxBounds = new Bounds(this._point.subtract(p), this._point.add(p));\n \t},\n\n \t_update: function () {\n \t\tif (this._map) {\n \t\t\tthis._updatePath();\n \t\t}\n \t},\n\n \t_updatePath: function () {\n \t\tthis._renderer._updateCircle(this);\n \t},\n\n \t_empty: function () {\n \t\treturn this._radius && !this._renderer._bounds.intersects(this._pxBounds);\n \t},\n\n \t// Needed by the `Canvas` renderer for interactivity\n \t_containsPoint: function (p) {\n \t\treturn p.distanceTo(this._point) <= this._radius + this._clickTolerance();\n \t}\n });\n\n\n // @factory L.circleMarker(latlng: LatLng, options?: CircleMarker options)\n // Instantiates a circle marker object given a geographical point, and an optional options object.\n function circleMarker(latlng, options) {\n \treturn new CircleMarker(latlng, options);\n }\n\n /*\n * @class Circle\n * @aka L.Circle\n * @inherits CircleMarker\n *\n * A class for drawing circle overlays on a map. Extends `CircleMarker`.\n *\n * It's an approximation and starts to diverge from a real circle closer to poles (due to projection distortion).\n *\n * @example\n *\n * ```js\n * L.circle([50.5, 30.5], {radius: 200}).addTo(map);\n * ```\n */\n\n var Circle = CircleMarker.extend({\n\n \tinitialize: function (latlng, options, legacyOptions) {\n \t\tif (typeof options === 'number') {\n \t\t\t// Backwards compatibility with 0.7.x factory (latlng, radius, options?)\n \t\t\toptions = extend({}, legacyOptions, {radius: options});\n \t\t}\n \t\tsetOptions(this, options);\n \t\tthis._latlng = toLatLng(latlng);\n\n \t\tif (isNaN(this.options.radius)) { throw new Error('Circle radius cannot be NaN'); }\n\n \t\t// @section\n \t\t// @aka Circle options\n \t\t// @option radius: Number; Radius of the circle, in meters.\n \t\tthis._mRadius = this.options.radius;\n \t},\n\n \t// @method setRadius(radius: Number): this\n \t// Sets the radius of a circle. Units are in meters.\n \tsetRadius: function (radius) {\n \t\tthis._mRadius = radius;\n \t\treturn this.redraw();\n \t},\n\n \t// @method getRadius(): Number\n \t// Returns the current radius of a circle. Units are in meters.\n \tgetRadius: function () {\n \t\treturn this._mRadius;\n \t},\n\n \t// @method getBounds(): LatLngBounds\n \t// Returns the `LatLngBounds` of the path.\n \tgetBounds: function () {\n \t\tvar half = [this._radius, this._radiusY || this._radius];\n\n \t\treturn new LatLngBounds(\n \t\t\tthis._map.layerPointToLatLng(this._point.subtract(half)),\n \t\t\tthis._map.layerPointToLatLng(this._point.add(half)));\n \t},\n\n \tsetStyle: Path.prototype.setStyle,\n\n \t_project: function () {\n\n \t\tvar lng = this._latlng.lng,\n \t\t lat = this._latlng.lat,\n \t\t map = this._map,\n \t\t crs = map.options.crs;\n\n \t\tif (crs.distance === Earth.distance) {\n \t\t\tvar d = Math.PI / 180,\n \t\t\t latR = (this._mRadius / Earth.R) / d,\n \t\t\t top = map.project([lat + latR, lng]),\n \t\t\t bottom = map.project([lat - latR, lng]),\n \t\t\t p = top.add(bottom).divideBy(2),\n \t\t\t lat2 = map.unproject(p).lat,\n \t\t\t lngR = Math.acos((Math.cos(latR * d) - Math.sin(lat * d) * Math.sin(lat2 * d)) /\n \t\t\t (Math.cos(lat * d) * Math.cos(lat2 * d))) / d;\n\n \t\t\tif (isNaN(lngR) || lngR === 0) {\n \t\t\t\tlngR = latR / Math.cos(Math.PI / 180 * lat); // Fallback for edge case, #2425\n \t\t\t}\n\n \t\t\tthis._point = p.subtract(map.getPixelOrigin());\n \t\t\tthis._radius = isNaN(lngR) ? 0 : p.x - map.project([lat2, lng - lngR]).x;\n \t\t\tthis._radiusY = p.y - top.y;\n\n \t\t} else {\n \t\t\tvar latlng2 = crs.unproject(crs.project(this._latlng).subtract([this._mRadius, 0]));\n\n \t\t\tthis._point = map.latLngToLayerPoint(this._latlng);\n \t\t\tthis._radius = this._point.x - map.latLngToLayerPoint(latlng2).x;\n \t\t}\n\n \t\tthis._updateBounds();\n \t}\n });\n\n // @factory L.circle(latlng: LatLng, options?: Circle options)\n // Instantiates a circle object given a geographical point, and an options object\n // which contains the circle radius.\n // @alternative\n // @factory L.circle(latlng: LatLng, radius: Number, options?: Circle options)\n // Obsolete way of instantiating a circle, for compatibility with 0.7.x code.\n // Do not use in new applications or plugins.\n function circle(latlng, options, legacyOptions) {\n \treturn new Circle(latlng, options, legacyOptions);\n }\n\n /*\n * @class Polyline\n * @aka L.Polyline\n * @inherits Path\n *\n * A class for drawing polyline overlays on a map. Extends `Path`.\n *\n * @example\n *\n * ```js\n * // create a red polyline from an array of LatLng points\n * var latlngs = [\n * \t[45.51, -122.68],\n * \t[37.77, -122.43],\n * \t[34.04, -118.2]\n * ];\n *\n * var polyline = L.polyline(latlngs, {color: 'red'}).addTo(map);\n *\n * // zoom the map to the polyline\n * map.fitBounds(polyline.getBounds());\n * ```\n *\n * You can also pass a multi-dimensional array to represent a `MultiPolyline` shape:\n *\n * ```js\n * // create a red polyline from an array of arrays of LatLng points\n * var latlngs = [\n * \t[[45.51, -122.68],\n * \t [37.77, -122.43],\n * \t [34.04, -118.2]],\n * \t[[40.78, -73.91],\n * \t [41.83, -87.62],\n * \t [32.76, -96.72]]\n * ];\n * ```\n */\n\n\n var Polyline = Path.extend({\n\n \t// @section\n \t// @aka Polyline options\n \toptions: {\n \t\t// @option smoothFactor: Number = 1.0\n \t\t// How much to simplify the polyline on each zoom level. More means\n \t\t// better performance and smoother look, and less means more accurate representation.\n \t\tsmoothFactor: 1.0,\n\n \t\t// @option noClip: Boolean = false\n \t\t// Disable polyline clipping.\n \t\tnoClip: false\n \t},\n\n \tinitialize: function (latlngs, options) {\n \t\tsetOptions(this, options);\n \t\tthis._setLatLngs(latlngs);\n \t},\n\n \t// @method getLatLngs(): LatLng[]\n \t// Returns an array of the points in the path, or nested arrays of points in case of multi-polyline.\n \tgetLatLngs: function () {\n \t\treturn this._latlngs;\n \t},\n\n \t// @method setLatLngs(latlngs: LatLng[]): this\n \t// Replaces all the points in the polyline with the given array of geographical points.\n \tsetLatLngs: function (latlngs) {\n \t\tthis._setLatLngs(latlngs);\n \t\treturn this.redraw();\n \t},\n\n \t// @method isEmpty(): Boolean\n \t// Returns `true` if the Polyline has no LatLngs.\n \tisEmpty: function () {\n \t\treturn !this._latlngs.length;\n \t},\n\n \t// @method closestLayerPoint(p: Point): Point\n \t// Returns the point closest to `p` on the Polyline.\n \tclosestLayerPoint: function (p) {\n \t\tvar minDistance = Infinity,\n \t\t minPoint = null,\n \t\t closest = _sqClosestPointOnSegment,\n \t\t p1, p2;\n\n \t\tfor (var j = 0, jLen = this._parts.length; j < jLen; j++) {\n \t\t\tvar points = this._parts[j];\n\n \t\t\tfor (var i = 1, len = points.length; i < len; i++) {\n \t\t\t\tp1 = points[i - 1];\n \t\t\t\tp2 = points[i];\n\n \t\t\t\tvar sqDist = closest(p, p1, p2, true);\n\n \t\t\t\tif (sqDist < minDistance) {\n \t\t\t\t\tminDistance = sqDist;\n \t\t\t\t\tminPoint = closest(p, p1, p2);\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tif (minPoint) {\n \t\t\tminPoint.distance = Math.sqrt(minDistance);\n \t\t}\n \t\treturn minPoint;\n \t},\n\n \t// @method getCenter(): LatLng\n \t// Returns the center ([centroid](https://en.wikipedia.org/wiki/Centroid)) of the polyline.\n \tgetCenter: function () {\n \t\t// throws error when not yet added to map as this center calculation requires projected coordinates\n \t\tif (!this._map) {\n \t\t\tthrow new Error('Must add layer to map before using getCenter()');\n \t\t}\n\n \t\tvar i, halfDist, segDist, dist, p1, p2, ratio,\n \t\t points = this._rings[0],\n \t\t len = points.length;\n\n \t\tif (!len) { return null; }\n\n \t\t// polyline centroid algorithm; only uses the first ring if there are multiple\n\n \t\tfor (i = 0, halfDist = 0; i < len - 1; i++) {\n \t\t\thalfDist += points[i].distanceTo(points[i + 1]) / 2;\n \t\t}\n\n \t\t// The line is so small in the current view that all points are on the same pixel.\n \t\tif (halfDist === 0) {\n \t\t\treturn this._map.layerPointToLatLng(points[0]);\n \t\t}\n\n \t\tfor (i = 0, dist = 0; i < len - 1; i++) {\n \t\t\tp1 = points[i];\n \t\t\tp2 = points[i + 1];\n \t\t\tsegDist = p1.distanceTo(p2);\n \t\t\tdist += segDist;\n\n \t\t\tif (dist > halfDist) {\n \t\t\t\tratio = (dist - halfDist) / segDist;\n \t\t\t\treturn this._map.layerPointToLatLng([\n \t\t\t\t\tp2.x - ratio * (p2.x - p1.x),\n \t\t\t\t\tp2.y - ratio * (p2.y - p1.y)\n \t\t\t\t]);\n \t\t\t}\n \t\t}\n \t},\n\n \t// @method getBounds(): LatLngBounds\n \t// Returns the `LatLngBounds` of the path.\n \tgetBounds: function () {\n \t\treturn this._bounds;\n \t},\n\n \t// @method addLatLng(latlng: LatLng, latlngs?: LatLng[]): this\n \t// Adds a given point to the polyline. By default, adds to the first ring of\n \t// the polyline in case of a multi-polyline, but can be overridden by passing\n \t// a specific ring as a LatLng array (that you can earlier access with [`getLatLngs`](#polyline-getlatlngs)).\n \taddLatLng: function (latlng, latlngs) {\n \t\tlatlngs = latlngs || this._defaultShape();\n \t\tlatlng = toLatLng(latlng);\n \t\tlatlngs.push(latlng);\n \t\tthis._bounds.extend(latlng);\n \t\treturn this.redraw();\n \t},\n\n \t_setLatLngs: function (latlngs) {\n \t\tthis._bounds = new LatLngBounds();\n \t\tthis._latlngs = this._convertLatLngs(latlngs);\n \t},\n\n \t_defaultShape: function () {\n \t\treturn isFlat(this._latlngs) ? this._latlngs : this._latlngs[0];\n \t},\n\n \t// recursively convert latlngs input into actual LatLng instances; calculate bounds along the way\n \t_convertLatLngs: function (latlngs) {\n \t\tvar result = [],\n \t\t flat = isFlat(latlngs);\n\n \t\tfor (var i = 0, len = latlngs.length; i < len; i++) {\n \t\t\tif (flat) {\n \t\t\t\tresult[i] = toLatLng(latlngs[i]);\n \t\t\t\tthis._bounds.extend(result[i]);\n \t\t\t} else {\n \t\t\t\tresult[i] = this._convertLatLngs(latlngs[i]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t},\n\n \t_project: function () {\n \t\tvar pxBounds = new Bounds();\n \t\tthis._rings = [];\n \t\tthis._projectLatlngs(this._latlngs, this._rings, pxBounds);\n\n \t\tif (this._bounds.isValid() && pxBounds.isValid()) {\n \t\t\tthis._rawPxBounds = pxBounds;\n \t\t\tthis._updateBounds();\n \t\t}\n \t},\n\n \t_updateBounds: function () {\n \t\tvar w = this._clickTolerance(),\n \t\t p = new Point(w, w);\n\n \t\tif (!this._rawPxBounds) {\n \t\t\treturn;\n \t\t}\n\n \t\tthis._pxBounds = new Bounds([\n \t\t\tthis._rawPxBounds.min.subtract(p),\n \t\t\tthis._rawPxBounds.max.add(p)\n \t\t]);\n \t},\n\n \t// recursively turns latlngs into a set of rings with projected coordinates\n \t_projectLatlngs: function (latlngs, result, projectedBounds) {\n \t\tvar flat = latlngs[0] instanceof LatLng,\n \t\t len = latlngs.length,\n \t\t i, ring;\n\n \t\tif (flat) {\n \t\t\tring = [];\n \t\t\tfor (i = 0; i < len; i++) {\n \t\t\t\tring[i] = this._map.latLngToLayerPoint(latlngs[i]);\n \t\t\t\tprojectedBounds.extend(ring[i]);\n \t\t\t}\n \t\t\tresult.push(ring);\n \t\t} else {\n \t\t\tfor (i = 0; i < len; i++) {\n \t\t\t\tthis._projectLatlngs(latlngs[i], result, projectedBounds);\n \t\t\t}\n \t\t}\n \t},\n\n \t// clip polyline by renderer bounds so that we have less to render for performance\n \t_clipPoints: function () {\n \t\tvar bounds = this._renderer._bounds;\n\n \t\tthis._parts = [];\n \t\tif (!this._pxBounds || !this._pxBounds.intersects(bounds)) {\n \t\t\treturn;\n \t\t}\n\n \t\tif (this.options.noClip) {\n \t\t\tthis._parts = this._rings;\n \t\t\treturn;\n \t\t}\n\n \t\tvar parts = this._parts,\n \t\t i, j, k, len, len2, segment, points;\n\n \t\tfor (i = 0, k = 0, len = this._rings.length; i < len; i++) {\n \t\t\tpoints = this._rings[i];\n\n \t\t\tfor (j = 0, len2 = points.length; j < len2 - 1; j++) {\n \t\t\t\tsegment = clipSegment(points[j], points[j + 1], bounds, j, true);\n\n \t\t\t\tif (!segment) { continue; }\n\n \t\t\t\tparts[k] = parts[k] || [];\n \t\t\t\tparts[k].push(segment[0]);\n\n \t\t\t\t// if segment goes out of screen, or it's the last one, it's the end of the line part\n \t\t\t\tif ((segment[1] !== points[j + 1]) || (j === len2 - 2)) {\n \t\t\t\t\tparts[k].push(segment[1]);\n \t\t\t\t\tk++;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t},\n\n \t// simplify each clipped part of the polyline for performance\n \t_simplifyPoints: function () {\n \t\tvar parts = this._parts,\n \t\t tolerance = this.options.smoothFactor;\n\n \t\tfor (var i = 0, len = parts.length; i < len; i++) {\n \t\t\tparts[i] = simplify(parts[i], tolerance);\n \t\t}\n \t},\n\n \t_update: function () {\n \t\tif (!this._map) { return; }\n\n \t\tthis._clipPoints();\n \t\tthis._simplifyPoints();\n \t\tthis._updatePath();\n \t},\n\n \t_updatePath: function () {\n \t\tthis._renderer._updatePoly(this);\n \t},\n\n \t// Needed by the `Canvas` renderer for interactivity\n \t_containsPoint: function (p, closed) {\n \t\tvar i, j, k, len, len2, part,\n \t\t w = this._clickTolerance();\n\n \t\tif (!this._pxBounds || !this._pxBounds.contains(p)) { return false; }\n\n \t\t// hit detection for polylines\n \t\tfor (i = 0, len = this._parts.length; i < len; i++) {\n \t\t\tpart = this._parts[i];\n\n \t\t\tfor (j = 0, len2 = part.length, k = len2 - 1; j < len2; k = j++) {\n \t\t\t\tif (!closed && (j === 0)) { continue; }\n\n \t\t\t\tif (pointToSegmentDistance(p, part[k], part[j]) <= w) {\n \t\t\t\t\treturn true;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t\treturn false;\n \t}\n });\n\n // @factory L.polyline(latlngs: LatLng[], options?: Polyline options)\n // Instantiates a polyline object given an array of geographical points and\n // optionally an options object. You can create a `Polyline` object with\n // multiple separate lines (`MultiPolyline`) by passing an array of arrays\n // of geographic points.\n function polyline(latlngs, options) {\n \treturn new Polyline(latlngs, options);\n }\n\n // Retrocompat. Allow plugins to support Leaflet versions before and after 1.1.\n Polyline._flat = _flat;\n\n /*\n * @class Polygon\n * @aka L.Polygon\n * @inherits Polyline\n *\n * A class for drawing polygon overlays on a map. Extends `Polyline`.\n *\n * Note that points you pass when creating a polygon shouldn't have an additional last point equal to the first one — it's better to filter out such points.\n *\n *\n * @example\n *\n * ```js\n * // create a red polygon from an array of LatLng points\n * var latlngs = [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]];\n *\n * var polygon = L.polygon(latlngs, {color: 'red'}).addTo(map);\n *\n * // zoom the map to the polygon\n * map.fitBounds(polygon.getBounds());\n * ```\n *\n * You can also pass an array of arrays of latlngs, with the first array representing the outer shape and the other arrays representing holes in the outer shape:\n *\n * ```js\n * var latlngs = [\n * [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring\n * [[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole\n * ];\n * ```\n *\n * Additionally, you can pass a multi-dimensional array to represent a MultiPolygon shape.\n *\n * ```js\n * var latlngs = [\n * [ // first polygon\n * [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring\n * [[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole\n * ],\n * [ // second polygon\n * [[41, -111.03],[45, -111.04],[45, -104.05],[41, -104.05]]\n * ]\n * ];\n * ```\n */\n\n var Polygon = Polyline.extend({\n\n \toptions: {\n \t\tfill: true\n \t},\n\n \tisEmpty: function () {\n \t\treturn !this._latlngs.length || !this._latlngs[0].length;\n \t},\n\n \tgetCenter: function () {\n \t\t// throws error when not yet added to map as this center calculation requires projected coordinates\n \t\tif (!this._map) {\n \t\t\tthrow new Error('Must add layer to map before using getCenter()');\n \t\t}\n\n \t\tvar i, j, p1, p2, f, area, x, y, center,\n \t\t points = this._rings[0],\n \t\t len = points.length;\n\n \t\tif (!len) { return null; }\n\n \t\t// polygon centroid algorithm; only uses the first ring if there are multiple\n\n \t\tarea = x = y = 0;\n\n \t\tfor (i = 0, j = len - 1; i < len; j = i++) {\n \t\t\tp1 = points[i];\n \t\t\tp2 = points[j];\n\n \t\t\tf = p1.y * p2.x - p2.y * p1.x;\n \t\t\tx += (p1.x + p2.x) * f;\n \t\t\ty += (p1.y + p2.y) * f;\n \t\t\tarea += f * 3;\n \t\t}\n\n \t\tif (area === 0) {\n \t\t\t// Polygon is so small that all points are on same pixel.\n \t\t\tcenter = points[0];\n \t\t} else {\n \t\t\tcenter = [x / area, y / area];\n \t\t}\n \t\treturn this._map.layerPointToLatLng(center);\n \t},\n\n \t_convertLatLngs: function (latlngs) {\n \t\tvar result = Polyline.prototype._convertLatLngs.call(this, latlngs),\n \t\t len = result.length;\n\n \t\t// remove last point if it equals first one\n \t\tif (len >= 2 && result[0] instanceof LatLng && result[0].equals(result[len - 1])) {\n \t\t\tresult.pop();\n \t\t}\n \t\treturn result;\n \t},\n\n \t_setLatLngs: function (latlngs) {\n \t\tPolyline.prototype._setLatLngs.call(this, latlngs);\n \t\tif (isFlat(this._latlngs)) {\n \t\t\tthis._latlngs = [this._latlngs];\n \t\t}\n \t},\n\n \t_defaultShape: function () {\n \t\treturn isFlat(this._latlngs[0]) ? this._latlngs[0] : this._latlngs[0][0];\n \t},\n\n \t_clipPoints: function () {\n \t\t// polygons need a different clipping algorithm so we redefine that\n\n \t\tvar bounds = this._renderer._bounds,\n \t\t w = this.options.weight,\n \t\t p = new Point(w, w);\n\n \t\t// increase clip padding by stroke width to avoid stroke on clip edges\n \t\tbounds = new Bounds(bounds.min.subtract(p), bounds.max.add(p));\n\n \t\tthis._parts = [];\n \t\tif (!this._pxBounds || !this._pxBounds.intersects(bounds)) {\n \t\t\treturn;\n \t\t}\n\n \t\tif (this.options.noClip) {\n \t\t\tthis._parts = this._rings;\n \t\t\treturn;\n \t\t}\n\n \t\tfor (var i = 0, len = this._rings.length, clipped; i < len; i++) {\n \t\t\tclipped = clipPolygon(this._rings[i], bounds, true);\n \t\t\tif (clipped.length) {\n \t\t\t\tthis._parts.push(clipped);\n \t\t\t}\n \t\t}\n \t},\n\n \t_updatePath: function () {\n \t\tthis._renderer._updatePoly(this, true);\n \t},\n\n \t// Needed by the `Canvas` renderer for interactivity\n \t_containsPoint: function (p) {\n \t\tvar inside = false,\n \t\t part, p1, p2, i, j, k, len, len2;\n\n \t\tif (!this._pxBounds || !this._pxBounds.contains(p)) { return false; }\n\n \t\t// ray casting algorithm for detecting if point is in polygon\n \t\tfor (i = 0, len = this._parts.length; i < len; i++) {\n \t\t\tpart = this._parts[i];\n\n \t\t\tfor (j = 0, len2 = part.length, k = len2 - 1; j < len2; k = j++) {\n \t\t\t\tp1 = part[j];\n \t\t\t\tp2 = part[k];\n\n \t\t\t\tif (((p1.y > p.y) !== (p2.y > p.y)) && (p.x < (p2.x - p1.x) * (p.y - p1.y) / (p2.y - p1.y) + p1.x)) {\n \t\t\t\t\tinside = !inside;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// also check if it's on polygon stroke\n \t\treturn inside || Polyline.prototype._containsPoint.call(this, p, true);\n \t}\n\n });\n\n\n // @factory L.polygon(latlngs: LatLng[], options?: Polyline options)\n function polygon(latlngs, options) {\n \treturn new Polygon(latlngs, options);\n }\n\n /*\r\n * @class GeoJSON\r\n * @aka L.GeoJSON\r\n * @inherits FeatureGroup\r\n *\r\n * Represents a GeoJSON object or an array of GeoJSON objects. Allows you to parse\r\n * GeoJSON data and display it on the map. Extends `FeatureGroup`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.geoJSON(data, {\r\n * \tstyle: function (feature) {\r\n * \t\treturn {color: feature.properties.color};\r\n * \t}\r\n * }).bindPopup(function (layer) {\r\n * \treturn layer.feature.properties.description;\r\n * }).addTo(map);\r\n * ```\r\n */\r\n\r\n var GeoJSON = FeatureGroup.extend({\r\n\r\n \t/* @section\r\n \t * @aka GeoJSON options\r\n \t *\r\n \t * @option pointToLayer: Function = *\r\n \t * A `Function` defining how GeoJSON points spawn Leaflet layers. It is internally\r\n \t * called when data is added, passing the GeoJSON point feature and its `LatLng`.\r\n \t * The default is to spawn a default `Marker`:\r\n \t * ```js\r\n \t * function(geoJsonPoint, latlng) {\r\n \t * \treturn L.marker(latlng);\r\n \t * }\r\n \t * ```\r\n \t *\r\n \t * @option style: Function = *\r\n \t * A `Function` defining the `Path options` for styling GeoJSON lines and polygons,\r\n \t * called internally when data is added.\r\n \t * The default value is to not override any defaults:\r\n \t * ```js\r\n \t * function (geoJsonFeature) {\r\n \t * \treturn {}\r\n \t * }\r\n \t * ```\r\n \t *\r\n \t * @option onEachFeature: Function = *\r\n \t * A `Function` that will be called once for each created `Feature`, after it has\r\n \t * been created and styled. Useful for attaching events and popups to features.\r\n \t * The default is to do nothing with the newly created layers:\r\n \t * ```js\r\n \t * function (feature, layer) {}\r\n \t * ```\r\n \t *\r\n \t * @option filter: Function = *\r\n \t * A `Function` that will be used to decide whether to include a feature or not.\r\n \t * The default is to include all features:\r\n \t * ```js\r\n \t * function (geoJsonFeature) {\r\n \t * \treturn true;\r\n \t * }\r\n \t * ```\r\n \t * Note: dynamically changing the `filter` option will have effect only on newly\r\n \t * added data. It will _not_ re-evaluate already included features.\r\n \t *\r\n \t * @option coordsToLatLng: Function = *\r\n \t * A `Function` that will be used for converting GeoJSON coordinates to `LatLng`s.\r\n \t * The default is the `coordsToLatLng` static method.\r\n \t *\r\n \t * @option markersInheritOptions: Boolean = false\r\n \t * Whether default Markers for \"Point\" type Features inherit from group options.\r\n \t */\r\n\r\n \tinitialize: function (geojson, options) {\r\n \t\tsetOptions(this, options);\r\n\r\n \t\tthis._layers = {};\r\n\r\n \t\tif (geojson) {\r\n \t\t\tthis.addData(geojson);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method addData( data ): this\r\n \t// Adds a GeoJSON object to the layer.\r\n \taddData: function (geojson) {\r\n \t\tvar features = isArray(geojson) ? geojson : geojson.features,\r\n \t\t i, len, feature;\r\n\r\n \t\tif (features) {\r\n \t\t\tfor (i = 0, len = features.length; i < len; i++) {\r\n \t\t\t\t// only add this if geometry or geometries are set and not null\r\n \t\t\t\tfeature = features[i];\r\n \t\t\t\tif (feature.geometries || feature.geometry || feature.features || feature.coordinates) {\r\n \t\t\t\t\tthis.addData(feature);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\tvar options = this.options;\r\n\r\n \t\tif (options.filter && !options.filter(geojson)) { return this; }\r\n\r\n \t\tvar layer = geometryToLayer(geojson, options);\r\n \t\tif (!layer) {\r\n \t\t\treturn this;\r\n \t\t}\r\n \t\tlayer.feature = asFeature(geojson);\r\n\r\n \t\tlayer.defaultOptions = layer.options;\r\n \t\tthis.resetStyle(layer);\r\n\r\n \t\tif (options.onEachFeature) {\r\n \t\t\toptions.onEachFeature(geojson, layer);\r\n \t\t}\r\n\r\n \t\treturn this.addLayer(layer);\r\n \t},\r\n\r\n \t// @method resetStyle( layer? ): this\r\n \t// Resets the given vector layer's style to the original GeoJSON style, useful for resetting style after hover events.\r\n \t// If `layer` is omitted, the style of all features in the current layer is reset.\r\n \tresetStyle: function (layer) {\r\n \t\tif (layer === undefined) {\r\n \t\t\treturn this.eachLayer(this.resetStyle, this);\r\n \t\t}\r\n \t\t// reset any custom styles\r\n \t\tlayer.options = extend({}, layer.defaultOptions);\r\n \t\tthis._setLayerStyle(layer, this.options.style);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method setStyle( style ): this\r\n \t// Changes styles of GeoJSON vector layers with the given style function.\r\n \tsetStyle: function (style) {\r\n \t\treturn this.eachLayer(function (layer) {\r\n \t\t\tthis._setLayerStyle(layer, style);\r\n \t\t}, this);\r\n \t},\r\n\r\n \t_setLayerStyle: function (layer, style) {\r\n \t\tif (layer.setStyle) {\r\n \t\t\tif (typeof style === 'function') {\r\n \t\t\t\tstyle = style(layer.feature);\r\n \t\t\t}\r\n \t\t\tlayer.setStyle(style);\r\n \t\t}\r\n \t}\r\n });\r\n\r\n // @section\r\n // There are several static functions which can be called without instantiating L.GeoJSON:\r\n\r\n // @function geometryToLayer(featureData: Object, options?: GeoJSON options): Layer\r\n // Creates a `Layer` from a given GeoJSON feature. Can use a custom\r\n // [`pointToLayer`](#geojson-pointtolayer) and/or [`coordsToLatLng`](#geojson-coordstolatlng)\r\n // functions if provided as options.\r\n function geometryToLayer(geojson, options) {\r\n\r\n \tvar geometry = geojson.type === 'Feature' ? geojson.geometry : geojson,\r\n \t coords = geometry ? geometry.coordinates : null,\r\n \t layers = [],\r\n \t pointToLayer = options && options.pointToLayer,\r\n \t _coordsToLatLng = options && options.coordsToLatLng || coordsToLatLng,\r\n \t latlng, latlngs, i, len;\r\n\r\n \tif (!coords && !geometry) {\r\n \t\treturn null;\r\n \t}\r\n\r\n \tswitch (geometry.type) {\r\n \tcase 'Point':\r\n \t\tlatlng = _coordsToLatLng(coords);\r\n \t\treturn _pointToLayer(pointToLayer, geojson, latlng, options);\r\n\r\n \tcase 'MultiPoint':\r\n \t\tfor (i = 0, len = coords.length; i < len; i++) {\r\n \t\t\tlatlng = _coordsToLatLng(coords[i]);\r\n \t\t\tlayers.push(_pointToLayer(pointToLayer, geojson, latlng, options));\r\n \t\t}\r\n \t\treturn new FeatureGroup(layers);\r\n\r\n \tcase 'LineString':\r\n \tcase 'MultiLineString':\r\n \t\tlatlngs = coordsToLatLngs(coords, geometry.type === 'LineString' ? 0 : 1, _coordsToLatLng);\r\n \t\treturn new Polyline(latlngs, options);\r\n\r\n \tcase 'Polygon':\r\n \tcase 'MultiPolygon':\r\n \t\tlatlngs = coordsToLatLngs(coords, geometry.type === 'Polygon' ? 1 : 2, _coordsToLatLng);\r\n \t\treturn new Polygon(latlngs, options);\r\n\r\n \tcase 'GeometryCollection':\r\n \t\tfor (i = 0, len = geometry.geometries.length; i < len; i++) {\r\n \t\t\tvar layer = geometryToLayer({\r\n \t\t\t\tgeometry: geometry.geometries[i],\r\n \t\t\t\ttype: 'Feature',\r\n \t\t\t\tproperties: geojson.properties\r\n \t\t\t}, options);\r\n\r\n \t\t\tif (layer) {\r\n \t\t\t\tlayers.push(layer);\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn new FeatureGroup(layers);\r\n\r\n \tdefault:\r\n \t\tthrow new Error('Invalid GeoJSON object.');\r\n \t}\r\n }\r\n\r\n function _pointToLayer(pointToLayerFn, geojson, latlng, options) {\r\n \treturn pointToLayerFn ?\r\n \t\tpointToLayerFn(geojson, latlng) :\r\n \t\tnew Marker(latlng, options && options.markersInheritOptions && options);\r\n }\r\n\r\n // @function coordsToLatLng(coords: Array): LatLng\r\n // Creates a `LatLng` object from an array of 2 numbers (longitude, latitude)\r\n // or 3 numbers (longitude, latitude, altitude) used in GeoJSON for points.\r\n function coordsToLatLng(coords) {\r\n \treturn new LatLng(coords[1], coords[0], coords[2]);\r\n }\r\n\r\n // @function coordsToLatLngs(coords: Array, levelsDeep?: Number, coordsToLatLng?: Function): Array\r\n // Creates a multidimensional array of `LatLng`s from a GeoJSON coordinates array.\r\n // `levelsDeep` specifies the nesting level (0 is for an array of points, 1 for an array of arrays of points, etc., 0 by default).\r\n // Can use a custom [`coordsToLatLng`](#geojson-coordstolatlng) function.\r\n function coordsToLatLngs(coords, levelsDeep, _coordsToLatLng) {\r\n \tvar latlngs = [];\r\n\r\n \tfor (var i = 0, len = coords.length, latlng; i < len; i++) {\r\n \t\tlatlng = levelsDeep ?\r\n \t\t\tcoordsToLatLngs(coords[i], levelsDeep - 1, _coordsToLatLng) :\r\n \t\t\t(_coordsToLatLng || coordsToLatLng)(coords[i]);\r\n\r\n \t\tlatlngs.push(latlng);\r\n \t}\r\n\r\n \treturn latlngs;\r\n }\r\n\r\n // @function latLngToCoords(latlng: LatLng, precision?: Number|false): Array\r\n // Reverse of [`coordsToLatLng`](#geojson-coordstolatlng)\r\n // Coordinates values are rounded with [`formatNum`](#util-formatnum) function.\r\n function latLngToCoords(latlng, precision) {\r\n \tlatlng = toLatLng(latlng);\r\n \treturn latlng.alt !== undefined ?\r\n \t\t[formatNum(latlng.lng, precision), formatNum(latlng.lat, precision), formatNum(latlng.alt, precision)] :\r\n \t\t[formatNum(latlng.lng, precision), formatNum(latlng.lat, precision)];\r\n }\r\n\r\n // @function latLngsToCoords(latlngs: Array, levelsDeep?: Number, closed?: Boolean, precision?: Number|false): Array\r\n // Reverse of [`coordsToLatLngs`](#geojson-coordstolatlngs)\r\n // `closed` determines whether the first point should be appended to the end of the array to close the feature, only used when `levelsDeep` is 0. False by default.\r\n // Coordinates values are rounded with [`formatNum`](#util-formatnum) function.\r\n function latLngsToCoords(latlngs, levelsDeep, closed, precision) {\r\n \tvar coords = [];\r\n\r\n \tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n \t\tcoords.push(levelsDeep ?\r\n \t\t\tlatLngsToCoords(latlngs[i], levelsDeep - 1, closed, precision) :\r\n \t\t\tlatLngToCoords(latlngs[i], precision));\r\n \t}\r\n\r\n \tif (!levelsDeep && closed) {\r\n \t\tcoords.push(coords[0]);\r\n \t}\r\n\r\n \treturn coords;\r\n }\r\n\r\n function getFeature(layer, newGeometry) {\r\n \treturn layer.feature ?\r\n \t\textend({}, layer.feature, {geometry: newGeometry}) :\r\n \t\tasFeature(newGeometry);\r\n }\r\n\r\n // @function asFeature(geojson: Object): Object\r\n // Normalize GeoJSON geometries/features into GeoJSON features.\r\n function asFeature(geojson) {\r\n \tif (geojson.type === 'Feature' || geojson.type === 'FeatureCollection') {\r\n \t\treturn geojson;\r\n \t}\r\n\r\n \treturn {\r\n \t\ttype: 'Feature',\r\n \t\tproperties: {},\r\n \t\tgeometry: geojson\r\n \t};\r\n }\r\n\r\n var PointToGeoJSON = {\r\n \ttoGeoJSON: function (precision) {\r\n \t\treturn getFeature(this, {\r\n \t\t\ttype: 'Point',\r\n \t\t\tcoordinates: latLngToCoords(this.getLatLng(), precision)\r\n \t\t});\r\n \t}\r\n };\r\n\r\n // @namespace Marker\r\n // @section Other methods\r\n // @method toGeoJSON(precision?: Number|false): Object\r\n // Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n // Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the marker (as a GeoJSON `Point` Feature).\r\n Marker.include(PointToGeoJSON);\r\n\r\n // @namespace CircleMarker\r\n // @method toGeoJSON(precision?: Number|false): Object\r\n // Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n // Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the circle marker (as a GeoJSON `Point` Feature).\r\n Circle.include(PointToGeoJSON);\r\n CircleMarker.include(PointToGeoJSON);\r\n\r\n\r\n // @namespace Polyline\r\n // @method toGeoJSON(precision?: Number|false): Object\r\n // Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n // Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the polyline (as a GeoJSON `LineString` or `MultiLineString` Feature).\r\n Polyline.include({\r\n \ttoGeoJSON: function (precision) {\r\n \t\tvar multi = !isFlat(this._latlngs);\r\n\r\n \t\tvar coords = latLngsToCoords(this._latlngs, multi ? 1 : 0, false, precision);\r\n\r\n \t\treturn getFeature(this, {\r\n \t\t\ttype: (multi ? 'Multi' : '') + 'LineString',\r\n \t\t\tcoordinates: coords\r\n \t\t});\r\n \t}\r\n });\r\n\r\n // @namespace Polygon\r\n // @method toGeoJSON(precision?: Number|false): Object\r\n // Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n // Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the polygon (as a GeoJSON `Polygon` or `MultiPolygon` Feature).\r\n Polygon.include({\r\n \ttoGeoJSON: function (precision) {\r\n \t\tvar holes = !isFlat(this._latlngs),\r\n \t\t multi = holes && !isFlat(this._latlngs[0]);\r\n\r\n \t\tvar coords = latLngsToCoords(this._latlngs, multi ? 2 : holes ? 1 : 0, true, precision);\r\n\r\n \t\tif (!holes) {\r\n \t\t\tcoords = [coords];\r\n \t\t}\r\n\r\n \t\treturn getFeature(this, {\r\n \t\t\ttype: (multi ? 'Multi' : '') + 'Polygon',\r\n \t\t\tcoordinates: coords\r\n \t\t});\r\n \t}\r\n });\r\n\r\n\r\n // @namespace LayerGroup\r\n LayerGroup.include({\r\n \ttoMultiPoint: function (precision) {\r\n \t\tvar coords = [];\r\n\r\n \t\tthis.eachLayer(function (layer) {\r\n \t\t\tcoords.push(layer.toGeoJSON(precision).geometry.coordinates);\r\n \t\t});\r\n\r\n \t\treturn getFeature(this, {\r\n \t\t\ttype: 'MultiPoint',\r\n \t\t\tcoordinates: coords\r\n \t\t});\r\n \t},\r\n\r\n \t// @method toGeoJSON(precision?: Number|false): Object\r\n \t// Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n \t// Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the layer group (as a GeoJSON `FeatureCollection`, `GeometryCollection`, or `MultiPoint`).\r\n \ttoGeoJSON: function (precision) {\r\n\r\n \t\tvar type = this.feature && this.feature.geometry && this.feature.geometry.type;\r\n\r\n \t\tif (type === 'MultiPoint') {\r\n \t\t\treturn this.toMultiPoint(precision);\r\n \t\t}\r\n\r\n \t\tvar isGeometryCollection = type === 'GeometryCollection',\r\n \t\t jsons = [];\r\n\r\n \t\tthis.eachLayer(function (layer) {\r\n \t\t\tif (layer.toGeoJSON) {\r\n \t\t\t\tvar json = layer.toGeoJSON(precision);\r\n \t\t\t\tif (isGeometryCollection) {\r\n \t\t\t\t\tjsons.push(json.geometry);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tvar feature = asFeature(json);\r\n \t\t\t\t\t// Squash nested feature collections\r\n \t\t\t\t\tif (feature.type === 'FeatureCollection') {\r\n \t\t\t\t\t\tjsons.push.apply(jsons, feature.features);\r\n \t\t\t\t\t} else {\r\n \t\t\t\t\t\tjsons.push(feature);\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t});\r\n\r\n \t\tif (isGeometryCollection) {\r\n \t\t\treturn getFeature(this, {\r\n \t\t\t\tgeometries: jsons,\r\n \t\t\t\ttype: 'GeometryCollection'\r\n \t\t\t});\r\n \t\t}\r\n\r\n \t\treturn {\r\n \t\t\ttype: 'FeatureCollection',\r\n \t\t\tfeatures: jsons\r\n \t\t};\r\n \t}\r\n });\r\n\r\n // @namespace GeoJSON\r\n // @factory L.geoJSON(geojson?: Object, options?: GeoJSON options)\r\n // Creates a GeoJSON layer. Optionally accepts an object in\r\n // [GeoJSON format](https://tools.ietf.org/html/rfc7946) to display on the map\r\n // (you can alternatively add it later with `addData` method) and an `options` object.\r\n function geoJSON(geojson, options) {\r\n \treturn new GeoJSON(geojson, options);\r\n }\r\n\r\n // Backward compatibility.\r\n var geoJson = geoJSON;\n\n /*\r\n * @class ImageOverlay\r\n * @aka L.ImageOverlay\r\n * @inherits Interactive layer\r\n *\r\n * Used to load and display a single image over specific bounds of the map. Extends `Layer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var imageUrl = 'https://maps.lib.utexas.edu/maps/historical/newark_nj_1922.jpg',\r\n * \timageBounds = [[40.712216, -74.22655], [40.773941, -74.12544]];\r\n * L.imageOverlay(imageUrl, imageBounds).addTo(map);\r\n * ```\r\n */\r\n\r\n var ImageOverlay = Layer.extend({\r\n\r\n \t// @section\r\n \t// @aka ImageOverlay options\r\n \toptions: {\r\n \t\t// @option opacity: Number = 1.0\r\n \t\t// The opacity of the image overlay.\r\n \t\topacity: 1,\r\n\r\n \t\t// @option alt: String = ''\r\n \t\t// Text for the `alt` attribute of the image (useful for accessibility).\r\n \t\talt: '',\r\n\r\n \t\t// @option interactive: Boolean = false\r\n \t\t// If `true`, the image overlay will emit [mouse events](#interactive-layer) when clicked or hovered.\r\n \t\tinteractive: false,\r\n\r\n \t\t// @option crossOrigin: Boolean|String = false\r\n \t\t// Whether the crossOrigin attribute will be added to the image.\r\n \t\t// If a String is provided, the image will have its crossOrigin attribute set to the String provided. This is needed if you want to access image pixel data.\r\n \t\t// Refer to [CORS Settings](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for valid String values.\r\n \t\tcrossOrigin: false,\r\n\r\n \t\t// @option errorOverlayUrl: String = ''\r\n \t\t// URL to the overlay image to show in place of the overlay that failed to load.\r\n \t\terrorOverlayUrl: '',\r\n\r\n \t\t// @option zIndex: Number = 1\r\n \t\t// The explicit [zIndex](https://developer.mozilla.org/docs/Web/CSS/CSS_Positioning/Understanding_z_index) of the overlay layer.\r\n \t\tzIndex: 1,\r\n\r\n \t\t// @option className: String = ''\r\n \t\t// A custom class name to assign to the image. Empty by default.\r\n \t\tclassName: ''\r\n \t},\r\n\r\n \tinitialize: function (url, bounds, options) { // (String, LatLngBounds, Object)\r\n \t\tthis._url = url;\r\n \t\tthis._bounds = toLatLngBounds(bounds);\r\n\r\n \t\tsetOptions(this, options);\r\n \t},\r\n\r\n \tonAdd: function () {\r\n \t\tif (!this._image) {\r\n \t\t\tthis._initImage();\r\n\r\n \t\t\tif (this.options.opacity < 1) {\r\n \t\t\t\tthis._updateOpacity();\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (this.options.interactive) {\r\n \t\t\taddClass(this._image, 'leaflet-interactive');\r\n \t\t\tthis.addInteractiveTarget(this._image);\r\n \t\t}\r\n\r\n \t\tthis.getPane().appendChild(this._image);\r\n \t\tthis._reset();\r\n \t},\r\n\r\n \tonRemove: function () {\r\n \t\tremove(this._image);\r\n \t\tif (this.options.interactive) {\r\n \t\t\tthis.removeInteractiveTarget(this._image);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method setOpacity(opacity: Number): this\r\n \t// Sets the opacity of the overlay.\r\n \tsetOpacity: function (opacity) {\r\n \t\tthis.options.opacity = opacity;\r\n\r\n \t\tif (this._image) {\r\n \t\t\tthis._updateOpacity();\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \tsetStyle: function (styleOpts) {\r\n \t\tif (styleOpts.opacity) {\r\n \t\t\tthis.setOpacity(styleOpts.opacity);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method bringToFront(): this\r\n \t// Brings the layer to the top of all overlays.\r\n \tbringToFront: function () {\r\n \t\tif (this._map) {\r\n \t\t\ttoFront(this._image);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method bringToBack(): this\r\n \t// Brings the layer to the bottom of all overlays.\r\n \tbringToBack: function () {\r\n \t\tif (this._map) {\r\n \t\t\ttoBack(this._image);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method setUrl(url: String): this\r\n \t// Changes the URL of the image.\r\n \tsetUrl: function (url) {\r\n \t\tthis._url = url;\r\n\r\n \t\tif (this._image) {\r\n \t\t\tthis._image.src = url;\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method setBounds(bounds: LatLngBounds): this\r\n \t// Update the bounds that this ImageOverlay covers\r\n \tsetBounds: function (bounds) {\r\n \t\tthis._bounds = toLatLngBounds(bounds);\r\n\r\n \t\tif (this._map) {\r\n \t\t\tthis._reset();\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \tgetEvents: function () {\r\n \t\tvar events = {\r\n \t\t\tzoom: this._reset,\r\n \t\t\tviewreset: this._reset\r\n \t\t};\r\n\r\n \t\tif (this._zoomAnimated) {\r\n \t\t\tevents.zoomanim = this._animateZoom;\r\n \t\t}\r\n\r\n \t\treturn events;\r\n \t},\r\n\r\n \t// @method setZIndex(value: Number): this\r\n \t// Changes the [zIndex](#imageoverlay-zindex) of the image overlay.\r\n \tsetZIndex: function (value) {\r\n \t\tthis.options.zIndex = value;\r\n \t\tthis._updateZIndex();\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getBounds(): LatLngBounds\r\n \t// Get the bounds that this ImageOverlay covers\r\n \tgetBounds: function () {\r\n \t\treturn this._bounds;\r\n \t},\r\n\r\n \t// @method getElement(): HTMLElement\r\n \t// Returns the instance of [`HTMLImageElement`](https://developer.mozilla.org/docs/Web/API/HTMLImageElement)\r\n \t// used by this overlay.\r\n \tgetElement: function () {\r\n \t\treturn this._image;\r\n \t},\r\n\r\n \t_initImage: function () {\r\n \t\tvar wasElementSupplied = this._url.tagName === 'IMG';\r\n \t\tvar img = this._image = wasElementSupplied ? this._url : create$1('img');\r\n\r\n \t\taddClass(img, 'leaflet-image-layer');\r\n \t\tif (this._zoomAnimated) { addClass(img, 'leaflet-zoom-animated'); }\r\n \t\tif (this.options.className) { addClass(img, this.options.className); }\r\n\r\n \t\timg.onselectstart = falseFn;\r\n \t\timg.onmousemove = falseFn;\r\n\r\n \t\t// @event load: Event\r\n \t\t// Fired when the ImageOverlay layer has loaded its image\r\n \t\timg.onload = bind(this.fire, this, 'load');\r\n \t\timg.onerror = bind(this._overlayOnError, this, 'error');\r\n\r\n \t\tif (this.options.crossOrigin || this.options.crossOrigin === '') {\r\n \t\t\timg.crossOrigin = this.options.crossOrigin === true ? '' : this.options.crossOrigin;\r\n \t\t}\r\n\r\n \t\tif (this.options.zIndex) {\r\n \t\t\tthis._updateZIndex();\r\n \t\t}\r\n\r\n \t\tif (wasElementSupplied) {\r\n \t\t\tthis._url = img.src;\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\timg.src = this._url;\r\n \t\timg.alt = this.options.alt;\r\n \t},\r\n\r\n \t_animateZoom: function (e) {\r\n \t\tvar scale = this._map.getZoomScale(e.zoom),\r\n \t\t offset = this._map._latLngBoundsToNewLayerBounds(this._bounds, e.zoom, e.center).min;\r\n\r\n \t\tsetTransform(this._image, offset, scale);\r\n \t},\r\n\r\n \t_reset: function () {\r\n \t\tvar image = this._image,\r\n \t\t bounds = new Bounds(\r\n \t\t this._map.latLngToLayerPoint(this._bounds.getNorthWest()),\r\n \t\t this._map.latLngToLayerPoint(this._bounds.getSouthEast())),\r\n \t\t size = bounds.getSize();\r\n\r\n \t\tsetPosition(image, bounds.min);\r\n\r\n \t\timage.style.width = size.x + 'px';\r\n \t\timage.style.height = size.y + 'px';\r\n \t},\r\n\r\n \t_updateOpacity: function () {\r\n \t\tsetOpacity(this._image, this.options.opacity);\r\n \t},\r\n\r\n \t_updateZIndex: function () {\r\n \t\tif (this._image && this.options.zIndex !== undefined && this.options.zIndex !== null) {\r\n \t\t\tthis._image.style.zIndex = this.options.zIndex;\r\n \t\t}\r\n \t},\r\n\r\n \t_overlayOnError: function () {\r\n \t\t// @event error: Event\r\n \t\t// Fired when the ImageOverlay layer fails to load its image\r\n \t\tthis.fire('error');\r\n\r\n \t\tvar errorUrl = this.options.errorOverlayUrl;\r\n \t\tif (errorUrl && this._url !== errorUrl) {\r\n \t\t\tthis._url = errorUrl;\r\n \t\t\tthis._image.src = errorUrl;\r\n \t\t}\r\n \t},\r\n\r\n \t// @method getCenter(): LatLng\r\n \t// Returns the center of the ImageOverlay.\r\n \tgetCenter: function () {\r\n \t\treturn this._bounds.getCenter();\r\n \t}\r\n });\r\n\r\n // @factory L.imageOverlay(imageUrl: String, bounds: LatLngBounds, options?: ImageOverlay options)\r\n // Instantiates an image overlay object given the URL of the image and the\r\n // geographical bounds it is tied to.\r\n var imageOverlay = function (url, bounds, options) {\r\n \treturn new ImageOverlay(url, bounds, options);\r\n };\n\n /*\r\n * @class VideoOverlay\r\n * @aka L.VideoOverlay\r\n * @inherits ImageOverlay\r\n *\r\n * Used to load and display a video player over specific bounds of the map. Extends `ImageOverlay`.\r\n *\r\n * A video overlay uses the [`