{"version":3,"file":"js/proxy-fe1371379b3342e79ef0.js","mappings":"whEAwBA,SAASA,EAAmBC,EAAmBC,EAAsBC,GACnE,IAAIC,EACAC,OAAOC,aAA6C,oBAAvBD,OAAOC,YACtCF,EAAQ,IAAIE,YAAYL,EAAW,CAAEM,OAAQJ,KAE7CC,EAAQI,SAASC,YAAY,gBACvBC,gBAAgBT,GAAW,GAAO,EAAOE,GAEjDD,EAAQS,cAAcP,EACxB,CAXAC,OAAOO,IAAMP,OAAOO,KAAO,GAa3B,IAAMC,EAAwG,CAAC,EAEzGC,EAAW,SACfC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAa,GACjB,OAAQH,GACN,IAAK,SACHG,EAAU,sCAAAC,OAAyCC,mBAAmBP,IACtE,MACF,IAAK,QACHK,EAAU,yCAAAC,OAA4CC,mBAAmBP,GAAI,kDAAAM,OAC3EF,GAAW,QAEb,MACF,IAAK,SACHC,EAAU,0CAAAC,OAA6CC,mBAAmBP,IAI9E,IAAMQ,EAAc,WAAO,IAADC,EAAAC,EAAAC,SACjBb,EAAOE,GACd,IAAMY,EAAgC,QAAXH,EAAGhB,gBAAQ,IAAAgB,OAAA,EAARA,EAAUI,cAAc,oBAADP,OAAqBL,IACpEa,EAAuC,QAAXJ,EAAGjB,gBAAQ,IAAAiB,OAAA,EAARA,EAAUG,cAAc,4BAADP,OAA6BL,IACnFc,EAA6B,QAAXJ,EAAGlB,gBAAQ,IAAAkB,OAAA,EAARA,EAAUE,cAAc,0BAADP,OAA2BL,IAE7EW,EAAsBI,MAAMC,QAAU,OAClCF,EAAoBA,EAAmBC,MAAMC,QAAU,QACtDH,EAA6BE,MAAMC,QAAU,OACpD,EAEAnB,EAAOE,GACLF,EAAOE,IAEPkB,MAAMb,EAAY,CAChBc,QAAS,CACPC,OAAQ,sBAGTC,MAAK,SAACC,GAIL,OAHKA,EAASC,IACZf,IAEKc,EAASE,MAClB,IAAE,OACK,WACLhB,GACF,IAEJV,EAAOE,GACJqB,MAAK,SAACjC,GACLe,EAAS,CAAEsB,cAAerC,EAAKqC,cAAeC,KAAMtC,EAAKsC,KAAMC,YAAavC,EAAKuC,aACnF,IAAE,OACK,WACLnB,GACF,GACJ,EAEMoB,EAAkB,SAACzC,EAAsB0C,EAAkBC,EAAuBC,GACjF5C,EAAQ6C,aAAa,iBACxBd,MAAM,+BAAiCW,EAAU,CAC/CI,OAAQ,OACRC,KAAMC,KAAKC,UAAU,CAAEN,cAAeA,EAAeC,SAAUA,IAC/DZ,QAAS,CACPC,OAAQ,mBACR,eAAgB,sBAGpBjC,EAAQkD,aAAa,cAAe,QAExC,EA0JaC,EAAkB,SAACnD,GAE9B,OADiBA,EAAQ6C,aAAa,kBAEpC,IAAK,SA3JU,SAAC7C,GAClB,IAAMoD,EAAWpD,EAAQ6C,aAAa,kBAChC9B,EAAWf,EAAQ6C,aAAa,iBAChCH,EAAW1C,EAAQ6C,aAAa,iBAChCF,EAAgB3C,EAAQ6C,aAAa,gBACrCD,EAAW5C,EAAQ6C,aAAa,iBAChC5B,EAAUjB,EAAQ6C,aAAa,sBAEjCO,GACFxC,EACEwC,EACAV,EACA3B,GACA,SAACsC,GACC,GAAS,OAALA,QAAK,IAALA,GAAAA,EAAOd,KAAM,CACfvC,EAAQsD,UAAYD,EAAMd,KAC1B,IAAMgB,EAASvD,EAAQ0B,cAAc,UACrC,GAAI6B,EAAQ,CACV,IAAMC,EAAS,IAAIC,EAAAA,EAAOF,GAEtBb,GAAYC,GAAiBC,GAC/BY,EAAOE,GAAG,QAAQ,WAChBjB,EAAgBzC,EAAS0C,EAAUC,EAAeC,EACpD,IAEFY,EAAOE,GAAG,UAAU,WAClB5D,EAAmB,yBAA0BE,EAASwD,EACxD,IAEAA,EAAOE,GAAG,SAAS,WACjB5D,EAAmB,wBAAyBE,EAASwD,EACvD,GACF,CACF,CACF,GACAvC,EAGN,CAsHM0C,CAAW3D,GACX,MAEF,IAAK,UAvHW,SAACA,GACnB,IAAMoD,EAAWpD,EAAQ6C,aAAa,kBAChC9B,EAAWf,EAAQ6C,aAAa,iBAChCH,EAAW1C,EAAQ6C,aAAa,iBAChCe,EAAW5D,EAAQ6C,aAAa,oBAChCF,EAAgB3C,EAAQ6C,aAAa,gBACrCD,EAAW5C,EAAQ6C,aAAa,iBAElCO,GAGFxC,EAASwC,EAAUV,EAAU3B,GAAU,SAACsC,GAC7B,OAALA,QAAK,IAALA,GAAAA,EAAOd,MAAQqB,IACjB5D,EAAQsD,UAAYD,EAAMd,KAC1BpC,OAAOO,IAAImD,KAAK,CACd/C,GAAI8C,EACJE,QAAS,SAACC,GACJrB,GAAYC,GAAiBC,GAC/BmB,EAAYC,KAAK,QAAQ,WACvBvB,EAAgBzC,EAAS0C,EAAUC,EAAeC,EACpD,IAEFmB,EAAYC,KAAK,OAAO,WACtBlE,EAAmB,wBAAyBE,EAAS+D,EACvD,IAEAjE,EAAmB,yBAA0BE,EAAS+D,EACxD,IAGN,GAEJ,CAwFME,CAAYjE,GACZ,MAEF,IAAK,UAzFW,SAACA,GACnB,IAAMoD,EAAWpD,EAAQ6C,aAAa,kBAChC9B,EAAWf,EAAQ6C,aAAa,iBAChCH,EAAW1C,EAAQ6C,aAAa,iBAChCqB,EAAWlE,EAAQ6C,aAAa,oBAChCF,EAAgB3C,EAAQ6C,aAAa,gBACrCD,EAAW5C,EAAQ6C,aAAa,iBAElCO,GACFxC,EAASwC,EAAUV,EAAU3B,GAAU,SAACsC,GACtC,GAAS,OAALA,QAAK,IAALA,GAAAA,EAAOd,MAAQ2B,EAAU,CAC3BlE,EAAQsD,UAAYD,EAAMd,KAC1B,IAAMiB,EAAS,IAAIrD,OAAOgE,GAAGV,OAAO,CAAEW,QAASF,IAE3CxB,GAAYC,GAAiBC,IAC/BY,EAAOQ,KAAK,QAAQ,WAClBvB,EAAgBzC,EAAS0C,EAAUC,EAAeC,EACpD,IAEAY,EAAOQ,KAAK,SAAS,WACnBlE,EAAmB,yBAA0BE,EAASwD,EACxD,IAEAA,EAAOQ,KAAK,aAAa,WACvBlE,EAAmB,wBAAyBE,EAASwD,EACvD,IAEJ,CACF,GAEJ,CA4DMa,CAAYrE,GACZ,MACF,IAAK,aACCA,aAAmBsE,kBA7DL,SAACtE,GACvB,IAAM0C,EAAW1C,EAAQ6C,aAAa,iBAChCF,EAAgB3C,EAAQ6C,aAAa,gBACrCD,EAAW5C,EAAQ6C,aAAa,iBAEtC7C,EAAQuE,iBAAiB,UAAUC,SAAQ,SAACC,GAC1C,IAAM5D,EAAM4D,EAAO5B,aAAa,OAC1B6B,EAAWpE,SAASqE,eAAe,sBAAwBjC,GAEjE,SAASkC,IACF/D,GAGLkB,MAAMlB,EAAK,CAAEiC,OAAQ,SAClBZ,MAAK,SAACC,GACDA,EAASC,IACXpC,EAAQ6E,OACA,OAARH,QAAQ,IAARA,GAAAA,EAAU7C,MAAMiD,YAAY,UAAW,QACvC9E,EAAQ6B,MAAMiD,YAAY,UAAW,SACrCC,cAAcC,KAEN,OAARN,QAAQ,IAARA,GAAAA,EAAU7C,MAAMiD,YAAY,UAAW,SACvC9E,EAAQ6B,MAAMiD,YAAY,UAAW,QAEzC,IAAE,OACK,WACG,OAARJ,QAAQ,IAARA,GAAAA,EAAU7C,MAAMiD,YAAY,UAAW,SACvC9E,EAAQ6B,MAAMiD,YAAY,UAAW,OACvC,GACJ,CAEAF,IACA,IAAMI,EAAaC,YAAYL,EAAc,IAC/C,IAEIlC,GAAYE,GAAYD,IAC1B3C,EAAQkF,iBAAiB,QAAQ,WAC/BzC,EAAgBzC,EAAS0C,EAAUC,EAAeC,EACpD,IAEA5C,EAAQkF,iBAAiB,eAAe,SAAUC,GAChDA,EAAEC,gBACJ,IAEJ,CAkBQC,CAAgBrF,GAIxB,EAEasF,EAA2B,SAACtF,GACvC,IAAMoD,EAAWpD,EAAQ6C,aAAa,kBAChC9B,EAAWf,EAAQ6C,aAAa,iBAChCH,EAAW1C,EAAQ6C,aAAa,iBAClCO,GACFxC,EAASwC,EAAUV,EAAU3B,GAAU,SAACsC,GAC7B,OAALA,QAAK,IAALA,GAAAA,EAAOf,eAAetC,EAAQkD,aAAa,MAAOG,EAAMf,cAC9D,GACJ,EAEaiD,EAA6B,SAACvF,GACzC,IAAMe,EAAWf,EAAQ6C,aAAa,iBACtC,GAAiB,UAAb9B,EAAsB,CACxB,IAAM2B,EAAW1C,EAAQ6C,aAAa,iBAChCO,EAAWpD,EAAQ6C,aAAa,kBAClCO,GACFxC,EAASwC,EAAUV,EAAU3B,GAAU,SAACsC,GACtC,GAAS,OAALA,QAAK,IAALA,GAAAA,EAAOb,YAAa,CACtB,IAAMgD,EAAqBlF,SAASqE,eAAe,+BAAiCjC,GAChF8C,IAAoBA,EAAmBlC,UAAYD,EAAMb,YAAYiD,QAAQ,kBAAmB,SACtG,CACF,GACJ,CACF,EAEaC,EAA4B,SAACC,IAC1BA,GAAUrF,UAElBiE,iBAA8B,wBAAwBC,SAAQ,SAACoB,GACnEN,EAAyBM,EAC3B,GACF,EAEaC,EAA8B,SAACF,IAC5BA,GAAUrF,UAElBiE,iBAA8B,uCAAuCC,SAAQ,SAACoB,GAClFL,EAA2BK,EAC7B,GACF,EAEaE,EAAmB,SAACH,IACjBA,GAAUrF,UAClBiE,iBAA8B,oBAAoBC,SAAQ,SAACoB,GAC/DzC,EAAgByC,EAClB,GACF,EC7TaG,EAAkB,SAAC/F,GAC9B,IAAMgG,EAAUhG,EAAQ6C,aAAa,gBAC/BF,EAAgB3C,EAAQ6C,aAAa,gBACrCD,EAAW5C,EAAQ6C,aAAa,iBAClCmD,GAAWpD,GAAYD,GACzB3C,EAAQkF,iBAAiB,QAAQ,YAnBX,SAAClF,EAAsBgG,EAAiBrD,EAAuBC,GAClF5C,EAAQ6C,aAAa,iBACxBd,MAAM,+BAAiCiE,EAAS,CAC9ClD,OAAQ,OACRC,KAAMC,KAAKC,UAAU,CAAEN,cAAeA,EAAeC,SAAUA,IAC/DZ,QAAS,CACPC,OAAQ,mBACR,eAAgB,sBAGpBjC,EAAQkD,aAAa,cAAe,QAExC,CAQM+C,CAAkBjG,EAASgG,EAASrD,EAAeC,EACrD,GAEJ,EAEasD,EAAmB,SAACP,IACjBA,GAAUrF,UAElBiE,iBAAmC,yBAAyBC,SAAQ,SAACoB,GACzEG,EAAgBH,EAClB,GACF,E,WCjBIO,EAA8B,KAC9BC,EAAqC,KAEzC,SAASC,EAAYlB,GAAoC,IAADmB,EAC7C,QAATA,EAAAH,SAAS,IAAAG,GAATA,EAAWC,OACXpB,EAAEC,gBACJ,CAEA,SAASoB,EAAYrB,GAAoC,IAADsB,EAC7C,QAATA,EAAAN,SAAS,IAAAM,GAATA,EAAWC,OACXvB,EAAEC,gBACJ,CAGA9E,SAAS4E,iBAAiB,WAAW,SAAUhF,GACZ,IAADyG,EAMDC,EANb,eAAd1G,EAAM2G,MACR3G,EAAMkF,iBAGG,QAATuB,EAAAR,SAAS,IAAAQ,GAATA,EAAWJ,QAEK,cAAdrG,EAAM2G,MACR3G,EAAMkF,iBAGG,QAATwB,EAAAT,SAAS,IAAAS,GAATA,EAAWF,OAEf,IAEO,IAAMI,EAAiB,WAAO,IAADC,EAAAC,EAC5BC,EAAa3G,SAASiE,iBAA8B,gBAAgB,GAC1E,GAAK0C,EAAL,CAEAA,EAAWpF,MAAMC,QAAU,QAC3B,IAAM9B,EAAUM,SAASiE,iBAA8B,0BAA0B,GACjF,GAAKvE,EAAL,CAEAA,EAAQkH,UAAUC,IAAI,WACtB,IAAMtG,EAAMb,EAAQ6C,aAAa,iBAC3BuE,EAAcpH,EAAQ6C,aAAa,gBACnCwE,EAAUrH,EAAQ6C,aAAa,iBAC/ByE,EAAStH,EAAQ6C,aAAa,gBAC9B0E,EAAWvH,EAAQ6C,aAAa,mBAAqB,GAC3D,GAAKhC,EAAL,CAGA,IAAM2G,EAAeC,SAASF,EAAU,IAClCG,EAAOH,EAASI,MAAM,KAAK,GACjC,IAAc,OAATD,GAAiBF,GAAgB,IAAgB,OAATE,KACtCE,QAAQ,2DAGX,OAFA5H,EAAQkH,UAAUW,OAAO,gBACzBZ,EAAWpF,MAAMC,QAAU,QAK/B,IAAMgG,GAAOC,EAAAA,EAAAA,IAAKlH,GAClBb,EAAQsD,UAAY,IACpB6C,EAAY2B,EAAKE,SAAShI,EAAS,CACjCiI,QAAS,aACTC,KAAM,YACNC,OAAO,GAADhH,OAAMhB,OAAOiI,YAAc,EAAK,EAAC,MACvCC,MAAM,GAADlH,OAAKhB,OAAOmI,WAAa,KAAO,KAAOnI,OAAOmI,WAAa,GAAE,SAG1D5E,GAAG,aAAa,SAAU6E,GAClCC,aAAaC,QAAQ,gBAAiBF,EAASG,MAAMC,IACvD,IAEAvC,EAAiBpG,EACjB,IAAM4I,EAAgBJ,aAAaK,QAAQ,iBACzB1C,EAAUrE,QAAQ8G,QAAiBE,GAE3C5G,MAAK,WACToF,GAAUD,GAAWD,GACvB2B,EAAe/I,EAASsH,EAAQF,EAAaC,GAE/CrH,EAAQkH,UAAUW,OAAO,UAC3B,IAEAmB,MAAMC,MAAiC,QAA5BlC,EAAAX,EAAe8C,qBAAa,IAAAnC,OAAA,EAA5BA,EAA8BoC,uBAAuB,UAAW,IAAI3E,SAAQ,SAAUxE,GAC/FA,EAAQkF,iBAAiB,QAASsB,GAAa,EACjD,IACAwC,MAAMC,MAAiC,QAA5BjC,EAAAZ,EAAe8C,qBAAa,IAAAlC,OAAA,EAA5BA,EAA8BmC,uBAAuB,UAAW,IAAI3E,SAAQ,SAAUxE,GAC/FA,EAAQkF,iBAAiB,QAASmB,GAAa,EACjD,GA1CgB,CARI,CAJG,CAuDzB,EAEAlG,OAAO2G,eAAiBA,EAuCxB3G,OAAOiJ,WArCmB,SAACpJ,GAES,IAADqJ,EAAAC,EAA7BnD,GAAaC,IACf4C,MAAMC,MAAiC,QAA5BI,EAAAjD,EAAe8C,qBAAa,IAAAG,OAAA,EAA5BA,EAA8BF,uBAAuB,UAAW,IAAI3E,SAAQ,SAAUxE,GACxF,OAAPA,QAAO,IAAPA,GAAAA,EAASuJ,oBAAoB,QAASlD,EACxC,IACA2C,MAAMC,MAAiC,QAA5BK,EAAAlD,EAAe8C,qBAAa,IAAAI,OAAA,EAA5BA,EAA8BH,uBAAuB,UAAW,IAAI3E,SAAQ,SAAUxE,GACxF,OAAPA,QAAO,IAAPA,GAAAA,EAASuJ,oBAAoB,QAAS/C,EACxC,IACAL,EAAUqD,UACVrD,EAAY,KACZC,EAAiB,MAGnB,IAAMvF,EAAMb,EAAQ6C,aAAa,kBAAoB,GAC/CuE,EAAcpH,EAAQ6C,aAAa,iBAAmB,GACtDwE,EAAUrH,EAAQ6C,aAAa,kBAAoB,GACnDyE,EAAStH,EAAQ6C,aAAa,iBAAmB,GACjD0E,EAAWvH,EAAQ6C,aAAa,mBAAqB,GACrD4G,EAAczJ,EAAQ6C,aAAa,sBAAwB,GAE3D6G,EAAYpJ,SAASiE,iBAA8B,0BAA0B,GAEnFmF,EAAUxG,aAAa,gBAAiBrC,GACxC6I,EAAUxG,aAAa,eAAgBkE,GACvCsC,EAAUxG,aAAa,gBAAiBmE,GACxCqC,EAAUxG,aAAa,eAAgBoE,GACvCoC,EAAUxG,aAAa,iBAAkBqE,GACzCmC,EAAUxG,aAAa,oBAAqBuG,GAG5C3C,IAEAxG,SAASiE,iBAA8B,wBAAwBC,SAAQ,SAACmF,GAAI,OAAKA,EAAKzC,UAAUW,OAAO,SAAS,IAChH7H,EAAQkH,UAAUC,IAAI,SACxB,EAIA,IAAM4B,EAAiB,SAAC/I,EAAsBsH,EAAgBF,EAAqBC,GAC5ErH,EAAQ6C,aAAa,iBACxBd,MAAM,8BAAgCuF,EAAQ,CAC5CxE,OAAQ,OACRC,KAAMC,KAAKC,UAAU,CAAEN,cAAeyE,EAAaxE,SAAUyE,IAC7DrF,QAAS,CACPC,OAAQ,mBACR,eAAgB,sBAGpBjC,EAAQkD,aAAa,cAAe,QAExC,EAQA/C,OAAOyJ,aANc,SAAC5J,GAA0B,IAAD6J,EACvCC,GAA+B,QAArBD,EAAA7J,EAAQkJ,qBAAa,IAAAW,GAAe,QAAfA,EAArBA,EAAuBX,qBAAa,IAAAW,OAAA,EAApCA,EAAsChH,aAAa,uBAAwB,GACrF8G,EAAOrJ,SAASyJ,cAAc,KACpCJ,EAAKK,KAAOF,EACZH,EAAKM,OACP,EClKA,IAcaC,EAAwB,SAAClK,GACpC,IAAMgG,EAAUhG,EAAQ6C,aAAa,gBAC/BF,EAAgB3C,EAAQ6C,aAAa,gBACrCD,EAAW5C,EAAQ6C,aAAa,iBAClCmD,GAAWpD,GAAYD,GACzB3C,EAAQkF,iBAAiB,QAAQ,YAnBL,SAAClF,EAAsBgG,EAAiBrD,EAAuBC,GACxF5C,EAAQ6C,aAAa,iBACxBd,MAAM,sCAAwCiE,EAAS,CACrDlD,OAAQ,OACRC,KAAMC,KAAKC,UAAU,CAAEN,cAAeA,EAAeC,SAAUA,IAC/DZ,QAAS,CACPC,OAAQ,mBACR,eAAgB,sBAGpBjC,EAAQkD,aAAa,cAAe,QAExC,CAQMiH,CAAwBnK,EAASgG,EAASrD,EAAeC,EAC3D,GAEJ,EAEawH,EAAyB,SAACzE,IACvBA,GAAUrF,UAElBiE,iBAAmC,gCAAgCC,SAAQ,SAACoB,GAChFsE,EAAsBtE,EACxB,GACF,E,4/BCLAF,IACAG,IACAK,IACAkE,IAEA9J,SAASiE,iBAA8B,uCAAuCC,SAAQ,SAACoB,GACrFL,EAA2BK,EAC7B,IAE4D,qBAAjDtF,SAAS+J,qCAClBvE,IAGF,IAAMwE,EAAM,CACVnH,gBAAAA,EACAoC,2BAAAA,EACAD,yBAAAA,EACAQ,iBAAAA,EACAD,4BAAAA,EACAH,0BAAAA,EACAQ,iBAAAA,EACAH,gBAAAA,EACAe,eAAAA,EACAsD,uBAAAA,EACAF,sBAAAA,EACAK,uBAAwB,SAACvK,GACvBwK,QAAQC,KACN,iJAEFtH,EAAgBnD,EAClB,EACA0K,2BAA4B,SAAC1K,GAC3BwK,QAAQC,KACN,iJAEFnF,EAAyBtF,EAC3B,EACA2K,6BAA8B,SAAC3K,GAC7BwK,QAAQC,KACN,iJAEFlF,EAA2BvF,EAC7B,GAGF,SAAS4K,EAAuBC,GAC9BvK,SAASiE,iBAA8B,8CAA8CC,SAAQ,SAACoB,GAC5FA,EAAGkF,QAAU,WAAO,IAADC,EAAAC,EACbC,EAA0CrF,EAAGsF,QAAQ,wBACpDD,IAASA,EAA0C,QAAnCF,EAAGnF,EAAGsF,QAAQ,6BAAqB,IAAAH,OAAA,EAAhCA,EAAkC7B,eACtD+B,IAAYA,EAAQ/D,UAAUiE,SAAS,0BAAyBF,EAAQ3H,UAAYuH,GAAsB,QAAVG,EAAGC,SAAO,IAAAD,OAAA,EAAPA,EAAS1H,YAC5G2H,GAASA,EAAQ/D,UAAUC,IAAI,uBACrC,CACF,GACF,CAQA,GAFAhH,OAAOiL,oBAJ4B,SAACxF,GAAsB,IAADyF,EAAAC,EACrD,OAAF1F,QAAE,IAAFA,GAAoC,QAAlCyF,EAAFzF,EAAIsF,QAAQ,gCAAwB,IAAAG,GAAW,QAAXA,EAApCA,EAAsCnE,iBAAS,IAAAmE,GAA/CA,EAAiDxD,OAAO,wBACtD,OAAFjC,QAAE,IAAFA,GAAgC,QAA9B0F,EAAF1F,EAAIsF,QAAQ,4BAAoB,IAAAI,GAAhCA,EAAkCzD,QACpC,GAGI0D,EAAAA,EAAAA,MAAU,CAQZX,EAPW,gmBAQb,CAEA,IAAMY,EAAYrL,OAAOqL,UAEnBC,EADYD,EAAUE,UACUC,cAEhCC,EAAcJ,EAAkBI,WAEhCC,EAAQ,iBAAiBC,KAAKL,IAAgD,aAAvBD,EAAUO,UAA2BP,EAAUQ,eAAiB,EACvHC,EAAY,UAAUH,KAAKL,GAC3BS,EAAW,SAASJ,KAAKL,GAE/B,GADmBQ,GAAa,SAASH,KAAKL,IAA0BI,IAAUD,IAAeM,EAClF,CASbtB,EARW,siBASb,CAEAzK,OAAOgM,SACsB,qBAApBhM,OAAOgM,SACV7B,EAAG8B,EAAAA,EAAA,GAEEjM,OAAOgM,UACP7B,E","sources":["webpack:///./app/javascript/lib/proxy/videos.ts","webpack:///./app/javascript/lib/proxy/audios.ts","webpack:///./app/javascript/lib/proxy/epub.ts","webpack:///./app/javascript/lib/proxy/native_videos.ts","webpack:///./app/javascript/packs/proxy.ts"],"sourcesContent":["import Player from '@vimeo/player'\n\nexport type VideoEventType = {\n play: () => void\n}\n\nexport type SproutVideoPlayer = {\n bind: (eventName: string, callback: () => void) => void\n play: () => void\n}\n\ndeclare global {\n interface Window {\n _wq: { id: string; onReady?: (video: { bind: (eventName: string, callback: () => void) => void; play: () => void }) => void }[]\n SV: {\n Player: {\n new (params: { videoId: string }): SproutVideoPlayer\n }\n }\n }\n}\n\nwindow._wq = window._wq || []\n\nfunction dispatchVideoEvent(eventName: string, element: HTMLElement, data?: VideoEventType) {\n let event: CustomEvent\n if (window.CustomEvent && typeof window.CustomEvent === 'function') {\n event = new CustomEvent(eventName, { detail: data })\n } else {\n event = document.createEvent('CustomEvent')\n event.initCustomEvent(eventName, false, false, data)\n }\n element.dispatchEvent(event)\n}\n\nconst videos: { [index: string]: Promise<{ html?: string; thumbnail_url?: string; description?: string }> } = {}\n\nconst getVideo = (\n url: string,\n id: string | null,\n provider: string | null,\n callback: (video?: { html?: string; thumbnail_url?: string; description?: string }) => void,\n quality?: string | null\n) => {\n let oembed_url = ''\n switch (provider) {\n case 'wistia':\n oembed_url = `https://fast.wistia.com/oembed?url=${encodeURIComponent(url)}`\n break\n case 'vimeo':\n oembed_url = `https://vimeo.com/api/oembed.json?url=${encodeURIComponent(url)}&width=640&maxwidth=720&maxheight=480&quality=${\n quality || 'auto'\n }`\n break\n case 'sprout':\n oembed_url = `/apps/downloads/sprout_oembed.json?url=${encodeURIComponent(url)}`\n break\n }\n\n const handleError = () => {\n delete videos[url]\n const streamingVideoElement = document?.querySelector(`#streaming-video-${id}`) as HTMLElement\n const streamingVideoMissingElement = document?.querySelector(`#streaming-video-missing-${id}`) as HTMLElement\n const nativeVideoElement = document?.querySelector(`#fallback-native-video-${id}`) as HTMLElement\n\n streamingVideoElement.style.display = 'none'\n if (nativeVideoElement) nativeVideoElement.style.display = 'block'\n else streamingVideoMissingElement.style.display = 'block'\n }\n\n videos[url] =\n videos[url] ||\n // eslint-disable-next-line compat/compat\n fetch(oembed_url, {\n headers: {\n Accept: 'application/json',\n },\n })\n .then((response) => {\n if (!response.ok) {\n handleError()\n }\n return response.json()\n })\n .catch(() => {\n handleError()\n })\n\n videos[url]\n .then((data) => {\n callback({ thumbnail_url: data.thumbnail_url, html: data.html, description: data.description })\n })\n .catch(() => {\n handleError()\n })\n}\n\nconst recordVideoView = (element: HTMLElement, video_id: string, order_item_id: string, order_id: string) => {\n if (!element.getAttribute('data-played')) {\n fetch('/apps/downloads/video_views/' + video_id, {\n method: 'post',\n body: JSON.stringify({ order_item_id: order_item_id, order_id: order_id }),\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n })\n element.setAttribute('data-played', 'true')\n }\n}\n\nconst VimeoVideo = (element: HTMLElement) => {\n const videoUrl = element.getAttribute('data-video-url')\n const provider = element.getAttribute('data-provider')\n const video_id = element.getAttribute('data-video-id')\n const order_item_id = element.getAttribute('data-item-id')\n const order_id = element.getAttribute('data-order-id')\n const quality = element.getAttribute('data-video-quality')\n\n if (videoUrl) {\n getVideo(\n videoUrl,\n video_id,\n provider,\n (video) => {\n if (video?.html) {\n element.innerHTML = video.html\n const iframe = element.querySelector('iframe')\n if (iframe) {\n const player = new Player(iframe)\n\n if (video_id && order_item_id && order_id)\n player.on('play', function () {\n recordVideoView(element, video_id, order_item_id, order_id)\n })\n\n player.on('loaded', function () {\n dispatchVideoEvent('sky-pilot-video-loaded', element, player)\n })\n\n player.on('ended', function () {\n dispatchVideoEvent('sky-pilot-video-ended', element, player)\n })\n }\n }\n },\n quality\n )\n }\n}\n\nconst WistiaVideo = (element: HTMLElement) => {\n const videoUrl = element.getAttribute('data-video-url')\n const provider = element.getAttribute('data-provider')\n const video_id = element.getAttribute('data-video-id')\n const wistiaId = element.getAttribute('data-provider-id')\n const order_item_id = element.getAttribute('data-item-id')\n const order_id = element.getAttribute('data-order-id')\n\n if (videoUrl) {\n //TODO: Use async?\n // getVideo(`${videoUrl}?embedType=async`, provider, (video) => {\n getVideo(videoUrl, video_id, provider, (video) => {\n if (video?.html && wistiaId) {\n element.innerHTML = video.html\n window._wq.push({\n id: wistiaId,\n onReady: (wistiaVideo) => {\n if (video_id && order_item_id && order_id)\n wistiaVideo.bind('play', () => {\n recordVideoView(element, video_id, order_item_id, order_id)\n })\n\n wistiaVideo.bind('end', () => {\n dispatchVideoEvent('sky-pilot-video-ended', element, wistiaVideo)\n })\n\n dispatchVideoEvent('sky-pilot-video-loaded', element, wistiaVideo)\n },\n })\n }\n })\n }\n}\n\nconst SproutVideo = (element: HTMLElement) => {\n const videoUrl = element.getAttribute('data-video-url')\n const provider = element.getAttribute('data-provider')\n const video_id = element.getAttribute('data-video-id')\n const sproutId = element.getAttribute('data-provider-id')\n const order_item_id = element.getAttribute('data-item-id')\n const order_id = element.getAttribute('data-order-id')\n\n if (videoUrl) {\n getVideo(videoUrl, video_id, provider, (video) => {\n if (video?.html && sproutId) {\n element.innerHTML = video.html\n const player = new window.SV.Player({ videoId: sproutId })\n\n if (video_id && order_item_id && order_id) {\n player.bind('play', function () {\n recordVideoView(element, video_id, order_item_id, order_id)\n })\n\n player.bind('ready', function () {\n dispatchVideoEvent('sky-pilot-video-loaded', element, player)\n })\n\n player.bind('completed', function () {\n dispatchVideoEvent('sky-pilot-video-ended', element, player)\n })\n }\n }\n })\n }\n}\n\nconst CloudinaryVideo = (element: HTMLVideoElement) => {\n const video_id = element.getAttribute('data-video-id')\n const order_item_id = element.getAttribute('data-item-id')\n const order_id = element.getAttribute('data-order-id')\n\n element.querySelectorAll('source').forEach((source) => {\n const url = source.getAttribute('src')\n const errorDiv = document.getElementById('video-source-error-' + video_id)\n\n function fetchRequest() {\n if (!url) return\n\n // eslint-disable-next-line compat/compat\n fetch(url, { method: 'HEAD' })\n .then((response) => {\n if (response.ok) {\n element.load()\n errorDiv?.style.setProperty('display', 'none')\n element.style.setProperty('display', 'block')\n clearInterval(intervalId)\n } else {\n errorDiv?.style.setProperty('display', 'block')\n element.style.setProperty('display', 'none')\n }\n })\n .catch(() => {\n errorDiv?.style.setProperty('display', 'block')\n element.style.setProperty('display', 'none')\n })\n }\n\n fetchRequest()\n const intervalId = setInterval(fetchRequest, 20000)\n })\n\n if (video_id && order_id && order_item_id) {\n element.addEventListener('play', function () {\n recordVideoView(element, video_id, order_item_id, order_id)\n })\n\n element.addEventListener('contextmenu', function (e) {\n e.preventDefault()\n })\n }\n}\n\nexport const initializeVideo = (element: HTMLElement) => {\n const provider = element.getAttribute('data-provider')\n switch (provider) {\n case 'vimeo':\n VimeoVideo(element)\n break\n\n case 'wistia':\n WistiaVideo(element)\n break\n\n case 'sprout':\n SproutVideo(element)\n break\n case 'cloudinary':\n if (element instanceof HTMLVideoElement) {\n CloudinaryVideo(element as HTMLVideoElement)\n }\n break\n }\n}\n\nexport const initializeVideoThumbnail = (element: HTMLElement) => {\n const videoUrl = element.getAttribute('data-video-url')\n const provider = element.getAttribute('data-provider')\n const video_id = element.getAttribute('data-video-id')\n if (videoUrl)\n getVideo(videoUrl, video_id, provider, (video) => {\n if (video?.thumbnail_url) element.setAttribute('src', video.thumbnail_url)\n })\n}\n\nexport const initializeVideoDescription = (element: HTMLElement) => {\n const provider = element.getAttribute('data-provider')\n if (provider === 'vimeo') {\n const video_id = element.getAttribute('data-video-id')\n const videoUrl = element.getAttribute('data-video-url')\n if (videoUrl)\n getVideo(videoUrl, video_id, provider, (video) => {\n if (video?.description) {\n const descriptionElement = document.getElementById('sky-pilot-embed-description-' + video_id)\n if (descriptionElement) descriptionElement.innerHTML = video.description.replace(/(?:\\r\\n|\\r|\\n)/g, '
')\n }\n })\n }\n}\n\nexport const initializeVideoThumbnails = (parent?: HTMLElement) => {\n const scope = parent || document\n\n scope.querySelectorAll('.sky-pilot-thumbnail').forEach((el) => {\n initializeVideoThumbnail(el)\n })\n}\n\nexport const initializeVideoDescriptions = (parent?: HTMLElement) => {\n const scope = parent || document\n\n scope.querySelectorAll('.sky-pilot-embed-description-remote').forEach((el) => {\n initializeVideoDescription(el)\n })\n}\n\nexport const initializeVideos = (parent?: HTMLElement) => {\n const scope = parent || document\n scope.querySelectorAll('.sky-pilot-embed').forEach((el) => {\n initializeVideo(el)\n })\n}\n","const recordAudioPlayed = (element: HTMLElement, file_id: string, order_item_id: string, order_id: string) => {\n if (!element.getAttribute('data-played')) {\n fetch('/apps/downloads/audio_plays/' + file_id, {\n method: 'post',\n body: JSON.stringify({ order_item_id: order_item_id, order_id: order_id }),\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n })\n element.setAttribute('data-played', 'true')\n }\n}\n\nexport const initializeAudio = (element: HTMLAudioElement) => {\n const file_id = element.getAttribute('data-file-id')\n const order_item_id = element.getAttribute('data-item-id')\n const order_id = element.getAttribute('data-order-id')\n if (file_id && order_id && order_item_id) {\n element.addEventListener('play', function () {\n recordAudioPlayed(element, file_id, order_item_id, order_id)\n })\n }\n}\n\nexport const initializeAudios = (parent?: HTMLElement) => {\n const scope = parent || document\n\n scope.querySelectorAll('audio.sky-pilot-audio').forEach((el) => {\n initializeAudio(el)\n })\n}\n","import ePub, { Rendition } from 'epubjs'\n\ndeclare global {\n interface Window {\n initializeEpub: (element: HTMLElement) => void\n switchEpub: (element: HTMLElement) => void\n downloadFile: (element: HTMLElement) => void\n }\n}\n\nexport type Section = {\n href: string\n}\n\nlet rendition: Rendition | null = null\nlet currentElement: HTMLElement | null = null\n\nfunction nextHandler(e: { preventDefault: () => void }) {\n rendition?.next()\n e.preventDefault()\n}\n\nfunction prevHandler(e: { preventDefault: () => void }) {\n rendition?.prev()\n e.preventDefault()\n}\n\n// Add keydown event listener for arrow key detection\ndocument.addEventListener('keydown', function (event) {\n if (event.key === 'ArrowRight') {\n event.preventDefault() // Prevent default behavior of arrow key\n\n // Go to the next page\n rendition?.next()\n }\n if (event.key === 'ArrowLeft') {\n event.preventDefault() // Prevent default behavior of arrow key\n\n // Go to the next page\n rendition?.prev()\n }\n})\n\nexport const initializeEpub = () => {\n const epubReader = document.querySelectorAll('.epub-reader')[0]\n if (!epubReader) return\n\n epubReader.style.display = 'block'\n const element = document.querySelectorAll('.sky-pilot-epub-viewer')[0]\n if (!element) return\n\n element.classList.add('loading')\n const url = element.getAttribute('data-epub-url')\n const orderItemId = element.getAttribute('data-item-id')\n const orderId = element.getAttribute('data-order-id')\n const fileId = element.getAttribute('data-file-id')\n const fileSize = element.getAttribute('data-file-size') || ''\n if (!url) return\n\n // warn if big file is about to be downloaded\n const numericValue = parseInt(fileSize, 10)\n const unit = fileSize.split(' ')[1]\n if ((unit === 'MB' && numericValue >= 20) || unit === 'GB') {\n if (!confirm('EBook size is over 20MB. Loading can be slow. Continue?')) {\n element.classList.remove('loading')\n epubReader.style.display = 'none'\n return\n }\n }\n\n const book = ePub(url)\n element.innerHTML = ''\n rendition = book.renderTo(element, {\n manager: 'continuous',\n flow: 'paginated',\n height: `${(window.innerHeight / 3) * 2}px`,\n width: `${window.innerWidth > 1100 ? 1100 : window.innerWidth - 20}px`,\n })\n\n rendition.on('relocated', function (location: { start: { cfi: string } }) {\n localStorage.setItem('savedPosition', location.start.cfi)\n })\n\n currentElement = element\n const savedPosition = localStorage.getItem('savedPosition')\n const displayed = rendition.display(savedPosition || undefined)\n\n displayed.then(function () {\n if (fileId && orderId && orderItemId) {\n recordEpubView(element, fileId, orderItemId, orderId)\n }\n element.classList.remove('loading')\n })\n\n Array.from(currentElement.parentElement?.getElementsByClassName('prev') || []).forEach(function (element) {\n element.addEventListener('click', prevHandler, false)\n })\n Array.from(currentElement.parentElement?.getElementsByClassName('next') || []).forEach(function (element) {\n element.addEventListener('click', nextHandler, false)\n })\n}\n\nwindow.initializeEpub = initializeEpub\n\nexport const switchEpub = (element: HTMLElement) => {\n // detach and reset current rendition if present\n if (rendition && currentElement) {\n Array.from(currentElement.parentElement?.getElementsByClassName('next') || []).forEach(function (element) {\n element?.removeEventListener('click', nextHandler)\n })\n Array.from(currentElement.parentElement?.getElementsByClassName('prev') || []).forEach(function (element) {\n element?.removeEventListener('click', prevHandler)\n })\n rendition.destroy()\n rendition = null\n currentElement = null\n }\n\n const url = element.getAttribute('data-epub-url') || ''\n const orderItemId = element.getAttribute('data-item-id') || ''\n const orderId = element.getAttribute('data-order-id') || ''\n const fileId = element.getAttribute('data-file-id') || ''\n const fileSize = element.getAttribute('data-file-size') || ''\n const downloadUrl = element.getAttribute('data-download-url') || ''\n\n const targetDiv = document.querySelectorAll('.sky-pilot-epub-viewer')[0]\n // Set the attributes on the target div element\n targetDiv.setAttribute('data-epub-url', url)\n targetDiv.setAttribute('data-item-id', orderItemId)\n targetDiv.setAttribute('data-order-id', orderId)\n targetDiv.setAttribute('data-file-id', fileId)\n targetDiv.setAttribute('data-file-size', fileSize)\n targetDiv.setAttribute('data-download-url', downloadUrl)\n\n // setup new rendition\n initializeEpub()\n // set as active link\n document.querySelectorAll('.sky-pilot-list-item').forEach((link) => link.classList.remove('active'))\n element.classList.add('active')\n}\n\nwindow.switchEpub = switchEpub\n\nconst recordEpubView = (element: HTMLElement, fileId: string, orderItemId: string, orderId: string) => {\n if (!element.getAttribute('data-viewed')) {\n fetch('/apps/downloads/epub_views/' + fileId, {\n method: 'post',\n body: JSON.stringify({ order_item_id: orderItemId, order_id: orderId }),\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n })\n element.setAttribute('data-viewed', 'true')\n }\n}\n\nconst downloadFile = (element: HTMLElement) => {\n const fileUrl = element.parentElement?.parentElement?.getAttribute('data-download-url') || ''\n const link = document.createElement('a')\n link.href = fileUrl\n link.click()\n}\nwindow.downloadFile = downloadFile\n","const recordNativeVideoPlayed = (element: HTMLElement, file_id: string, order_item_id: string, order_id: string) => {\n if (!element.getAttribute('data-played')) {\n fetch('/apps/downloads/native_video_views/' + file_id, {\n method: 'post',\n body: JSON.stringify({ order_item_id: order_item_id, order_id: order_id }),\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n })\n element.setAttribute('data-played', 'true')\n }\n}\n\nexport const initializeNativeVideo = (element: HTMLVideoElement) => {\n const file_id = element.getAttribute('data-file-id')\n const order_item_id = element.getAttribute('data-item-id')\n const order_id = element.getAttribute('data-order-id')\n if (file_id && order_id && order_item_id) {\n element.addEventListener('play', function () {\n recordNativeVideoPlayed(element, file_id, order_item_id, order_id)\n })\n }\n}\n\nexport const initializeNativeVideos = (parent?: HTMLElement) => {\n const scope = parent || document\n\n scope.querySelectorAll('video.sky-pilot-native-video').forEach((el) => {\n initializeNativeVideo(el)\n })\n}\n","import 'core-js/stable'\nimport 'regenerator-runtime/runtime'\nimport 'whatwg-fetch'\nimport { isEdge } from '@braintree/browser-detection'\nimport {\n initializeVideoThumbnails,\n initializeVideoDescriptions,\n initializeVideos,\n initializeVideoThumbnail,\n initializeVideoDescription,\n initializeVideo,\n} from '../lib/proxy/videos'\nimport { initializeAudios, initializeAudio } from '../lib/proxy/audios'\nimport { initializeEpub } from '../lib/proxy/epub'\nimport { initializeNativeVideos, initializeNativeVideo } from '../lib/proxy/native_videos'\n\ndeclare global {\n interface Window {\n SkyPilot?: Record\n hideDownloadWarning: (element: HTMLElement) => void\n }\n interface Document {\n sky_pilot_skip_video_initialization?: boolean\n }\n}\n\ninitializeVideoThumbnails()\ninitializeVideoDescriptions()\ninitializeAudios()\ninitializeNativeVideos()\n\ndocument.querySelectorAll('.sky-pilot-embed-description-remote').forEach((el) => {\n initializeVideoDescription(el)\n})\n\nif (typeof document.sky_pilot_skip_video_initialization === 'undefined') {\n initializeVideos()\n}\n\nconst Api = {\n initializeVideo,\n initializeVideoDescription,\n initializeVideoThumbnail,\n initializeVideos,\n initializeVideoDescriptions,\n initializeVideoThumbnails,\n initializeAudios,\n initializeAudio,\n initializeEpub,\n initializeNativeVideos,\n initializeNativeVideo,\n initialize_vimeo_video: (element: HTMLElement) => {\n console.warn(\n 'Depricated: SkyPilot.initialize_vimeo_video(element) is depricated and will be removed. Please use SkyPilot.initializeVideo(element) instead'\n )\n initializeVideo(element)\n },\n initialize_vimeo_thumbnail: (element: HTMLElement) => {\n console.warn(\n 'Depricated: SkyPilot.initialize_vimeo_video(element) is depricated and will be removed. Please use SkyPilot.initializeVideo(element) instead'\n )\n initializeVideoThumbnail(element)\n },\n initialize_vimeo_description: (element: HTMLElement) => {\n console.warn(\n 'Depricated: SkyPilot.initialize_vimeo_video(element) is depricated and will be removed. Please use SkyPilot.initializeVideo(element) instead'\n )\n initializeVideoDescription(element)\n },\n}\n\nfunction displayDownloadWarning(elementToAdd: string) {\n document.querySelectorAll('div.sky-pilot-actions > a.sky-pilot-button').forEach((el) => {\n el.onclick = () => {\n let content = el.closest('.sky-pilot-list-item')\n if (!content) content = el.closest('.sky-pilot-actions')?.parentElement\n if (content && !content.classList.contains('has-download-warning')) content.innerHTML = elementToAdd + content?.innerHTML\n if (content) content.classList.add('has-download-warning')\n }\n })\n}\n\nexport const hideDownloadWarning = (el?: HTMLElement) => {\n el?.closest('.has-download-warning')?.classList?.remove('has-download-warning')\n el?.closest('.download-warning')?.remove()\n}\nwindow.hideDownloadWarning = hideDownloadWarning\n\nif (isEdge()) {\n const toAdd = `\n
\n
\n Download didn‘t work? Microsoft Edge can falsely flag files as dangerous and block the download. Use option \"Keep\" in the Downloads menu or use another browser to get the file, all of our files are absolutely safe!\n
\n
\n
`\n displayDownloadWarning(toAdd)\n}\n\nconst navigator = window.navigator\nconst userAgent = navigator.userAgent\nconst normalizedUserAgent = userAgent.toLowerCase()\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst standalone = (navigator as any).standalone\n\nconst isIos = /ip(ad|hone|od)/.test(normalizedUserAgent) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\nconst isAndroid = /android/.test(normalizedUserAgent)\nconst isSafari = /safari/.test(normalizedUserAgent)\nconst isWebview = (isAndroid && /; wv\\)/.test(normalizedUserAgent)) || (isIos && !standalone && !isSafari)\nif (isWebview) {\n const toAdd = `\n
\n
\n Download didn‘t work? Some apps such as Instagram block file downloads! Use option \"Share\" and \"Open in external browser\" to get your files.\n
\n
\n
\n `\n displayDownloadWarning(toAdd)\n}\n\nwindow.SkyPilot =\n typeof window.SkyPilot === 'undefined'\n ? Api\n : {\n ...window.SkyPilot,\n ...Api,\n }\n"],"names":["dispatchVideoEvent","eventName","element","data","event","window","CustomEvent","detail","document","createEvent","initCustomEvent","dispatchEvent","_wq","videos","getVideo","url","id","provider","callback","quality","oembed_url","concat","encodeURIComponent","handleError","_document","_document2","_document3","streamingVideoElement","querySelector","streamingVideoMissingElement","nativeVideoElement","style","display","fetch","headers","Accept","then","response","ok","json","thumbnail_url","html","description","recordVideoView","video_id","order_item_id","order_id","getAttribute","method","body","JSON","stringify","setAttribute","initializeVideo","videoUrl","video","innerHTML","iframe","player","Player","on","VimeoVideo","wistiaId","push","onReady","wistiaVideo","bind","WistiaVideo","sproutId","SV","videoId","SproutVideo","HTMLVideoElement","querySelectorAll","forEach","source","errorDiv","getElementById","fetchRequest","load","setProperty","clearInterval","intervalId","setInterval","addEventListener","e","preventDefault","CloudinaryVideo","initializeVideoThumbnail","initializeVideoDescription","descriptionElement","replace","initializeVideoThumbnails","parent","el","initializeVideoDescriptions","initializeVideos","initializeAudio","file_id","recordAudioPlayed","initializeAudios","rendition","currentElement","nextHandler","_rendition","next","prevHandler","_rendition2","prev","_rendition3","_rendition4","key","initializeEpub","_currentElement$paren","_currentElement$paren2","epubReader","classList","add","orderItemId","orderId","fileId","fileSize","numericValue","parseInt","unit","split","confirm","remove","book","ePub","renderTo","manager","flow","height","innerHeight","width","innerWidth","location","localStorage","setItem","start","cfi","savedPosition","getItem","undefined","recordEpubView","Array","from","parentElement","getElementsByClassName","switchEpub","_currentElement$paren3","_currentElement$paren4","removeEventListener","destroy","downloadUrl","targetDiv","link","downloadFile","_element$parentElemen","fileUrl","createElement","href","click","initializeNativeVideo","recordNativeVideoPlayed","initializeNativeVideos","sky_pilot_skip_video_initialization","Api","initialize_vimeo_video","console","warn","initialize_vimeo_thumbnail","initialize_vimeo_description","displayDownloadWarning","elementToAdd","onclick","_el$closest","_content","content","closest","contains","hideDownloadWarning","_el$closest2","_el$closest3","isEdge","navigator","normalizedUserAgent","userAgent","toLowerCase","standalone","isIos","test","platform","maxTouchPoints","isAndroid","isSafari","SkyPilot","_objectSpread"],"sourceRoot":""}