{"version":3,"file":"js/chunk-common-0d4079aa.2a2e5717.js","mappings":"kIAIA,SAASA,IACL,IAAIC,EAAOC,aAAaC,QAAQ,iBAShC,OALIF,EADAA,EACOG,KAAKC,MAAMJ,GAEX,GAGJA,EAMX,SAASK,EAAIC,GACT,IAAIN,EAAOD,IACX,MAAMQ,EAAKC,KAAKC,MAEhBT,EAAKO,GAAMD,EACXL,aAAaS,QAAQ,gBAAiBP,KAAKQ,UAAUX,IAMzD,SAASY,EAAOL,GACZ,IAAIP,EAAOD,WACJC,EAAKO,GAEZN,aAAaS,QAAQ,gBAAiBP,KAAKQ,UAAUX,I,gCAGlD,MAAMa,EAAgB,CACzBd,OAAAA,EACAM,IAAAA,EACAO,OAAAA,I,6MCrCJ,MAAME,EAAS,QAUf,SAASC,EAAIC,EAAKhB,EAAO,KAAMiB,EAAS,KAAMC,GAAU,GACpD,OAAOC,EAAQ,MAAOH,EAAKE,EAASlB,EAAMiB,GAW9C,SAASG,EAAKJ,EAAKhB,EAAO,KAAMiB,EAAS,KAAMC,GAAU,GACrD,OAAOC,EAAQ,OAAQH,EAAKE,EAASlB,EAAMiB,GAW/C,SAASI,EAAIL,EAAKhB,EAAO,KAAMiB,EAAS,KAAMC,GAAU,GACpD,OAAOC,EAAQ,MAAOH,EAAKE,EAASlB,EAAMiB,GAW9C,SAASK,EAAMN,EAAKhB,EAAO,KAAMiB,EAAS,KAAMC,GAAU,GACtD,OAAOC,EAAQ,QAASH,EAAKE,EAASlB,EAAMiB,GAWhD,SAASL,EAAOI,EAAKhB,EAAO,KAAMiB,EAAS,KAAMC,GAAU,GACvD,OAAOC,EAAQ,SAAUH,EAAKE,EAASlB,EAAMiB,GAYjD,SAASE,EAAQI,EAAQP,EAAKE,EAASlB,EAAO,KAAMiB,EAAS,MACzD,IAAIO,EAUJ,OARIN,IACAM,EAAS,CACLC,QAAS,CACLC,cAAgB,UAASC,EAAAA,EAAAA,qBAK9BC,GAAAA,CAAM,CACTL,OAAAA,EACAP,IAAKF,EAASE,EACdhB,KAAAA,KACGiB,KACAO,IACJK,OAAMC,IAEL,IAAIA,EAAIC,SAyBD,MAAID,EAAIX,QAELa,MAAMF,EAAIX,QAAQb,SAGlB0B,MAAMF,EAAIxB,SA7BhB,GAA4B,MAAxBwB,EAAIC,SAASE,OACb,MAAM,IAAIC,EAAAA,GAAuBJ,EAAIC,SAASzB,QAASwB,EAAIC,SAAS/B,KAAKmC,OAASL,EAAIC,SAAS/B,KAAKmC,OAAQ,MACzG,GAA4B,MAAxBL,EAAIC,SAASE,OAAgB,CACpC,IAAIf,EAGA,MAAM,IAAIgB,EAAAA,GAAyBJ,EAAIC,SAASzB,QAASwB,EAAIC,SAAS/B,KAAKmC,OAASL,EAAIC,SAAS/B,KAAKmC,OAAQ,MAF9GR,EAAAA,EAAAA,aAID,IAA4B,MAAxBG,EAAIC,SAASE,OAMjB,MAA4B,MAAxBH,EAAIC,SAASE,OACd,IAAIC,EAAAA,GAAqBJ,EAAIC,SAASzB,SACb,MAAxBwB,EAAIC,SAASE,OACd,IAAIC,EAAAA,GAAuBJ,EAAIC,SAASzB,QAASwB,EAAIC,SAAS/B,KAAKmC,OAASL,EAAIC,SAAS/B,KAAKmC,OAAQ,MAC7E,MAAxBL,EAAIC,SAASE,OACd,IAAIC,EAAAA,GAA2BJ,EAAIC,SAASzB,SAG5C0B,MAAMF,EAAIC,SAASzB,SAbzB,IAAIY,EAGA,MAAM,IAAIgB,EAAAA,GAAsBJ,EAAIC,SAASzB,QAASwB,EAAIC,SAAS/B,KAAKmC,OAASL,EAAIC,SAAS/B,KAAKmC,OAAQ,MAF3GR,EAAAA,EAAAA,e,oEClGpB,SAAS5B,IACL,OAAOgB,EAAAA,EAAAA,IAAI,eAAgB,MAS/B,SAASqB,EAAQ7B,GACb,OAAOQ,EAAAA,EAAAA,IAAK,eAAcR,IAAM,MAUpC,SAAS8B,EAAc9B,EAAIP,GACvB,OAAOoB,EAAAA,EAAAA,IAAM,sBAAsB,CAC/BkB,cAAe/B,EACfgC,QAASvC,IAIV,MAAMwC,EAAqB,CAC9BzC,OAAAA,EACAqC,QAAAA,EACAC,cAAAA,I,qGC5BJI,eAAeC,EAAMC,EAAUC,GAC3B,MAAM3B,EAAS,IAAI4B,gBACnB5B,EAAO6B,OAAO,WAAYH,GAC1B1B,EAAO6B,OAAO,WAAYF,GAG1B,MAAMb,QAAiBX,EAAAA,EAAAA,IAAK,QAASH,EAAQ,IAAI,GAEjD,KAAK8B,EAAAA,EAAAA,IAAmBhB,KAAcA,EAAS/B,KAAKgD,aAChD,MAAMC,EAAAA,GAIVC,EAAcnB,EAAS/B,KAAKgD,oBAGtBG,EAAAA,EAAAA,SAAe,gBAAgB,GAQzCV,eAAeW,EAAeC,SACpBhC,EAAAA,EAAAA,IAAI,kBAAmB,CAACgC,MAAAA,IAAQ,GAS1CZ,eAAea,EAAcC,EAAOC,SAC1BpC,EAAAA,EAAAA,IAAK,iBAAkB,CAACmC,MAAAA,EAAOC,aAAAA,IAAe,GAOxD,SAASN,EAAcK,GACnBtD,aAAaS,QAAQ,QAAS6C,GAOlC,SAASE,IACL,OAAOxD,aAAaC,QAAQ,SAMhC,SAASwD,IACLzD,aAAa0D,WAAW,SACpB,CAAC,QAAS,MAAO,QAAS,gBAAiB,gBAAgBC,SAASC,SAASC,MAC7ED,SAASE,SAETF,SAASG,KAAO,SAIjB,MAAMrC,EAAwB,CACjC8B,cAAAA,EACAL,eAAAA,EACAE,cAAAA,EACAZ,MAAAA,EACAgB,OAAAA,I,qEC3EJ,SAASO,EAAYH,GACjB,MAAMI,EAAWf,EAAAA,EAAAA,QAAAA,iBACjBU,SAASC,KAAOA,EAChB,IAAIK,EAAW,GAEf,GAAa,UAATL,GAA6B,oBAATA,GAAuC,kBAATA,EAA0B,CAC5E,MAAMM,EAAWjB,EAAAA,EAAAA,QAAAA,iBAEA,KAAbiB,GAAgC,KAAbA,IACnBD,EAAW,SAID,UAATL,GAA6B,UAATA,GAA6B,iBAATA,GAAoC,gBAATA,EACpEI,IACAC,EAAW,YAEC,UAATL,GAA6B,UAATA,GAA6B,kBAATA,GAAqC,qBAATA,GAAwC,iBAATA,GAAoC,QAATA,GAA2B,gBAATA,GAAmC,kBAATA,GAAqC,UAATA,GAA6B,kBAATA,GAAqC,YAATA,GAA+B,YAATA,GAA+B,kBAATA,GAAqC,aAATA,GAAgC,aAATA,GAAgC,iBAATA,GAAoC,cAATA,GAAiC,aAATA,GAAgC,kBAATA,GAIxbI,IACDC,EAAW,UAIfA,EACAE,OAAOR,SAASG,KAAOG,GAEvBhB,EAAAA,EAAAA,SAAe,eAAgBW,GAC/BX,EAAAA,EAAAA,SAAe,sBAAuBmB,EAAeR,KAW7D,SAASQ,EAAeR,GACpB,IAAIS,EAAS,KACTC,EAAcV,EAClB,MAAMW,EAAiBC,SAASC,cAAc,QAwB9C,MArBa,UAATb,EACAS,EAASE,EAAeG,QAAQC,UAChB,eAATf,EACPS,EAASE,EAAeG,QAAQtC,cAChB,kBAATwB,EACPS,EAASE,EAAeG,QAAQE,WAChB,iBAAThB,IACPS,EAASE,EAAeG,QAAQG,kBAIhCR,IACAA,EAASS,SAAST,IAIlBA,IACApB,EAAAA,EAAAA,SAAe,iBAAkBoB,GACjCC,GAAeD,GAGZC,EAIJ,MAAMS,EAAuB,CAChChB,YAAAA,I,oECzEJ,SAASlE,IACL,OAAOgB,EAAAA,EAAAA,IAAI,SAQf,SAASmE,EAAW3E,GAChB,OAAOQ,EAAAA,EAAAA,IAAK,QAAOR,IAAM,MAGtB,MAAM4E,EAAc,CACvBpF,OAAAA,EACAmF,WAAAA,I,kGCZJzC,eAAe2C,EAAeC,GAC1B,IACI,MAAMtD,QAAiBhB,EAAAA,EAAAA,IAAIsE,EAAU,GAAI,CACrCpE,OAAQ,CACJqE,SAAU,GACVC,WAAY,KAEjB,GAEH,OAAOxD,EAAS/B,KAClB,MAAO8B,GACLqB,EAAAA,EAAAA,SAAe,4BAA6B,CAAC,QAAW,kDAAmD,KAAQ,aAQ3HV,eAAe+C,IACX,IACI,MAAMzD,QAAiBhB,EAAAA,EAAAA,IAAI,oBAAqB,KAAM,MAAM,GAE5D,OAAOgB,EAAS/B,KAClB,MAAO8B,GACLqB,EAAAA,EAAAA,SAAe,4BAA6B,CAAC,QAAW,kDAAmD,KAAQ,aAS3H,SAASsC,EAAwBJ,GAE7B,IAAIrF,EAAOC,aAAaC,QAAQmF,GAQhC,OALIrF,IACAA,EAAOG,KAAKC,MAAMJ,IAGtBmD,EAAAA,EAAAA,SAAe,4BAA6B,CAACkC,SAAAA,EAAUrF,KAAAA,IAChDA,EAQX,SAAS0F,EAAuBL,EAAUrF,GACtCC,aAAaS,QAAQ2E,EAAUlF,KAAKQ,UAAUX,IAC9CmD,EAAAA,EAAAA,SAAe,4BAA6B,CAACkC,SAAAA,EAAUrF,KAAAA,IAM3DyC,eAAekD,IAEX,MAAMC,EAAe3F,aAAaC,QAAQ,oBAGpC2F,QAAmBL,IAGnBM,EAAgBD,IAAeD,EAGrC,IAAK,MAAMP,IAAY,CAAC,YAAa,gBAAiB,CAClD,IAAIU,EAGJ,GAAKD,EAQD,IAEIL,EAAwBJ,GAC1B,MAAOvD,GAELiE,QAAgBX,EAAeC,GAG/BK,EAAuBL,EAAUU,QAbrCA,QAAgBX,EAAeC,GAG/BK,EAAuBL,EAAUU,GAgBpCD,GACD7F,aAAaS,QAAQ,mBAAoBmF,GAUjD,SAASG,EAAiBhG,EAAMiG,GAC5B,IAAIC,EAAM,GAMV,OAJIC,IAAAA,IAAMnG,EAAMiG,KACZC,EAAMlG,EAAKiG,IAGRC,EAUX,SAASE,EAAyBpG,EAAMiG,EAAKI,GACzC,IAAIH,EAAM,GAOV,OALAlG,EAAOgG,EAAiBhG,EAAMiG,GAE1BE,IAAAA,IAAMnG,EAAMqG,KACZH,EAAMlG,EAAKqG,IAERH,EAgBX,SAASI,EAAYtG,EAAMuG,EAAaC,EAAQ,MAC5C,IAAIN,EAAM,GAGV,GAAIC,IAAAA,IAAMnG,EAAMuG,KACZL,EAAMlG,EAAKuG,GAEPC,GACA,IAAK,MAAMP,KAAOO,EACdN,EAAMC,IAAAA,QAAUD,EAAM,IAAGD,KAAQO,EAAMP,IAKnD,OAAOC,EAUX,SAASO,EAAkBR,EAAKS,EAAMpB,GAClC,OAAOlE,EAAAA,EAAAA,IAAK,mBAGT,MAAMuF,EAAmB,CAC5BhB,gBAAAA,EACAK,iBAAAA,EACAM,YAAAA,EACAF,yBAAAA,EACAK,kBAAAA,I,mGCtLJ,SAAS1G,EAAO6G,EAAoB,GAChC,IAAI3F,EAUJ,OARI2F,EAAoB,IACpB3F,EAAS,CACLA,OAAQ,CACJ2F,kBAAAA,MAKL7F,EAAAA,EAAAA,IAAI,WAAY,GAAIE,GAO/B,SAAS4F,IACL,OAAO9F,EAAAA,EAAAA,IAAI,gBAAiB,IAQhC,SAAS+F,EAAUvG,GACf,OAAOQ,EAAAA,EAAAA,IAAK,WAAUR,IAAM,MAGhCkC,eAAesE,EAAsBC,EAAUzB,EAAYvE,EAAKiG,EAAMC,EAAaC,EAAmBC,EAAOC,EAAY/B,EAAUgC,GAAU,GACzI,OAAOlG,EAAAA,EAAAA,IAAK,4BAA6B,CACrC4F,SAAAA,EACAzB,WAAAA,EACAvE,IAAAA,EACAiG,KAAAA,EACAC,YAAAA,EACAC,kBAAAA,EACAC,MAAAA,EACAC,WAAAA,EACA/B,SAAAA,EACAgC,UAAAA,IACD,GAIP7E,eAAe8E,EAAuBN,EAAMC,EAAaC,EAAmBK,EAAK,EAAGlC,EAAS,EAAGmC,EAAiB,EAAG5C,EAAW6C,EAAYJ,EAAWN,GAClJ,OAAO5F,EAAAA,EAAAA,IAAK,kBAAmB,CAC3B6F,KAAAA,EACAC,YAAAA,EACAC,kBAAAA,EACAK,KAAAA,EACAlC,SAAAA,EACAmC,iBAAAA,EACA5C,UAAAA,EACA6C,WAAAA,EACAJ,UAAAA,EACAN,SAAAA,IACD,GAGPvE,eAAekF,EAAkB9C,EAAWoC,EAAMD,EAAS,IACvD,OAAO5F,EAAAA,EAAAA,IAAM,kBAAkB,CAC3B6F,KAAAA,EACAD,SAAAA,EACAnC,UAAAA,IACD,GAGP,SAAS+C,EAAYC,EAAUC,GAC3B,OAAOlG,IAAAA,KAAY,uBAAsBiG,EAAS9G,IAAI,eAAgB8G,EAAU,CAC9EpG,QAAS,CACP,cAAkB,UAASE,EAAAA,EAAAA,kBAC3B,eAAgB,uBAGlBmG,iBAAmBC,IACjB,MAAMC,EAAmBC,KAAKC,MAA8B,IAAvBH,EAAcI,OAAgBJ,EAAcK,OAC7EN,GACFA,EAAiBE,MAM3B,MAAMK,EAAqBR,IAChBzG,EAAAA,EAAAA,IAAM,iBAAgByG,EAAS9G,IAAI,cAAe8G,EAAU,CACjEpG,QAAS,CACP,eAAgB,yBAOxBgB,eAAe6F,EAAa/H,EAAIyG,EAAUzB,EAAYvE,EAAKiG,EAAMC,EAAaC,EAAmBC,EAAOC,EAAY/B,EAAUgC,GAC1H,IAAItH,EAAO,CACPO,GAAAA,EACAyG,SAAAA,EACAzB,WAAAA,EACAvE,IAAAA,EACAiG,KAAAA,EACAC,YAAAA,EACAC,kBAAAA,EACAC,MAAAA,EACAC,WAAAA,EACA/B,SAAAA,EACAgC,UAAAA,GAGJ,OAAOhG,EAAAA,EAAAA,IAAO,WAAUf,IAAMP,GAAM,GAIxCyC,eAAe8F,EAAoBhI,EAAI0G,EAAMD,EAAUnC,GACnD,IAAI7E,EAAO,CACPO,GAAAA,EACA0G,KAAAA,EACAD,SAAAA,EACAnC,UAAAA,GAGJ,OAAOvD,EAAAA,EAAAA,IAAO,mBAAkBf,IAAMP,GAAM,GAIhDyC,eAAe+F,EAAcjI,EAAI0G,EAAMD,EAAUE,EAAaC,EAAmBG,GAC7E,IAAItH,EAAO,CACPO,GAAAA,EACA0G,KAAAA,EACAD,SAAAA,EACAE,YAAAA,EACAC,kBAAAA,EACAG,UAAAA,GAGJ,OAAOhG,EAAAA,EAAAA,IAAO,mBAAkBf,IAAMP,GAAM,GAOhDyC,eAAegG,EAAkBC,GAC7B,IACI,MAAM3G,QAAiBhB,EAAAA,EAAAA,IAAK,WAAU2H,oBAEtC,OAAO3G,EACT,MAAOD,GACL,KAAIA,aAAemB,UAAYnB,EAAI9B,MAG/B,MAAM8B,EAFNqB,MAAMwF,SAAS,sBAAuB7G,EAAI9B,OAWtDyC,eAAemG,EAAyBC,GACpC,IACI,MAAM9G,QAAiBhB,EAAAA,EAAAA,IAAK,oBAAmB8H,WAC/C,OAAO9G,EACT,MAAOD,GACL,KAAIA,aAAemB,UAAYnB,EAAI9B,MAG/B,MAAM8B,EAFNqB,MAAMwF,SAAS,sBAAuB7G,EAAI9B,OAOtDyC,eAAeqG,EAAavI,GACxB,IAAIP,EAAO,CACPO,GAAAA,GAGJ,OAAOK,EAAAA,EAAAA,IAAQ,WAAUL,IAAMP,GAAM,GAIzCyC,eAAesG,EAAoBxI,GAC/B,IAAIP,EAAO,CACPO,GAAAA,GAGJ,OAAOK,EAAAA,EAAAA,IAAQ,mBAAkBL,IAAMP,GAAM,GAIjDyC,eAAeuG,EAAczI,GACzB,IAAIP,EAAO,CACPO,GAAAA,GAGJ,OAAOK,EAAAA,EAAAA,IAAQ,mBAAkBL,IAAMP,GAAM,GAI1C,MAAMiJ,EAAiB,CAC1BlJ,OAAAA,EACA8G,YAAAA,EACAC,UAAAA,EACAC,sBAAAA,EACAQ,uBAAAA,EACAI,kBAAAA,EACAW,aAAAA,EACAC,oBAAAA,EACAC,cAAAA,EACAZ,YAAAA,EACAS,kBAAAA,EACAI,kBAAAA,EACAG,yBAAAA,EACAE,aAAAA,EACAC,oBAAAA,EACAC,cAAAA,I,oEC5NJ,SAASE,EAAmBlJ,GACxB,OAAOsB,EAAAA,EAAAA,IAAO,yBAAyBtB,GAO3C,SAASmJ,IACL,OAAOpI,EAAAA,EAAAA,IAAK,0BAOhB,SAASqI,IACL,OAAOrI,EAAAA,EAAAA,IAAK,yBAShB,SAASsI,EAAaxE,EAAWyE,GAC7B,OAAOlI,EAAAA,EAAAA,IAAM,qBAAqB,CAACyD,UAAAA,EAAWyE,QAAAA,IAQlD,SAASC,EAAehJ,GACpB,OAAOQ,EAAAA,EAAAA,IAAK,2BAA0BR,IAAM,MAQhD,SAASiJ,EAAkBxJ,GACvB,OAAOoB,EAAAA,EAAAA,IAAM,0BAA0BpB,GAQ3C,SAASyJ,EAAgBzJ,GACrB,OAAOoB,EAAAA,EAAAA,IAAM,kCAAkCpB,GAQnD,SAAS0J,EAAkBnJ,GACvB,OAAOK,EAAAA,EAAAA,IAAQ,0BAAyBL,KAQ5C,SAASoJ,EAAuBpJ,GAC5B,OAAOK,EAAAA,EAAAA,IAAQ,0BAAyBL,KAGrC,MAAMqJ,EAAqB,CAC9BT,mBAAAA,EACAE,aAAAA,EACAH,mBAAAA,EACAK,eAAAA,EACAC,kBAAAA,EACAC,gBAAAA,EACAC,kBAAAA,EACAC,uBAAAA,EACAP,cAAAA,I,wOC1FG,MAAMS,UAAwB7H,MACjC8H,YAAYxJ,EAASN,GACjB+J,MAAMzJ,GACN0J,KAAK/C,KAAO,kBACZ+C,KAAKhK,KAAOA,GAKb,MAAMiK,UAA0BjI,MACnC8H,YAAYxJ,EAASN,GACjB+J,MAAMzJ,GACN0J,KAAK/C,KAAO,oBACZ+C,KAAKhK,KAAOA,GAKb,MAAMkK,UAAuBlI,MAChC8H,YAAYxJ,EAASN,GACjB+J,MAAMzJ,GACN0J,KAAK/C,KAAO,wBACZ+C,KAAKhK,KAAOA,GAKb,MAAMmK,UAAsBnI,MAC/B8H,YAAYxJ,GACRyJ,MAAMzJ,GACN0J,KAAK/C,KAAO,iBAKb,MAAMmD,UAAuBpI,MAChC8H,YAAYxJ,GACRyJ,MAAMzJ,GACN0J,KAAK/C,KAAO,kBAKb,MAAMoD,UAAwBrI,MACjC8H,YAAYxJ,EAASN,GACjB+J,MAAMzJ,GACN0J,KAAK/C,KAAO,kBACZ+C,KAAKhK,KAAOA,GAKb,MAAMsK,UAA4BtI,MACrC8H,YAAYxJ,GACRyJ,MAAMzJ,GACN0J,KAAK/C,KAAO,uBAKb,MAAMhE,UAAiBjB,MAC1B8H,YAAYxJ,EAASN,GACjB+J,MAAMzJ,GACN0J,KAAK/C,KAAO,WACZ+C,KAAKhK,KAAOA,K,oECzDpByC,eAAe8H,EAAgBC,EAASC,GACpC,OAAOrJ,EAAAA,EAAAA,IAAK,eAAgB,CACxBoJ,QAAAA,EACAC,KAAAA,IAWRhI,eAAeiI,EAAgBF,EAASC,EAAMpH,GAC1C,OAAOjC,EAAAA,EAAAA,IAAK,eAAgB,CACxBoJ,QAAAA,EACAC,KAAAA,EACApH,MAAAA,IAID,MAAMsH,EAAiB,CAC1BJ,gBAAAA,EACAG,gBAAAA,I,oECzBJ,SAASE,EAAe9G,EAAM+G,EAAgB,EAAGC,EAAW,GACxD,IAAI7J,EAEJA,EAAS,CACLA,OAAQ,CACJ6C,KAAAA,IAIJ+G,EAAgB,IAChB5J,EAAO,UAAU,iBAAmB4J,GAGpCC,EAAW,IACX7J,EAAO,UAAU,YAAc6J,GAGnC,MAAMC,GAAchK,EAAAA,EAAAA,IAAI,YAAa,GAAIE,GACzC,OAAO8J,EAOX,SAASC,EAAoBlH,EAAM+G,EAAgB,EAAGC,EAAW,GAC7D,IAAI7J,EAEJA,EAAS,CACLA,OAAQ,CACJ6C,KAAAA,IAIJ+G,EAAgB,IAChB5J,EAAO,UAAU,iBAAmB4J,GAGpCC,EAAW,IACX7J,EAAO,UAAU,YAAc6J,GAGnC,MAAMC,GAAchK,EAAAA,EAAAA,IAAI,kBAAmB,GAAIE,GAC/C,OAAO8J,EAGX,SAASE,EAAWnH,GAChB,IAAI7C,EAQJ,OANAA,EAAS,CACLA,OAAQ,CACJ6C,KAAAA,KAID/C,EAAAA,EAAAA,IAAI,iBAAkB,GAAIE,GAGrC,SAASiK,EAAY3K,GACjB,MAAM4K,GAAepK,EAAAA,EAAAA,IAAK,aAAYR,IAAM,MAC5C,OAAO4K,EAaX1I,eAAe2I,EAAuBC,EAAaC,EAAWC,EAAUlI,EAAOmI,EAAOC,EAAQC,EAASC,EAAYC,EAAYC,EAAaC,EAAOC,EAAcC,EAAUC,EAAO,EAAGC,EAAe,EAAGC,EAAWC,EAAgBC,EAAaC,GAC3O,OAAOlL,EAAAA,EAAAA,IAAK,mBAAoB,CAC5BiK,YAAAA,EACAC,UAAAA,EACAC,SAAAA,EACAlI,MAAAA,EACAmI,MAAAA,EACAC,OAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAC,MAAAA,EACAC,aAAAA,EACAC,SAAAA,EACAC,OAAAA,EACAC,eAAAA,EACAC,UAAAA,EACAC,eAAAA,EACAC,YAAAA,EACAC,mBAAAA,IACD,GAcP7J,eAAe8J,EAA4BlB,EAAaC,EAAWC,EAAUlI,EAAOmI,EAAOC,EAAQC,EAASC,EAAYC,EAAYC,EAAaC,EAAOC,EAAcC,EAAUC,EAAQC,EAAgBC,EAAWC,EAAgBC,EAAaC,GAC5O,OAAOlL,EAAAA,EAAAA,IAAK,8BAA+B,CACvCiK,YAAAA,EACAC,UAAAA,EACAC,SAAAA,EACAlI,MAAAA,EACAmI,MAAAA,EACAC,OAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAC,MAAAA,EACAC,aAAAA,EACAC,SAAAA,EACAC,OAAAA,EACAC,eAAAA,EACAC,UAAAA,EACAC,eAAAA,EACAC,YAAAA,EACAC,mBAAAA,IACD,GAIA,MAAME,EAAiB,CAC1B5B,eAAAA,EACAI,oBAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAE,uBAAAA,EACAmB,4BAAAA,I,oEC3IJ,SAASxM,IACL,OAAOgB,EAAAA,EAAAA,IAAI,qBAQf,SAAS0L,IACL,OAAO1L,EAAAA,EAAAA,IAAI,yBASf,SAASqB,EAAQ7B,GACb,OAAOQ,EAAAA,EAAAA,IAAK,oBAAmBR,IAAM,MAQzC,SAASmM,IACL,OAAO3L,EAAAA,EAAAA,IAAK,wBAAwB,MAGjC,MAAM4L,EAAuB,CAChC5M,OAAAA,EACA0M,aAAAA,EACArK,QAAAA,EACAsK,WAAAA,I,qGCjCJjK,eAAemK,EAAeC,GAAiB,GAC3C,IACI,MAAM9K,QAAiBhB,EAAAA,EAAAA,IAAI,YAG3B,KAAKgC,EAAAA,EAAAA,IAAmBhB,GACpB,MAAM,IAAIkB,EAAAA,GAAS,qBAAsB,CAAC,QAAW,wDAAyD,KAAQ,YAG1H,OAAOlB,EAAS/B,KAClB,MAAO8B,GACL,KAAIA,aAAemB,EAAAA,IAAYnB,EAAI9B,MAG/B,MAAM8B,EAFNqB,EAAAA,EAAAA,SAAe,sBAAuBrB,EAAI9B,OAWtDyC,eAAeqK,IACX,IACI,MAAM/K,QAAiBhB,EAAAA,EAAAA,IAAI,UAG3B,KAAKgC,EAAAA,EAAAA,IAAmBhB,GACpB,MAAM,IAAIkB,EAAAA,GAAS,qBAAsB,CAAC,QAAW,wDAAyD,KAAQ,YAI1H,OAAOlB,EACT,MAAOD,GACL,KAAIA,aAAemB,EAAAA,IAAYnB,EAAI9B,MAG/B,MAAM8B,EAFNqB,EAAAA,EAAAA,SAAe,sBAAuBrB,EAAI9B,OAWtDyC,eAAesK,EAAiB1B,GAC5B,IACI,MAAMtJ,QAAiBhB,EAAAA,EAAAA,IAAK,kBAAiBsK,KAG7C,KAAKtI,EAAAA,EAAAA,IAAmBhB,GACpB,MAAM,IAAIkB,EAAAA,GAAS,qBAAsB,CAAC,QAAW,wDAAyD,KAAQ,YAI1H,OAAOlB,EACT,MAAOD,GACL,KAAIA,aAAemB,EAAAA,IAAYnB,EAAI9B,MAG/B,MAAM8B,EAFNqB,EAAAA,EAAAA,SAAe,sBAAuBrB,EAAI9B,OAmBtDyC,eAAeuK,EAAW1B,EAAWC,EAAUlI,EAAOT,EAAU4I,EAAQ,GAAIyB,GAAwB,EAAOC,GAAqB,EAAOC,EAAQ,MAC3I,OAAO/L,EAAAA,EAAAA,IAAK,QAAS,CACjBkK,UAAAA,EACAC,SAAAA,EACAC,MAAAA,EACAnI,MAAAA,EACAT,SAAAA,EACAqK,sBAAAA,EACAC,mBAAAA,EACA5H,SAAU,GACV6H,OAAAA,IACD,GAgBP1K,eAAe2K,EAAWC,EAAQ/B,EAAWC,EAAUlI,EAAOmI,EAAQ,GAAIyB,GAAwB,EAAOC,GAAqB,EAAOI,EAAY,KAAMC,EAAiB,MACpK,IAAIvN,EAAO,CACPsL,UAAAA,EACAC,SAAAA,EACAC,MAAAA,EACAnI,MAAAA,EACA4J,sBAAAA,EACAC,mBAAAA,EACA5H,SAAU,IAMd,OAJkB,OAAdgI,IACAtN,EAAK,aAAesN,GACD,OAAnBC,IACAvN,EAAK,kBAAoBuN,IACtBjM,EAAAA,EAAAA,IAAO,SAAQ+L,IAAUrN,GAAM,GA4B1CyC,eAAe+K,EAAmBjN,EAAI8K,EAAa/B,EAAU,KAAMgC,EAAWC,EAAUlI,EAAOmI,EAAQ,GAAIiC,EAAa/B,EAASC,EAAYC,EAAYC,EAAaC,EAAOC,EAAcC,EAAUC,EAAQC,EAAgBC,EAAWC,EAAgBC,EAAaC,GACjQ,IAAItM,EAAO,CACPO,GAAAA,EACA8K,YAAAA,EACA/B,QAAAA,EACAgC,UAAAA,EACAC,SAAAA,EACAlI,MAAAA,EACAmI,MAAAA,EACAiC,YAAAA,EACA/B,QAAAA,EACAC,WAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAC,MAAAA,EACAC,aAAAA,EACAC,SAAAA,EACAC,OAAAA,EACAC,eAAAA,EACAC,UAAAA,EACAC,eAAAA,EACAC,YAAAA,EACAC,mBAAAA,GAGJ,OAAOhL,EAAAA,EAAAA,IAAO,kBAAiBf,IAAMP,GAAM,GAS/CyC,eAAeiL,EAAmBnN,GAC9B,IAAIP,EAAO,CACPO,GAAAA,GAGJ,OAAOK,EAAAA,EAAAA,IAAQ,kBAAiBL,IAAMP,GAAM,GAKzC,MAAM2N,EAAc,CACvBf,eAAAA,EACAI,WAAAA,EACAI,WAAAA,EACAI,mBAAAA,EACAE,mBAAAA,EACAZ,YAAAA,EACAC,iBAAAA","sources":["webpack://microsoft-academy/./src/services/alertMessage.js","webpack://microsoft-academy/./src/services/api.js","webpack://microsoft-academy/./src/services/assessments.service.js","webpack://microsoft-academy/./src/services/authentication.js","webpack://microsoft-academy/./src/services/authorization.js","webpack://microsoft-academy/./src/services/blog.service.js","webpack://microsoft-academy/./src/services/codebooks.service.js","webpack://microsoft-academy/./src/services/courses.service.js","webpack://microsoft-academy/./src/services/enrollments.service.js","webpack://microsoft-academy/./src/services/errors.js","webpack://microsoft-academy/./src/services/general.service.js","webpack://microsoft-academy/./src/services/lectures.service.js","webpack://microsoft-academy/./src/services/studyPrograms.service.js","webpack://microsoft-academy/./src/services/user.service.js"],"sourcesContent":["/**\n * Get alertMessages from localStorage\n * @return {object} - user data\n */\nfunction getAll() {\n    let data = localStorage.getItem(\"alertMessages\")\n\n    // if data exist parse json\n    if (data) {\n        data = JSON.parse(data)\n    } else {\n        data = {}\n    }\n\n    return data\n}\n\n/**\n * Add alertMessage to localStorage\n */\nfunction add(message) {\n    let data = getAll()\n    const id = Date.now()\n\n    data[id] = message\n    localStorage.setItem(\"alertMessages\", JSON.stringify(data))\n}\n\n/**\n * Remove alertMessage from localStorage\n */\nfunction remove(id) {\n    let data = getAll()\n    delete data[id]\n\n    localStorage.setItem(\"alertMessages\", JSON.stringify(data))\n}\n\nexport const alertMessages = {\n    getAll,\n    add,\n    remove,\n}","import {authenticationService} from \"@/services/authentication\";\nimport * as errors from \"@/services/errors\";\nimport axios from \"axios\";\n\nconst apiUrl = \"/api/\";\n\n/**\n * Make get request\n * @param {string} url - endPoint\n * @param {object|null} data - data\n * @param {object|null} params - params\n * @param {boolean} secured - use and check security headers\n * @return {axios} - axios data\n */\nfunction get(url, data = null, params = null, secured = true) {\n    return request('get', url, secured, data, params)\n}\n\n/**\n * Make post request\n * @param {string} url - endPoint\n * @param {object|null} data - data\n * @param {object|null} params - params\n * @param {boolean} secured - use and check security headers\n * @return {axios} - axios data\n */\nfunction post(url, data = null, params = null, secured = true) {\n    return request('post', url, secured, data, params)\n}\n\n/**\n * Make put request\n * @param {string} url - endPoint\n * @param {object|null} data - data\n * @param {object|null} params - params\n * @param {boolean} secured - use and check security headers\n * @return {axios} - axios data\n */\nfunction put(url, data = null, params = null, secured = true) {\n    return request('put', url, secured, data, params)\n}\n\n/**\n * Make patch request\n * @param {string} url - endPoint\n * @param {object|null} data - data\n * @param {object|null} params - params\n * @param {boolean} secured - use and check security headers\n * @return {axios} - axios data\n */\nfunction patch(url, data = null, params = null, secured = true) {\n    return request('patch', url, secured, data, params)\n}\n\n/**\n * Make delete request\n * @param {string} url - endPoint\n * @param {object|null} data - data\n * @param {object|null} params - params\n * @param {boolean} secured - use and check security headers\n * @return {axios} - axios data\n */\nfunction remove(url, data = null, params = null, secured = true) {\n    return request('delete', url, secured, data, params)\n}\n\n/**\n * Make request request\n * @param {string} method - method\n * @param {string} url - endPoint\n * @param {boolean} secured - use and check security headers\n * @param {object|null} data - data\n * @param {object|null} params - params\n * @return {axios} - axios data\n */\nfunction request(method, url, secured, data = null, params = null) {\n    let config;\n\n    if (secured) {\n        config = {\n            headers: {\n                Authorization: `Bearer ${authenticationService.getAxiosToken()}`\n            },\n        }\n    }\n\n    return axios({\n        method,\n        url: apiUrl + url,\n        data,\n        ...params,\n        ...config\n    }).catch(err => {\n        // client received an error response (5xx, 4xx)\n        if (err.response) {\n            if (err.response.status === 400) {\n                throw new errors.BadRequestError(err.response.message, err.response.data.detail ? err.response.data.detail: null)\n            } else if (err.response.status === 401) {\n                if (secured) {\n                    authenticationService.logout();\n                } else {\n                    throw new errors.UnauthorizedError(err.response.message, err.response.data.detail ? err.response.data.detail: null)\n                }\n            } else if (err.response.status === 403) {\n                if (secured) {\n                    authenticationService.logout();\n                } else {\n                    throw new errors.ForbiddenError(err.response.message, err.response.data.detail ? err.response.data.detail: null)\n                }\n            } else if (err.response.status === 404) {\n                throw new errors.NotFoundError(err.response.message)\n            } else if (err.response.status === 422) {\n                throw new errors.ValidationError(err.response.message, err.response.data.detail ? err.response.data.detail: null)\n            } else if (err.response.status === 500) {\n                throw new errors.InternalServerError(err.response.message)\n            } else {\n                // throw Error(err.response.data)\n                throw Error(err.response.message)\n            }\n        } else if (err.request) {\n            // client never received a response, or request never left\n            throw Error(err.request.message)\n        } else {\n            // anything else\n            throw Error(err.message)\n        }\n    })\n}\n\nexport {\n    get,\n    post,\n    put,\n    patch,\n    remove,\n}","import {get, post} from \"@/services/api\";\n\n/**\n * Get assessments from api\n *\n * @return Axios\n */\nfunction getAll() {\n    return get('assessments/', null);\n}\n\n/**\n * Get assessments from api\n *\n * @param {int} id - assessment id\n * @return Axios\n */\nfunction getById(id) {\n    return get(`assessments/${id}`, null);\n}\n\n/**\n * Post assessment answers by api\n *\n * @param {number} id - assessment id\n * @param {object} data - json data\n * @return Axios\n */\nfunction submitAnswers(id, data) {\n    return post(`assessments/answers`, {\n        assessment_id: id,\n        answers: data\n    });\n}\n\nexport const assessmentsService = {\n    getAll,\n    getById,\n    submitAnswers\n};","import {isApiResponseValid} from \"@/helpers/helpers\";\nimport {post, put} from \"@/services/api\";\nimport {AppError} from \"@/services/errors\";\nimport store from \"@/store\";\n\n/**\n * Make api call to user login\n * @param {string} username - username\n * @param {string} password - password\n */\nasync function login(username, password) {\n    const params = new URLSearchParams();\n    params.append('username', username);\n    params.append('password', password);\n\n    // api call\n    const response = await post('token', params, {}, false)\n\n    if (!isApiResponseValid(response) || !response.data.access_token) {\n        throw AppError;\n    }\n\n    // save to localStorage\n    setAxiosToken(response.data.access_token)\n\n    // get user data\n    await store.dispatch('user/getUser', false)\n}\n\n/**\n * Make api call to get new password email\n * @param {string} email - email\n * @return {json|boolean} - return true on success or json with errors\n */\nasync function forgotPassword(email) {\n    await put('forgot-password', {email}, false)\n}\n\n/**\n * Make api call to change password\n * @param {string} token - token\n * @param {string} new_password - new password\n * @return {json|boolean} - return true on success or json with errors\n */\nasync function resetPassword(token, new_password) {\n    await post('reset-password', {token, new_password}, false)\n}\n\n/**\n * Set axios authorization header\n * @param {string} token - access token\n */\nfunction setAxiosToken(token) {\n    localStorage.setItem('token', token)\n}\n\n/**\n * Get auth token from local storage\n * @return {string} - access token\n */\nfunction getAxiosToken() {\n    return localStorage.getItem(\"token\");\n}\n\n/**\n * Remove token from local storage - user logout and reload page or redirect to login page\n */\nfunction logout() {\n    localStorage.removeItem('token')\n    if (['index', '404', 'about', 'privacyPolicy', 'personalData'].includes(location.page)) {\n        location.reload();\n    } else {\n        location.href = '/login'\n    }\n}\n\nexport const authenticationService = {\n    getAxiosToken,\n    forgotPassword,\n    resetPassword,\n    login,\n    logout,\n};","import store from \"@/store\";\n\n/**\n * Check if user has access to current page\n * @param {string} page - current page\n */\nfunction checkAccess(page) {\n    const loggedIn = store.getters['user/loggedIn'];\n    location.page = page;\n    let redirect = '';\n    \n    if (page === 'admin' || page === 'admin-trainings' || page === 'admin-courses') {\n        const userRole = store.getters['user/userRole'];\n\n        if (userRole !== 14 && userRole !== 13) {\n            redirect = '/'\n        }\n    }\n    // redirect out of auth pages is user is logged\n    else if (page === 'login' || page === 'reset' || page === 'registration' || page === 'newPassword') {\n        if (loggedIn) {\n            redirect = '/courses'\n        }\n    } else if (page === 'index' || page === 'about' || page === 'privacyPolicy' || page === 'competitionRules' || page === 'personalData' || page === '404' || page === 'articleList' || page === 'articleDetail' || page === 'ms365' || page === 'powerAutomate' || page === 'msAzure' || page === 'powerBi' || page === 'cyberSecurity' || page === 'students' || page === 'mentions' || page === 'studyProgram' || page === 'digistart' || page === 'lectures' || page === 'lectureDetail') {\n        // do nothing on index\n    } else {\n        // redirect out pages is user is not logged\n        if (!loggedIn) {\n            redirect = '/login'\n        }\n    }\n\n    if (redirect) {\n        window.location.href = redirect\n    } else {\n        store.dispatch('page/setPage', page)\n        store.dispatch('page/setCurrentPage', getCurrentPage(page))\n    }\n}\n\n/**\n * Save page id from html attr to store\n * Add id to page name\n *\n * @param {String} page - page name\n * @return {string} - page name with id\n * */\nfunction getCurrentPage(page) {\n    let pageId = null;\n    let currentPage = page;\n    const appMainElement = document.querySelector('#app');\n\n    // Change page name for dynamic pages to show active page in navigations\n    if (page === 'video') {\n        pageId = appMainElement.dataset.course_id;\n    } else if (page === 'assessment') {\n        pageId = appMainElement.dataset.assessment_id;\n    } else if (page === 'articleDetail') {\n        pageId = appMainElement.dataset.article_id;\n    } else if (page === 'studyProgram') {\n        pageId = appMainElement.dataset.study_program_id;\n    }\n\n    // convert to integer\n    if (pageId) {\n        pageId = parseInt(pageId)\n    }\n\n    // save page id to store\n    if (pageId) {\n        store.dispatch('page/setPageId', pageId)\n        currentPage += pageId;\n    }\n\n    return currentPage;\n}\n\n\nexport const authorizationService = {\n    checkAccess,\n};","import {get} from \"@/services/api\";\n\n/**\n * Get blog articles from api\n * @return Axios\n */\nfunction getAll() {\n    return get('blog/');\n}\n\n/**\n * Get article from api\n * @param {int} id - article id\n * @return Axios\n */\nfunction getArticle(id) {\n    return get(`blog/${id}`, null);\n}\n\nexport const blogService = {\n    getAll,\n    getArticle\n};","import {get, post} from \"@/services/api\";\nimport store from \"@/store\";\nimport _ from \"lodash\";\n\n/**\n * Get data form api\n * @param {string} endpoint - endpoint\n * @return {Object} - codebooks\n */\nasync function getDataFromApi(endpoint) {\n    try {\n        const response = await get(endpoint, {}, {\n            params: {\n                language: 27,\n                academy_id: 1\n            }\n        }, false);\n\n        return response.data;\n    } catch (err) {\n        store.dispatch('codebooks/addFlashMessage', {\"message\": 'Chyba při načítání dat, zkuste obnovit stránku.', 'type': 'warning'})\n    }\n}\n\n/**\n * Get version from api\n * @return {Object} - codebooks\n */\nasync function getVersion() {\n    try {\n        const response = await get('codebooks/version', null, null, false);\n\n        return response.data;\n    } catch (err) {\n        store.dispatch('codebooks/addFlashMessage', {\"message\": 'Chyba při načítání dat, zkuste obnovit stránku.', 'type': 'warning'})\n    }\n}\n\n/**\n * Get data from localStorage\n * @param {string} endpoint - endpoint\n * @return {Object} - codebooks\n */\nfunction getDataFromLocalStorage(endpoint) {\n    // get from localStorage\n    let data = localStorage.getItem(endpoint);\n\n    // if exist parse\n    if (data) {\n        data = JSON.parse(data);\n    }\n\n    store.dispatch('codebooks/setAllCodebooks', {endpoint, data});\n    return data;\n}\n\n/**\n * Save data to localStorage\n * @param {string} endpoint - endpoint\n * @param {Object} data - data\n */\nfunction saveDataToLocalStorage(endpoint, data) {\n    localStorage.setItem(endpoint, JSON.stringify(data));\n    store.dispatch('codebooks/setAllCodebooks', {endpoint, data});\n}\n\n/**\n * Get data codebooks and translations data from api to localstorage, check version\n */\nasync function getAllCodebooks() {\n    // get local version\n    const versionLocal = localStorage.getItem('codebooksVersion')\n\n    // get api version\n    const versionApi = await getVersion();\n\n    // get version match\n    const matchVersions = versionApi === versionLocal;\n\n    // foreach endpoints and check version\n    for (const endpoint of ['codebooks', 'translations']) {\n        let dataApi;\n\n        // check if version matches\n        if (!matchVersions) {\n\n            // load from api\n            dataApi = await getDataFromApi(endpoint)\n\n            // update localstorage\n            saveDataToLocalStorage(endpoint, dataApi)\n        } else {\n            try {\n                // try to get data from localstorage\n                getDataFromLocalStorage(endpoint)\n            } catch (err) {\n                // load from api\n                dataApi = await getDataFromApi(endpoint)\n\n                // update localstorage\n                saveDataToLocalStorage(endpoint, dataApi)\n            }\n        }\n    }\n\n    // update local version\n    if (!matchVersions) {\n        localStorage.setItem('codebooksVersion', versionApi);\n    }\n}\n\n/**\n * Get codebooks values\n * @param {object} data - data\n * @param {string} key - codebook key\n * @return {object} - codebooks values\n */\nfunction getCodeBookByKey(data, key) {\n    let out = {};\n\n    if (_.has(data, key)) {\n        out = data[key];\n    }\n\n    return out;\n}\n\n/**\n * Get codebook value\n * @param {object} data - data\n * @param {string} key - codebook key\n * @param {string} value - codebook value\n * @return {string} - codebook value\n */\nfunction getCodeBookByKeyAndValue(data, key, value) {\n    let out = '';\n\n    data = getCodeBookByKey(data, key);\n\n    if (_.has(data, value)) {\n        out = data[value]\n    }\n    return out;\n}\n\n/**\n * Get translation by placeholder\n * @param {object} data - data\n * @param {string} placeholder - placeholder\n * @param {object|null} attrs - object with dynamic data {number: 8}\n * @example\n * // default\n * translation('string')\n * @example\n * // with attrs\n * translation('...string %number% string...', {number: 8})\n * @return {string} - translation\n */\nfunction translation(data, placeholder, attrs = null) {\n    let out = '';\n\n    // check if key exist in array of translations\n    if (_.has(data, placeholder)) {\n        out = data[placeholder];\n\n        if (attrs) {\n            for (const key in attrs) {\n                out = _.replace(out, `%${key}%`, attrs[key])\n            }\n        }\n    }\n\n    return out;\n}\n\n/**\n * Add translation to api\n * @param {string} key - key of translation\n * @param {string} text - text of translation\n * @param {string} language - locale id\n * @return {object} - success message\n */\nfunction createTranslation(key, text, language) {\n    return post('users/codebooks');\n}\n\nexport const codebooksService = {\n    getAllCodebooks,\n    getCodeBookByKey,\n    translation,\n    getCodeBookByKeyAndValue,\n    createTranslation,\n};","import {get, patch, remove, post} from \"@/services/api\";\nimport axios from 'axios';\nimport {authenticationService} from \"@/services/authentication\";\n\n/**\n * Get courses from api\n * @param {int|null} filter_difficulty - filter by difficulty [1-3]\n * @return Axios\n */\nfunction getAll(filter_difficulty = 0) {\n    let params;\n\n    if (filter_difficulty > 0) {\n        params = {\n            params: {\n                filter_difficulty\n            }\n        }\n    }\n\n    return get('courses/', {}, params);\n}\n\n/**\n * Get courses from api\n * @return Axios\n */\nfunction getAllAdmin() {\n    return get('courses/admin', {});\n}\n\n/**\n * Get course from api\n * @param {int} id - course id\n * @return Axios\n */\nfunction getCourse(id) {\n    return get(`courses/${id}`, null);\n}\n\nasync function courseEnrollementData(id_order, academy_id, url, name, description, description_short, image, difficulty, language, is_active=true) {\n    return post('courses/create-from-admin', {\n        id_order,\n        academy_id,\n        url,\n        name,\n        description, \n        description_short, \n        image,\n        difficulty,\n        language,\n        is_active\n    }, false)\n}\n\n\nasync function lectureEnrollementData(name, description, description_short, type=1, language=5, duration_seconds=0, course_id, section_id, is_active, id_order) {\n    return post('courses/lecture', {\n        name, \n        description, \n        description_short, \n        type, \n        language, \n        duration_seconds, \n        course_id, \n        section_id, \n        is_active, \n        id_order\n    }, false)\n}\n\nasync function sectionCreateData(course_id, name, id_order=10) {\n    return post(`courses/section`, {\n        name, \n        id_order,\n        course_id\n    }, false)\n}\n\nfunction uploadVideo(formData, onUploadProgress) {\n    return axios.post(`/api/videos/lecture/${formData.get('lectureId')}`, formData, {\n      headers: {\n        'Authorization': `Bearer ${authenticationService.getAxiosToken()}`,\n        'Content-Type': 'multipart/form-data',\n      },\n      // Přidej onUploadProgress do konfigurace\n      onUploadProgress: (progressEvent) => {\n        const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);\n        if (onUploadProgress) {\n          onUploadProgress(percentCompleted);\n        }\n      }\n    });\n  }\n\nconst uploadCourseImage = (formData) => {\n    return post(`courses/image/${formData.get('courseId')}`, formData, {\n      headers: {\n        'Content-Type': 'multipart/form-data'\n      }\n    });\n  };\n\n\n\nasync function updateCourse(id, id_order, academy_id, url, name, description, description_short, image, difficulty, language, is_active) {\n    let data = {\n        id,\n        id_order,\n        academy_id,\n        url,\n        name,\n        description,\n        description_short,\n        image,\n        difficulty,\n        language,\n        is_active\n    }\n    \n    return patch(`courses/${id}`, data, false)\n}\n\n\nasync function updateCourseSection(id, name, id_order, course_id) {\n    let data = {\n        id,\n        name,\n        id_order,\n        course_id\n    }\n    \n    return patch(`courses/section/${id}`, data, false)\n}\n\n\nasync function updateLecture(id, name, id_order, description, description_short, is_active) {\n    let data = {\n        id,\n        name,\n        id_order,\n        description,\n        description_short,\n        is_active\n    }\n    \n    return patch(`courses/lecture/${id}`, data, false)\n}\n\n/**\n * Get all users from api\n * @return {list} - user data\n */\nasync function getCourseSections(courseId) {\n    try {\n        const response = await get(`courses/${courseId}/sections/admin`);\n\n        return response;\n    } catch (err) {\n        if (err instanceof AppError && err.data) {\n            store.dispatch('app/addFlashMessage', err.data)\n        } else {\n            throw err;\n        }\n    }\n}\n\n/**\n * Get all users from api\n * @return {list} - user data\n */\nasync function getCourseSectionLectures(sectionId) {\n    try {\n        const response = await get(`courses/lectures/${sectionId}/admin`);\n        return response;\n    } catch (err) {\n        if (err instanceof AppError && err.data) {\n            store.dispatch('app/addFlashMessage', err.data)\n        } else {\n            throw err;\n        }\n    }\n}\n\nasync function deleteCourse(id) {\n    let data = {\n        id       \n    }\n\n    return remove(`courses/${id}`, data, false)\n}\n\n\nasync function deleteCourseSection(id) {\n    let data = {\n        id       \n    }\n\n    return remove(`courses/section/${id}`, data, false)\n}\n\n\nasync function deleteLecture(id) {\n    let data = {\n        id       \n    }\n\n    return remove(`courses/lecture/${id}`, data, false)\n}\n\n\nexport const coursesService = {\n    getAll,\n    getAllAdmin,\n    getCourse,\n    courseEnrollementData,\n    lectureEnrollementData,\n    sectionCreateData,\n    updateCourse,\n    updateCourseSection,\n    updateLecture,\n    uploadVideo,\n    uploadCourseImage,\n    getCourseSections,\n    getCourseSectionLectures,\n    deleteCourse,\n    deleteCourseSection,\n    deleteLecture\n};","import {get, patch, post, remove} from \"@/services/api\";\n\n/**\n * Send analytical data about lecture by API\n * @param {object} data - analyticalData\n * @return Axios\n */\nfunction sendAnalyticalData(data) {\n    return patch(`enrollments/me/lecture`, data);\n}\n\n/**\n * Get courses enrolled by user\n * @return Axios\n */\nfunction getUserEnrollments() {\n    return get(`enrollments/me/courses`);\n}\n\n/**\n * Get badges by user\n * @return Axios\n */\nfunction getUserBadges() {\n    return get(`enrollments/me/badges`);\n}\n\n/**\n * Enroll user to course\n * @param {string} course_id - id of course\n * @param {string} user_id - id of user\n * @return Axios\n */\nfunction enrollCourse(course_id, user_id) {\n    return post(`enrollments/course`, {course_id, user_id});\n}\n\n/**\n * Get lecture data by ID from API\n * @param {int} id - lecture id\n * @return Axios\n */\nfunction getLectureData(id) {\n    return get(`enrollments/me/lectures/${id}`, null);\n}\n\n/**\n * Enroll user to lecture by API\n * @param {object} data - json data\n * @return Axios\n */\nfunction lectureEnrollment(data) {\n    return post(`enrollments/me/lecture/`, data);\n}\n\n/**\n * Complete lecture by API\n * @param {object} data - json data\n * @return Axios\n */\nfunction completeLecture(data) {\n    return post(`enrollments/me/lecture/complete`, data);\n}\n\n/**\n * Incomplete lecture by API\n * @param {int} id - lecture id\n * @return Axios\n */\nfunction incompleteLecture(id) {\n    return remove(`enrollments/me/lecture/${id}`);\n}\n\n/**\n * Delete course enrollment by API\n * @param {int} id - course id\n * @return Axios\n */\nfunction deleteCourseEnrollment(id) {\n    return remove(`enrollments/me/courses/${id}`);\n}\n\nexport const enrollmentsService = {\n    getUserEnrollments,\n    enrollCourse,\n    sendAnalyticalData,\n    getLectureData,\n    lectureEnrollment,\n    completeLecture,\n    incompleteLecture,\n    deleteCourseEnrollment,\n    getUserBadges\n};","// 400\nexport class BadRequestError extends Error {\n    constructor(message, data) {\n        super(message);\n        this.name = \"BadRequestError\";\n        this.data = data;\n    }\n}\n\n// 401\nexport class UnauthorizedError extends Error {\n    constructor(message, data) {\n        super(message);\n        this.name = \"UnauthorizedError\";\n        this.data = data;\n    }\n}\n\n// 403\nexport class ForbiddenError extends Error {\n    constructor(message, data) {\n        super(message);\n        this.name = \"PermissionDeniedError\";\n        this.data = data;\n    }\n}\n\n// 404\nexport class NotFoundError extends Error {\n    constructor(message) {\n        super(message);\n        this.name = \"NotFoundError\";\n    }\n}\n\n// 408\nexport class RequestTimeout extends Error {\n    constructor(message) {\n        super(message);\n        this.name = \"RequestTimeout\";\n    }\n}\n\n// 422\nexport class ValidationError extends Error {\n    constructor(message, data) {\n        super(message);\n        this.name = \"ValidationError\";\n        this.data = data;\n    }\n}\n\n// 500\nexport class InternalServerError extends Error {\n    constructor(message) {\n        super(message);\n        this.name = \"InternalServerError\";\n    }\n}\n\n// Other\nexport class AppError extends Error {\n    constructor(message, data) {\n        super(message);\n        this.name = \"AppError\";\n        this.data = data;\n    }\n}","import {post} from \"@/services/api\";\n\n/**\n * Make api call to send contact form\n * @param {string} subject - firstname\n * @param {string} body - lastname\n * @return {json} - return response from api\n */\nasync function sendContactForm(subject, body) {\n    return post('contact-form', {\n        subject,\n        body,\n    })\n}\n\n/**\n * Make api call to send consult form\n * @param {string} subject - firstname\n * @param {string} body - lastname\n * @param {string} email - lastname\n * @return {json} - return response from api\n */\nasync function sendConsultForm(subject, body, email) {\n    return post('consult-form', {\n        subject,\n        body,\n        email,\n    })\n}\n\nexport const generalService = {\n    sendContactForm,\n    sendConsultForm,\n};","import {get, post} from \"@/services/api\";\n\n\n/**\n * Get trainings from api\n * @return Axios\n */\nfunction getAllUpcoming(page, training_type = 0, ordering = 0) {\n    let params;\n  \n    params = {\n        params: {\n            page\n        }\n    }\n\n    if (training_type > 0) {\n        params['params']['training_type'] = training_type;\n    }\n\n    if (ordering > 0) {\n        params['params']['ordering'] = ordering;\n    }\n\n    const upcomingGet = get('trainings', {}, params);\n    return upcomingGet;\n}\n\n/**\n * Get trainings from api\n * @return Axios\n */\nfunction getAllUpcomingAdmin(page, training_type = 0, ordering = 0) {\n    let params;\n  \n    params = {\n        params: {\n            page\n        }\n    }\n\n    if (training_type > 0) {\n        params['params']['training_type'] = training_type;\n    }\n\n    if (ordering > 0) {\n        params['params']['ordering'] = ordering;\n    }\n\n    const upcomingGet = get('trainings/admin', {}, params);\n    return upcomingGet;\n}\n\nfunction getAllPast(page) {\n    let params;\n  \n    params = {\n        params: {\n            page\n        }\n    }\n\n    return get('trainings/past', {}, params);\n}\n\nfunction getTraining(id) {\n    const trainingData = get(`trainings/${id}`, null);\n    return trainingData;\n}\n\n/**\n * Make api call to user login\n * @param {number} training_id - training id\n * @param {string} firstname - firstname\n * @param {string} lastname - lastname\n * @param {string} email - email\n * @param {string} phone - phone\n * @param {boolean} signup \n * @return {json} - return response from api\n */\nasync function trainingEnrollmentData(training_id, firstname, lastname, email, phone, signup, comment, comment_up, motivation, highest_edu, field, language_edu, mpsv_url, origin=1, interest_state=7, mpsv_code, reg_number_npo, mpsv_number, candidates_address) {\n    return post('trainings/enroll', {\n        training_id,\n        firstname,\n        lastname,\n        email,\n        phone,\n        signup,\n        comment,\n        comment_up,\n        motivation,\n        highest_edu,\n        field,\n        language_edu,\n        mpsv_url,\n        origin,\n        interest_state,\n        mpsv_code,\n        reg_number_npo, \n        mpsv_number, \n        candidates_address\n    }, false)\n}\n\n\n/**\n * Make api call to user login\n * @param {number} training_id - training id\n * @param {string} firstname - firstname\n * @param {string} lastname - lastname\n * @param {string} email - email\n * @param {string} phone - phone\n * @param {boolean} signup \n * @return {json} - return response from api\n */\nasync function trainingEnrollmentDataAdmin(training_id, firstname, lastname, email, phone, signup, comment, comment_up, motivation, highest_edu, field, language_edu, mpsv_url, origin, interest_state, mpsv_code, reg_number_npo, mpsv_number, candidates_address) {\n    return post('trainings/enroll-from-admin', {\n        training_id,\n        firstname,\n        lastname,\n        email,\n        phone,\n        signup,\n        comment,\n        comment_up,\n        motivation,\n        highest_edu,\n        field,\n        language_edu,\n        mpsv_url,\n        origin,\n        interest_state,\n        mpsv_code, \n        reg_number_npo, \n        mpsv_number, \n        candidates_address\n    }, false)\n}\n\n\nexport const lectureService = {\n    getAllUpcoming,\n    getAllUpcomingAdmin,\n    getAllPast,\n    getTraining,\n    trainingEnrollmentData,\n    trainingEnrollmentDataAdmin\n};","import {get} from \"@/services/api\";\n\n/**\n * Get all programs from api\n *\n * @return Axios\n */\nfunction getAll() {\n    return get('study_programmes/');\n}\n\n/**\n * Get all programs with just base data\n *\n * @return Axios\n */\nfunction getAllSimple() {\n    return get('study_programmes/menu');\n}\n\n/**\n * Get program from api by id\n *\n * @param {int} id - program id\n * @return Axios\n */\nfunction getById(id) {\n    return get(`study_programmes/${id}`, null);\n}\n\n/**\n * Get programs for logged user\n *\n * @return Axios\n */\nfunction getForUser() {\n    return get(`study_programmes/user`, null);\n}\n\nexport const studyProgramsService = {\n    getAll,\n    getAllSimple,\n    getById,\n    getForUser,\n};","import {isApiResponseValid} from \"@/helpers/helpers\";\nimport {get, patch, post, remove} from \"@/services/api\";\nimport {AppError} from \"@/services/errors\";\nimport store from \"@/store\";\n\n/**\n * Get current user data from localStorage or from api\n * @param {boolean} getFromStorage - if can get data from local storage\n * @return {object} - user data\n */\nasync function getCurrentUser(getFromStorage = true) {\n    try {\n        const response = await get('users/me');\n\n        // check response\n        if (!isApiResponseValid(response)) {\n            throw new AppError('Error loading data', {\"message\": 'Chyba při načítání uživatele, zkuste obnovit stránku.', 'type': 'warning'})\n        }\n        // update data\n        return response.data;\n    } catch (err) {\n        if (err instanceof AppError && err.data) {\n            store.dispatch('app/addFlashMessage', err.data)\n        } else {\n            throw err;\n        }\n    }\n}\n\n/**\n * Get all users from api\n * @return {list} - user data\n */\nasync function getAllUsers() {\n    try {\n        const response = await get('users/');\n\n        // check response\n        if (!isApiResponseValid(response)) {\n            throw new AppError('Error loading data', {\"message\": 'Chyba při načítání uživatelů, zkuste obnovit stránku.', 'type': 'warning'})\n        }\n\n        // update data\n        return response;\n    } catch (err) {\n        if (err instanceof AppError && err.data) {\n            store.dispatch('app/addFlashMessage', err.data)\n        } else {\n            throw err;\n        }\n    }\n}\n\n/**\n * Get all users from api\n * @return {list} - user data\n */\nasync function getTrainingUsers(training_id) {\n    try {\n        const response = await get(`users/training/${training_id}`);\n\n        // check response\n        if (!isApiResponseValid(response)) {\n            throw new AppError('Error loading data', {\"message\": 'Chyba při načítání uživatelů, zkuste obnovit stránku.', 'type': 'warning'})\n        }\n\n        // update data\n        return response;\n    } catch (err) {\n        if (err instanceof AppError && err.data) {\n            store.dispatch('app/addFlashMessage', err.data)\n        } else {\n            throw err;\n        }\n    }\n}\n\n/**\n * Make api call to user login\n * @param {string} firstname - firstname\n * @param {string} lastname - lastname\n * @param {string} email - email\n * @param {string} password - password\n * @param {string} phone - phone\n * @param {boolean} newsletter_subscribed - newsletter\n * @param {boolean} university_student - student\n * @param {string} source - zdroj uživatele (např. digiskills)\n * @return {json} - return response from api\n */\nasync function createUser(firstname, lastname, email, password, phone = '', newsletter_subscribed = false, university_student = false, source= null) {\n    return post('users', {\n        firstname,\n        lastname,\n        phone,\n        email,\n        password,\n        newsletter_subscribed,\n        university_student,\n        language: 27,\n        source\n    }, false)\n}\n\n/**\n * Make api call to update user data\n * @param {number} userId - userId\n * @param {string} firstname - firstname\n * @param {string} lastname - lastname\n * @param {string} email - email\n * @param {string} phone - phone\n * @param {boolean} newsletter_subscribed - newsletter\n * @param {boolean} university_student - student\n * @param {boolean} contacted - zda byl uživatel kontaktován\n * @param {date} contacted_date - kdy byl uživatel kontaktován\n * @return {json} - return response from api\n */\nasync function updateUser(userId, firstname, lastname, email, phone = '', newsletter_subscribed = false, university_student = false, contacted = null, contacted_date = null) {\n    let data = {\n        firstname,\n        lastname,\n        phone,\n        email,\n        newsletter_subscribed,\n        university_student,\n        language: 27\n    }\n    if (contacted !== null)\n        data[\"contacted\"] = contacted\n    if (contacted_date !== null)\n        data[\"contacted_date\"] = contacted_date\n    return patch(`users/${userId}`, data, false)\n}\n\n/**\n * Make api call to update user data\n * @param {number} id - Id\n * @param {number} training_id - userId\n * @param {number} user_id - userId\n * @param {string} firstname - firstname\n * @param {string} lastname - lastname\n * @param {string} email - email\n * @param {string} phone - phone\n * @param {boolean} mpsv_active\n * @param {string} comment - comment\n * @param {string} comment_up - comment_up\n * @param {string} motivation - motivation\n * @param {string} highest_edu - highest_edu\n * @param {string} field - field\n * @param {string} language_edu - language_edu\n * @param {string} mpsv_url - mpsv_url\n * @param {number} origin - origin\n * @param {string} interest_state - interest_state\n * @param {string} mpsv_code - mpsv_code\n * @param {string} reg_number_npo - reg_number_npo\n * @param {string} mpsv_number - mpsv_number\n * @param {string} candidates_address - candidates_address\n * @return {json} - return response from api\n */\nasync function updateTrainingUser(id, training_id, user_id = null, firstname, lastname, email, phone = '', mpsv_active, comment, comment_up, motivation, highest_edu, field, language_edu, mpsv_url, origin, interest_state, mpsv_code, reg_number_npo, mpsv_number, candidates_address) {\n    let data = {\n        id,\n        training_id,\n        user_id,\n        firstname,\n        lastname,\n        email,\n        phone,\n        mpsv_active,\n        comment,\n        comment_up,\n        motivation,\n        highest_edu,\n        field,\n        language_edu,\n        mpsv_url,\n        origin,\n        interest_state,\n        mpsv_code, \n        reg_number_npo, \n        mpsv_number, \n        candidates_address\n    }\n    \n    return patch(`users/training/${id}`, data, false)\n}\n\n/**\n * Make api call to update user data\n * @param {number} id - Id\n * @return {json} - return response from api\n */\n\nasync function deleteTrainingUser(id) {\n    let data = {\n        id       \n    }\n\n    return remove(`users/training/${id}`, data, false)\n}\n\n\n\nexport const userService = {\n    getCurrentUser,\n    createUser,\n    updateUser,\n    updateTrainingUser,\n    deleteTrainingUser,\n    getAllUsers,\n    getTrainingUsers\n};"],"names":["getAll","data","localStorage","getItem","JSON","parse","add","message","id","Date","now","setItem","stringify","remove","alertMessages","apiUrl","get","url","params","secured","request","post","put","patch","method","config","headers","Authorization","authenticationService","axios","catch","err","response","Error","status","errors","detail","getById","submitAnswers","assessment_id","answers","assessmentsService","async","login","username","password","URLSearchParams","append","isApiResponseValid","access_token","AppError","setAxiosToken","store","forgotPassword","email","resetPassword","token","new_password","getAxiosToken","logout","removeItem","includes","location","page","reload","href","checkAccess","loggedIn","redirect","userRole","window","getCurrentPage","pageId","currentPage","appMainElement","document","querySelector","dataset","course_id","article_id","study_program_id","parseInt","authorizationService","getArticle","blogService","getDataFromApi","endpoint","language","academy_id","getVersion","getDataFromLocalStorage","saveDataToLocalStorage","getAllCodebooks","versionLocal","versionApi","matchVersions","dataApi","getCodeBookByKey","key","out","_","getCodeBookByKeyAndValue","value","translation","placeholder","attrs","createTranslation","text","codebooksService","filter_difficulty","getAllAdmin","getCourse","courseEnrollementData","id_order","name","description","description_short","image","difficulty","is_active","lectureEnrollementData","type","duration_seconds","section_id","sectionCreateData","uploadVideo","formData","onUploadProgress","progressEvent","percentCompleted","Math","round","loaded","total","uploadCourseImage","updateCourse","updateCourseSection","updateLecture","getCourseSections","courseId","dispatch","getCourseSectionLectures","sectionId","deleteCourse","deleteCourseSection","deleteLecture","coursesService","sendAnalyticalData","getUserEnrollments","getUserBadges","enrollCourse","user_id","getLectureData","lectureEnrollment","completeLecture","incompleteLecture","deleteCourseEnrollment","enrollmentsService","BadRequestError","constructor","super","this","UnauthorizedError","ForbiddenError","NotFoundError","RequestTimeout","ValidationError","InternalServerError","sendContactForm","subject","body","sendConsultForm","generalService","getAllUpcoming","training_type","ordering","upcomingGet","getAllUpcomingAdmin","getAllPast","getTraining","trainingData","trainingEnrollmentData","training_id","firstname","lastname","phone","signup","comment","comment_up","motivation","highest_edu","field","language_edu","mpsv_url","origin","interest_state","mpsv_code","reg_number_npo","mpsv_number","candidates_address","trainingEnrollmentDataAdmin","lectureService","getAllSimple","getForUser","studyProgramsService","getCurrentUser","getFromStorage","getAllUsers","getTrainingUsers","createUser","newsletter_subscribed","university_student","source","updateUser","userId","contacted","contacted_date","updateTrainingUser","mpsv_active","deleteTrainingUser","userService"],"sourceRoot":""}