{"version":3,"file":"bundle.js","mappings":"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,CACfv1J,MAAO,iBACP+C,OAAQ,CAAE1C,SAAU,CAClBkJ,EAAKxH,kBAAkB,CACrB/B,MAAO,QACPG,IAAK,QACLzE,UAAW,cAIX85J,EAAe,CACnB95J,UAAW,SACXsE,MAAO,IACPG,IAAK,IACLE,SAAU,CACRkJ,EAAKxJ,iBACLq1J,EACAE,IAGJA,EAAMj1J,SAASrJ,KAAKw+J,GACpB,MAUMC,EAAa,CACjBz1J,MAAO,UACPG,IAAK,OACLE,SAAU,CACR,CACEL,MAAO,gBACPtE,UAAW,UAEb6N,EAAKzI,YACLs0J,IAcEM,EAAgBnsJ,EAAK9H,QAAQ,CACjCE,OAAQ,IAZa,CACrB,OACA,OACA,MACA,KACA,MACA,MACA,OACA,OACA,QAG2BzF,KAAK,QAChC+D,UAAW,KAEP01J,EAAW,CACfj6J,UAAW,WACXsE,MAAO,4BACPuF,aAAa,EACblF,SAAU,CAAEkJ,EAAKJ,QAAQI,EAAKrI,WAAY,CAAElB,MAAO,gBACnDC,UAAW,GA0Pb,MAAO,CACLvG,KAAM,OACN+P,QAAS,CAAE,MACXhH,SAAU,CACRqF,SAAU,wBACVjE,QA5Pa,CACf,KACA,OACA,OACA,OACA,KACA,MACA,QACA,KACA,KACA,OACA,OACA,OACA,YAgPE+xJ,QA7Oa,CACf,OACA,SA4OEC,SAAU,CApOZ,QACA,KACA,WACA,OACA,OACA,OACA,SACA,UACA,OACA,MACA,WACA,SACA,QACA,OACA,QACA,OACA,QACA,QAIA,QACA,OACA,UACA,SACA,UACA,UACA,OACA,SACA,OACA,MACA,QACA,SACA,UACA,SACA,OACA,YACA,SACA,OACA,UACA,SACA,UA+LI,MACA,QA5LJ,WACA,KACA,UACA,MACA,MACA,QACA,QACA,gBACA,WACA,UACA,eACA,YACA,aACA,YACA,WACA,UACA,aACA,OACA,UACA,SACA,SACA,SACA,UACA,KACA,KACA,QACA,YACA,SACA,QACA,UACA,UACA,OACA,OACA,QACA,MACA,SACA,OACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,OACA,UACA,SACA,aACA,SACA,UACA,WACA,QACA,OACA,SACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,aACA,QACA,OACA,cACA,UACA,SACA,OAIA,QACA,QACA,QACA,QACA,KACA,KACA,KACA,MACA,YACA,KACA,KACA,QACA,SACA,QACA,SACA,KACA,WACA,KACA,QACA,QACA,OACA,QACA,WACA,OACA,QACA,SACA,SACA,MACA,QACA,OACA,SACA,MACA,SACA,MACA,OACA,OACA,OACA,SACA,KACA,SACA,KACA,QACA,MACA,KACA,UACA,YACA,YACA,YACA,YACA,OACA,OACA,QACA,MACA,MACA,OACA,KACA,QACA,WACA,OACA,KACA,OACA,WACA,SACA,OACA,UACA,KACA,OACA,MACA,OACA,SAEA,SACA,SACA,KACA,OACA,UACA,OACA,QACA,QACA,UACA,QACA,WACA,SACA,MACA,WACA,SACA,MACA,QACA,OACA,SACA,OACA,MACA,OACA,UAEA,MACA,QACA,SACA,SACA,QACA,MACA,SACA,QAoBAx1J,SAAU,CACRq1J,EACAnsJ,EAAK9H,UACLk0J,EACAF,EACAlsJ,EAAK1I,kBACL00J,EAxPc,CAAEj2J,MAAO,kBA0PvBk2J,EA7TkB,CACpB95J,UAAW,GACXsE,MAAO,OAGW,CAClBtE,UAAW,SACXsE,MAAO,IACPG,IAAK,KAwTHi1J,GAGN,CChYA,MAAM11J,GAAW,2BACXo2J,GAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIC,GAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAIIC,GAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,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Ae,6BAEjB,CAIEtC,MAAO,kBAAoBuJ,EAAK5J,oBAAzB,gEAQP4F,aAAY,EACZygB,MAAO,WACP3lB,SAAU,CACRq3J,EACAnuJ,EAAKJ,QAAQI,EAAKrI,WAAY,CAAElB,MAAOs2J,EAAY56J,UAAW,qBAIlE,CACE4D,MAAO,SACPW,UAAW,GAEb83J,EAIA,CACEz4J,MAAO,MAAQg3J,EACfr2J,UAAW,GAEb,CACEX,MAAO,CAAE,0BACT5D,UAAW,CAAE,EAAG,kBAChB2E,SAAU,CAAEq3J,IAEdI,EAhOwB,CAC1B73J,UAAW,EACXX,MAAO,sBACP5D,UAAW,qBA+NTi8J,EACAK,EACA,CACE14J,MAAO,WAIf,CC1uBA,MAAM,GAAW,2BACX,GAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEI,GAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAII,GAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,eAGI,GAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,YAGI,GAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGI,GAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UAGI,GAAY,GAAGnB,OACnB,GACA,GACA,IA4lBF,SAASg6J,GAAW5uJ,GAClB,MAAM6uJ,EAllBR,SAAoB7uJ,GAClB,MAAMpK,EAAQoK,EAAKpK,MAcbm3J,EAAa,GACbC,EACG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iK,KAAKwiK,GACjBE,EAAgBr5J,SAAWw5J,EAEpB,CACLngK,KAAM,OACNqM,kBAAkB,EAClB0D,QAAS,CAAE,OACXpJ,SAAUgB,EAEd,CC/LA,MAAMA,GAASkI,IACN,CACLuwJ,UAAW,CACT/+J,MAAO,OACPiF,MAAO,cAET+5J,cAAexwJ,EAAK3I,qBACpBo5J,SAAU,CACRj/J,MAAO,SACPiF,MAAO,mDAETi6J,kBAAmB,CACjBv+J,UAAW,WACXsE,MAAO,gBAETk6J,wBAAyB,CACvBn/J,MAAO,gBACPiF,MAAO,KACPG,IAAK,KACLC,QAAS,IACTC,SAAU,CACRkJ,EAAKrJ,iBACLqJ,EAAKjJ,oBAGT65J,gBAAiB,CACfp/J,MAAO,SACPiF,MAAOuJ,EAAK3J,UAAL2J,kGASPtJ,UAAW,GAEbm6J,aAAc,CACZ1+J,UAAW,OACXsE,MAAO,8BAKPq6J,GAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,GAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,GAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,GAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,GAAa,CACjB,gBACA,cACA,aACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,YACA,kBACA,OACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,SACA,OACA,aACA,cACA,QACA,UACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,QACA,WACA,MACA,WACA,eACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,wBACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,WAGA91C,UASF,SAAS6K,GAAIjmH,GACX,MAAMpK,EAAQoK,EAAKpK,MACbu7J,EAAQr5J,GAAMkI,GAKdoxJ,EAAU,CACdpxJ,EAAKrJ,iBACLqJ,EAAKjJ,mBAGP,MAAO,CACL5G,KAAM,MACNqM,kBAAkB,EAClB3F,QAAS,UACTqC,SAAU,CAAEm4J,iBAAkB,WAC9BpzJ,iBAAkB,CAGhBozJ,iBAAkB,gBACpBv6J,SAAU,CACRq6J,EAAMX,cAnBY,CAAE/5J,MAAO,gCAuB3B06J,EAAMP,gBACN,CACEz+J,UAAW,cACXsE,MAAO,kBACPC,UAAW,GAEb,CACEvE,UAAW,iBACXsE,MAAO,6BACPC,UAAW,GAEby6J,EAAMR,wBACN,CACEx+J,UAAW,kBACX4M,SAAU,CACR,CAAEtI,MAAO,KAAOu6J,GAAer+J,KAAK,KAAO,KAC3C,CAAE8D,MAAO,SAAWw6J,GAAgBt+J,KAAK,KAAO,OASpDw+J,EAAMN,aACN,CACE1+J,UAAW,YACXsE,MAAO,OAASy6J,GAAWv+J,KAAK,KAAO,QAGzC,CACE8D,MAAO,IACPG,IAAK,QACLE,SAAU,CACRq6J,EAAMX,cACNW,EAAMV,SACNU,EAAMZ,UACNY,EAAMP,mBACHQ,EAIH,CACE36J,MAAO,mBACPG,IAAK,KACLF,UAAW,EACXwC,SAAU,CAAEozJ,SAAU,gBACtBx1J,SAAU,IACLs6J,EACH,CACEj/J,UAAW,SAGXsE,MAAO,OACPiI,gBAAgB,EAChBxC,YAAY,KAIlBi1J,EAAMT,oBAGV,CACEj6J,MAAOb,EAAMjB,UAAU,KACvBiC,IAAK,OACLF,UAAW,EACXG,QAAS,IACTC,SAAU,CACR,CACE3E,UAAW,UACXsE,MA5Fa,qBA8Ff,CACEA,MAAO,KACPiI,gBAAgB,EAChBxC,YAAY,EACZxF,UAAW,EACXwC,SAAU,CACRqF,SAAU,UACVjE,QAtGS,kBAuGTy/G,UAAWg3C,GAAep+J,KAAK,MAEjCmE,SAAU,CACR,CACEL,MAAO,eACPtE,UAAW,gBAEVi/J,EACHD,EAAMP,oBAKd,CACEz+J,UAAW,eACXsE,MAAO,OAASq6J,GAAKn+J,KAAK,KAAO,SAIzC,CCvtBA,SAAS2+J,GAAOtxJ,GACd,MAAMpK,EAAQoK,EAAKpK,MACbO,EAAW,qCACXo7J,EAAiB,CACrB,MACA,KACA,SACA,QACA,QACA,QACA,OACA,QACA,WACA,MACA,MACA,OACA,OACA,SACA,UACA,MACA,OACA,SACA,KACA,SACA,KACA,KACA,SACA,QACA,cACA,MACA,KACA,OACA,QACA,SACA,MACA,QACA,OACA,SAuGIhF,EAAW,CACfhuJ,SAAU,sBACVjE,QAASi3J,EACTjF,SAvGgB,CAChB,aACA,MACA,MACA,MACA,QACA,MACA,OACA,aACA,YACA,QACA,WACA,MACA,cACA,UACA,UACA,UACA,OACA,MACA,SACA,YACA,OACA,OACA,SACA,QACA,SACA,YACA,UACA,UACA,UACA,OACA,OACA,MACA,KACA,QACA,MACA,aACA,aACA,OACA,MACA,OACA,SACA,MACA,MACA,aACA,MACA,OACA,SACA,MACA,OACA,MACA,MACA,QACA,WACA,QACA,OACA,WACA,QACA,MACA,UACA,QACA,SACA,eACA,MACA,MACA,QACA,QACA,OACA,OACA,OAmCAD,QAhCe,CACf,YACA,WACA,QACA,OACA,iBACA,QA2BAvuJ,KArBY,CACZ,MACA,WACA,YACA,OACA,OACA,UACA,UACA,WACA,WACA,MACA,QACA,OACA,UAWI0zJ,EAAS,CACbr/J,UAAW,OACXsE,MAAO,kBAGHs1J,EAAQ,CACZ55J,UAAW,QACXsE,MAAO,KACPG,IAAK,KACLsC,SAAUqzJ,EACV11J,QAAS,KAGL46J,EAAkB,CACtBh7J,MAAO,OACPC,UAAW,GAGPs5J,EAAS,CACb79J,UAAW,SACX2E,SAAU,CAAEkJ,EAAKxJ,kBACjBuI,SAAU,CACR,CACEtI,MAAO,yCACPG,IAAK,MACLE,SAAU,CACRkJ,EAAKxJ,iBACLg7J,GAEF96J,UAAW,IAEb,CACED,MAAO,yCACPG,IAAK,MACLE,SAAU,CACRkJ,EAAKxJ,iBACLg7J,GAEF96J,UAAW,IAEb,CACED,MAAO,8BACPG,IAAK,MACLE,SAAU,CACRkJ,EAAKxJ,iBACLg7J,EACAC,EACA1F,IAGJ,CACEt1J,MAAO,8BACPG,IAAK,MACLE,SAAU,CACRkJ,EAAKxJ,iBACLg7J,EACAC,EACA1F,IAGJ,CACEt1J,MAAO,eACPG,IAAK,IACLF,UAAW,IAEb,CACED,MAAO,eACPG,IAAK,IACLF,UAAW,IAEb,CACED,MAAO,4BACPG,IAAK,KAEP,CACEH,MAAO,4BACPG,IAAK,KAEP,CACEH,MAAO,4BACPG,IAAK,IACLE,SAAU,CACRkJ,EAAKxJ,iBACLi7J,EACA1F,IAGJ,CACEt1J,MAAO,4BACPG,IAAK,IACLE,SAAU,CACRkJ,EAAKxJ,iBACLi7J,EACA1F,IAGJ/rJ,EAAKrJ,iBACLqJ,EAAKjJ,oBAKH26J,EAAY,kBACZC,EAAa,QAAQD,WAAmBA,UAAkBA,QAM1D/8J,EAAY,OAAO48J,EAAe5+J,KAAK,OACvCi7J,EAAS,CACbz7J,UAAW,SACXuE,UAAW,EACXqI,SAAU,CAWR,CACEtI,MAAO,QAAQi7J,OAAeC,gBAAyBD,aAAqB/8J,MAE9E,CACE8B,MAAO,IAAIk7J,WASb,CACEl7J,MAAO,0CAA0C9B,MAEnD,CACE8B,MAAO,4BAA4B9B,MAErC,CACE8B,MAAO,6BAA6B9B,MAEtC,CACE8B,MAAO,mCAAmC9B,MAK5C,CACE8B,MAAO,OAAOi7J,YAAoB/8J,QAIlCi9J,EAAe,CACnBz/J,UAAW,UACXsE,MAAOb,EAAMjB,UAAU,WACvBiC,IAAK,IACLsC,SAAUqzJ,EACVz1J,SAAU,CACR,CACEL,MAAO,WAGT,CACEA,MAAO,IACPG,IAAK,OACL8H,gBAAgB,KAIhByvJ,EAAS,CACbh8J,UAAW,SACX4M,SAAU,CAER,CACE5M,UAAW,GACXsE,MAAO,UACPsF,MAAM,GAER,CACEtF,MAAO,KACPG,IAAK,KACLM,cAAc,EACdgF,YAAY,EACZhD,SAAUqzJ,EACVz1J,SAAU,CACR,OACA06J,EACA5D,EACAoC,EACAhwJ,EAAK1I,sBAWb,OANAy0J,EAAMj1J,SAAW,CACfk5J,EACApC,EACA4D,GAGK,CACLrhK,KAAM,SACN+P,QAAS,CACP,KACA,MACA,WAEFzD,cAAc,EACdvD,SAAUqzJ,EACV11J,QAAS,iBACTC,SAAU,CACR06J,EACA5D,EACA,CAEEn3J,MAAO,YAET,CAGEsC,cAAe,KACfrC,UAAW,GAEbs5J,EACA4B,EACA5xJ,EAAK1I,kBACL,CACEvB,MAAO,CACL,QAAS,MACTI,GAEF3E,MAAO,CACL,EAAG,UACH,EAAG,kBAELsF,SAAU,CAAEq3J,IAEd,CACEpvJ,SAAU,CACR,CACEhJ,MAAO,CACL,UAAW,MACXI,EAAU,MACV,QAASA,EAAS,UAGtB,CACEJ,MAAO,CACL,UAAW,MACXI,KAIN3E,MAAO,CACL,EAAG,UACH,EAAG,cACH,EAAG,0BAGP,CACEW,UAAW,OACXsE,MAAO,WACPG,IAAK,UACLE,SAAU,CACR82J,EACAO,EACA6B,KAKV,CCtaA,SAAS9/I,GAAGlQ,GACV,MAwEMusJ,EAAW,CACfjyJ,QA5BU,CACV,QACA,OACA,OACA,QACA,WACA,UACA,QACA,OACA,cACA,MACA,OACA,KACA,OACA,KACA,SACA,YACA,MACA,UACA,QACA,SACA,SACA,SACA,SACA,OACA,OAIAwD,KAnDY,CACZ,OACA,OACA,YACA,aACA,QACA,UACA,UACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,MACA,OACA,UACA,QAgCAuuJ,QA3Ee,CACf,OACA,QACA,OACA,OAwEAC,SAtEgB,CAChB,SACA,MACA,QACA,UACA,OACA,OACA,MACA,OACA,MACA,QACA,QACA,UACA,OACA,UACA,WAyDF,MAAO,CACLn8J,KAAM,KACN+P,QAAS,CAAE,UACXhH,SAAUqzJ,EACV11J,QAAS,KACTC,SAAU,CACRkJ,EAAK5I,oBACL4I,EAAK3I,qBACL,CACElF,UAAW,SACX4M,SAAU,CACRiB,EAAKjJ,kBACLiJ,EAAKrJ,iBACL,CACEF,MAAO,IACPG,IAAK,OAIX,CACEzE,UAAW,SACX4M,SAAU,CACR,CACEtI,MAAOuJ,EAAK1J,YAAc,MAC1BI,UAAW,GAEbsJ,EAAKxI,gBAGT,CAAEf,MAAO,MAET,CACEtE,UAAW,WACX4G,cAAe,OACfnC,IAAK,cACLsF,YAAY,EACZpF,SAAU,CACRkJ,EAAKrI,WACL,CACExF,UAAW,SACXsE,MAAO,KACPG,IAAK,KACL+C,YAAY,EACZT,SAAUqzJ,EACV11J,QAAS,WAMrB,CCjIA,SAASg7J,GAAK7xJ,GACZ,MAAMpK,EAAQoK,EAAKpK,MACbk8J,EAAkB,CACtB3/J,UAAW,wBACXuE,UAAW,EACXD,MAAOb,EAAMhB,OACX,KACA,YACAoL,EAAK7J,SACLP,EAAMjB,UAAU,WAEdo9J,EAAgB,wCA8DhBC,EAAW,CAEf,QAEA,OACA,OACA,QACA,OACA,OACA,KACA,QACA,SACA,UACA,QACA,QACA,YACA,aACA,KACA,MACA,QACA,QACA,OACA,OACA,UACA,WACA,SACA,eACA,sBACA,oBACA,iBACA,WAEA,UACA,aACA,YACA,SACA,OACA,OACA,UACA,iBACA,gBACA,mBACA,OACA,SACA,QACA,UACA,eACA,iBACA,eACA,QACA,kBACA,eACA,cACA,SACA,WACA,UACA,aACA,OACA,iBACA,eACA,OACA,SACA,WACA,eACA,aACA,oBAEIvF,EAAQ,CACZ,KACA,MACA,MACA,MACA,OACA,QACA,KACA,MACA,MACA,MACA,OACA,QACA,MACA,MACA,MACA,OACA,OACA,MACA,SACA,SACA,SACA,OAEF,MAAO,CACLt8J,KAAM,OACN+P,QAAS,CAAE,MACXhH,SAAU,CACRqF,SAAUyB,EAAK7J,SAAW,KAC1B2H,KAAM2uJ,EACNnyJ,QA9Ja,CACf,WACA,KACA,QACA,QACA,SACA,MACA,QACA,QACA,WACA,QACA,KACA,MACA,OACA,OACA,SACA,QACA,QACA,KACA,MACA,KACA,OACA,KACA,MACA,OACA,QACA,QACA,MACA,OACA,MACA,WACA,OACA,MACA,MACA,SACA,OACA,OACA,SACA,SACA,QACA,QACA,OACA,MACA,OACA,SACA,SACA,UACA,MACA,UACA,QACA,QACA,SA4GE+xJ,QA1Ga,CACf,OACA,QACA,OACA,OACA,KACA,OAqGEC,SAAU0F,GAEZn7J,QAAS,KACTC,SAAU,CACRkJ,EAAK5I,oBACL4I,EAAKhJ,QAAQ,OAAQ,OAAQ,CAAEF,SAAU,CAAE,UAC3CkJ,EAAKJ,QAAQI,EAAKjJ,kBAAmB,CACnCN,MAAO,MACPI,QAAS,OAEX,CACE1E,UAAW,SACX4M,SAAU,CACR,CAAE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CPG,IAAK,IACLC,QAAS,MACTC,SAAU,CAAEkJ,EAAKxJ,mBAEnB,CACEC,MAAO,sEACPG,IAAK,IACLC,QAAS,KAEXmJ,EAAKxH,kBAAkB,CACrB/B,MAAO,mCACPG,IAAK,0BAKLw8J,EAAU,CACdjhK,UAAW,SACX4M,SAAU,CACR,CAAEtI,MAAO,iBACT,CAAEA,MAAO,yFACT,CAAEA,MAAO,wFAEXC,UAAW,GAGP28J,EAAe,CACnBlhK,UAAW,OACXsE,MAAO,eACPG,IAAK,IACLsC,SAAU,CAAEoB,QACR,0FAEJxD,SAAU,CACR,CACEL,MAAO,OACPC,UAAW,GAEbsJ,EAAKJ,QAAQwxJ,EAAS,CAAEj/J,UAAW,WACnC,CACEA,UAAW,SACXsE,MAAO,SAETW,EACA4I,EAAK3I,uBAIHM,EAAa,CACjBxF,UAAW,QACXsE,MAAOb,EAAMd,SAASo+J,GAAgBlzJ,EAAK7J,SAC3CO,UAAW,GAGP48J,EAAiB19J,EAAMd,SAASo+J,GAAgBlzJ,EAAK7J,SAAW,UA6RhE09J,EAAe,CACnB/1J,KAhMqB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,UAiLAxD,QA5RwB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,UAsMA+xJ,QAde,CACf,OACA,QACA,UACA,UACA,QAUAC,SANe,CAAE,WAOjBwH,YAjLiB,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,iBA6HIpD,EAAoB,CACxBv+J,UAAW,oBACXuE,UAAW,EACXwC,SAAU,CAER66J,MA/HmB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,aA4BAt9J,MAAOb,EAAMhB,OACX,KACA,eACA,SACA,UACA,aACA,YACAoL,EAAK7J,SACLP,EAAMjB,UAAU,sBAGd4+J,EAAsB,CAC1B7C,EACA2C,EACAO,EACAx8J,EACA4I,EAAK3I,qBACL+7J,EACAhC,GAGIoC,EAAqB,CAIzBz0J,SAAU,CACR,CACEtI,MAAO,IACPG,IAAK,KAEP,CACEH,MAAO,KACPG,IAAK,MAEP,CACEmC,cAAe,wBACfnC,IAAK,MAGTsC,SAAU26J,EACV/8J,SAAUy8J,EAAoB3+J,OAAO,CACnC,CACE6B,MAAO,KACPG,IAAK,KACLsC,SAAU26J,EACV/8J,SAAUy8J,EAAoB3+J,OAAO,CAAE,SACvC8B,UAAW,KAGfA,UAAW,GAGP+8J,EAAuB,CAC3BthK,UAAW,WACXsE,MAAO,IAAM08J,EAAmB,eAAiBG,EACjDt3J,aAAa,EACbpF,IAAK,QACLsF,YAAY,EACZhD,SAAU26J,EACVh9J,QAAS,iBACTC,SAAU,CACR,CACEL,MAAOw8J,EACP/5J,SAAU26J,EACVn9J,UAAW,GAEb,CACED,MAAO68J,EACPt3J,aAAa,EACblF,SAAU,CAAEa,GACZjB,UAAW,GAIb,CACED,MAAO,KACPC,UAAW,GAGb,CACED,MAAO,IACPiI,gBAAgB,EAChB5H,SAAU,CACRs6J,EACAgC,IAKJ,CACE18J,UAAW,EACXX,MAAO,KAET,CACE5D,UAAW,SACXsE,MAAO,KACPG,IAAK,KACLsC,SAAU26J,EACVn9J,UAAW,EACXI,SAAU,CACRM,EACA4I,EAAK3I,qBACL+5J,EACAgC,EACAQ,EAEA,CACEn9J,MAAO,KACPG,IAAK,KACLsC,SAAU26J,EACVn9J,UAAW,EACXI,SAAU,CACR,OACAM,EACA4I,EAAK3I,qBACL+5J,EACAgC,EACAQ,MAKRA,EACAx8J,EACA4I,EAAK3I,qBACLg8J,IAIJ,MAAO,CACLljK,KAAM,MACN+P,QAAS,CACP,KACA,MACA,MACA,MACA,KACA,MACA,OAEFhH,SAAU26J,EACVh9J,QAAS,KACToH,iBAAkB,CAAE,oBAAqB,YACzCnH,SAAU,GAAGlC,OACX4+J,EACAC,EACA/C,EACA6C,EACA,CACEF,EACA,CACE58J,MAAO,4MACPG,IAAK,IACLsC,SAAU26J,EACV/8J,SAAU,CACR,OACA88J,IAGJ,CACEn9J,MAAOuJ,EAAK7J,SAAW,KACvB+C,SAAU26J,GAEZ,CACE99J,MAAO,CAEL,wDACA,MACA,OAEF5D,UAAW,CACT,EAAG,UACH,EAAG,kBAKf,CC5iBA,SAAS6hK,GAAOh0J,GACd,MA6IMusJ,EAAW,CACfjyJ,QAjGsB,CACtB,WACA,KACA,OACA,QACA,OACA,QACA,QACA,QACA,WACA,KACA,OACA,QACA,WACA,SACA,UACA,QACA,MACA,UACA,OACA,KACA,WACA,KACA,YACA,WACA,KACA,OACA,YACA,MACA,WACA,MACA,WACA,SACA,UACA,YACA,SACA,WACA,SACA,MACA,SACA,SACA,SACA,SACA,aACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,YACA,SACA,QACA,UACA,OACA,WACA,SAwCyB1F,OAtCC,CAC1B,MACA,QACA,MACA,YACA,QACA,QACA,KACA,aACA,SACA,OACA,MACA,SACA,QACA,OACA,OACA,OACA,MACA,SACA,MACA,UACA,KACA,KACA,UACA,UACA,SACA,SACA,MACA,YACA,UACA,MACA,OACA,QACA,OACA,UAKA03J,SA/IwB,CACxB,OACA,OACA,OACA,UACA,WACA,SACA,UACA,OACA,QACA,MACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,UA4HAD,QAzGuB,CACvB,UACA,QACA,OACA,SAuGI10J,EAAaqI,EAAKJ,QAAQI,EAAKrI,WAAY,CAAElB,MAAO,uBACpD28J,EAAU,CACdjhK,UAAW,SACX4M,SAAU,CACR,CAAEtI,MAAO,iBACT,CAAEA,MAAO,mEACT,CAAEA,MAAO,wFAEXC,UAAW,GAEPu9J,EAAkB,CACtB9hK,UAAW,SACXsE,MAAO,KACPG,IAAK,IACLE,SAAU,CAAE,CAAEL,MAAO,QAEjBy9J,EAAwBl0J,EAAKJ,QAAQq0J,EAAiB,CAAEp9J,QAAS,OACjEk1J,EAAQ,CACZ55J,UAAW,QACXsE,MAAO,KACPG,IAAK,KACLsC,SAAUqzJ,GAEN4H,EAAcn0J,EAAKJ,QAAQmsJ,EAAO,CAAEl1J,QAAS,OAC7Cu9J,EAAsB,CAC1BjiK,UAAW,SACXsE,MAAO,MACPG,IAAK,IACLC,QAAS,KACTC,SAAU,CACR,CAAEL,MAAO,QACT,CAAEA,MAAO,QACTuJ,EAAKxJ,iBACL29J,IAGEE,EAA+B,CACnCliK,UAAW,SACXsE,MAAO,OACPG,IAAK,IACLE,SAAU,CACR,CAAEL,MAAO,QACT,CAAEA,MAAO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","sources":["webpack:///webpack/runtime/create fake namespace object","webpack:///webpack/runtime/load script","webpack:///./node_modules/denque/index.js","webpack:///./node_modules/highlight.js/lib/core.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/get mini-css chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/css loading","webpack:///webpack/runtime/jsonp chunk loading","webpack:///./node_modules/swiper/shared/ssr-window.esm.mjs","webpack:///./node_modules/swiper/shared/utils.mjs","webpack:///./node_modules/swiper/shared/swiper-core.mjs","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack:///./node_modules/swiper/shared/classes-to-selector.mjs","webpack:///./node_modules/swiper/modules/manipulation.mjs","webpack:///./node_modules/swiper/shared/effect-init.mjs","webpack:///./node_modules/swiper/shared/effect-target.mjs","webpack:///./node_modules/swiper/shared/effect-virtual-transition-end.mjs","webpack:///./node_modules/swiper/shared/create-shadow.mjs","webpack:///./node_modules/swiper/swiper-bundle.mjs","webpack:///./node_modules/swiper/modules/virtual.mjs","webpack:///./node_modules/swiper/modules/keyboard.mjs","webpack:///./node_modules/swiper/modules/mousewheel.mjs","webpack:///./node_modules/swiper/modules/navigation.mjs","webpack:///./node_modules/swiper/modules/pagination.mjs","webpack:///./node_modules/swiper/modules/scrollbar.mjs","webpack:///./node_modules/swiper/modules/parallax.mjs","webpack:///./node_modules/swiper/modules/zoom.mjs","webpack:///./node_modules/swiper/modules/controller.mjs","webpack:///./node_modules/swiper/modules/a11y.mjs","webpack:///./node_modules/swiper/modules/history.mjs","webpack:///./node_modules/swiper/modules/hash-navigation.mjs","webpack:///./node_modules/swiper/modules/autoplay.mjs","webpack:///./node_modules/swiper/modules/thumbs.mjs","webpack:///./node_modules/swiper/modules/free-mode.mjs","webpack:///./node_modules/swiper/modules/grid.mjs","webpack:///./node_modules/swiper/modules/effect-fade.mjs","webpack:///./node_modules/swiper/modules/effect-cube.mjs","webpack:///./node_modules/swiper/modules/effect-flip.mjs","webpack:///./node_modules/swiper/modules/effect-coverflow.mjs","webpack:///./node_modules/swiper/modules/effect-creative.mjs","webpack:///./node_modules/swiper/modules/effect-cards.mjs","webpack:///./node_modules/swiper/shared/update-swiper.mjs","webpack:///./node_modules/swiper/shared/get-element-params.mjs","webpack:///./node_modules/swiper/swiper-element-bundle.mjs","webpack:///./src/logging-init.ts","webpack:///./src/device-info.ts","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/lift.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack:///./node_modules/rxjs/dist/esm5/internal/config.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack:///./node_modules/rxjs/dist/esm5/internal/NotificationFactories.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/errorContext.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/map.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isPromise.js","webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Observable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/args.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/from.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/concat.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/of.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Scheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/async.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Subject.js","webpack:///./src/logging.ts","webpack:///../dotnet/UI.Blazor/Services/ScreenSize/screen-size.ts","webpack:///./src/font-sizes.ts","webpack:///./node_modules/heap-js/dist/heap-js.es5.js","webpack:///./src/timerQueue.ts","webpack:///./src/timeout.ts","webpack:///./src/promises.ts","webpack:///./src/event-handling.ts","webpack:///./src/theme.ts","webpack:///./src/versioning.ts","webpack:///./src/on-device-awake.ts","webpack:///./src/connectivity.ts","webpack:///./node_modules/@firebase/util/dist/index.esm2017.js","webpack:///./node_modules/@firebase/component/dist/esm/index.esm2017.js","webpack:///./node_modules/@firebase/logger/dist/esm/index.esm2017.js","webpack:///./node_modules/idb/build/wrap-idb-value.js","webpack:///./node_modules/idb/build/index.js","webpack:///./node_modules/@firebase/app/dist/esm/index.esm2017.js","webpack:///./node_modules/firebase/app/dist/esm/index.esm.js","webpack:///./node_modules/@firebase/installations/dist/esm/index.esm2017.js","webpack:///./node_modules/@firebase/analytics/dist/esm/index.esm2017.js","webpack:///../dotnet/UI.Blazor/Services/BrowserInit/browser-init.ts","webpack:///../dotnet/UI.Blazor/Services/BrowserInfo/browser-info.ts","webpack:///./src/interactive.ts","webpack:///./src/disposable.ts","webpack:///./src/dom-helpers.ts","webpack:///../dotnet/UI.Blazor/Services/History/history.ts","webpack:///../dotnet/UI.Blazor/Services/FocusUI/focus-ui.ts","webpack:///./src/_constants.ts","webpack:///./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js","webpack:///../dotnet/UI.Blazor.App/Services/audio-context-ref.ts","webpack:///../dotnet/UI.Blazor.App/Services/web-rtc-aec.ts","webpack:///../dotnet/UI.Blazor.App/Services/audio-context-destination-fallback.ts","webpack:///./src/rpc.ts","webpack:///../dotnet/UI.Blazor.App/Components/AudioPlayer/worklets/feeder-audio-worklet-node.ts","webpack:///../dotnet/UI.Blazor.App/Components/AudioPlayer/audio-player.ts","webpack:///./src/object-pool.ts","webpack:///./src/resettable.ts","webpack:///../dotnet/UI.Blazor.App/Components/AudioRecorder/opus-media-recorder.ts","webpack:///../dotnet/UI.Blazor.App/Services/audio-initializer.ts","webpack:///../dotnet/UI.Blazor.App/Services/audio-context-source.ts","webpack:///../dotnet/UI.Blazor/Services/TuneUI/sound-player.ts","webpack:///../dotnet/UI.Blazor/Services/TuneUI/tune-ui.ts","webpack:///./src/math.ts","webpack:///./src/gestures.ts","webpack:///./src/service-worker.ts","webpack:///./src/init.ts","webpack:///../dotnet/UI.Blazor/Services/AccountUI/web-auth.ts","webpack:///./node_modules/idb-keyval/dist/index.js","webpack:///./src/kvas.ts","webpack:///../dotnet/UI.Blazor/Services/Kvas/web-kvas-backend.ts","webpack:///../dotnet/UI.Blazor/Services/Caching/remote-computed-cache.ts","webpack:///../dotnet/UI.Blazor/Services/ClipboardUI/clipboard.ts","webpack:///../dotnet/UI.Blazor/Services/DebugUI/debug-ui.ts","webpack:///../dotnet/UI.Blazor/Services/DeviceAwakeUI/device-awake-ui.ts","webpack:///../dotnet/UI.Blazor/Services/ElementReference/element-utils.ts","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/filter.js","webpack:///./src/keyboard.ts","webpack:///../dotnet/UI.Blazor/Services/Escapist/keyboard-dispatcher.ts","webpack:///../dotnet/UI.Blazor/Services/Escapist/escapist.ts","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/finalize.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js","webpack:///../dotnet/UI.Blazor/Services/Escapist/escapist-subscription.ts","webpack:///../dotnet/UI.Blazor/Services/KeepAwakeUI/nosleep/media.ts","webpack:///../dotnet/UI.Blazor/Services/KeepAwakeUI/nosleep/nosleep.ts","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/tap.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js","webpack:///../dotnet/UI.Blazor/Services/KeepAwakeUI/keep-awake-ui.ts","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js","webpack:///../dotnet/UI.Blazor/Services/Security/session-tokens.ts","webpack:///../dotnet/UI.Blazor/Services/Settings/local-settings.ts","webpack:///../dotnet/UI.Blazor/Services/InteractiveUI/interactive-ui.ts","webpack:///../dotnet/UI.Blazor/Services/UserActivityUI/user-activity-ui.ts","webpack:///../dotnet/UI.Blazor/Services/CaptchaUI/captcha-ui.ts","webpack:///./node_modules/@lit/reactive-element/decorators/custom-element.js","webpack:///./node_modules/@lit/reactive-element/decorators/property.js","webpack:///./node_modules/@lit/reactive-element/decorators/state.js","webpack:///./node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","webpack:///./node_modules/@lit/reactive-element/css-tag.js","webpack:///./node_modules/@lit/reactive-element/reactive-element.js","webpack:///./node_modules/lit-html/lit-html.js","webpack:///./node_modules/lit-element/lit-element.js","webpack:///../dotnet/UI.Blazor/Components/Avatar/avatar-utils.ts","webpack:///../dotnet/UI.Blazor/Components/Avatar/beam-avatar.lit.ts","webpack:///../dotnet/UI.Blazor/Components/Avatar/marble-avatar.lit.ts","webpack:///./node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs","webpack:///./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack:///./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack:///./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack:///../dotnet/UI.Blazor/Components/Bubble/bubble-host.ts","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/startWith.js","webpack:///../dotnet/UI.Blazor/Components/Button/timer-button-svg.lit.ts","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/empty.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/take.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/timer.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isDate.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/delay.js","webpack:///../dotnet/UI.Blazor/Components/Clipboard/copy-trigger.ts","webpack:///../dotnet/UI.Blazor/Components/Dropdown/dropdown.ts","webpack:///../dotnet/UI.Blazor/Components/VisualMediaViewerModal/visual-media-viewer.ts","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/merge.js","webpack:///../dotnet/UI.Blazor/Components/Menu/menu-host.ts","webpack:///../dotnet/UI.Blazor/Components/Modal/modal-host.ts","webpack:///../dotnet/UI.Blazor/Components/Overlays/loading-cat-svg.lit.ts","webpack:///./src/fast-raf.ts","webpack:///../dotnet/UI.Blazor/Components/SideNav/side-nav.ts","webpack:///../dotnet/UI.Blazor/Components/TextBox/text-box.ts","webpack:///../dotnet/UI.Blazor/Components/TextInput/text-input.ts","webpack:///../dotnet/UI.Blazor/Components/Tooltip/tooltip-host.ts","webpack:///../dotnet/UI.Blazor/Components/TotpInput/totp-input.ts","webpack:///../dotnet/UI.Blazor/Components/VirtualList/ts/range.ts","webpack:///../dotnet/UI.Blazor/Components/VirtualList/ts/inertial-scroll.ts","webpack:///../dotnet/UI.Blazor/Components/VirtualList/ts/virtual-list-edge.ts","webpack:///../dotnet/UI.Blazor/Components/VirtualList/ts/virtual-list-data-query.ts","webpack:///../dotnet/UI.Blazor/Components/VirtualList/ts/virtual-list-item.ts","webpack:///../dotnet/UI.Blazor/Components/VirtualList/ts/virtual-list-statistics.ts","webpack:///../dotnet/UI.Blazor/Components/VirtualList/virtual-list.ts","webpack:///../dotnet/UI.Blazor/Components/PicUpload/pic-upload.ts","webpack:///../dotnet/UI.Blazor/Components/FileUpload/file-upload.ts","webpack:///../dotnet/UI.Blazor/Components/Skeleton/styles.lit.ts","webpack:///./node_modules/lit-html/directive.js","webpack:///./node_modules/lit-html/directives/guard.js","webpack:///./node_modules/lit-html/directives/range.js","webpack:///./node_modules/lit-html/directives/map.js","webpack:///../dotnet/UI.Blazor/Components/Skeleton/helpers.ts","webpack:///../dotnet/UI.Blazor/Components/Skeleton/chat-list-skeleton.lit.ts","webpack:///../dotnet/UI.Blazor/Components/Skeleton/chat-view-skeleton.lit.ts","webpack:///../dotnet/UI.Blazor/Components/Skeleton/chat-view-footer-skeleton.lit.ts","webpack:///../dotnet/UI.Blazor/Components/Skeleton/place-menu-button-skeleton.lit.ts","webpack:///../dotnet/UI.Blazor/Components/Skeleton/round-skeleton.lit.ts","webpack:///../dotnet/UI.Blazor/Components/Skeleton/string-skeleton.lit.ts","webpack:///../dotnet/UI.Blazor/Components/Skeleton/tab-skeleton.lit.ts","webpack:///../dotnet/UI.Blazor/Components/Skeleton/thin-left-panel-skeleton.lit.ts","webpack:///./node_modules/lit-html/directive-helpers.js","webpack:///./node_modules/lit-html/async-directive.js","webpack:///./node_modules/lit-html/directives/ref.js","webpack:///../dotnet/UI.Blazor/Components/Skeleton/image-skeleton.lit.ts","webpack:///../dotnet/UI.Blazor/Components/Share/share.ts","webpack:///./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js","webpack:///../dotnet/UI.Blazor/Components/YoutubePlayer/youtube-player.ts","webpack:///../dotnet/UI.Blazor/Components/demand-user-interaction.ts","webpack:///../dotnet/UI.Blazor.App/Pages/Landing/landing-left-menu.ts","webpack:///../dotnet/UI.Blazor.App/Pages/Landing/landing-video-modal.ts","webpack:///../dotnet/UI.Blazor.App/Pages/Landing/Docs/scrollToId.ts","webpack:///../dotnet/UI.Blazor.App/Pages/Landing/Docs/setSettings.ts","webpack:///../dotnet/UI.Blazor.App/Pages/Landing/landing.ts","webpack:///../dotnet/UI.Blazor.App/Pages/Test/js-test-page.ts","webpack:///../dotnet/UI.Blazor.App/Components/AISearchPanel/ai-bot-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/AISearchPanel/ai-talking-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/ChatAudioPanel/playback-toggle-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/ChatAudioPanel/recorder-toggle.ts","webpack:///../dotnet/UI.Blazor.App/Components/ChatAudioPanel/playback-toggle.ts","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/scan.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/scanInternals.js","webpack:///../dotnet/UI.Blazor.App/Components/ChatAudioPanel/active-recording-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/ChatAudioPanel/narrow-recording-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/ChatList/chat-activity-svg.lit.ts","webpack:///./src/media-types.ts","webpack:///../dotnet/UI.Blazor.App/Components/ChatMessageEditor/attachment-list.ts","webpack:///../dotnet/UI.Blazor.App/Components/ChatMessageEditor/chat-message-editor.ts","webpack:///../dotnet/UI.Blazor.App/Components/ChatNotFound/chat-not-found-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/ChatView/EmptyChatContent/empty-chat-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/ChatView/EmptyChatContent/empty-search-chat-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/DateVisor/date-visor.ts","webpack:///../dotnet/UI.Blazor.App/Components/InaccessiblePlace/not-member-yet-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/LeftPanel/logo-button-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/LeftPanel/chat-roulette-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/MarkupEditor/undo-stack.ts","webpack:///../dotnet/UI.Blazor.App/Components/MarkupEditor/markup-editor.ts","webpack:///../dotnet/UI.Blazor.App/Components/MarkupParts/playable-text-markup-view.ts","webpack:///./node_modules/highlight.js/es/core.js","webpack:///./node_modules/highlight.js/es/languages/bash.js","webpack:///./node_modules/highlight.js/es/languages/javascript.js","webpack:///./node_modules/highlight.js/es/languages/typescript.js","webpack:///./node_modules/highlight.js/es/languages/json.js","webpack:///./node_modules/highlight.js/es/languages/xml.js","webpack:///./node_modules/highlight.js/es/languages/yaml.js","webpack:///./node_modules/highlight.js/es/languages/css.js","webpack:///./node_modules/highlight.js/es/languages/python.js","webpack:///./node_modules/highlight.js/es/languages/go.js","webpack:///./node_modules/highlight.js/es/languages/rust.js","webpack:///./node_modules/highlight.js/es/languages/java.js","webpack:///./node_modules/highlight.js/es/languages/kotlin.js","webpack:///./node_modules/highlight.js/es/languages/c.js","webpack:///./node_modules/highlight.js/es/languages/cpp.js","webpack:///./node_modules/highlight.js/es/languages/csharp.js","webpack:///../dotnet/UI.Blazor.App/Components/MarkupParts/CodeBlockMarkupView/code-block-markup-view.ts","webpack:///../dotnet/UI.Blazor.App/Components/MentionList/mention-list.ts","webpack:///./node_modules/sortablejs/modular/sortable.esm.js","webpack:///../dotnet/UI.Blazor.App/Components/Navbar/sortable-list.ts","webpack:///../dotnet/UI.Blazor.App/Components/NoResults/no-results-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/NoResults/no-search-results-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/Onboarding/phone-verification-cat-svg.lit.ts","webpack:///../dotnet/UI.Blazor.App/Components/SearchPanel/search-panel.ts","webpack:///../dotnet/UI.Blazor.App/Components/Selection/selection-host.ts","webpack:///../dotnet/UI.Blazor.App/Services/LanguageUI/language-ui.ts","webpack:///./node_modules/@firebase/messaging/dist/esm/index.esm2017.js","webpack:///../dotnet/UI.Blazor.App/notification-ui.ts","webpack:///./src/permissions.ts","webpack:///../dotnet/UI.Blazor.App/Components/AudioRecorder/audio-recorder.ts","webpack:///../dotnet/UI.Blazor.App/Pages/AudioRecorderTestPage/audio-recorder-test-page.ts","webpack:///./node_modules/@actual-chat/codec/codec.js","webpack:///../dotnet/UI.Blazor.App/Pages/AudioPlayerTestPage/audio-player-test-page.ts","webpack:///../dotnet/UI.Blazor.App/Services/observe-directive-lit.ts","webpack:///./index.ts"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\n// data-webpack is not used as build has no uniqueName\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\t\tscript.type = \"module\";\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","'use strict';\n\n/**\n * Custom implementation of a double ended queue.\n */\nfunction Denque(array, options) {\n var options = options || {};\n this._capacity = options.capacity;\n\n this._head = 0;\n this._tail = 0;\n\n if (Array.isArray(array)) {\n this._fromArray(array);\n } else {\n this._capacityMask = 0x3;\n this._list = new Array(4);\n }\n}\n\n/**\n * --------------\n * PUBLIC API\n * -------------\n */\n\n/**\n * Returns the item at the specified index from the list.\n * 0 is the first element, 1 is the second, and so on...\n * Elements at negative values are that many from the end: -1 is one before the end\n * (the last element), -2 is two before the end (one before last), etc.\n * @param index\n * @returns {*}\n */\nDenque.prototype.peekAt = function peekAt(index) {\n var i = index;\n // expect a number or return undefined\n if ((i !== (i | 0))) {\n return void 0;\n }\n var len = this.size();\n if (i >= len || i < -len) return undefined;\n if (i < 0) i += len;\n i = (this._head + i) & this._capacityMask;\n return this._list[i];\n};\n\n/**\n * Alias for peekAt()\n * @param i\n * @returns {*}\n */\nDenque.prototype.get = function get(i) {\n return this.peekAt(i);\n};\n\n/**\n * Returns the first item in the list without removing it.\n * @returns {*}\n */\nDenque.prototype.peek = function peek() {\n if (this._head === this._tail) return undefined;\n return this._list[this._head];\n};\n\n/**\n * Alias for peek()\n * @returns {*}\n */\nDenque.prototype.peekFront = function peekFront() {\n return this.peek();\n};\n\n/**\n * Returns the item that is at the back of the queue without removing it.\n * Uses peekAt(-1)\n */\nDenque.prototype.peekBack = function peekBack() {\n return this.peekAt(-1);\n};\n\n/**\n * Returns the current length of the queue\n * @return {Number}\n */\nObject.defineProperty(Denque.prototype, 'length', {\n get: function length() {\n return this.size();\n }\n});\n\n/**\n * Return the number of items on the list, or 0 if empty.\n * @returns {number}\n */\nDenque.prototype.size = function size() {\n if (this._head === this._tail) return 0;\n if (this._head < this._tail) return this._tail - this._head;\n else return this._capacityMask + 1 - (this._head - this._tail);\n};\n\n/**\n * Add an item at the beginning of the list.\n * @param item\n */\nDenque.prototype.unshift = function unshift(item) {\n if (arguments.length === 0) return this.size();\n var len = this._list.length;\n this._head = (this._head - 1 + len) & this._capacityMask;\n this._list[this._head] = item;\n if (this._tail === this._head) this._growArray();\n if (this._capacity && this.size() > this._capacity) this.pop();\n if (this._head < this._tail) return this._tail - this._head;\n else return this._capacityMask + 1 - (this._head - this._tail);\n};\n\n/**\n * Remove and return the first item on the list,\n * Returns undefined if the list is empty.\n * @returns {*}\n */\nDenque.prototype.shift = function shift() {\n var head = this._head;\n if (head === this._tail) return undefined;\n var item = this._list[head];\n this._list[head] = undefined;\n this._head = (head + 1) & this._capacityMask;\n if (head < 2 && this._tail > 10000 && this._tail <= this._list.length >>> 2) this._shrinkArray();\n return item;\n};\n\n/**\n * Add an item to the bottom of the list.\n * @param item\n */\nDenque.prototype.push = function push(item) {\n if (arguments.length === 0) return this.size();\n var tail = this._tail;\n this._list[tail] = item;\n this._tail = (tail + 1) & this._capacityMask;\n if (this._tail === this._head) {\n this._growArray();\n }\n if (this._capacity && this.size() > this._capacity) {\n this.shift();\n }\n if (this._head < this._tail) return this._tail - this._head;\n else return this._capacityMask + 1 - (this._head - this._tail);\n};\n\n/**\n * Remove and return the last item on the list.\n * Returns undefined if the list is empty.\n * @returns {*}\n */\nDenque.prototype.pop = function pop() {\n var tail = this._tail;\n if (tail === this._head) return undefined;\n var len = this._list.length;\n this._tail = (tail - 1 + len) & this._capacityMask;\n var item = this._list[this._tail];\n this._list[this._tail] = undefined;\n if (this._head < 2 && tail > 10000 && tail <= len >>> 2) this._shrinkArray();\n return item;\n};\n\n/**\n * Remove and return the item at the specified index from the list.\n * Returns undefined if the list is empty.\n * @param index\n * @returns {*}\n */\nDenque.prototype.removeOne = function removeOne(index) {\n var i = index;\n // expect a number or return undefined\n if ((i !== (i | 0))) {\n return void 0;\n }\n if (this._head === this._tail) return void 0;\n var size = this.size();\n var len = this._list.length;\n if (i >= size || i < -size) return void 0;\n if (i < 0) i += size;\n i = (this._head + i) & this._capacityMask;\n var item = this._list[i];\n var k;\n if (index < size / 2) {\n for (k = index; k > 0; k--) {\n this._list[i] = this._list[i = (i - 1 + len) & this._capacityMask];\n }\n this._list[i] = void 0;\n this._head = (this._head + 1 + len) & this._capacityMask;\n } else {\n for (k = size - 1 - index; k > 0; k--) {\n this._list[i] = this._list[i = (i + 1 + len) & this._capacityMask];\n }\n this._list[i] = void 0;\n this._tail = (this._tail - 1 + len) & this._capacityMask;\n }\n return item;\n};\n\n/**\n * Remove number of items from the specified index from the list.\n * Returns array of removed items.\n * Returns undefined if the list is empty.\n * @param index\n * @param count\n * @returns {array}\n */\nDenque.prototype.remove = function remove(index, count) {\n var i = index;\n var removed;\n var del_count = count;\n // expect a number or return undefined\n if ((i !== (i | 0))) {\n return void 0;\n }\n if (this._head === this._tail) return void 0;\n var size = this.size();\n var len = this._list.length;\n if (i >= size || i < -size || count < 1) return void 0;\n if (i < 0) i += size;\n if (count === 1 || !count) {\n removed = new Array(1);\n removed[0] = this.removeOne(i);\n return removed;\n }\n if (i === 0 && i + count >= size) {\n removed = this.toArray();\n this.clear();\n return removed;\n }\n if (i + count > size) count = size - i;\n var k;\n removed = new Array(count);\n for (k = 0; k < count; k++) {\n removed[k] = this._list[(this._head + i + k) & this._capacityMask];\n }\n i = (this._head + i) & this._capacityMask;\n if (index + count === size) {\n this._tail = (this._tail - count + len) & this._capacityMask;\n for (k = count; k > 0; k--) {\n this._list[i = (i + 1 + len) & this._capacityMask] = void 0;\n }\n return removed;\n }\n if (index === 0) {\n this._head = (this._head + count + len) & this._capacityMask;\n for (k = count - 1; k > 0; k--) {\n this._list[i = (i + 1 + len) & this._capacityMask] = void 0;\n }\n return removed;\n }\n if (i < size / 2) {\n this._head = (this._head + index + count + len) & this._capacityMask;\n for (k = index; k > 0; k--) {\n this.unshift(this._list[i = (i - 1 + len) & this._capacityMask]);\n }\n i = (this._head - 1 + len) & this._capacityMask;\n while (del_count > 0) {\n this._list[i = (i - 1 + len) & this._capacityMask] = void 0;\n del_count--;\n }\n if (index < 0) this._tail = i;\n } else {\n this._tail = i;\n i = (i + count + len) & this._capacityMask;\n for (k = size - (count + index); k > 0; k--) {\n this.push(this._list[i++]);\n }\n i = this._tail;\n while (del_count > 0) {\n this._list[i = (i + 1 + len) & this._capacityMask] = void 0;\n del_count--;\n }\n }\n if (this._head < 2 && this._tail > 10000 && this._tail <= len >>> 2) this._shrinkArray();\n return removed;\n};\n\n/**\n * Native splice implementation.\n * Remove number of items from the specified index from the list and/or add new elements.\n * Returns array of removed items or empty array if count == 0.\n * Returns undefined if the list is empty.\n *\n * @param index\n * @param count\n * @param {...*} [elements]\n * @returns {array}\n */\nDenque.prototype.splice = function splice(index, count) {\n var i = index;\n // expect a number or return undefined\n if ((i !== (i | 0))) {\n return void 0;\n }\n var size = this.size();\n if (i < 0) i += size;\n if (i > size) return void 0;\n if (arguments.length > 2) {\n var k;\n var temp;\n var removed;\n var arg_len = arguments.length;\n var len = this._list.length;\n var arguments_index = 2;\n if (!size || i < size / 2) {\n temp = new Array(i);\n for (k = 0; k < i; k++) {\n temp[k] = this._list[(this._head + k) & this._capacityMask];\n }\n if (count === 0) {\n removed = [];\n if (i > 0) {\n this._head = (this._head + i + len) & this._capacityMask;\n }\n } else {\n removed = this.remove(i, count);\n this._head = (this._head + i + len) & this._capacityMask;\n }\n while (arg_len > arguments_index) {\n this.unshift(arguments[--arg_len]);\n }\n for (k = i; k > 0; k--) {\n this.unshift(temp[k - 1]);\n }\n } else {\n temp = new Array(size - (i + count));\n var leng = temp.length;\n for (k = 0; k < leng; k++) {\n temp[k] = this._list[(this._head + i + count + k) & this._capacityMask];\n }\n if (count === 0) {\n removed = [];\n if (i != size) {\n this._tail = (this._head + i + len) & this._capacityMask;\n }\n } else {\n removed = this.remove(i, count);\n this._tail = (this._tail - leng + len) & this._capacityMask;\n }\n while (arguments_index < arg_len) {\n this.push(arguments[arguments_index++]);\n }\n for (k = 0; k < leng; k++) {\n this.push(temp[k]);\n }\n }\n return removed;\n } else {\n return this.remove(i, count);\n }\n};\n\n/**\n * Soft clear - does not reset capacity.\n */\nDenque.prototype.clear = function clear() {\n this._list = new Array(this._list.length);\n this._head = 0;\n this._tail = 0;\n};\n\n/**\n * Returns true or false whether the list is empty.\n * @returns {boolean}\n */\nDenque.prototype.isEmpty = function isEmpty() {\n return this._head === this._tail;\n};\n\n/**\n * Returns an array of all queue items.\n * @returns {Array}\n */\nDenque.prototype.toArray = function toArray() {\n return this._copyArray(false);\n};\n\n/**\n * -------------\n * INTERNALS\n * -------------\n */\n\n/**\n * Fills the queue with items from an array\n * For use in the constructor\n * @param array\n * @private\n */\nDenque.prototype._fromArray = function _fromArray(array) {\n var length = array.length;\n var capacity = this._nextPowerOf2(length);\n\n this._list = new Array(capacity);\n this._capacityMask = capacity - 1;\n this._tail = length;\n\n for (var i = 0; i < length; i++) this._list[i] = array[i];\n};\n\n/**\n *\n * @param fullCopy\n * @param size Initialize the array with a specific size. Will default to the current list size\n * @returns {Array}\n * @private\n */\nDenque.prototype._copyArray = function _copyArray(fullCopy, size) {\n var src = this._list;\n var capacity = src.length;\n var length = this.length;\n size = size | length;\n\n // No prealloc requested and the buffer is contiguous\n if (size == length && this._head < this._tail) {\n // Simply do a fast slice copy\n return this._list.slice(this._head, this._tail);\n }\n\n var dest = new Array(size);\n\n var k = 0;\n var i;\n if (fullCopy || this._head > this._tail) {\n for (i = this._head; i < capacity; i++) dest[k++] = src[i];\n for (i = 0; i < this._tail; i++) dest[k++] = src[i];\n } else {\n for (i = this._head; i < this._tail; i++) dest[k++] = src[i];\n }\n\n return dest;\n}\n\n/**\n * Grows the internal list array.\n * @private\n */\nDenque.prototype._growArray = function _growArray() {\n if (this._head != 0) {\n // double array size and copy existing data, head to end, then beginning to tail.\n var newList = this._copyArray(true, this._list.length << 1);\n\n this._tail = this._list.length;\n this._head = 0;\n\n this._list = newList;\n } else {\n this._tail = this._list.length;\n this._list.length <<= 1;\n }\n\n this._capacityMask = (this._capacityMask << 1) | 1;\n};\n\n/**\n * Shrinks the internal list array.\n * @private\n */\nDenque.prototype._shrinkArray = function _shrinkArray() {\n this._list.length >>>= 1;\n this._capacityMask >>>= 1;\n};\n\n/**\n * Find the next power of 2, at least 4\n * @private\n * @param {number} num \n * @returns {number}\n */\nDenque.prototype._nextPowerOf2 = function _nextPowerOf2(num) {\n var log2 = Math.log(num) / Math.log(2);\n var nextPow2 = 1 << (log2 + 1);\n\n return Math.max(nextPow2, 4);\n}\n\nmodule.exports = Denque;\n","var deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope || (node.sublanguage && node.language);\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let className = \"\";\n if (node.sublanguage) {\n className = `language-${node.language}`;\n } else {\n className = scopeToCSSClass(node.scope, { prefix: this.classPrefix });\n }\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, scope)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(scope)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n addKeyword(text, scope) {\n if (text === \"\") { return; }\n\n this.openNode(scope);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.sublanguage = true;\n node.language = name;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type {import(\"highlight.js/private\").KeywordDict} */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.7.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreezeEs6.exports(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/dist/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t296: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"300\":1,\"767\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t296: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\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\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunk\"] = globalThis[\"webpackChunk\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, elementIndex as g, classesToTokens as h, getTranslate as i, elementTransitionEnd as j, isObject as k, getSlideTransformEl as l, elementStyle as m, nextTick as n, elementNextAll as o, elementPrevAll as p, animateCSSModeScroll as q, showWarning as r, setCSSProperty as s, extend as t, deleteProps as u };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, m as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, o as elementNextAll, p as elementPrevAll, i as getTranslate, q as animateCSSModeScroll, n as nextTick, r as showWarning, c as createElement, d as now, t as extend, g as elementIndex, u as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n if (isFullyVisible) {\n slides[i].classList.add(params.slideFullyVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n if (gridEnabled) {\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n } else {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n }\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === 'SWIPER-CONTAINER') {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","function appendSlide(slides) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n const appendElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.append(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.append(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) appendElement(slides[i]);\n }\n } else {\n appendElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n}\n\nfunction prependSlide(slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n const prependElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.prepend(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.prepend(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) prependElement(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n prependElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide(index, slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.recalcSlides();\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides[i];\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) slidesEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n slidesEl.append(slides);\n }\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n slidesEl.append(slidesBuffer[i]);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nfunction Manipulation(_ref) {\n let {\n swiper\n } = _ref;\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}\n\nexport { Manipulation as default };\n","function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n\nexport { effectInit as e };\n","import { l as getSlideTransformEl } from './utils.mjs';\n\nfunction effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\n\nexport { effectTarget as e };\n","import { j as elementTransitionEnd } from './utils.mjs';\n\nfunction effectVirtualTransitionEnd(_ref) {\n let {\n swiper,\n duration,\n transformElements,\n allSlides\n } = _ref;\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}\n\nexport { effectVirtualTransitionEnd as e };\n","import { l as getSlideTransformEl, c as createElement } from './utils.mjs';\n\nfunction createShadow(suffix, slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;\n const shadowContainer = getSlideTransformEl(slideEl);\n let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);\n if (!shadowEl) {\n shadowEl = createElement('div', shadowClass.split(' '));\n shadowContainer.append(shadowEl);\n }\n return shadowEl;\n}\n\nexport { createShadow as c };\n","/**\n * Swiper 11.0.4\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2023 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: November 9, 2023\n */\n\nimport { S as Swiper } from './shared/swiper-core.mjs';\nimport Virtual from './modules/virtual.mjs';\nimport Keyboard from './modules/keyboard.mjs';\nimport Mousewheel from './modules/mousewheel.mjs';\nimport Navigation from './modules/navigation.mjs';\nimport Pagination from './modules/pagination.mjs';\nimport Scrollbar from './modules/scrollbar.mjs';\nimport Parallax from './modules/parallax.mjs';\nimport Zoom from './modules/zoom.mjs';\nimport Controller from './modules/controller.mjs';\nimport A11y from './modules/a11y.mjs';\nimport History from './modules/history.mjs';\nimport HashNavigation from './modules/hash-navigation.mjs';\nimport Autoplay from './modules/autoplay.mjs';\nimport Thumb from './modules/thumbs.mjs';\nimport freeMode from './modules/free-mode.mjs';\nimport Grid from './modules/grid.mjs';\nimport Manipulation from './modules/manipulation.mjs';\nimport EffectFade from './modules/effect-fade.mjs';\nimport EffectCube from './modules/effect-cube.mjs';\nimport EffectFlip from './modules/effect-flip.mjs';\nimport EffectCoverflow from './modules/effect-coverflow.mjs';\nimport EffectCreative from './modules/effect-creative.mjs';\nimport EffectCards from './modules/effect-cards.mjs';\n\n// Swiper Class\nconst modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards];\nSwiper.use(modules);\n\nexport { Swiper, Swiper as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { s as setCSSProperty, e as elementChildren, c as createElement } from '../shared/utils.mjs';\n\nfunction Virtual(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n const document = getDocument();\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n const tempDOM = document.createElement('div');\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n // eslint-disable-next-line\n let slideEl;\n if (params.renderSlide) {\n slideEl = params.renderSlide.call(swiper, slide, index);\n if (typeof slideEl === 'string') {\n tempDOM.innerHTML = slideEl;\n slideEl = tempDOM.children[0];\n }\n } else if (swiper.isElement) {\n slideEl = createElement('swiper-slide');\n } else {\n slideEl = createElement('div', swiper.params.slideClass);\n }\n slideEl.setAttribute('data-swiper-slide-index', index);\n if (!params.renderSlide) {\n slideEl.innerHTML = slide;\n }\n if (params.cache) {\n swiper.virtual.cache[index] = slideEl;\n }\n return slideEl;\n }\n function update(force) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides,\n loop: isLoop\n } = swiper.params;\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;\n }\n let from = activeIndex - slidesBefore;\n let to = activeIndex + slidesAfter;\n if (!isLoop) {\n from = Math.max(from, 0);\n to = Math.min(to, slides.length - 1);\n }\n let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n if (isLoop && activeIndex >= slidesBefore) {\n from -= slidesBefore;\n if (!centeredSlides) offset += swiper.slidesGrid[0];\n } else if (isLoop && activeIndex < slidesBefore) {\n from = -slidesBefore;\n if (centeredSlides) offset += swiper.slidesGrid[0];\n }\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n slidesBefore,\n slidesAfter\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n emit('virtualUpdate');\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n }\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n if (force) {\n swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {\n slideEl.remove();\n });\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n const slideIndex = getSlideIndex(i);\n swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${slideIndex}\"], swiper-slide[data-swiper-slide-index=\"${slideIndex}\"]`)).forEach(slideEl => {\n slideEl.remove();\n });\n }\n }\n }\n const loopFrom = isLoop ? -slides.length : 0;\n const loopTo = isLoop ? slides.length * 2 : slides.length;\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n const slideIndex = getSlideIndex(i);\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(slideIndex);\n } else {\n if (i > previousTo) appendIndexes.push(slideIndex);\n if (i < previousFrom) prependIndexes.push(slideIndex);\n }\n }\n }\n appendIndexes.forEach(index => {\n swiper.slidesEl.append(renderSlide(slides[index], index));\n });\n if (isLoop) {\n for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {\n const index = prependIndexes[i];\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n }\n } else {\n prependIndexes.sort((a, b) => b - a);\n prependIndexes.forEach(index => {\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n });\n }\n elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n onRendered();\n }\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n update(true);\n }\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const cachedEl = cache[cachedIndex];\n const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');\n if (cachedElIndex) {\n cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n function removeAllSlides() {\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n update(true);\n swiper.slideTo(0, 0);\n }\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n let domSlidesAssigned;\n if (typeof swiper.passedParams.virtual.slides === 'undefined') {\n const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));\n if (slides && slides.length) {\n swiper.virtual.slides = [...slides];\n domSlidesAssigned = true;\n slides.forEach((slideEl, slideIndex) => {\n slideEl.setAttribute('data-swiper-slide-index', slideIndex);\n swiper.virtual.cache[slideIndex] = slideEl;\n slideEl.remove();\n });\n }\n }\n if (!domSlidesAssigned) {\n swiper.virtual.slides = swiper.params.virtual.slides;\n }\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n update();\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}\n\nexport { Virtual as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { a as elementParents, b as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}\n\nexport { Keyboard as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { n as nextTick, d as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n return true;\n }\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\nexport { Mousewheel as default };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { f as elementOuterSize, g as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { h as classesToTokens, c as createElement, n as nextTick, b as elementOffset } from '../shared/utils.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\n\nfunction Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n if (!el.length) return;\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass));\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));\n }\n disableDraggable();\n }\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}\n\nexport { Scrollbar as default };\n","import { e as elementChildren } from '../shared/utils.mjs';\n\nfunction Parallax(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const rtlFactor = rtl ? -1 : 1;\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n const rotate = el.getAttribute('data-swiper-parallax-rotate');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n let transform = `translate3d(${x}, ${y}, 0px)`;\n if (typeof scale !== 'undefined' && scale !== null) {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n transform += ` scale(${currentScale})`;\n }\n if (rotate && typeof rotate !== 'undefined' && rotate !== null) {\n const currentRotate = rotate * progress * -1;\n transform += ` rotate(${currentRotate}deg)`;\n }\n el.style.transform = transform;\n };\n const setTranslate = () => {\n const {\n el,\n slides,\n progress,\n snapGrid,\n isElement\n } = swiper;\n const elements = elementChildren(el, elementsSelector);\n if (swiper.isElement) {\n elements.push(...elementChildren(swiper.hostEl, elementsSelector));\n }\n elements.forEach(subEl => {\n setTransform(subEl, progress);\n });\n slides.forEach((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {\n setTransform(subEl, slideProgress);\n });\n });\n };\n const setTransition = function (duration) {\n if (duration === void 0) {\n duration = swiper.params.speed;\n }\n const {\n el,\n hostEl\n } = swiper;\n const elements = [...el.querySelectorAll(elementsSelector)];\n if (swiper.isElement) {\n elements.push(...hostEl.querySelectorAll(elementsSelector));\n }\n elements.forEach(parallaxEl => {\n let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;\n });\n };\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}\n\nexport { Parallax as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren, a as elementParents, b as elementOffset, i as getTranslate } from '../shared/utils.mjs';\n\nfunction Zoom(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n originX: 0,\n originY: 0,\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function getScaleOrigin() {\n if (evCache.length < 2) return {\n x: null,\n y: null\n };\n const box = gesture.imageEl.getBoundingClientRect();\n return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale];\n }\n function getSlideSelector() {\n return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n }\n function eventWithinSlide(e) {\n const slideSelector = getSlideSelector();\n if (e.target.matches(slideSelector)) return true;\n if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;\n return false;\n }\n function eventWithinZoomContainer(e) {\n const selector = `.${swiper.params.zoom.containerClass}`;\n if (e.target.matches(selector)) return true;\n if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;\n return false;\n }\n\n // Events\n function onGestureStart(e) {\n if (e.pointerType === 'mouse') {\n evCache.splice(0, evCache.length);\n }\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n evCache.push(e);\n if (evCache.length < 2) {\n return;\n }\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches();\n if (!gesture.slideEl) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n if (!gesture.imageWrapEl) {\n gesture.imageEl = undefined;\n return;\n }\n gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n }\n if (gesture.imageEl) {\n const [originX, originY] = getScaleOrigin();\n gesture.originX = originX;\n gesture.originY = originY;\n gesture.imageEl.style.transitionDuration = '0ms';\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache[pointerIndex] = e;\n if (evCache.length < 2) {\n return;\n }\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches();\n if (!gesture.imageEl) {\n return;\n }\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function onGestureEnd(e) {\n if (!eventWithinSlide(e)) return;\n if (e.pointerType === 'mouse' && e.type === 'pointerout') return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!gesture.imageEl) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale > 1 && gesture.slideEl) {\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n } else if (zoom.scale <= 1 && gesture.slideEl) {\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n }\n if (zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n gesture.slideEl = undefined;\n }\n }\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.imageEl) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n const event = evCache.length > 0 ? evCache[0] : e;\n image.touchesStart.x = event.pageX;\n image.touchesStart.y = event.pageY;\n }\n function onTouchMove(e) {\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !gesture.slideEl) return;\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth;\n image.height = gesture.imageEl.offsetHeight;\n image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;\n image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));\n if (touchesDiff > 5) {\n swiper.allowClick = false;\n }\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n image.isMoved = true;\n const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);\n const {\n originX,\n originY\n } = gesture;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {\n if (gesture.imageEl) {\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n }\n if (gesture.imageWrapEl) {\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n }\n gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);\n zoom.scale = 1;\n currentScale = 1;\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (e && e.target) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n }\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n const forceZoomRatio = typeof e === 'number' ? e : null;\n if (currentScale === 1 && forceZoomRatio) {\n touchX = undefined;\n touchY = undefined;\n }\n zoom.scale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n currentScale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (e && !(currentScale === 1 && forceZoomRatio)) {\n slideWidth = gesture.slideEl.offsetWidth;\n slideHeight = gesture.slideEl.offsetHeight;\n offsetX = elementOffset(gesture.slideEl).left + window.scrollX;\n offsetY = elementOffset(gesture.slideEl).top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.imageEl.offsetWidth;\n imageHeight = gesture.imageEl.offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n if (forceZoomRatio && zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n }\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n zoom.scale = 1;\n currentScale = 1;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = swiper.params.passiveListeners ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd();\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}\n\nexport { Zoom as default };\n","import { n as nextTick, j as elementTransitionEnd } from '../shared/utils.mjs';\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nfunction Controller(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n }\n });\n\n swiper.controller = {\n control: undefined\n };\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n }\n function getInterpolateFunction(c) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n if (c.destroyed) return;\n\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {\n multiplier = 1;\n }\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n if (c.destroyed) return;\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n elementTransitionEnd(c.wrapperEl, () => {\n if (!controlled) return;\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n function removeSpline() {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n on('beforeInit', () => {\n if (typeof window !== 'undefined' && (\n // eslint-disable-line\n typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {\n const controlElement = document.querySelector(swiper.params.controller.control);\n if (controlElement && controlElement.swiper) {\n swiper.controller.control = controlElement.swiper;\n } else if (controlElement) {\n const onControllerSwiper = e => {\n swiper.controller.control = e.detail[0];\n swiper.update();\n controlElement.removeEventListener('init', onControllerSwiper);\n };\n controlElement.addEventListener('init', onControllerSwiper);\n }\n return;\n }\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}\n\nexport { Controller as default };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElement, g as elementIndex } from '../shared/utils.mjs';\n\nfunction A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n targetEl.click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach(bulletEl => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n }\n }\n if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = () => {\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n swiper.el.append(liveRegion);\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el];\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el];\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n\nexport { A11y as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\n\nfunction History(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n const slide = swiper.slides[index];\n let value = slugify(slide.getAttribute('data-history'));\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key ? `${key}/` : ''}${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key ? `${key}/` : ''}${value}`;\n }\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides[i];\n const slideHistory = slugify(slide.getAttribute('data-history'));\n if (slideHistory === value) {\n const index = swiper.getSlideIndex(slide);\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) {\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n return;\n }\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n const destroy = () => {\n const window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}\n\nexport { History as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren } from '../shared/utils.mjs';\n\nfunction HashNavigation(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n on\n } = _ref;\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n getSlideIndex(_s, hash) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];\n if (!slideWithHash) return 0;\n const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);\n return index;\n }\n return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash=\"${hash}\"], swiper-slide[data-hash=\"${hash}\"]`)[0]);\n }\n }\n });\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);\n if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${activeSlideHash}` || '');\n emit('hashSet');\n } else {\n document.location.hash = activeSlideHash || '';\n emit('hashSet');\n }\n };\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);\n swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);\n }\n if (swiper.params.hashNavigation.watchState) {\n window.addEventListener('hashchange', onHashChange);\n }\n };\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n window.removeEventListener('hashchange', onHashChange);\n }\n };\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}\n\nexport { HashNavigation as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { k as isObject, e as elementChildren } from '../shared/utils.mjs';\n\nfunction Thumb(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n swiper.slideToLoop(slideToIndex);\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach(slideEl => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n if (thumbsSwiper.slides[swiper.realIndex + i]) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener('init', onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener('init', onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = () => {\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) {\n requestAnimationFrame(watchForThumbsToAppear);\n }\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}\n\nexport { Thumb as default };\n","import { d as now, j as elementTransitionEnd } from '../shared/utils.mjs';\n\nfunction freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n emit('_freeModeStaticRelease');\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}\n\nexport { freeMode as default };\n","function Grid(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n let wasMultiRow;\n const getSpaceBetween = () => {\n let spaceBetween = swiper.params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n return spaceBetween;\n };\n const initSlides = slides => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n slidesPerRow = slidesNumberEvenToRows / rows;\n };\n const unsetSlides = () => {\n if (swiper.slides) {\n swiper.slides.forEach(slide => {\n if (slide.swiperSlideGridSet) {\n slide.style.height = '';\n slide.style[swiper.getDirectionLabel('margin-top')] = '';\n }\n });\n }\n };\n const updateSlide = (i, slide, slides) => {\n const {\n slidesPerGroup\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.row = row;\n slide.column = column;\n slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;\n slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n slide.swiperSlideGridSet = true;\n };\n const updateWrapperSize = (slideSize, snapGrid) => {\n const {\n centeredSlides,\n roundLengths\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n const onInit = () => {\n wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;\n };\n const onUpdate = () => {\n const {\n params,\n el\n } = swiper;\n const isMultiRow = params.grid && params.grid.rows > 1;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n numFullColumns = 1;\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n wasMultiRow = isMultiRow;\n };\n on('init', onInit);\n on('update', onUpdate);\n swiper.grid = {\n initSlides,\n unsetSlides,\n updateSlide,\n updateWrapperSize\n };\n}\n\nexport { Grid as default };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { l as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFade(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFade as default };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { c as createElement } from '../shared/utils.mjs';\n\nfunction EffectCube(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n const createSlideShadows = (slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));\n slideEl.append(shadowBefore);\n }\n if (!shadowAfter) {\n shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));\n slideEl.append(shadowAfter);\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.forEach(slideEl => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(slideEl, progress, isHorizontal);\n });\n };\n const setTranslate = () => {\n const {\n el,\n wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n swiper.wrapperEl.append(cubeShadowEl);\n }\n cubeShadowEl.style.height = `${swiperWidth}px`;\n } else {\n cubeShadowEl = el.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n el.append(cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n if (swiper.browser && swiper.browser.isSafari && Math.abs(wrapperRotate) / 90 % 2 === 1) {\n wrapperRotate += 0.001;\n }\n }\n slideEl.style.transform = transform;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress, isHorizontal);\n }\n }\n wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;\n wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;\n }\n }\n const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;\n wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`;\n wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n const setTransition = duration => {\n const {\n el,\n slides\n } = swiper;\n slides.forEach(slideEl => {\n slideEl.style.transitionDuration = `${duration}ms`;\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {\n subEl.style.transitionDuration = `${duration}ms`;\n });\n });\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n const shadowEl = el.querySelector('.swiper-cube-shadow');\n if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;\n }\n };\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}\n\nexport { EffectCube as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { l as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFlip(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n });\n const createSlideShadows = (slideEl, progress) => {\n let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n if (!shadowAfter) {\n shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // Set shadows\n swiper.params.flipEffect;\n swiper.slides.forEach(slideEl => {\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n createSlideShadows(slideEl, progress);\n });\n };\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n const offset = slideEl.swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n if (swiper.browser && swiper.browser.isSafari) {\n if (Math.abs(rotateY) / 90 % 2 === 1) {\n rotateY += 0.001;\n }\n if (Math.abs(rotateX) / 90 % 2 === 1) {\n rotateX += 0.001;\n }\n }\n slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress);\n }\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFlip as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { l as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCoverflow(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n });\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const slideEl = slides[i];\n const slideSize = slidesSizesGrid[i];\n const slideOffset = slideEl.swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n if (swiper.browser && swiper.browser.isSafari) {\n if (Math.abs(rotateY) / 90 % 2 === 1) {\n rotateY += 0.001;\n }\n if (Math.abs(rotateX) / 90 % 2 === 1) {\n rotateX += 0.001;\n }\n }\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = slideTransform;\n slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBeforeEl) {\n shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top');\n }\n if (!shadowAfterEl) {\n shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');\n }\n if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n };\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}\n\nexport { EffectCoverflow as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { l as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCreative(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n creativeEffect: {\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n const setTranslate = () => {\n const {\n slides,\n wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);\n }\n const offset = slideEl.swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n // set translate\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n });\n // set rotates\n r.forEach((value, index) => {\n let val = data.rotate[index] * Math.abs(progress * multiplier);\n if (swiper.browser && swiper.browser.isSafari && Math.abs(val) / 90 % 2 === 1) {\n val += 0.001;\n }\n r[index] = val;\n });\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n\n // Set shadows\n if (custom && data.shadow || !custom) {\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl && data.shadow) {\n shadowEl = createShadow('creative', slideEl);\n }\n if (shadowEl) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n targetEl.style.opacity = opacityString;\n if (data.origin) {\n targetEl.style.transformOrigin = data.origin;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCreative as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { l as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCards(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8\n }\n });\n const setTranslate = () => {\n const {\n slides,\n activeIndex,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = rtl ? -swiper.translate : swiper.translate;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = slideEl.swiperSlideOffset;\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;\n }\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n if (progress < 0) {\n // next\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n\n /* eslint-disable */\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)\n scale(${scaleString})\n `;\n /* eslint-enable */\n\n if (params.slideShadows) {\n // Set shadows\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl) {\n shadowEl = createShadow('cards', slideEl);\n }\n if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCards as default };\n","/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__;\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName) {\n if (attrName === void 0) {\n attrName = '';\n }\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className) {\n if (className === void 0) {\n className = '';\n }\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\n\nfunction updateSwiper(_ref) {\n let {\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n } = _ref;\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n Object.assign(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) {\n if (slides) virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n paginationEl.part.add('pagination');\n swiper.el.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n scrollbarEl.part.add('scrollbar');\n swiper.el.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n nextEl.innerHTML = swiper.hostEl.constructor.nextButtonSvg;\n nextEl.part.add('button-next');\n swiper.el.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n prevEl.innerHTML = swiper.hostEl.constructor.prevButtonSvg;\n prevEl.part.add('button-prev');\n swiper.el.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\n\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };\n","import { e as extend, i as isObject, c as attrToProp, p as paramsList } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\n\nconst formatValue = val => {\n if (parseFloat(val) === Number(val)) return Number(val);\n if (val === 'true') return true;\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'null') return null;\n if (val === 'undefined') return undefined;\n if (typeof val === 'string' && val.includes('{') && val.includes('}') && val.includes('\"')) {\n let v;\n try {\n v = JSON.parse(val);\n } catch (err) {\n v = val;\n }\n return v;\n }\n return val;\n};\nconst modulesParamsList = ['a11y', 'autoplay', 'controller', 'cards-effect', 'coverflow-effect', 'creative-effect', 'cube-effect', 'fade-effect', 'flip-effect', 'free-mode', 'grid', 'hash-navigation', 'history', 'keyboard', 'mousewheel', 'navigation', 'pagination', 'parallax', 'scrollbar', 'thumbs', 'virtual', 'zoom'];\nfunction getParams(element, propName, propValue) {\n const params = {};\n const passedParams = {};\n extend(params, defaults);\n const localParamsList = [...paramsList, 'on'];\n const allowedParams = localParamsList.map(key => key.replace(/_/, ''));\n\n // First check props\n localParamsList.forEach(paramName => {\n paramName = paramName.replace('_', '');\n if (typeof element[paramName] !== 'undefined') {\n passedParams[paramName] = element[paramName];\n }\n });\n\n // Attributes\n const attrsList = [...element.attributes];\n if (typeof propName === 'string' && typeof propValue !== 'undefined') {\n attrsList.push({\n name: propName,\n value: isObject(propValue) ? {\n ...propValue\n } : propValue\n });\n }\n attrsList.forEach(attr => {\n const moduleParam = modulesParamsList.filter(mParam => attr.name.indexOf(`${mParam}-`) === 0)[0];\n if (moduleParam) {\n const parentObjName = attrToProp(moduleParam);\n const subObjName = attrToProp(attr.name.split(`${moduleParam}-`)[1]);\n if (typeof passedParams[parentObjName] === 'undefined') passedParams[parentObjName] = {};\n if (passedParams[parentObjName] === true) {\n passedParams[parentObjName] = {\n enabled: true\n };\n }\n passedParams[parentObjName][subObjName] = formatValue(attr.value);\n } else {\n const name = attrToProp(attr.name);\n if (!allowedParams.includes(name)) return;\n const value = formatValue(attr.value);\n if (passedParams[name] && modulesParamsList.includes(attr.name) && !isObject(value)) {\n if (passedParams[name].constructor !== Object) {\n passedParams[name] = {};\n }\n passedParams[name].enabled = !!value;\n } else {\n passedParams[name] = value;\n }\n }\n });\n extend(params, passedParams);\n if (params.navigation) {\n params.navigation = {\n prevEl: '.swiper-button-prev',\n nextEl: '.swiper-button-next',\n ...(params.navigation !== true ? params.navigation : {})\n };\n } else if (params.navigation === false) {\n delete params.navigation;\n }\n if (params.scrollbar) {\n params.scrollbar = {\n el: '.swiper-scrollbar',\n ...(params.scrollbar !== true ? params.scrollbar : {})\n };\n } else if (params.scrollbar === false) {\n delete params.scrollbar;\n }\n if (params.pagination) {\n params.pagination = {\n el: '.swiper-pagination',\n ...(params.pagination !== true ? params.pagination : {})\n };\n } else if (params.pagination === false) {\n delete params.pagination;\n }\n return {\n params,\n passedParams\n };\n}\n\nexport { getParams as g };\n","/**\n * Swiper Custom Element 11.0.4\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2023 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: November 9, 2023\n */\n\nimport './swiper-bundle.mjs';\nimport { p as paramsList, n as needsNavigation, a as needsPagination, b as needsScrollbar, u as updateSwiper, c as attrToProp } from './shared/update-swiper.mjs';\nimport { g as getParams } from './shared/get-element-params.mjs';\nimport { S as Swiper } from './shared/swiper-core.mjs';\n\n/* eslint-disable spaced-comment */\n\nconst SwiperCSS = `:host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible}.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-creative ::slotted(swiper-slide){-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}`\nconst SwiperSlideCSS = `::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}`\n\nclass DummyHTMLElement {}\nconst ClassToExtend = typeof window === 'undefined' || typeof HTMLElement === 'undefined' ? DummyHTMLElement : HTMLElement;\nconst arrowSvg = `\n `;\nconst addStyle = (shadowRoot, styles) => {\n if (typeof CSSStyleSheet !== 'undefined' && shadowRoot.adoptedStyleSheets) {\n const styleSheet = new CSSStyleSheet();\n styleSheet.replaceSync(styles);\n shadowRoot.adoptedStyleSheets = [styleSheet];\n } else {\n const style = document.createElement('style');\n style.rel = 'stylesheet';\n style.textContent = styles;\n shadowRoot.appendChild(style);\n }\n};\nclass SwiperContainer extends ClassToExtend {\n constructor() {\n super();\n this.attachShadow({\n mode: 'open'\n });\n }\n static get nextButtonSvg() {\n return arrowSvg;\n }\n static get prevButtonSvg() {\n return arrowSvg.replace('/>', ' transform-origin=\"center\" transform=\"rotate(180)\"/>');\n }\n cssStyles() {\n return [SwiperCSS,\n // eslint-disable-line\n ...(this.injectStyles && Array.isArray(this.injectStyles) ? this.injectStyles : [])].join('\\n');\n }\n cssLinks() {\n return this.injectStylesUrls || [];\n }\n calcSlideSlots() {\n const currentSideSlots = this.slideSlots || 0;\n // slide slots\n const slideSlotChildren = [...this.querySelectorAll(`[slot^=slide-]`)].map(child => {\n return parseInt(child.getAttribute('slot').split('slide-')[1], 10);\n });\n this.slideSlots = slideSlotChildren.length ? Math.max(...slideSlotChildren) + 1 : 0;\n if (!this.rendered) return;\n if (this.slideSlots > currentSideSlots) {\n for (let i = currentSideSlots; i < this.slideSlots; i += 1) {\n const slideEl = document.createElement('swiper-slide');\n slideEl.setAttribute('part', `slide slide-${i + 1}`);\n const slotEl = document.createElement('slot');\n slotEl.setAttribute('name', `slide-${i + 1}`);\n slideEl.appendChild(slotEl);\n this.shadowRoot.querySelector('.swiper-wrapper').appendChild(slideEl);\n }\n } else if (this.slideSlots < currentSideSlots) {\n const slides = this.swiper.slides;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (i > this.slideSlots) {\n slides[i].remove();\n }\n }\n }\n }\n render() {\n if (this.rendered) return;\n this.calcSlideSlots();\n\n // local styles\n let localStyles = this.cssStyles();\n if (this.slideSlots > 0) {\n localStyles = localStyles.replace(/::slotted\\(([a-z-0-9.]*)\\)/g, '$1');\n }\n if (localStyles.length) {\n addStyle(this.shadowRoot, localStyles);\n }\n this.cssLinks().forEach(url => {\n const linkExists = this.shadowRoot.querySelector(`link[href=\"${url}\"]`);\n if (linkExists) return;\n const linkEl = document.createElement('link');\n linkEl.rel = 'stylesheet';\n linkEl.href = url;\n this.shadowRoot.appendChild(linkEl);\n });\n // prettier-ignore\n const el = document.createElement('div');\n el.classList.add('swiper');\n el.part = 'container';\n\n // prettier-ignore\n el.innerHTML = `\n \n
\n \n ${Array.from({\n length: this.slideSlots\n }).map((_, index) => `\n \n \n \n `).join('')}\n
\n \n ${needsNavigation(this.passedParams) ? `\n
${this.constructor.prevButtonSvg}
\n
${this.constructor.nextButtonSvg}
\n ` : ''}\n ${needsPagination(this.passedParams) ? `\n
\n ` : ''}\n ${needsScrollbar(this.passedParams) ? `\n
\n ` : ''}\n `;\n this.shadowRoot.appendChild(el);\n this.rendered = true;\n }\n initialize() {\n var _this = this;\n if (this.initialized) return;\n this.initialized = true;\n const {\n params: swiperParams,\n passedParams\n } = getParams(this);\n this.swiperParams = swiperParams;\n this.passedParams = passedParams;\n delete this.swiperParams.init;\n this.render();\n\n // eslint-disable-next-line\n this.swiper = new Swiper(this.shadowRoot.querySelector('.swiper'), {\n ...(swiperParams.virtual ? {} : {\n observer: true,\n observeSlideChildren: this.slideSlots > 0\n }),\n ...swiperParams,\n touchEventsTarget: 'container',\n onAny: function (name) {\n if (name === 'observerUpdate') {\n _this.calcSlideSlots();\n }\n const eventName = swiperParams.eventsPrefix ? `${swiperParams.eventsPrefix}${name.toLowerCase()}` : name.toLowerCase();\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n const event = new CustomEvent(eventName, {\n detail: args,\n bubbles: name !== 'hashChange',\n cancelable: true\n });\n _this.dispatchEvent(event);\n }\n });\n }\n connectedCallback() {\n if (this.initialized && this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) {\n return;\n }\n if (this.init === false || this.getAttribute('init') === 'false') {\n return;\n }\n this.initialize();\n }\n disconnectedCallback() {\n if (this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) {\n return;\n }\n if (this.swiper && this.swiper.destroy) {\n this.swiper.destroy();\n }\n this.initialized = false;\n }\n updateSwiperOnPropChange(propName, propValue) {\n const {\n params: swiperParams,\n passedParams\n } = getParams(this, propName, propValue);\n this.passedParams = passedParams;\n this.swiperParams = swiperParams;\n if (this.swiper && this.swiper.params[propName] === propValue) {\n return;\n }\n updateSwiper({\n swiper: this.swiper,\n passedParams: this.passedParams,\n changedParams: [attrToProp(propName)],\n ...(propName === 'navigation' && passedParams[propName] ? {\n prevEl: '.swiper-button-prev',\n nextEl: '.swiper-button-next'\n } : {}),\n ...(propName === 'pagination' && passedParams[propName] ? {\n paginationEl: '.swiper-pagination'\n } : {}),\n ...(propName === 'scrollbar' && passedParams[propName] ? {\n scrollbarEl: '.swiper-scrollbar'\n } : {})\n });\n }\n attributeChangedCallback(attr, prevValue, newValue) {\n if (!this.initialized) return;\n if (prevValue === 'true' && newValue === null) {\n newValue = false;\n }\n this.updateSwiperOnPropChange(attr, newValue);\n }\n static get observedAttributes() {\n const attrs = paramsList.filter(param => param.includes('_')).map(param => param.replace(/[A-Z]/g, v => `-${v}`).replace('_', '').toLowerCase());\n return attrs;\n }\n}\nparamsList.forEach(paramName => {\n if (paramName === 'init') return;\n paramName = paramName.replace('_', '');\n Object.defineProperty(SwiperContainer.prototype, paramName, {\n configurable: true,\n get() {\n return (this.passedParams || {})[paramName];\n },\n set(value) {\n if (!this.passedParams) this.passedParams = {};\n this.passedParams[paramName] = value;\n if (!this.initialized) return;\n this.updateSwiperOnPropChange(paramName, value);\n }\n });\n});\nclass SwiperSlide extends ClassToExtend {\n constructor() {\n super();\n this.attachShadow({\n mode: 'open'\n });\n }\n render() {\n const lazy = this.lazy || this.getAttribute('lazy') === '' || this.getAttribute('lazy') === 'true';\n addStyle(this.shadowRoot, SwiperSlideCSS);\n this.shadowRoot.appendChild(document.createElement('slot'));\n if (lazy) {\n const lazyDiv = document.createElement('div');\n lazyDiv.classList.add('swiper-lazy-preloader');\n lazyDiv.part.add('preloader');\n this.shadowRoot.appendChild(lazyDiv);\n }\n }\n initialize() {\n this.render();\n }\n connectedCallback() {\n this.initialize();\n }\n}\n\n// eslint-disable-next-line\nconst register = () => {\n if (typeof window === 'undefined') return;\n if (!window.customElements.get('swiper-container')) window.customElements.define('swiper-container', SwiperContainer);\n if (!window.customElements.get('swiper-slide')) window.customElements.define('swiper-slide', SwiperSlide);\n};\nif (typeof window !== 'undefined') {\n window.SwiperElementRegisterParams = params => {\n paramsList.push(...params);\n };\n}\n\nexport { SwiperContainer, SwiperSlide, register };\n","// Should be the same as logging.LogLevel, but local to this module\nexport enum LogLevel {\n Debug = 1,\n Info,\n Warn,\n Error,\n None = 1000,\n}\n\nexport type LogScope =\n 'default'\n // Library\n | 'AsyncProcessor'\n | 'BrowserInfo'\n | 'BrowserInit'\n | 'BubbleHost'\n | 'Connectivity'\n | 'Gestures'\n | 'event-handling'\n | 'InertialScroll'\n | 'NoSleep'\n | 'History'\n | 'Interactive'\n | 'Kvas'\n | 'KvasBackend'\n | 'MenuHost'\n | 'ModalHost'\n | 'OnDeviceAwake'\n | 'promises'\n | 'Rpc'\n | 'ScreenSize'\n | 'ServiceWorker'\n | 'SessionTokens'\n | 'TimerQueue'\n | 'UndoStack'\n | 'Versioning'\n | 'VirtualList'\n // XxxUI\n | 'DebugUI'\n | 'DeviceAwakeUI'\n | 'FocusUI'\n | 'InteractiveUI'\n | 'KeepAwakeUI'\n | 'LanguageUI'\n | 'NotificationUI'\n | 'TuneUI'\n | 'UserActivityUI'\n | 'VibrationUI'\n | 'Share'\n // Audio\n | 'AudioContextRef'\n | 'AudioContextSource'\n | 'AudioInfo'\n // Audio playback\n | 'AudioPlayer'\n | 'FallbackPlayback'\n | 'OpusDecoder'\n | 'OpusDecoderWorker'\n | 'FeederNode'\n | 'FeederProcessor'\n | 'SoundsPlayer'\n // Audio recording\n | 'AudioRecorder'\n | 'AudioStreamer'\n | 'OpusMediaRecorder'\n | 'AudioVadWorker'\n | 'AudioVadWorkletProcessor'\n | 'OpusEncoderWorkletProcessor'\n | 'OpusEncoderWorker'\n | 'WarmUpAudioWorkletProcessor'\n | 'WebRtcAec' // Unused\n // Isolated components\n | 'Attachments'\n | 'ChatMessageEditor'\n | 'CodeBlockMarkupView'\n | 'CopyTrigger'\n | 'FontSizes'\n | 'Landing'\n | 'LandingLeftMenu'\n | 'MarkupEditor'\n | 'MessageEditor'\n | 'SearchPanel'\n | 'SideNav'\n | 'SelectionHost'\n | 'TextBox'\n | 'Theme'\n | 'TooltipHost'\n | 'UserInterface'\n | 'VisualMediaViewer'\n | 'WebAuth';\n\nconst GlobalThisKey = 'logLevels';\nconst StorageKey = 'logLevels';\nconst DateStorageKey = `${StorageKey}.date`;\nconst MaxStorageAge = 86_400_000 * 3; // 3 days\n\nconst app = globalThis?.['App'] as unknown;\nconst isWorkerOrWorklet = !app;\n\nexport function initLogging(Log: unknown): void {\n Log['defaultMinLevel'] = LogLevel.Info;\n const minLevels = Log['minLevels'] as Map;\n\n let wasRestored = false;\n if (globalThis && !isWorkerOrWorklet) {\n globalThis[GlobalThisKey] = new LogLevelController(minLevels);\n wasRestored = restore(minLevels);\n }\n if (wasRestored) {\n console.log(`Logging: logLevels are restored`);\n }\n else {\n if (!isWorkerOrWorklet)\n console.log(`Logging: logLevels are reset`);\n reset(minLevels);\n }\n}\n\nclass LogLevelController {\n constructor (private minLevels: Map)\n { }\n\n public override(scope: LogScope, newLevel: LogLevel): void {\n this.minLevels.set(scope, newLevel);\n persist(this.minLevels);\n }\n\n public reset(isProduction?: boolean) {\n reset(this.minLevels, isProduction);\n persist(this.minLevels);\n }\n\n public clear(defaultLevel?: LogLevel) {\n this.minLevels.clear();\n if (defaultLevel !== undefined)\n this.minLevels['default'] = defaultLevel;\n persist(this.minLevels);\n }\n}\n\nconst sessionStorage = globalThis?.sessionStorage;\n\nfunction restore(minLevels: Map): boolean {\n if (!sessionStorage)\n return false;\n\n const dateJson = sessionStorage.getItem(DateStorageKey);\n if (!dateJson)\n return false;\n if (Date.now() - JSON.parse(dateJson) > MaxStorageAge)\n return false;\n\n const readJson = sessionStorage.getItem(StorageKey);\n if (!readJson)\n return false;\n\n const readMinLevels = new Map(JSON.parse(readJson) as [string, LogLevel][]);\n if (!(typeof readMinLevels.size === 'number'))\n return false;\n\n minLevels.clear();\n readMinLevels.forEach((value, key) => minLevels.set(key, value));\n return true;\n}\n\nfunction persist(minLevels: Map): boolean {\n if (!sessionStorage)\n return false;\n\n sessionStorage.setItem(DateStorageKey, JSON.stringify(Date.now()));\n sessionStorage.setItem(StorageKey, JSON.stringify(Array.from(minLevels.entries())));\n return true;\n}\n\nfunction reset(minLevels: Map, isProduction?: boolean): void {\n minLevels.clear();\n // enabled debug logging temporarily - do not add chatty log scopes!! - 14.11.2023 AK\n\n // isProduction ??= app?.['environment'] == 'Production';\n // if (isProduction)\n // return;\n\n // Bumping down levels of in-dev scopes\n // minLevels.set('Versioning', LogLevel.Debug);\n // minLevels.set('Gestures', LogLevel.Debug);\n // minLevels.set('event-handling', LogLevel.Debug);\n // minLevels.set('Rpc', LogLevel.Debug);\n // minLevels.set('AsyncProcessor', LogLevel.Debug);\n // minLevels.set('promises', LogLevel.Debug);\n minLevels.set('Interactive', LogLevel.Debug);\n minLevels.set('OnDeviceAwake', LogLevel.Debug);\n minLevels.set('AudioContextRef', LogLevel.Debug);\n minLevels.set('AudioContextSource', LogLevel.Debug);\n minLevels.set('AudioPlayer', LogLevel.Debug);\n // minLevels.set('FallbackPlayback', LogLevel.Debug);\n // minLevels.set('OpusDecoder', LogLevel.Debug);\n // minLevels.set('OpusDecoderWorker', LogLevel.Debug);\n // minLevels.set('FeederProcessor', LogLevel.Debug);\n minLevels.set('AudioRecorder', LogLevel.Debug);\n // minLevels.set('AudioStreamer', LogLevel.Debug);\n minLevels.set('OpusMediaRecorder', LogLevel.Debug);\n // minLevels.set('AudioVadWorker', LogLevel.Debug);\n // minLevels.set('AudioVadWorkletProcessor', LogLevel.Debug);\n // minLevels.set('OpusEncoderWorker', LogLevel.Debug);\n // minLevels.set('OpusEncoderWorkletProcessor', LogLevel.Debug);\n // minLevels.set('InertialScroll', LogLevel.Debug);\n minLevels.set('VirtualList', LogLevel.Debug);\n // minLevels.set('Landing', LogLevel.Debug);\n // minLevels.set('LandingLeftMenu', LogLevel.Debug);\n // minLevels.set('SideNav', LogLevel.Debug);\n\n // XxxUI\n // minLevels.set('FocusUI', LogLevel.Debug);\n // minLevels.set('KeepAwakeUI', LogLevel.Debug);\n // minLevels.set('NoSleep', LogLevel.Debug);\n // minLevels.set('NotificationUI', LogLevel.Debug);\n // minLevels.set('TuneUI', LogLevel.Debug);\n // minLevels.set('SoundsPlayer', LogLevel.Debug);\n\n // Isolated components\n // minLevels.set('History', LogLevel.Debug);\n // minLevels.set('MenuHost', LogLevel.Debug);\n // minLevels.set('MarkupEditor', LogLevel.Debug);\n // minLevels.set('ChatMessageEditor', LogLevel.Debug);\n\n // minLevels.clear(); // To quickly discard any tweaks :)\n persist(minLevels);\n}\n","const userAgent = navigator?.userAgent ?? '';\nconst userAgentLowerCase = userAgent.toLowerCase();\nconst userAgentData = navigator['userAgentData'] as { mobile: boolean; };\nconst isMobile = userAgentData?.mobile === true\n || /android|mobile|phone|webos|iphone|ipad|ipod|blackberry/.test(userAgentLowerCase);\nconst isChromium = userAgentLowerCase.indexOf('chrome') >= 0;\n\nexport const DeviceInfo = {\n isMobile: isMobile,\n isAndroid: isMobile && userAgentLowerCase.indexOf('android') >= 0,\n isIos: isMobile && /iphone|ipad|ipod/.test(userAgentLowerCase),\n isChromium: isChromium,\n isWebKit: userAgentLowerCase.indexOf('webkit') >= 0 && !isChromium,\n isFirefox: userAgentLowerCase.indexOf('firefox') >= 0,\n isEdge: userAgentLowerCase.indexOf('edg/') >= 0,\n isTouchCapable: (typeof window !== 'undefined' && (('ontouchstart' in window)\n || (navigator['MaxTouchPoints'] as number > 0)\n || (navigator['msMaxTouchPoints'] as number > 0))),\n\n init: function (): void {\n const body = document?.body;\n if (!body)\n return;\n\n const classList = body.classList;\n if (DeviceInfo.isMobile)\n classList.add('device-mobile');\n else\n classList.add('device-desktop');\n\n if (DeviceInfo.isAndroid)\n classList.add('device-android');\n if (DeviceInfo.isIos)\n classList.add('device-ios');\n if (DeviceInfo.isChromium)\n classList.add('device-chrome');\n if (DeviceInfo.isEdge)\n classList.add('device-edge');\n if (DeviceInfo.isWebKit)\n classList.add('device-webkit');\n\n if (DeviceInfo.isTouchCapable)\n classList.add('touch-capable');\n else\n classList.add('touch-incapable');\n }\n};\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n if (isFunction(resultSelector)) {\n return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); });\n}\n//# sourceMappingURL=mergeMap.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n var buffer = [];\n var active = 0;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); };\n var doInnerSub = function (value) {\n expand && subscriber.next(value);\n active++;\n var innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, function () {\n innerComplete = true;\n }, undefined, function () {\n if (innerComplete) {\n try {\n active--;\n var _loop_1 = function () {\n var bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); });\n }\n else {\n doInnerSub(bufferedValue);\n }\n };\n while (buffer.length && active < concurrent) {\n _loop_1();\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () {\n isComplete = true;\n checkComplete();\n }));\n return function () {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n//# sourceMappingURL=isScheduler.js.map","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n//# sourceMappingURL=args.js.map","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return executeSchedule(subscriber, scheduler, function () { return subscriber.next(value); }, delay); }, function () { return executeSchedule(subscriber, scheduler, function () { return subscriber.complete(); }, delay); }, function (err) { return executeSchedule(subscriber, scheduler, function () { return subscriber.error(err); }, delay); }));\n });\n}\n//# sourceMappingURL=observeOn.js.map","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n subscriber.add(scheduler.schedule(function () { return source.subscribe(subscriber); }, delay));\n });\n}\n//# sourceMappingURL=subscribeOn.js.map","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n executeSchedule(subscriber, scheduler, function () {\n var iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, function () {\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n//# sourceMappingURL=scheduled.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable(function (subscriber) {\n var iterator;\n executeSchedule(subscriber, scheduler, function () {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, function () {\n var _a;\n var value;\n var done;\n try {\n (_a = iterator.next(), value = _a.value, done = _a.done);\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return function () { return isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); };\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n//# sourceMappingURL=scheduleReadableStreamLike.js.map","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n//# sourceMappingURL=from.js.map","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return concatAll()(from(args, popScheduler(args)));\n}\n//# sourceMappingURL=concat.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = popScheduler(args);\n return from(args, scheduler);\n}\n//# sourceMappingURL=of.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { map } from \"../operators/map\";\nvar isArray = Array.isArray;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(function (args) { return callOrApply(fn, args); });\n}\n//# sourceMappingURL=mapOneOrManyArgs.js.map","import { __read } from \"tslib\";\nimport { innerFrom } from '../observable/innerFrom';\nimport { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nvar nodeEventEmitterMethods = ['addListener', 'removeListener'];\nvar eventTargetMethods = ['addEventListener', 'removeEventListener'];\nvar jqueryMethods = ['on', 'off'];\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));\n }\n var _a = __read(isEventTarget(target)\n ? eventTargetMethods.map(function (methodName) { return function (handler) { return target[methodName](eventName, handler, options); }; })\n :\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [], 2), add = _a[0], remove = _a[1];\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap(function (subTarget) { return fromEvent(subTarget, eventName, options); })(innerFrom(target));\n }\n }\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return subscriber.next(1 < args.length ? args : args[0]);\n };\n add(handler);\n return function () { return remove(handler); };\n });\n}\nfunction toCommonHandlerRegistry(target, eventName) {\n return function (methodName) { return function (handler) { return target[methodName](eventName, handler); }; };\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction(target.on) && isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n//# sourceMappingURL=fromEvent.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n var _a;\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider.now;\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return operate(function (source, subscriber) {\n var activeTask = null;\n var lastValue = null;\n var lastTime = null;\n var emit = function () {\n if (activeTask) {\n activeTask.unsubscribe();\n activeTask = null;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle() {\n var targetTime = lastTime + dueTime;\n var now = scheduler.now();\n if (now < targetTime) {\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n emit();\n }\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n lastValue = value;\n lastTime = scheduler.now();\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n }, function () {\n emit();\n subscriber.complete();\n }, undefined, function () {\n lastValue = activeTask = null;\n }));\n });\n}\n//# sourceMappingURL=debounceTime.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import { initLogging, LogLevel, LogScope } from 'logging-init';\nimport 'logging-init';\n\nexport { LogLevel } from './logging-init';\nexport type { LogScope } from './logging-init';\n\nexport interface LogRef {\n target : unknown;\n id : number;\n}\n\ninterface SetItem {\n ref : LogRef;\n touchedAt : number;\n}\n\nclass LogRefSet {\n items : SetItem[];\n capacity : number;\n idSeed : number;\n\n constructor(capacity : number) {\n this.idSeed = 0;\n this.capacity = capacity;\n this.items = [];\n }\n\n public ref(data: object) : LogRef {\n const itemIndex = this.items.findIndex(el => el.ref.target === data);\n if (itemIndex >= 0) {\n const existentItem = this.items[itemIndex];\n existentItem.touchedAt = Date.now();\n return existentItem.ref;\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const id = data['__logRefId'] as number ?? this.idSeed++;\n const newRef = { target: data, id: id };\n data['__logRefId'] = id;\n if (this.items.length >= this.capacity)\n this.removeOldest();\n const newItem = { ref : newRef, touchedAt : Date.now() };\n this.items.push(newItem);\n return newRef;\n }\n }\n\n private removeOldest() {\n let indexToEliminate = 0;\n let itemToEliminate = this.items[0];\n for (let i = 1; i < this.items.length; i++) {\n const item = this.items[i];\n if (item.touchedAt < itemToEliminate.touchedAt) {\n itemToEliminate = item;\n indexToEliminate = i;\n }\n }\n this.items.splice(indexToEliminate, 1);\n // clear log ref target to prevent memory leaks\n // and keep string representation of the target for tracing\n const ref = itemToEliminate.ref;\n ref.target = ref.target.toString();\n }\n}\n\nexport class Log {\n private static isInitialized = false;\n private static logRefs : LogRefSet = new LogRefSet(10);\n public static readonly minLevels: Map = new Map();\n public static defaultMinLevel = LogLevel.Info;\n public log: (...data: unknown[]) => void;\n public trace: (...data: unknown[]) => void;\n\n constructor(\n public readonly scope: LogScope,\n public readonly level: LogLevel,\n ) {\n const prefix = `[${scope}]`;\n switch (level) {\n case LogLevel.Debug:\n this.log = (...data: unknown[]) => console.debug(prefix, ...data);\n break;\n case LogLevel.Info:\n this.log = (...data: unknown[]) => console.log(prefix, ...data);\n break;\n case LogLevel.Warn:\n this.log = (...data: unknown[]) => console.warn(prefix, ...data);\n break;\n case LogLevel.Error:\n this.log = (...data: unknown[]) => console.error(prefix, ...data);\n break;\n case LogLevel.None:\n throw new Error('LogLevel.None cannot be used here');\n }\n this.trace = (...data: unknown[]) => console.trace(prefix, ...data);\n }\n\n public static loggerFactory = (scope: LogScope, level: LogLevel) => new Log(scope, level);\n\n public static get(scope: LogScope) {\n if (!this.isInitialized) {\n this.isInitialized = true;\n initLogging(this);\n }\n\n const minLevels = this.minLevels;\n const minLevel = minLevels.get(scope)\n ?? minLevels.get('default')\n ?? this.defaultMinLevel;\n\n const getLogger = (level: LogLevel) => level >= minLevel ? this.loggerFactory(scope, level) : null;\n\n return {\n logScope: scope,\n debugLog: getLogger(LogLevel.Debug),\n infoLog: getLogger(LogLevel.Info),\n warnLog: getLogger(LogLevel.Warn),\n errorLog: getLogger(LogLevel.Error),\n };\n }\n\n public static ref(data: object) : object {\n if (!data)\n return data;\n return this.logRefs.ref(data);\n }\n\n public assert(predicate?: boolean, ...data: unknown[]): void {\n if (!predicate)\n this.log(data);\n }\n}\n","import {\n concat,\n debounceTime,\n fromEvent,\n of,\n Observable,\n Subject,\n} from 'rxjs';\nimport { Log } from 'logging';\n\nconst { debugLog, errorLog } = Log.get('ScreenSize');\n\nexport type Size = 'Unknown' | 'Small' | 'Medium' | 'Large' | 'ExtraLarge' | 'ExtraLarge2';\n\nexport class ScreenSize {\n private static screenSizeMeasureDiv: HTMLDivElement;\n private static hoverMeasureDiv: HTMLDivElement;\n private static innerHoverMeasureDiv: HTMLDivElement;\n\n public static width: number;\n public static height: number;\n public static size: Size = 'Unknown';\n public static isHoverable: boolean;\n public static change$ = new Subject();\n public static size$: Observable;\n public static event$ = new Subject();\n\n public static init() {\n this.hoverMeasureDiv = document.createElement(\"div\");\n this.hoverMeasureDiv.className = \"hover-measure\";\n this.hoverMeasureDiv.innerHTML = `
`;\n document.body.appendChild(this.hoverMeasureDiv);\n this.innerHoverMeasureDiv = this.hoverMeasureDiv.children[0] as HTMLDivElement;\n\n this.screenSizeMeasureDiv = document.createElement(\"div\");\n this.screenSizeMeasureDiv.className = \"screen-size-measure\";\n this.screenSizeMeasureDiv.innerHTML = `\n
\n
\n
\n
\n
\n `;\n document.body.appendChild(this.screenSizeMeasureDiv);\n this.measureAndUpdate();\n\n this.size$ = concat(of(this.size), this.change$);\n fromEvent(window.visualViewport, 'resize')\n .pipe(debounceTime(50))\n .subscribe((event: Event) => this.notifyChanged(event));\n }\n\n public static isNarrow(size?: Size): boolean {\n return (size ?? this.size) == 'Small';\n }\n\n public static isWide(size?: Size): boolean {\n return !this.isNarrow(size);\n }\n\n public static notifyChanged(event?: Event): void {\n this.measureAndUpdate()\n this.event$.next(event);\n }\n\n private static measureAndUpdate(): Size {\n let [size, isHoverable] = this.measure();\n if (size == 'Small') // We're always non-hoverable in narrow mode\n isHoverable = false;\n\n if (size != this.size || isHoverable != this.isHoverable) {\n debugLog?.log(`measureAndUpdate: new size:`, size, ', isHoverable:', isHoverable);\n this.size = size;\n this.isHoverable = isHoverable;\n this.updateBodyClasses();\n try {\n this.change$.next(size);\n }\n catch (e) {\n errorLog?.log('measureAndUpdate: one of change$ handlers failed:', e)\n }\n }\n return size;\n }\n\n private static measure(): [Size, boolean] {\n this.width = visualViewport.width;\n this.height = visualViewport.height;\n const isHoverable = window.getComputedStyle(this.innerHoverMeasureDiv).getPropertyValue('width') !== 'auto';\n let itemDiv: HTMLDivElement = null;\n for (const item of this.screenSizeMeasureDiv.children) {\n itemDiv = item as HTMLDivElement;\n if (!item)\n continue;\n\n const isVisible = window.getComputedStyle(itemDiv).getPropertyValue('width') !== 'auto';\n // debugLog?.log(`measure: size:`, itemDiv.dataset['size'], ', isVisible:', isVisible);\n if (isVisible)\n return [itemDiv.dataset['size'] as Size, isHoverable];\n }\n // Returning the last \"available\" size\n return [(itemDiv.dataset['size'] ?? \"Unknown\") as Size, isHoverable];\n };\n\n private static updateBodyClasses() {\n const classList = document.body.classList;\n if (this.isHoverable) {\n classList.remove('non-hoverable');\n classList.add('hoverable');\n }\n else {\n classList.remove('hoverable');\n classList.add('non-hoverable');\n }\n const isNarrow = this.size == 'Small';\n if (isNarrow) {\n classList.remove('wide');\n classList.add('narrow');\n }\n else {\n classList.remove('narrow');\n classList.add('wide');\n }\n }\n}\n\nScreenSize.init();\n","import { DeviceInfo } from 'device-info';\nimport { ScreenSize } from '../../dotnet/UI.Blazor/Services/ScreenSize/screen-size';\nimport { Log } from 'logging';\n\nconst { debugLog } = Log.get('FontSizes');\n\nconst storage = window?.localStorage;\nconst storageKey = 'ui.font-size'\nconst availableSizes : { [title: string]: string } = {\n '14px': '14px',\n '16px': '16px',\n '18px': '18px',\n '20px': '20px',\n // '24px': '24px',\n}\n\nexport class FontSizes {\n public static init(): void {\n const size = load() ?? getDefault();\n this.set(size);\n }\n\n public static list() {\n return availableSizes;\n }\n\n public static get(): string {\n if (!storage)\n return null;\n\n const root = document.querySelector(':root');\n const rootStyle = window.getComputedStyle(root);\n const size = rootStyle.getPropertyValue('--font-size');\n return getValidOrDefault(size);\n }\n\n public static set(size: string): void {\n if (!storage)\n return;\n\n size = getValidOrDefault(size);\n const root = document.querySelector(':root');\n const rootStyle = window.getComputedStyle(root);\n const rootFontSize = rootStyle.getPropertyValue('--font-size');\n if (rootFontSize != size) {\n (root as HTMLElement).style.setProperty('--font-size', size);\n ScreenSize.notifyChanged();\n }\n save(size);\n }\n}\n\nfunction getDefault() {\n return DeviceInfo.isIos ? '18px' : '16px';\n}\n\nfunction getValidOrDefault(size: string): string {\n return availableSizes[size] ?? getDefault();\n}\n\nfunction load(): string | null {\n return storage?.getItem(storageKey);\n}\n\nfunction save(size: string): void {\n storage?.setItem(storageKey, size);\n}\n\nFontSizes.init();\n","var __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar toInt = function (n) { return ~~n; };\n/**\n * Heap\n * @type {Class}\n */\nvar Heap = /** @class */ (function () {\n /**\n * Heap instance constructor.\n * @param {Function} compare Optional comparison function, defaults to Heap.minComparator\n */\n function Heap(compare) {\n if (compare === void 0) { compare = Heap.minComparator; }\n var _this = this;\n this.compare = compare;\n this.heapArray = [];\n this._limit = 0;\n /**\n * Alias of add\n */\n this.offer = this.add;\n /**\n * Alias of peek\n */\n this.element = this.peek;\n /**\n * Alias of pop\n */\n this.poll = this.pop;\n /**\n * Returns the inverse to the comparison function.\n * @return {Function}\n */\n this._invertedCompare = function (a, b) {\n return -1 * _this.compare(a, b);\n };\n }\n /*\n Static methods\n */\n /**\n * Gets children indices for given index.\n * @param {Number} idx Parent index\n * @return {Array(Number)} Array of children indices\n */\n Heap.getChildrenIndexOf = function (idx) {\n return [idx * 2 + 1, idx * 2 + 2];\n };\n /**\n * Gets parent index for given index.\n * @param {Number} idx Children index\n * @return {Number | undefined} Parent index, -1 if idx is 0\n */\n Heap.getParentIndexOf = function (idx) {\n if (idx <= 0) {\n return -1;\n }\n var whichChildren = idx % 2 ? 1 : 2;\n return Math.floor((idx - whichChildren) / 2);\n };\n /**\n * Gets sibling index for given index.\n * @param {Number} idx Children index\n * @return {Number | undefined} Sibling index, -1 if idx is 0\n */\n Heap.getSiblingIndexOf = function (idx) {\n if (idx <= 0) {\n return -1;\n }\n var whichChildren = idx % 2 ? 1 : -1;\n return idx + whichChildren;\n };\n /**\n * Min heap comparison function, default.\n * @param {any} a First element\n * @param {any} b Second element\n * @return {Number} 0 if they're equal, positive if `a` goes up, negative if `b` goes up\n */\n Heap.minComparator = function (a, b) {\n if (a > b) {\n return 1;\n }\n else if (a < b) {\n return -1;\n }\n else {\n return 0;\n }\n };\n /**\n * Max heap comparison function.\n * @param {any} a First element\n * @param {any} b Second element\n * @return {Number} 0 if they're equal, positive if `a` goes up, negative if `b` goes up\n */\n Heap.maxComparator = function (a, b) {\n if (b > a) {\n return 1;\n }\n else if (b < a) {\n return -1;\n }\n else {\n return 0;\n }\n };\n /**\n * Min number heap comparison function, default.\n * @param {Number} a First element\n * @param {Number} b Second element\n * @return {Number} 0 if they're equal, positive if `a` goes up, negative if `b` goes up\n */\n Heap.minComparatorNumber = function (a, b) {\n return a - b;\n };\n /**\n * Max number heap comparison function.\n * @param {Number} a First element\n * @param {Number} b Second element\n * @return {Number} 0 if they're equal, positive if `a` goes up, negative if `b` goes up\n */\n Heap.maxComparatorNumber = function (a, b) {\n return b - a;\n };\n /**\n * Default equality function.\n * @param {any} a First element\n * @param {any} b Second element\n * @return {Boolean} True if equal, false otherwise\n */\n Heap.defaultIsEqual = function (a, b) {\n return a === b;\n };\n /**\n * Prints a heap.\n * @param {Heap} heap Heap to be printed\n * @returns {String}\n */\n Heap.print = function (heap) {\n function deep(i) {\n var pi = Heap.getParentIndexOf(i);\n return Math.floor(Math.log2(pi + 1));\n }\n function repeat(str, times) {\n var out = '';\n for (; times > 0; --times) {\n out += str;\n }\n return out;\n }\n var node = 0;\n var lines = [];\n var maxLines = deep(heap.length - 1) + 2;\n var maxLength = 0;\n while (node < heap.length) {\n var i = deep(node) + 1;\n if (node === 0) {\n i = 0;\n }\n // Text representation\n var nodeText = String(heap.get(node));\n if (nodeText.length > maxLength) {\n maxLength = nodeText.length;\n }\n // Add to line\n lines[i] = lines[i] || [];\n lines[i].push(nodeText);\n node += 1;\n }\n return lines\n .map(function (line, i) {\n var times = Math.pow(2, maxLines - i) - 1;\n return (repeat(' ', Math.floor(times / 2) * maxLength) +\n line\n .map(function (el) {\n // centered\n var half = (maxLength - el.length) / 2;\n return repeat(' ', Math.ceil(half)) + el + repeat(' ', Math.floor(half));\n })\n .join(repeat(' ', times * maxLength)));\n })\n .join('\\n');\n };\n /*\n Python style\n */\n /**\n * Converts an array into an array-heap, in place\n * @param {Array} arr Array to be modified\n * @param {Function} compare Optional compare function\n * @return {Heap} For convenience, it returns a Heap instance\n */\n Heap.heapify = function (arr, compare) {\n var heap = new Heap(compare);\n heap.heapArray = arr;\n heap.init();\n return heap;\n };\n /**\n * Extract the peek of an array-heap\n * @param {Array} heapArr Array to be modified, should be a heap\n * @param {Function} compare Optional compare function\n * @return {any} Returns the extracted peek\n */\n Heap.heappop = function (heapArr, compare) {\n var heap = new Heap(compare);\n heap.heapArray = heapArr;\n return heap.pop();\n };\n /**\n * Pushes a item into an array-heap\n * @param {Array} heapArr Array to be modified, should be a heap\n * @param {any} item Item to push\n * @param {Function} compare Optional compare function\n */\n Heap.heappush = function (heapArr, item, compare) {\n var heap = new Heap(compare);\n heap.heapArray = heapArr;\n heap.push(item);\n };\n /**\n * Push followed by pop, faster\n * @param {Array} heapArr Array to be modified, should be a heap\n * @param {any} item Item to push\n * @param {Function} compare Optional compare function\n * @return {any} Returns the extracted peek\n */\n Heap.heappushpop = function (heapArr, item, compare) {\n var heap = new Heap(compare);\n heap.heapArray = heapArr;\n return heap.pushpop(item);\n };\n /**\n * Replace peek with item\n * @param {Array} heapArr Array to be modified, should be a heap\n * @param {any} item Item as replacement\n * @param {Function} compare Optional compare function\n * @return {any} Returns the extracted peek\n */\n Heap.heapreplace = function (heapArr, item, compare) {\n var heap = new Heap(compare);\n heap.heapArray = heapArr;\n return heap.replace(item);\n };\n /**\n * Return the `n` most valuable elements of a heap-like Array\n * @param {Array} heapArr Array, should be an array-heap\n * @param {number} n Max number of elements\n * @param {Function} compare Optional compare function\n * @return {any} Elements\n */\n Heap.heaptop = function (heapArr, n, compare) {\n if (n === void 0) { n = 1; }\n var heap = new Heap(compare);\n heap.heapArray = heapArr;\n return heap.top(n);\n };\n /**\n * Return the `n` least valuable elements of a heap-like Array\n * @param {Array} heapArr Array, should be an array-heap\n * @param {number} n Max number of elements\n * @param {Function} compare Optional compare function\n * @return {any} Elements\n */\n Heap.heapbottom = function (heapArr, n, compare) {\n if (n === void 0) { n = 1; }\n var heap = new Heap(compare);\n heap.heapArray = heapArr;\n return heap.bottom(n);\n };\n /**\n * Return the `n` most valuable elements of an iterable\n * @param {number} n Max number of elements\n * @param {Iterable} Iterable Iterable list of elements\n * @param {Function} compare Optional compare function\n * @return {any} Elements\n */\n Heap.nlargest = function (n, iterable, compare) {\n var heap = new Heap(compare);\n heap.heapArray = __spreadArray([], __read(iterable), false);\n heap.init();\n return heap.top(n);\n };\n /**\n * Return the `n` least valuable elements of an iterable\n * @param {number} n Max number of elements\n * @param {Iterable} Iterable Iterable list of elements\n * @param {Function} compare Optional compare function\n * @return {any} Elements\n */\n Heap.nsmallest = function (n, iterable, compare) {\n var heap = new Heap(compare);\n heap.heapArray = __spreadArray([], __read(iterable), false);\n heap.init();\n return heap.bottom(n);\n };\n /*\n Instance methods\n */\n /**\n * Adds an element to the heap. Aliases: `offer`.\n * Same as: push(element)\n * @param {any} element Element to be added\n * @return {Boolean} true\n */\n Heap.prototype.add = function (element) {\n this._sortNodeUp(this.heapArray.push(element) - 1);\n this._applyLimit();\n return true;\n };\n /**\n * Adds an array of elements to the heap.\n * Similar as: push(element, element, ...).\n * @param {Array} elements Elements to be added\n * @return {Boolean} true\n */\n Heap.prototype.addAll = function (elements) {\n var _a;\n var i = this.length;\n (_a = this.heapArray).push.apply(_a, __spreadArray([], __read(elements), false));\n for (var l = this.length; i < l; ++i) {\n this._sortNodeUp(i);\n }\n this._applyLimit();\n return true;\n };\n /**\n * Return the bottom (lowest value) N elements of the heap.\n *\n * @param {Number} n Number of elements.\n * @return {Array} Array of length <= N.\n */\n Heap.prototype.bottom = function (n) {\n if (n === void 0) { n = 1; }\n if (this.heapArray.length === 0 || n <= 0) {\n // Nothing to do\n return [];\n }\n else if (this.heapArray.length === 1) {\n // Just the peek\n return [this.heapArray[0]];\n }\n else if (n >= this.heapArray.length) {\n // The whole heap\n return __spreadArray([], __read(this.heapArray), false);\n }\n else {\n // Some elements\n var result = this._bottomN_push(~~n);\n return result;\n }\n };\n /**\n * Check if the heap is sorted, useful for testing purposes.\n * @return {Undefined | Element} Returns an element if something wrong is found, otherwise it's undefined\n */\n Heap.prototype.check = function () {\n var _this = this;\n return this.heapArray.find(function (el, j) { return !!_this.getChildrenOf(j).find(function (ch) { return _this.compare(el, ch) > 0; }); });\n };\n /**\n * Remove all of the elements from this heap.\n */\n Heap.prototype.clear = function () {\n this.heapArray = [];\n };\n /**\n * Clone this heap\n * @return {Heap}\n */\n Heap.prototype.clone = function () {\n var cloned = new Heap(this.comparator());\n cloned.heapArray = this.toArray();\n cloned._limit = this._limit;\n return cloned;\n };\n /**\n * Returns the comparison function.\n * @return {Function}\n */\n Heap.prototype.comparator = function () {\n return this.compare;\n };\n /**\n * Returns true if this queue contains the specified element.\n * @param {any} o Element to be found\n * @param {Function} fn Optional comparison function, receives (element, needle)\n * @return {Boolean}\n */\n Heap.prototype.contains = function (o, fn) {\n if (fn === void 0) { fn = Heap.defaultIsEqual; }\n return this.heapArray.findIndex(function (el) { return fn(el, o); }) >= 0;\n };\n /**\n * Initialise a heap, sorting nodes\n * @param {Array} array Optional initial state array\n */\n Heap.prototype.init = function (array) {\n if (array) {\n this.heapArray = __spreadArray([], __read(array), false);\n }\n for (var i = Math.floor(this.heapArray.length); i >= 0; --i) {\n this._sortNodeDown(i);\n }\n this._applyLimit();\n };\n /**\n * Test if the heap has no elements.\n * @return {Boolean} True if no elements on the heap\n */\n Heap.prototype.isEmpty = function () {\n return this.length === 0;\n };\n /**\n * Get the leafs of the tree (no children nodes)\n */\n Heap.prototype.leafs = function () {\n if (this.heapArray.length === 0) {\n return [];\n }\n var pi = Heap.getParentIndexOf(this.heapArray.length - 1);\n return this.heapArray.slice(pi + 1);\n };\n Object.defineProperty(Heap.prototype, \"length\", {\n /**\n * Length of the heap.\n * @return {Number}\n */\n get: function () {\n return this.heapArray.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Heap.prototype, \"limit\", {\n /**\n * Get length limit of the heap.\n * @return {Number}\n */\n get: function () {\n return this._limit;\n },\n /**\n * Set length limit of the heap.\n * @return {Number}\n */\n set: function (_l) {\n this._limit = ~~_l;\n this._applyLimit();\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Top node. Aliases: `element`.\n * Same as: `top(1)[0]`\n * @return {any} Top node\n */\n Heap.prototype.peek = function () {\n return this.heapArray[0];\n };\n /**\n * Extract the top node (root). Aliases: `poll`.\n * @return {any} Extracted top node, undefined if empty\n */\n Heap.prototype.pop = function () {\n var last = this.heapArray.pop();\n if (this.length > 0 && last !== undefined) {\n return this.replace(last);\n }\n return last;\n };\n /**\n * Pushes element(s) to the heap.\n * @param {...any} elements Elements to insert\n * @return {Boolean} True if elements are present\n */\n Heap.prototype.push = function () {\n var elements = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n elements[_i] = arguments[_i];\n }\n if (elements.length < 1) {\n return false;\n }\n else if (elements.length === 1) {\n return this.add(elements[0]);\n }\n else {\n return this.addAll(elements);\n }\n };\n /**\n * Same as push & pop in sequence, but faster\n * @param {any} element Element to insert\n * @return {any} Extracted top node\n */\n Heap.prototype.pushpop = function (element) {\n var _a;\n if (this.compare(this.heapArray[0], element) < 0) {\n _a = __read([this.heapArray[0], element], 2), element = _a[0], this.heapArray[0] = _a[1];\n this._sortNodeDown(0);\n }\n return element;\n };\n /**\n * Remove an element from the heap.\n * @param {any} o Element to be found\n * @param {Function} fn Optional function to compare\n * @return {Boolean} True if the heap was modified\n */\n Heap.prototype.remove = function (o, fn) {\n if (fn === void 0) { fn = Heap.defaultIsEqual; }\n if (this.length > 0) {\n if (o === undefined) {\n this.pop();\n return true;\n }\n else {\n var idx = this.heapArray.findIndex(function (el) { return fn(el, o); });\n if (idx >= 0) {\n if (idx === 0) {\n this.pop();\n }\n else if (idx === this.length - 1) {\n this.heapArray.pop();\n }\n else {\n this.heapArray.splice(idx, 1, this.heapArray.pop());\n this._sortNodeUp(idx);\n this._sortNodeDown(idx);\n }\n return true;\n }\n }\n }\n return false;\n };\n /**\n * Pop the current peek value, and add the new item.\n * @param {any} element Element to replace peek\n * @return {any} Old peek\n */\n Heap.prototype.replace = function (element) {\n var peek = this.heapArray[0];\n this.heapArray[0] = element;\n this._sortNodeDown(0);\n return peek;\n };\n /**\n * Size of the heap\n * @return {Number}\n */\n Heap.prototype.size = function () {\n return this.length;\n };\n /**\n * Return the top (highest value) N elements of the heap.\n *\n * @param {Number} n Number of elements.\n * @return {Array} Array of length <= N.\n */\n Heap.prototype.top = function (n) {\n if (n === void 0) { n = 1; }\n if (this.heapArray.length === 0 || n <= 0) {\n // Nothing to do\n return [];\n }\n else if (this.heapArray.length === 1 || n === 1) {\n // Just the peek\n return [this.heapArray[0]];\n }\n else if (n >= this.heapArray.length) {\n // The whole peek\n return __spreadArray([], __read(this.heapArray), false);\n }\n else {\n // Some elements\n var result = this._topN_push(~~n);\n return result;\n }\n };\n /**\n * Clone the heap's internal array\n * @return {Array}\n */\n Heap.prototype.toArray = function () {\n return __spreadArray([], __read(this.heapArray), false);\n };\n /**\n * String output, call to Array.prototype.toString()\n * @return {String}\n */\n Heap.prototype.toString = function () {\n return this.heapArray.toString();\n };\n /**\n * Get the element at the given index.\n * @param {Number} i Index to get\n * @return {any} Element at that index\n */\n Heap.prototype.get = function (i) {\n return this.heapArray[i];\n };\n /**\n * Get the elements of these node's children\n * @param {Number} idx Node index\n * @return {Array(any)} Children elements\n */\n Heap.prototype.getChildrenOf = function (idx) {\n var _this = this;\n return Heap.getChildrenIndexOf(idx)\n .map(function (i) { return _this.heapArray[i]; })\n .filter(function (e) { return e !== undefined; });\n };\n /**\n * Get the element of this node's parent\n * @param {Number} idx Node index\n * @return {any} Parent element\n */\n Heap.prototype.getParentOf = function (idx) {\n var pi = Heap.getParentIndexOf(idx);\n return this.heapArray[pi];\n };\n /**\n * Iterator interface\n */\n Heap.prototype[Symbol.iterator] = function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.length) return [3 /*break*/, 2];\n return [4 /*yield*/, this.pop()];\n case 1:\n _a.sent();\n return [3 /*break*/, 0];\n case 2: return [2 /*return*/];\n }\n });\n };\n /**\n * Returns an iterator. To comply with Java interface.\n */\n Heap.prototype.iterator = function () {\n return this.toArray();\n };\n /**\n * Limit heap size if needed\n */\n Heap.prototype._applyLimit = function () {\n if (this._limit && this._limit < this.heapArray.length) {\n var rm = this.heapArray.length - this._limit;\n // It's much faster than splice\n while (rm) {\n this.heapArray.pop();\n --rm;\n }\n }\n };\n /**\n * Return the bottom (lowest value) N elements of the heap, without corner cases, unsorted\n *\n * @param {Number} n Number of elements.\n * @return {Array} Array of length <= N.\n */\n Heap.prototype._bottomN_push = function (n) {\n // Use an inverted heap\n var bottomHeap = new Heap(this.compare);\n bottomHeap.limit = n;\n bottomHeap.heapArray = this.heapArray.slice(-n);\n bottomHeap.init();\n var startAt = this.heapArray.length - 1 - n;\n var parentStartAt = Heap.getParentIndexOf(startAt);\n var indices = [];\n for (var i = startAt; i > parentStartAt; --i) {\n indices.push(i);\n }\n var arr = this.heapArray;\n while (indices.length) {\n var i = indices.shift();\n if (this.compare(arr[i], bottomHeap.peek()) > 0) {\n bottomHeap.replace(arr[i]);\n if (i % 2) {\n indices.push(Heap.getParentIndexOf(i));\n }\n }\n }\n return bottomHeap.toArray();\n };\n /**\n * Move a node to a new index, switching places\n * @param {Number} j First node index\n * @param {Number} k Another node index\n */\n Heap.prototype._moveNode = function (j, k) {\n var _a;\n _a = __read([this.heapArray[k], this.heapArray[j]], 2), this.heapArray[j] = _a[0], this.heapArray[k] = _a[1];\n };\n /**\n * Move a node down the tree (to the leaves) to find a place where the heap is sorted.\n * @param {Number} i Index of the node\n */\n Heap.prototype._sortNodeDown = function (i) {\n var _this = this;\n var moveIt = i < this.heapArray.length - 1;\n var self = this.heapArray[i];\n var getPotentialParent = function (best, j) {\n if (_this.heapArray.length > j && _this.compare(_this.heapArray[j], _this.heapArray[best]) < 0) {\n best = j;\n }\n return best;\n };\n while (moveIt) {\n var childrenIdx = Heap.getChildrenIndexOf(i);\n var bestChildIndex = childrenIdx.reduce(getPotentialParent, childrenIdx[0]);\n var bestChild = this.heapArray[bestChildIndex];\n if (typeof bestChild !== 'undefined' && this.compare(self, bestChild) > 0) {\n this._moveNode(i, bestChildIndex);\n i = bestChildIndex;\n }\n else {\n moveIt = false;\n }\n }\n };\n /**\n * Move a node up the tree (to the root) to find a place where the heap is sorted.\n * @param {Number} i Index of the node\n */\n Heap.prototype._sortNodeUp = function (i) {\n var moveIt = i > 0;\n while (moveIt) {\n var pi = Heap.getParentIndexOf(i);\n if (pi >= 0 && this.compare(this.heapArray[pi], this.heapArray[i]) > 0) {\n this._moveNode(i, pi);\n i = pi;\n }\n else {\n moveIt = false;\n }\n }\n };\n /**\n * Return the top (highest value) N elements of the heap, without corner cases, unsorted\n * Implementation: push.\n *\n * @param {Number} n Number of elements.\n * @return {Array} Array of length <= N.\n */\n Heap.prototype._topN_push = function (n) {\n // Use an inverted heap\n var topHeap = new Heap(this._invertedCompare);\n topHeap.limit = n;\n var indices = [0];\n var arr = this.heapArray;\n while (indices.length) {\n var i = indices.shift();\n if (i < arr.length) {\n if (topHeap.length < n) {\n topHeap.push(arr[i]);\n indices.push.apply(indices, __spreadArray([], __read(Heap.getChildrenIndexOf(i)), false));\n }\n else if (this.compare(arr[i], topHeap.peek()) < 0) {\n topHeap.replace(arr[i]);\n indices.push.apply(indices, __spreadArray([], __read(Heap.getChildrenIndexOf(i)), false));\n }\n }\n }\n return topHeap.toArray();\n };\n /**\n * Return the top (highest value) N elements of the heap, without corner cases, unsorted\n * Implementation: init + push.\n *\n * @param {Number} n Number of elements.\n * @return {Array} Array of length <= N.\n */\n Heap.prototype._topN_fill = function (n) {\n // Use an inverted heap\n var heapArray = this.heapArray;\n var topHeap = new Heap(this._invertedCompare);\n topHeap.limit = n;\n topHeap.heapArray = heapArray.slice(0, n);\n topHeap.init();\n var branch = Heap.getParentIndexOf(n - 1) + 1;\n var indices = [];\n for (var i = branch; i < n; ++i) {\n indices.push.apply(indices, __spreadArray([], __read(Heap.getChildrenIndexOf(i).filter(function (l) { return l < heapArray.length; })), false));\n }\n if ((n - 1) % 2) {\n indices.push(n);\n }\n while (indices.length) {\n var i = indices.shift();\n if (i < heapArray.length) {\n if (this.compare(heapArray[i], topHeap.peek()) < 0) {\n topHeap.replace(heapArray[i]);\n indices.push.apply(indices, __spreadArray([], __read(Heap.getChildrenIndexOf(i)), false));\n }\n }\n }\n return topHeap.toArray();\n };\n /**\n * Return the top (highest value) N elements of the heap, without corner cases, unsorted\n * Implementation: heap.\n *\n * @param {Number} n Number of elements.\n * @return {Array} Array of length <= N.\n */\n Heap.prototype._topN_heap = function (n) {\n var topHeap = this.clone();\n var result = [];\n for (var i = 0; i < n; ++i) {\n result.push(topHeap.pop());\n }\n return result;\n };\n /**\n * Return index of the top element\n * @param list\n */\n Heap.prototype._topIdxOf = function (list) {\n if (!list.length) {\n return -1;\n }\n var idx = 0;\n var top = list[idx];\n for (var i = 1; i < list.length; ++i) {\n var comp = this.compare(list[i], top);\n if (comp < 0) {\n idx = i;\n top = list[i];\n }\n }\n return idx;\n };\n /**\n * Return the top element\n * @param list\n */\n Heap.prototype._topOf = function () {\n var list = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n list[_i] = arguments[_i];\n }\n var heap = new Heap(this.compare);\n heap.init(list);\n return heap.peek();\n };\n return Heap;\n}());\n\nexport { Heap, Heap as default, toInt };\n","import Heap from 'heap-js';\nimport { Log } from 'logging';\n\nconst { errorLog } = Log.get('TimerQueue');\n\nexport class TimerQueueTimer {\n constructor(\n public readonly handle: number,\n public callback: () => unknown,\n public readonly time: number) {\n }\n\n public clear() {\n this.callback = null;\n }\n}\n\nlet nextHandle = 1;\n\nexport class TimerQueue {\n private readonly map = new Map();\n private readonly heap = new Heap((a: TimerQueueTimer, b: TimerQueueTimer) => b.time - a.time);\n\n public enqueue(delayMs: number, callback: () => unknown): TimerQueueTimer {\n const handle = nextHandle++;\n if (handle & 15) {\n // We want to make sure expired timers trigger even if triggerExpired()\n // somehow isn't invoked explicitly.\n this.triggerExpired();\n }\n\n const now = Date.now();\n const timer = new TimerQueueTimer(handle, callback, now + delayMs);\n this.map.set(timer.handle, timer);\n this.heap.add(timer);\n return timer;\n }\n\n public get(handle: number): TimerQueueTimer | undefined {\n return this.map.get(handle);\n }\n\n public readonly triggerExpired = (): void => {\n const now = Date.now();\n for (;;) {\n const timer = this.heap.peek();\n if (!timer || timer.time > now)\n break;\n this.heap.pop();\n this.map.delete(timer.handle);\n if (!timer.callback)\n continue\n\n try {\n timer.callback();\n }\n catch (e) {\n errorLog?.log('Callback failed:', e);\n }\n }\n }\n\n // setTimeout / clearTimeout\n\n public readonly setTimeout = (callback: () => unknown, delayMs: number): number => {\n return this.enqueue(delayMs, callback).handle;\n }\n\n public readonly clearTimeout = (handle: number): void => {\n this.get(handle)?.clear();\n }\n}\n\nconst setTimeoutImpl = globalThis['setTimeout'] as (callback: () => unknown, delayMs: number) => number;\nconst clearTimeoutImpl = globalThis['clearTimeout'] as (handle: number) => void;\n\nexport const timerQueue = !setTimeoutImpl ? new TimerQueue() : null;\nexport const setTimeout = timerQueue ? timerQueue.setTimeout : setTimeoutImpl;\nexport const clearTimeout = timerQueue ? timerQueue.clearTimeout : clearTimeoutImpl;\n","// nextTick & nextTickAsync are quite similar to polyfill of\n// [setImmediate](https://developer.mozilla.org/en-US/docs/Web/API/Window/setImmediate),\n// which we don't use because it relies on setTimeout, which is throttled in background tabs.\nimport { Disposable } from 'disposable';\nimport { setTimeout, clearTimeout } from 'timerQueue';\n\nlet nextTickImpl: (callback: () => unknown) => void = null;\n\nif (globalThis['MessageChannel']) {\n const nextTickCallbacks = new Array<() => unknown>();\n const nextTickChannel = new MessageChannel();\n nextTickChannel.port1.onmessage = () => {\n const callback = nextTickCallbacks.shift();\n callback();\n };\n\n nextTickImpl = (callback: () => unknown) => {\n nextTickCallbacks.push(callback);\n nextTickChannel.port2.postMessage(null);\n }\n}\nelse {\n // MessageChannel is unavailable in AudioWorklets, so we use setTimeout-based version here,\n // which implies ~ 8-9ms delay in average.\n nextTickImpl = (callback: () => unknown) => setTimeout(callback, 0);\n}\n\nexport const nextTick = nextTickImpl;\nexport const nextTickAsync = () => new Promise(resolve => nextTick(resolve));\n\n// Timeout: a nicer wrapper around setTimeout\n\nexport class Timeout implements Disposable {\n protected handle: number | null = null;\n\n static start(isPrecise: boolean, timeoutMs: number, callback: () => unknown): Timeout {\n return isPrecise\n ? new PreciseTimeout(timeoutMs, callback)\n : new Timeout(timeoutMs, callback);\n }\n\n static startRegular(timeoutMs: number, callback: () => unknown): Timeout {\n return new Timeout(timeoutMs, callback);\n }\n\n static startPrecise(timeoutMs: number, callback: () => unknown): PreciseTimeout {\n return new PreciseTimeout(timeoutMs, callback);\n }\n\n constructor(timeoutMs?: number, callback?: () => unknown, handle?: number) {\n if (handle) {\n this.handle = handle;\n return;\n }\n\n this.handle = setTimeout(callback, timeoutMs) as unknown as number;\n return;\n }\n\n public dispose(): void {\n this.clear();\n }\n\n public clear(): void {\n if (this.handle) {\n clearTimeout(this.handle)\n this.handle = null;\n }\n }\n}\n\n// Precise timeout (5-16ms?) based on requestAnimationFrame\n\nconst disablePreciseTimeout = false;\n\nexport class PreciseTimeout extends Timeout {\n constructor(timeoutMs: number, callback: () => unknown,) {\n if (disablePreciseTimeout) {\n super(timeoutMs, callback);\n return;\n }\n\n // Precise timeout handling\n const endsAt = Date.now() + timeoutMs;\n const loop = () => {\n if (Date.now() >= endsAt)\n callback();\n else\n this.handle = requestAnimationFrame(loop);\n };\n super(undefined, undefined, requestAnimationFrame(loop));\n }\n\n public clear(): void {\n if (disablePreciseTimeout)\n return super.clear();\n\n if (this.handle) {\n cancelAnimationFrame(this.handle);\n this.handle = null;\n }\n }\n}\n","import { Log } from 'logging';\nimport { PreciseTimeout, Timeout } from 'timeout';\nimport { Disposable } from 'disposable';\n\nconst { logScope, debugLog, warnLog, errorLog } = Log.get('promises');\n\nexport class TimedOut {\n public static readonly instance: TimedOut = new TimedOut();\n}\n\nexport function isPromise(obj: PromiseLike | S): obj is PromiseLike {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj['then'] === 'function';\n}\n\nexport class PromiseSource implements Promise {\n public resolve: (T) => void;\n public reject: (any) => void;\n\n private readonly _promise: Promise;\n private _isCompleted = false;\n\n constructor(resolve?: ((value: T) => void), reject?: ((reason?: unknown) => void)) {\n this._promise = new Promise((resolve1, reject1) => {\n this.resolve = (value: T) => {\n if (this._isCompleted)\n return;\n\n this._isCompleted = true;\n resolve1(value);\n if (resolve)\n resolve(value);\n };\n this.reject = (reason: unknown) => {\n if (this._isCompleted)\n return;\n\n this._isCompleted = true;\n reject1(reason);\n if (reject)\n reject(reason);\n };\n })\n this[Symbol.toStringTag] = this._promise[Symbol.toStringTag];\n }\n\n public isCompleted(): boolean {\n return this._isCompleted;\n }\n\n // PromiseLike implementation\n\n readonly [Symbol.toStringTag]: string;\n\n then(\n onfulfilled?: ((value: T) => (PromiseLike | TResult1)) | undefined | null,\n onrejected?: ((reason: any) => (PromiseLike | TResult2)) | undefined | null\n ): Promise {\n return this._promise.then(onfulfilled, onrejected);\n }\n\n catch(\n onrejected?: ((reason: any) => (PromiseLike | TResult)) | undefined | null\n ): Promise {\n return this._promise.catch(onrejected);\n }\n\n finally(onfinally?: (() => void) | undefined | null): Promise {\n return this._promise.finally(onfinally);\n }\n}\n\nexport class PromiseSourceWithTimeout extends PromiseSource {\n private _timeout: Timeout = null;\n\n constructor(resolve?: ((value: T) => void), reject?: ((reason?: unknown) => void)) {\n super((value: T) => {\n this.clearTimeout();\n if (resolve)\n resolve(value);\n }, (reason: unknown) => {\n this.clearTimeout();\n if (reject)\n reject(reason);\n });\n }\n\n public hasTimeout(): boolean {\n return this._timeout != null;\n }\n\n public setTimeout(timeoutMs: number | null, callback?: () => unknown): void {\n if (this._timeout) {\n this._timeout.clear();\n this._timeout = null;\n }\n if (timeoutMs == null || this.isCompleted())\n return;\n\n this._timeout = new Timeout(timeoutMs, () => {\n this._timeout = null;\n if (callback != null)\n callback();\n else {\n const error = new Error('The promise has timed out.');\n this.reject(error);\n }\n })\n }\n\n public setPreciseTimeout(timeoutMs: number | null, callback?: () => unknown): void {\n if (this._timeout) {\n this._timeout.clear();\n this._timeout = null;\n }\n if (timeoutMs == null || this.isCompleted())\n return;\n\n this._timeout = new PreciseTimeout(timeoutMs, () => {\n this._timeout = null;\n if (callback != null)\n callback();\n else {\n const error = new Error('The promise has timed out.');\n this.reject(error);\n }\n })\n }\n\n public clearTimeout(): void {\n if (this._timeout == null)\n return;\n\n this._timeout.clear();\n this._timeout = null;\n }\n}\n\n// Cancellation\n\nexport type Cancelled = symbol;\nexport const cancelled : Cancelled = Symbol('Cancelled');\nexport class OperationCancelledError extends Error {\n constructor(message?: string) {\n super(message ?? 'The operation is cancelled.');\n }\n}\n\nexport async function waitAsync(promise: PromiseLike, cancel?: Promise): Promise {\n if (cancel === undefined)\n return await promise;\n\n const result = await Promise.race([promise, cancel]);\n if (result === cancelled)\n throw new OperationCancelledError();\n return await promise;\n}\n\n// Async versions of setTimeout\n\nexport function delayAsync(delayMs: number): PromiseSourceWithTimeout {\n const promise = new PromiseSourceWithTimeout();\n promise.setTimeout(delayMs, () => promise.resolve(undefined))\n return promise;\n}\n\nexport function delayAsyncWith(delayMs: number, value: T): PromiseSourceWithTimeout {\n const promise = new PromiseSourceWithTimeout();\n promise.setTimeout(delayMs, () => { promise.resolve(value) });\n return promise;\n}\n\nexport function preciseDelayAsync(delayMs: number): PromiseSourceWithTimeout {\n const promise = new PromiseSourceWithTimeout();\n promise.setPreciseTimeout(delayMs, () => promise.resolve(undefined))\n return promise;\n}\n\nexport function flexibleDelayAsync(getNextTimeout: () => number): PromiseSourceWithTimeout {\n // eslint-disable-next-line no-constant-condition\n const promise = new PromiseSourceWithTimeout();\n const timeoutHandler = () => {\n const timeout = getNextTimeout();\n if (timeout <= 0)\n promise.resolve(undefined);\n else\n promise.setTimeout(timeout, timeoutHandler);\n };\n promise.setTimeout(getNextTimeout(), timeoutHandler);\n return promise;\n}\n\n// Throttle & debounce\n\nexport interface ResettableFunc unknown> {\n (...args: Parameters): void;\n reset(): void;\n}\n\nclass Call unknown> {\n constructor(\n readonly func: (...args: Parameters) => ReturnType,\n readonly self: unknown,\n readonly parameters: Parameters\n ) { }\n\n public invoke(): unknown {\n return this.func.apply(this.self, this.parameters);\n }\n\n public invokeSilently(): unknown {\n try {\n return this.invoke();\n }\n catch (error) {\n errorLog?.log(`Call.invokeSafely: unhandled error:`, error)\n }\n }\n}\n\nexport type ThrottleMode = 'default' | 'skip' | 'delayHead';\n\nexport function throttle unknown>(\n func: (...args: Parameters) => ReturnType,\n intervalMs: number,\n mode: ThrottleMode = 'default',\n name : string | undefined = undefined\n): ResettableFunc {\n let lastCall: Call | null = null;\n let nextFireTime = 0;\n let timeoutHandle: ReturnType | null = null;\n\n const reset = () => {\n if (timeoutHandle !== null)\n clearTimeout(timeoutHandle);\n timeoutHandle = lastCall = null;\n nextFireTime = 0;\n }\n\n const fire = () => {\n if (timeoutHandle !== null)\n clearTimeout(timeoutHandle);\n\n if (lastCall !== null) {\n if (name)\n debugLog?.log(`throttle '${name}': fire`);\n const call = lastCall;\n lastCall = null;\n nextFireTime = Date.now() + intervalMs;\n timeoutHandle = setTimeout(fire, intervalMs);\n call?.invokeSilently(); // This must be done at last\n }\n else {\n if (name)\n debugLog?.log(`throttle '${name}': delay ended`);\n timeoutHandle = null;\n nextFireTime = 0;\n }\n };\n\n const result: ResettableFunc = function(...callArgs: Parameters): void {\n const call = new Call(func, this, callArgs);\n const fireDelay = nextFireTime - Date.now();\n if (timeoutHandle !== null && fireDelay <= 0) {\n // Our delayed \"fire\" is ready to fire but not fired yet,\n // so we \"flush\" it here.\n fire();\n }\n\n if (timeoutHandle === null) {\n // lastCall is null here\n nextFireTime = Date.now() + intervalMs;\n timeoutHandle = setTimeout(fire, intervalMs);\n if (mode === 'delayHead') {\n if (name)\n debugLog?.log(`throttle '${name}': delaying head call`);\n lastCall = call;\n } else { // skip or default mode\n if (name)\n debugLog?.log(`throttle '${name}': fire (head call)`);\n call?.invokeSilently();\n }\n } else {\n // timeoutHandle !== null, so all we need to do here is to update lastCall\n if (name)\n debugLog?.log(`throttle '${name}': throttling, remaining delay = ${fireDelay}ms`);\n if (mode !== 'skip') // i.e. delayHead\n lastCall = call;\n }\n }\n result.reset = reset;\n return result;\n}\n\nexport function debounce unknown>(\n func: (...args: Parameters) => ReturnType,\n intervalMs: number,\n name : string | undefined = undefined\n): ResettableFunc {\n let lastCall: Call | null = null;\n let nextFireTime = 0;\n let timeoutHandle: ReturnType | null = null;\n\n const reset = () => {\n // we should not clear timeout there because it leads to clear\\set timeout useless cycle\n timeoutHandle = lastCall = null;\n nextFireTime = 0;\n }\n\n const fire = () => {\n if (timeoutHandle !== null)\n clearTimeout(timeoutHandle);\n timeoutHandle = null;\n\n const fireDelay = nextFireTime - Date.now();\n if (fireDelay <= 0) {\n nextFireTime = 0;\n if (lastCall !== null) {\n if (name)\n debugLog?.log(`debounce '${name}': fire`);\n const call = lastCall;\n lastCall = null;\n call?.invokeSilently(); // This must be done at last\n }\n }\n else {\n // debounce has already been called yet another time, but we have triggered on previous call timeout\n // so let's schedule a new timer\n timeoutHandle = setTimeout(fire, fireDelay);\n }\n };\n\n const result: ResettableFunc = function(...callArgs: Parameters): void {\n const call = new Call(func, this, callArgs);\n\n nextFireTime = Date.now() + intervalMs;\n lastCall = call;\n\n if (timeoutHandle === null)\n timeoutHandle = setTimeout(fire, intervalMs);\n if (name)\n debugLog?.log(`debounce '${name}': debouncing`);\n };\n result.reset = reset;\n return result;\n}\n\n// Serialize\n\nexport function serialize PromiseLike | TResult, TResult>(\n func: (...args: Parameters) => PromiseLike | TResult,\n limit: number | null = null\n): (...sArgs: Parameters) => Promise {\n let lastCall: Promise = Promise.resolve(null as TResult);\n let queueSize = 0;\n\n return function(...callArgs: Parameters): Promise {\n if (limit != null && queueSize >= limit)\n return lastCall;\n\n queueSize++;\n const prevCall = lastCall;\n return lastCall = (async () => {\n try {\n await prevCall;\n return (await func.apply(this, callArgs)) as TResult;\n }\n finally {\n queueSize--;\n }\n })();\n }\n}\n\n// Retry & catchErrors\n\ntype RetryDelaySeq = (tryIndex: number) => number;\nconst defaultRetryDelays: RetryDelaySeq = () => 50;\n\nexport async function retryForever(\n fn: (tryIndex: number, lastError: unknown) => PromiseLike | TResult,\n retryDelays?: RetryDelaySeq,\n) : Promise {\n retryDelays ??= defaultRetryDelays;\n let lastError: unknown = undefined;\n for (let tryIndex = 0;;) {\n try {\n return await fn(tryIndex, lastError);\n }\n catch (e) {\n lastError = e;\n }\n ++tryIndex;\n warnLog?.log(`retry(${tryIndex}): error:`, lastError);\n await delayAsync(retryDelays(tryIndex));\n }\n}\n\nexport async function retry(\n tryCount: number,\n fn: (tryIndex: number, lastError: unknown) => PromiseLike | TResult,\n retryDelays?: RetryDelaySeq,\n) : Promise {\n retryDelays ??= defaultRetryDelays;\n let lastError: unknown = undefined;\n for (let tryIndex = 0;;) {\n if (tryIndex >= tryCount)\n throw lastError;\n\n try {\n return await fn(tryIndex, lastError);\n }\n catch (e) {\n lastError = e;\n }\n ++tryIndex;\n warnLog?.log(`retry(${tryIndex}/${tryCount}): error:`, lastError);\n await delayAsync(retryDelays(tryIndex));\n }\n}\n\nexport async function catchErrors(\n fn: () => PromiseLike | TResult,\n onError?: (e: unknown) => TResult,\n) : Promise {\n try {\n return await fn();\n }\n catch (e) {\n return onError ? onError(e) : undefined;\n }\n}\n\nexport class AsyncLockReleaser implements Disposable {\n private readonly _whenReleased: PromiseSource;\n constructor(public readonly asyncLock: AsyncLock) {\n if (asyncLock.releaser != null)\n throw new Error(`${logScope}.AsyncLockReleaser cannot be created while the lock is held.`);\n\n asyncLock.releaser = this;\n this._whenReleased = new PromiseSource(\n () => {\n if (asyncLock.releaser != this)\n throw new Error(`${logScope}.AsyncLockReleaser is associated with another releaser.`);\n\n asyncLock.releaser = null;\n return;\n },\n () => `${logScope}.AsyncLockReleaser.released cannot be rejected.`);\n }\n\n public whenReleased(): Promise {\n return this._whenReleased;\n }\n\n dispose(): void {\n this._whenReleased.resolve(undefined);\n }\n}\n\nexport class AsyncLock {\n public releaser: AsyncLockReleaser = null;\n\n public async lock(): Promise {\n if (this.releaser != null)\n await this.releaser.whenReleased();\n return new AsyncLockReleaser(this);\n }\n}\n\nexport class ResolvedPromise {\n public static readonly Void = new PromiseSource();\n public static readonly True = new PromiseSource();\n public static readonly False = new PromiseSource();\n}\nResolvedPromise.Void.resolve(undefined);\nResolvedPromise.True.resolve(true);\nResolvedPromise.False.resolve(false);\n\n// Self-test - we don't want to run it in workers & worklets\nconst mustRunSelfTest = debugLog != null && globalThis['focus'];\nif (mustRunSelfTest) {\n const testLog = errorLog;\n if (!testLog)\n throw new Error('testLog == null');\n void (async () => {\n const c = new PromiseSource();\n const p = waitAsync(delayAsync(1000), c);\n c.resolve(cancelled);\n try {\n await p;\n throw new Error('Failed!');\n }\n catch (e) {\n if (!(e instanceof OperationCancelledError))\n throw e;\n }\n })();\n}\n","import { fromEvent, Observable } from 'rxjs';\nimport { Disposable } from 'disposable';\nimport { Log } from 'logging';\nimport { Timeout } from 'timeout';\nimport { PromiseSource, TimedOut } from 'promises';\n\nconst { debugLog, errorLog } = Log.get('event-handling');\n\nexport class EventHandler implements Disposable {\n constructor(\n private readonly event: EventHandlerSet,\n private readonly handler: (T) => unknown,\n private readonly justOnce: boolean = false,\n ) { }\n\n public dispose(): void {\n this.event.remove(this);\n }\n\n public trigger(argument: T): void {\n try {\n this.handler(argument);\n }\n finally {\n if (this.justOnce)\n this.dispose();\n }\n }\n\n public triggerSilently(argument: T): void {\n try {\n this.handler(argument);\n }\n catch (error) {\n errorLog?.log(`triggerSilently: event handler failed with an error:`, error);\n return undefined;\n }\n finally {\n if (this.justOnce)\n this.dispose();\n }\n }\n}\n\nexport class EventHandlerSet {\n private readonly handlers = new Set>();\n\n constructor(private readonly handlersChanged?: ((handlers: Set>) => void)) {\n }\n\n public get count() {\n return this.handlers.size;\n }\n\n public add(handler: (value: T) => unknown): EventHandler {\n const eventHandler = new EventHandler(this, handler, false);\n this.handlers.add(eventHandler);\n if (this.handlersChanged)\n this.handlersChanged(this.handlers);\n return eventHandler;\n }\n\n public addJustOnce(handler: (value: T) => unknown): EventHandler {\n const eventHandler = new EventHandler(this, handler, true);\n this.handlers.add(eventHandler);\n if (this.handlersChanged)\n this.handlersChanged(this.handlers);\n return eventHandler;\n }\n\n public remove(handler: EventHandler): boolean {\n if (!this.handlers.delete(handler))\n return false;\n\n if (this.handlersChanged)\n this.handlersChanged(this.handlers);\n return true;\n }\n\n public whenNext(): Promise {\n return new Promise(resolve => this.addJustOnce(value => resolve(value)))\n }\n\n public whenNextVoid(): Promise {\n return new Promise(resolve => this.addJustOnce(() => resolve(undefined)))\n }\n\n public whenNextWithTimeout(timeoutMs: number): Promise {\n const result = new PromiseSource();\n let timeout: Timeout = null;\n const handler = this.addJustOnce(value => {\n timeout.clear();\n result.resolve(value)\n });\n timeout = new Timeout(timeoutMs, () => {\n handler.dispose()\n result.resolve(TimedOut.instance);\n });\n return result;\n }\n\n public trigger(argument: T): void {\n for (const handler of this.handlers)\n handler.trigger(argument);\n }\n\n public triggerSilently(argument: T): void {\n for (const handler of this.handlers)\n handler.triggerSilently(argument);\n }\n\n public clear(): void {\n this.handlers.clear();\n }\n}\n\n// Handy helpers\n\nclass DocumentEventSet {\n public readonly click$: Observable;\n public readonly contextmenu$: Observable;\n public readonly wheel$: Observable;\n public readonly scroll$: Observable;\n public readonly visibilityChange$: Observable;\n\n public readonly pointerOver$: Observable;\n public readonly pointerDown$: Observable;\n public readonly pointerMove$: Observable;\n public readonly pointerUp$: Observable;\n public readonly pointerCancel$: Observable;\n\n public readonly touchStart$: Observable;\n public readonly touchMove$: Observable;\n public readonly touchEnd$: Observable;\n public readonly touchCancel$: Observable;\n\n public readonly keyDown$: Observable;\n public readonly keyUp$: Observable;\n\n constructor(\n private readonly isCapture: boolean,\n private readonly isActive: boolean,\n ) {\n const document = globalThis.document;\n if (!document)\n return;\n\n const options = { capture: isCapture, passive: !isActive };\n\n this.click$ = fromEvent(document, 'click', options) as Observable;\n this.contextmenu$ = fromEvent(document, 'contextmenu', options) as Observable;\n this.wheel$ = fromEvent(document, 'wheel', options) as Observable;\n this.scroll$ = isActive ? null : fromEvent(document.defaultView, 'scroll', options);\n this.visibilityChange$ = fromEvent(document, 'visibilitychange', options);\n\n this.pointerOver$ = fromEvent(document, 'pointerover', options) as Observable;\n this.pointerDown$ = fromEvent(document, 'pointerdown', options) as Observable;\n this.pointerMove$ = fromEvent(document, 'pointermove', options) as Observable;\n this.pointerUp$ = fromEvent(document, 'pointerup', options) as Observable;\n this.pointerCancel$ = fromEvent(document, 'pointercancel', options) as Observable;\n\n this.touchStart$ = fromEvent(document, 'touchstart', options) as Observable;\n this.touchMove$ = fromEvent(document, 'touchmove', options) as Observable;\n this.touchEnd$ = fromEvent(document, 'touchend', options) as Observable;\n this.touchCancel$ = fromEvent(document, 'touchcancel', options) as Observable;\n\n this.keyDown$ = fromEvent(document, 'keydown', options) as Observable;\n this.keyUp$ = fromEvent(document, 'keyup', options) as Observable;\n }\n}\n\nexport const DocumentEvents = {\n active: new DocumentEventSet(false, true),\n passive: new DocumentEventSet(false, false),\n capturedActive: new DocumentEventSet(true, true),\n capturedPassive: new DocumentEventSet(true, false),\n}\n\nexport function stopEvent(event?: Event, stopImmediatePropagation = true, preventDefault = true) : void {\n if (!event)\n return;\n\n debugLog?.log(`stopEvent: event:`, event, ', stopImmediatePropagation:', stopImmediatePropagation, ', preventDefault:', preventDefault);\n event.stopPropagation();\n if (stopImmediatePropagation)\n event.stopImmediatePropagation();\n if (preventDefault)\n event.preventDefault();\n}\n\nexport function preventDefaultForEvent(event?: Event) : void {\n if (!event)\n return;\n\n debugLog?.log(`preventDefaultForEvent: event:`, event);\n event.preventDefault();\n}\n\nexport function tryPreventDefaultForEvent(event?: Event) : void {\n if (!event.defaultPrevented) {\n try {\n preventDefaultForEvent(event);\n }\n catch {\n // Intended\n }\n }\n}\n","import { Log } from 'logging';\nimport { EventHandlerSet } from 'event-handling';\n\nconst { debugLog } = Log.get('Theme');\n\nconst storage = window?.localStorage;\nconst storageKey = 'ui.theme'\nconst availableThemes = ['light', 'dark', 'ash'];\n\nexport interface ThemeInfo {\n theme: string | null;\n defaultTheme: string;\n currentTheme: string;\n colors: string;\n}\n\nexport class Theme {\n public static theme : string | null;\n public static defaultTheme = '';\n public static currentTheme = '';\n public static info: ThemeInfo = null;\n public static changed: EventHandlerSet = new EventHandlerSet();\n\n public static init(): void {\n this.theme = load();\n this.defaultTheme = detectDefaultTheme();\n this.apply(false);\n const defaultThemeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n defaultThemeMediaQuery.addListener(_ => {\n Theme.defaultTheme = detectDefaultTheme();\n Theme.apply();\n });\n }\n\n public static set(theme: string | null): void {\n if (!availableThemes.find(x => x === theme))\n theme = null;\n\n if (this.theme === theme)\n return;\n\n debugLog?.log('setTheme:', theme);\n this.theme = theme;\n save(theme);\n this.apply();\n }\n\n private static apply(mustNotify = true): void {\n this.currentTheme = this.theme ?? this.defaultTheme;\n if (this.currentTheme === this.info?.currentTheme && this.defaultTheme === this.info?.defaultTheme)\n return;\n\n if (document?.body) {\n const classList = document.body.classList;\n const oldClass = `theme-${this.info?.currentTheme ?? ''}`;\n const newClass = `theme-${this.currentTheme}`;\n classList.remove(oldClass);\n classList.add(newClass);\n }\n\n this.info = createThemeInfo();\n if (mustNotify)\n this.changed.triggerSilently(this.info);\n }\n}\n\nfunction createThemeInfo(): ThemeInfo {\n return {\n theme: Theme.theme,\n defaultTheme: Theme.defaultTheme,\n currentTheme: Theme.currentTheme,\n colors: getColors(),\n }\n}\n\nfunction detectDefaultTheme() {\n if (!storage)\n return 'light';\n\n const defaultThemeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n return defaultThemeMediaQuery.matches ? 'dark' : 'light';\n}\n\nfunction getColors(): string {\n if (!storage)\n return '';\n\n const style = getComputedStyle(document.body);\n const headerColor = style.getPropertyValue('--background-01');\n const postPanelColor = style.getPropertyValue('--post-panel');\n return normalizeColor(headerColor) + ';' + normalizeColor(postPanelColor);\n}\n\nfunction normalizeColor(hexColor: string): string {\n if (hexColor && hexColor.length === 4)\n return '#' + hexColor[1] + hexColor[1] + hexColor[2] + hexColor[2] + hexColor[3] + hexColor[3];\n return hexColor;\n}\n\nfunction load(): string | null {\n if (!storage)\n return;\n\n const theme = storage.getItem(storageKey) ?? null;\n debugLog?.log('load:', theme);\n return theme;\n}\n\nfunction save(theme: string | null): void {\n if (!storage)\n return;\n\n debugLog?.log('save:', theme);\n if (theme)\n storage.setItem(storageKey, theme);\n else\n storage.removeItem(storageKey);\n}\n\nTheme.init();\n","import { Log } from 'logging';\n\nconst { debugLog, warnLog } = Log.get('Versioning');\n\ninterface ImportMap {\n imports: Record;\n integrity: Record;\n}\n\nexport class Versioning {\n private static _assetMap: Map = null;\n\n public static get assetMap(): Map {\n if (this._assetMap)\n return this._assetMap;\n\n this.init();\n return this._assetMap;\n }\n\n public static init(assetMap: Map = null) {\n if (this._assetMap) {\n warnLog?.log('init: skipped (already initialized)');\n return;\n }\n\n if (assetMap === null) {\n const origin = document.location.origin;\n const stripOrigin = (s: string) => s.startsWith(origin) ? s.slice(origin.length) : s;\n\n const processAsset = (key: string, value: string) => {\n const assetMatch = value.match(/\\.(?[a-z0-9]{10})\\.(js|wasm)$/);\n if (!assetMatch)\n return;\n\n const assetPath = stripOrigin(value);\n const simpleKey = assetPath.replace(assetMatch.groups['hash']+'.', '');\n assetMap.set(simpleKey, assetPath);\n if (!simpleKey.startsWith('/')) assetMap.set('/' + simpleKey, assetPath);\n };\n\n assetMap = new Map();\n for (const e of document.head.children) {\n if (e.localName !== 'link')\n continue;\n\n const href = e['href'] as string;\n processAsset(href, href);\n }\n const importMapInnerHtml = document.head.querySelector('script[type=\"importmap\"]')?.innerHTML;\n if (importMapInnerHtml) {\n const importMap = JSON.parse(importMapInnerHtml) as ImportMap;\n for (const [key, value] of Object.entries(importMap.imports).filter(([k]) => k.startsWith('/dist/')))\n processAsset(key, value);\n }\n }\n this._assetMap = assetMap;\n debugLog?.log('init: artifact versions:', assetMap);\n }\n\n public static mapPath(path: string): string {\n const versionedPath = this.assetMap.get(path);\n if (versionedPath) {\n debugLog?.log(`mapPath: '${path}' -> '${versionedPath}'`);\n return versionedPath;\n }\n else {\n warnLog?.log(`mapPath: '${path}' - no version found`);\n return path;\n }\n }\n}\n\nglobalThis['Versioning'] = Versioning;\n","import { Observable } from 'rxjs';\nimport { EventHandlerSet } from 'event-handling';\nimport { Log } from 'logging';\nimport { Versioning } from 'versioning';\n\nconst { debugLog, errorLog } = Log.get('OnDeviceAwake');\n\nexport class OnDeviceAwake {\n private static _totalSleepDurationMs = 0;\n private static _worker: Worker = null;\n\n public static get totalSleepDurationMs(): number { return this._totalSleepDurationMs; }\n public static readonly events = new EventHandlerSet();\n public static readonly event$ = new Observable(subject => {\n const handler = this.events.add(x => subject.next(x));\n return () => handler.dispose();\n })\n\n public static init(): void {\n debugLog?.log(`init`);\n const onSleepDetected = (event: MessageEvent) => {\n this._totalSleepDurationMs = event.data;\n debugLog?.log(`onSleepDetected: total sleep duration:`, this._totalSleepDurationMs / 1000, 'seconds');\n OnDeviceAwake.events.triggerSilently(event.data);\n };\n\n const onWorkerError = (error: ErrorEvent) => {\n errorLog?.log(`onWorkerError: unhandled error:`, error)\n };\n\n const workerPath = Versioning.mapPath('/dist/onDeviceAwakeWorker.js');\n this._worker = new Worker(workerPath);\n this._worker.onmessage = onSleepDetected;\n this._worker.onerror = onWorkerError;\n }\n}\n\nOnDeviceAwake.init();\n","import { delayAsync, PromiseSource } from 'promises';\nimport { Log } from 'logging';\nimport { OnDeviceAwake } from 'on-device-awake';\n\nconst { infoLog, warnLog } = Log.get('Connectivity');\n\nexport class Connectivity {\n public static async reloadCurrentPage(waitWhenOnline = true): Promise {\n warnLog?.log('reload: reloading...');\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access\n await window['opusMediaRecorder']?.stop();\n\n if (waitWhenOnline)\n await this.whenOnline();\n\n window.location.reload();\n /*\n if (!window.location.hash) {\n // Refresh with GET\n // noinspection SillyAssignmentJS\n window.location.href = window.location.href;\n } else {\n window.location.reload();\n }\n */\n }\n\n public static async whenOnline(checkInterval = 2000): Promise {\n let wasOnline = true;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (await this.isOnline()) {\n // Second check - just in case\n await delayAsync(250);\n if (await this.isOnline())\n break;\n }\n\n if (wasOnline) {\n wasOnline = false;\n warnLog?.log(`whenOnline: offline`);\n }\n await delayAsync(checkInterval);\n }\n if (!wasOnline)\n infoLog?.log(`whenOnline: online`);\n }\n\n public static async isOnline(): Promise {\n if (isMauiApp())\n return true;\n\n const whenWokeUp = new PromiseSource();\n const handler = OnDeviceAwake.events.add(() => whenWokeUp.resolve(null))\n try {\n const firstCheck = check();\n if (await Promise.race([firstCheck, whenWokeUp]) === null)\n return Promise.race([firstCheck, check(50)])\n return await firstCheck;\n }\n finally {\n handler.dispose();\n whenWokeUp.resolve(null);\n }\n\n async function check(delayMs = 0): Promise {\n try {\n if (delayMs > 0)\n await delayAsync(delayMs);\n const response = await fetch('/favicon.ico', { cache: 'no-store' });\n if (response.ok)\n return true;\n }\n catch {\n // Intended\n }\n return false;\n }\n }\n}\n\n// Private declarations\n\nlet _isMauiApp: boolean = null;\n\nfunction isMauiApp(): boolean {\n if (_isMauiApp === null)\n _isMauiApp = document.body.classList.contains('app-maui')\n return _isMauiApp;\n}\n","/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nconst CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\r\nconst assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\r\nconst assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst stringToByteArray$1 = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nconst byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n const c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n const c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n const c4 = bytes[pos++];\r\n const u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nconst base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray(input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n const byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length; i += 3) {\r\n const byte1 = input[i];\r\n const haveByte2 = i + 1 < input.length;\r\n const byte2 = haveByte2 ? input[i + 1] : 0;\r\n const haveByte3 = i + 2 < input.length;\r\n const byte3 = haveByte3 ? input[i + 2] : 0;\r\n const outByte1 = byte1 >> 2;\r\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n let outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray$1(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray(input, webSafe) {\r\n this.init_();\r\n const charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length;) {\r\n const byte1 = charToByteMap[input.charAt(i++)];\r\n const haveByte2 = i < input.length;\r\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n const haveByte3 = i < input.length;\r\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n const haveByte4 = i < input.length;\r\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw Error();\r\n }\r\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_() {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nconst base64Encode = function (str) {\r\n const utf8Bytes = stringToByteArray$1(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 encoding (without \".\" padding in the end).\r\n * e.g. Used in JSON Web Token (JWT) parts.\r\n */\r\nconst base64urlEncodeWithoutPadding = function (str) {\r\n // Use base64url encoding and remove padding in the end (dot characters).\r\n return base64Encode(str).replace(/\\./g, '');\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nconst base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n *\r\n * Note: we don't merge __proto__ to prevent prototype pollution\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n const dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (const prop in source) {\r\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\r\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\nfunction isValidKey(key) {\r\n return key !== '__proto__';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n try {\r\n return (Object.prototype.toString.call(global.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment\r\n */\r\nfunction isBrowser() {\r\n return typeof self === 'object' && self.self === self;\r\n}\r\nfunction isBrowserExtension() {\r\n const runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n const ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n try {\r\n return typeof indexedDB === 'object';\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n *\r\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\r\n * private browsing)\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let preExist = true;\r\n const DB_CHECK_NAME = 'validate-browser-context-for-indexeddb-analytics-module';\r\n const request = self.indexedDB.open(DB_CHECK_NAME);\r\n request.onsuccess = () => {\r\n request.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist) {\r\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\r\n }\r\n resolve(true);\r\n };\r\n request.onupgradeneeded = () => {\r\n preExist = false;\r\n };\r\n request.onerror = () => {\r\n var _a;\r\n reject(((_a = request.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\r\n */\r\nfunction getGlobal() {\r\n if (typeof self !== 'undefined') {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined') {\r\n return window;\r\n }\r\n if (typeof global !== 'undefined') {\r\n return global;\r\n }\r\n throw new Error('Unable to locate global object.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__;\r\n/**\r\n * Attempt to read defaults from a JSON string provided to\r\n * process.env.__FIREBASE_DEFAULTS__ or a JSON file whose path is in\r\n * process.env.__FIREBASE_DEFAULTS_PATH__\r\n */\r\nconst getDefaultsFromEnvVariable = () => {\r\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\r\n return;\r\n }\r\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\r\n if (defaultsJsonString) {\r\n return JSON.parse(defaultsJsonString);\r\n }\r\n};\r\nconst getDefaultsFromCookie = () => {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n let match;\r\n try {\r\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\r\n }\r\n catch (e) {\r\n // Some environments such as Angular Universal SSR have a\r\n // `document` object but error on accessing `document.cookie`.\r\n return;\r\n }\r\n const decoded = match && base64Decode(match[1]);\r\n return decoded && JSON.parse(decoded);\r\n};\r\n/**\r\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\r\n * (1) if such an object exists as a property of `globalThis`\r\n * (2) if such an object was provided on a shell environment variable\r\n * (3) if such an object exists in a cookie\r\n */\r\nconst getDefaults = () => {\r\n try {\r\n return (getDefaultsFromGlobal() ||\r\n getDefaultsFromEnvVariable() ||\r\n getDefaultsFromCookie());\r\n }\r\n catch (e) {\r\n /**\r\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\r\n * to any environment case we have not accounted for. Log to\r\n * info instead of swallowing so we can find these unknown cases\r\n * and add paths for them if needed.\r\n */\r\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\r\n return;\r\n }\r\n};\r\n/**\r\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHost = (productName) => { var _a, _b; return (_b = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; };\r\n/**\r\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHostnameAndPort = (productName) => {\r\n const host = getDefaultEmulatorHost(productName);\r\n if (!host) {\r\n return undefined;\r\n }\r\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\r\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\r\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\r\n }\r\n // eslint-disable-next-line no-restricted-globals\r\n const port = parseInt(host.substring(separatorIndex + 1), 10);\r\n if (host[0] === '[') {\r\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\r\n return [host.substring(1, separatorIndex - 1), port];\r\n }\r\n else {\r\n return [host.substring(0, separatorIndex), port];\r\n }\r\n};\r\n/**\r\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\r\n * @public\r\n */\r\nconst getDefaultAppConfig = () => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.config; };\r\n/**\r\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\r\n * prefixed by \"_\")\r\n * @public\r\n */\r\nconst getExperimentalSetting = (name) => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a[`_${name}`]; };\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass Deferred {\r\n constructor() {\r\n this.reject = () => { };\r\n this.resolve = () => { };\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n wrapCallback(callback) {\r\n return (error, value) => {\r\n if (error) {\r\n this.reject(error);\r\n }\r\n else {\r\n this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n this.promise.catch(() => { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction createMockUserToken(token, projectId) {\r\n if (token.uid) {\r\n throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');\r\n }\r\n // Unsecured JWTs use \"none\" as the algorithm.\r\n const header = {\r\n alg: 'none',\r\n type: 'JWT'\r\n };\r\n const project = projectId || 'demo-project';\r\n const iat = token.iat || 0;\r\n const sub = token.sub || token.user_id;\r\n if (!sub) {\r\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\r\n }\r\n const payload = Object.assign({ \r\n // Set all required fields to decent defaults\r\n iss: `https://securetoken.google.com/${project}`, aud: project, iat, exp: iat + 3600, auth_time: iat, sub, user_id: sub, firebase: {\r\n sign_in_provider: 'custom',\r\n identities: {}\r\n } }, token);\r\n // Unsecured JWTs use the empty string as a signature.\r\n const signature = '';\r\n return [\r\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\r\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\r\n signature\r\n ].join('.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Standardized Firebase Error.\r\n *\r\n * Usage:\r\n *\r\n * // Typescript string literals for type-safe codes\r\n * type Err =\r\n * 'unknown' |\r\n * 'object-not-found'\r\n * ;\r\n *\r\n * // Closure enum for type-safe error codes\r\n * // at-enum {string}\r\n * var Err = {\r\n * UNKNOWN: 'unknown',\r\n * OBJECT_NOT_FOUND: 'object-not-found',\r\n * }\r\n *\r\n * let errors: Map = {\r\n * 'generic-error': \"Unknown error\",\r\n * 'file-not-found': \"Could not find file: {$file}\",\r\n * };\r\n *\r\n * // Type-safe function - must pass a valid error code as param.\r\n * let error = new ErrorFactory('service', 'Service', errors);\r\n *\r\n * ...\r\n * throw error.create(Err.GENERIC);\r\n * ...\r\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\r\n * ...\r\n * // Service: Could not file file: foo.txt (service/file-not-found).\r\n *\r\n * catch (e) {\r\n * assert(e.message === \"Could not find file: foo.txt.\");\r\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\r\n * console.log(\"Could not read file: \" + e['file']);\r\n * }\r\n * }\r\n */\r\nconst ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nclass FirebaseError extends Error {\r\n constructor(\r\n /** The error code for this error. */\r\n code, message, \r\n /** Custom data for this error. */\r\n customData) {\r\n super(message);\r\n this.code = code;\r\n this.customData = customData;\r\n /** The custom name for all FirebaseErrors. */\r\n this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\r\n }\r\n }\r\n}\r\nclass ErrorFactory {\r\n constructor(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n create(code, ...data) {\r\n const customData = data[0] || {};\r\n const fullCode = `${this.service}/${code}`;\r\n const template = this.errors[code];\r\n const message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\r\n const error = new FirebaseError(fullCode, fullMessage, customData);\r\n return error;\r\n }\r\n}\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, (_, key) => {\r\n const value = data[key];\r\n return value != null ? String(value) : `<${key}?>`;\r\n });\r\n}\r\nconst PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst decode = function (token) {\r\n let header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n const parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header,\r\n claims,\r\n data,\r\n signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidTimestamp = function (token) {\r\n const claims = decode(token).claims;\r\n const now = Math.floor(new Date().getTime() / 1000);\r\n let validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst issuedAtTime = function (token) {\r\n const claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidFormat = function (token) {\r\n const decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isAdmin = function (token) {\r\n const claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n const res = {};\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\r\n/**\r\n * Deep equal two objects. Support Arrays and Objects.\r\n */\r\nfunction deepEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n const aKeys = Object.keys(a);\r\n const bKeys = Object.keys(b);\r\n for (const k of aKeys) {\r\n if (!bKeys.includes(k)) {\r\n return false;\r\n }\r\n const aProp = a[k];\r\n const bProp = b[k];\r\n if (isObject(aProp) && isObject(bProp)) {\r\n if (!deepEqual(aProp, bProp)) {\r\n return false;\r\n }\r\n }\r\n else if (aProp !== bProp) {\r\n return false;\r\n }\r\n }\r\n for (const k of bKeys) {\r\n if (!aKeys.includes(k)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isObject(thing) {\r\n return thing !== null && typeof thing === 'object';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Rejects if the given promise doesn't resolve in timeInMS milliseconds.\r\n * @internal\r\n */\r\nfunction promiseWithTimeout(promise, timeInMS = 2000) {\r\n const deferredPromise = new Deferred();\r\n setTimeout(() => deferredPromise.reject('timeout!'), timeInMS);\r\n promise.then(deferredPromise.resolve, deferredPromise.reject);\r\n return deferredPromise.promise;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n const params = [];\r\n for (const [key, value] of Object.entries(querystringParams)) {\r\n if (Array.isArray(value)) {\r\n value.forEach(arrayVal => {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n const obj = {};\r\n const tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(token => {\r\n if (token) {\r\n const [key, value] = token.split('=');\r\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n }\r\n });\r\n return obj;\r\n}\r\n/**\r\n * Extract the query string part of a URL, including the leading question mark (if present).\r\n */\r\nfunction extractQuerystring(url) {\r\n const queryStart = url.indexOf('?');\r\n if (!queryStart) {\r\n return '';\r\n }\r\n const fragmentStart = url.indexOf('#', queryStart);\r\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nclass Sha1 {\r\n constructor() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (let i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n reset() {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n }\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n compress_(buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n const W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (let i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (let i = 16; i < 80; i++) {\r\n const t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n let a = this.chain_[0];\r\n let b = this.chain_[1];\r\n let c = this.chain_[2];\r\n let d = this.chain_[3];\r\n let e = this.chain_[4];\r\n let f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (let i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n const t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n }\r\n update(bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n const lengthMinusBlock = length - this.blockSize;\r\n let n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n const buf = this.buf_;\r\n let inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n }\r\n /** @override */\r\n digest() {\r\n const digest = [];\r\n let totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (let i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n let n = 0;\r\n for (let i = 0; i < 5; i++) {\r\n for (let j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n }\r\n}\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n const proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nclass ObserverProxy {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n constructor(executor, onNoObservers) {\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(() => {\r\n executor(this);\r\n })\r\n .catch(e => {\r\n this.error(e);\r\n });\r\n }\r\n next(value) {\r\n this.forEachObserver((observer) => {\r\n observer.next(value);\r\n });\r\n }\r\n error(error) {\r\n this.forEachObserver((observer) => {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n }\r\n complete() {\r\n this.forEachObserver((observer) => {\r\n observer.complete();\r\n });\r\n this.close();\r\n }\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n subscribe(nextOrObserver, error, complete) {\r\n let observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error,\r\n complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n const unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n try {\r\n if (this.finalError) {\r\n observer.error(this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n }\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n unsubscribeOne(i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n }\r\n forEachObserver(fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (let i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n }\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n sendOne(i, fn) {\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n if (this.observers !== undefined && this.observers[i] !== undefined) {\r\n try {\r\n fn(this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n close(err) {\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n this.observers = undefined;\r\n this.onNoObservers = undefined;\r\n });\r\n }\r\n}\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return (...args) => {\r\n Promise.resolve(true)\r\n .then(() => {\r\n fn(...args);\r\n })\r\n .catch((error) => {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (const method of methods) {\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nconst validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n let argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n const error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argName The name of the argument\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argName) {\r\n return `${fnName} failed: ${argName} argument `;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentName, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentName, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid context object.');\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nconst stringToByteArray = function (str) {\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n const high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n const low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nconst stringLength = function (str) {\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Copied from https://stackoverflow.com/a/2117523\r\n * Generates a new uuid.\r\n * @public\r\n */\r\nconst uuidv4 = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nconst DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nconst DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *

Visible for testing\r\n */\r\nconst MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *

Visible for testing\r\n */\r\nconst RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis = DEFAULT_INTERVAL_MILLIS, backoffFactor = DEFAULT_BACKOFF_FACTOR) {\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n const randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provide English ordinal letters after a number\r\n */\r\nfunction ordinal(i) {\r\n if (!Number.isFinite(i)) {\r\n return `${i}`;\r\n }\r\n return i + indicator(i);\r\n}\r\nfunction indicator(i) {\r\n i = Math.abs(i);\r\n const cent = i % 100;\r\n if (cent >= 10 && cent <= 20) {\r\n return 'th';\r\n }\r\n const dec = i % 10;\r\n if (dec === 1) {\r\n return 'st';\r\n }\r\n if (dec === 2) {\r\n return 'nd';\r\n }\r\n if (dec === 3) {\r\n return 'rd';\r\n }\r\n return 'th';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getModularInstance(service) {\r\n if (service && service._delegate) {\r\n return service._delegate;\r\n }\r\n else {\r\n return service;\r\n }\r\n}\n\nexport { CONSTANTS, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, base64urlEncodeWithoutPadding, calculateBackoffMillis, contains, createMockUserToken, createSubscribe, decode, deepCopy, deepEqual, deepExtend, errorPrefix, extractQuerystring, getDefaultAppConfig, getDefaultEmulatorHost, getDefaultEmulatorHostnameAndPort, getExperimentalSetting, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, issuedAtTime, jsonEval, map, ordinal, promiseWithTimeout, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, uuidv4, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm2017.js.map\n","import { Deferred } from '@firebase/util';\n\n/**\r\n * Component for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass Component {\r\n /**\r\n *\r\n * @param name The public service name, e.g. app, auth, firestore, database\r\n * @param instanceFactory Service factory responsible for creating the public interface\r\n * @param type whether the service provided by the component is public or private\r\n */\r\n constructor(name, instanceFactory, type) {\r\n this.name = name;\r\n this.instanceFactory = instanceFactory;\r\n this.type = type;\r\n this.multipleInstances = false;\r\n /**\r\n * Properties to be added to the service namespace\r\n */\r\n this.serviceProps = {};\r\n this.instantiationMode = \"LAZY\" /* InstantiationMode.LAZY */;\r\n this.onInstanceCreated = null;\r\n }\r\n setInstantiationMode(mode) {\r\n this.instantiationMode = mode;\r\n return this;\r\n }\r\n setMultipleInstances(multipleInstances) {\r\n this.multipleInstances = multipleInstances;\r\n return this;\r\n }\r\n setServiceProps(props) {\r\n this.serviceProps = props;\r\n return this;\r\n }\r\n setInstanceCreatedCallback(callback) {\r\n this.onInstanceCreated = callback;\r\n return this;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\r\n * NameServiceMapping[T] is an alias for the type of the instance\r\n */\r\nclass Provider {\r\n constructor(name, container) {\r\n this.name = name;\r\n this.container = container;\r\n this.component = null;\r\n this.instances = new Map();\r\n this.instancesDeferred = new Map();\r\n this.instancesOptions = new Map();\r\n this.onInitCallbacks = new Map();\r\n }\r\n /**\r\n * @param identifier A provider can provide mulitple instances of a service\r\n * if this.component.multipleInstances is true.\r\n */\r\n get(identifier) {\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\r\n const deferred = new Deferred();\r\n this.instancesDeferred.set(normalizedIdentifier, deferred);\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n // initialize the service if it can be auto-initialized\r\n try {\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n if (instance) {\r\n deferred.resolve(instance);\r\n }\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception during get(), it should not cause\r\n // a fatal error. We just return the unresolved promise in this case.\r\n }\r\n }\r\n }\r\n return this.instancesDeferred.get(normalizedIdentifier).promise;\r\n }\r\n getImmediate(options) {\r\n var _a;\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier);\r\n const optional = (_a = options === null || options === void 0 ? void 0 : options.optional) !== null && _a !== void 0 ? _a : false;\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n try {\r\n return this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n }\r\n catch (e) {\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n else {\r\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw Error(`Service ${this.name} is not available`);\r\n }\r\n }\r\n }\r\n getComponent() {\r\n return this.component;\r\n }\r\n setComponent(component) {\r\n if (component.name !== this.name) {\r\n throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`);\r\n }\r\n if (this.component) {\r\n throw Error(`Component for ${this.name} has already been provided`);\r\n }\r\n this.component = component;\r\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\r\n if (!this.shouldAutoInitialize()) {\r\n return;\r\n }\r\n // if the service is eager, initialize the default instance\r\n if (isComponentEager(component)) {\r\n try {\r\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\r\n }\r\n catch (e) {\r\n // when the instance factory for an eager Component throws an exception during the eager\r\n // initialization, it should not cause a fatal error.\r\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\r\n // a fatal error in this case?\r\n }\r\n }\r\n // Create service instances for the pending promises and resolve them\r\n // NOTE: if this.multipleInstances is false, only the default instance will be created\r\n // and all promises with resolve with it regardless of the identifier.\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n try {\r\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n instanceDeferred.resolve(instance);\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception, it should not cause\r\n // a fatal error. We just leave the promise unresolved.\r\n }\r\n }\r\n }\r\n clearInstance(identifier = DEFAULT_ENTRY_NAME) {\r\n this.instancesDeferred.delete(identifier);\r\n this.instancesOptions.delete(identifier);\r\n this.instances.delete(identifier);\r\n }\r\n // app.delete() will call this method on every provider to delete the services\r\n // TODO: should we mark the provider as deleted?\r\n async delete() {\r\n const services = Array.from(this.instances.values());\r\n await Promise.all([\r\n ...services\r\n .filter(service => 'INTERNAL' in service) // legacy services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service.INTERNAL.delete()),\r\n ...services\r\n .filter(service => '_delete' in service) // modularized services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service._delete())\r\n ]);\r\n }\r\n isComponentSet() {\r\n return this.component != null;\r\n }\r\n isInitialized(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instances.has(identifier);\r\n }\r\n getOptions(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instancesOptions.get(identifier) || {};\r\n }\r\n initialize(opts = {}) {\r\n const { options = {} } = opts;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier);\r\n if (this.isInitialized(normalizedIdentifier)) {\r\n throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`);\r\n }\r\n if (!this.isComponentSet()) {\r\n throw Error(`Component ${this.name} has not been registered yet`);\r\n }\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier,\r\n options\r\n });\r\n // resolve any pending promise waiting for the service instance\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\r\n instanceDeferred.resolve(instance);\r\n }\r\n }\r\n return instance;\r\n }\r\n /**\r\n *\r\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\r\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\r\n *\r\n * @param identifier An optional instance identifier\r\n * @returns a function to unregister the callback\r\n */\r\n onInit(callback, identifier) {\r\n var _a;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n const existingCallbacks = (_a = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a !== void 0 ? _a : new Set();\r\n existingCallbacks.add(callback);\r\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\r\n const existingInstance = this.instances.get(normalizedIdentifier);\r\n if (existingInstance) {\r\n callback(existingInstance, normalizedIdentifier);\r\n }\r\n return () => {\r\n existingCallbacks.delete(callback);\r\n };\r\n }\r\n /**\r\n * Invoke onInit callbacks synchronously\r\n * @param instance the service instance`\r\n */\r\n invokeOnInitCallbacks(instance, identifier) {\r\n const callbacks = this.onInitCallbacks.get(identifier);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n try {\r\n callback(instance, identifier);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInit callback\r\n }\r\n }\r\n }\r\n getOrInitializeService({ instanceIdentifier, options = {} }) {\r\n let instance = this.instances.get(instanceIdentifier);\r\n if (!instance && this.component) {\r\n instance = this.component.instanceFactory(this.container, {\r\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\r\n options\r\n });\r\n this.instances.set(instanceIdentifier, instance);\r\n this.instancesOptions.set(instanceIdentifier, options);\r\n /**\r\n * Invoke onInit listeners.\r\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\r\n * while onInit listeners are registered by consumers of the provider.\r\n */\r\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\r\n /**\r\n * Order is important\r\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\r\n * makes `isInitialized()` return true.\r\n */\r\n if (this.component.onInstanceCreated) {\r\n try {\r\n this.component.onInstanceCreated(this.container, instanceIdentifier, instance);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInstanceCreatedCallback\r\n }\r\n }\r\n }\r\n return instance || null;\r\n }\r\n normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME) {\r\n if (this.component) {\r\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\r\n }\r\n else {\r\n return identifier; // assume multiple instances are supported before the component is provided.\r\n }\r\n }\r\n shouldAutoInitialize() {\r\n return (!!this.component &&\r\n this.component.instantiationMode !== \"EXPLICIT\" /* InstantiationMode.EXPLICIT */);\r\n }\r\n}\r\n// undefined should be passed to the service factory for the default instance\r\nfunction normalizeIdentifierForFactory(identifier) {\r\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\r\n}\r\nfunction isComponentEager(component) {\r\n return component.instantiationMode === \"EAGER\" /* InstantiationMode.EAGER */;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass ComponentContainer {\r\n constructor(name) {\r\n this.name = name;\r\n this.providers = new Map();\r\n }\r\n /**\r\n *\r\n * @param component Component being added\r\n * @param overwrite When a component with the same name has already been registered,\r\n * if overwrite is true: overwrite the existing component with the new component and create a new\r\n * provider with the new component. It can be useful in tests where you want to use different mocks\r\n * for different tests.\r\n * if overwrite is false: throw an exception\r\n */\r\n addComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n throw new Error(`Component ${component.name} has already been registered with ${this.name}`);\r\n }\r\n provider.setComponent(component);\r\n }\r\n addOrOverwriteComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n // delete the existing provider from the container, so we can register the new component\r\n this.providers.delete(component.name);\r\n }\r\n this.addComponent(component);\r\n }\r\n /**\r\n * getProvider provides a type safe interface where it can only be called with a field name\r\n * present in NameServiceMapping interface.\r\n *\r\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\r\n * themselves.\r\n */\r\n getProvider(name) {\r\n if (this.providers.has(name)) {\r\n return this.providers.get(name);\r\n }\r\n // create a Provider for a service that hasn't registered with Firebase\r\n const provider = new Provider(name, this);\r\n this.providers.set(name, provider);\r\n return provider;\r\n }\r\n getProviders() {\r\n return Array.from(this.providers.values());\r\n }\r\n}\n\nexport { Component, ComponentContainer, Provider };\n//# sourceMappingURL=index.esm2017.js.map\n","/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A container for all of the Logger instances\r\n */\r\nconst instances = [];\r\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\r\n LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\r\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\r\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\r\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\r\n LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\r\n})(LogLevel || (LogLevel = {}));\r\nconst levelStringToEnum = {\r\n 'debug': LogLevel.DEBUG,\r\n 'verbose': LogLevel.VERBOSE,\r\n 'info': LogLevel.INFO,\r\n 'warn': LogLevel.WARN,\r\n 'error': LogLevel.ERROR,\r\n 'silent': LogLevel.SILENT\r\n};\r\n/**\r\n * The default log level\r\n */\r\nconst defaultLogLevel = LogLevel.INFO;\r\n/**\r\n * By default, `console.debug` is not displayed in the developer console (in\r\n * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n * logs to the `console.log` function.\r\n */\r\nconst ConsoleMethod = {\r\n [LogLevel.DEBUG]: 'log',\r\n [LogLevel.VERBOSE]: 'log',\r\n [LogLevel.INFO]: 'info',\r\n [LogLevel.WARN]: 'warn',\r\n [LogLevel.ERROR]: 'error'\r\n};\r\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\r\nconst defaultLogHandler = (instance, logType, ...args) => {\r\n if (logType < instance.logLevel) {\r\n return;\r\n }\r\n const now = new Date().toISOString();\r\n const method = ConsoleMethod[logType];\r\n if (method) {\r\n console[method](`[${now}] ${instance.name}:`, ...args);\r\n }\r\n else {\r\n throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`);\r\n }\r\n};\r\nclass Logger {\r\n /**\r\n * Gives you an instance of a Logger to capture messages according to\r\n * Firebase's logging scheme.\r\n *\r\n * @param name The name that the logs will be associated with\r\n */\r\n constructor(name) {\r\n this.name = name;\r\n /**\r\n * The log level of the given Logger instance.\r\n */\r\n this._logLevel = defaultLogLevel;\r\n /**\r\n * The main (internal) log handler for the Logger instance.\r\n * Can be set to a new function in internal package code but not by user.\r\n */\r\n this._logHandler = defaultLogHandler;\r\n /**\r\n * The optional, additional, user-defined log handler for the Logger instance.\r\n */\r\n this._userLogHandler = null;\r\n /**\r\n * Capture the current instance for later use\r\n */\r\n instances.push(this);\r\n }\r\n get logLevel() {\r\n return this._logLevel;\r\n }\r\n set logLevel(val) {\r\n if (!(val in LogLevel)) {\r\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\r\n }\r\n this._logLevel = val;\r\n }\r\n // Workaround for setter/getter having to be the same type.\r\n setLogLevel(val) {\r\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\r\n }\r\n get logHandler() {\r\n return this._logHandler;\r\n }\r\n set logHandler(val) {\r\n if (typeof val !== 'function') {\r\n throw new TypeError('Value assigned to `logHandler` must be a function');\r\n }\r\n this._logHandler = val;\r\n }\r\n get userLogHandler() {\r\n return this._userLogHandler;\r\n }\r\n set userLogHandler(val) {\r\n this._userLogHandler = val;\r\n }\r\n /**\r\n * The functions below are all based on the `console` interface\r\n */\r\n debug(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\r\n this._logHandler(this, LogLevel.DEBUG, ...args);\r\n }\r\n log(...args) {\r\n this._userLogHandler &&\r\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\r\n this._logHandler(this, LogLevel.VERBOSE, ...args);\r\n }\r\n info(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\r\n this._logHandler(this, LogLevel.INFO, ...args);\r\n }\r\n warn(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\r\n this._logHandler(this, LogLevel.WARN, ...args);\r\n }\r\n error(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\r\n this._logHandler(this, LogLevel.ERROR, ...args);\r\n }\r\n}\r\nfunction setLogLevel(level) {\r\n instances.forEach(inst => {\r\n inst.setLogLevel(level);\r\n });\r\n}\r\nfunction setUserLogHandler(logCallback, options) {\r\n for (const instance of instances) {\r\n let customLogLevel = null;\r\n if (options && options.level) {\r\n customLogLevel = levelStringToEnum[options.level];\r\n }\r\n if (logCallback === null) {\r\n instance.userLogHandler = null;\r\n }\r\n else {\r\n instance.userLogHandler = (instance, level, ...args) => {\r\n const message = args\r\n .map(arg => {\r\n if (arg == null) {\r\n return null;\r\n }\r\n else if (typeof arg === 'string') {\r\n return arg;\r\n }\r\n else if (typeof arg === 'number' || typeof arg === 'boolean') {\r\n return arg.toString();\r\n }\r\n else if (arg instanceof Error) {\r\n return arg.message;\r\n }\r\n else {\r\n try {\r\n return JSON.stringify(arg);\r\n }\r\n catch (ignored) {\r\n return null;\r\n }\r\n }\r\n })\r\n .filter(arg => arg)\r\n .join(' ');\r\n if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\r\n logCallback({\r\n level: LogLevel[level].toLowerCase(),\r\n message,\r\n args,\r\n type: instance.name\r\n });\r\n }\r\n };\r\n }\r\n }\r\n}\n\nexport { LogLevel, Logger, setLogLevel, setUserLogHandler };\n//# sourceMappingURL=index.esm2017.js.map\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction));\n });\n }\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking)\n db.addEventListener('versionchange', () => blocking());\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","import { Component, ComponentContainer } from '@firebase/component';\nimport { Logger, setUserLogHandler, setLogLevel as setLogLevel$1 } from '@firebase/logger';\nimport { ErrorFactory, getDefaultAppConfig, deepEqual, FirebaseError, base64urlEncodeWithoutPadding, isIndexedDBAvailable, validateIndexedDBOpenable } from '@firebase/util';\nexport { FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass PlatformLoggerServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n }\r\n // In initial implementation, this will be called by installations on\r\n // auth token refresh, and installations will send this string.\r\n getPlatformInfoString() {\r\n const providers = this.container.getProviders();\r\n // Loop through providers and get library/version pairs from any that are\r\n // version components.\r\n return providers\r\n .map(provider => {\r\n if (isVersionServiceProvider(provider)) {\r\n const service = provider.getImmediate();\r\n return `${service.library}/${service.version}`;\r\n }\r\n else {\r\n return null;\r\n }\r\n })\r\n .filter(logString => logString)\r\n .join(' ');\r\n }\r\n}\r\n/**\r\n *\r\n * @param provider check if this provider provides a VersionService\r\n *\r\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\r\n * provides VersionService. The provider is not necessarily a 'app-version'\r\n * provider.\r\n */\r\nfunction isVersionServiceProvider(provider) {\r\n const component = provider.getComponent();\r\n return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\" /* ComponentType.VERSION */;\r\n}\n\nconst name$o = \"@firebase/app\";\nconst version$1 = \"0.9.0\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst logger = new Logger('@firebase/app');\n\nconst name$n = \"@firebase/app-compat\";\n\nconst name$m = \"@firebase/analytics-compat\";\n\nconst name$l = \"@firebase/analytics\";\n\nconst name$k = \"@firebase/app-check-compat\";\n\nconst name$j = \"@firebase/app-check\";\n\nconst name$i = \"@firebase/auth\";\n\nconst name$h = \"@firebase/auth-compat\";\n\nconst name$g = \"@firebase/database\";\n\nconst name$f = \"@firebase/database-compat\";\n\nconst name$e = \"@firebase/functions\";\n\nconst name$d = \"@firebase/functions-compat\";\n\nconst name$c = \"@firebase/installations\";\n\nconst name$b = \"@firebase/installations-compat\";\n\nconst name$a = \"@firebase/messaging\";\n\nconst name$9 = \"@firebase/messaging-compat\";\n\nconst name$8 = \"@firebase/performance\";\n\nconst name$7 = \"@firebase/performance-compat\";\n\nconst name$6 = \"@firebase/remote-config\";\n\nconst name$5 = \"@firebase/remote-config-compat\";\n\nconst name$4 = \"@firebase/storage\";\n\nconst name$3 = \"@firebase/storage-compat\";\n\nconst name$2 = \"@firebase/firestore\";\n\nconst name$1 = \"@firebase/firestore-compat\";\n\nconst name = \"firebase\";\nconst version = \"9.15.0\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The default app name\r\n *\r\n * @internal\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\nconst PLATFORM_LOG_STRING = {\r\n [name$o]: 'fire-core',\r\n [name$n]: 'fire-core-compat',\r\n [name$l]: 'fire-analytics',\r\n [name$m]: 'fire-analytics-compat',\r\n [name$j]: 'fire-app-check',\r\n [name$k]: 'fire-app-check-compat',\r\n [name$i]: 'fire-auth',\r\n [name$h]: 'fire-auth-compat',\r\n [name$g]: 'fire-rtdb',\r\n [name$f]: 'fire-rtdb-compat',\r\n [name$e]: 'fire-fn',\r\n [name$d]: 'fire-fn-compat',\r\n [name$c]: 'fire-iid',\r\n [name$b]: 'fire-iid-compat',\r\n [name$a]: 'fire-fcm',\r\n [name$9]: 'fire-fcm-compat',\r\n [name$8]: 'fire-perf',\r\n [name$7]: 'fire-perf-compat',\r\n [name$6]: 'fire-rc',\r\n [name$5]: 'fire-rc-compat',\r\n [name$4]: 'fire-gcs',\r\n [name$3]: 'fire-gcs-compat',\r\n [name$2]: 'fire-fst',\r\n [name$1]: 'fire-fst-compat',\r\n 'fire-js': 'fire-js',\r\n [name]: 'fire-js-all'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @internal\r\n */\r\nconst _apps = new Map();\r\n/**\r\n * Registered components.\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst _components = new Map();\r\n/**\r\n * @param component - the component being added to this app's container\r\n *\r\n * @internal\r\n */\r\nfunction _addComponent(app, component) {\r\n try {\r\n app.container.addComponent(component);\r\n }\r\n catch (e) {\r\n logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app.name}`, e);\r\n }\r\n}\r\n/**\r\n *\r\n * @internal\r\n */\r\nfunction _addOrOverwriteComponent(app, component) {\r\n app.container.addOrOverwriteComponent(component);\r\n}\r\n/**\r\n *\r\n * @param component - the component to register\r\n * @returns whether or not the component is registered successfully\r\n *\r\n * @internal\r\n */\r\nfunction _registerComponent(component) {\r\n const componentName = component.name;\r\n if (_components.has(componentName)) {\r\n logger.debug(`There were multiple attempts to register component ${componentName}.`);\r\n return false;\r\n }\r\n _components.set(componentName, component);\r\n // add the component to existing app instances\r\n for (const app of _apps.values()) {\r\n _addComponent(app, component);\r\n }\r\n return true;\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n *\r\n * @returns the provider for the service with the matching name\r\n *\r\n * @internal\r\n */\r\nfunction _getProvider(app, name) {\r\n const heartbeatController = app.container\r\n .getProvider('heartbeat')\r\n .getImmediate({ optional: true });\r\n if (heartbeatController) {\r\n void heartbeatController.triggerHeartbeat();\r\n }\r\n return app.container.getProvider(name);\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\r\n *\r\n * @internal\r\n */\r\nfunction _removeServiceInstance(app, name, instanceIdentifier = DEFAULT_ENTRY_NAME) {\r\n _getProvider(app, name).clearInstance(instanceIdentifier);\r\n}\r\n/**\r\n * Test only\r\n *\r\n * @internal\r\n */\r\nfunction _clearComponents() {\r\n _components.clear();\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERRORS = {\r\n [\"no-app\" /* AppError.NO_APP */]: \"No Firebase App '{$appName}' has been created - \" +\r\n 'call Firebase App.initializeApp()',\r\n [\"bad-app-name\" /* AppError.BAD_APP_NAME */]: \"Illegal App name: '{$appName}\",\r\n [\"duplicate-app\" /* AppError.DUPLICATE_APP */]: \"Firebase App named '{$appName}' already exists with different options or config\",\r\n [\"app-deleted\" /* AppError.APP_DELETED */]: \"Firebase App named '{$appName}' already deleted\",\r\n [\"no-options\" /* AppError.NO_OPTIONS */]: 'Need to provide options, when not being deployed to hosting via source.',\r\n [\"invalid-app-argument\" /* AppError.INVALID_APP_ARGUMENT */]: 'firebase.{$appName}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n [\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */]: 'First argument to `onLog` must be null or a function.',\r\n [\"idb-open\" /* AppError.IDB_OPEN */]: 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-get\" /* AppError.IDB_GET */]: 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-set\" /* AppError.IDB_WRITE */]: 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-delete\" /* AppError.IDB_DELETE */]: 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('app', 'Firebase', ERRORS);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass FirebaseAppImpl {\r\n constructor(options, config, container) {\r\n this._isDeleted = false;\r\n this._options = Object.assign({}, options);\r\n this._config = Object.assign({}, config);\r\n this._name = config.name;\r\n this._automaticDataCollectionEnabled =\r\n config.automaticDataCollectionEnabled;\r\n this._container = container;\r\n this.container.addComponent(new Component('app', () => this, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n }\r\n get automaticDataCollectionEnabled() {\r\n this.checkDestroyed();\r\n return this._automaticDataCollectionEnabled;\r\n }\r\n set automaticDataCollectionEnabled(val) {\r\n this.checkDestroyed();\r\n this._automaticDataCollectionEnabled = val;\r\n }\r\n get name() {\r\n this.checkDestroyed();\r\n return this._name;\r\n }\r\n get options() {\r\n this.checkDestroyed();\r\n return this._options;\r\n }\r\n get config() {\r\n this.checkDestroyed();\r\n return this._config;\r\n }\r\n get container() {\r\n return this._container;\r\n }\r\n get isDeleted() {\r\n return this._isDeleted;\r\n }\r\n set isDeleted(val) {\r\n this._isDeleted = val;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"app-deleted\" /* AppError.APP_DELETED */, { appName: this._name });\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The current SDK version.\r\n *\r\n * @public\r\n */\r\nconst SDK_VERSION = version;\r\nfunction initializeApp(_options, rawConfig = {}) {\r\n let options = _options;\r\n if (typeof rawConfig !== 'object') {\r\n const name = rawConfig;\r\n rawConfig = { name };\r\n }\r\n const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig);\r\n const name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n throw ERROR_FACTORY.create(\"bad-app-name\" /* AppError.BAD_APP_NAME */, {\r\n appName: String(name)\r\n });\r\n }\r\n options || (options = getDefaultAppConfig());\r\n if (!options) {\r\n throw ERROR_FACTORY.create(\"no-options\" /* AppError.NO_OPTIONS */);\r\n }\r\n const existingApp = _apps.get(name);\r\n if (existingApp) {\r\n // return the existing app if options and config deep equal the ones in the existing app.\r\n if (deepEqual(options, existingApp.options) &&\r\n deepEqual(config, existingApp.config)) {\r\n return existingApp;\r\n }\r\n else {\r\n throw ERROR_FACTORY.create(\"duplicate-app\" /* AppError.DUPLICATE_APP */, { appName: name });\r\n }\r\n }\r\n const container = new ComponentContainer(name);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseAppImpl(options, config, container);\r\n _apps.set(name, newApp);\r\n return newApp;\r\n}\r\n/**\r\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * When called with no arguments, the default app is returned. When an app name\r\n * is provided, the app corresponding to that name is returned.\r\n *\r\n * An exception is thrown if the app being retrieved has not yet been\r\n * initialized.\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return the default app\r\n * const app = getApp();\r\n * ```\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return a named app\r\n * const otherApp = getApp(\"otherApp\");\r\n * ```\r\n *\r\n * @param name - Optional name of the app to return. If no name is\r\n * provided, the default is `\"[DEFAULT]\"`.\r\n *\r\n * @returns The app corresponding to the provided app name.\r\n * If no app name is provided, the default app is returned.\r\n *\r\n * @public\r\n */\r\nfunction getApp(name = DEFAULT_ENTRY_NAME) {\r\n const app = _apps.get(name);\r\n if (!app && name === DEFAULT_ENTRY_NAME) {\r\n return initializeApp();\r\n }\r\n if (!app) {\r\n throw ERROR_FACTORY.create(\"no-app\" /* AppError.NO_APP */, { appName: name });\r\n }\r\n return app;\r\n}\r\n/**\r\n * A (read-only) array of all initialized apps.\r\n * @public\r\n */\r\nfunction getApps() {\r\n return Array.from(_apps.values());\r\n}\r\n/**\r\n * Renders this app unusable and frees the resources of all associated\r\n * services.\r\n *\r\n * @example\r\n * ```javascript\r\n * deleteApp(app)\r\n * .then(function() {\r\n * console.log(\"App deleted successfully\");\r\n * })\r\n * .catch(function(error) {\r\n * console.log(\"Error deleting app:\", error);\r\n * });\r\n * ```\r\n *\r\n * @public\r\n */\r\nasync function deleteApp(app) {\r\n const name = app.name;\r\n if (_apps.has(name)) {\r\n _apps.delete(name);\r\n await Promise.all(app.container\r\n .getProviders()\r\n .map(provider => provider.delete()));\r\n app.isDeleted = true;\r\n }\r\n}\r\n/**\r\n * Registers a library's name and version for platform logging purposes.\r\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\r\n * @param version - Current version of that library.\r\n * @param variant - Bundle variant, e.g., node, rn, etc.\r\n *\r\n * @public\r\n */\r\nfunction registerVersion(libraryKeyOrName, version, variant) {\r\n var _a;\r\n // TODO: We can use this check to whitelist strings when/if we set up\r\n // a good whitelist system.\r\n let library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\r\n if (variant) {\r\n library += `-${variant}`;\r\n }\r\n const libraryMismatch = library.match(/\\s|\\//);\r\n const versionMismatch = version.match(/\\s|\\//);\r\n if (libraryMismatch || versionMismatch) {\r\n const warning = [\r\n `Unable to register library \"${library}\" with version \"${version}\":`\r\n ];\r\n if (libraryMismatch) {\r\n warning.push(`library name \"${library}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n if (libraryMismatch && versionMismatch) {\r\n warning.push('and');\r\n }\r\n if (versionMismatch) {\r\n warning.push(`version name \"${version}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n logger.warn(warning.join(' '));\r\n return;\r\n }\r\n _registerComponent(new Component(`${library}-version`, () => ({ library, version }), \"VERSION\" /* ComponentType.VERSION */));\r\n}\r\n/**\r\n * Sets log handler for all Firebase SDKs.\r\n * @param logCallback - An optional custom log handler that executes user code whenever\r\n * the Firebase SDK makes a logging call.\r\n *\r\n * @public\r\n */\r\nfunction onLog(logCallback, options) {\r\n if (logCallback !== null && typeof logCallback !== 'function') {\r\n throw ERROR_FACTORY.create(\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */);\r\n }\r\n setUserLogHandler(logCallback, options);\r\n}\r\n/**\r\n * Sets log level for all Firebase SDKs.\r\n *\r\n * All of the log types above the current log level are captured (i.e. if\r\n * you set the log level to `info`, errors are logged, but `debug` and\r\n * `verbose` logs are not).\r\n *\r\n * @public\r\n */\r\nfunction setLogLevel(logLevel) {\r\n setLogLevel$1(logLevel);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DB_NAME = 'firebase-heartbeat-database';\r\nconst DB_VERSION = 1;\r\nconst STORE_NAME = 'firebase-heartbeat-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DB_NAME, DB_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n db.createObjectStore(STORE_NAME);\r\n }\r\n }\r\n }).catch(e => {\r\n throw ERROR_FACTORY.create(\"idb-open\" /* AppError.IDB_OPEN */, {\r\n originalErrorMessage: e.message\r\n });\r\n });\r\n }\r\n return dbPromise;\r\n}\r\nasync function readHeartbeatsFromIndexedDB(app) {\r\n try {\r\n const db = await getDbPromise();\r\n return db\r\n .transaction(STORE_NAME)\r\n .objectStore(STORE_NAME)\r\n .get(computeKey(app));\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-get\" /* AppError.IDB_GET */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nasync function writeHeartbeatsToIndexedDB(app, heartbeatObject) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(STORE_NAME);\r\n await objectStore.put(heartbeatObject, computeKey(app));\r\n return tx.done;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-set\" /* AppError.IDB_WRITE */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nfunction computeKey(app) {\r\n return `${app.name}!${app.options.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst MAX_HEADER_BYTES = 1024;\r\n// 30 days\r\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\r\nclass HeartbeatServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n /**\r\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\r\n * the header string.\r\n * Stores one record per date. This will be consolidated into the standard\r\n * format of one record per user agent string before being sent as a header.\r\n * Populated from indexedDB when the controller is instantiated and should\r\n * be kept in sync with indexedDB.\r\n * Leave public for easier testing.\r\n */\r\n this._heartbeatsCache = null;\r\n const app = this.container.getProvider('app').getImmediate();\r\n this._storage = new HeartbeatStorageImpl(app);\r\n this._heartbeatsCachePromise = this._storage.read().then(result => {\r\n this._heartbeatsCache = result;\r\n return result;\r\n });\r\n }\r\n /**\r\n * Called to report a heartbeat. The function will generate\r\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\r\n * to IndexedDB.\r\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\r\n * already logged, subsequent calls to this function in the same day will be ignored.\r\n */\r\n async triggerHeartbeat() {\r\n const platformLogger = this.container\r\n .getProvider('platform-logger')\r\n .getImmediate();\r\n // This is the \"Firebase user agent\" string from the platform logger\r\n // service, not the browser user agent.\r\n const agent = platformLogger.getPlatformInfoString();\r\n const date = getUTCDateString();\r\n if (this._heartbeatsCache === null) {\r\n this._heartbeatsCache = await this._heartbeatsCachePromise;\r\n }\r\n // Do not store a heartbeat if one is already stored for this day\r\n // or if a header has already been sent today.\r\n if (this._heartbeatsCache.lastSentHeartbeatDate === date ||\r\n this._heartbeatsCache.heartbeats.some(singleDateHeartbeat => singleDateHeartbeat.date === date)) {\r\n return;\r\n }\r\n else {\r\n // There is no entry for this date. Create one.\r\n this._heartbeatsCache.heartbeats.push({ date, agent });\r\n }\r\n // Remove entries older than 30 days.\r\n this._heartbeatsCache.heartbeats = this._heartbeatsCache.heartbeats.filter(singleDateHeartbeat => {\r\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\r\n const now = Date.now();\r\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\r\n });\r\n return this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n /**\r\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\r\n * It also clears all heartbeats from memory as well as in IndexedDB.\r\n *\r\n * NOTE: Consuming product SDKs should not send the header if this method\r\n * returns an empty string.\r\n */\r\n async getHeartbeatsHeader() {\r\n if (this._heartbeatsCache === null) {\r\n await this._heartbeatsCachePromise;\r\n }\r\n // If it's still null or the array is empty, there is no data to send.\r\n if (this._heartbeatsCache === null ||\r\n this._heartbeatsCache.heartbeats.length === 0) {\r\n return '';\r\n }\r\n const date = getUTCDateString();\r\n // Extract as many heartbeats from the cache as will fit under the size limit.\r\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats);\r\n const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend }));\r\n // Store last sent date to prevent another being logged/sent for the same day.\r\n this._heartbeatsCache.lastSentHeartbeatDate = date;\r\n if (unsentEntries.length > 0) {\r\n // Store any unsent entries if they exist.\r\n this._heartbeatsCache.heartbeats = unsentEntries;\r\n // This seems more likely than emptying the array (below) to lead to some odd state\r\n // since the cache isn't empty and this will be called again on the next request,\r\n // and is probably safest if we await it.\r\n await this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n else {\r\n this._heartbeatsCache.heartbeats = [];\r\n // Do not wait for this, to reduce latency.\r\n void this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n return headerString;\r\n }\r\n}\r\nfunction getUTCDateString() {\r\n const today = new Date();\r\n // Returns date format 'YYYY-MM-DD'\r\n return today.toISOString().substring(0, 10);\r\n}\r\nfunction extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) {\r\n // Heartbeats grouped by user agent in the standard format to be sent in\r\n // the header.\r\n const heartbeatsToSend = [];\r\n // Single date format heartbeats that are not sent.\r\n let unsentEntries = heartbeatsCache.slice();\r\n for (const singleDateHeartbeat of heartbeatsCache) {\r\n // Look for an existing entry with the same user agent.\r\n const heartbeatEntry = heartbeatsToSend.find(hb => hb.agent === singleDateHeartbeat.agent);\r\n if (!heartbeatEntry) {\r\n // If no entry for this user agent exists, create one.\r\n heartbeatsToSend.push({\r\n agent: singleDateHeartbeat.agent,\r\n dates: [singleDateHeartbeat.date]\r\n });\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n // If the header would exceed max size, remove the added heartbeat\r\n // entry and stop adding to the header.\r\n heartbeatsToSend.pop();\r\n break;\r\n }\r\n }\r\n else {\r\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\r\n // If the header would exceed max size, remove the added date\r\n // and stop adding to the header.\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n heartbeatEntry.dates.pop();\r\n break;\r\n }\r\n }\r\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\r\n // quota and the loop breaks early.)\r\n unsentEntries = unsentEntries.slice(1);\r\n }\r\n return {\r\n heartbeatsToSend,\r\n unsentEntries\r\n };\r\n}\r\nclass HeartbeatStorageImpl {\r\n constructor(app) {\r\n this.app = app;\r\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\r\n }\r\n async runIndexedDBEnvironmentCheck() {\r\n if (!isIndexedDBAvailable()) {\r\n return false;\r\n }\r\n else {\r\n return validateIndexedDBOpenable()\r\n .then(() => true)\r\n .catch(() => false);\r\n }\r\n }\r\n /**\r\n * Read all heartbeats.\r\n */\r\n async read() {\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return { heartbeats: [] };\r\n }\r\n else {\r\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\r\n return idbHeartbeatObject || { heartbeats: [] };\r\n }\r\n }\r\n // overwrite the storage with the provided heartbeats\r\n async overwrite(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: heartbeatsObject.heartbeats\r\n });\r\n }\r\n }\r\n // add heartbeats\r\n async add(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: [\r\n ...existingHeartbeatsObject.heartbeats,\r\n ...heartbeatsObject.heartbeats\r\n ]\r\n });\r\n }\r\n }\r\n}\r\n/**\r\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\r\n * in a platform logging header JSON object, stringified, and converted\r\n * to base 64.\r\n */\r\nfunction countBytes(heartbeatsCache) {\r\n // base64 has a restricted set of characters, all of which should be 1 byte.\r\n return base64urlEncodeWithoutPadding(\r\n // heartbeatsCache wrapper properties\r\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })).length;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction registerCoreComponents(variant) {\r\n _registerComponent(new Component('platform-logger', container => new PlatformLoggerServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n _registerComponent(new Component('heartbeat', container => new HeartbeatServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n // Register `app` package.\r\n registerVersion(name$o, version$1, variant);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name$o, version$1, 'esm2017');\r\n // Register platform SDK identifier (no version).\r\n registerVersion('fire-js', '');\r\n}\n\n/**\r\n * Firebase App\r\n *\r\n * @remarks This package coordinates the communication between the different Firebase components\r\n * @packageDocumentation\r\n */\r\nregisterCoreComponents('');\n\nexport { SDK_VERSION, DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME, _addComponent, _addOrOverwriteComponent, _apps, _clearComponents, _components, _getProvider, _registerComponent, _removeServiceInstance, deleteApp, getApp, getApps, initializeApp, onLog, registerVersion, setLogLevel };\n//# sourceMappingURL=index.esm2017.js.map\n","import { registerVersion } from '@firebase/app';\nexport * from '@firebase/app';\n\nvar name = \"firebase\";\nvar version = \"9.15.0\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nregisterVersion(name, version, 'app');\n//# sourceMappingURL=index.esm.js.map\n","import { _getProvider, getApp, _registerComponent, registerVersion } from '@firebase/app';\nimport { Component } from '@firebase/component';\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\nconst name = \"@firebase/installations\";\nconst version = \"0.6.0\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst PENDING_TIMEOUT_MS = 10000;\r\nconst PACKAGE_VERSION = `w:${version}`;\r\nconst INTERNAL_AUTH_VERSION = 'FIS_v2';\r\nconst INSTALLATIONS_API_URL = 'https://firebaseinstallations.googleapis.com/v1';\r\nconst TOKEN_EXPIRATION_BUFFER = 60 * 60 * 1000; // One hour\r\nconst SERVICE = 'installations';\r\nconst SERVICE_NAME = 'Installations';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERROR_DESCRIPTION_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"not-registered\" /* ErrorCode.NOT_REGISTERED */]: 'Firebase Installation is not registered.',\r\n [\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */]: 'Firebase Installation not found.',\r\n [\"request-failed\" /* ErrorCode.REQUEST_FAILED */]: '{$requestName} request failed with error \"{$serverCode} {$serverStatus}: {$serverMessage}\"',\r\n [\"app-offline\" /* ErrorCode.APP_OFFLINE */]: 'Could not process request. Application offline.',\r\n [\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */]: \"Can't delete installation while there is a pending registration request.\"\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory(SERVICE, SERVICE_NAME, ERROR_DESCRIPTION_MAP);\r\n/** Returns true if error is a FirebaseError that is based on an error from the server. */\r\nfunction isServerError(error) {\r\n return (error instanceof FirebaseError &&\r\n error.code.includes(\"request-failed\" /* ErrorCode.REQUEST_FAILED */));\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getInstallationsEndpoint({ projectId }) {\r\n return `${INSTALLATIONS_API_URL}/projects/${projectId}/installations`;\r\n}\r\nfunction extractAuthTokenInfoFromResponse(response) {\r\n return {\r\n token: response.token,\r\n requestStatus: 2 /* RequestStatus.COMPLETED */,\r\n expiresIn: getExpiresInFromResponseExpiresIn(response.expiresIn),\r\n creationTime: Date.now()\r\n };\r\n}\r\nasync function getErrorFromResponse(requestName, response) {\r\n const responseJson = await response.json();\r\n const errorData = responseJson.error;\r\n return ERROR_FACTORY.create(\"request-failed\" /* ErrorCode.REQUEST_FAILED */, {\r\n requestName,\r\n serverCode: errorData.code,\r\n serverMessage: errorData.message,\r\n serverStatus: errorData.status\r\n });\r\n}\r\nfunction getHeaders({ apiKey }) {\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': apiKey\r\n });\r\n}\r\nfunction getHeadersWithAuth(appConfig, { refreshToken }) {\r\n const headers = getHeaders(appConfig);\r\n headers.append('Authorization', getAuthorizationHeader(refreshToken));\r\n return headers;\r\n}\r\n/**\r\n * Calls the passed in fetch wrapper and returns the response.\r\n * If the returned response has a status of 5xx, re-runs the function once and\r\n * returns the response.\r\n */\r\nasync function retryIfServerError(fn) {\r\n const result = await fn();\r\n if (result.status >= 500 && result.status < 600) {\r\n // Internal Server Error. Retry request.\r\n return fn();\r\n }\r\n return result;\r\n}\r\nfunction getExpiresInFromResponseExpiresIn(responseExpiresIn) {\r\n // This works because the server will never respond with fractions of a second.\r\n return Number(responseExpiresIn.replace('s', '000'));\r\n}\r\nfunction getAuthorizationHeader(refreshToken) {\r\n return `${INTERNAL_AUTH_VERSION} ${refreshToken}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function createInstallationRequest({ appConfig, heartbeatServiceProvider }, { fid }) {\r\n const endpoint = getInstallationsEndpoint(appConfig);\r\n const headers = getHeaders(appConfig);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n fid,\r\n authVersion: INTERNAL_AUTH_VERSION,\r\n appId: appConfig.appId,\r\n sdkVersion: PACKAGE_VERSION\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const registeredInstallationEntry = {\r\n fid: responseValue.fid || fid,\r\n registrationStatus: 2 /* RequestStatus.COMPLETED */,\r\n refreshToken: responseValue.refreshToken,\r\n authToken: extractAuthTokenInfoFromResponse(responseValue.authToken)\r\n };\r\n return registeredInstallationEntry;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Create Installation', response);\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Returns a promise that resolves after given time passes. */\r\nfunction sleep(ms) {\r\n return new Promise(resolve => {\r\n setTimeout(resolve, ms);\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction bufferToBase64UrlSafe(array) {\r\n const b64 = btoa(String.fromCharCode(...array));\r\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst VALID_FID_PATTERN = /^[cdef][\\w-]{21}$/;\r\nconst INVALID_FID = '';\r\n/**\r\n * Generates a new FID using random values from Web Crypto API.\r\n * Returns an empty string if FID generation fails for any reason.\r\n */\r\nfunction generateFid() {\r\n try {\r\n // A valid FID has exactly 22 base64 characters, which is 132 bits, or 16.5\r\n // bytes. our implementation generates a 17 byte array instead.\r\n const fidByteArray = new Uint8Array(17);\r\n const crypto = self.crypto || self.msCrypto;\r\n crypto.getRandomValues(fidByteArray);\r\n // Replace the first 4 random bits with the constant FID header of 0b0111.\r\n fidByteArray[0] = 0b01110000 + (fidByteArray[0] % 0b00010000);\r\n const fid = encode(fidByteArray);\r\n return VALID_FID_PATTERN.test(fid) ? fid : INVALID_FID;\r\n }\r\n catch (_a) {\r\n // FID generation errored\r\n return INVALID_FID;\r\n }\r\n}\r\n/** Converts a FID Uint8Array to a base64 string representation. */\r\nfunction encode(fidByteArray) {\r\n const b64String = bufferToBase64UrlSafe(fidByteArray);\r\n // Remove the 23rd character that was added because of the extra 4 bits at the\r\n // end of our 17 byte array, and the '=' padding.\r\n return b64String.substr(0, 22);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Returns a string key that can be used to identify the app. */\r\nfunction getKey(appConfig) {\r\n return `${appConfig.appName}!${appConfig.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst fidChangeCallbacks = new Map();\r\n/**\r\n * Calls the onIdChange callbacks with the new FID value, and broadcasts the\r\n * change to other tabs.\r\n */\r\nfunction fidChanged(appConfig, fid) {\r\n const key = getKey(appConfig);\r\n callFidChangeCallbacks(key, fid);\r\n broadcastFidChange(key, fid);\r\n}\r\nfunction addCallback(appConfig, callback) {\r\n // Open the broadcast channel if it's not already open,\r\n // to be able to listen to change events from other tabs.\r\n getBroadcastChannel();\r\n const key = getKey(appConfig);\r\n let callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n callbackSet = new Set();\r\n fidChangeCallbacks.set(key, callbackSet);\r\n }\r\n callbackSet.add(callback);\r\n}\r\nfunction removeCallback(appConfig, callback) {\r\n const key = getKey(appConfig);\r\n const callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n return;\r\n }\r\n callbackSet.delete(callback);\r\n if (callbackSet.size === 0) {\r\n fidChangeCallbacks.delete(key);\r\n }\r\n // Close broadcast channel if there are no more callbacks.\r\n closeBroadcastChannel();\r\n}\r\nfunction callFidChangeCallbacks(key, fid) {\r\n const callbacks = fidChangeCallbacks.get(key);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n callback(fid);\r\n }\r\n}\r\nfunction broadcastFidChange(key, fid) {\r\n const channel = getBroadcastChannel();\r\n if (channel) {\r\n channel.postMessage({ key, fid });\r\n }\r\n closeBroadcastChannel();\r\n}\r\nlet broadcastChannel = null;\r\n/** Opens and returns a BroadcastChannel if it is supported by the browser. */\r\nfunction getBroadcastChannel() {\r\n if (!broadcastChannel && 'BroadcastChannel' in self) {\r\n broadcastChannel = new BroadcastChannel('[Firebase] FID Change');\r\n broadcastChannel.onmessage = e => {\r\n callFidChangeCallbacks(e.data.key, e.data.fid);\r\n };\r\n }\r\n return broadcastChannel;\r\n}\r\nfunction closeBroadcastChannel() {\r\n if (fidChangeCallbacks.size === 0 && broadcastChannel) {\r\n broadcastChannel.close();\r\n broadcastChannel = null;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DATABASE_NAME = 'firebase-installations-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-installations-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n db.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function set(appConfig, value) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await objectStore.get(key));\r\n await objectStore.put(value, key);\r\n await tx.done;\r\n if (!oldValue || oldValue.fid !== value.fid) {\r\n fidChanged(appConfig, value.fid);\r\n }\r\n return value;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function remove(appConfig) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\n/**\r\n * Atomically updates a record with the result of updateFn, which gets\r\n * called with the current value. If newValue is undefined, the record is\r\n * deleted instead.\r\n * @return Updated value\r\n */\r\nasync function update(appConfig, updateFn) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const store = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await store.get(key));\r\n const newValue = updateFn(oldValue);\r\n if (newValue === undefined) {\r\n await store.delete(key);\r\n }\r\n else {\r\n await store.put(newValue, key);\r\n }\r\n await tx.done;\r\n if (newValue && (!oldValue || oldValue.fid !== newValue.fid)) {\r\n fidChanged(appConfig, newValue.fid);\r\n }\r\n return newValue;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Updates and returns the InstallationEntry from the database.\r\n * Also triggers a registration request if it is necessary and possible.\r\n */\r\nasync function getInstallationEntry(installations) {\r\n let registrationPromise;\r\n const installationEntry = await update(installations.appConfig, oldEntry => {\r\n const installationEntry = updateOrCreateInstallationEntry(oldEntry);\r\n const entryWithPromise = triggerRegistrationIfNecessary(installations, installationEntry);\r\n registrationPromise = entryWithPromise.registrationPromise;\r\n return entryWithPromise.installationEntry;\r\n });\r\n if (installationEntry.fid === INVALID_FID) {\r\n // FID generation failed. Waiting for the FID from the server.\r\n return { installationEntry: await registrationPromise };\r\n }\r\n return {\r\n installationEntry,\r\n registrationPromise\r\n };\r\n}\r\n/**\r\n * Creates a new Installation Entry if one does not exist.\r\n * Also clears timed out pending requests.\r\n */\r\nfunction updateOrCreateInstallationEntry(oldEntry) {\r\n const entry = oldEntry || {\r\n fid: generateFid(),\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n return clearTimedOutRequest(entry);\r\n}\r\n/**\r\n * If the Firebase Installation is not registered yet, this will trigger the\r\n * registration and return an InProgressInstallationEntry.\r\n *\r\n * If registrationPromise does not exist, the installationEntry is guaranteed\r\n * to be registered.\r\n */\r\nfunction triggerRegistrationIfNecessary(installations, installationEntry) {\r\n if (installationEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n if (!navigator.onLine) {\r\n // Registration required but app is offline.\r\n const registrationPromiseWithError = Promise.reject(ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */));\r\n return {\r\n installationEntry,\r\n registrationPromise: registrationPromiseWithError\r\n };\r\n }\r\n // Try registering. Change status to IN_PROGRESS.\r\n const inProgressEntry = {\r\n fid: installationEntry.fid,\r\n registrationStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n registrationTime: Date.now()\r\n };\r\n const registrationPromise = registerInstallation(installations, inProgressEntry);\r\n return { installationEntry: inProgressEntry, registrationPromise };\r\n }\r\n else if (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n return {\r\n installationEntry,\r\n registrationPromise: waitUntilFidRegistration(installations)\r\n };\r\n }\r\n else {\r\n return { installationEntry };\r\n }\r\n}\r\n/** This will be executed only once for each new Firebase Installation. */\r\nasync function registerInstallation(installations, installationEntry) {\r\n try {\r\n const registeredInstallationEntry = await createInstallationRequest(installations, installationEntry);\r\n return set(installations.appConfig, registeredInstallationEntry);\r\n }\r\n catch (e) {\r\n if (isServerError(e) && e.customData.serverCode === 409) {\r\n // Server returned a \"FID can not be used\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n // Registration failed. Set FID as not registered.\r\n await set(installations.appConfig, {\r\n fid: installationEntry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n });\r\n }\r\n throw e;\r\n }\r\n}\r\n/** Call if FID registration is pending in another request. */\r\nasync function waitUntilFidRegistration(installations) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateInstallationRequest(installations.appConfig);\r\n while (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // createInstallation request still in progress.\r\n await sleep(100);\r\n entry = await updateInstallationRequest(installations.appConfig);\r\n }\r\n if (entry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n return registrationPromise;\r\n }\r\n else {\r\n // if there is no registrationPromise, entry is registered.\r\n return installationEntry;\r\n }\r\n }\r\n return entry;\r\n}\r\n/**\r\n * Called only if there is a CreateInstallation request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * CreateInstallation request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateInstallationRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!oldEntry) {\r\n throw ERROR_FACTORY.create(\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */);\r\n }\r\n return clearTimedOutRequest(oldEntry);\r\n });\r\n}\r\nfunction clearTimedOutRequest(entry) {\r\n if (hasInstallationRequestTimedOut(entry)) {\r\n return {\r\n fid: entry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n }\r\n return entry;\r\n}\r\nfunction hasInstallationRequestTimedOut(installationEntry) {\r\n return (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n installationEntry.registrationTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function generateAuthTokenRequest({ appConfig, heartbeatServiceProvider }, installationEntry) {\r\n const endpoint = getGenerateAuthTokenEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n installation: {\r\n sdkVersion: PACKAGE_VERSION,\r\n appId: appConfig.appId\r\n }\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const completedAuthToken = extractAuthTokenInfoFromResponse(responseValue);\r\n return completedAuthToken;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Generate Auth Token', response);\r\n }\r\n}\r\nfunction getGenerateAuthTokenEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}/authTokens:generate`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a valid authentication token for the installation. Generates a new\r\n * token if one doesn't exist, is expired or about to expire.\r\n *\r\n * Should only be called if the Firebase Installation is registered.\r\n */\r\nasync function refreshAuthToken(installations, forceRefresh = false) {\r\n let tokenPromise;\r\n const entry = await update(installations.appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (!forceRefresh && isAuthTokenValid(oldAuthToken)) {\r\n // There is a valid token in the DB.\r\n return oldEntry;\r\n }\r\n else if (oldAuthToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // There already is a token request in progress.\r\n tokenPromise = waitUntilAuthTokenRequest(installations, forceRefresh);\r\n return oldEntry;\r\n }\r\n else {\r\n // No token or token expired.\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n const inProgressEntry = makeAuthTokenRequestInProgressEntry(oldEntry);\r\n tokenPromise = fetchAuthTokenFromServer(installations, inProgressEntry);\r\n return inProgressEntry;\r\n }\r\n });\r\n const authToken = tokenPromise\r\n ? await tokenPromise\r\n : entry.authToken;\r\n return authToken;\r\n}\r\n/**\r\n * Call only if FID is registered and Auth Token request is in progress.\r\n *\r\n * Waits until the current pending request finishes. If the request times out,\r\n * tries once in this thread as well.\r\n */\r\nasync function waitUntilAuthTokenRequest(installations, forceRefresh) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateAuthTokenRequest(installations.appConfig);\r\n while (entry.authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // generateAuthToken still in progress.\r\n await sleep(100);\r\n entry = await updateAuthTokenRequest(installations.appConfig);\r\n }\r\n const authToken = entry.authToken;\r\n if (authToken.requestStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n return refreshAuthToken(installations, forceRefresh);\r\n }\r\n else {\r\n return authToken;\r\n }\r\n}\r\n/**\r\n * Called only if there is a GenerateAuthToken request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * GenerateAuthToken request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateAuthTokenRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (hasAuthTokenRequestTimedOut(oldAuthToken)) {\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n }\r\n return oldEntry;\r\n });\r\n}\r\nasync function fetchAuthTokenFromServer(installations, installationEntry) {\r\n try {\r\n const authToken = await generateAuthTokenRequest(installations, installationEntry);\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n return authToken;\r\n }\r\n catch (e) {\r\n if (isServerError(e) &&\r\n (e.customData.serverCode === 401 || e.customData.serverCode === 404)) {\r\n // Server returned a \"FID not found\" or a \"Invalid authentication\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n }\r\n throw e;\r\n }\r\n}\r\nfunction isEntryRegistered(installationEntry) {\r\n return (installationEntry !== undefined &&\r\n installationEntry.registrationStatus === 2 /* RequestStatus.COMPLETED */);\r\n}\r\nfunction isAuthTokenValid(authToken) {\r\n return (authToken.requestStatus === 2 /* RequestStatus.COMPLETED */ &&\r\n !isAuthTokenExpired(authToken));\r\n}\r\nfunction isAuthTokenExpired(authToken) {\r\n const now = Date.now();\r\n return (now < authToken.creationTime ||\r\n authToken.creationTime + authToken.expiresIn < now + TOKEN_EXPIRATION_BUFFER);\r\n}\r\n/** Returns an updated InstallationEntry with an InProgressAuthToken. */\r\nfunction makeAuthTokenRequestInProgressEntry(oldEntry) {\r\n const inProgressAuthToken = {\r\n requestStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n requestTime: Date.now()\r\n };\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: inProgressAuthToken });\r\n}\r\nfunction hasAuthTokenRequestTimedOut(authToken) {\r\n return (authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n authToken.requestTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Creates a Firebase Installation if there isn't one for the app and\r\n * returns the Installation ID.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function getId(installations) {\r\n const installationsImpl = installations;\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installationsImpl);\r\n if (registrationPromise) {\r\n registrationPromise.catch(console.error);\r\n }\r\n else {\r\n // If the installation is already registered, update the authentication\r\n // token if needed.\r\n refreshAuthToken(installationsImpl).catch(console.error);\r\n }\r\n return installationEntry.fid;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a Firebase Installations auth token, identifying the current\r\n * Firebase Installation.\r\n * @param installations - The `Installations` instance.\r\n * @param forceRefresh - Force refresh regardless of token expiration.\r\n *\r\n * @public\r\n */\r\nasync function getToken(installations, forceRefresh = false) {\r\n const installationsImpl = installations;\r\n await completeInstallationRegistration(installationsImpl);\r\n // At this point we either have a Registered Installation in the DB, or we've\r\n // already thrown an error.\r\n const authToken = await refreshAuthToken(installationsImpl, forceRefresh);\r\n return authToken.token;\r\n}\r\nasync function completeInstallationRegistration(installations) {\r\n const { registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n // A createInstallation request is in progress. Wait until it finishes.\r\n await registrationPromise;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function deleteInstallationRequest(appConfig, installationEntry) {\r\n const endpoint = getDeleteEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n const request = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (!response.ok) {\r\n throw await getErrorFromResponse('Delete Installation', response);\r\n }\r\n}\r\nfunction getDeleteEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Deletes the Firebase Installation and all associated data.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function deleteInstallations(installations) {\r\n const { appConfig } = installations;\r\n const entry = await update(appConfig, oldEntry => {\r\n if (oldEntry && oldEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // Delete the unregistered entry without sending a deleteInstallation request.\r\n return undefined;\r\n }\r\n return oldEntry;\r\n });\r\n if (entry) {\r\n if (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // Can't delete while trying to register.\r\n throw ERROR_FACTORY.create(\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */);\r\n }\r\n else if (entry.registrationStatus === 2 /* RequestStatus.COMPLETED */) {\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n else {\r\n await deleteInstallationRequest(appConfig, entry);\r\n await remove(appConfig);\r\n }\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Sets a new callback that will get called when Installation ID changes.\r\n * Returns an unsubscribe function that will remove the callback when called.\r\n * @param installations - The `Installations` instance.\r\n * @param callback - The callback function that is invoked when FID changes.\r\n * @returns A function that can be called to unsubscribe.\r\n *\r\n * @public\r\n */\r\nfunction onIdChange(installations, callback) {\r\n const { appConfig } = installations;\r\n addCallback(appConfig, callback);\r\n return () => {\r\n removeCallback(appConfig, callback);\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns an instance of {@link Installations} associated with the given\r\n * {@link @firebase/app#FirebaseApp} instance.\r\n * @param app - The {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * @public\r\n */\r\nfunction getInstallations(app = getApp()) {\r\n const installationsImpl = _getProvider(app, 'installations').getImmediate();\r\n return installationsImpl;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId'\r\n ];\r\n for (const keyName of configKeys) {\r\n if (!app.options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: app.options.projectId,\r\n apiKey: app.options.apiKey,\r\n appId: app.options.appId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst INSTALLATIONS_NAME = 'installations';\r\nconst INSTALLATIONS_NAME_INTERNAL = 'installations-internal';\r\nconst publicFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Throws if app isn't configured properly.\r\n const appConfig = extractAppConfig(app);\r\n const heartbeatServiceProvider = _getProvider(app, 'heartbeat');\r\n const installationsImpl = {\r\n app,\r\n appConfig,\r\n heartbeatServiceProvider,\r\n _delete: () => Promise.resolve()\r\n };\r\n return installationsImpl;\r\n};\r\nconst internalFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Internal FIS instance relies on public FIS instance.\r\n const installations = _getProvider(app, INSTALLATIONS_NAME).getImmediate();\r\n const installationsInternal = {\r\n getId: () => getId(installations),\r\n getToken: (forceRefresh) => getToken(installations, forceRefresh)\r\n };\r\n return installationsInternal;\r\n};\r\nfunction registerInstallations() {\r\n _registerComponent(new Component(INSTALLATIONS_NAME, publicFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component(INSTALLATIONS_NAME_INTERNAL, internalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n}\n\n/**\r\n * Firebase Installations\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterInstallations();\r\nregisterVersion(name, version);\r\n// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\nregisterVersion(name, version, 'esm2017');\n\nexport { deleteInstallations, getId, getInstallations, getToken, onIdChange };\n//# sourceMappingURL=index.esm2017.js.map\n","import { _getProvider, getApp, _registerComponent, registerVersion } from '@firebase/app';\nimport { Logger } from '@firebase/logger';\nimport { ErrorFactory, calculateBackoffMillis, FirebaseError, isIndexedDBAvailable, validateIndexedDBOpenable, isBrowserExtension, areCookiesEnabled, getModularInstance, deepEqual } from '@firebase/util';\nimport { Component } from '@firebase/component';\nimport '@firebase/installations';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Type constant for Firebase Analytics.\r\n */\r\nconst ANALYTICS_TYPE = 'analytics';\r\n// Key to attach FID to in gtag params.\r\nconst GA_FID_KEY = 'firebase_id';\r\nconst ORIGIN_KEY = 'origin';\r\nconst FETCH_TIMEOUT_MILLIS = 60 * 1000;\r\nconst DYNAMIC_CONFIG_URL = 'https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig';\r\nconst GTAG_URL = 'https://www.googletagmanager.com/gtag/js';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst logger = new Logger('@firebase/analytics');\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Makeshift polyfill for Promise.allSettled(). Resolves when all promises\r\n * have either resolved or rejected.\r\n *\r\n * @param promises Array of promises to wait for.\r\n */\r\nfunction promiseAllSettled(promises) {\r\n return Promise.all(promises.map(promise => promise.catch(e => e)));\r\n}\r\n/**\r\n * Inserts gtag script tag into the page to asynchronously download gtag.\r\n * @param dataLayerName Name of datalayer (most often the default, \"_dataLayer\").\r\n */\r\nfunction insertScriptTag(dataLayerName, measurementId) {\r\n const script = document.createElement('script');\r\n // We are not providing an analyticsId in the URL because it would trigger a `page_view`\r\n // without fid. We will initialize ga-id using gtag (config) command together with fid.\r\n script.src = `${GTAG_URL}?l=${dataLayerName}&id=${measurementId}`;\r\n script.async = true;\r\n document.head.appendChild(script);\r\n}\r\n/**\r\n * Get reference to, or create, global datalayer.\r\n * @param dataLayerName Name of datalayer (most often the default, \"_dataLayer\").\r\n */\r\nfunction getOrCreateDataLayer(dataLayerName) {\r\n // Check for existing dataLayer and create if needed.\r\n let dataLayer = [];\r\n if (Array.isArray(window[dataLayerName])) {\r\n dataLayer = window[dataLayerName];\r\n }\r\n else {\r\n window[dataLayerName] = dataLayer;\r\n }\r\n return dataLayer;\r\n}\r\n/**\r\n * Wrapped gtag logic when gtag is called with 'config' command.\r\n *\r\n * @param gtagCore Basic gtag function that just appends to dataLayer.\r\n * @param initializationPromisesMap Map of appIds to their initialization promises.\r\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\r\n * @param measurementIdToAppId Map of GA measurementIDs to corresponding Firebase appId.\r\n * @param measurementId GA Measurement ID to set config for.\r\n * @param gtagParams Gtag config params to set.\r\n */\r\nasync function gtagOnConfig(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementIdToAppId, measurementId, gtagParams) {\r\n // If config is already fetched, we know the appId and can use it to look up what FID promise we\r\n /// are waiting for, and wait only on that one.\r\n const correspondingAppId = measurementIdToAppId[measurementId];\r\n try {\r\n if (correspondingAppId) {\r\n await initializationPromisesMap[correspondingAppId];\r\n }\r\n else {\r\n // If config is not fetched yet, wait for all configs (we don't know which one we need) and\r\n // find the appId (if any) corresponding to this measurementId. If there is one, wait on\r\n // that appId's initialization promise. If there is none, promise resolves and gtag\r\n // call goes through.\r\n const dynamicConfigResults = await promiseAllSettled(dynamicConfigPromisesList);\r\n const foundConfig = dynamicConfigResults.find(config => config.measurementId === measurementId);\r\n if (foundConfig) {\r\n await initializationPromisesMap[foundConfig.appId];\r\n }\r\n }\r\n }\r\n catch (e) {\r\n logger.error(e);\r\n }\r\n gtagCore(\"config\" /* GtagCommand.CONFIG */, measurementId, gtagParams);\r\n}\r\n/**\r\n * Wrapped gtag logic when gtag is called with 'event' command.\r\n *\r\n * @param gtagCore Basic gtag function that just appends to dataLayer.\r\n * @param initializationPromisesMap Map of appIds to their initialization promises.\r\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\r\n * @param measurementId GA Measurement ID to log event to.\r\n * @param gtagParams Params to log with this event.\r\n */\r\nasync function gtagOnEvent(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementId, gtagParams) {\r\n try {\r\n let initializationPromisesToWaitFor = [];\r\n // If there's a 'send_to' param, check if any ID specified matches\r\n // an initializeIds() promise we are waiting for.\r\n if (gtagParams && gtagParams['send_to']) {\r\n let gaSendToList = gtagParams['send_to'];\r\n // Make it an array if is isn't, so it can be dealt with the same way.\r\n if (!Array.isArray(gaSendToList)) {\r\n gaSendToList = [gaSendToList];\r\n }\r\n // Checking 'send_to' fields requires having all measurement ID results back from\r\n // the dynamic config fetch.\r\n const dynamicConfigResults = await promiseAllSettled(dynamicConfigPromisesList);\r\n for (const sendToId of gaSendToList) {\r\n // Any fetched dynamic measurement ID that matches this 'send_to' ID\r\n const foundConfig = dynamicConfigResults.find(config => config.measurementId === sendToId);\r\n const initializationPromise = foundConfig && initializationPromisesMap[foundConfig.appId];\r\n if (initializationPromise) {\r\n initializationPromisesToWaitFor.push(initializationPromise);\r\n }\r\n else {\r\n // Found an item in 'send_to' that is not associated\r\n // directly with an FID, possibly a group. Empty this array,\r\n // exit the loop early, and let it get populated below.\r\n initializationPromisesToWaitFor = [];\r\n break;\r\n }\r\n }\r\n }\r\n // This will be unpopulated if there was no 'send_to' field , or\r\n // if not all entries in the 'send_to' field could be mapped to\r\n // a FID. In these cases, wait on all pending initialization promises.\r\n if (initializationPromisesToWaitFor.length === 0) {\r\n initializationPromisesToWaitFor = Object.values(initializationPromisesMap);\r\n }\r\n // Run core gtag function with args after all relevant initialization\r\n // promises have been resolved.\r\n await Promise.all(initializationPromisesToWaitFor);\r\n // Workaround for http://b/141370449 - third argument cannot be undefined.\r\n gtagCore(\"event\" /* GtagCommand.EVENT */, measurementId, gtagParams || {});\r\n }\r\n catch (e) {\r\n logger.error(e);\r\n }\r\n}\r\n/**\r\n * Wraps a standard gtag function with extra code to wait for completion of\r\n * relevant initialization promises before sending requests.\r\n *\r\n * @param gtagCore Basic gtag function that just appends to dataLayer.\r\n * @param initializationPromisesMap Map of appIds to their initialization promises.\r\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\r\n * @param measurementIdToAppId Map of GA measurementIDs to corresponding Firebase appId.\r\n */\r\nfunction wrapGtag(gtagCore, \r\n/**\r\n * Allows wrapped gtag calls to wait on whichever intialization promises are required,\r\n * depending on the contents of the gtag params' `send_to` field, if any.\r\n */\r\ninitializationPromisesMap, \r\n/**\r\n * Wrapped gtag calls sometimes require all dynamic config fetches to have returned\r\n * before determining what initialization promises (which include FIDs) to wait for.\r\n */\r\ndynamicConfigPromisesList, \r\n/**\r\n * Wrapped gtag config calls can narrow down which initialization promise (with FID)\r\n * to wait for if the measurementId is already fetched, by getting the corresponding appId,\r\n * which is the key for the initialization promises map.\r\n */\r\nmeasurementIdToAppId) {\r\n /**\r\n * Wrapper around gtag that ensures FID is sent with gtag calls.\r\n * @param command Gtag command type.\r\n * @param idOrNameOrParams Measurement ID if command is EVENT/CONFIG, params if command is SET.\r\n * @param gtagParams Params if event is EVENT/CONFIG.\r\n */\r\n async function gtagWrapper(command, idOrNameOrParams, gtagParams) {\r\n try {\r\n // If event, check that relevant initialization promises have completed.\r\n if (command === \"event\" /* GtagCommand.EVENT */) {\r\n // If EVENT, second arg must be measurementId.\r\n await gtagOnEvent(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, idOrNameOrParams, gtagParams);\r\n }\r\n else if (command === \"config\" /* GtagCommand.CONFIG */) {\r\n // If CONFIG, second arg must be measurementId.\r\n await gtagOnConfig(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementIdToAppId, idOrNameOrParams, gtagParams);\r\n }\r\n else if (command === \"consent\" /* GtagCommand.CONSENT */) {\r\n // If CONFIG, second arg must be measurementId.\r\n gtagCore(\"consent\" /* GtagCommand.CONSENT */, 'update', gtagParams);\r\n }\r\n else {\r\n // If SET, second arg must be params.\r\n gtagCore(\"set\" /* GtagCommand.SET */, idOrNameOrParams);\r\n }\r\n }\r\n catch (e) {\r\n logger.error(e);\r\n }\r\n }\r\n return gtagWrapper;\r\n}\r\n/**\r\n * Creates global gtag function or wraps existing one if found.\r\n * This wrapped function attaches Firebase instance ID (FID) to gtag 'config' and\r\n * 'event' calls that belong to the GAID associated with this Firebase instance.\r\n *\r\n * @param initializationPromisesMap Map of appIds to their initialization promises.\r\n * @param dynamicConfigPromisesList Array of dynamic config fetch promises.\r\n * @param measurementIdToAppId Map of GA measurementIDs to corresponding Firebase appId.\r\n * @param dataLayerName Name of global GA datalayer array.\r\n * @param gtagFunctionName Name of global gtag function (\"gtag\" if not user-specified).\r\n */\r\nfunction wrapOrCreateGtag(initializationPromisesMap, dynamicConfigPromisesList, measurementIdToAppId, dataLayerName, gtagFunctionName) {\r\n // Create a basic core gtag function\r\n let gtagCore = function (..._args) {\r\n // Must push IArguments object, not an array.\r\n window[dataLayerName].push(arguments);\r\n };\r\n // Replace it with existing one if found\r\n if (window[gtagFunctionName] &&\r\n typeof window[gtagFunctionName] === 'function') {\r\n // @ts-ignore\r\n gtagCore = window[gtagFunctionName];\r\n }\r\n window[gtagFunctionName] = wrapGtag(gtagCore, initializationPromisesMap, dynamicConfigPromisesList, measurementIdToAppId);\r\n return {\r\n gtagCore,\r\n wrappedGtag: window[gtagFunctionName]\r\n };\r\n}\r\n/**\r\n * Returns the script tag in the DOM matching both the gtag url pattern\r\n * and the provided data layer name.\r\n */\r\nfunction findGtagScriptOnPage(dataLayerName) {\r\n const scriptTags = window.document.getElementsByTagName('script');\r\n for (const tag of Object.values(scriptTags)) {\r\n if (tag.src &&\r\n tag.src.includes(GTAG_URL) &&\r\n tag.src.includes(dataLayerName)) {\r\n return tag;\r\n }\r\n }\r\n return null;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERRORS = {\r\n [\"already-exists\" /* AnalyticsError.ALREADY_EXISTS */]: 'A Firebase Analytics instance with the appId {$id} ' +\r\n ' already exists. ' +\r\n 'Only one Firebase Analytics instance can be created for each appId.',\r\n [\"already-initialized\" /* AnalyticsError.ALREADY_INITIALIZED */]: 'initializeAnalytics() cannot be called again with different options than those ' +\r\n 'it was initially called with. It can be called again with the same options to ' +\r\n 'return the existing instance, or getAnalytics() can be used ' +\r\n 'to get a reference to the already-intialized instance.',\r\n [\"already-initialized-settings\" /* AnalyticsError.ALREADY_INITIALIZED_SETTINGS */]: 'Firebase Analytics has already been initialized.' +\r\n 'settings() must be called before initializing any Analytics instance' +\r\n 'or it will have no effect.',\r\n [\"interop-component-reg-failed\" /* AnalyticsError.INTEROP_COMPONENT_REG_FAILED */]: 'Firebase Analytics Interop Component failed to instantiate: {$reason}',\r\n [\"invalid-analytics-context\" /* AnalyticsError.INVALID_ANALYTICS_CONTEXT */]: 'Firebase Analytics is not supported in this environment. ' +\r\n 'Wrap initialization of analytics in analytics.isSupported() ' +\r\n 'to prevent initialization in unsupported environments. Details: {$errorInfo}',\r\n [\"indexeddb-unavailable\" /* AnalyticsError.INDEXEDDB_UNAVAILABLE */]: 'IndexedDB unavailable or restricted in this environment. ' +\r\n 'Wrap initialization of analytics in analytics.isSupported() ' +\r\n 'to prevent initialization in unsupported environments. Details: {$errorInfo}',\r\n [\"fetch-throttle\" /* AnalyticsError.FETCH_THROTTLE */]: 'The config fetch request timed out while in an exponential backoff state.' +\r\n ' Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.',\r\n [\"config-fetch-failed\" /* AnalyticsError.CONFIG_FETCH_FAILED */]: 'Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}',\r\n [\"no-api-key\" /* AnalyticsError.NO_API_KEY */]: 'The \"apiKey\" field is empty in the local Firebase config. Firebase Analytics requires this field to' +\r\n 'contain a valid API key.',\r\n [\"no-app-id\" /* AnalyticsError.NO_APP_ID */]: 'The \"appId\" field is empty in the local Firebase config. Firebase Analytics requires this field to' +\r\n 'contain a valid app ID.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('analytics', 'Analytics', ERRORS);\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Backoff factor for 503 errors, which we want to be conservative about\r\n * to avoid overloading servers. Each retry interval will be\r\n * BASE_INTERVAL_MILLIS * LONG_RETRY_FACTOR ^ retryCount, so the second one\r\n * will be ~30 seconds (with fuzzing).\r\n */\r\nconst LONG_RETRY_FACTOR = 30;\r\n/**\r\n * Base wait interval to multiplied by backoffFactor^backoffCount.\r\n */\r\nconst BASE_INTERVAL_MILLIS = 1000;\r\n/**\r\n * Stubbable retry data storage class.\r\n */\r\nclass RetryData {\r\n constructor(throttleMetadata = {}, intervalMillis = BASE_INTERVAL_MILLIS) {\r\n this.throttleMetadata = throttleMetadata;\r\n this.intervalMillis = intervalMillis;\r\n }\r\n getThrottleMetadata(appId) {\r\n return this.throttleMetadata[appId];\r\n }\r\n setThrottleMetadata(appId, metadata) {\r\n this.throttleMetadata[appId] = metadata;\r\n }\r\n deleteThrottleMetadata(appId) {\r\n delete this.throttleMetadata[appId];\r\n }\r\n}\r\nconst defaultRetryData = new RetryData();\r\n/**\r\n * Set GET request headers.\r\n * @param apiKey App API key.\r\n */\r\nfunction getHeaders(apiKey) {\r\n return new Headers({\r\n Accept: 'application/json',\r\n 'x-goog-api-key': apiKey\r\n });\r\n}\r\n/**\r\n * Fetches dynamic config from backend.\r\n * @param app Firebase app to fetch config for.\r\n */\r\nasync function fetchDynamicConfig(appFields) {\r\n var _a;\r\n const { appId, apiKey } = appFields;\r\n const request = {\r\n method: 'GET',\r\n headers: getHeaders(apiKey)\r\n };\r\n const appUrl = DYNAMIC_CONFIG_URL.replace('{app-id}', appId);\r\n const response = await fetch(appUrl, request);\r\n if (response.status !== 200 && response.status !== 304) {\r\n let errorMessage = '';\r\n try {\r\n // Try to get any error message text from server response.\r\n const jsonResponse = (await response.json());\r\n if ((_a = jsonResponse.error) === null || _a === void 0 ? void 0 : _a.message) {\r\n errorMessage = jsonResponse.error.message;\r\n }\r\n }\r\n catch (_ignored) { }\r\n throw ERROR_FACTORY.create(\"config-fetch-failed\" /* AnalyticsError.CONFIG_FETCH_FAILED */, {\r\n httpStatus: response.status,\r\n responseMessage: errorMessage\r\n });\r\n }\r\n return response.json();\r\n}\r\n/**\r\n * Fetches dynamic config from backend, retrying if failed.\r\n * @param app Firebase app to fetch config for.\r\n */\r\nasync function fetchDynamicConfigWithRetry(app, \r\n// retryData and timeoutMillis are parameterized to allow passing a different value for testing.\r\nretryData = defaultRetryData, timeoutMillis) {\r\n const { appId, apiKey, measurementId } = app.options;\r\n if (!appId) {\r\n throw ERROR_FACTORY.create(\"no-app-id\" /* AnalyticsError.NO_APP_ID */);\r\n }\r\n if (!apiKey) {\r\n if (measurementId) {\r\n return {\r\n measurementId,\r\n appId\r\n };\r\n }\r\n throw ERROR_FACTORY.create(\"no-api-key\" /* AnalyticsError.NO_API_KEY */);\r\n }\r\n const throttleMetadata = retryData.getThrottleMetadata(appId) || {\r\n backoffCount: 0,\r\n throttleEndTimeMillis: Date.now()\r\n };\r\n const signal = new AnalyticsAbortSignal();\r\n setTimeout(async () => {\r\n // Note a very low delay, eg < 10ms, can elapse before listeners are initialized.\r\n signal.abort();\r\n }, timeoutMillis !== undefined ? timeoutMillis : FETCH_TIMEOUT_MILLIS);\r\n return attemptFetchDynamicConfigWithRetry({ appId, apiKey, measurementId }, throttleMetadata, signal, retryData);\r\n}\r\n/**\r\n * Runs one retry attempt.\r\n * @param appFields Necessary app config fields.\r\n * @param throttleMetadata Ongoing metadata to determine throttling times.\r\n * @param signal Abort signal.\r\n */\r\nasync function attemptFetchDynamicConfigWithRetry(appFields, { throttleEndTimeMillis, backoffCount }, signal, retryData = defaultRetryData // for testing\r\n) {\r\n var _a;\r\n const { appId, measurementId } = appFields;\r\n // Starts with a (potentially zero) timeout to support resumption from stored state.\r\n // Ensures the throttle end time is honored if the last attempt timed out.\r\n // Note the SDK will never make a request if the fetch timeout expires at this point.\r\n try {\r\n await setAbortableTimeout(signal, throttleEndTimeMillis);\r\n }\r\n catch (e) {\r\n if (measurementId) {\r\n logger.warn(`Timed out fetching this Firebase app's measurement ID from the server.` +\r\n ` Falling back to the measurement ID ${measurementId}` +\r\n ` provided in the \"measurementId\" field in the local Firebase config. [${e === null || e === void 0 ? void 0 : e.message}]`);\r\n return { appId, measurementId };\r\n }\r\n throw e;\r\n }\r\n try {\r\n const response = await fetchDynamicConfig(appFields);\r\n // Note the SDK only clears throttle state if response is success or non-retriable.\r\n retryData.deleteThrottleMetadata(appId);\r\n return response;\r\n }\r\n catch (e) {\r\n const error = e;\r\n if (!isRetriableError(error)) {\r\n retryData.deleteThrottleMetadata(appId);\r\n if (measurementId) {\r\n logger.warn(`Failed to fetch this Firebase app's measurement ID from the server.` +\r\n ` Falling back to the measurement ID ${measurementId}` +\r\n ` provided in the \"measurementId\" field in the local Firebase config. [${error === null || error === void 0 ? void 0 : error.message}]`);\r\n return { appId, measurementId };\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n const backoffMillis = Number((_a = error === null || error === void 0 ? void 0 : error.customData) === null || _a === void 0 ? void 0 : _a.httpStatus) === 503\r\n ? calculateBackoffMillis(backoffCount, retryData.intervalMillis, LONG_RETRY_FACTOR)\r\n : calculateBackoffMillis(backoffCount, retryData.intervalMillis);\r\n // Increments backoff state.\r\n const throttleMetadata = {\r\n throttleEndTimeMillis: Date.now() + backoffMillis,\r\n backoffCount: backoffCount + 1\r\n };\r\n // Persists state.\r\n retryData.setThrottleMetadata(appId, throttleMetadata);\r\n logger.debug(`Calling attemptFetch again in ${backoffMillis} millis`);\r\n return attemptFetchDynamicConfigWithRetry(appFields, throttleMetadata, signal, retryData);\r\n }\r\n}\r\n/**\r\n * Supports waiting on a backoff by:\r\n *\r\n *

    \r\n *
  • Promisifying setTimeout, so we can set a timeout in our Promise chain
  • \r\n *
  • Listening on a signal bus for abort events, just like the Fetch API
  • \r\n *
  • Failing in the same way the Fetch API fails, so timing out a live request and a throttled\r\n * request appear the same.
  • \r\n *
\r\n *\r\n *

Visible for testing.\r\n */\r\nfunction setAbortableTimeout(signal, throttleEndTimeMillis) {\r\n return new Promise((resolve, reject) => {\r\n // Derives backoff from given end time, normalizing negative numbers to zero.\r\n const backoffMillis = Math.max(throttleEndTimeMillis - Date.now(), 0);\r\n const timeout = setTimeout(resolve, backoffMillis);\r\n // Adds listener, rather than sets onabort, because signal is a shared object.\r\n signal.addEventListener(() => {\r\n clearTimeout(timeout);\r\n // If the request completes before this timeout, the rejection has no effect.\r\n reject(ERROR_FACTORY.create(\"fetch-throttle\" /* AnalyticsError.FETCH_THROTTLE */, {\r\n throttleEndTimeMillis\r\n }));\r\n });\r\n });\r\n}\r\n/**\r\n * Returns true if the {@link Error} indicates a fetch request may succeed later.\r\n */\r\nfunction isRetriableError(e) {\r\n if (!(e instanceof FirebaseError) || !e.customData) {\r\n return false;\r\n }\r\n // Uses string index defined by ErrorData, which FirebaseError implements.\r\n const httpStatus = Number(e.customData['httpStatus']);\r\n return (httpStatus === 429 ||\r\n httpStatus === 500 ||\r\n httpStatus === 503 ||\r\n httpStatus === 504);\r\n}\r\n/**\r\n * Shims a minimal AbortSignal (copied from Remote Config).\r\n *\r\n *

AbortController's AbortSignal conveniently decouples fetch timeout logic from other aspects\r\n * of networking, such as retries. Firebase doesn't use AbortController enough to justify a\r\n * polyfill recommendation, like we do with the Fetch API, but this minimal shim can easily be\r\n * swapped out if/when we do.\r\n */\r\nclass AnalyticsAbortSignal {\r\n constructor() {\r\n this.listeners = [];\r\n }\r\n addEventListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n abort() {\r\n this.listeners.forEach(listener => listener());\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Event parameters to set on 'gtag' during initialization.\r\n */\r\nlet defaultEventParametersForInit;\r\n/**\r\n * Logs an analytics event through the Firebase SDK.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n * @param eventName Google Analytics event name, choose from standard list or use a custom string.\r\n * @param eventParams Analytics event parameters.\r\n */\r\nasync function logEvent$1(gtagFunction, initializationPromise, eventName, eventParams, options) {\r\n if (options && options.global) {\r\n gtagFunction(\"event\" /* GtagCommand.EVENT */, eventName, eventParams);\r\n return;\r\n }\r\n else {\r\n const measurementId = await initializationPromise;\r\n const params = Object.assign(Object.assign({}, eventParams), { 'send_to': measurementId });\r\n gtagFunction(\"event\" /* GtagCommand.EVENT */, eventName, params);\r\n }\r\n}\r\n/**\r\n * Set screen_name parameter for this Google Analytics ID.\r\n *\r\n * @deprecated Use {@link logEvent} with `eventName` as 'screen_view' and add relevant `eventParams`.\r\n * See {@link https://firebase.google.com/docs/analytics/screenviews | Track Screenviews}.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n * @param screenName Screen name string to set.\r\n */\r\nasync function setCurrentScreen$1(gtagFunction, initializationPromise, screenName, options) {\r\n if (options && options.global) {\r\n gtagFunction(\"set\" /* GtagCommand.SET */, { 'screen_name': screenName });\r\n return Promise.resolve();\r\n }\r\n else {\r\n const measurementId = await initializationPromise;\r\n gtagFunction(\"config\" /* GtagCommand.CONFIG */, measurementId, {\r\n update: true,\r\n 'screen_name': screenName\r\n });\r\n }\r\n}\r\n/**\r\n * Set user_id parameter for this Google Analytics ID.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n * @param id User ID string to set\r\n */\r\nasync function setUserId$1(gtagFunction, initializationPromise, id, options) {\r\n if (options && options.global) {\r\n gtagFunction(\"set\" /* GtagCommand.SET */, { 'user_id': id });\r\n return Promise.resolve();\r\n }\r\n else {\r\n const measurementId = await initializationPromise;\r\n gtagFunction(\"config\" /* GtagCommand.CONFIG */, measurementId, {\r\n update: true,\r\n 'user_id': id\r\n });\r\n }\r\n}\r\n/**\r\n * Set all other user properties other than user_id and screen_name.\r\n *\r\n * @param gtagFunction Wrapped gtag function that waits for fid to be set before sending an event\r\n * @param properties Map of user properties to set\r\n */\r\nasync function setUserProperties$1(gtagFunction, initializationPromise, properties, options) {\r\n if (options && options.global) {\r\n const flatProperties = {};\r\n for (const key of Object.keys(properties)) {\r\n // use dot notation for merge behavior in gtag.js\r\n flatProperties[`user_properties.${key}`] = properties[key];\r\n }\r\n gtagFunction(\"set\" /* GtagCommand.SET */, flatProperties);\r\n return Promise.resolve();\r\n }\r\n else {\r\n const measurementId = await initializationPromise;\r\n gtagFunction(\"config\" /* GtagCommand.CONFIG */, measurementId, {\r\n update: true,\r\n 'user_properties': properties\r\n });\r\n }\r\n}\r\n/**\r\n * Set whether collection is enabled for this ID.\r\n *\r\n * @param enabled If true, collection is enabled for this ID.\r\n */\r\nasync function setAnalyticsCollectionEnabled$1(initializationPromise, enabled) {\r\n const measurementId = await initializationPromise;\r\n window[`ga-disable-${measurementId}`] = !enabled;\r\n}\r\n/**\r\n * Consent parameters to default to during 'gtag' initialization.\r\n */\r\nlet defaultConsentSettingsForInit;\r\n/**\r\n * Sets the variable {@link defaultConsentSettingsForInit} for use in the initialization of\r\n * analytics.\r\n *\r\n * @param consentSettings Maps the applicable end user consent state for gtag.js.\r\n */\r\nfunction _setConsentDefaultForInit(consentSettings) {\r\n defaultConsentSettingsForInit = consentSettings;\r\n}\r\n/**\r\n * Sets the variable `defaultEventParametersForInit` for use in the initialization of\r\n * analytics.\r\n *\r\n * @param customParams Any custom params the user may pass to gtag.js.\r\n */\r\nfunction _setDefaultEventParametersForInit(customParams) {\r\n defaultEventParametersForInit = customParams;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function validateIndexedDB() {\r\n if (!isIndexedDBAvailable()) {\r\n logger.warn(ERROR_FACTORY.create(\"indexeddb-unavailable\" /* AnalyticsError.INDEXEDDB_UNAVAILABLE */, {\r\n errorInfo: 'IndexedDB is not available in this environment.'\r\n }).message);\r\n return false;\r\n }\r\n else {\r\n try {\r\n await validateIndexedDBOpenable();\r\n }\r\n catch (e) {\r\n logger.warn(ERROR_FACTORY.create(\"indexeddb-unavailable\" /* AnalyticsError.INDEXEDDB_UNAVAILABLE */, {\r\n errorInfo: e === null || e === void 0 ? void 0 : e.toString()\r\n }).message);\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Initialize the analytics instance in gtag.js by calling config command with fid.\r\n *\r\n * NOTE: We combine analytics initialization and setting fid together because we want fid to be\r\n * part of the `page_view` event that's sent during the initialization\r\n * @param app Firebase app\r\n * @param gtagCore The gtag function that's not wrapped.\r\n * @param dynamicConfigPromisesList Array of all dynamic config promises.\r\n * @param measurementIdToAppId Maps measurementID to appID.\r\n * @param installations _FirebaseInstallationsInternal instance.\r\n *\r\n * @returns Measurement ID.\r\n */\r\nasync function _initializeAnalytics(app, dynamicConfigPromisesList, measurementIdToAppId, installations, gtagCore, dataLayerName, options) {\r\n var _a;\r\n const dynamicConfigPromise = fetchDynamicConfigWithRetry(app);\r\n // Once fetched, map measurementIds to appId, for ease of lookup in wrapped gtag function.\r\n dynamicConfigPromise\r\n .then(config => {\r\n measurementIdToAppId[config.measurementId] = config.appId;\r\n if (app.options.measurementId &&\r\n config.measurementId !== app.options.measurementId) {\r\n logger.warn(`The measurement ID in the local Firebase config (${app.options.measurementId})` +\r\n ` does not match the measurement ID fetched from the server (${config.measurementId}).` +\r\n ` To ensure analytics events are always sent to the correct Analytics property,` +\r\n ` update the` +\r\n ` measurement ID field in the local config or remove it from the local config.`);\r\n }\r\n })\r\n .catch(e => logger.error(e));\r\n // Add to list to track state of all dynamic config promises.\r\n dynamicConfigPromisesList.push(dynamicConfigPromise);\r\n const fidPromise = validateIndexedDB().then(envIsValid => {\r\n if (envIsValid) {\r\n return installations.getId();\r\n }\r\n else {\r\n return undefined;\r\n }\r\n });\r\n const [dynamicConfig, fid] = await Promise.all([\r\n dynamicConfigPromise,\r\n fidPromise\r\n ]);\r\n // Detect if user has already put the gtag