{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./infrastructure/presentation/assets/static/landingPageGTop/preceiro.png","webpack:///./infrastructure/presentation/assets/static/onerror-user.png","webpack:///./infrastructure/presentation/components/application/moldure/Footer.vue?834b","webpack:///./infrastructure/presentation/assets/static/home/mission-icons sync ^\\.\\/.*$","webpack:///./infrastructure/presentation/components/landingpageGTop/ResetPassword.vue?54d7","webpack:///./infrastructure/presentation/views/LandingPageCirculo.vue?36fa","webpack:///./infrastructure/repository/content_provider/course/content_repository.ts","webpack:///./domain/usecase/content_provider/rules.ts","webpack:///./domain/usecase/content_provider/course/content_repository.ts","webpack:///./infrastructure/presentation/components/application/filters/Card.vue?f5c9","webpack:///./infrastructure/presentation/components/application/filters/Card.vue?dccf","webpack:///./infrastructure/presentation/components/application/filters/Card.vue","webpack:///./domain/entities/shop/filter/prices.ts","webpack:///./infrastructure/presentation/assets/static/landingPageGTop/logo-transparent.svg","webpack:///./infrastructure/presentation/components/application/moldure/Header.vue?ba49","webpack:///./infrastructure/presentation/components/application/moldure/menu-user/Menu.vue?9a7f","webpack:///./infrastructure/presentation/components/application/moldure/menu-user/Item.vue?65d4","webpack:///./infrastructure/presentation/components/application/moldure/menu-user/Item.vue?5eaa","webpack:///./infrastructure/presentation/components/application/moldure/menu-user/Item.vue","webpack:///./infrastructure/presentation/components/application/moldure/menu-user/MenuItem.ts","webpack:///./infrastructure/presentation/components/application/moldure/menu-user/Menu.vue?7617","webpack:///./infrastructure/presentation/components/application/moldure/menu-user/Menu.vue","webpack:///./infrastructure/presentation/components/application/notification/Notification.vue?8919","webpack:///./infrastructure/presentation/components/application/notification/NotificationButton.vue?4d7e","webpack:///./infrastructure/presentation/components/application/notification/NotificationButton.vue?f4d0","webpack:///./infrastructure/presentation/components/application/notification/NotificationButton.vue","webpack:///./infrastructure/presentation/components/application/notification/NotificationList.vue?76b9","webpack:///./domain/enums/notification.ts","webpack:///./infrastructure/presentation/components/application/notification/NotificationItem.vue?0dc7","webpack:///./infrastructure/presentation/components/application/notification/NotificationItem.vue?5656","webpack:///./infrastructure/presentation/components/application/notification/NotificationItem.vue","webpack:///./infrastructure/presentation/components/application/notification/NotificationList.vue?b132","webpack:///./infrastructure/presentation/components/application/notification/NotificationList.vue","webpack:///./infrastructure/presentation/components/application/notification/Notification.vue?ed5f","webpack:///./infrastructure/presentation/components/application/notification/Notification.vue","webpack:///./infrastructure/presentation/components/application/moldure/Header.vue?a3b2","webpack:///./infrastructure/presentation/components/application/moldure/Header.vue","webpack:///./infrastructure/presentation/components/landingpage/RegisterModal.vue?af6c","webpack:///./infrastructure/presentation/assets/static/landingPageGTop sync ^\\.\\/.*$","webpack:///./infrastructure/presentation/assets/static/home/mission-icons/administracao-icon.png","webpack:///./infrastructure/presentation/components/application/DashboardComments/Comment.vue?9a52","webpack:///./infrastructure/presentation/components/application/DashboardComments/Comment.vue?bcc5","webpack:///./infrastructure/presentation/components/application/DashboardComments/Comment.vue","webpack:///./infrastructure/presentation/components/application/CropperImageInput.vue?a22d","webpack:///./infrastructure/presentation/components/application/CropperImageInput.vue?660c","webpack:///./infrastructure/presentation/components/application/CropperImageInput.vue?e66e","webpack:///./infrastructure/presentation/components/application/CropperImageInput.vue","webpack:///./infrastructure/presentation/components/application/modals/DecoinsLimitModal.vue?3423","webpack:///./domain/entities/entities.ts","webpack:///./infrastructure/presentation/components/application/filters/Card.vue?e955","webpack:///./infrastructure/presentation/components/application/ModalIntroductoryContent.vue?a656","webpack:///./infrastructure/presentation/assets/static/main-menu/statement.svg","webpack:///./infrastructure/presentation/components/application/flags/NewContentEventFlag.vue?5be4","webpack:///./infrastructure/presentation/components/landingpageGTop/Footer.vue?6539","webpack:///./domain/entities/courseEvent/courseEvent.ts","webpack:///./infrastructure/presentation/assets/static/footer/instagram.svg","webpack:///./infrastructure/presentation/components/landingpageCirculo/LoginFormCirculo.vue?4e59","webpack:///./infrastructure/presentation/assets/static/onboarding/astronaut.png","webpack:///./infrastructure/presentation/views/LandingPage.vue?5b44","webpack:///./infrastructure/presentation/components/landingpageGTop/ModalTerm.vue?893d","webpack:///./infrastructure/presentation/components/application/moldure/menu-user/Menu.vue?f367","webpack:///./infrastructure/presentation/assets/static/landingPageGTop/bannerDesktop.jpg","webpack:///./infrastructure/presentation/assets/static/main-menu/menu-icon.png","webpack:///./infrastructure/presentation/components/application/ModalIntroductoryContent.vue?8edd","webpack:///./infrastructure/presentation/components/application/ModalIntroductoryContent.vue?0afc","webpack:///./infrastructure/presentation/components/application/ModalIntroductoryContent.vue","webpack:///./infrastructure/presentation/components/application/ErrorBox.vue?d2ec","webpack:///./infrastructure/presentation/components/application/buttons/VideoPlay.vue?9b6f","webpack:///./domain/entities/courseEvent/training_course.ts","webpack:///./infrastructure/presentation/assets/static/main-menu/user.svg","webpack:///./infrastructure/presentation/components/landingpageCirculo/RegisterModal.vue?eb36","webpack:///./infrastructure/presentation/assets/static/decola_logos/iconDecolaSmall.svg","webpack:///./infrastructure/presentation/assets/static/landingPageGTop/redetop.png","webpack:///./infrastructure/presentation/components/landingpage/ResetPassword.vue?7511","webpack:///./infrastructure/presentation/components/landingpageCirculo/Call.vue?2205","webpack:///./infrastructure/presentation/components/application/ProgressBar.vue?85bd","webpack:///./infrastructure/presentation/components/application/ProgressBar.vue?9b42","webpack:///./infrastructure/presentation/components/application/ProgressBar.vue","webpack:///./infrastructure/repository/content_provider/event/content_repository.ts","webpack:///./domain/usecase/content_provider/event/content_repository.ts","webpack:///./infrastructure/presentation/components/landingpage/Introduction.vue?00d5","webpack:///./infrastructure/presentation/components/landingpage/ModalTerm.vue?cbab","webpack:///./infrastructure/presentation/components/landingpageCirculo/LandingPageCirculoSection.vue?98a0","webpack:///./infrastructure/presentation/components/application/Event.vue?6bca","webpack:///./infrastructure/presentation/assets/static/main-menu/shop.png","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetPasswordComponent.vue?521b","webpack:///./infrastructure/presentation/views/LandingPageGTop.vue?7969","webpack:///./infrastructure/presentation/components/landingpageGTop/ResetPassword.vue?a793","webpack:///./infrastructure/presentation/components/landingpageCirculo/Divisor.vue?f042","webpack:///./infrastructure/presentation/assets/static/home/mission-icons/lideranca-icon.png","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetOptions.vue?722d","webpack:///./infrastructure/presentation/assets/static/landingPageGTop/bannerMobile.svg","webpack:///./infrastructure/presentation/components/landingpage/ResetPassword.vue?ac91","webpack:///./infrastructure/presentation/assets/static/companies_logos/ganhemais-white.svg","webpack:///./infrastructure/presentation/utils/wrap_loading.ts","webpack:///./infrastructure/presentation/assets/static/decola_logos/logo04_sem_slogan.svg","webpack:///./infrastructure/presentation/components/mixins.ts","webpack:///./infrastructure/repository/utils/routing_utils.ts","webpack:///./infrastructure/presentation/assets/static/main-menu/admin-icon.svg","webpack:///./infrastructure/presentation/components/application/flags/NewContentEventFlag.vue","webpack:///./infrastructure/presentation/components/application/flags/NewContentEventFlag.vue?c698","webpack:///./infrastructure/presentation/components/application/moldure/menu-user/Item.vue?d62b","webpack:///./infrastructure/presentation/components/application/buttons/VideoPlay.vue?9911","webpack:///./infrastructure/presentation/components/application/buttons/VideoPlay.vue?3091","webpack:///./infrastructure/presentation/components/application/buttons/VideoPlay.vue","webpack:///./infrastructure/presentation/components/application/TUIViewer.vue?3420","webpack:///./infrastructure/presentation/components/application/TUIViewer.vue?2ed1","webpack:///./infrastructure/presentation/components/application/TUIViewer.vue","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout5.vue?f526","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout3.vue?a45b","webpack:///./infrastructure/presentation/components/application/moldure/Moldure.vue?7846","webpack:///./infrastructure/presentation/assets/static/home/mission-icons/ferramentas.svg","webpack:///./infrastructure/presentation/components/application/DashboardComments/CommentsModal.vue?d092","webpack:///./infrastructure/presentation/components/application/notification/NotificationList.vue?64a0","webpack:///./infrastructure/presentation/components/application/forms/ResetOptions.vue?5d97","webpack:///./infrastructure/presentation/components/application/shop/Loading.vue?e773","webpack:///./infrastructure/presentation/assets/static/footer/facebook.svg","webpack:///./infrastructure/presentation/components/landingpageGTop/FirstLogin.vue?9c39","webpack:///./infrastructure/presentation/assets/static/onboarding/smallest-planet.svg","webpack:///./infrastructure/repository/impl/authentication_repository.ts","webpack:///./domain/usecase/impl/authenticationUseCases.ts","webpack:///./infrastructure/presentation/components/application/OngoingCourse.vue?bf83","webpack:///./infrastructure/presentation/components/landingpageGTop/Mission.vue?120b","webpack:///./infrastructure/presentation/components/application/CourseTrack.vue?4691","webpack:///./infrastructure/presentation/components/landingpageGTop/Supporters.vue?7df8","webpack:///./infrastructure/presentation/components/landingpage/SectionDivisor.vue?717a","webpack:///./infrastructure/presentation/components/landingpage/FirstLogin.vue?3cec","webpack:///./infrastructure/presentation/components/landingpage/SectionDivisor.vue?4840","webpack:///./infrastructure/presentation/components/landingpage/SectionDivisor.vue?1691","webpack:///./infrastructure/presentation/components/landingpage/SectionDivisor.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/NewPassword.vue?569f","webpack:///./infrastructure/presentation/assets/static/landingPageGTop/valores.svg","webpack:///./infrastructure/presentation/assets/static/main-menu/events.svg","webpack:///./domain/enums/course.ts","webpack:///./infrastructure/presentation/components/application/CourseTrack.vue?dc15","webpack:///./infrastructure/presentation/assets/static/home/mission-icons/ferramentas-icon.png","webpack:///./infrastructure/presentation/components/application/DashboardComments/ButtonComment.vue?1de6","webpack:///./infrastructure/presentation/components/application/forms/IdentityForm.vue?a3bd","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout2.vue?171f","webpack:///./infrastructure/presentation/components/landingpage/Login.vue?bd68","webpack:///./infrastructure/presentation/views/Dashboard.vue?b390","webpack:///./infrastructure/presentation/components/Stories/Stories.vue?ec56","webpack:///./infrastructure/presentation/components/Stories/Stories.vue?b681","webpack:///./infrastructure/presentation/components/Stories/Stories.vue","webpack:///./infrastructure/presentation/components/application/School.vue?bd4d","webpack:///./infrastructure/presentation/components/application/School.vue?a481","webpack:///./infrastructure/presentation/components/application/School.vue","webpack:///./infrastructure/presentation/components/application/onboarding/OnboardingBox.vue?48c5","webpack:///./infrastructure/presentation/components/application/onboarding/OnboardingBox.vue?ee7c","webpack:///./infrastructure/presentation/components/application/onboarding/OnboardingBox.vue","webpack:///./infrastructure/presentation/components/application/onboarding/Steps.vue?efc4","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout1.vue?32b6","webpack:///./infrastructure/presentation/components/application/onboarding/MessageBox.vue","webpack:///./infrastructure/presentation/components/application/onboarding/MessageBox.vue?64af","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout1.vue?a2c4","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout1.vue","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout2.vue?35c8","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout2.vue?c540","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout2.vue","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout3.vue?143c","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout3.vue?1b5b","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout3.vue","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout4.vue?7752","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout4.vue?91a5","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout4.vue","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout5.vue?7c1a","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout5.vue?0145","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout5.vue","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout6.vue?c981","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout6.vue?b50e","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout6.vue","webpack:///./infrastructure/presentation/components/application/onboarding/Steps.vue?89c2","webpack:///./infrastructure/presentation/components/application/onboarding/Steps.vue","webpack:///./infrastructure/presentation/components/application/Event.vue?c257","webpack:///./infrastructure/presentation/components/application/Event.vue?d01d","webpack:///./infrastructure/presentation/components/application/Event.vue","webpack:///./infrastructure/presentation/components/application/inputs/SelectBox.vue?9040","webpack:///./infrastructure/presentation/components/application/inputs/SelectBox.vue?813d","webpack:///./infrastructure/presentation/components/application/inputs/SelectBox.vue","webpack:///./infrastructure/presentation/components/application/OngoingCourse.vue?4f06","webpack:///./infrastructure/presentation/components/application/OngoingCourse.vue?be7b","webpack:///./infrastructure/presentation/components/application/OngoingCourse.vue","webpack:///./infrastructure/presentation/components/application/NewCourse.vue?a92d","webpack:///./infrastructure/presentation/components/application/NewCourse.vue?3758","webpack:///./infrastructure/presentation/components/application/NewCourse.vue","webpack:///./infrastructure/presentation/components/Stories/Pill.vue?b814","webpack:///./infrastructure/presentation/components/Stories/Pill.vue?ea3f","webpack:///./infrastructure/presentation/components/Stories/Pill.vue","webpack:///./infrastructure/presentation/components/Stories/PillLoader.vue","webpack:///./infrastructure/presentation/components/Stories/PillLoader.vue?aee5","webpack:///./infrastructure/presentation/views/information/InfoIcon.vue?f2d7","webpack:///./infrastructure/presentation/views/information/InfoIcon.vue?d1d2","webpack:///./infrastructure/presentation/views/information/InfoIcon.vue","webpack:///./infrastructure/presentation/views/information/InfoPanel.vue?4a69","webpack:///./infrastructure/presentation/views/information/InfoPanel.vue?a95e","webpack:///./infrastructure/presentation/views/information/InfoPanel.vue","webpack:///./infrastructure/presentation/views/Dashboard.vue?ed3d","webpack:///./infrastructure/presentation/views/Dashboard.vue","webpack:///./infrastructure/presentation/components/application/NewCourse.vue?6498","webpack:///./infrastructure/presentation/components/application/shop/PaginationDefault.vue?4574","webpack:///./infrastructure/presentation/components/application/shop/PaginationDefault.vue?bd8f","webpack:///./infrastructure/presentation/components/application/shop/PaginationDefault.vue","webpack:///./infrastructure/presentation/components/landingpage/FirstLogin.vue?4d49","webpack:///./infrastructure/presentation/components/application/inputs/TextInput.vue?cb92","webpack:///./infrastructure/presentation/components/application/inputs/TextInput.vue?50f9","webpack:///./infrastructure/presentation/components/application/inputs/TextInput.vue","webpack:///./infrastructure/presentation/assets/static/landingPageGTop/missao.svg","webpack:///./infrastructure/presentation/components/application/CourseTrack.vue?0d74","webpack:///./infrastructure/presentation/components/application/CourseTrack.vue?0a8a","webpack:///./infrastructure/presentation/components/application/CourseTrack.vue","webpack:///./infrastructure/presentation/components/application/DashboardComments/CommentsModal.vue?ac01","webpack:///./infrastructure/presentation/components/application/DashboardComments/CommentsModal.vue?580a","webpack:///./infrastructure/presentation/components/application/DashboardComments/CommentsModal.vue","webpack:///./infrastructure/presentation/assets/static/home/mission-icons/corporativa-icon.png","webpack:///./infrastructure/presentation/components/application/moldure/ContentFallback.vue?f4ce","webpack:///./infrastructure/presentation/components/application/moldure/ContentFallback.vue","webpack:///./infrastructure/presentation/components/application/moldure/ContentFallback.vue?07f4","webpack:///./infrastructure/presentation/assets/static/main-menu/logout.svg","webpack:///./infrastructure/presentation/assets/static/main-menu/dashboard-icon.png","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout1.vue?109b","webpack:///./infrastructure/presentation/components/application/moldure/menu/Menu.vue?a7fb","webpack:///./infrastructure/presentation/components/application/CropperImageInput.vue?f094","webpack:///./infrastructure/presentation/components/Stories/Stories.vue?b3b5","webpack:///./infrastructure/presentation/components/landingpageGTop/RegisterModal.vue?2bd6","webpack:///./infrastructure/presentation/components/application/onboarding/MessageBox.vue?cdc6","webpack:///./infrastructure/presentation/components/application/School.vue?b79e","webpack:///./infrastructure/repository/http/index.ts","webpack:///./infrastructure/presentation/components/application/forms/NewPassword.vue?24ec","webpack:///./infrastructure/presentation/components/application/Course.vue?ea50","webpack:///./infrastructure/presentation/assets/static/landingPageGTop/logo-hub-white.png","webpack:///./infrastructure/presentation/components/application/moldure/Footer.vue?5bec","webpack:///./infrastructure/presentation/components/application/moldure/Footer.vue?84d1","webpack:///./infrastructure/presentation/components/application/moldure/Footer.vue","webpack:///./infrastructure/presentation/components/application/TUIViewer.vue?5fa6","webpack:///./infrastructure/presentation/views/Dashboard.vue?0f34","webpack:///./infrastructure/presentation/components/application/forms/modernInput.vue?7ca7","webpack:///./infrastructure/presentation/assets/static/home/mission-icons/operacoes-icon.png","webpack:///./infrastructure/presentation/components/landingpageGTop/Call.vue?7825","webpack:///./infrastructure/presentation/components/landingpageGTop/Card.vue?d6c2","webpack:///./infrastructure/repository/impl/course_repository.ts","webpack:///./domain/usecase/impl/courseUseCases.ts","webpack:///./infrastructure/presentation/components/application/notification/NotificationButton.vue?16c2","webpack:///./infrastructure/presentation/assets/static/global-outlined-white.svg","webpack:///./infrastructure/presentation/components/application/AlertBox.vue?aac8","webpack:///./infrastructure/presentation/components/application/notification/NotificationItem.vue?f9fa","webpack:///./infrastructure/presentation/components/Stories/Stories.vue?44cd","webpack:///./infrastructure/presentation/assets/static/main-menu/dashboard.svg","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout6.vue?121d","webpack:///./infrastructure/presentation/components/application/DashboardComments/Comment.vue?6bd8","webpack:///./infrastructure/presentation/components/landingpageGTop/RegisterModal.vue?a88b","webpack:///./infrastructure/repository/utils/wrap_error_handler.ts","webpack:///./infrastructure/presentation/components/Stories/Pill.vue?0ccb","webpack:///./infrastructure/presentation/components/application/onboarding/steps/Layout4.vue?f89e","webpack:///./infrastructure/presentation/components/application/moldure/Moldure.vue?f197","webpack:///./infrastructure/presentation/components/application/moldure/menu/Menu.vue?859c","webpack:///./infrastructure/presentation/components/application/moldure/menu/Menu.vue?2042","webpack:///./infrastructure/presentation/components/application/moldure/menu/Menu.vue","webpack:///./infrastructure/presentation/components/application/moldure/Moldure.vue?a524","webpack:///./infrastructure/presentation/components/application/moldure/Moldure.vue","webpack:///./infrastructure/presentation/components/application/forms/InputPassword.vue?ed41","webpack:///./infrastructure/presentation/components/composables/carousel_mouse_events.ts","webpack:///./domain/entities/order.ts","webpack:///./infrastructure/presentation/utils/order_utils.ts","webpack:///./domain/entities/rating.ts","webpack:///./infrastructure/presentation/assets/static/companies_logos/ganhemais02.svg","webpack:///./infrastructure/presentation/components/application/forms/LoginForm.vue?eac5","webpack:///./infrastructure/presentation/components/application/Course.vue?9dc1","webpack:///./infrastructure/presentation/components/application/Course.vue?ff23","webpack:///./infrastructure/presentation/components/application/Course.vue","webpack:///./infrastructure/presentation/components/landingpage/RegisterModal.vue?4c6d","webpack:///./infrastructure/presentation/assets/static/main-menu/shop.svg","webpack:///./src/App.vue?9fc1","webpack:///./infrastructure/presentation/assets/static/onboarding/biggest-planet.svg","webpack:///./infrastructure/presentation/utils/error_handling.ts","webpack:///./infrastructure/presentation/components/application/onboarding/OnboardingBox.vue?d17d","webpack:///./infrastructure/presentation/components/application/forms/ResetPassword.vue?09e2","webpack:///./src/App.vue","webpack:///./infrastructure/presentation/components/application/ErrorBox.vue?bdec","webpack:///./infrastructure/presentation/components/application/ErrorBox.vue?957e","webpack:///./infrastructure/presentation/components/application/ErrorBox.vue","webpack:///./infrastructure/presentation/components/application/SuccessBox.vue?b10d","webpack:///./infrastructure/presentation/components/application/SuccessBox.vue?70fb","webpack:///./infrastructure/presentation/components/application/SuccessBox.vue","webpack:///./infrastructure/presentation/components/application/AlertBox.vue?909b","webpack:///./infrastructure/presentation/components/application/AlertBox.vue?09af","webpack:///./infrastructure/presentation/components/application/AlertBox.vue","webpack:///./infrastructure/presentation/components/application/shop/Loading.vue?2685","webpack:///./infrastructure/presentation/components/application/shop/Loading.vue?c279","webpack:///./infrastructure/presentation/components/application/shop/Loading.vue","webpack:///./infrastructure/presentation/components/application/modals/DecoinsLimitModal.vue?b168","webpack:///./infrastructure/presentation/components/application/modals/DecoinsLimitModal.vue?bc92","webpack:///./infrastructure/presentation/components/application/modals/DecoinsLimitModal.vue","webpack:///./src/App.vue?eabf","webpack:///./src/main.ts","webpack:///./infrastructure/presentation/components/application/ProgressBar.vue?ef68","webpack:///./infrastructure/presentation/components/application/TUIViewer.vue?79e3","webpack:///./infrastructure/presentation/components/landingpage/Card.vue?ca0d","webpack:///./infrastructure/presentation/components/Stories/PillLoader.vue?19d4","webpack:///./infrastructure/presentation/assets/static/footer/linkedin.svg","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetPassword.vue?51bd","webpack:///./infrastructure/presentation/assets/static/main-menu/arrow-user.svg","webpack:///./infrastructure/presentation/components/application/shop/PaginationDefault.vue?adac","webpack:///./domain/entities/shop/filter/shop.ts","webpack:///./domain/entities/shop/product/product.ts","webpack:///./infrastructure/presentation/assets/static/main-menu/statistics.svg","webpack:///./infrastructure/presentation/components/landingpageGTop/SectionDivisor.vue?5add","webpack:///./infrastructure/presentation/assets/static/main-menu/order.svg","webpack:///./infrastructure/presentation/components/application/moldure/menu/MenuItemsLoader.ts","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetPasswordSuccess.vue?8a9c","webpack:///./infrastructure/presentation/assets/static/landingPageGTop/visao.svg","webpack:///./infrastructure/presentation/components/application/inputs/SelectBox.vue?65b5","webpack:///./infrastructure/presentation/assets/static/decola_logos/new_logo_sem_slogan_white.svg","webpack:///./infrastructure/presentation/assets/static/landingPageGTop/logo.svg","webpack:///./infrastructure/presentation/assets/static/main-menu/admin-icon.png","webpack:///./infrastructure/presentation/components/landingpage/Call.vue?46a7","webpack:///./domain/exceptions/exceptions.ts","webpack:///./infrastructure/presentation/assets/static/home/mission-icons/mercado-icon.png","webpack:///./infrastructure/presentation/components/application/moldure/menu/MenuItem.ts","webpack:///./infrastructure/presentation/components/landingpageGTop/Introduction.vue?b201","webpack:///./infrastructure/repository/scripts/clarity.js","webpack:///./infrastructure/presentation/components/landingpageCirculo/About.vue?081e","webpack:///./domain/entities/content/content.ts","webpack:///./infrastructure/presentation/views/information/InfoPanel.vue?4fd4","webpack:///./infrastructure/presentation/components/application/SuccessBox.vue?df5c","webpack:///./infrastructure/presentation/components/landingpageGTop/FirstLogin.vue?23ad","webpack:///./infrastructure/presentation/utils/routing_utils.ts","webpack:///./infrastructure/presentation/views/content/menu/ContentAnnotationNotifier.ts","webpack:///./infrastructure/presentation/views/information/InfoIcon.vue?e082","webpack:///./infrastructure/presentation/components/application/inputs/TextInput.vue?07cc","webpack:///./src/routes/middleware.ts","webpack:///./infrastructure/presentation/views/LandingPage.vue?e683","webpack:///./infrastructure/presentation/components/landingpage/Call.vue?ddfc","webpack:///./infrastructure/presentation/components/landingpage/Login.vue?093e","webpack:///./infrastructure/presentation/components/application/forms/LoginForm.vue?8a52","webpack:///./infrastructure/presentation/components/landingpage/ModalTerm.vue?e287","webpack:///./infrastructure/presentation/components/landingpage/ModalTerm.vue?8aac","webpack:///./infrastructure/presentation/components/landingpage/ModalTerm.vue","webpack:///./infrastructure/presentation/components/application/forms/LoginForm.vue?7965","webpack:///./infrastructure/presentation/components/application/forms/LoginForm.vue","webpack:///./infrastructure/presentation/components/landingpage/RegisterModal.vue?e552","webpack:///./infrastructure/presentation/components/application/forms/IdentityForm.vue?29ff","webpack:///./infrastructure/presentation/components/application/forms/modernInput.vue?f549","webpack:///./infrastructure/presentation/components/application/forms/modernInput.vue?661a","webpack:///./infrastructure/presentation/components/application/forms/modernInput.vue","webpack:///./infrastructure/presentation/components/application/forms/IdentityForm.vue?9280","webpack:///./infrastructure/presentation/components/application/forms/IdentityForm.vue","webpack:///./infrastructure/presentation/components/application/forms/InputPassword.vue?1175","webpack:///./infrastructure/presentation/components/application/forms/InputPassword.vue?43f8","webpack:///./infrastructure/presentation/components/application/forms/InputPassword.vue","webpack:///./infrastructure/presentation/components/landingpage/RegisterModal.vue?ff31","webpack:///./infrastructure/presentation/components/landingpage/RegisterModal.vue","webpack:///./infrastructure/presentation/components/landingpage/Login.vue?9cf3","webpack:///./infrastructure/presentation/components/landingpage/Login.vue","webpack:///./infrastructure/presentation/components/landingpage/Card.vue?01f5","webpack:///./infrastructure/presentation/components/landingpage/Card.vue?523c","webpack:///./infrastructure/presentation/components/landingpage/Card.vue","webpack:///./infrastructure/presentation/components/landingpage/Call.vue?3495","webpack:///./infrastructure/presentation/components/landingpage/Call.vue","webpack:///./infrastructure/presentation/components/landingpage/Introduction.vue?3cfb","webpack:///./infrastructure/presentation/components/landingpage/Introduction.vue?d468","webpack:///./infrastructure/presentation/components/landingpage/Introduction.vue","webpack:///./infrastructure/presentation/components/landingpage/Mission.vue?6c83","webpack:///./infrastructure/presentation/components/landingpage/Mission.vue?c79b","webpack:///./infrastructure/presentation/components/landingpage/Mission.vue","webpack:///./infrastructure/presentation/components/landingpage/ResetPassword.vue?8450","webpack:///./infrastructure/presentation/components/application/forms/ResetPassword.vue?908a","webpack:///./infrastructure/presentation/components/application/forms/ResetPassword.vue?ec61","webpack:///./infrastructure/presentation/components/application/forms/ResetPassword.vue","webpack:///./infrastructure/presentation/components/application/forms/ResetPasswordSuccess.vue?1da8","webpack:///./infrastructure/presentation/components/application/forms/ResetPasswordSuccess.vue?65e1","webpack:///./infrastructure/presentation/components/application/forms/ResetPasswordSuccess.vue","webpack:///./infrastructure/presentation/components/application/forms/NewPassword.vue?622f","webpack:///./infrastructure/presentation/components/application/forms/NewPassword.vue?4a61","webpack:///./infrastructure/presentation/components/application/forms/NewPassword.vue","webpack:///./infrastructure/presentation/components/application/forms/ResetOptions.vue","webpack:///./infrastructure/presentation/components/application/forms/ResetOptions.vue?fbaf","webpack:///./infrastructure/presentation/components/landingpage/ResetPassword.vue?7e62","webpack:///./infrastructure/presentation/components/landingpage/ResetPassword.vue","webpack:///./infrastructure/presentation/components/landingpage/FirstLogin.vue?7e59","webpack:///./infrastructure/presentation/components/landingpage/FirstLogin.vue?bbcf","webpack:///./infrastructure/presentation/components/landingpage/FirstLogin.vue","webpack:///./infrastructure/presentation/components/landingpage/Faq.vue?b232","webpack:///./infrastructure/presentation/components/landingpage/Faq.vue?0859","webpack:///./infrastructure/presentation/components/landingpage/Faq.vue","webpack:///./infrastructure/presentation/views/LandingPage.vue?4364","webpack:///./infrastructure/presentation/views/LandingPage.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/Call.vue?d42c","webpack:///./infrastructure/presentation/components/landingpageCirculo/LandingPageCirculoSection.vue?b200","webpack:///./infrastructure/presentation/components/landingpageCirculo/LandingPageCirculoSection.vue?3823","webpack:///./infrastructure/presentation/components/landingpageCirculo/LandingPageCirculoSection.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/LoginFormCirculo.vue?80ea","webpack:///./infrastructure/presentation/components/landingpageCirculo/RegisterModal.vue?89a7","webpack:///./infrastructure/presentation/components/landingpageCirculo/RegisterModal.vue?63c1","webpack:///./infrastructure/presentation/components/landingpageCirculo/RegisterModal.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetPassword.vue?08b9","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetPasswordComponent.vue?8875","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetPasswordComponent.vue?5484","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetPasswordComponent.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetPasswordSuccess.vue?076a","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetPasswordSuccess.vue?6029","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetPasswordSuccess.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/NewPassword.vue?80a0","webpack:///./infrastructure/presentation/components/landingpageCirculo/NewPassword.vue?7394","webpack:///./infrastructure/presentation/components/landingpageCirculo/NewPassword.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetOptions.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetOptions.vue?1d17","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetPassword.vue?d6cd","webpack:///./infrastructure/presentation/components/landingpageCirculo/ResetPassword.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/LoginFormCirculo.vue?f909","webpack:///./infrastructure/presentation/components/landingpageCirculo/LoginFormCirculo.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/Call.vue?e12f","webpack:///./infrastructure/presentation/components/landingpageCirculo/Call.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/About.vue?8344","webpack:///./infrastructure/presentation/components/landingpageCirculo/About.vue?307e","webpack:///./infrastructure/presentation/components/landingpageCirculo/About.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/Divisor.vue?3af1","webpack:///./infrastructure/presentation/components/landingpageCirculo/Divisor.vue?3716","webpack:///./infrastructure/presentation/components/landingpageCirculo/Divisor.vue","webpack:///./infrastructure/presentation/components/landingpageCirculo/HighLights.vue?db81","webpack:///./infrastructure/presentation/components/landingpageCirculo/HighLights.vue?f939","webpack:///./infrastructure/presentation/components/landingpageCirculo/HighLights.vue","webpack:///./infrastructure/presentation/views/LandingPageCirculo.vue","webpack:///./infrastructure/presentation/components/landingpageGTop/Call.vue?94e7","webpack:///./infrastructure/presentation/components/landingpageGTop/Card.vue?033d","webpack:///./infrastructure/presentation/components/landingpageGTop/Card.vue?49a7","webpack:///./infrastructure/presentation/components/landingpageGTop/Card.vue","webpack:///./infrastructure/presentation/components/landingpageGTop/RegisterModal.vue?88b2","webpack:///./infrastructure/presentation/components/landingpageGTop/RegisterModal.vue?22f6","webpack:///./infrastructure/presentation/components/landingpageGTop/RegisterModal.vue","webpack:///./infrastructure/presentation/components/landingpageGTop/Call.vue?b457","webpack:///./infrastructure/presentation/components/landingpageGTop/Call.vue","webpack:///./infrastructure/presentation/components/landingpageGTop/Introduction.vue?5e32","webpack:///./infrastructure/presentation/components/landingpageGTop/SectionDivisor.vue?3941","webpack:///./infrastructure/presentation/components/landingpageGTop/SectionDivisor.vue?5559","webpack:///./infrastructure/presentation/components/landingpageGTop/SectionDivisor.vue","webpack:///./infrastructure/presentation/components/landingpageGTop/Introduction.vue?b18d","webpack:///./infrastructure/presentation/components/landingpageGTop/Introduction.vue","webpack:///./infrastructure/presentation/components/landingpageGTop/Mission.vue?0061","webpack:///./infrastructure/presentation/components/landingpageGTop/Mission.vue?cfd3","webpack:///./infrastructure/presentation/components/landingpageGTop/Mission.vue","webpack:///./infrastructure/presentation/components/landingpageGTop/ResetPassword.vue?c65e","webpack:///./infrastructure/presentation/components/landingpageGTop/ResetPassword.vue?c584","webpack:///./infrastructure/presentation/components/landingpageGTop/ResetPassword.vue","webpack:///./infrastructure/presentation/components/landingpageGTop/FirstLogin.vue?d0ba","webpack:///./infrastructure/presentation/components/landingpageGTop/FirstLogin.vue?9e23","webpack:///./infrastructure/presentation/components/landingpageGTop/FirstLogin.vue","webpack:///./infrastructure/presentation/components/landingpageGTop/ModalTerm.vue?9d91","webpack:///./infrastructure/presentation/components/landingpageGTop/ModalTerm.vue?9760","webpack:///./infrastructure/presentation/components/landingpageGTop/ModalTerm.vue","webpack:///./infrastructure/presentation/components/landingpageGTop/Supporters.vue?0c83","webpack:///./infrastructure/presentation/components/landingpageGTop/Supporters.vue?f233","webpack:///./infrastructure/presentation/components/landingpageGTop/Supporters.vue","webpack:///./infrastructure/presentation/views/LandingPageGTop.vue?38fb","webpack:///./infrastructure/presentation/views/LandingPageGTop.vue","webpack:///./src/routes/index.ts","webpack:///./infrastructure/presentation/assets/static/landingPageGTop/banner-central.jpg","webpack:///./infrastructure/presentation/assets/static/footer/tiktok.svg","webpack:///./infrastructure/presentation/views/Dashboard.vue?b0c8","webpack:///./infrastructure/presentation/assets/static/landingPageGTop/obencard.png","webpack:///./infrastructure/repository/impl/annotation_repository.ts","webpack:///./domain/usecase/impl/annotationUseCases.ts","webpack:///./infrastructure/repository/store/modules/annotation_module.ts","webpack:///./infrastructure/repository/store/modules/authentication_module.ts","webpack:///./infrastructure/repository/impl/school_repository.ts","webpack:///./domain/usecase/impl/schoolUseCases.ts","webpack:///./infrastructure/repository/impl/courseTrack_repository.ts","webpack:///./domain/usecase/impl/courseTrackUseCases.ts","webpack:///./infrastructure/repository/store/modules/categories_module.ts","webpack:///./infrastructure/repository/store/modules/content/control.ts","webpack:///./infrastructure/repository/store/modules/content/rating.ts","webpack:///./infrastructure/repository/store/modules/content/doubt.ts","webpack:///./infrastructure/repository/store/modules/content/progress.ts","webpack:///./infrastructure/repository/store/modules/content/checkpoint.ts","webpack:///./infrastructure/repository/store/modules/content/player.ts","webpack:///./infrastructure/repository/store/modules/content/countdown.ts","webpack:///./infrastructure/repository/store/modules/content/complement.ts","webpack:///./infrastructure/repository/store/modules/content/annotation.ts","webpack:///./infrastructure/repository/store/modules/content/exercise.ts","webpack:///./infrastructure/repository/store/modules/content/questionnaire_control.ts","webpack:///./infrastructure/repository/store/modules/content/questionnaire.ts","webpack:///./infrastructure/repository/store/modules/content/scorm.ts","webpack:///./infrastructure/repository/store/modules/content/content_module.ts","webpack:///./infrastructure/repository/impl/event/event_repository.ts","webpack:///./domain/usecase/impl/event/eventClassRules.ts","webpack:///./domain/usecase/impl/event/eventUseCases.ts","webpack:///./infrastructure/repository/store/modules/course_module.ts","webpack:///./infrastructure/repository/impl/interest_repository.ts","webpack:///./domain/usecase/impl/interestUseCases.ts","webpack:///./infrastructure/repository/store/modules/interest_module.ts","webpack:///./infrastructure/repository/store/modules/miscellany_module.ts","webpack:///./infrastructure/repository/impl/userProfile_repository.ts","webpack:///./domain/usecase/impl/userProfileUseCases.ts","webpack:///./infrastructure/repository/store/modules/userProfile_module.ts","webpack:///./infrastructure/repository/impl/statement/statement_repository.ts","webpack:///./domain/usecase/impl/statement/statementUseCases.ts","webpack:///./infrastructure/repository/store/modules/statement_module.ts","webpack:///./domain/entities/shop/filter/quantityByValues.ts","webpack:///./domain/entities/shop/filter/filter.ts","webpack:///./domain/entities/shop/order/receipt.ts","webpack:///./infrastructure/repository/impl/shop/shop_repository.ts","webpack:///./domain/usecase/impl/shopUseCase.ts","webpack:///./infrastructure/repository/store/modules/shop_module.ts","webpack:///./infrastructure/repository/store/modules/event_module.ts","webpack:///./infrastructure/repository/store/modules/utils_module.ts","webpack:///./infrastructure/repository/impl/instructors/instructor_repository.ts","webpack:///./domain/usecase/impl/instructors/instructorUseCase.ts","webpack:///./infrastructure/repository/store/modules/globalSearch_module.ts","webpack:///./domain/entities/exercise/question.ts","webpack:///./infrastructure/repository/impl/question/question_repository.ts","webpack:///./infrastructure/repository/store/modules/question_module.ts","webpack:///./infrastructure/repository/store/modules/alert_box_module.ts","webpack:///./infrastructure/repository/impl/pill/pill_repository.ts","webpack:///./domain/usecase/impl/pill/pillUseCases.ts","webpack:///./domain/entities/pill.ts","webpack:///./infrastructure/repository/store/modules/pill_module.ts","webpack:///./infrastructure/repository/impl/doubt/doubt_repository.ts","webpack:///./domain/usecase/impl/doubt/doubtRules.ts","webpack:///./domain/usecase/impl/doubt/doubtUseCase.ts","webpack:///./infrastructure/repository/store/modules/doubt_module.ts","webpack:///./infrastructure/repository/impl/notification/notification_repository.ts","webpack:///./domain/usecase/impl/notification/notificationUseCases.ts","webpack:///./infrastructure/repository/store/modules/notification_module.ts","webpack:///./infrastructure/repository/impl/training-course/training_course_repository.ts","webpack:///./domain/usecase/impl/training-course/trainingCourseUseCases.ts","webpack:///./infrastructure/repository/store/modules/training_course_module.ts","webpack:///./infrastructure/repository/impl/decoins/decoins_repository.ts","webpack:///./domain/usecase/impl/decoin/decoinUseCase.ts","webpack:///./infrastructure/repository/store/modules/decoins_module.ts","webpack:///./domain/entities/information.ts","webpack:///./infrastructure/repository/impl/information/information_repository.ts","webpack:///./domain/usecase/impl/information/informationUseCases.ts","webpack:///./infrastructure/repository/store/modules/information_module.ts","webpack:///./infrastructure/repository/store/store.ts","webpack:///./infrastructure/presentation/assets/static/main-menu sync ^\\.\\/.*$","webpack:///./infrastructure/presentation/components/application/DashboardComments/ButtonComment.vue","webpack:///./infrastructure/presentation/components/application/DashboardComments/ButtonComment.vue?a346","webpack:///./domain/entities/content-provider/content-provider.ts","webpack:///./domain/entities/content-provider/course-content-provider.ts","webpack:///./domain/entities/content-provider/event-content-provider.ts","webpack:///./infrastructure/presentation/components/landingpage/Mission.vue?d398","webpack:///./infrastructure/presentation/components/landingpageGTop/Footer.vue?d0ea","webpack:///./infrastructure/presentation/components/landingpageGTop/Footer.vue?f9ba","webpack:///./infrastructure/presentation/components/landingpageGTop/Footer.vue","webpack:///./infrastructure/presentation/components/landingpage/Faq.vue?f126","webpack:///./infrastructure/presentation/components/application/forms/ResetPasswordSuccess.vue?9210","webpack:///./infrastructure/presentation/components/landingpageCirculo/HighLights.vue?061b","webpack:///./infrastructure/presentation/components/application/moldure/Header.vue?1542"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","keys","contentsPath","courseID","contentID","rootPath","http","post","rating","index","params","contentDoubt","annotation","annotationID","delete","timestamp","scormCheckpoint","speedRate","questionnaireID","page","alternativeID","answer","ratingID","errors","stars","trim","title","description","text","getAllContents","getContentByID","initializeContent","getAllComplements","createRating","getAllRatings","likeRating","removeLikeRating","deleteRating","createDoubt","getAllDoubts","getContentInstructors","getAllContentAnnotations","updateContentAnnotation","deleteContentAnnotation","createContentAnnotation","saveCheckpointSeconds","saveCheckpointSCORM","saveProgress","generateQuestionnaire","getQuestionByPage","replyQuestionByPage","replyDescriptiveQuestionByPage","finishContent","_hoisted_1","class","_hoisted_2","_hoisted_3","render","_ctx","_cache","$props","$setup","$data","$options","entityImage","entityTitle","__default__","props","String","required","default","entity","borderRadius","__setup__","setup","ctx","__exports__","Prices","label","min","max","this","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_component_router_link","_component_Notification","_component_menu_user","to","_","headerNavItems","item","route","path","selected","$router","currentRoute","shouldShowSearchInput","placeholder","searchQuery","onInput","$event","globalSearch","isDecolaTemplate","formatUserDecoins","user","dcoins","style","headerDropdownIsOpen","onClick","toggleHeaderOptionsState","userPhoto","onError","alt","_component_item","open","isOpened","socialName","email","items","logout","width","height","ganhemais","isCirculoTemplate","goToRoute","image","store","dispatch","Array","disabled","components","Item","Boolean","getters","student","option","events","adminPanel","managerPanel","statement","order","dashboard","userDashboard","shop","menus","wannaLeave","confirm","userType","unshift","_component_NotificationButton","_component_NotificationList","hasNewNotifications","_component_NotificationItem","notifications","notification","goToNotification","NotificationType","disable","isRead","flag","formatDateTime","created_at","methods","NotificationItem","router","loadNotifications","toggleNotificationModal","setWatchNotification","notificationID","goToContentView","course_id","content_id","DOUBT","metadata","idCourse","idContent","NotificationList","NotificationButton","documentElement","onclick","list","querySelector","button","computed","Notification","MenuUser","Menu","inheritAttrs","timerId","inputValue","sidebarIsOpen","userIsLogged","input","limit","search","loadGlobalSchools","query","loadGlobalCourseTracks","loadGlobalInstructors","loadGlobalCourses","loadLogo","excludedRoutes","includes","updateQuery","$attrs","userImage","crossorigin","userName","date","contentName","star","comment","Number","role","closeCropper","url","accept","onChange","setImageToPreview","getCroppedImageUrl","imageUrl","emits","emit","isCuttable","isInputImageOpened","cropper","loadCropper","destroy","aspectRatio","viewMode","checkCrossOrigin","ready","files","file","maxSize","size","getCroppedCanvas","toDataURL","filename","reader","FileReader","readAsDataURL","addEventListener","StatusCode","User","login","password","passwordConfirmation","NaN","profession","academicEducation","biography","firstLogin","birthDate","profilePictureExtension","address","Address","completeCourses","totalWatched","isImported","passwordModifiedAt","certificateGenerated","percentageUser","interests","isForeigner","attendance","needAcceptNewTerm","attendanceAts","enrolledAt","attendanceAt","isFirstLogin","addressNumber","street","district","federalUnit","city","zipCode","stateID","complement","UserCourse","enrolled","finished","School","thumbnailURL","thumbnailExtention","isActive","lastChange","courseTracks","CourseTrack","schoolId","StatusCourse","progress","Course","idSubcategory","duration","isNew","isPill","isWatched","haveCertification","imageURL","bannerURL","imageExtension","bannerExtension","activationDate","inactivationDate","formattedDuration","certificatePath","courseProgress","hasNewContent","statusCode","haveComments","introductoryContent","releaseStartDate","releaseEndDate","statusCourse","haveDecoins","contents","FilterCourse","schools","UserData","birtDate","badgeCode","mothersName","PasswordStrength","entropy","minEntropy","CourseCertificate","EventRequest","EventCourse","classID","location","imageB64","bannerBase64","hasCertificate","classes","menu","menuMarkdown","scheduleStartDateTime","EventClass","eventID","isPublic","maxCapacity","scheduleStart","scheduleEnd","scheduleEndDateTime","enrollmentStart","enrollmentEnd","startedAt","finishedAt","enrollUsers","instructors","userCertificateUrl","$emit","youtube","allow","allowfullscreen","TrainingCourse","users","TrainingCourseRequest","companies","graduation","teams","descriptionMarkdown","startDate","startHour","endHour","theme","ref","filledPercentage","wrapLoading","callback","shuffle","array","randomIndex","currentIndex","Math","floor","random","dispatchErrorBox","changed","log","dispatchSuccessBox","checkDailyDecoinLimit","dailyDecoinLimitExceed","previousGenerated","mask","generated","offset","match","expectedChar","currentChar","getObjectByValue","JSON","parse","stringify","formattedDate","divisor","indexOf","substring","replaceAll","firstPoint","lastPoint","year","substr","mouth","day","formatDateOnly","dates","split","scrollTo","x","y","element","cloneObject","scrollToTop","scrollIntoView","block","scrollSmoothToElement","behavior","sec","hours","minutes","seconds","getLocalFormatDate","arrayDateEndHour","reverse","join","formatSearchQuery","arrayStrings","filter","toFixed","num","fixed","regex","RegExp","toString","toLocaleDateTime","options","month","hour","minute","Date","toLocaleString","formatHour","arrayHour","hourUpdate","formatDate","replace","maskCPF","cpf","maskCEP","cep","maskCNPJ","cnpj","acceptedExtention","png","jpg","jpeg","webp","PNG","JPG","JPEG","WEBP","handleImageExtention","extention","pop","toLowerCase","disableBodyOverflow","body","overflow","enableBodyOverflow","isConstrucolorTemplate","isGTopTemplate","decoins","matchMedia","matches","Intl","NumberFormat","format","formatMenusDates","formattedDates","formattedString","years","lastYear","forEach","months","sort","one","two","lastMonth","trainingDataList","lastTrainingData","trainingData","isLastTrainingData","isLastMonth","isLastYear","subsCommaPerLetterE","str","numVirgulas","lastCommaIndex","lastIndexOf","formatOneTime","newDate","getHours","padStart","getMinutes","formatMenusSchedule","groupedEvents","groupEventsByTimeRange","timeRange","days","yearMonth","parts","reduce","accumulator","getMenusLocation","menusLocationArray","getDate","dateGrouped","updateQueries","queries","removeQuery","newQuery","assign","modelValue","maxWidth","editor","editorDiv","maxWidthViewer","el","initialValue","credentials","response","success","localStorage","removeItem","isAdmin","isManager","userData","confirmation","token","headers","Authorization","authenticationRepository","finishOnBoarding","register","getIsAdmin","getIsManager","checkUserCredentials","changePassword","recoverPassword","recoverPasswordByEmail","resetPasswordByEmail","resetPasswordByData","validatePasswordStrength","acceptTerm","authenticationUseCases","colorLabel","colorBackground","colorLine","EnrolledTrainingTypes","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_component_Comment","_component_content_fallback","_component_CommentModal","_component_IntroductoryContentModal","_component_InfoIcon","_component_InfoPanel","_component_steps","_component_OnboardingModal","_component_PillModal","_component_PillComponent","_component_PillLoader","_component_Slide","_component_Navigation","_component_carousel","_component_OngoingCourse","_component_Event","_component_RecommendedCourses","_component_SelectBox","_component_VueMultiselect","_component_course","_component_PaginationDefault","isCommentsModalOpen","onCloseCommentsModal","closeCommentsModal","commentModalTitle","comments","createAt","openModalIntroductoryContent","onClose","closeModalIntroductoryContent","informationsExist","onToggleInfo","toggleInfoPanel","isVisible","isInfoPanelVisible","fetchInformations","showOnboarding","closeOnBoarding","onFinishOnBoarding","onPreviousStep","previousStep","onNextStep","nextStep","onStepChanged","setStep","steps","currentStep","updateUserInterests","messages","openPill","completedPills","pills","closePill","startPill","incompletePills","center","isPillsCentered","settings","pillSettings","breakpoints","pillBreakpoints","pillInFocusIndex","addons","pill","showPills","onClickCapture","playPill","watched","background","fallback","coursesInProgress","ongoingCourseSettings","ongoingCourseBreakpoints","course","eventCourses","eventsSettings","eventsBreakpoints","onOpenIntroductoryContent","openIntroductoryContent","recommendedCourses","recommendedSettings","recommendedBreakpoints","onLoadCourseCommentsModal","loadCourseCommentsModal","onOpenCourse","isSelectBoxVisible","selectedSchoolBox","school","active","isSchoolActive","filterBySchool","multiple","selectedCourseTracks","onSearchChange","selectedLabel","deselectLabel","selectLabel","noResult","courses","coursesPages","currentPage","$route","onChangePage","_component_Carousel","wrapAround","inactive","currentPillIndex","prev","slideTo","getCodeYoutube","goToCourse","next","Carousel","Slide","Navigation","Pagination","carouselElement","0","itemsToShow","640","700","900","1024","isDOMMounted","requestIframeApi","loadVideo","addStyleToIframe","restartCarousel","currentSlide","iframe","getElementById","removeIframe","remove","youtubeIframeApiScript","firstScriptTag","insertBefore","onYouTubeIframeAPIReady","onPlayerReady","playVideo","watchPill","onPlayerStateChange","nextIndex","player","YT","Player","videoId","host","playerVars","autoplay","controls","modestbranding","onReady","onStateChange","position","left","zIndex","pillID","_component_course_track","courseTrack","schoolID","onlyOneCourseTrack","loadCourseTracks","isAllLoaded","color","loadAll","hasCourseTracks","allCourseTracks","$slots","step","tabindex","_component_Layout1","_component_Layout6","_component_Layout2","_component_Layout3","_component_Layout4","_component_Layout5","unifiedUser","animationIsReverse","updateUser","userInterest","_component_MessageBox","platformNames","facingRight","isTransitionFinished","onAnimationend","fluctuate","onSubmit","top","right","MessageBox","newUser","getFirstName","inputElement","endOfFirstName","direction","interest","hasEnough","selectedInterestsIDs","selectInterest","checked","userInterests","userInterestIDs","userInterestID","interestID","_component_CropperImageInput","onCroppedImageUrl","openInputImage","loadFallbackImage","CropperImageInput","img","rows","cols","Layout6","Layout1","Layout2","Layout5","Layout4","Layout3","reDoOnBoarding","lastStep","loadUser","listUserInterest","newStep","_component_NewContentEventFlag","_component_VideoPlayButton","onMousedown","pressing","onMousemove","moving","onTouchend","releasing","onTouchmove","onTouchstart","isNewCourse","VideoPlayButton","VideoPlay","NewContentEventFlag","pressed","moved","released","isAllowedToOpenIntro","isAllowedToClick","isAllowedToGoToCourse","openEvent","hasLowLevelActions","event_id","class_id","trainingCourseID","toLocaleDate","toLocaleTime","today","toISOString","toggleSelect","isSelectOpened","for","optionID","updateModelValue","optionLabelAttribute","entityName","allInputsAreChecked","updateModelValueFullArray","selectedOptions","selectedIDs","_component_ProgressBar","ProgressBar","ButtonComment","ModalIntroductoryContent","backgroundImage","loadContents","COURSE","ids","providerID","redirectToContent","notFinishedContents","content","status","isBlocked","isReleased","currentContent","onMouseup","_props","context","toggleInfo","_component_TUIViewer","filteredInformations","openItems","toggleItem","question","TextInput","TUIViewer","Function","informations","newVal","savedState","getItem","immediate","PillLoader","NewCourse","OngoingCourse","ContentFallback","Comment","CommentModal","Event","Steps","OnboardingModal","PillComponent","Pill","PillModal","RecommendedCourses","PaginationDefault","Card","SelectBox","IntroductoryContentModal","VueMultiselect","InfoIcon","InfoPanel","redoingOnBoarding","currentFilter","schoolFilterIsActive","schoolIDs","widthSelectCourseTracks","courseTracksBySchool","filteredCourseTracks","itemsToScroll","transition","280","snapAlign","390","515","620","740","860","960","1060","eventInFocusIndex","290","320","380","440","510","550","590","690","790","950","1020","1180","350","370","400","470","540","580","730","760","850","930","1050","1170","1014","1080","newCourseSettings","newCourseBreakpoints","230","410","450","490","530","560","615","650","710","800","910","newsCourses","userInformation","setSelectBoxVisibility","setWidthSelectedBoxCourseTrack","loadInformation","loadCoursesInProgress","getSchoolRouteIDs","checkSelectedBoxSchoolsByRouteIDS","filterCourseTracksBySchools","getCourseTrackRouteIDs","checkSelectedBoxCourseTrackByRouteIDS","loadCourse","setPillsCarouselJustifyContent","selectedCourseTrackIDs","courseTrackIDs","selectedCourseTrackID","pageDefault","loadContentCommentsById","parseInt","registeredSchoolID","loadCourseTracksOfSchool","filteredCourseTrack","loadIncompletePills","loadSchools","loadInterests","loadEvents","loadRecommendedCourses","userToClone","_completedPills","storedPills","incompletePill","find","_introductoryContent","openCommentsModal","loadEventCommentsById","eventBasedOnClass","loadEventCommentsModal","eventCourse","offsetWidth","setEventCarouselButtonVisibility","hasLessThanMaxVisibleEvents","isBigScreen","onResize","viewBox","fill","xmlns","isPreviousDisabled","previousPage","pages","skip","isCurrentPage","interactive","isNotEllipsis","setPageLink","isNextDisabled","nextPage","qtPages","totalPagesArray","pagHeight","generatePageArray","handleButtonStyles","setPagesLinkVisibility","readonly","maxlength","maxLength","minlength","minLength","hasCharacterCounter","_component_CommentsModal","_component_ModalIntroductoryContent","CommentsModal","420","630","720","820","920","1120","1270","1320","1920","loadCourses","courseTrackID","_course","_component_Pagination","commentsPage","baseURL","origin","currentDomain","a","withCredentials","Accept","interceptors","use","handleAccess","isUserNotAllowed","_hoisted_23","_hoisted_24","logo","instagram","linkedin","phone","getCurrentYear","currentDate","getFullYear","encodeFilterToURL","getCertificate","currentBodyWidth","URLSearchParams","append","orderID","courseId","interfaceCourseRepository","listRecommendedCourses","listByCourseTrack","enrollInCourse","userCourseSituation","finishCourse","listNewCourses","listBySearch","getComments","getInstructors","leaveCourse","InterfaceCourseUseCases","wrapErrorHandler","errorResponse","webServiceError","_component_my_menu","_component_my_header","_component_router_view","_component_FooterGTop","_component_my_footer","isMenuOpen","menuItems","userAlreadyToggle","onToggleMenu","toggleMenu","Component","expand","isOpen","collapse","FooterGTop","Header","Footer","useCarouselMouseEvents","className","isMouseDown","isDragging","onMouseDown","onMouseMove","onMouseUp","elements","getElementsByClassName","removeEventListener","Rating","likes","createdAt","userID","UserLikes","RatingList","ratings","haveRatings","_component_ButtonComment","parseFloat","openComment","isAllowedToOpenComment","getToday","unexpectedErrorMessage","dispatchError","messageOnUnexpectedError","firstErrorMessage","isAlertBoxOpen","isVisibleDecoinsModalLimit","isLoading","loadingMessage","box","classList","contains","add","_directive_focus","continueAction","buttonsText","close","closeModal","DecoinsLimitModal","Loading","moldure","Moldure","ErrorBox","SuccessBox","AlertBox","createGoogleAnalyticsScript","createClarityScript","gtag","dataLayer","arguments","async","clarityScript","app","App","directive","mounted","focus","scrollTop","scrollWidth","beforeMount","metaDescription","pdfKey","mount","quantityProducts","imagesUrl","stock","shops","quantity","getMenuItems","statistics","administrativePanel","RepositoryException","BusinessException","cause","_message","_cause","_code","BusinessRuleException","_errors","ExternalRoute","InternalRoute","MenuItem","q","ContentType","ContentProgressStatus","Youtube","thumbnail","removeQueries","AnnotationEvent","AnnotationSubject","observers","observer","note","TAKING_NOTES","notifyTakingNotes","NOTE_CREATED","notifyNoteCreated","NOTE_SELECTED","notifyNoteSelected","NOTE_UPDATED","notifyNoteUpdated","onTakingNote","onNoteCreated","onNoteSelected","onNoteUpdated","onNoteDeleted","annotationSubject","from","redirect","fullPath","handleOnBoardingRedirect","routeTo","handleUserAuthRedirect","routeFrom","isUserLogged","meta","_component_Call","_component_ResetPassword","_component_FirstLogin","_component_ModalTerm","_component_Introduction","_component_Mission","_component_Faq","_component_HomeFooter","resetPass","onToggleModal","onCloseModal","SupportersComponent","_component_register_modal","_component_login","toggleLogin","isModalOpened","onToggleRegisterModal","toggleRegisterModal","onRecoverPassword","resetBy","onToggleLogin","_component_login_form","form","autocomplete","userInput","loginMask","onFocus","unmaskCPF","onBlur","isPasswordVisible","togglePassword","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","changeInputTerm","loginFormatted","ModalTerm","showPassword","hidePassword","maskedCPF","_component_modern_input","_component_input_password","maxDate","requestCepAPI","states","passwordVisibility","setDescriptionModal","toggleLabelClass","innerText","isInputFocused","hasMask","inputMask","pattern","isFocused","ModernInput","showSpan","passwordWeak","passwordIntermediate","passwordExcellent","passed","specialCharacterValidationPassed","upperCaseValidationPassed","lowerCaseValidationPassed","numericCharacterValidationPassed","eightCharacterValidationPassed","noWhiteSpaceValidationPassed","typeInput","inputColor","strengthRegex","defaultColor","successColor","invalidColor","passwordStrength","updateInputColorBasedOnStrength","isPasswordValid","updatePasswordValidationDependencies","test","isPasswordStrong","IdentityForm","InputPassword","loadStates","calcMaxDate","getDay","getMonth","formatDayMonth","fillAddressLoading","loading","clearFillAddress","fillAddress","formatUserData","RegisterModal","LoginForm","Login","loginDisplay","showRegistrationSpan","loadNewsCourses","_component_card","_component_section_divisor","card","SectionDivisor","isPaused","iframeSettings","landingPage","getBoundingClientRect","iframeCenterPosition","offsetHeight","runningArea","pauseVideo","contentWindow","postMessage","520","980","1030","1580","missions","mission","_component_new_password","_component_reset_password_success","_component_identity_form","emailHasBeenSent","onPost","submit","resetPassword","term","currentType","togglePasswordVisibility","passwordPattern","passwordPatternTitle","recoveryType","rx","stroke","cx","cy","ResetOptions","NewPassword","ResetPasswordSuccess","ResetPasswordComponent","ResetPassword","formattedUserData","formattedData","validateEmailOnly","userDataToSend","recoverPasswordByDocument","_component_InputPassword","_component_ModernInput","_component_SectionDivisor","currentScrollPosition","scrollY","requestAnimationFrame","Call","Introduction","Mission","HomeFooter","FirstLogin","Faq","_component_LoginFormCirculo","_component_RegisterModal","isSignupModalOpen","onCloseSignup","onCloseForgetPassword","onClickSignup","setForeigner","maskDate","_component_reset_password_component","onRecoverByDocument","onRecoverByEmail","openSignupModal","closeSignupModal","onClickForgetPassword","openResetPassword","LoginFormCirculo","LandingPageCirculoSection","withArrowDown","HighLightsView","HighLights","DivisorView","Divisor","AboutView","About","Supporters","home","component","routes","breadcrumbText","children","beforeEnter","productsPage","history","beforeEach","payload","interfaceAnnotationRepository","videoID","listAnnotations","saveAnnotation","editAnnotation","deleteAnnotation","interfaceAnnotationUseCase","annotations","redirectTo","videoPauseRequested","mutations","LOAD_NOTE_LIST","state","b","SET_TIMESTAMP","REDIRECT_TO_TIMESTAMP","targetTimestamp","TOGGLE_VIDEO_STATE","formState","ADD_NEW_ANNOTATION","REMOVE_ANNOTATION","actions","loadAnnotations","commit","redirectToTimestamp","changeVideoState","removeAnnotation","setTimestamp","namespaced","USER_IS_ADMIN","USER_IS_MANAGER","USER_IS_STUDENT","SET_PASSWORD","SHOW_PASSWORD","HIDE_PASSWORD","registerNewUser","getUserType","resetStore","clearPasswordStrength","interfaceSchoolRepository","InterfaceSchoolUseCases","interfaceCourseTrackRepository","listBySchool","InterfaceCourseTrackUseCases","LIST_SCHOOLS","GET_SCHOOL","LIST_COURSE_TRACKS","loadSchool","school_id","loadCourseTrack","navigableContents","previousIndex","lastIndex","lockedIndex","SET_NAVIGABLE_CONTENTS","SET_PREVIOUS_INDEX","SET_CURRENT_INDEX","SET_NEXT_INDEX","SET_LAST_INDEX","SET_LOCKED_INDEX","extractNavigableContents","reload","rootGetters","rawContents","findIndex","it","lockIndex","loadPrevious","previousContent","root","loadNext","nextContent","hasNext","isNextLocked","hasPrevious","ratingsList","SET_RATINGS","SET_CLEAR_RATINGS","ADD_RATING","PATCH_LIKE_RATING","patchIndex","isLike","userIndex","PATCH_RATING","loadRatings","provider","getContentProvider","getCurrentContent","clearRatings","contentDoubts","SET_CONTENT_DOUBTS","ADD_DOUBT","getDependencies","loadDoubts","doubt","newDoubt","progressInterval","SET_PROGRESS_INTERVAL","CLEAR_PROGRESS_INTERVAL","clearInterval","startProgressRoutine","FINISHED","minDuration","interval","setInterval","stopProgressRoutine","REACH_MIN","playbackRate","contentProvider","SET_CONTENT_PROVIDER","SET_CURRENT_CONTENT","SET_PLAYBACK_RATE","SET_LAST_PAUSED_TIME","lastPausedTime","setPlaybackRate","setLastPausedTime","checkpoint","gettters","namespace","complements","SET_COMPLEMENTS","loadComplements","SET_ANNOTATIONS","SET_ANNOTATION","ADD_ANNOTATION","annotationIndex","takingNotes","notify","createAnnotation","newContentAnnotation","updateAnnotation","selectAnnotation","NOTE_DELETED","exercise","answeredQuestions","Set","SET_EXERCISE","initializeModule","doing","userAttempts","questionnaire","questions","corrects","answered","finishQuestionnaire","maximumTime","remainingTime","createdAtDate","maximumTimeMilliseconds","createdAtMilliseconds","getTime","expireTimeMilliseconds","dateNow","dateNowMilliseconds","lastPage","SET_PREVIOUS_PAGE","SET_CURRENT_PAGE","SET_NEXT_PAGE","SET_LAST_PAGE","getCurrentQuestion","numberOfQuestions","currentQuestion","alternatives","SET_CURRENT_QUESTION","SET_CURRENT_QUESTION_STATUS","questionStatus","SET_ALTERNATIVES","setCurrentQuestion","shuffleAlternatives","questionnaire_control","scorm","scormContent","SET_SCORM","SET_SCORM_CONTENT","SET_VALUE","set","initialize","loadSCORM","setValue","checkpoints","scormCheckpoints","Map","loadContentProvider","build","loadAllContents","setCurrentContent","clearCurrentContent","updateContentOnList","loadInstructors","finishContentProvider","isContentInitialized","SET_CONTENTS","SET_INSTRUCTORS","control","countdown","eventClass","eventId","interfaceEventRepository","alreadyEnrolledError","enrolledUsersIds","maxCapacityReachedError","eventClassIsFinishedError","getEventCourse","enrollUser","unEnrollUser","confirmCheckinQrCode","generateCertificate","InterfaceEventUseCases","certificate","coursesByCourseTrack","commentsTotalCount","newCourses","coursesByCourseTrackPage","userCourses","LIST_COURSES","LIST_COURSES_OF_COURSES_TRACKS","LOAD_RECOMMENDED_COURSES","GET_COURSE","ENROLL_IN_COURSE","SET_USER_COURSE_SITUATION","LIST_NEWS_COURSES","SET_LOADING","SET_DECOLA_CERTIFICATE","SET_COURSES_PAGES","SET_CURRENT_FILTER","OPEN_COMMENTS_MODAL","CLOSE_COMMENTS_MODAL","CLEAR_COURSE_COMMENTS","LOAD_COMMENTS","totalCount","REMOVE_COURSE_FROM_USER_LIST","requestFilter","loadCoursesOfCourseTrack","setCurrentCourse","loadCertificate","setLoading","clearComments","interfaceInterestRepository","relateInterestToUser","InterfaceInterestUseCases","SET_INTERESTS","SET_INTERESTS_USER","featuresIsOpen","TOGGLE_SIDEBAR_STATE","SET_SIDEBAR_STATE","SET_DROPDOWN_MENU_STATE","TOGGLE_HEADER_OPTIONS_STATE","TOGGLE_CONTENT_FEATURES_STATE","SET_CONTENT_FEATURES_STATE","featuresState","SET_ERROR","SET_SUCCESS","toggleSidebarState","setSidebarState","setDropdownMenuState","toggleContentFeaturesState","setContentFeaturesState","setError","setSuccess","setItem","trainingID","userProfileRepository","edit","editUserInterests","getUserCoursesInProgress","getUserEnrolledTraining","getUserEvents","getUserEvent","getUserTraining","validateUserIsLogged","getTeams","getUsersRanking","getGeneralStatistics","getAccessesStatistics","getUserCertificate","userProfileUseCases","userCoursesInProgress","enrolledTraining","sortCourseByProgress","redoOnBoarding","userEvents","userActiveEvent","userActiveTraining","usersRanking","generalStatistics","accessesStatistics","certificateTraining","SET_USER","SET_USER_INTERESTS","LOAD_USER_COURSES_IN_PROGRESS","ENROLLED_TRAININGS","LOAD_USER_EVENTS","LOAD_USER_ACTIVE_EVENT","LOAD_USER_ACTIVE_TRAINING","SORT_COURSES_BY_PROGRESS","REDO_ON_BOARDING","sate","SET_TEAMS","SET_USERS_RANKING","SET_GENERAL_STATISTICS","SET_ACCESSES_STATISTICS","LOAD_USER_CERTIFICATE","loadTeams","loadUsersRanking","loadGeneralStatistics","loadUserAccesses","editUser","loadUserCoursesInProgress","listEnrolledTraining","loadUserEvents","loadUserActiveEvent","loadUserActiveTraining","sortUserCoursesByProgress","localUser","userAccesses","statement_repository","statements","LOAD_STATEMENT","loadStatements","statementUseCases","firstValue","secondValue","thirtyValue","fourthValue","prices","categories","values","grossValue","products","receiptUrl","stringProducts","localStorageProducts","product","getProductsFromBag","productsBag","setBagProducts","shop_repository","filterProducts","listFilters","addToFavorite","listFavoriteProducts","removeProductFromFavorites","getProduct","getReceipt","orders","createReceipt","setProductToBag","removeBagProduct","removeAllBagProducts","productsPages","productsInBag","favoriteProducts","maxPrice","minPrice","receiptOrder","ordersHistory","currentReceipt","receipt","decoinsInWallet","SET_PRODUCT","LOAD_PRODUCTS","PRODUCTS","LOAD_FAVORITE_PRODUCTS","LOAD_BAG","SET_PRODUCTS","RECEIPT_ORDER","SET_RECEIPT","CURRENT_RECEIPT","ORDERS_HISTORY","LOAD_FILTERS","SET_MIN_PRICE","SET_MAX_PRICE","SET_PRODUCTS_PAGES","SET_FAVORITE_PRODUCTS_PAGE","SET_DECOINS_IN_WALLET","shopUseCase","loadProducts","listResponse","increaseProduct","bagProducts","bagProduct","setProductsToBag","decreaseProduct","loadFavoriteProducts","loadBagProducts","addToBag","removeFromBag","removeAllProductsFromBag","loadFilters","filters","setMinPrice","setMaxPrice","setInputFilter","setDecoinsInWallet","productsInFavoriteList","balance","total","eventsBasedOnClass","eventRequest","isUserEnrolled","isUserAttendance","enrolledUser","dateQrCode","SET_EVENT_BASED_ON_CLASSES","SET_EVENT_REQUEST","SET_EVENT","SET_EVENTS","SET_EVENT_CONTENTS","SET_EVENT_CLASS","ENROLL_USER","UN_ENROLL_USER","ATTENDANCE_USER","UN_ATTENDANCE_USER","SET_USER_CERTIFICATE","SET_DATE_QR_CODE","getClass","loadUserEnrollment","enrolledUsers","userInEnrroledList","userEnrolled","userAttendanceAt","trainingDate","enroll","setDateQrCode","isContentLoading","contentLoadingMessage","SET_LOADING_VISIBILITY","SET_CONTENT_LOADING_VISIBILITY","SET_MESSAGE","SET_CONTENT_MESSAGE","SET_VISIBILITY","setLoadingVisibility","setContentLoadingVisibility","setMessage","setContentLoadingMessage","setVisibility","instructorId","listBySearchInstructors","getCoursesByInstructors","searching","coursesPage","instructorCourses","instructorsCoursesPage","SET_COURSES","SET_SEARCHING","isSearching","SET_COURSES_PAGE","SET_INSTRUCTOR_COURSES","SET_INSTRUCTOR_COURSES_PAGE","instructorID","setSearch","isLinked","alternativeAnswered","correctAnswer","isIncorrect","attemptLimit","attempts","userId","contentId","exerciseId","minCorrectAnswers","questionID","interfaceQuestionRepository","allQuestions","numberOfPages","timeCounter","SET_QUESTIONS","SET_QUESTION","SET_ALL_QUESTIONS","SET_NUMBER_OF_PAGES","SET_QUESTIONNAIRE","SET_TIME_COUNTER","SET_TIMER_DURATION","loadQuestions","loadAllQuestions","submitQuestion","getQuestionnaire","setTimeCounter","setTimerDuration","shouldContinue","IS_OPEN","MESSAGE","SHOULD_CONTINUE","cancelAction","watch","SET_PILL","SET_PILLS","pillUseCases","isNaN","idCourseError","isNotValidID","idContentError","titleError","checkEmptyTitle","descriptionError","checkEmptyDescription","doubts","SET_DOUBTS","doubtUseCase","notification_repository","SET_NOTIFICATIONS","newNotifications","SET_NEW_NOTIFICATIONS_INDICATOR","notificationUseCases","unenroll","trainingCourse","menuIDQrCode","currentMenu","userPercentage","SET_TRAINING_COURSE","SET_ENROLL_USERS","SET_IS_USER_ENROLLED","SET_IS_USER_ATTENDANCE","isUserAttendace","SET_MENU_ID_QR_CODE","SET_CURRENT_MENU","SET_USER_PERCENTAGE","percentage","trainingCourseUseCases","isUserEnrolledForEvent","attendanceDay","setMenuIDQrCode","decoins_repository","dailyDecoinLimit","decoinDailyLimitMessageAccepted","acceptDailyDecoinLimitMessage","SET_DAILY_DECOIN_LIMIT","SET_VISIBILITY_DECOINS_LIMIT_MODAL","SET_ACCEPT_DAILY_DECOIN_LIMIT_MESSAGE","decoinUseCase","isDecoinLimitExceed","setDecoinsLimitModal","jsConfetti","addConfetti","showHomePage","listLandingPage","information","informationsLandingPage","SET_INFORMATIONS","SET_INFORMATION","SET_INFORMATIONS_LANDING_PAGE","informationUseCases","annotation_module","authentication_module","userProfile_module","categories_module","content_module","course_module","interest_module","miscellany_module","statement_module","shop_module","event_module","utils_module","globalSearch_module","question_module","alert_box_module","doubt_module","pill_module","notification_module","training_course_module","decoins_module","information_module","ObjectToArray","obj","modulesList","classConstructor","constructor","ContentProviderType","courseUseCase","contentUseCase","_courseUseCase","_contentUseCase","_id","_eventID","_classID","EVENT","contentProviderBuilder"],"mappings":"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","file":"js/app.bc68cde1.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-00daac8c\":\"8f3b7de5\",\"chunk-02a48a26\":\"dedfe0ec\",\"chunk-124e257c\":\"7044c523\",\"chunk-22a1d764\":\"9a9cab50\",\"chunk-2d22488a\":\"76f4631c\",\"chunk-34ba4e53\":\"c9c07283\",\"chunk-35ce0516\":\"e0d1e798\",\"chunk-3fca1df8\":\"bc6058c3\",\"chunk-477ba51c\":\"8b7de982\",\"chunk-4c6be830\":\"c8e9e4ec\",\"chunk-548b781a\":\"bc64e0f8\",\"chunk-6bba5ce8\":\"66937378\",\"chunk-77cb9108\":\"af87a634\",\"chunk-7ef2a772\":\"9abf5d8c\",\"chunk-8e12cbda\":\"cb17a723\",\"chunk-3bd34ed3\":\"7853fded\",\"chunk-3f70cf82\":\"3a33f706\",\"chunk-c3ef1e72\":\"88c018d5\",\"chunk-c64bfef2\":\"82011ac4\",\"chunk-f5d0820c\":\"39800bb9\",\"chunk-f8f70f5c\":\"c5ddc7ff\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-00daac8c\":1,\"chunk-02a48a26\":1,\"chunk-124e257c\":1,\"chunk-22a1d764\":1,\"chunk-34ba4e53\":1,\"chunk-35ce0516\":1,\"chunk-3fca1df8\":1,\"chunk-477ba51c\":1,\"chunk-4c6be830\":1,\"chunk-548b781a\":1,\"chunk-6bba5ce8\":1,\"chunk-77cb9108\":1,\"chunk-7ef2a772\":1,\"chunk-8e12cbda\":1,\"chunk-3bd34ed3\":1,\"chunk-3f70cf82\":1,\"chunk-c3ef1e72\":1,\"chunk-c64bfef2\":1,\"chunk-f5d0820c\":1,\"chunk-f8f70f5c\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-00daac8c\":\"0d2de517\",\"chunk-02a48a26\":\"c9404da5\",\"chunk-124e257c\":\"9e62a8ac\",\"chunk-22a1d764\":\"ba8a28d2\",\"chunk-2d22488a\":\"31d6cfe0\",\"chunk-34ba4e53\":\"80a517c9\",\"chunk-35ce0516\":\"8dc02e19\",\"chunk-3fca1df8\":\"d1791adb\",\"chunk-477ba51c\":\"e4ccdf08\",\"chunk-4c6be830\":\"ce850a9b\",\"chunk-548b781a\":\"0dae6ffa\",\"chunk-6bba5ce8\":\"1d232131\",\"chunk-77cb9108\":\"d8a8f1ed\",\"chunk-7ef2a772\":\"b526ae72\",\"chunk-8e12cbda\":\"e0261164\",\"chunk-3bd34ed3\":\"19eb42a1\",\"chunk-3f70cf82\":\"f6835f0b\",\"chunk-c3ef1e72\":\"fd655110\",\"chunk-c64bfef2\":\"6cf9876e\",\"chunk-f5d0820c\":\"bac2046f\",\"chunk-f8f70f5c\":\"a1b2b432\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\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\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/student/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/preceiro.9ea779c1.png\";","module.exports = __webpack_public_path__ + \"img/onerror-user.67950dd2.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Footer.vue?vue&type=style&index=0&id=5f86427c&scoped=true&lang=css\"","var map = {\n\t\"./administracao-icon.png\": \"197a\",\n\t\"./corporativa-icon.png\": \"8ac1\",\n\t\"./ferramentas-icon.png\": \"7dc3\",\n\t\"./ferramentas.svg\": \"5f5b\",\n\t\"./lideranca-icon.png\": \"4be2\",\n\t\"./mercado-icon.png\": \"e38d\",\n\t\"./operacoes-icon.png\": \"b0d5\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"07d4\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ResetPassword.vue?vue&type=style&index=1&id=3480a932&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LandingPageCirculo.vue?vue&type=style&index=0&id=76c73937&scoped=true&lang=css\"","import { CourseContentRepository } from \"./content_interface\";\r\nimport {\r\n Content,\r\n ContentAnnotation,\r\n ContentComplement,\r\n ContentDoubt,\r\n Question,\r\n QuestionStatus,\r\n ScormCheckpoint\r\n} from \"../../../presentation/views/content/helpers\";\r\nimport {Rating, RatingList} from \"../../../../domain/entities/rating\";\r\nimport { wrapErrorHandler } from \"../../utils/wrap_error_handler\";\r\nimport http from \"../../http\";\r\nimport { Instructor } from \"../../../../domain/entities/entities\";\r\nimport rating from \"../../store/modules/content/rating\";\r\n\r\n/** return the path to access the contents resources. */\r\nconst contentsPath = (courseID: number, contentID?: number): string => {\r\n const rootPath = `/api/decola/courses/${courseID}/contents`;\r\n if (contentID) {\r\n return `${rootPath}/${contentID}`;\r\n }\r\n return rootPath;\r\n};\r\n\r\nclass CourseContentRepositoryImpl implements CourseContentRepository {\r\n async getAllContents(courseID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.get(contentsPath(courseID));\r\n return data;\r\n });\r\n }\r\n\r\n async getContentByID(courseID: number, contentID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.get(contentsPath(courseID, contentID));\r\n return data;\r\n });\r\n }\r\n\r\n async initializeContent(courseID: number, contentID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.post(`${contentsPath(courseID, contentID)}/initialize`);\r\n return data;\r\n });\r\n }\r\n\r\n async getAllComplements(\r\n courseID: number,\r\n contentID: number\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.get(\r\n `${contentsPath(courseID, contentID)}/complements`\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async createRating(\r\n courseID: number,\r\n contentID: number,\r\n rating: Rating\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.post(\r\n `${contentsPath(courseID, contentID)}/ratings`,\r\n rating\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async getAllRatings(\r\n courseID: number,\r\n contentID: number,\r\n index?: number\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.get(\r\n `${contentsPath(courseID, contentID)}/ratings`,\r\n {\r\n params: {\r\n index: index\r\n }\r\n }\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async createDoubt(\r\n courseID: number,\r\n contentID: number,\r\n contentDoubt: ContentDoubt\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.post(\r\n `${contentsPath(courseID, contentID)}/doubts`,\r\n contentDoubt\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async getAllDoubts(\r\n courseID: number,\r\n contentID: number\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.get(\r\n `${contentsPath(courseID, contentID)}/doubts`\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async getContentInstructors(\r\n courseID: number,\r\n contentID: number\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.get(\r\n `${contentsPath(courseID, contentID)}/instructors`\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async createContentAnnotation(\r\n courseID: number,\r\n contentID: number,\r\n annotation: ContentAnnotation\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.post(\r\n `${contentsPath(courseID, contentID)}/notes`,\r\n annotation\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async getAllContentAnnotations(\r\n courseID: number,\r\n contentID: number\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.get(\r\n `${contentsPath(courseID, contentID)}/notes`\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async updateContentAnnotation(\r\n courseID: number,\r\n contentID: number,\r\n annotation: ContentAnnotation\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.post(\r\n `${contentsPath(courseID, contentID)}/notes/${annotation.id}`,\r\n annotation\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async deleteContentAnnotation(\r\n courseID: number,\r\n contentID: number,\r\n annotationID: number\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.delete(\r\n `${contentsPath(courseID, contentID)}/notes/${annotationID}`\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async saveCheckpointSeconds(\r\n courseID: number,\r\n contentID: number,\r\n timestamp: number\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.post(\r\n `${contentsPath(courseID, contentID)}/checkpoints`,\r\n timestamp\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async saveCheckpointSCORM(\r\n courseID: number,\r\n contentID: number,\r\n scormCheckpoint: ScormCheckpoint\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.post(\r\n `${contentsPath(courseID, contentID)}/scorm/checkpoints`,\r\n scormCheckpoint\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async saveProgress(\r\n courseID: number,\r\n contentID: number,\r\n speedRate: number\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.post(\r\n `${contentsPath(courseID, contentID)}/progress`,\r\n speedRate\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async generateQuestionnaire(\r\n courseID: number,\r\n contentID: number\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.post(\r\n `${contentsPath(courseID, contentID)}/questionnaires`\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async getQuestionByPage(\r\n courseID: number,\r\n contentID: number,\r\n questionnaireID: number,\r\n page: number\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.get(\r\n `${contentsPath(\r\n courseID,\r\n contentID\r\n )}/questionnaires/${questionnaireID}/pages/${page}`\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async replyQuestionByPage(\r\n courseID: number,\r\n contentID: number,\r\n questionnaireID: number,\r\n page: number,\r\n alternativeID: number\r\n ): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.post(\r\n `${contentsPath(\r\n courseID,\r\n contentID\r\n )}/questionnaires/${questionnaireID}/pages/${page}/alternatives/${alternativeID}`\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async replyDescriptiveQuestionByPage(courseID: number, contentID: number, questionnaireID: number, page: number, answer: string): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.post(`${contentsPath(courseID, contentID)}/questionnaires/${questionnaireID}/pages/${page}/descriptive`, {answer: answer});\r\n return data;\r\n });\r\n }\r\n\r\n\r\n\r\n async finishContent(courseID: number,contentID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.post(\r\n `${contentsPath(courseID, contentID)}/finish`\r\n );\r\n return data;\r\n });\r\n }\r\n\r\n async likeRating(ratingID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.post(`/api/decola/rate/${ratingID}/likes`);\r\n return data;\r\n });\r\n }\r\n\r\n async removeLikeRating(ratingID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.delete(`/api/decola/rate/${ratingID}/likes`);\r\n return data;\r\n });\r\n }\r\n\r\n async deleteRating(courseID: number, contentID: number, ratingID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const { data } = await http.delete(`${contentsPath(courseID, contentID)}/rating/${ratingID}`);\r\n return data;\r\n });\r\n }\r\n}\r\n\r\nexport default new CourseContentRepositoryImpl() as CourseContentRepository;\r\n","import {Rating} from \"../../entities/rating\";\r\nimport {BusinessException, BusinessRuleException} from \"../../exceptions/exceptions\";\r\nimport {ContentAnnotation, ContentDoubt} from \"../../../infrastructure/presentation/views/content/helpers\";\r\n\r\n/** Check rating is valid */\r\nexport const processRating = (rating: Rating): void => {\r\n const errors: BusinessException[] = [];\r\n if (rating.stars <= 0 || rating.stars > 5) {\r\n errors.push(new BusinessException(\"Selecione entre uma e cinco estrelas.\", \"INVALID_RATING\"))\r\n }\r\n\r\n if (rating.stars < 4 && !rating.message.trim()) {\r\n errors.push(new BusinessException(\"Deixe uma mensagem\", \"INVALID_RATING\"))\r\n }\r\n\r\n if (errors.length) {\r\n throw new BusinessRuleException(errors);\r\n }\r\n}\r\n\r\n/** Check doubt is valid */\r\nexport const processDoubt = (contentDoubt: ContentDoubt): void => {\r\n const errors: BusinessException[] = [];\r\n if (!contentDoubt.title.trim()) {\r\n errors.push(new BusinessException(\"Informe o título da dúvida\", \"INVALID_CONTENT_DOUBT\"))\r\n }\r\n\r\n if (!contentDoubt.description.trim()) {\r\n errors.push(new BusinessException(\"Informe a descrição da dúvida\", \"INVALID_CONTENT_DOUBT\"))\r\n }\r\n\r\n if (errors.length) {\r\n throw new BusinessRuleException(errors);\r\n }\r\n}\r\n\r\n/** Check annotation is valid */\r\nexport const processAnnotation = (annotation: ContentAnnotation): void => {\r\n const errors: BusinessException[] = [];\r\n if (!annotation.text.trim()) {\r\n errors.push(new BusinessException(\"Informe o texto da anotação\", \"INVALID_CONTENT_ANNOTATION\"))\r\n }\r\n\r\n if (errors.length) {\r\n throw new BusinessRuleException(errors);\r\n }\r\n}\r\n\r\nexport const processProgressSpeedRate = (speedRate: number): void => {\r\n const errors: BusinessException[] = [];\r\n if (speedRate <= 0 || speedRate > 2) {\r\n errors.push(new BusinessException(\"Velocidade de reprodução inválida.\", \"INVALID_SPEED_RATE\"))\r\n }\r\n\r\n if (errors.length) {\r\n throw new BusinessRuleException(errors);\r\n }\r\n}\r\n\r\nexport const processCheckpointTimestamp = (timestamp: number): void => {\r\n const errors: BusinessException[] = [];\r\n if (timestamp < 0) {\r\n errors.push(new BusinessException(\"Checkpoint inválido.\", \"INVALID_CHECKPOINT\"))\r\n }\r\n\r\n if (errors.length) {\r\n throw new BusinessRuleException(errors);\r\n }\r\n}","import {CourseContentUseCase} from \"./content_interface\";\r\nimport {\r\n Content,\r\n ContentAnnotation,\r\n ContentComplement,\r\n ContentDoubt, Question, QuestionStatus, ScormCheckpoint\r\n} from \"../../../../infrastructure/presentation/views/content/helpers\";\r\nimport {Rating, RatingList} from \"../../../entities/rating\";\r\nimport courseContentRepository from \"../../../../infrastructure/repository/content_provider/course/content_repository\";\r\nimport {\r\n processAnnotation,\r\n processCheckpointTimestamp,\r\n processDoubt,\r\n processProgressSpeedRate,\r\n processRating\r\n} from \"../rules\";\r\nimport {Instructor} from \"../../../entities/entities\";\r\n\r\n\r\nclass CourseContentUseCaseImpl implements CourseContentUseCase {\r\n async getAllContents(courseID: number): Promise {\r\n return await courseContentRepository.getAllContents(courseID);\r\n }\r\n\r\n async getContentByID(courseID: number, contentID: number): Promise {\r\n return await courseContentRepository.getContentByID(courseID, contentID);\r\n }\r\n\r\n async initializeContent(courseID: number, contentID: number): Promise {\r\n return await courseContentRepository.initializeContent(courseID, contentID);\r\n }\r\n\r\n async getAllComplements(courseID: number, contentID: number): Promise {\r\n return await courseContentRepository.getAllComplements(courseID, contentID);\r\n }\r\n\r\n async createRating(courseID: number, contentID: number, rating: Rating): Promise {\r\n processRating(rating);\r\n return await courseContentRepository.createRating(courseID, contentID, rating);\r\n }\r\n\r\n async getAllRatings(courseID: number, contentID: number, index?: number): Promise {\r\n return await courseContentRepository.getAllRatings(courseID, contentID, index);\r\n }\r\n async likeRating(ratingID: number): Promise {\r\n return await courseContentRepository.likeRating(ratingID);\r\n }\r\n\r\n async removeLikeRating(ratingID: number): Promise {\r\n return await courseContentRepository.removeLikeRating(ratingID);\r\n }\r\n\r\n async deleteRating(courseID: number, contentID: number, ratingID: number): Promise {\r\n return await courseContentRepository.deleteRating(courseID, contentID, ratingID);\r\n }\r\n\r\n async createDoubt(courseID: number, contentID: number, contentDoubt: ContentDoubt): Promise {\r\n processDoubt(contentDoubt);\r\n return await courseContentRepository.createDoubt(courseID, contentID, contentDoubt);\r\n }\r\n\r\n async getAllDoubts(courseID: number, contentID: number): Promise {\r\n return await courseContentRepository.getAllDoubts(courseID, contentID);\r\n }\r\n\r\n async getContentInstructors(courseID: number, contentID: number): Promise {\r\n return await courseContentRepository.getContentInstructors(courseID, contentID);\r\n }\r\n\r\n async getAllContentAnnotations(courseID: number, contentID: number): Promise {\r\n return await courseContentRepository.getAllContentAnnotations(courseID, contentID);\r\n }\r\n\r\n async updateContentAnnotation(courseID: number, contentID: number, annotation: ContentAnnotation): Promise {\r\n return await courseContentRepository.updateContentAnnotation(courseID, contentID, annotation);\r\n }\r\n\r\n async deleteContentAnnotation(courseID: number, contentID: number, annotationID: number): Promise {\r\n return await courseContentRepository.deleteContentAnnotation(courseID, contentID, annotationID);\r\n }\r\n\r\n async createContentAnnotation(courseID: number, contentID: number, annotation: ContentAnnotation): Promise {\r\n processAnnotation(annotation);\r\n return await courseContentRepository.createContentAnnotation(courseID, contentID, annotation);\r\n }\r\n\r\n async saveCheckpointSeconds(courseID: number, contentID: number, timestamp: number): Promise {\r\n processCheckpointTimestamp(timestamp);\r\n return await courseContentRepository.saveCheckpointSeconds(courseID, contentID, timestamp);\r\n }\r\n\r\n async saveCheckpointSCORM(courseID: number, contentID: number, scormCheckpoint: ScormCheckpoint): Promise {\r\n return await courseContentRepository.saveCheckpointSCORM(courseID, contentID, scormCheckpoint);\r\n }\r\n\r\n async saveProgress(courseID: number, contentID: number, speedRate: number): Promise {\r\n processProgressSpeedRate(speedRate);\r\n return await courseContentRepository.saveProgress(courseID, contentID, speedRate);\r\n }\r\n\r\n async generateQuestionnaire(courseID: number, contentID: number): Promise {\r\n return await courseContentRepository.generateQuestionnaire(courseID, contentID);\r\n }\r\n\r\n async getQuestionByPage(courseID: number, contentID: number, questionnaireID: number, page: number): Promise {\r\n return await courseContentRepository.getQuestionByPage(courseID, contentID, questionnaireID, page);\r\n };\r\n\r\n async replyQuestionByPage(courseID: number, contentID: number, questionnaireID: number, page: number, alternativeID: number): Promise {\r\n return await courseContentRepository.replyQuestionByPage(courseID, contentID, questionnaireID, page, alternativeID);\r\n };\r\n\r\n async replyDescriptiveQuestionByPage(courseID: number, contentID: number, questionnaireID: number, page: number, answer: string): Promise {\r\n return await courseContentRepository.replyDescriptiveQuestionByPage(courseID, contentID, questionnaireID, page, answer);\r\n }\r\n\r\n async finishContent(courseID: number, contentID: number): Promise {\r\n return await courseContentRepository.finishContent(courseID, contentID);\r\n }\r\n}\r\n\r\nexport default new CourseContentUseCaseImpl() as CourseContentUseCase;\r\n","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6d28febb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"card\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = { class: \"card__title\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"img\", {\n class: \"card__image\",\n src: _ctx.entityImage\n }, null, 8, _hoisted_2),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.entityTitle), 1)\n ]))\n}","\r\nimport { defineComponent, PropType } from \"vue\";\r\nimport {\r\n Course,\r\n CourseTrack,\r\n Instructor,\r\n School,\r\n} from \"../../../../../domain/entities/entities\";\r\n\r\nconst __default__ = defineComponent({\r\n name: \"Card\",\r\n props: {\r\n entityTitle: {\r\n type: String,\r\n required: true,\r\n },\r\n entityImage: {\r\n type: String,\r\n default: () =>\r\n require(\"../../../assets/static/decola_logos/iconDecolaSmall.svg\"),\r\n },\r\n entity: {\r\n type: Object as PropType,\r\n },\r\n borderRadius: {\r\n type: String,\r\n },\r\n },\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"3a711147\": (_ctx.borderRadius)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./Card.vue?vue&type=template&id=6d28febb&scoped=true&ts=true\"\nimport script from \"./Card.vue?vue&type=script&lang=ts\"\nexport * from \"./Card.vue?vue&type=script&lang=ts\"\n\nimport \"./Card.vue?vue&type=style&index=0&id=6d28febb&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6d28febb\"]])\n\nexport default __exports__","/** Class used to filter prices. */\r\n\r\nexport class Prices {\r\n\r\n /** Price ID */\r\n public id: number | null;\r\n\r\n /** Price name. */\r\n public label: string;\r\n\r\n /** Attributes min and max are used to set a price range. */\r\n /** Minimum price. */\r\n public min: number | null;\r\n\r\n /** Maximum price. */\r\n public max: number | null;\r\n\r\n constructor(\r\n id = NaN || null,\r\n label = \"\",\r\n min = NaN || null,\r\n max = NaN || null\r\n ) {\r\n this.id = id;\r\n this.label = label;\r\n this.min = min;\r\n this.max = max;\r\n }\r\n}","module.exports = __webpack_public_path__ + \"img/logo-transparent.4c38c5e9.svg\";","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createBlock as _createBlock, withModifiers as _withModifiers, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ee99c718\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"header\",\n \"data-main-header\": \"\"\n}\nconst _hoisted_2 = { class: \"header__inner\" }\nconst _hoisted_3 = { class: \"left-content\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"header__logo__image\" }, null, -1))\nconst _hoisted_5 = [\"href\"]\nconst _hoisted_6 = [\"data-item-menu\"]\nconst _hoisted_7 = { class: \"center-content\" }\nconst _hoisted_8 = [\"value\"]\nconst _hoisted_9 = { class: \"right-content\" }\nconst _hoisted_10 = {\n key: 0,\n class: \"header__decoins\"\n}\nconst _hoisted_11 = [\"src\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Notification = _resolveComponent(\"Notification\")!\n const _component_menu_user = _resolveComponent(\"menu-user\")!\n\n return (_openBlock(), _createElementBlock(\"header\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"nav\", _hoisted_3, [\n _createVNode(_component_router_link, {\n class: \"header__logo\",\n to: { name: 'dashboard' }\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.headerNavItems, (item, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"nav-item\",\n key: index\n }, [\n (item.route.target)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n class: \"nav-item__link\",\n href: item.route.path,\n target: \"item.route.target\"\n }, [\n _createElementVNode(\"h2\", null, _toDisplayString(item.title), 1)\n ], 8, _hoisted_5))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"nav-item__link\",\n to: { name: item.route.name, params: item.route.params }\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h2\", {\n \"data-item-menu\": index,\n class: _normalizeClass({\r\n selected: item.route.name === _ctx.$router.currentRoute.value.name,\r\n })\n }, _toDisplayString(item.title), 11, _hoisted_6)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n ]))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n (_ctx.shouldShowSearchInput)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"header__search\",\n placeholder: \"O que você quer aprender?\",\n \"data-search\": \"\",\n value: _ctx.searchQuery,\n onInput: _cache[0] || (_cache[0] = ($event: any) => (_ctx.globalSearch($event)))\n }, null, 40, _hoisted_8))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n (_ctx.isDecolaTemplate())\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, _toDisplayString(_ctx.formatUserDecoins(_ctx.user.dcoins)), 1))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_Notification),\n _createElementVNode(\"div\", {\n class: \"header__dropdown-button\",\n style: _normalizeStyle({\r\n headerDropdownIsOpen: 'background-color: var(--primary-color)',\r\n }),\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.toggleHeaderOptionsState()), [\"prevent\"]))\n }, [\n _createElementVNode(\"img\", {\n class: \"header__dropdown-image\",\n src: _ctx.userPhoto || '',\n onError: _cache[1] || (_cache[1] = \r\n (event) =>\r\n (event.target.src = require('../../../assets/static/onerror-user.png'))\r\n ),\n alt: \"Sua foto de perfil.\"\n }, null, 40, _hoisted_11)\n ], 4),\n (_ctx.headerDropdownIsOpen)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.toggleHeaderOptionsState())),\n class: \"header__dropdown-backdrop\"\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_menu_user)\n ])\n ])\n ]))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-657c67ef\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"drop-down__menu\" }\nconst _hoisted_2 = { class: \"drop-down__user-name\" }\nconst _hoisted_3 = { class: \"drop-down__user-email\" }\nconst _hoisted_4 = [\"src\"]\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\" Sair \")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_item = _resolveComponent(\"item\")!\n\n return (_openBlock(), _createElementBlock(\"nav\", {\n class: _normalizeClass(['drop-down__menu-box', { open: _ctx.isOpened }])\n }, [\n _createElementVNode(\"ul\", _hoisted_1, [\n _createElementVNode(\"li\", _hoisted_2, _toDisplayString(_ctx.user.socialName || _ctx.user.name), 1),\n _createElementVNode(\"li\", _hoisted_3, _toDisplayString(_ctx.user.email), 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item) => {\n return (_openBlock(), _createBlock(_component_item, { item: item }, null, 8, [\"item\"]))\n }), 256)),\n _createElementVNode(\"li\", {\n class: \"drop-down__logout\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.logout && _ctx.logout(...args)))\n }, [\n _createElementVNode(\"img\", {\n width: \"20\",\n height: \"20\",\n src: require(`../../../../assets/static/main-menu/logout.svg`),\n alt: \"Ícone de logout\"\n }, null, 8, _hoisted_4),\n _hoisted_5\n ])\n ])\n ], 2))\n}","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f023428e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"src\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\r\n 'drop-down__item',\r\n { ganhemais: _ctx.item.name === 'Meus treinamentos' && _ctx.isCirculoTemplate() }\r\n ]),\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.goToRoute && _ctx.goToRoute(...args)))\n }, [\n _createElementVNode(\"img\", {\n width: \"20\",\n height: \"20\",\n src: require(`../../../../assets/static/main-menu/${_ctx.item.image}`),\n alt: \"Ícone\"\n }, null, 8, _hoisted_1),\n _createTextVNode(\" \" + _toDisplayString(_ctx.item.name), 1)\n ], 2))\n}","\r\nimport { defineComponent, PropType } from \"vue\";\r\nimport router from \"@/routes\";\r\nimport { useStore } from \"vuex\";\r\nimport MenuItem from \"./MenuItem\";\r\nimport { ExternalRoute } from \"../menu/MenuItem\";\r\nimport { isCirculoTemplate } from \"../../../mixins\";\r\n\r\nexport default defineComponent({\r\n name: \"Item\",\r\n props: {\r\n item: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const store = useStore();\r\n\r\n /** Change dropdown options list visibility priority if open or closed. */\r\n function toggleHeaderOptionsState(): void {\r\n store.dispatch(\"miscellany_module/toggleHeaderOptionsState\");\r\n }\r\n\r\n async function goToRoute(): Promise {\r\n if (props.item.route instanceof ExternalRoute) {\r\n window.open(props.item.route.path, props.item.route.target);\r\n } else {\r\n await router.push({\r\n name: props.item?.route.name,\r\n params: props.item.route.params\r\n });\r\n }\r\n toggleHeaderOptionsState();\r\n }\r\n return {\r\n goToRoute,\r\n isCirculoTemplate\r\n };\r\n }\r\n});\r\n","import { render } from \"./Item.vue?vue&type=template&id=f023428e&scoped=true&ts=true\"\nimport script from \"./Item.vue?vue&type=script&lang=ts\"\nexport * from \"./Item.vue?vue&type=script&lang=ts\"\n\nimport \"./Item.vue?vue&type=style&index=0&id=f023428e&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f023428e\"]])\n\nexport default __exports__","import {ExternalRoute} from \"../menu/MenuItem\";\r\n\r\n/** Representation of an item in the menu bar. */\r\nexport default class MenuItem {\r\n public id: string | number;\r\n public name: string;\r\n public image: string;\r\n public items: Array;\r\n public route: ItemRoute | ExternalRoute;\r\n public disabled: boolean;\r\n\r\n constructor(\r\n name = \"\",\r\n image = \"\",\r\n route: ItemRoute | ExternalRoute,\r\n items = Array(),\r\n disabled = false\r\n ) {\r\n this.id = name;\r\n this.name = name;\r\n this.image = image;\r\n this.items = items;\r\n this.route = route;\r\n this.disabled = disabled;\r\n }\r\n}\r\n\r\nexport class ItemRoute {\r\n name: string;\r\n params: { [key: string]: number | string };\r\n\r\n constructor(name = \"\", params?) {\r\n this.name = name;\r\n this.params = params;\r\n }\r\n}\r\n\r\nexport class ItemExternalRoute {\r\n name: string;\r\n params: { [key: string]: number | string };\r\n\r\n constructor(name = \"\", params?) {\r\n this.name = name;\r\n this.params = params;\r\n }\r\n}\r\n","\r\nimport Item from \"../menu-user/Item.vue\";\r\nimport {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n onBeforeMount,\r\n reactive,\r\n UnwrapRef\r\n} from \"vue\";\r\nimport { useStore } from \"vuex\";\r\n\r\nimport { User } from \"../../../../../../domain/entities/entities\";\r\nimport { RepositoryException } from \"../../../../../../domain/exceptions/exceptions\";\r\nimport {\r\n dispatchErrorBox,\r\n isCirculoTemplate,\r\n isDecolaTemplate,\r\n isGTopTemplate\r\n} from \"../../../mixins\";\r\nimport router from \"@/routes\";\r\nimport MenuItem, { ItemRoute } from \"./MenuItem\";\r\nimport { ExternalRoute, InternalRoute } from \"../menu/MenuItem\";\r\nimport { currentDomain } from \"../../../../../repository/http\";\r\nimport { Menu } from \"../../../../../../domain/entities/courseEvent/training_course\";\r\n\r\nexport default defineComponent({\r\n name: \"MenuUser\",\r\n components: { Item },\r\n props: {\r\n isOpened: {\r\n type: Boolean,\r\n required: false\r\n }\r\n },\r\n\r\n setup() {\r\n const store = useStore();\r\n\r\n /** User getter.\r\n * @see User. */\r\n const user: ComputedRef = computed(() => {\r\n return store.getters[\"userProfile_module/user\"];\r\n });\r\n\r\n const student = new MenuItem(\r\n \"Meu perfil\",\r\n \"user.svg\",\r\n new ItemRoute(\"profile\", { option: \"statistics\" })\r\n );\r\n\r\n const events = new MenuItem(\r\n \"Meus treinamentos\",\r\n \"events.svg\",\r\n new ItemRoute(\"profile\", { option: \"events\" })\r\n );\r\n\r\n const adminPanel = new MenuItem(\r\n \"Painel Admin.\",\r\n \"admin-icon.svg\",\r\n new ExternalRoute(currentDomain + \"/admin#/dashboard\", \"_blank\")\r\n );\r\n\r\n const managerPanel = new MenuItem(\r\n \"Meus times\",\r\n \"admin-icon.svg\",\r\n new ExternalRoute(currentDomain + \"/admin#/team\", \"_blank\")\r\n );\r\n\r\n const statement = new MenuItem(\r\n \"Extrato\",\r\n \"statement.svg\",\r\n new ItemRoute(\"statement\")\r\n );\r\n\r\n const order = new MenuItem(\r\n \"Histórico de pedidos\",\r\n \"order.svg\",\r\n new ItemRoute(\"profile\", { option: \"history-order\" })\r\n );\r\n\r\n const dashboard = new MenuItem(\r\n \"Início\",\r\n \"dashboard.svg\",\r\n new ItemRoute(\"dashboard\", { option: \"dashboard\" })\r\n );\r\n\r\n const userDashboard = new MenuItem(\r\n \"Meu dashboard\",\r\n \"statistics.svg\",\r\n new ItemRoute(\"statistics\", { option: \"chart\" })\r\n );\r\n\r\n const shop = new MenuItem(\"Loja\", \"shop.svg\", new ItemRoute(\"shop\"));\r\n\r\n /** Items that will be iterable and displayed on menu */\r\n const items: ComputedRef = computed(() => {\r\n let menus: MenuItem[] = [dashboard, student, userDashboard, events];\r\n\r\n if (isDecolaTemplate() || isGTopTemplate()) {\r\n menus.push(statement);\r\n menus.push(order);\r\n menus.push(shop);\r\n }\r\n return menus;\r\n });\r\n\r\n /** Tells whether the dropdown options list is open or not. */\r\n const isOpened: ComputedRef = computed(() => {\r\n return store.getters[\"miscellany_module/headerDropdownIsOpen\"];\r\n });\r\n\r\n onBeforeMount(() => {\r\n const user = store.getters[\"userProfile_module/user\"] as User;\r\n switch (user.userType) {\r\n /** master and admin */\r\n case 2:\r\n case 5:\r\n items.value.unshift(adminPanel);\r\n break;\r\n /** manager */\r\n case 4:\r\n items.value.unshift(managerPanel);\r\n break;\r\n }\r\n });\r\n\r\n /** Logs the user out and directs them back to the landing page */\r\n async function logout(): Promise {\r\n const wannaLeave = confirm(\"Deseja realmente sair?\");\r\n\r\n if (!wannaLeave) {\r\n return;\r\n }\r\n\r\n try {\r\n await store.dispatch(\"authentication_module/logout\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n } finally {\r\n await store.dispatch(\"miscellany_module/setDropdownMenuState\", false);\r\n await store.dispatch(\"userProfile_module/updateUser\", null);\r\n await router.push({ name: \"home\" });\r\n }\r\n }\r\n\r\n return {\r\n items,\r\n user,\r\n isOpened,\r\n logout\r\n };\r\n }\r\n});\r\n","import { render } from \"./Menu.vue?vue&type=template&id=657c67ef&scoped=true&ts=true\"\nimport script from \"./Menu.vue?vue&type=script&lang=ts\"\nexport * from \"./Menu.vue?vue&type=script&lang=ts\"\n\nimport \"./Menu.vue?vue&type=style&index=0&id=657c67ef&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-657c67ef\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_NotificationButton = _resolveComponent(\"NotificationButton\")!\n const _component_NotificationList = _resolveComponent(\"NotificationList\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_NotificationButton, { \"data-notification-button\": \"\" }),\n _withDirectives(_createVNode(_component_NotificationList, { \"data-notification-list\": \"\" }, null, 512), [\n [_vShow, _ctx.isOpened]\n ])\n ], 64))\n}","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f57ebbc6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"notification\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"new\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"button\", _hoisted_1, [\n (_ctx.hasNewNotifications)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport { computed, ComputedRef, defineComponent } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\n\r\nexport default defineComponent({\r\n name: \"NotificationButton\",\r\n setup() {\r\n const store = useStore();\r\n\r\n const hasNewNotifications: ComputedRef = computed(\r\n () => store.getters[\"notification_module/hasNewNotifications\"]\r\n );\r\n\r\n return {\r\n hasNewNotifications\r\n };\r\n }\r\n});\r\n","import { render } from \"./NotificationButton.vue?vue&type=template&id=f57ebbc6&scoped=true&ts=true\"\nimport script from \"./NotificationButton.vue?vue&type=script&lang=ts\"\nexport * from \"./NotificationButton.vue?vue&type=script&lang=ts\"\n\nimport \"./NotificationButton.vue?vue&type=style&index=0&id=f57ebbc6&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f57ebbc6\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createCommentVNode as _createCommentVNode, vShow as _vShow, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3ba41bec\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"notification-list\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"notification-list__title\" }, \" Notificações \", -1))\nconst _hoisted_3 = {\n key: 0,\n class: \"notification-default\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_NotificationItem = _resolveComponent(\"NotificationItem\")!\n\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.notifications, (notification, index) => {\n return (_openBlock(), _createBlock(_component_NotificationItem, {\n key: index,\n notification: notification,\n onClick: ($event: any) => (_ctx.goToNotification(notification))\n }, null, 8, [\"notification\", \"onClick\"]))\n }), 128)),\n (!_ctx.notifications)\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_3, \" Você não possui nenhuma notificação \"))\n : _createCommentVNode(\"\", true)\n ])\n ], 512)), [\n [_vShow, _ctx.isOpened]\n ])\n}","export enum NotificationType {\r\n DOUBT = \"DOUBT_RESPONSE\"\r\n}\r\n","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-571bbdf3\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"notification-list__item\" }\nconst _hoisted_2 = { class: \"notification-list__container\" }\nconst _hoisted_3 = { class: \"notification-list__description\" }\nconst _hoisted_4 = { class: \"notification-list__item-subtitle\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"li\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\r\n 'notification-list__item-title',\r\n { disable: _ctx.notification.isRead },\r\n { flag: !_ctx.notification.isRead }\r\n ])\n }, _toDisplayString(_ctx.notification.title), 3),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.notification.description), 1),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.formatDateTime(_ctx.notification.created_at)), 1)\n ])\n ]))\n}","\r\nimport { defineComponent, PropType, ref, Ref } from \"vue\";\r\nimport { formatDateTime } from \"../../mixins\";\r\nimport { Notification } from \"../../../../../domain/entities/notifications/notification\";\r\n\r\nconst __default__ = defineComponent({\r\n name: \"NotificationItem\",\r\n props: {\r\n notification: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n methods: { formatDateTime },\r\n setup(props) {\r\n const image: Ref = ref(`url(${props.notification.image})`);\r\n return { image };\r\n }\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"2cc6eb23\": (_ctx.image)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./NotificationItem.vue?vue&type=template&id=571bbdf3&scoped=true&ts=true\"\nimport script from \"./NotificationItem.vue?vue&type=script&lang=ts\"\nexport * from \"./NotificationItem.vue?vue&type=script&lang=ts\"\n\nimport \"./NotificationItem.vue?vue&type=style&index=0&id=571bbdf3&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-571bbdf3\"]])\n\nexport default __exports__","\r\nimport {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n onBeforeMount,\r\n ref,\r\n Ref\r\n} from \"vue\";\r\nimport { dispatchError } from \"../../../utils/error_handling\";\r\nimport { wrapLoading } from \"../../../utils/wrap_loading\";\r\nimport { useStore } from \"vuex\";\r\nimport { Notification } from \"../../../../../domain/entities/notifications/notification\";\r\nimport { NotificationType } from \"../../../../../domain/enums/notification\";\r\nimport { useRouter } from \"vue-router\";\r\nimport { formatDateTime } from \"../../mixins\";\r\nimport NotificationItem from \"./NotificationItem.vue\";\r\nimport { updateQuery } from \"../../../utils/routing_utils\";\r\n\r\nexport default defineComponent({\r\n name: \"NotificationList\",\r\n components: { NotificationItem },\r\n methods: { formatDateTime },\r\n setup() {\r\n const store = useStore();\r\n const router = useRouter();\r\n\r\n const isOpened: Ref = ref(true);\r\n\r\n const notifications: ComputedRef = computed(\r\n () => store.getters[\"notification_module/notifications\"]\r\n );\r\n\r\n onBeforeMount(async () => {\r\n await loadNotifications();\r\n });\r\n\r\n const loadNotifications = async (): Promise => {\r\n try {\r\n await wrapLoading(async () => {\r\n await store.dispatch(\"notification_module/list\");\r\n });\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n const toggleNotificationModal = async () => {\r\n isOpened.value = !isOpened.value;\r\n };\r\n\r\n const setWatchNotification = async (\r\n notificationID: number\r\n ): Promise => {\r\n try {\r\n await wrapLoading(async () => {\r\n await store.dispatch(\"notification_module/watch\", notificationID);\r\n });\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n const goToContentView = async (\r\n courseID: number,\r\n contentID: number\r\n ): Promise => {\r\n await router.push({ name: \"dashboard\" });\r\n\r\n await router.push({\r\n name: \"course_content\",\r\n params: {\r\n course_id: courseID,\r\n content_id: contentID\r\n }\r\n });\r\n await updateQuery(router, \"notification\", \"true\");\r\n };\r\n\r\n const goToNotification = async (\r\n notification: Notification\r\n ): Promise => {\r\n switch (notification.type) {\r\n case NotificationType.DOUBT:\r\n await toggleNotificationModal();\r\n await goToContentView(\r\n notification.metadata.idCourse,\r\n notification.metadata.idContent\r\n );\r\n await setWatchNotification(notification.id);\r\n await loadNotifications();\r\n break;\r\n }\r\n };\r\n\r\n return {\r\n notifications,\r\n isOpened,\r\n goToNotification,\r\n toggleNotificationModal\r\n };\r\n }\r\n});\r\n","import { render } from \"./NotificationList.vue?vue&type=template&id=3ba41bec&scoped=true&ts=true\"\nimport script from \"./NotificationList.vue?vue&type=script&lang=ts\"\nexport * from \"./NotificationList.vue?vue&type=script&lang=ts\"\n\nimport \"./NotificationList.vue?vue&type=style&index=0&id=3ba41bec&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3ba41bec\"]])\n\nexport default __exports__","\r\nimport { defineComponent, ref, Ref } from \"vue\";\r\nimport NotificationButton from \"./NotificationButton.vue\";\r\nimport NotificationList from \"./NotificationList.vue\";\r\n\r\nexport default defineComponent({\r\n name: \"Notification\",\r\n components: { NotificationList, NotificationButton },\r\n setup() {\r\n const isOpened: Ref = ref(false);\r\n\r\n const toggleNotificationModal = async () => {\r\n isOpened.value = !isOpened.value;\r\n };\r\n\r\n document.documentElement.onclick = async function(event: Event) {\r\n const list = document.querySelector(\"[data-notification-list]\");\r\n const button = document.querySelector(\"[data-notification-button]\");\r\n if (event.target === button) {\r\n await toggleNotificationModal();\r\n } else if (event.target !== list) {\r\n isOpened.value = false;\r\n }\r\n };\r\n\r\n return {\r\n isOpened,\r\n toggleNotificationModal\r\n };\r\n }\r\n});\r\n","import { render } from \"./Notification.vue?vue&type=template&id=623f802a&ts=true\"\nimport script from \"./Notification.vue?vue&type=script&lang=ts\"\nexport * from \"./Notification.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { getOrderFromURL } from \"../../../utils/order_utils\";\r\nimport { updateQueries } from \"../../../../repository/utils/routing_utils\";\r\nimport { removeQuery, updateQuery } from \"../../../utils/routing_utils\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { dispatchError } from \"../../../utils/error_handling\";\r\nimport { getMenuItems } from \"./menu/MenuItemsLoader\";\r\nimport {\r\n formatSearchQuery,\r\n formatUserDecoins,\r\n isDecolaTemplate,\r\n} from \"../../mixins\";\r\nimport { useStore } from \"vuex\";\r\nimport { computed } from \"@vue/reactivity\";\r\nimport {\r\n defineComponent,\r\n onBeforeMount,\r\n ref,\r\n watch,\r\n Ref,\r\n ComputedRef,\r\n} from \"vue\";\r\nimport { User } from \"../../../../../domain/entities/entities\";\r\nimport { MenuItem } from \"./menu/MenuItem\";\r\nimport { Order } from \"../../../../../domain/entities/order\";\r\nimport MenuUser from \"./menu-user/Menu.vue\";\r\nimport Notification from \"../notification/Notification.vue\";\r\nimport dashboard from \"../../../views/Dashboard.vue\";\r\n\r\nexport default defineComponent({\r\n methods: { isDecolaTemplate },\r\n computed: {\r\n dashboard() {\r\n return dashboard;\r\n },\r\n },\r\n components: { Notification, MenuUser },\r\n inheritAttrs: false,\r\n setup() {\r\n const store = useStore();\r\n const route = useRoute();\r\n const router = useRouter();\r\n\r\n const inputValue: Ref = ref(\"\");\r\n\r\n /** Key that references the timer in progress. Used to cancel the timeout. */\r\n let timerId;\r\n\r\n /** Tells whether the dropdown options list is open or not. */\r\n const headerDropdownIsOpen: ComputedRef = computed(() => {\r\n return store.getters[\"miscellany_module/headerDropdownIsOpen\"];\r\n });\r\n /** Tells whether the sidebar is open or not. */\r\n const sidebarIsOpen: ComputedRef = computed(() => {\r\n return store.getters[\"miscellany_module/sidebarIsOpen\"];\r\n });\r\n\r\n /** Tells whether the user is logged in or not. */\r\n const userIsLogged: ComputedRef = computed(() => {\r\n return store.getters[\"userProfile_module/user\"];\r\n });\r\n\r\n /** Photo of the user in the following format \"url(http://example.png)\". */\r\n const userPhoto: ComputedRef = computed(() => {\r\n const user: User = store.getters[\"userProfile_module/user\"];\r\n return user.image;\r\n });\r\n\r\n /** User getter.\r\n * @see User. */\r\n const user: ComputedRef = computed(() => {\r\n return store.getters[\"userProfile_module/user\"];\r\n });\r\n\r\n const searchQuery: Ref = ref(\"\");\r\n\r\n /** List of links that displays at the nav bar. */\r\n const headerNavItems: Ref = ref([]);\r\n\r\n watch(\r\n () => route.query.search,\r\n () => {\r\n if (\r\n route.name === \"details_course_tracks\" ||\r\n route.name === \"details_courses\" ||\r\n route.name === \"global_search\" ||\r\n route.name === \"details_courses_instructors\"\r\n ) {\r\n if (!route.query.search) {\r\n removeQuery(router, \"search\");\r\n router.push({ name: \"dashboard\" });\r\n } else {\r\n searchQuery.value = String(route.query.search);\r\n }\r\n } else {\r\n searchQuery.value = \"\";\r\n }\r\n }\r\n );\r\n\r\n onBeforeMount(async () => {\r\n headerNavItems.value = getMenuItems();\r\n const order = getOrderFromURL(route);\r\n try {\r\n await store.dispatch(\r\n \"shop_module/setDecoinsInWallet\",\r\n user.value.dcoins\r\n );\r\n\r\n if (route.query.search) {\r\n searchQuery.value = String(route.query.search);\r\n await loadGlobalSchools(String(route.query.search));\r\n await loadGlobalCourseTracks(String(route.query.search));\r\n await loadGlobalInstructors(String(route.query.search));\r\n await loadGlobalCourses(order);\r\n } else {\r\n await removeQuery(router, \"search\");\r\n }\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n });\r\n\r\n /** Change dropdown options list visibility priority if open or closed. */\r\n function toggleHeaderOptionsState(): void {\r\n store.dispatch(\"miscellany_module/toggleHeaderOptionsState\");\r\n }\r\n\r\n /** Function used to search for products by name. */\r\n async function globalSearch(event: Event): Promise {\r\n const input = event.target as HTMLInputElement;\r\n searchQuery.value = input.value;\r\n\r\n clearTimeout(timerId);\r\n\r\n timerId = setTimeout(async () => {\r\n await router.push(\"/search\");\r\n await updateQueries(router, {\r\n page: \"1\",\r\n limit: \"20\",\r\n search: searchQuery.value,\r\n });\r\n const order = getOrderFromURL(route);\r\n await loadGlobalSchools(formatSearchQuery(String(route.query.search)));\r\n await loadGlobalCourseTracks(\r\n formatSearchQuery(String(route.query.search))\r\n );\r\n await loadGlobalInstructors(\r\n formatSearchQuery(String(route.query.search))\r\n );\r\n await loadGlobalCourses(order);\r\n }, 500);\r\n }\r\n\r\n const loadLogo = (): string => {\r\n if (process.env.VUE_APP_THEME === \"circulo\") {\r\n return require(\"../../../assets/static/companies_logos/ganhemais-white.svg\");\r\n } else {\r\n return require(\"../../../assets/static/decola_logos/new_logo_sem_slogan_white.svg\");\r\n }\r\n };\r\n\r\n const loadGlobalCourses = async (order: Order): Promise => {\r\n try {\r\n await store.dispatch(\"globalSearch_module/loadCourses\", order);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n };\r\n\r\n const loadGlobalSchools = async (search: string): Promise => {\r\n try {\r\n await store.dispatch(\"globalSearch_module/loadSchools\", search);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n };\r\n\r\n const loadGlobalCourseTracks = async (search: string): Promise => {\r\n try {\r\n await store.dispatch(\"globalSearch_module/loadCourseTracks\", search);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n };\r\n\r\n const loadGlobalInstructors = async (search: string): Promise => {\r\n try {\r\n await store.dispatch(\"globalSearch_module/loadInstructors\", search);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n };\r\n\r\n const shouldShowSearchInput = computed(() => {\r\n const excludedRoutes = [\r\n \"course\",\r\n \"course_content\",\r\n \"event_content\",\r\n \"profile\",\r\n \"edit\",\r\n \"event\",\r\n \"exercise\",\r\n \"event_questionnaire\",\r\n \"course_questionnaire\",\r\n \"training-course\",\r\n \"statement\",\r\n \"shop\",\r\n \"product_detail\",\r\n \"favorite\",\r\n \"bag\",\r\n ];\r\n return !excludedRoutes.includes(route.name as string);\r\n });\r\n\r\n return {\r\n user,\r\n sidebarIsOpen,\r\n userIsLogged,\r\n headerNavItems,\r\n userPhoto,\r\n headerDropdownIsOpen,\r\n inputValue,\r\n searchQuery,\r\n shouldShowSearchInput,\r\n toggleHeaderOptionsState,\r\n formatUserDecoins,\r\n globalSearch,\r\n updateQuery,\r\n loadLogo,\r\n };\r\n },\r\n});\r\n","import { render } from \"./Header.vue?vue&type=template&id=ee99c718&scoped=true&ts=true\"\nimport script from \"./Header.vue?vue&type=script&lang=ts\"\nexport * from \"./Header.vue?vue&type=script&lang=ts\"\n\nimport \"./Header.vue?vue&type=style&index=0&id=ee99c718&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ee99c718\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./RegisterModal.vue?vue&type=style&index=0&id=5be5b1cc&scoped=true&lang=css\"","var map = {\n\t\"./banner-central.jpg\": \"f354\",\n\t\"./bannerDesktop.jpg\": \"2bf9\",\n\t\"./bannerMobile.svg\": \"4fc6\",\n\t\"./logo-hub-white.png\": \"a2c7\",\n\t\"./logo-transparent.svg\": \"1311\",\n\t\"./logo.svg\": \"e19a\",\n\t\"./missao.svg\": \"869f\",\n\t\"./obencard.png\": \"f557\",\n\t\"./preceiro.png\": \"0037\",\n\t\"./redetop.png\": \"3afd\",\n\t\"./valores.svg\": \"75bd\",\n\t\"./visao.svg\": \"de60\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"161f\";","module.exports = __webpack_public_path__ + \"img/administracao-icon.7c2141d8.png\";","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, mergeProps as _mergeProps, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3d137d1e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"comment__top\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = { class: \"comment__user-name\" }\nconst _hoisted_4 = { class: \"comment__date\" }\nconst _hoisted_5 = { class: \"comment__bottom\" }\nconst _hoisted_6 = { class: \"comment__content-container\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"comment__content\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"comment__stars\"\n}\nconst _hoisted_9 = { class: \"comment__star\" }\nconst _hoisted_10 = { class: \"comment__comment\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _mergeProps({ class: \"comment\" }, _ctx.$attrs), [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"img\", {\n class: \"comment__image\",\n width: \"40\",\n height: \"40\",\n src: $props.userImage,\n onError: _cache[0] || (_cache[0] = \r\n event =>\r\n (event.target.src = require('../../../assets/static/onerror-user.png'))\r\n ),\n alt: \"\",\n crossorigin: \"anonymous\"\n }, null, 40, _hoisted_2),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString($props.userName), 1),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString($props.date), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n ($props.label)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_7, _toDisplayString($props.label) + \": \" + _toDisplayString($props.contentName), 1))\n : _createCommentVNode(\"\", true),\n ($props.stars)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($props.stars, (star) => {\n return (_openBlock(), _createElementBlock(\"span\", _hoisted_9))\n }), 256))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString($props.comment ? $props.comment : \"\"), 1)\n ])\n ], 16))\n}","\r\nexport default {\r\n name: \"Comment\",\r\n props: {\r\n userName: {\r\n type: String,\r\n required: true\r\n },\r\n date: {\r\n type: String,\r\n required: true\r\n },\r\n stars: {\r\n type: Number\r\n },\r\n comment: {\r\n type: String,\r\n required: true\r\n },\r\n contentName: {\r\n type: String,\r\n required: true\r\n },\r\n userImage: {\r\n type: String,\r\n required: true\r\n },\r\n label: {\r\n type: String\r\n }\r\n }\r\n};\r\n","import { render } from \"./Comment.vue?vue&type=template&id=3d137d1e&scoped=true&ts=true\"\nimport script from \"./Comment.vue?vue&type=script&lang=ts\"\nexport * from \"./Comment.vue?vue&type=script&lang=ts\"\n\nimport \"./Comment.vue?vue&type=style&index=0&id=3d137d1e&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3d137d1e\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./CropperImageInput.vue?vue&type=style&index=1&id=af682c02&scoped=true&lang=css\"","import { createElementVNode as _createElementVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-af682c02\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"modal-content\" }\nconst _hoisted_2 = { class: \"modal-header\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { \"aria-hidden\": \"true\" }, \"×\", -1))\nconst _hoisted_4 = [\n _hoisted_3\n]\nconst _hoisted_5 = { class: \"modal-body\" }\nconst _hoisted_6 = { class: \"img-container\" }\nconst _hoisted_7 = [\"src\"]\nconst _hoisted_8 = { class: \"modal-footer\" }\nconst _hoisted_9 = { class: \"button button-select\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Selecione uma imagem\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"trigger-area\",\n id: \"modal\",\n role: \"dialog\",\n \"aria-hidden\": \"true\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.closeCropper()), [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", {\n class: \"modal-dialog\",\n role: \"document\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(() => {}, [\"stop\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n type: \"button\",\n class: \"close\",\n \"data-dismiss\": \"modal\",\n \"aria-label\": \"Close\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.closeCropper()), [\"prevent\"]))\n }, _hoisted_4)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"img\", {\n id: \"image\",\n src: _ctx.url,\n alt: \"Picture\",\n \"data-user-image\": \"\"\n }, null, 8, _hoisted_7)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", _hoisted_9, [\n _hoisted_10,\n _createElementVNode(\"input\", {\n type: \"file\",\n id: \"image\",\n \"data-file\": \"\",\n accept: \".png, .jpg, .jpeg, .webp\",\n onChange: _cache[1] || (_cache[1] = ($event: any) => (_ctx.setImageToPreview($event.target)))\n }, null, 32)\n ]),\n _createElementVNode(\"button\", {\n class: \"button button-add\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.getCroppedImageUrl()))\n }, \" Salvar \")\n ])\n ])\n ])\n ]))\n}","\r\nimport {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n onMounted,\r\n ref,\r\n Ref,\r\n watch\r\n} from \"vue\";\r\nimport Cropper from \"cropperjs\";\r\nimport \"cropperjs/src/css/cropper.css\";\r\nimport { useStore } from \"vuex\";\r\nimport { wrapLoading } from \"../../utils/wrap_loading\";\r\nimport {\r\n disableBodyOverflow, dispatchErrorBox,\r\n enableBodyOverflow,\r\n handleImageExtention\r\n} from \"../mixins\";\r\n\r\nexport default defineComponent({\r\n name: \"cropperImageInput\",\r\n props: {\r\n imageUrl: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n emits: [\"cropped-image-url\"],\r\n setup(props, { emit }) {\r\n const store = useStore();\r\n const isCuttable: Ref = ref(false);\r\n const isInputImageOpened: ComputedRef = computed(\r\n () => store.getters[\"utils_module/isVisible\"]\r\n );\r\n const cropper = ref();\r\n const url: Ref = ref(props.imageUrl);\r\n\r\n onMounted(() => {\r\n loadCropper();\r\n });\r\n\r\n watch(\r\n () => url.value,\r\n () => {\r\n loadCropper();\r\n }\r\n );\r\n const loadCropper = () => {\r\n let image = document.querySelector(\r\n \"[data-user-image]\"\r\n ) as HTMLImageElement;\r\n if (cropper.value) {\r\n cropper.value.destroy();\r\n }\r\n\r\n image.src = url.value;\r\n cropper.value = new Cropper(image, {\r\n aspectRatio: 1,\r\n viewMode: 1,\r\n checkCrossOrigin: false,\r\n ready: function() {\r\n isCuttable.value = true;\r\n }\r\n });\r\n disableBodyOverflow();\r\n };\r\n\r\n const getCroppedImageUrl = async (): Promise => {\r\n const input = document.querySelector(\"[data-file]\") as HTMLInputElement;\r\n\r\n if (!input || !input.files || input.files.length === 0) {\r\n console.error(\"Nenhuma imagem selecionada.\");\r\n return;\r\n }\r\n\r\n const file = input.files[0];\r\n /**\r\n * Sets the maximum allowed file size to 3 MB.\r\n * - 3: Represents the amount of megabytes.\r\n * - 1024: Means the number of kilobytes per megabyte (1 MB = 1024 KB).\r\n * - 3 * 1024 * 1024: Multiply 3 megabytes by 1024 twice to get the value in bytes (3 MB = 3 * 1024 * 1024 bytes).\r\n */\r\n const maxSize = 3 * 1024 * 1024;\r\n\r\n if (file.size > maxSize) {\r\n await dispatchErrorBox(\"A imagem selecionada é maior que 3MB. Por favor, selecione outra.\");\r\n return;\r\n }\r\n\r\n await wrapLoading(async () => {\r\n if (!isCuttable.value) {\r\n return;\r\n }\r\n\r\n emit(\"cropped-image-url\", cropper.value.getCroppedCanvas().toDataURL());\r\n await closeCropper();\r\n });\r\n };\r\n\r\n const closeCropper = async (): Promise => {\r\n await store.dispatch(\"utils_module/setVisibility\", false);\r\n enableBodyOverflow();\r\n };\r\n\r\n const setImageToPreview = async (\r\n input: HTMLInputElement\r\n ): Promise => {\r\n const filename = input?.files![0].name;\r\n\r\n if (handleImageExtention(filename) === \"\") return;\r\n\r\n const reader = new FileReader();\r\n reader.readAsDataURL(input.files![0]);\r\n reader.onload = () => {\r\n url.value = reader.result as string;\r\n };\r\n };\r\n\r\n document.addEventListener(\"keydown\", async function(e) {\r\n if (e.key === \"Escape\") {\r\n await store.dispatch(\"utils_module/setVisibility\", false);\r\n }\r\n });\r\n\r\n return {\r\n url,\r\n isInputImageOpened,\r\n loadCropper,\r\n getCroppedImageUrl,\r\n setImageToPreview,\r\n closeCropper\r\n };\r\n }\r\n});\r\n","import { render } from \"./CropperImageInput.vue?vue&type=template&id=af682c02&scoped=true&ts=true\"\nimport script from \"./CropperImageInput.vue?vue&type=script&lang=ts\"\nexport * from \"./CropperImageInput.vue?vue&type=script&lang=ts\"\n\nimport \"./CropperImageInput.vue?vue&type=style&index=0&id=af682c02&lang=css\"\nimport \"./CropperImageInput.vue?vue&type=style&index=1&id=af682c02&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-af682c02\"]])\n\nexport default __exports__","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./DecoinsLimitModal.vue?vue&type=style&index=0&id=4144fc1a&scoped=true&lang=css\"","import { Order } from \"./shop/order/order\";\r\nimport { Content } from \"../../infrastructure/presentation/views/content/helpers\";\r\nimport { EnrolledTrainingTypes } from \"../enums/course\";\r\nimport { Menu } from \"./courseEvent/training_course\";\r\n\r\nexport class User {\r\n public login: string;\r\n public password: string;\r\n public isFirstLogin: boolean;\r\n public attendance: boolean;\r\n public attendanceAts: AttendanceAt[];\r\n public passwordConfirmation: string;\r\n public id: number;\r\n public name: string;\r\n public socialName: string;\r\n public profession: string;\r\n public academicEducation: string;\r\n public biography: string;\r\n public document: string;\r\n public email: string;\r\n public birthDate: string;\r\n public image: string;\r\n public profilePictureExtension: string;\r\n public address: Address;\r\n public dcoins: number;\r\n public completeCourses: number;\r\n public totalWatched: number;\r\n public userType: number;\r\n /** Only used when the user comes from an EventClass\r\n * @see EventClass */\r\n public enrolledAt: string = \"\";\r\n public attendanceAt: string = \"\";\r\n public isImported: boolean = false;\r\n public passwordModifiedAt: string = \"\";\r\n public certificateGenerated: string;\r\n public percentageUser: number;\r\n public interests: Interest[];\r\n\r\n public isForeigner: boolean;\r\n public needAcceptNewTerm: boolean;\r\n\r\n constructor(\r\n login = \"\",\r\n password = \"\",\r\n passwordConfirmation = \"\",\r\n id = NaN,\r\n name = \"\",\r\n socialName = \"\",\r\n profession = \"\",\r\n academicEducation = \"\",\r\n biography = \"\",\r\n firstLogin = true,\r\n document = \"\",\r\n email = \"\",\r\n birthDate = \"\",\r\n image = \"\",\r\n profilePictureExtension = \"\",\r\n address: Address = new Address(),\r\n dcoins: number = 0,\r\n completeCourses: number = 0,\r\n totalWatched: number = 0,\r\n userType: number = 0,\r\n isImported = false,\r\n passwordModifiedAt = \"\",\r\n certificateGenerated = \"\",\r\n percentageUser = NaN,\r\n interests = new Array(),\r\n isForeigner = false,\r\n attendance = false,\r\n needAcceptNewTerm = false,\r\n attendanceAts = new Array()\r\n ) {\r\n this.id = id;\r\n this.login = login;\r\n this.password = password;\r\n this.isFirstLogin = firstLogin;\r\n this.passwordConfirmation = passwordConfirmation;\r\n this.name = name;\r\n this.socialName = socialName;\r\n this.profession = profession;\r\n this.biography = biography;\r\n this.academicEducation = academicEducation;\r\n this.document = document;\r\n this.email = email;\r\n this.birthDate = birthDate;\r\n this.image = image;\r\n this.profilePictureExtension = profilePictureExtension;\r\n this.address = address;\r\n this.dcoins = dcoins;\r\n this.completeCourses = completeCourses;\r\n this.totalWatched = totalWatched;\r\n this.userType = userType;\r\n this.isImported = isImported;\r\n this.passwordModifiedAt = passwordModifiedAt;\r\n this.certificateGenerated = certificateGenerated;\r\n this.percentageUser = percentageUser;\r\n this.interests = interests;\r\n this.isForeigner = isForeigner;\r\n this.attendance = attendance;\r\n this.needAcceptNewTerm = needAcceptNewTerm;\r\n this.attendanceAts = attendanceAts;\r\n }\r\n}\r\n\r\nexport class Address {\r\n public addressNumber: number;\r\n public street: string;\r\n public district: string;\r\n public federalUnit: string;\r\n public stateID: number;\r\n public city: string;\r\n public zipCode: string;\r\n public complement: string;\r\n\r\n constructor(\r\n addressNumber = NaN,\r\n street = \"\",\r\n district = \"\",\r\n federalUnit = \"\",\r\n city = \"\",\r\n zipCode = \"\",\r\n stateID = NaN,\r\n complement = \"\"\r\n ) {\r\n this.addressNumber = addressNumber;\r\n this.street = street;\r\n this.district = district;\r\n this.federalUnit = federalUnit;\r\n this.stateID = stateID;\r\n this.city = city;\r\n this.zipCode = zipCode;\r\n this.complement = complement;\r\n }\r\n}\r\n\r\n/** Represents a course the user is currently doing or have already finished. */\r\nexport class UserCourse {\r\n public enrolled: boolean;\r\n public finished: boolean;\r\n\r\n constructor(enrolled = false, finished = false) {\r\n this.enrolled = enrolled;\r\n this.finished = finished;\r\n }\r\n}\r\n\r\n/** The school entity's purpose is to serve as a top level category that hold course tracks with topics in common. */\r\nexport class School {\r\n public id: number;\r\n public description: string;\r\n public name: string;\r\n public thumbnailURL: string;\r\n public thumbnailExtention: string;\r\n public isActive: boolean;\r\n public lastChange: string;\r\n public courseTracks: Array;\r\n\r\n constructor(\r\n id = NaN,\r\n description = \"\",\r\n name = \"\",\r\n thumbnailURL = \"\",\r\n thumbnailExtention = \"\",\r\n isActive = true,\r\n lastChange = \"\",\r\n courseTracks = new Array()\r\n ) {\r\n this.id = id;\r\n this.description = description;\r\n this.name = name;\r\n this.thumbnailURL = thumbnailURL;\r\n this.thumbnailExtention = thumbnailExtention;\r\n this.isActive = isActive;\r\n this.lastChange = lastChange;\r\n this.courseTracks = courseTracks;\r\n }\r\n}\r\n\r\n/** The course track entity is a sequence of courses that share the same goal within the student's learning. */\r\nexport class CourseTrack {\r\n public schoolId: number;\r\n public id: number;\r\n public title: string;\r\n public description: string;\r\n public isActive: boolean;\r\n public lastChange: string;\r\n public thumbnailURL: string;\r\n public thumbnailExtention: string;\r\n\r\n constructor(\r\n schoolId = NaN,\r\n id = NaN,\r\n title = \"\",\r\n description = \"\",\r\n isActive = true,\r\n lastChange = \"\",\r\n thumbnailURL = \"\",\r\n thumbnailExtention = \"\"\r\n ) {\r\n this.schoolId = schoolId;\r\n this.id = id;\r\n this.title = title;\r\n this.description = description;\r\n this.isActive = isActive;\r\n this.lastChange = lastChange;\r\n this.thumbnailURL = thumbnailURL;\r\n this.thumbnailExtention = thumbnailExtention;\r\n }\r\n}\r\n\r\nexport class ContentComment {\r\n public userName;\r\n public userImage;\r\n public message;\r\n public courseName;\r\n public contentName;\r\n public rating;\r\n public createAt;\r\n}\r\n\r\nexport enum StatusCode {\r\n DELETED = 2\r\n}\r\n\r\nexport class StatusCourse {\r\n public finished: boolean;\r\n public progress: boolean;\r\n\r\n constructor(progress = false, finished = false) {\r\n this.progress = progress;\r\n this.finished = finished;\r\n }\r\n}\r\nexport class Course {\r\n public id: number;\r\n public idSubcategory: number;\r\n public title: string;\r\n public description: string;\r\n public duration: number;\r\n public rating: string;\r\n public isNew: boolean;\r\n public isPill: boolean;\r\n public isWatched: boolean;\r\n public haveCertification: boolean;\r\n public imageURL: string;\r\n public bannerURL: string;\r\n public imageExtension: string;\r\n public bannerExtension: string;\r\n public isActive: boolean;\r\n public activationDate: string;\r\n public inactivationDate: string;\r\n public lastChange: string;\r\n public formattedDuration: string;\r\n public certificatePath: string;\r\n public courseProgress: number;\r\n public hasNewContent: boolean;\r\n public statusCode: number;\r\n public haveComments: boolean;\r\n public introductoryContent: Content | null;\r\n public releaseStartDate: string;\r\n public releaseEndDate: string;\r\n public statusCourse: StatusCourse;\r\n public haveDecoins: boolean;\r\n public contents: Content[];\r\n\r\n constructor(\r\n idSubcategory = NaN,\r\n id = NaN,\r\n title = \"\",\r\n description = \"\",\r\n duration = NaN,\r\n rating = \"\",\r\n isNew = false,\r\n isPill = false,\r\n isWatched = false,\r\n haveCertification = false,\r\n imageURL = \"\",\r\n bannerURL = \"\",\r\n imageExtension = \"\",\r\n bannerExtension = \"\",\r\n isActive = true,\r\n activationDate = \"\",\r\n inactivationDate = \"\",\r\n lastChange = \"\",\r\n formattedDuration = \"\",\r\n certificatePath = \"\",\r\n courseProgress = NaN,\r\n hasNewContent = false,\r\n statusCode = NaN,\r\n haveComments = false,\r\n introductoryContent = null,\r\n releaseStartDate = \"\",\r\n releaseEndDate = \"\",\r\n statusCourse = new StatusCourse(),\r\n haveDecoins = false,\r\n contents = []\r\n ) {\r\n this.idSubcategory = idSubcategory;\r\n this.id = id;\r\n this.title = title;\r\n this.description = description;\r\n this.duration = duration;\r\n this.rating = rating;\r\n this.isNew = isNew;\r\n this.isPill = isPill;\r\n this.isWatched = isWatched;\r\n this.haveCertification = haveCertification;\r\n this.imageURL = imageURL;\r\n this.bannerURL = bannerURL;\r\n this.imageExtension = imageExtension;\r\n this.bannerExtension = bannerExtension;\r\n this.isActive = isActive;\r\n this.activationDate = activationDate;\r\n this.inactivationDate = inactivationDate;\r\n this.lastChange = lastChange;\r\n this.formattedDuration = formattedDuration;\r\n this.certificatePath = certificatePath;\r\n this.courseProgress = courseProgress;\r\n this.hasNewContent = hasNewContent;\r\n this.statusCode = statusCode;\r\n this.haveComments = haveComments;\r\n this.introductoryContent = introductoryContent;\r\n this.releaseStartDate = releaseStartDate;\r\n this.releaseEndDate = releaseEndDate;\r\n this.statusCourse = statusCourse;\r\n this.haveDecoins = haveDecoins;\r\n this.contents = contents;\r\n }\r\n}\r\n\r\nexport class FilterCourse {\r\n public schools: number[];\r\n public courseTracks: number[];\r\n\r\n constructor(schools = [], courseTracks = []) {\r\n this.schools = schools;\r\n this.courseTracks = courseTracks;\r\n }\r\n}\r\n\r\nexport type Instructor = {\r\n id: number;\r\n name: string;\r\n biography: string;\r\n academicEducation: string;\r\n image: string;\r\n};\r\n\r\nexport class Annotation {\r\n public content: string;\r\n public seconds: number;\r\n public id: number;\r\n\r\n constructor(content = \"\", seconds = NaN, id = NaN) {\r\n this.content = content;\r\n this.seconds = seconds;\r\n this.id = id;\r\n }\r\n}\r\n\r\nexport class UserRating {\r\n public userName: string;\r\n public userImage: string;\r\n public stars: number;\r\n public message: string;\r\n public createdAt: string;\r\n\r\n constructor(\r\n userName = \"\",\r\n userImage = \"\",\r\n stars = 0,\r\n message = \"\",\r\n createdAt = \"\"\r\n ) {\r\n this.userImage = userImage;\r\n this.userName = userName;\r\n this.stars = stars;\r\n this.message = message;\r\n this.createdAt = createdAt;\r\n }\r\n}\r\n\r\nexport class Interest {\r\n public id: number;\r\n public isActive: boolean;\r\n public title: string;\r\n\r\n constructor(id = 0, isActive = true, title = \"\") {\r\n this.id = id;\r\n this.isActive = isActive;\r\n this.title = title;\r\n }\r\n}\r\n\r\n/** Used when the user is trying to recover their password and do not have a Decola account */\r\nexport class UserData {\r\n public name: string;\r\n public birthDate: string;\r\n public badgeCode: number;\r\n public document: string;\r\n public mothersName: string;\r\n public email: string;\r\n\r\n constructor(\r\n name = \"\",\r\n birtDate = \"\",\r\n badgeCode = NaN,\r\n document = \"\",\r\n mothersName = \"\",\r\n email = \"\"\r\n ) {\r\n this.name = name;\r\n this.birthDate = birtDate;\r\n this.badgeCode = badgeCode;\r\n this.document = document;\r\n this.mothersName = mothersName;\r\n this.email = email;\r\n }\r\n}\r\n\r\n/** Used to check password strength. */\r\nexport class PasswordStrength {\r\n /** Password strength value. */\r\n public entropy: number;\r\n\r\n /** Minimum strength required for the password to be considered acceptable. Default value 60. */\r\n public minEntropy: number;\r\n\r\n constructor(entropy = NaN, minEntropy = NaN) {\r\n this.entropy = entropy;\r\n this.minEntropy = minEntropy;\r\n }\r\n}\r\n\r\n/** CourseCertificate used to redirect user to the certificate path\r\n * that is generated when user is getting the certificate by request.\r\n * @path is the http location where the certificate is stored. */\r\nexport class CourseCertificate {\r\n path: string;\r\n\r\n constructor(path = \"\") {\r\n this.path = path;\r\n }\r\n}\r\n\r\nexport type UserTeam = {\r\n id: number;\r\n name: string;\r\n managerName: string;\r\n totalOfMembers: number;\r\n};\r\n\r\nexport type Company = {\r\n id: number;\r\n name: string;\r\n};\r\n\r\nexport type UserRanking = {\r\n id: number;\r\n name: string;\r\n image: string;\r\n companies: Company[];\r\n contentDuration: number;\r\n};\r\n\r\nexport type UserGeneralStatistics = {\r\n average: number;\r\n releasedCourses: number;\r\n coursesInProgress: number;\r\n coursesFinished: number;\r\n hoursWatched: number;\r\n quantityAccessed: number;\r\n};\r\n\r\nexport type UserAccess = {\r\n period: string;\r\n quantity: number;\r\n};\r\n\r\nexport class EnrolledTraining {\r\n public id: number;\r\n public name: string;\r\n public description: string;\r\n public duration: number;\r\n public rating: string;\r\n public haveCertification: boolean;\r\n public hasNewContent: boolean;\r\n public imageURL: string;\r\n public bannerURL: string;\r\n public imageExtension: string;\r\n public bannerExtension: string;\r\n public isActive: boolean;\r\n public activationDate: string;\r\n public inactivationDate: string;\r\n public lastChange: string;\r\n public certificatePath: string;\r\n public progress: number;\r\n public percentage: number;\r\n public statusCode: number;\r\n public type: EnrolledTrainingTypes;\r\n public menus: Menu[];\r\n\r\n constructor(\r\n id = 0,\r\n name = \"\",\r\n description = \"\",\r\n duration = 0,\r\n rating = \"\",\r\n haveCertification = false,\r\n hasNewContent = false,\r\n certificatePath = \"\",\r\n imageURL = \"\",\r\n imageExtension = \"\",\r\n bannerURL = \"\",\r\n bannerExtension = \"\",\r\n isActive = false,\r\n activationDate = \"\",\r\n inactivationDate = \"\",\r\n lastChange = \"\",\r\n progress = 0,\r\n percentage = 0,\r\n statusCode = 0,\r\n type = EnrolledTrainingTypes.ONLINE,\r\n menus = new Array()\r\n ) {\r\n this.id = id;\r\n this.name = name;\r\n this.description = description;\r\n this.duration = duration;\r\n this.rating = rating;\r\n this.haveCertification = haveCertification;\r\n this.hasNewContent = hasNewContent;\r\n this.certificatePath = certificatePath;\r\n this.imageURL = imageURL;\r\n this.imageExtension = imageExtension;\r\n this.bannerURL = bannerURL;\r\n this.bannerExtension = bannerExtension;\r\n this.isActive = isActive;\r\n this.activationDate = activationDate;\r\n this.inactivationDate = inactivationDate;\r\n this.lastChange = lastChange;\r\n this.progress = progress;\r\n this.percentage = percentage;\r\n this.statusCode = statusCode;\r\n this.type = type;\r\n this.menus = menus;\r\n }\r\n}\r\n\r\nexport class AttendanceAt {\r\n public attendanceAt: string;\r\n public trainingDate: string;\r\n public id: number;\r\n\r\n constructor(attendanceAt = \"\", trainingDate = \"\", id = 0) {\r\n this.attendanceAt = attendanceAt;\r\n this.trainingDate = trainingDate;\r\n this.id = id;\r\n }\r\n}\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Card.vue?vue&type=style&index=0&id=6d28febb&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ModalIntroductoryContent.vue?vue&type=style&index=0&id=041a1f95&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/statement.a67499d9.svg\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NewContentEventFlag.vue?vue&type=style&index=0&id=461b67d8&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Footer.vue?vue&type=style&index=0&id=4f48d8a6&scoped=true&lang=css\"","import { Instructor, User } from \"../entities\";\r\nimport { Content } from \"../../../infrastructure/presentation/views/content/helpers\";\r\nimport { Menu } from \"./training_course\";\r\n\r\nexport class EventRequest {\r\n event: EventCourse;\r\n contents: Content[];\r\n\r\n constructor(\r\n event: EventCourse = new EventCourse(),\r\n contents: Content[] = []\r\n ) {\r\n this.event = event;\r\n this.contents = contents;\r\n }\r\n}\r\n\r\n/** Face-to-face courses */\r\nexport class EventCourse {\r\n /** event's id. Used to identify each event individually. */\r\n id: number;\r\n classID: number;\r\n\r\n location: string;\r\n\r\n /** Event's state (it is active or inactive). */\r\n isActive: boolean;\r\n\r\n /** Event's name. */\r\n name: string;\r\n\r\n /** Event's description. Contains a resume of the event's contents. */\r\n description: string;\r\n\r\n /** Event's time duration in milliseconds. */\r\n duration: number;\r\n\r\n image: string;\r\n imageB64: string;\r\n imageExtension: string;\r\n bannerURL: string;\r\n bannerBase64: string;\r\n bannerExtension: string;\r\n\r\n /** Controls event have certification. */\r\n hasCertificate: boolean;\r\n\r\n /** Event contents' rating average. */\r\n rating: number;\r\n\r\n /** When the event will be active and visible to the user. */\r\n activationDate: string;\r\n\r\n /** When the event will be inactive and visible to the user. */\r\n inactivationDate: string;\r\n\r\n hasNewContent: boolean;\r\n classes: EventClass[];\r\n\r\n menus: Menu[];\r\n menu: string;\r\n menuMarkdown: string;\r\n scheduleStartDateTime: string;\r\n releaseStartDate: string;\r\n releaseEndDate: string;\r\n type: number;\r\n introductoryContent: Content | null;\r\n\r\n constructor(\r\n id: number = 0,\r\n classID: number = 0,\r\n location = \"\",\r\n isActive: boolean = false,\r\n name: string = \"\",\r\n description: string = \"\",\r\n duration: number = 0,\r\n image = \"\",\r\n imageB64: string = \"\",\r\n imageExtension: string = \"\",\r\n bannerURL: string = \"\",\r\n bannerBase64: string = \"\",\r\n bannerExtension: string = \"\",\r\n hasCertificate: boolean = false,\r\n rating: number = 0,\r\n activationDate: string = \"\",\r\n inactivationDate: string = \"\",\r\n classes = new Array(),\r\n hasNewContent = false,\r\n menu = \"\",\r\n menuMarkdown = \"\",\r\n scheduleStartDateTime = \"\",\r\n releaseStartDate = \"\",\r\n releaseEndDate = \"\",\r\n type = NaN,\r\n menus = new Array(),\r\n introductoryContent = null\r\n ) {\r\n this.id = id;\r\n this.classID = classID;\r\n this.location = location;\r\n this.isActive = isActive;\r\n this.name = name;\r\n this.description = description;\r\n this.duration = duration;\r\n this.image = image;\r\n this.imageB64 = imageB64;\r\n this.imageExtension = imageExtension;\r\n this.bannerURL = bannerURL;\r\n this.bannerBase64 = bannerBase64;\r\n this.bannerExtension = bannerExtension;\r\n this.hasCertificate = hasCertificate;\r\n this.rating = rating;\r\n this.activationDate = activationDate;\r\n this.inactivationDate = inactivationDate;\r\n this.classes = classes;\r\n this.hasNewContent = hasNewContent;\r\n this.menu = menu;\r\n this.menuMarkdown = menuMarkdown;\r\n this.scheduleStartDateTime = scheduleStartDateTime;\r\n this.releaseStartDate = releaseStartDate;\r\n this.releaseEndDate = releaseEndDate;\r\n this.type = type;\r\n this.menus = menus;\r\n this.introductoryContent = introductoryContent;\r\n }\r\n}\r\n\r\n/** Contains all the information about class. Used to users enroll in. */\r\nexport class EventClass {\r\n /** Class identification. */\r\n id: number;\r\n /** EventClass identification. */\r\n eventID: number;\r\n\r\n /** Class name. */\r\n name: string;\r\n\r\n /** Defines if the EventClass should be visible to the allowed users. */\r\n isActive: boolean;\r\n\r\n /** Defines the place where the event will occur. */\r\n location: string;\r\n\r\n /** Defines this class is open to all users. */\r\n isPublic: boolean;\r\n\r\n /** Defines how much people are able to enroll in this class. */\r\n maxCapacity: number;\r\n\r\n /** Defines the scheduled date and time to start the event to this class. */\r\n scheduleStart: string;\r\n\r\n /** Defines the scheduled date and time to finish the event to this class. */\r\n scheduleEnd: string;\r\n\r\n /** Scheduled start time for the class. */\r\n scheduleStartDateTime: string;\r\n\r\n /** Scheduled end time for the class. */\r\n scheduleEndDateTime: string;\r\n\r\n /** Defines the scheduled date and time to allow the allowed users to enroll this class. */\r\n enrollmentStart: string;\r\n\r\n /** Defines the scheduled date and time to not allow the allowed users to enroll this class. */\r\n enrollmentEnd: string;\r\n\r\n /** Defines the definitive date and time that the event start to this class. */\r\n startedAt: string;\r\n\r\n /** Defines the definitive date and time that the event finish to this class. */\r\n finishedAt: string;\r\n\r\n /** Defines the definitive time that the event will take. */\r\n duration: number;\r\n\r\n /** Defines the schedule date to allow the allowed users see this class. */\r\n activationDate: string;\r\n\r\n /** Defines the schedule date to not allow the allowed users see this class. */\r\n inactivationDate: string;\r\n\r\n /** The list of the enrolled users\r\n * @see User. */\r\n enrollUsers: User[];\r\n\r\n /** The list of the event's instructors.\r\n * @see Instructor*/\r\n instructors: Instructor[];\r\n\r\n userCertificateUrl: string;\r\n\r\n hasNewContent: boolean;\r\n\r\n hasCertificate: boolean;\r\n\r\n constructor(\r\n id: number = 0,\r\n eventID: number = 0,\r\n name: string = \"\",\r\n isActive: boolean = false,\r\n location: string = \"\",\r\n isPublic: boolean = false,\r\n hasCertificate: boolean = false,\r\n maxCapacity: number = 0,\r\n scheduleStart: string = \"\",\r\n scheduleEnd: string = \"\",\r\n scheduleStartDateTime: string = \"\",\r\n scheduleEndDateTime: string = \"\",\r\n enrollmentStart: string = \"\",\r\n enrollmentEnd: string = \"\",\r\n startedAt: string = \"\",\r\n finishedAt: string = \"\",\r\n activationDate: string = \"\",\r\n inactivationDate: string = \"\",\r\n duration = 0,\r\n enrollUsers: User[] = [],\r\n instructors: Instructor[] = [],\r\n userCertificateUrl: string = \"\",\r\n hasNewContent = false\r\n ) {\r\n this.id = id;\r\n this.eventID = eventID;\r\n this.name = name;\r\n this.isActive = isActive;\r\n this.location = location;\r\n this.hasCertificate = hasCertificate;\r\n this.isPublic = isPublic;\r\n this.maxCapacity = maxCapacity;\r\n this.scheduleStart = scheduleStart;\r\n this.scheduleEnd = scheduleEnd;\r\n this.scheduleStartDateTime = scheduleStartDateTime;\r\n this.scheduleEndDateTime = scheduleEndDateTime;\r\n this.enrollmentStart = enrollmentStart;\r\n this.enrollmentEnd = enrollmentEnd;\r\n this.startedAt = startedAt;\r\n this.finishedAt = finishedAt;\r\n this.activationDate = activationDate;\r\n this.inactivationDate = inactivationDate;\r\n this.duration = duration;\r\n this.enrollUsers = enrollUsers;\r\n this.instructors = instructors;\r\n this.userCertificateUrl = userCertificateUrl;\r\n this.hasNewContent = hasNewContent;\r\n }\r\n}\r\n\r\nexport class EventBasedOnClass {\r\n eventId: number;\r\n eventName: string;\r\n eventImage: string;\r\n eventImageB64: string;\r\n eventImageExtension: string;\r\n eventBannerURL: string;\r\n eventBannerBase64: string;\r\n eventBannerExtension: string;\r\n eventHasCertification: boolean;\r\n eventClass: EventClass;\r\n hasNewContent: boolean;\r\n user?: User;\r\n\r\n constructor(\r\n eventId: number,\r\n eventName: string = \"\",\r\n eventImage: string = \"\",\r\n eventImageB64: string = \"\",\r\n eventImageExtension: string = \"\",\r\n eventBannerURL: string = \"\",\r\n eventBannerBase64: string = \"\",\r\n eventBannerExtension: string = \"\",\r\n eventHasCertification: boolean = false,\r\n eventClass: EventClass = new EventClass(),\r\n user: User = new User(),\r\n hasNewContent = false\r\n ) {\r\n this.eventId = eventId;\r\n this.eventName = eventName;\r\n this.eventImage = eventImage;\r\n this.eventImageB64 = eventImageB64;\r\n this.eventImageExtension = eventImageExtension;\r\n this.eventBannerURL = eventBannerURL;\r\n this.eventBannerBase64 = eventBannerBase64;\r\n this.eventBannerExtension = eventBannerExtension;\r\n this.eventHasCertification = eventHasCertification;\r\n this.eventClass = eventClass;\r\n this.user = user;\r\n this.hasNewContent = hasNewContent;\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/instagram.f32ba517.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LoginFormCirculo.vue?vue&type=style&index=0&id=16a23494&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/astronaut.84c32ff9.png\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LandingPage.vue?vue&type=style&index=0&id=92a0a434&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ModalTerm.vue?vue&type=style&index=0&id=45f36432&scoped=true&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Menu.vue?vue&type=style&index=0&id=657c67ef&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/bannerDesktop.f3fca1dc.jpg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAANElEQVRIiWNgGAXDHjDCGMuWLftPTYOjoqIYGRgYGJioaegoGJxgNBWNAsrBaCoaBUMAAADWbgwKALNrPwAAAABJRU5ErkJggg==\"","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-041a1f95\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"introductory-videos__background\" }, null, -1))\nconst _hoisted_2 = { class: \"introductory-videos__content\" }\nconst _hoisted_3 = { class: \"introductory-videos__header\" }\nconst _hoisted_4 = { class: \"introductory-videos__modal\" }\nconst _hoisted_5 = [\"id\", \"src\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"introductory-videos\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('close')))\n }, [\n _hoisted_1,\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"button\", {\n class: \"introductory-videos__button-close\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('close')))\n })\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"iframe\", {\n class: \"introductory-videos__iframe\",\n id: _ctx.introductoryContent?.id,\n src: \r\n `https://www.youtube.com/embed/${_ctx.introductoryContent?.youtube?.code}?autoplay=1&rel=0&modestbranding=1`\r\n ,\n title: \"YouTube video player\",\n allow: \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\",\n allowfullscreen: \"\"\n }, null, 8, _hoisted_5)\n ])\n ])\n ]))\n}","\r\nimport {defineComponent, PropType} from \"vue\";\r\nimport \"vue3-carousel/dist/carousel.css\";\r\nimport {Content} from \"../../views/content/helpers\";\r\n\r\nexport default defineComponent({\r\n name: \"ModalIntroductoryContent\",\r\n props: {\r\n introductoryContent: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n },\r\n setup(props, { emit }) {\r\n document.addEventListener(\"keydown\", function(e) {\r\n if (e.key === \"Escape\") {\r\n emit(\"close\");\r\n }\r\n });\r\n }\r\n});\r\n","import { render } from \"./ModalIntroductoryContent.vue?vue&type=template&id=041a1f95&scoped=true&ts=true\"\nimport script from \"./ModalIntroductoryContent.vue?vue&type=script&lang=ts\"\nexport * from \"./ModalIntroductoryContent.vue?vue&type=script&lang=ts\"\n\nimport \"./ModalIntroductoryContent.vue?vue&type=style&index=0&id=041a1f95&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-041a1f95\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ErrorBox.vue?vue&type=style&index=0&id=4162e74c&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./VideoPlay.vue?vue&type=style&index=0&id=1f49dca1&scoped=true&lang=css\"","import { Company, Instructor, Interest, User, UserTeam } from \"../entities\";\r\nimport { Content } from \"../../../infrastructure/presentation/views/content/helpers\";\r\n\r\n/** Contains all the information about class. Used to users enroll in. */\r\n//Graduation === TrainingCourse\r\nexport class TrainingCourse {\r\n id: number;\r\n\r\n title: string;\r\n\r\n description: string;\r\n\r\n imageURL: string;\r\n\r\n isActive: boolean;\r\n\r\n haveCertification: boolean;\r\n\r\n certificatePath: string;\r\n\r\n location: string;\r\n\r\n isPublic: boolean;\r\n\r\n maxCapacity: number;\r\n\r\n scheduleStart: string;\r\n\r\n scheduleEnd: string;\r\n\r\n scheduleStartDateTime: string;\r\n\r\n scheduleEndDateTime: string;\r\n\r\n enrollmentStart: string;\r\n\r\n enrollmentEnd: string;\r\n\r\n startedAt: string;\r\n\r\n finishedAt: string;\r\n\r\n duration: number;\r\n\r\n activationDate: string;\r\n\r\n inactivationDate: string;\r\n\r\n users: User[];\r\n\r\n instructors: Instructor[];\r\n\r\n userCertificateUrl: string;\r\n\r\n hasNewContent: boolean;\r\n\r\n image: string;\r\n\r\n imageB64: string;\r\n\r\n imageExtension: string;\r\n\r\n bannerURL: string;\r\n\r\n bannerBase64: string;\r\n\r\n bannerExtension: string;\r\n\r\n menuMarkdown: string;\r\n\r\n menus: Menu[];\r\n\r\n constructor(\r\n id: number = 0,\r\n title: string = \"\",\r\n description: string = \"\",\r\n imageURL: string = \"\",\r\n isActive: boolean = false,\r\n location: string = \"\",\r\n isPublic: boolean = false,\r\n maxCapacity: number = 0,\r\n scheduleStart: string = \"\",\r\n scheduleEnd: string = \"\",\r\n scheduleStartDateTime: string = \"\",\r\n scheduleEndDateTime: string = \"\",\r\n enrollmentStart: string = \"\",\r\n enrollmentEnd: string = \"\",\r\n startedAt: string = \"\",\r\n finishedAt: string = \"\",\r\n activationDate: string = \"\",\r\n inactivationDate: string = \"\",\r\n duration = 0,\r\n users: User[] = [],\r\n instructors: Instructor[] = [],\r\n userCertificateUrl: string = \"\",\r\n hasNewContent = false,\r\n haveCertification = false,\r\n certificatePath: string = \"\",\r\n image = \"\",\r\n imageB64: string = \"\",\r\n imageExtension: string = \"\",\r\n bannerURL: string = \"\",\r\n bannerBase64: string = \"\",\r\n bannerExtension: string = \"\",\r\n menuMarkdown: string = \"\",\r\n menus: Menu[] = []\r\n ) {\r\n this.id = id;\r\n this.title = title;\r\n this.description = description;\r\n this.imageURL = imageURL;\r\n this.isActive = isActive;\r\n this.haveCertification = haveCertification;\r\n this.certificatePath = certificatePath;\r\n this.location = location;\r\n this.isPublic = isPublic;\r\n this.maxCapacity = maxCapacity;\r\n this.scheduleStart = scheduleStart;\r\n this.scheduleEnd = scheduleEnd;\r\n this.scheduleStartDateTime = scheduleStartDateTime;\r\n this.scheduleEndDateTime = scheduleEndDateTime;\r\n this.enrollmentStart = enrollmentStart;\r\n this.enrollmentEnd = enrollmentEnd;\r\n this.startedAt = startedAt;\r\n this.finishedAt = finishedAt;\r\n this.activationDate = activationDate;\r\n this.inactivationDate = inactivationDate;\r\n this.duration = duration;\r\n this.users = users;\r\n this.instructors = instructors;\r\n this.userCertificateUrl = userCertificateUrl;\r\n this.hasNewContent = hasNewContent;\r\n this.image = image;\r\n this.imageB64 = imageB64;\r\n this.imageExtension = imageExtension;\r\n this.bannerURL = bannerURL;\r\n this.bannerBase64 = bannerBase64;\r\n this.bannerExtension = bannerExtension;\r\n this.menuMarkdown = menuMarkdown;\r\n this.menus = menus;\r\n }\r\n}\r\n\r\nexport class TrainingCourseRequest {\r\n companies: Company[];\r\n\r\n contents: Content[];\r\n\r\n graduation: TrainingCourse;\r\n\r\n instructors: Instructor[];\r\n\r\n interests: Interest[];\r\n\r\n teams: UserTeam[];\r\n\r\n users: User[];\r\n\r\n constructor(\r\n companies: Company[] = [],\r\n contents: Content[] = [],\r\n graduation: TrainingCourse = new TrainingCourse(),\r\n instructors: Instructor[] = [],\r\n interests: Interest[] = [],\r\n teams: UserTeam[] = [],\r\n users: User[] = []\r\n ) {\r\n this.companies = companies;\r\n this.contents = contents;\r\n this.graduation = graduation;\r\n this.instructors = instructors;\r\n this.interests = interests;\r\n this.teams = teams;\r\n this.users = users;\r\n }\r\n}\r\n\r\nexport class Menu {\r\n public id: number;\r\n public description: string;\r\n public descriptionMarkdown: string;\r\n public startDate: string;\r\n public startHour: string;\r\n public endHour: string;\r\n public duration: number | null;\r\n public title: string;\r\n public location: string;\r\n\r\n constructor(\r\n id = NaN,\r\n description = \"\",\r\n descriptionMarkdown = \"\",\r\n startDate = \"\",\r\n startHour = \"\",\r\n endHour = \"\",\r\n duration = null,\r\n title = \"\",\r\n location = \"\"\r\n ) {\r\n this.id = id;\r\n this.description = description;\r\n this.descriptionMarkdown = descriptionMarkdown;\r\n this.startDate = startDate;\r\n this.startHour = startHour;\r\n this.endHour = endHour;\r\n this.duration = duration;\r\n this.title = title;\r\n this.location = location;\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/user.f4d3625e.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./RegisterModal.vue?vue&type=style&index=0&id=a58959c6&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/iconDecolaSmall.d642f8c4.svg\";","module.exports = __webpack_public_path__ + \"img/redetop.0b84df32.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ResetPassword.vue?vue&type=style&index=0&id=446487a4&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Call.vue?vue&type=style&index=0&id=1fa01f5e&scoped=true&lang=css\"","import { normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-feead474\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"progress-bar__visual\",\n \"data-bar\": \"\"\n}\nconst _hoisted_2 = { class: \"progress-bar__percentage\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass(['progress-bar', _ctx.theme]),\n ref: \"progressBar\"\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"span\", {\n class: \"progress-bar__after\",\n style: _normalizeStyle({ width: _ctx.filledPercentage + '%' }),\n \"data-progress\": \"\"\n }, null, 4)\n ]),\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(_ctx.filledPercentage) + \"%\", 1)\n ], 2))\n}","\r\nimport {defineComponent, PropType} from \"vue\";\r\n\r\nconst __default__ = defineComponent({\r\n name: \"ProgressBar\",\r\n props: {\r\n filledPercentage: {\r\n type: Number\r\n },\r\n theme: {\r\n type: String as PropType<\"light\" | \"dark\">,\r\n default: \"light\"\r\n },\r\n width: {\r\n type: String,\r\n default: \"100%\"\r\n }\r\n }\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"7a75af48\": (_ctx.width)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./ProgressBar.vue?vue&type=template&id=feead474&scoped=true&ts=true&xmlns=http%3A%2F%2Fwww.w3.org%2F1999%2Fhtml\"\nimport script from \"./ProgressBar.vue?vue&type=script&lang=ts\"\nexport * from \"./ProgressBar.vue?vue&type=script&lang=ts\"\n\nimport \"./ProgressBar.vue?vue&type=style&index=0&id=feead474&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-feead474\"]])\n\nexport default __exports__","import {EventContentRepository} from \"./content_interface\";\r\nimport {\r\n Content,\r\n ContentAnnotation,\r\n ContentComplement,\r\n Question,\r\n QuestionStatus, ScormCheckpoint\r\n} from \"../../../presentation/views/content/helpers\";\r\nimport {wrapErrorHandler} from \"../../utils/wrap_error_handler\";\r\nimport http from \"../../http\";\r\nimport {Instructor} from \"../../../../domain/entities/entities\";\r\n\r\n\r\n/** return the path to access the contents resources. */\r\nconst contentsPath = (eventID: number, classID: number, contentID?: number): string => {\r\n const rootPath = `/api/decola/events/${eventID}/class/${classID}/contents`\r\n if (contentID) {\r\n return `${rootPath}/${contentID}`;\r\n }\r\n return rootPath;\r\n}\r\n\r\nclass EventContentRepositoryImpl implements EventContentRepository {\r\n async getAllContents(eventID: number, classID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.get(contentsPath(eventID, classID));\r\n return data;\r\n });\r\n }\r\n\r\n async getContentByID(eventID: number, classID: number, contentID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.get(contentsPath(eventID, classID, contentID));\r\n return data;\r\n });\r\n }\r\n\r\n async initializeContent(eventID: number, classID: number, contentID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.post(`${contentsPath(eventID, classID, contentID)}/initialize`);\r\n return data;\r\n });\r\n }\r\n\r\n async getAllComplements(eventID: number, classID: number, contentID: any): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.get(`${contentsPath(eventID, classID, contentID)}/complements`);\r\n return data;\r\n });\r\n }\r\n\r\n async getContentInstructors(eventID: number, classID: number, contentID: any): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.get(`${contentsPath(eventID, classID, contentID)}/instructors`);\r\n return data;\r\n });\r\n }\r\n\r\n async createContentAnnotation(eventID: number, classID: number, contentID: any, annotation): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.post(`${contentsPath(eventID, classID, contentID)}/notes`, annotation);\r\n return data;\r\n });\r\n }\r\n\r\n async getAllContentAnnotations(eventID: number, classID: number, contentID: any): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.get(`${contentsPath(eventID, classID, contentID)}/notes`);\r\n return data;\r\n });\r\n }\r\n\r\n async updateContentAnnotation(eventID: number, classID: number, contentID: number, annotation: ContentAnnotation): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.post(`${contentsPath(eventID, classID, contentID)}/notes/${annotation.id}`, annotation);\r\n return data;\r\n });\r\n }\r\n\r\n async deleteContentAnnotation(eventID: number, classID: number, contentID: number, annotationID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.delete(`${contentsPath(eventID, classID, contentID)}/notes/${annotationID}`);\r\n return data;\r\n });\r\n };\r\n\r\n async saveCheckpointSeconds(eventID: number, classID: number, contentID: number, timestamp: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.post(`${contentsPath(eventID, classID, contentID)}/checkpoints`, timestamp);\r\n return data;\r\n });\r\n }\r\n\r\n async saveCheckpointSCORM(eventID: number, classID: number, contentID: number, scormCheckpoint: ScormCheckpoint): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.post(`${contentsPath(eventID, classID, contentID)}/scorm/checkpoints`, scormCheckpoint);\r\n return data;\r\n });\r\n }\r\n\r\n async saveProgress(eventID: number, classID: number, contentID: number, speedRate: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.post(`${contentsPath(eventID, classID, contentID)}/progress`, speedRate);\r\n return data;\r\n });\r\n }\r\n\r\n async generateQuestionnaire(eventID: number, classID: number, contentID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.post(`${contentsPath(eventID, classID, contentID)}/questionnaires`);\r\n return data;\r\n });\r\n }\r\n\r\n async getQuestionByPage(eventID: number, classID: number, contentID: number, questionnaireID: number, page: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.get(`${contentsPath(eventID, classID, contentID)}/questionnaires/${questionnaireID}/pages/${page}`);\r\n return data;\r\n });\r\n }\r\n\r\n async replyQuestionByPage(eventID: number, classID: number, contentID: number, questionnaireID: number, page: number, alternativeID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.post(`${contentsPath(eventID, classID, contentID)}/questionnaires/${questionnaireID}/pages/${page}/alternatives/${alternativeID}`);\r\n return data;\r\n });\r\n }\r\n\r\n async replyDescriptiveQuestionByPage(eventID: number, classID: number, contentID: number, questionnaireID: number, page: number, answer: string): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.post(`${contentsPath(eventID, classID, contentID)}/questionnaires/${questionnaireID}/pages/${page}/descriptive`, {answer: answer});\r\n return data;\r\n });\r\n }\r\n\r\n async finishContent(eventID: number, classID: number, contentID: number): Promise {\r\n return await wrapErrorHandler>(async () => {\r\n const {data} = await http.post(`${contentsPath(eventID, classID, contentID)}/finish`);\r\n return data;\r\n });\r\n }\r\n}\r\n\r\nexport default new EventContentRepositoryImpl() as EventContentRepository;\r\n","import {EventContentUseCase} from \"./content_interface\";\r\nimport {\r\n Content,\r\n ContentAnnotation,\r\n ContentComplement, Question, QuestionStatus, ScormCheckpoint\r\n} from \"../../../../infrastructure/presentation/views/content/helpers\";\r\nimport eventContentRepository from \"../../../../infrastructure/repository/content_provider/event/content_repository\";\r\nimport {Instructor} from \"../../../entities/entities\";\r\n\r\n\r\nclass EventContentUseCaseImpl implements EventContentUseCase {\r\n async getAllContents(eventID: number, classID: number): Promise {\r\n return await eventContentRepository.getAllContents(eventID, classID);\r\n }\r\n\r\n async getContentByID(eventID: number, classID: number, contentID: number): Promise {\r\n return await eventContentRepository.getContentByID(eventID, classID, contentID);\r\n }\r\n\r\n async initializeContent(eventID: number, classID: number, contentID: number): Promise {\r\n return await eventContentRepository.initializeContent(eventID, classID, contentID);\r\n }\r\n\r\n async getAllComplements(eventID: number, classID: number, contentID: any): Promise {\r\n return await eventContentRepository.getAllComplements(eventID, classID, contentID);\r\n }\r\n\r\n async getContentInstructors(eventID: number, classID: number, contentID: any): Promise {\r\n return await eventContentRepository.getContentInstructors(eventID, classID, contentID);\r\n }\r\n\r\n async createContentAnnotation(eventID: number, classID: number, contentID: number, annotation: ContentAnnotation): Promise {\r\n return await eventContentRepository.createContentAnnotation(eventID, classID, contentID, annotation);\r\n }\r\n\r\n async getAllContentAnnotations(eventID: number, classID: number, contentID: number): Promise {\r\n return await eventContentRepository.getAllContentAnnotations(eventID, classID, contentID);\r\n }\r\n\r\n async updateContentAnnotation(eventID: number, classID: number, contentID: number, annotation: ContentAnnotation): Promise {\r\n return await eventContentRepository.updateContentAnnotation(eventID, classID, contentID, annotation);\r\n }\r\n\r\n async deleteContentAnnotation(eventID: number, classID: number, contentID: number, annotationID: number): Promise {\r\n return await eventContentRepository.deleteContentAnnotation(eventID, classID, contentID, annotationID);\r\n };\r\n\r\n async saveCheckpointSeconds(eventID: number, classID: number, contentID: number, timestamp: number): Promise {\r\n return await eventContentRepository.saveCheckpointSeconds(eventID, classID, contentID, timestamp);\r\n }\r\n\r\n async saveCheckpointSCORM(eventID: number, classID: number, contentID: number, scormCheckpoint: ScormCheckpoint): Promise {\r\n return await eventContentRepository.saveCheckpointSCORM(eventID, classID, contentID, scormCheckpoint);\r\n }\r\n\r\n async saveProgress(eventID: number, classID: number, contentID: number, speedRate: number): Promise {\r\n return await eventContentRepository.saveProgress(eventID, classID, contentID, speedRate);\r\n }\r\n\r\n async generateQuestionnaire(eventID: number, classID: number, contentID: number): Promise {\r\n return await eventContentRepository.generateQuestionnaire(eventID, classID, contentID);\r\n }\r\n\r\n async getQuestionByPage(eventID: number, classID: number, contentID: number, questionnaireID: number, page: number): Promise {\r\n return await eventContentRepository.getQuestionByPage(eventID, classID, contentID, questionnaireID, page);\r\n }\r\n\r\n async replyQuestionByPage(eventID: number, classID: number, contentID: number, questionnaireID: number, page: number, alternativeID: number): Promise {\r\n return await eventContentRepository.replyQuestionByPage(eventID, classID, contentID, questionnaireID, page, alternativeID);\r\n }\r\n\r\n async replyDescriptiveQuestionByPage(eventID: number, classID: number, contentID: number, questionnaireID: number, page: number, answer: string): Promise {\r\n return await eventContentRepository.replyDescriptiveQuestionByPage(eventID, classID, contentID, questionnaireID, page, answer);\r\n }\r\n\r\n async finishContent(eventID: number, classID: number, contentID: number): Promise {\r\n return await eventContentRepository.finishContent(eventID, classID, contentID);\r\n }\r\n}\r\n\r\nexport default new EventContentUseCaseImpl() as EventContentUseCase;\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Introduction.vue?vue&type=style&index=0&id=6f1ba49a&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ModalTerm.vue?vue&type=style&index=0&id=17aa2926&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LandingPageCirculoSection.vue?vue&type=style&index=0&id=e6c7abfc&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Event.vue?vue&type=style&index=0&id=60ac5705&scoped=true&lang=css\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQaSURBVHgB7d2LcRoxEAbgJZMC4g7oIEkFsTtwCaSC4ApsV2BcAbgCOxXcpQLjCu46sDtQdufEmDj3kIQeIP3fjIYELuFg0er0QBABAAAAAIBSas7ljkvFZcnlG0EaOhiN+p/ct+ZyThCPrhFTXnVwLrl8IQjHMCAfVVwWUrsI/JJPvK4Brq4J/FJdO1Ipd+cE/unaIqloY1lrVgThySdfB6eZCMgrQVz8pn9T3QVAg7R1mBl5xG/8Jd889jy04fKHytbOZrN66iDfAZF+SMMF/ZF+Kw7K1dgBn8gjfrI3vtkSDJG0vhg7wGtAtAeCMT/GHgwRkCeCMS9jD3oPiE5bNcGQ0ZQeooaI3wR93qautEIFZEPQZ/KCJ0hAkLYGTWaOUDVElN4R7DNZQ7x2DPepbj6kIdiR9uNs6qBgNYSfvOWblmDHqMMcMmUJdBLfGaXw0AGpCXZqk4OCtSE7ej6k+MFGTuFG73XoGiKQtiwyRYyAYGzLogsQPCB6qOCNylabHhijhoiix7ZMZgp3YgVkQ+WqbQ6OFRDpFJWatl5sDo4SkMKndq0uamLVEFHq5a/VBzFmQEq8/K11djAWLSCFzpFYtR8iZg0RpV3+WmeF4GNZ+/RCupLW+p4dbcoShaWtrW0wROyUJUqZ2nV6nSkCsqEy1OQgahuyw23JM9/k/vXqs1NJWSL3qy2n9kOkCkhNeXNuJ5MEpIA5kpocpaohIuexrZocpQxIrmNbzu2HSBaQjNPWQdMMKWuIyDFtHXQFmTogOaatk64huU3tbvWaZmepA/KL8lrVePA0daqhEwnCHZcF5aPlcnFoDYkeEP29EdntYWwsq6bTavCNdmk4OnpPlAa7Bx0BNbx/474lQRyq25dxcAsn7BgUka4dQxqF/RnjUt1OdH0qhZ1M/xGrHzIfuP/qkIG4HKXuGKJ2fPCZ4mgH7l9zyrqn0x4+8doHidIxVPnvNDe5U5ypmF9HuKd8LX1dtsdsQ6QH3lK+zsmD2KvfLyjfL+7U5EHstb3SAH7nP/6kvAJz66thTzL8vqMb+1NfwbhFXwqgOKrb3L9S77+88Kr/vqAE9Pk8Hsv5RKO6n8Go1Lgq1oiwPp/1xPk0KtcRan5hz8qMHBe8p69rhYlG5TZSzS/oWtm5oYDU8DTBkDXlQrn9vpUcH+xTqaanmPt4PZ+Uw+/S/7B9McH6Lar7wcw52VuQR6kDEvPfTZmTm2xqCHq3PVIGpCU3ocbAXP/flnLg2KgH3SlbmV+C75uTRym/sCMp65bshF5eajuJdn/oWt6jo8x/RfSRIuDnWRmeT6NyXcJk8CasYr54fq6bifOpQp1P0vmQfarLxTdcvlJ3KSkpTb7v/ZRiZbk+n6U+n7m+u+bycJIr3QEAAAAAAAAATt9f6uzVzmt5Hh4AAAAASUVORK5CYII=\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ResetPasswordComponent.vue?vue&type=style&index=0&id=54049c26&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LandingPageGTop.vue?vue&type=style&index=0&id=f003cb90&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ResetPassword.vue?vue&type=style&index=0&id=3480a932&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Divisor.vue?vue&type=style&index=0&id=0894d498&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/lideranca-icon.0ae41407.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ResetOptions.vue?vue&type=style&index=0&id=ad9cfb56&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/bannerMobile.581ecdb8.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ResetPassword.vue?vue&type=style&index=1&id=446487a4&lang=css\"","module.exports = __webpack_public_path__ + \"img/ganhemais-white.e2b7dbb6.svg\";","import store from \"../../repository/store/store\";\r\n\r\n/** Displays a loading screen while the callback is running.\r\n * @param callback function that will be running while the loading screen is visible.\r\n * @param message message that will display on the loading box. It is optional and defaults to \"Carregando...\" */\r\nexport async function wrapLoading(\r\n callback: () => Promise,\r\n message?: string\r\n): Promise {\r\n await store.dispatch(\"utils_module/setMessage\", message);\r\n await store.dispatch(\"utils_module/setLoadingVisibility\", true);\r\n try {\r\n await callback();\r\n } finally {\r\n await store.dispatch(\"utils_module/setLoadingVisibility\", false);\r\n }\r\n}\r\n\r\n/** Displays a loading screen while the callback is running.\r\n * @param callback function that will be running while the loading screen is visible.\r\n * @param message message that will display on the loading box. It is optional and defaults to \"Carregando...\" */\r\nexport async function wrapContentLoading(\r\n callback: () => Promise,\r\n message?: string\r\n): Promise {\r\n await store.dispatch(\"utils_module/setContentLoadingMessage\", message);\r\n await store.dispatch(\"utils_module/setContentLoadingVisibility\", true);\r\n try {\r\n await callback();\r\n } finally {\r\n await store.dispatch(\"utils_module/setContentLoadingVisibility\", false);\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/logo04_sem_slogan.1742579a.svg\";","import store from \"../../repository/store/store\";\r\nimport { Menu } from \"../../../domain/entities/courseEvent/training_course\";\r\nimport { useStore } from \"vuex\";\r\nimport { wrapLoading } from \"../utils/wrap_loading\";\r\nimport { dispatchError } from \"../utils/error_handling\";\r\n\r\nexport const shuffle = (array: T[]): T[] => {\r\n let currentIndex = array.length,\r\n randomIndex: number;\r\n\r\n // While there remain elements to shuffle.\r\n while (currentIndex != 0) {\r\n // Pick a remaining element.\r\n randomIndex = Math.floor(Math.random() * currentIndex);\r\n currentIndex--;\r\n\r\n // And swap it with the current element.\r\n [array[currentIndex], array[randomIndex]] = [\r\n array[randomIndex],\r\n array[currentIndex]\r\n ];\r\n }\r\n\r\n return array;\r\n};\r\n\r\nexport const dispatchErrorBox = async (e: string) => {\r\n try {\r\n await store.dispatch(\"miscellany_module/setError\", {\r\n message: e,\r\n changed: true\r\n });\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n};\r\n\r\nexport const dispatchSuccessBox = async (e: string) => {\r\n try {\r\n await store.dispatch(\"miscellany_module/setSuccess\", {\r\n message: e,\r\n changed: true\r\n });\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n};\r\n\r\n/** Check if you have reached the daily decoin limit. */\r\nexport async function checkDailyDecoinLimit(): Promise {\r\n try {\r\n await wrapLoading(async () => {\r\n await store.dispatch(\"decoins_module/dailyDecoinLimit\");\r\n const dailyDecoinLimitExceed =\r\n store.getters[\"decoins_module/dailyDecoinLimit\"];\r\n if (dailyDecoinLimitExceed) {\r\n await store.dispatch(\"decoins_module/setDecoinsLimitModal\", true);\r\n }\r\n });\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n}\r\n\r\nlet previousGenerated = \"\";\r\n\r\nexport function mask(value, mask) {\r\n /* Will receive the input + mask */\r\n let generated = \"\";\r\n\r\n /* used to calibrate the counting across the mask */\r\n let offset = 0;\r\n /* if the input is not a number, cancel */\r\n if (!value.match(\"[0-9]\")) {\r\n return;\r\n }\r\n\r\n /* iterates across each currentChar's position and mask */\r\n for (let i = 0; i < mask.length && i < value.length; i++) {\r\n /* defines variables to be compared */\r\n const expectedChar = mask[offset + i];\r\n const currentChar = value[i];\r\n\r\n if (!expectedChar) {\r\n return previousGenerated;\r\n }\r\n\r\n /* verifies if the currentChar match with the expected char and apply the logist */\r\n if (expectedChar == \"#\") {\r\n if (currentChar.match(\"[0-9]\")) {\r\n generated += currentChar;\r\n }\r\n } else if (currentChar == expectedChar) {\r\n generated += currentChar;\r\n } else {\r\n offset++;\r\n generated += expectedChar;\r\n generated += currentChar;\r\n }\r\n }\r\n\r\n /* users will see the input with the mask */\r\n value = generated;\r\n previousGenerated = generated;\r\n return value;\r\n}\r\n\r\n/** Return a copy of the giving object by value. */\r\nexport const getObjectByValue = (object: any) =>\r\n JSON.parse(JSON.stringify(object));\r\n\r\n/**\r\n * Returns a date formatted as DD/MM/YY\r\n * @param date todo: explain this\r\n */\r\nexport function formattedDate(date: string) {\r\n const divisor = date.indexOf(\" \");\r\n let formattedDate = date.substring(0, divisor).replaceAll(\"-\", \" / \");\r\n const firstPoint = formattedDate.indexOf(\"/\", 1);\r\n const lastPoint = firstPoint + 3;\r\n const year = formattedDate.substr(0, firstPoint).trim();\r\n const mouth = formattedDate.substr(firstPoint + 1, 3).trim();\r\n const day = formattedDate.substr(lastPoint + 3, 3).trim();\r\n formattedDate = `${day}/${mouth}/${year}`;\r\n\r\n return formattedDate;\r\n}\r\n\r\nexport const formatDateOnly = (date: string): string => {\r\n const dates = date.split(\"-\");\r\n return `${dates[2]}/${dates[1]}/${dates[0]}`;\r\n};\r\n\r\n/** scroll to the top of view. */\r\nexport const scrollTo = (x: number, y: number) => {\r\n const element = document.querySelector(\"[data-view]\");\r\n\r\n if (element) {\r\n element.scrollTo(x, y);\r\n }\r\n};\r\n\r\n/** return a cloned object but not by referent. */\r\nexport const cloneObject = (object: unknown): unknown => {\r\n return JSON.parse(JSON.stringify(object));\r\n};\r\n\r\n/** Returns a string format from any value. */\r\nexport const stringify = (value: any): string => {\r\n return typeof value !== \"string\" ? JSON.stringify(value) : value;\r\n};\r\n\r\n/** Scrolls smooth to the top of the view */\r\nexport const scrollToTop = (): void => {\r\n const element = document.querySelector(\r\n \"[data-top-element]\"\r\n ) as HTMLSpanElement;\r\n if (element) {\r\n element.scrollIntoView({ block: \"start\" });\r\n }\r\n};\r\n\r\n/** Scrolls smooth to the element identified by data attribute */\r\nexport const scrollSmoothToElement = (data: string): void => {\r\n const element = document.querySelector(`${data}`) as HTMLSpanElement;\r\n if (element) {\r\n element.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n }\r\n};\r\n\r\n/**\r\n * @param duration is a number in milliseconds.\r\n * @returns the following formats: 00:00:00h, 00:00m in case the hours are less than zero and 00h for too many hours.\r\n */\r\nexport function formattedDuration(duration: number) {\r\n const sec = duration;\r\n let hours: string | number = Math.floor(sec / 3600);\r\n let minutes: string | number = Math.floor((sec - hours * 3600) / 60);\r\n let seconds: string | number = sec - hours * 3600 - minutes * 60;\r\n\r\n if (hours < 10) {\r\n hours = \"0\" + hours;\r\n }\r\n if (minutes < 10) {\r\n minutes = \"0\" + minutes;\r\n }\r\n if (seconds < 10) {\r\n seconds = \"0\" + seconds;\r\n }\r\n\r\n if (hours > 24 || (minutes == 0 && seconds == 0)) {\r\n return hours + \"h\";\r\n }\r\n if (hours == 0 && minutes == 0) {\r\n return seconds + \"s\";\r\n }\r\n if (hours == 0 && seconds == 0) {\r\n return minutes + \"m\";\r\n }\r\n if (hours == 0) {\r\n return minutes + \"m\" + seconds + \"s\";\r\n }\r\n return hours + \"h\" + minutes + \"m\";\r\n}\r\n\r\n/** Format the date to: dd/mm/yyyy*/\r\nexport function getLocalFormatDate(date: string): string {\r\n if (!date) return \"\";\r\n const arrayDateEndHour = date.split(\" \");\r\n return arrayDateEndHour[0]\r\n .split(\"-\")\r\n .reverse()\r\n .join(\"/\");\r\n}\r\n\r\nexport function getLocalFormatHour(date: string): string {\r\n if (!date) return \"\";\r\n const arrayDateEndHour = date.split(\" \");\r\n return arrayDateEndHour[1];\r\n}\r\n\r\n/** Function responsible for removing all spaces from a string and joining with +.\r\n * Function used in search bar to format string for the request. */\r\nexport function formatSearchQuery(text: string): string {\r\n const arrayStrings = text.split(\" \");\r\n\r\n return arrayStrings.filter(value => value !== \"\").join(\"+\");\r\n}\r\n\r\n/** Function responsible for displaying the first decimal place of the number. */\r\nexport function toFixed(num, fixed): string {\r\n const regex = new RegExp(\"^-?\\\\d+(?:.\\\\d{0,\" + (fixed || -1) + \"})?\");\r\n return num.toString().match(regex)[0];\r\n}\r\n\r\n/** Return the date formatted to locale date*/\r\nexport const toLocaleDateTime = (date: string) => {\r\n const options = {\r\n month: \"numeric\",\r\n year: \"numeric\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n };\r\n return new Date(date).toLocaleString(\"pt-br\", options) + \"h\";\r\n};\r\n\r\n/** Function responsible for formatting the time to 00h00m. */\r\nexport function formatHour(hour: string): string {\r\n if (!hour) return \"\";\r\n const arrayHour = hour.split(\":\");\r\n const hourUpdate = arrayHour[0] + \"h\";\r\n return hourUpdate + arrayHour[1];\r\n}\r\n\r\n/** Function responsible for formatting the date to 00/00/0000 às 00h00m. */\r\nexport function formatDateTime(date: string): string {\r\n if (!date) return \"\";\r\n\r\n const divisor = date.indexOf(\" \");\r\n let formatDate = date.substring(0, divisor).replaceAll(\"-\", \" / \");\r\n\r\n const firstPoint = formatDate.indexOf(\"/\", 1);\r\n const lastPoint = firstPoint + 3;\r\n\r\n const year = formatDate.substr(0, firstPoint).trim();\r\n let month = formatDate.substr(firstPoint + 1, 3).trim();\r\n const day = formatDate.substr(lastPoint + 3, 3).trim();\r\n const hour = formatHour(date.substring(divisor + 1, date.length));\r\n\r\n if (month.includes(\"/\")) {\r\n month = month.replace(\"/\", \"\");\r\n }\r\n\r\n formatDate = `${day}/${month}/${year} às ${hour}`;\r\n return formatDate;\r\n}\r\n\r\n/** Converts a value to percentage based on a given total value.\r\n * @param numerator The value that's going to be converted to percentage.\r\n * @param denominator The base value used in the formula.\r\n * @param rounded Tells whether the return value will be rounded (using Math.floor) or not. */\r\nexport function toPercentage(\r\n numerator: number,\r\n denominator: number,\r\n rounded?: boolean\r\n): number {\r\n if (numerator == 0 || denominator == 0) return 0;\r\n return rounded\r\n ? Math.floor((numerator / denominator) * 100)\r\n : (numerator / denominator) * 100;\r\n}\r\n\r\nexport const maskCPF = (input: string): string => {\r\n let cpf = \"\";\r\n\r\n /** Remove everything that is not a number. */\r\n cpf = input.replace(/\\D+/g, \"\");\r\n /** Place a dot between the third and fourth numbers. */\r\n cpf = cpf.replace(/(\\d{3})(\\d)/, \"$1.$2\");\r\n /** Back to the second block of numbers */\r\n cpf = cpf.replace(/(\\d{3})(\\d)/, \"$1.$2\");\r\n /** Put a hyphen between the third and fourth numbers. */\r\n cpf = cpf.replace(/(\\d{3})(\\d{1,2})$/, \"$1-$2\");\r\n\r\n return cpf;\r\n};\r\n\r\nexport const maskCEP = (input: string): string => {\r\n let cep = \"\";\r\n\r\n cep = input.replace(/\\D+/g, \"\");\r\n cep = cep.replace(/(\\d{5})(\\d)/, \"$1-$2\");\r\n cep = cep.replace(/(-\\d{3})\\d+?$/, \"$1\");\r\n\r\n return cep;\r\n};\r\n\r\nexport const maskCNPJ = (input: string): string => {\r\n let cnpj = \"\";\r\n\r\n /** Remove everything that is not a number. */\r\n cnpj = input.replace(/\\D+/g, \"\");\r\n\r\n /** Place dot between second and third number. */\r\n cnpj = cnpj.replace(/^(\\d{2})(\\d)/, \"$1.$2\");\r\n\r\n /** Place dot between fifth and sixth number. */\r\n cnpj = cnpj.replace(/^(\\d{2})\\.(\\d{3})(\\d)/, \"$1.$2.$3\");\r\n\r\n /** Put a slash between the eighth and ninth number. */\r\n cnpj = cnpj.replace(/\\.(\\d{3})(\\d)/, \".$1/$2\");\r\n\r\n /** Put a hyphen after the block of four numbers. */\r\n cnpj = cnpj.replace(/(\\d{4})(\\d)/, \"$1-$2\");\r\n\r\n return cnpj;\r\n};\r\n\r\nconst acceptedExtention = {\r\n png: true,\r\n jpg: true,\r\n jpeg: true,\r\n webp: true,\r\n PNG: true,\r\n JPG: true,\r\n JPEG: true,\r\n WEBP: true\r\n};\r\n\r\nexport function handleImageExtention(filename: string) {\r\n const extention =\r\n filename\r\n .split(\".\")\r\n .pop()\r\n ?.toLowerCase() || \"\";\r\n if (!acceptedExtention[extention]) {\r\n dispatchErrorBox(\"Por favor, insira uma imagem PNG, JPG, JPEG ou WEBP\");\r\n return \"\";\r\n } else {\r\n return \".\" + extention;\r\n }\r\n}\r\n\r\n/** Disable the body overflow to not let the user scroll the page behind some modal while is open. */\r\nexport const disableBodyOverflow = () => {\r\n document.body.style.overflow = \"hidden\";\r\n};\r\n\r\n/** Enable the body overflow to let the user scroll the page after close some modal. */\r\nexport const enableBodyOverflow = () => {\r\n document.body.style.overflow = \"auto\";\r\n};\r\n\r\nexport const isCirculoTemplate = (): boolean => {\r\n return process.env.VUE_APP_THEME === \"circulo\";\r\n};\r\n\r\nexport const isDecolaTemplate = (): boolean => {\r\n return process.env.VUE_APP_THEME === \"default\";\r\n};\r\n\r\nexport const isConstrucolorTemplate = (): boolean => {\r\n return process.env.VUE_APP_THEME === \"construcolor\";\r\n};\r\n\r\nexport const isGTopTemplate = (): boolean => {\r\n return process.env.VUE_APP_THEME === \"gtop\";\r\n};\r\n\r\n/** Function responsible for formatting the decoins according to the value.\r\n * Formatting is done when the screen is smaller than 700px.\r\n * @param decoins decoins to format. */\r\nexport function formatUserDecoins(decoins: number): string | number {\r\n if (window.matchMedia(\"(max-width:700px)\").matches) {\r\n if (String(decoins).length) {\r\n if (String(decoins).length <= 3) {\r\n return decoins;\r\n } else if (String(decoins).length <= 6 && String(decoins).length > 3) {\r\n return toFixed(decoins / 1000, 1) + \"k\";\r\n } else if (String(decoins).length >= 7)\r\n return toFixed(decoins / 1000000, 1) + \"m\";\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n return Intl.NumberFormat(\"pt-br\").format(decoins);\r\n}\r\n\r\n/**\r\n * Formats a list of `Menu` objects into a string representation of their dates, grouped by year and month.\r\n * This function organizes the dates into readable string, grouping days by month and year. Days with the same month are listed numerically and separated by ',',\r\n * with the final day preceded by \"e\".\r\n * @param {Menu[]} menus - An array of `Menu` objects, each representing an event with a `startDate`.\r\n * @returns {string} A formatted string representing the grouped dates of the provided `Menu` objects.\r\n */\r\nexport function formatMenusDates(menus: Menu[]): string {\r\n const formattedDates: {\r\n [year: string]: {\r\n [month: string]: Menu[];\r\n };\r\n } = {};\r\n\r\n for (const menu of menus) {\r\n const [year, month] = menu.startDate.split(\"-\");\r\n\r\n if (!formattedDates[year]) formattedDates[year] = {};\r\n\r\n if (!formattedDates[year][month]) formattedDates[year][month] = [];\r\n\r\n formattedDates[year][month].push(menu);\r\n }\r\n\r\n if (!Object.keys(formattedDates).length) return \"\";\r\n\r\n let formattedString = \"\";\r\n const years = Object.keys(formattedDates);\r\n const lastYear = years[years.length - 1];\r\n\r\n years.forEach(year => {\r\n let months = Object.keys(formattedDates[year]);\r\n months = months.sort((one, two) => Number(one) - Number(two)); //order by date\r\n const lastMonth = months[months.length - 1];\r\n\r\n months.forEach(month => {\r\n const trainingDataList = formattedDates[year][month];\r\n const lastTrainingData = trainingDataList[trainingDataList.length - 1];\r\n\r\n trainingDataList.forEach((trainingData, _) => {\r\n const day = trainingData.startDate.split(\"-\")[2];\r\n\r\n if (formattedString === \"\") {\r\n formattedString = day;\r\n } else {\r\n if (\r\n trainingData === lastTrainingData &&\r\n trainingDataList.length > 1\r\n ) {\r\n formattedString += \" e \" + day;\r\n } else {\r\n formattedString += \", \" + day;\r\n }\r\n }\r\n\r\n const isLastTrainingData = trainingData === lastTrainingData;\r\n const isLastMonth = month === lastMonth;\r\n const isLastYear = year === lastYear;\r\n\r\n if (isLastTrainingData) {\r\n formattedString += `/${month}`;\r\n if (isLastMonth) {\r\n formattedString += `/${year}`;\r\n if (!isLastYear) {\r\n formattedString += \", \";\r\n }\r\n } else {\r\n formattedString += \",\";\r\n }\r\n formattedString = formattedString.replace(\", ,\", \",\");\r\n formattedString = formattedString.replace(\",,\", \",\");\r\n }\r\n });\r\n });\r\n });\r\n\r\n formattedString = subsCommaPerLetterE(formattedString);\r\n return formattedString;\r\n}\r\n\r\nfunction subsCommaPerLetterE(str: string): string {\r\n const numVirgulas = (str.match(/,/g) || []).length;\r\n\r\n if (numVirgulas > 1) {\r\n const lastCommaIndex = str.lastIndexOf(\",\");\r\n return (\r\n str.substring(0, lastCommaIndex) +\r\n \" e\" +\r\n str.substring(lastCommaIndex + 1)\r\n );\r\n }\r\n\r\n return str;\r\n}\r\n\r\nexport function formatOneTime(date) {\r\n const newDate = new Date(date);\r\n let hours = newDate\r\n .getHours()\r\n .toString()\r\n .padStart(2, \"0\");\r\n let minutes = newDate\r\n .getMinutes()\r\n .toString()\r\n .padStart(2, \"0\");\r\n return `${hours}:${minutes}`;\r\n}\r\n\r\n/**\r\n * This function organizes the events by year, month, and time range, then formats them into a string.\r\n * Each event is grouped by its start date and time range, with the dates being formatted and listed numerically.\r\n * The events are separated by '|', and each group of events includes the time range during which they occur.\r\n * If multiple events occur on different days but within the same month and year, they are listed together.\r\n * If an event spans multiple months or years, it is listed separately.\r\n * @param {Menu[]} menus - An array of `Menu` objects, each representing an event with a `startDate`, `startHour`, and `endHour`.\r\n * @returns {string} A formatted string representing the ordined schedules\r\n */\r\nexport function formatMenusSchedule(menus: Menu[]): string {\r\n let result = \"\";\r\n const groupedEvents = groupEventsByTimeRange(menus);\r\n\r\n //when all dates only have one time range\r\n if (Object.keys(groupedEvents).length === 1) {\r\n return Object.keys(groupedEvents)[0];\r\n }\r\n\r\n for (const timeRange in groupedEvents) {\r\n let dates: string[] = [];\r\n for (const year in groupedEvents[timeRange]) {\r\n const months = Object.keys(groupedEvents[timeRange][year]);\r\n const lastMonth = (\"0\" + Math.max(...months.map(Number)))\r\n .slice(-2)\r\n .toString();\r\n for (const month in groupedEvents[timeRange][year]) {\r\n const days = groupedEvents[timeRange][year][month].map(\r\n date => date.split(\"/\")[0]\r\n );\r\n const yearMonth = month === lastMonth ? `${month}/${year}` : month;\r\n dates.push(`${days.join(\", \")}/${yearMonth}`);\r\n }\r\n }\r\n result += `${dates.join(\", \")} das ${timeRange}, `;\r\n }\r\n result = result.slice(0, -2).trim();\r\n\r\n if (!result.includes(\",\")) {\r\n const parts = result.split(\"das \");\r\n result = parts[1];\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Groups events by year, month, and time range.\r\n * @returns An object with a nested structure where the first level of keys are years, the second level are months within those years,\r\n * and the third level are time ranges within those months. Each time range key maps to an array of strings,\r\n * each representing a day within that time range, formatted as \"DD/MM/YYYY\".\r\n */\r\nfunction groupEventsByTimeRange(\r\n events: Menu[]\r\n): {\r\n [timeRange: string]: {\r\n [year: string]: {\r\n [month: string]: string[];\r\n };\r\n };\r\n} {\r\n return events.reduce((accumulator, event) => {\r\n const [year, month, day] = event.startDate.split(\"-\");\r\n const timeRange = `${event.startHour} às ${event.endHour}`;\r\n\r\n if (!accumulator[timeRange]) accumulator[timeRange] = {};\r\n if (!accumulator[timeRange][year]) accumulator[timeRange][year] = {};\r\n if (!accumulator[timeRange][year][month])\r\n accumulator[timeRange][year][month] = [];\r\n\r\n accumulator[timeRange][year][month].push(`${day}/${month}/${year}`);\r\n\r\n return accumulator;\r\n }, {});\r\n}\r\n\r\n/**\r\n * Generates a string listing all unique locations from a given array of `Menu` objects.\r\n * @param menus An array of `Menu` objects, each representing an event with a `location`.\r\n * @returns A string representing the locations of the events.\r\n */\r\nexport function getMenusLocation(menus: Menu[]): string {\r\n let location = \"\";\r\n let menusLocationArray: string[] = [];\r\n\r\n menus.forEach(menu => {\r\n if (!menusLocationArray.includes(menu.location))\r\n menusLocationArray.push(menu.location);\r\n });\r\n\r\n menusLocationArray.forEach((value, index) => {\r\n if (index == 0) {\r\n location = value;\r\n } else if (index == menusLocationArray.length - 1) {\r\n location += \" e \" + value;\r\n } else {\r\n location += \", \" + value;\r\n }\r\n });\r\n\r\n return location;\r\n}\r\n\r\n/** Format the date to: yyyy-mm-ddd */\r\nexport function getDate(date: string): string {\r\n if (!date) return \"\";\r\n const arrayDateEndHour = date.split(\" \");\r\n return arrayDateEndHour[0];\r\n}\r\n\r\n/** Grouped the date to: 20220712 */\r\nexport function dateGrouped(date: string): string {\r\n if (!date) return \"\";\r\n return date.split(\"-\").join(\"\");\r\n}\r\n\r\nexport function hourGrouped(time: string): string {\r\n if (!time) return \"\";\r\n return time.split(\":\").join(\"\");\r\n}\r\n","import {LocationQuery, Router} from \"vue-router\";\r\n\r\n/** Adds or updates a single query in the URL.\r\n * @param router A {@link Router} instance.\r\n * @param key Key of the query.\r\n * @param value Value of the query.\r\n *\r\n * How it looks in the URL: ?key=value\r\n */\r\nexport const updateQuery = async (\r\n router: Router,\r\n key: string,\r\n value: string\r\n): Promise => {\r\n await router.replace({\r\n ...router.currentRoute,\r\n query: {\r\n ...router.currentRoute.value.query,\r\n ...{\r\n [key]: value\r\n }\r\n }\r\n });\r\n};\r\n\r\nexport const addNewQuery = async (\r\n router: Router,\r\n key: string,\r\n value: string\r\n): Promise => {\r\n const queries = router.currentRoute.value.query[key] as string[] || [];\r\n\r\n if (!queries.includes(value)) {\r\n queries.push(value);\r\n } else {\r\n const index = queries.indexOf(value);\r\n if (index !== -1) {\r\n queries.splice(index, 1);\r\n }\r\n }\r\n\r\n await router.replace({\r\n ...router.currentRoute,\r\n query: {\r\n ...router.currentRoute.value.query,\r\n ...{\r\n [key]: queries\r\n }\r\n }\r\n });\r\n};\r\n\r\n/** Adds or updates multiple queries at the same time in the URL.\r\n * @param router A {@link Router} instance.\r\n * @param queries Object containing a number of key-value query params.\r\n *\r\n * How it looks in the URL: ?key=value&key=value&...\r\n */\r\nexport const updateQueries = async (\r\n router: Router,\r\n queries: LocationQuery\r\n): Promise => {\r\n await router.replace({\r\n ...router.currentRoute,\r\n query: {\r\n ...router.currentRoute.value.query,\r\n ...queries\r\n }\r\n });\r\n};\r\n\r\n/** Removes a single query in the URL.\r\n * @param router A {@link Router} instance.\r\n * @param key Key of the query.\r\n */\r\nexport const removeQuery = async (\r\n router: Router,\r\n key: string\r\n): Promise => {\r\n const newQuery: LocationQuery = Object.assign(\r\n {},\r\n router.currentRoute.value.query\r\n );\r\n delete newQuery[key];\r\n await router.replace({\r\n ...router.currentRoute,\r\n query: newQuery\r\n });\r\n};\r\n\r\n/** Removes multiple queries in the URL.\r\n * @param router A {@link Router} instance.\r\n * @param keys The keys of the queries that will be deleted.\r\n */\r\nexport const removeQueries = async (\r\n router: Router,\r\n keys: string[]\r\n): Promise => {\r\n const newQuery: LocationQuery = Object.assign(\r\n {},\r\n router.currentRoute.value.query\r\n );\r\n for (const key of keys) {\r\n delete newQuery[key];\r\n }\r\n await router.replace({\r\n ...router.currentRoute,\r\n query: newQuery\r\n });\r\n};\r\n\r\n/** Removes all the queries in the URL.\r\n * @param router A {@link Router} instance.\r\n */\r\nexport const clearAllQueries = async (router: Router): Promise => {\r\n await router.replace({\r\n ...router.currentRoute,\r\n query: {}\r\n });\r\n};\r\n","module.exports = __webpack_public_path__ + \"img/admin-icon.11f8bb6c.svg\";","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./NewContentEventFlag.vue?vue&type=template&id=461b67d8&scoped=true\"\nimport script from \"./NewContentEventFlag.vue?vue&type=script&lang=js\"\nexport * from \"./NewContentEventFlag.vue?vue&type=script&lang=js\"\n\nimport \"./NewContentEventFlag.vue?vue&type=style&index=0&id=461b67d8&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-461b67d8\"]])\n\nexport default __exports__","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Item.vue?vue&type=style&index=0&id=f023428e&scoped=true&lang=css\"","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1f49dca1\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, null, -1))\nconst _hoisted_2 = [\n _hoisted_1\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"button\", null, _hoisted_2))\n}","\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"VideoPlayButton\"\r\n});\r\n","import { render } from \"./VideoPlay.vue?vue&type=template&id=1f49dca1&scoped=true&ts=true\"\nimport script from \"./VideoPlay.vue?vue&type=script&lang=ts\"\nexport * from \"./VideoPlay.vue?vue&type=script&lang=ts\"\n\nimport \"./VideoPlay.vue?vue&type=style&index=0&id=1f49dca1&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1f49dca1\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7b7e77bc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"viewer\" }\nconst _hoisted_2 = { ref: \"editorDiv\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, null, 512)\n ]))\n}","\r\nimport Viewer from \"@toast-ui/editor/dist/toastui-editor-viewer\";\r\nimport \"@toast-ui/editor/dist/toastui-editor-viewer.css\";\r\nimport {defineComponent, onMounted, ref, watch} from \"vue\";\r\n\r\nconst __default__ = defineComponent({\r\n props: {\r\n modelValue: {\r\n type: String,\r\n required: false,\r\n default: \"\"\r\n },\r\n maxWidth: {\r\n type: String,\r\n }\r\n },\r\n emits: [\"update:modelValue\"],\r\n\r\n setup(props) {\r\n const editor = ref();\r\n const editorDiv = ref();\r\n\r\n const maxWidthViewer = ref(props.maxWidth);\r\n\r\n onMounted(() => {\r\n editor.value = new Viewer({\r\n el: editorDiv.value,\r\n initialValue: props.modelValue,\r\n });\r\n });\r\n\r\n watch(\r\n () => props.modelValue,\r\n () => {\r\n editor.value = new Viewer({\r\n el: editorDiv.value,\r\n initialValue: props.modelValue\r\n });\r\n }\r\n );\r\n\r\n return {\r\n editor,\r\n editorDiv,\r\n maxWidthViewer\r\n };\r\n }\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"65096b64\": (_ctx.maxWidthViewer)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./TUIViewer.vue?vue&type=template&id=7b7e77bc&scoped=true&ts=true\"\nimport script from \"./TUIViewer.vue?vue&type=script&lang=ts\"\nexport * from \"./TUIViewer.vue?vue&type=script&lang=ts\"\n\nimport \"./TUIViewer.vue?vue&type=style&index=0&id=7b7e77bc&lang=css\"\nimport \"./TUIViewer.vue?vue&type=style&index=1&id=7b7e77bc&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7b7e77bc\"]])\n\nexport default __exports__","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Layout5.vue?vue&type=style&index=0&id=7897f9de&scoped=true&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Layout3.vue?vue&type=style&index=0&id=fa919716&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Moldure.vue?vue&type=style&index=0&id=27181619&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/ferramentas.6a9f8969.svg\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./CommentsModal.vue?vue&type=style&index=0&id=75e4fb18&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NotificationList.vue?vue&type=style&index=0&id=3ba41bec&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ResetOptions.vue?vue&type=style&index=0&id=78dbe598&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Loading.vue?vue&type=style&index=0&id=5eb9a5e3&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/facebook.9a5b06a4.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FirstLogin.vue?vue&type=style&index=0&id=31ac3396&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/smallest-planet.b3f40b7a.svg\";","import http from \"../http\";\r\nimport {\r\n PasswordStrength,\r\n User,\r\n UserData\r\n} from \"../../../domain/entities/entities\";\r\nimport { AuthenticationRepository } from \"../repository\";\r\nimport { wrapErrorHandler } from \"../utils/wrap_error_handler\";\r\n\r\nclass _AuthenticationRepository implements AuthenticationRepository {\r\n async login(user: User): Promise {\r\n return wrapErrorHandler(async () => {\r\n const credentials = {\r\n login: user.login,\r\n password: user.password\r\n };\r\n\r\n const response = await http.post(\"/api/login\", credentials);\r\n return response.data.success;\r\n });\r\n }\r\n\r\n async finishOnBoarding(user: User): Promise {\r\n return wrapErrorHandler(async () => {\r\n await http.post(\"/api/decola/user/onBoarding/finish\", user);\r\n });\r\n }\r\n\r\n async register(user: User): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(\"api/register\", { user: user });\r\n return response.data;\r\n });\r\n }\r\n\r\n async logout(): Promise {\r\n return wrapErrorHandler(async () => {\r\n await http.post(\"api/decola/logout\");\r\n localStorage.removeItem(\"user\");\r\n });\r\n }\r\n\r\n async getIsAdmin(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"/api/decola/user/isAdmin\");\r\n return response.data.isAdmin;\r\n });\r\n }\r\n\r\n async getIsManager(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"/api/decola/user/isManager\");\r\n return response.data.isManager;\r\n });\r\n }\r\n\r\n async checkUserCredentials(userData: UserData): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(\r\n \"/api/passwordRecovery/check/data\",\r\n userData\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n async recoverPassword(\r\n login: string\r\n ): Promise<{ recoveryType: string; document: string }> {\r\n return wrapErrorHandler<{ recoveryType: string; document: string }>(\r\n async () => {\r\n const response = await http.post(\"/api/passwordRecovery/by/document\", {\r\n document: login\r\n });\r\n return response.data;\r\n }\r\n );\r\n }\r\n\r\n async recoverPasswordByEmail(\r\n login: string\r\n ): Promise<{ recoveryType: string; document: string }> {\r\n return wrapErrorHandler<{ recoveryType: string; document: string }>(\r\n async () => {\r\n const response = await http.post(\"/api/passwordRecovery/by/email\", {\r\n email: login\r\n });\r\n return response.data;\r\n }\r\n );\r\n }\r\n\r\n async changePassword(password: string, confirmation: string): Promise {\r\n return wrapErrorHandler(async () => {\r\n return await http.post(\"/api/user/change/password\", {\r\n password,\r\n confirmation\r\n });\r\n });\r\n }\r\n\r\n async resetPasswordByEmail(\r\n password: string,\r\n confirmation: string,\r\n token: string\r\n ): Promise {\r\n return wrapErrorHandler(async () => {\r\n return await http.post(\r\n \"/api/resetPassword/by/email\",\r\n { password, confirmation, token },\r\n {\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n async resetPasswordByData(\r\n password: string,\r\n confirmation: string,\r\n token: string\r\n ): Promise {\r\n return wrapErrorHandler(async () => {\r\n return await http.post(\r\n \"/api/resetPassword/by/data\",\r\n { password, confirmation, token },\r\n {\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n async validatePasswordStrength(password: string): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(\"/api/decola/get/password/security\", {\r\n password: password\r\n });\r\n return response.data;\r\n });\r\n }\r\n\r\n async acceptTerm(): Promise {\r\n return wrapErrorHandler(async () => {\r\n return await http.post(\"/api/user/accept/term\");\r\n });\r\n }\r\n}\r\n\r\nexport const authenticationRepository: AuthenticationRepository = new _AuthenticationRepository();\r\n","import { PasswordStrength, User, UserData } from \"../../entities/entities\";\r\nimport { AuthenticationUseCases } from \"../../domain\";\r\nimport { authenticationRepository } from \"../../../infrastructure/repository/impl/authentication_repository\";\r\n\r\nclass _AuthenticationUseCases implements AuthenticationUseCases {\r\n async login(user: User): Promise {\r\n return await authenticationRepository.login(user);\r\n }\r\n\r\n async finishOnBoarding(user: User): Promise {\r\n return await authenticationRepository.finishOnBoarding(user);\r\n }\r\n\r\n async logout(): Promise {\r\n await authenticationRepository.logout();\r\n }\r\n\r\n async register(user: User): Promise {\r\n await authenticationRepository.register(user);\r\n }\r\n\r\n async getUserType(): Promise {\r\n let userType: number = 1;\r\n\r\n const isAdmin = await authenticationRepository.getIsAdmin();\r\n if (isAdmin) {\r\n userType = 2;\r\n } else {\r\n const isManager = await authenticationRepository.getIsManager();\r\n if (isManager) {\r\n userType = 4;\r\n }\r\n }\r\n\r\n return userType;\r\n }\r\n\r\n async checkUserCredentials(userData: UserData): Promise {\r\n return await authenticationRepository.checkUserCredentials(userData);\r\n }\r\n\r\n async changePassword(password: string, confirmation: string): Promise {\r\n return await authenticationRepository.changePassword(\r\n password,\r\n confirmation\r\n );\r\n }\r\n\r\n async recoverPassword(\r\n login: string\r\n ): Promise<{ recoveryType: string; document: string }> {\r\n return await authenticationRepository.recoverPassword(login);\r\n }\r\n\r\n async recoverPasswordByEmail(\r\n login: string\r\n ): Promise<{ recoveryType: string; document: string }> {\r\n return await authenticationRepository.recoverPasswordByEmail(login);\r\n }\r\n\r\n async resetPasswordByEmail(\r\n password: string,\r\n confirmation: string,\r\n token: string\r\n ): Promise {\r\n await authenticationRepository.resetPasswordByEmail(\r\n password,\r\n confirmation,\r\n token\r\n );\r\n }\r\n\r\n async resetPasswordByData(\r\n password: string,\r\n confirmation: string,\r\n token: string\r\n ): Promise {\r\n await authenticationRepository.resetPasswordByData(\r\n password,\r\n confirmation,\r\n token\r\n );\r\n }\r\n\r\n async validatePasswordStrength(password: string): Promise {\r\n return await authenticationRepository.validatePasswordStrength(password);\r\n }\r\n\r\n async acceptTerm(): Promise {\r\n return await authenticationRepository.acceptTerm();\r\n }\r\n}\r\n\r\nexport const authenticationUseCases: AuthenticationUseCases = new _AuthenticationUseCases();\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./OngoingCourse.vue?vue&type=style&index=0&id=1cc6665f&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Mission.vue?vue&type=style&index=0&id=3ff3097e&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./CourseTrack.vue?vue&type=style&index=0&id=c94d41b6&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Supporters.vue?vue&type=style&index=0&id=342e4eb1&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SectionDivisor.vue?vue&type=style&index=0&id=3c20baa3&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FirstLogin.vue?vue&type=style&index=1&id=d3105eb2&lang=css\"","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3c20baa3\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n ref: \"root\",\n class: \"divisor\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1))\nconst _hoisted_3 = { \"data-title\": \"\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"h2\", _hoisted_3, _toDisplayString(_ctx.title), 1),\n _hoisted_4\n ], 512))\n}","\r\nimport {defineComponent} from \"vue\";\r\n\r\nconst __default__ = defineComponent({\r\n name: \"SectionDivisor\",\r\n props: {\r\n title: {\r\n type: String,\r\n },\r\n colorLabel: {\r\n type: String,\r\n },\r\n colorBackground: {\r\n type: String,\r\n },\r\n colorLine: {\r\n type: String,\r\n },\r\n },\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"0dfd641c\": (_ctx.colorBackground),\n \"7b8c5346\": (_ctx.colorLabel),\n \"56910962\": (_ctx.colorLine)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./SectionDivisor.vue?vue&type=template&id=3c20baa3&scoped=true&ts=true\"\nimport script from \"./SectionDivisor.vue?vue&type=script&lang=ts\"\nexport * from \"./SectionDivisor.vue?vue&type=script&lang=ts\"\n\nimport \"./SectionDivisor.vue?vue&type=style&index=0&id=3c20baa3&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3c20baa3\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NewPassword.vue?vue&type=style&index=0&id=154f103c&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/valores.87dff7a3.svg\";","module.exports = __webpack_public_path__ + \"img/events.f9647300.svg\";","export enum EnrolledTrainingTypes {\r\n ONLINE = 1,\r\n FACE = 2\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./CourseTrack.vue?vue&type=style&index=1&id=c94d41b6&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/ferramentas-icon.b3f449f6.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ButtonComment.vue?vue&type=style&index=0&id=1ac57321&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./IdentityForm.vue?vue&type=style&index=0&id=718bf952&scoped=true&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Layout2.vue?vue&type=style&index=0&id=a28e573a&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Login.vue?vue&type=style&index=0&id=3c34be24&scoped=true&lang=css\"","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, createVNode as _createVNode, Suspense as _Suspense, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-62cec597\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"view\",\n \"data-view\": \"\"\n}\nconst _hoisted_2 = { class: \"dashboard\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Não há nenhum comentário por aqui\", -1))\nconst _hoisted_4 = {\n key: 5,\n class: \"pills\"\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"pills__title\" }, \"Fique por dentro\", -1))\nconst _hoisted_6 = {\n key: 6,\n class: \"new-courses\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ongoing-course__title\" }, \"Acabou de decolar! 🚀 \", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ongoing-course__line\" }, \"lançamentos\", -1))\nconst _hoisted_9 = {\n key: 7,\n class: \"ongoing-course\"\n}\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ongoing-course__title\" }, \"Continue de onde você parou!\", -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"ongoing-course__line\" }, \"em andamento\", -1))\nconst _hoisted_12 = {\n key: 8,\n class: \"events\"\n}\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"events__title\" }, \" Treinamentos \", -1))\nconst _hoisted_14 = {\n key: 9,\n class: \"recommendation\"\n}\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", { class: \"recommendation__title\" }, \"Recomendações\", -1))\nconst _hoisted_16 = { class: \"courses-container\" }\nconst _hoisted_17 = { class: \"filter\" }\nconst _hoisted_18 = { class: \"card-schools custom-palette\" }\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = /*#__PURE__*/_createTextVNode(\" Não encontrado. \")\nconst _hoisted_21 = { class: \"courses-list\" }\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n id: \"dashboard-fallback\",\n style: {\"display\":\"none\"}\n}, [\n /*#__PURE__*/_createElementVNode(\"h2\", null, \" Não há nenhum treinamento disponível no momento, em caso de dúvida entre em contato conosco pelo email: decola@lince.com.br. \")\n], -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Comment = _resolveComponent(\"Comment\")!\n const _component_content_fallback = _resolveComponent(\"content-fallback\")!\n const _component_CommentModal = _resolveComponent(\"CommentModal\")!\n const _component_IntroductoryContentModal = _resolveComponent(\"IntroductoryContentModal\")!\n const _component_InfoIcon = _resolveComponent(\"InfoIcon\")!\n const _component_InfoPanel = _resolveComponent(\"InfoPanel\")!\n const _component_steps = _resolveComponent(\"steps\")!\n const _component_OnboardingModal = _resolveComponent(\"OnboardingModal\")!\n const _component_PillModal = _resolveComponent(\"PillModal\")!\n const _component_PillComponent = _resolveComponent(\"PillComponent\")!\n const _component_PillLoader = _resolveComponent(\"PillLoader\")!\n const _component_Slide = _resolveComponent(\"Slide\")!\n const _component_Navigation = _resolveComponent(\"Navigation\")!\n const _component_carousel = _resolveComponent(\"carousel\")!\n const _component_NewCourse = _resolveComponent(\"NewCourse\")!\n const _component_OngoingCourse = _resolveComponent(\"OngoingCourse\")!\n const _component_Event = _resolveComponent(\"Event\")!\n const _component_RecommendedCourses = _resolveComponent(\"RecommendedCourses\")!\n const _component_SelectBox = _resolveComponent(\"SelectBox\")!\n const _component_VueMultiselect = _resolveComponent(\"VueMultiselect\")!\n const _component_course = _resolveComponent(\"course\")!\n const _component_PaginationDefault = _resolveComponent(\"PaginationDefault\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n ($setup.isCommentsModalOpen)\n ? (_openBlock(), _createBlock(_component_CommentModal, {\n key: 0,\n onCloseCommentsModal: $setup.closeCommentsModal,\n title: $setup.commentModalTitle\n }, {\n default: _withCtx(() => [\n ($setup.comments.length)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList($setup.comments, (comment, index) => {\n return (_openBlock(), _createBlock(_component_Comment, {\n key: index,\n \"user-name\": comment.userName,\n comment: comment.message,\n date: $setup.toLocaleDateTime(comment.createAt),\n stars: comment.rating,\n \"user-image\": comment.userImage,\n \"content-name\": comment.contentName\n }, null, 8, [\"user-name\", \"comment\", \"date\", \"stars\", \"user-image\", \"content-name\"]))\n }), 128))\n : (_openBlock(), _createBlock(_component_content_fallback, { key: 1 }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }))\n ]),\n _: 1\n }, 8, [\"onCloseCommentsModal\", \"title\"]))\n : _createCommentVNode(\"\", true),\n ($setup.openModalIntroductoryContent && $setup.introductoryContent)\n ? (_openBlock(), _createBlock(_component_IntroductoryContentModal, {\n key: 1,\n onClose: $setup.closeModalIntroductoryContent,\n \"introductory-content\": $setup.introductoryContent\n }, null, 8, [\"onClose\", \"introductory-content\"]))\n : _createCommentVNode(\"\", true),\n ($setup.informationsExist)\n ? (_openBlock(), _createBlock(_component_InfoIcon, {\n key: 2,\n onToggleInfo: $setup.toggleInfoPanel\n }, null, 8, [\"onToggleInfo\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_InfoPanel, {\n isVisible: $setup.isInfoPanelVisible,\n onToggleInfo: $setup.toggleInfoPanel,\n fetchInformations: $setup.fetchInformations\n }, null, 8, [\"isVisible\", \"onToggleInfo\", \"fetchInformations\"]),\n ($setup.showOnboarding())\n ? (_openBlock(), _createBlock(_component_OnboardingModal, {\n key: 3,\n onClose: $setup.closeOnBoarding,\n onFinishOnBoarding: $setup.finishOnBoarding,\n onPreviousStep: $setup.previousStep,\n onNextStep: $setup.nextStep,\n onStepChanged: _cache[2] || (_cache[2] = ($event: any) => ($setup.setStep($event))),\n class: \"onboarding\",\n steps: $setup.steps,\n \"current-step\": $setup.currentStep\n }, {\n default: _withCtx(() => [\n ($setup.user.name)\n ? (_openBlock(), _createBlock(_component_steps, {\n key: 0,\n user: $setup.user,\n \"onUpdate:user\": _cache[0] || (_cache[0] = ($event: any) => (($setup.user) = $event)),\n \"onUpdate:userInterests\": _cache[1] || (_cache[1] = ($event: any) => ($setup.updateUserInterests($event))),\n \"current-step\": $setup.currentStep,\n interests: $setup.interests,\n messages: $setup.messages\n }, null, 8, [\"user\", \"current-step\", \"interests\", \"messages\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"onClose\", \"onFinishOnBoarding\", \"onPreviousStep\", \"onNextStep\", \"steps\", \"current-step\"]))\n : _createCommentVNode(\"\", true),\n ($setup.openPill && $setup.completedPills.length)\n ? (_openBlock(), _createBlock(_component_PillModal, {\n key: 4,\n pills: $setup.completedPills || [],\n onClose: $setup.closePill,\n class: \"stories\",\n \"start-pill\": $setup.startPill\n }, null, 8, [\"pills\", \"onClose\", \"start-pill\"]))\n : _createCommentVNode(\"\", true),\n ($setup.incompletePills.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _hoisted_5,\n _createVNode(_component_carousel, {\n class: _normalizeClass([\r\n 'carousel-pills',\r\n {\r\n center: $setup.isPillsCentered,\r\n },\r\n ]),\n settings: $setup.pillSettings,\n breakpoints: $setup.pillBreakpoints,\n modelValue: $setup.pillInFocusIndex,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => (($setup.pillInFocusIndex) = $event))\n }, {\n addons: _withCtx(() => [\n _createVNode(_component_Navigation)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.incompletePills, (pill, index) => {\n return (_openBlock(), _createBlock(_component_Slide, {\n class: \"pills__slider\",\n key: 'pills' + index\n }, {\n default: _withCtx(() => [\n ($setup.showPills)\n ? (_openBlock(), _createBlock(_Suspense, { key: 0 }, {\n default: _withCtx(() => [\n _createVNode(_component_PillComponent, {\n onClickCapture: ($event: any) => ($setup.playPill(index)),\n title: pill.title,\n watched: pill.isWatched,\n background: pill.imageURL\n }, null, 8, [\"onClickCapture\", \"title\", \"watched\", \"background\"])\n ]),\n fallback: _withCtx(() => [\n _createVNode(_component_PillLoader)\n ]),\n _: 2\n }, 1024))\n : (_openBlock(), _createBlock(_component_PillLoader, { key: 1 }))\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"class\", \"settings\", \"breakpoints\", \"modelValue\"])\n ]))\n : _createCommentVNode(\"\", true),\n false\n ? (_openBlock(), _createElementBlock(\"section\", _hoisted_6, [\n _hoisted_7,\n _hoisted_8,\n _createVNode(_component_carousel, {\n settings: $setup.newCourseSettings,\n breakpoints: $setup.newCourseBreakpoints\n }, {\n addons: _withCtx(() => [\n _createVNode(_component_Navigation)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.newsCourses, (course, index) => {\n return (_openBlock(), _createBlock(_component_Slide, {\n key: 'new-course' + index\n }, {\n default: _withCtx(() => [\n _createVNode(_component_NewCourse, { course: course }, null, 8, [\"course\"])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"settings\", \"breakpoints\"])\n ]))\n : _createCommentVNode(\"\", true),\n ($setup.coursesInProgress.length)\n ? (_openBlock(), _createElementBlock(\"section\", _hoisted_9, [\n _hoisted_10,\n _hoisted_11,\n _createVNode(_component_carousel, {\n settings: $setup.ongoingCourseSettings,\n breakpoints: $setup.ongoingCourseBreakpoints\n }, {\n addons: _withCtx(() => [\n _createVNode(_component_Navigation)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.coursesInProgress, (course, index) => {\n return (_openBlock(), _createBlock(_component_Slide, {\n key: 'ongoingCourse' + index\n }, {\n default: _withCtx(() => [\n _createVNode(_component_OngoingCourse, { course: course }, null, 8, [\"course\"])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"settings\", \"breakpoints\"])\n ]))\n : _createCommentVNode(\"\", true),\n ($setup.eventCourses.length)\n ? (_openBlock(), _createElementBlock(\"section\", _hoisted_12, [\n _hoisted_13,\n _createVNode(_component_carousel, {\n class: \"carousel-events\",\n settings: $setup.eventsSettings,\n breakpoints: $setup.eventsBreakpoints\n }, {\n addons: _withCtx(() => [\n _createVNode(_component_Navigation)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.eventCourses, (event, index) => {\n return (_openBlock(), _createBlock(_component_Slide, {\n key: index,\n class: \"card-align\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_Event, {\n event: event,\n onOpenIntroductoryContent: ($event: any) => (\r\n $setup.openIntroductoryContent(event.introductoryContent)\r\n )\n }, null, 8, [\"event\", \"onOpenIntroductoryContent\"])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"settings\", \"breakpoints\"])\n ]))\n : _createCommentVNode(\"\", true),\n ($setup.recommendedCourses.length)\n ? (_openBlock(), _createElementBlock(\"section\", _hoisted_14, [\n _hoisted_15,\n _createVNode(_component_carousel, {\n class: \"carousel-recommended\",\n settings: $setup.recommendedSettings,\n breakpoints: $setup.recommendedBreakpoints\n }, {\n addons: _withCtx(() => [\n _createVNode(_component_Navigation)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.recommendedCourses, (course, index) => {\n return (_openBlock(), _createBlock(_component_Slide, { key: index }, {\n default: _withCtx(() => [\n _createVNode(_component_RecommendedCourses, {\n class: \"recommendation_card\",\n course: course,\n onOpenIntroductoryContent: ($event: any) => (\r\n $setup.openIntroductoryContent(course.introductoryContent)\r\n ),\n onLoadCourseCommentsModal: ($event: any) => ($setup.loadCourseCommentsModal(course)),\n onOpenCourse: ($event: any) => (\r\n _ctx.$router.push({\r\n name: 'course',\r\n params: { course_id: course.id },\r\n })\r\n )\n }, null, 8, [\"course\", \"onOpenIntroductoryContent\", \"onLoadCourseCommentsModal\", \"onOpenCourse\"])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"settings\", \"breakpoints\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"main\", _hoisted_16, [\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"div\", _hoisted_18, [\n ($setup.isSelectBoxVisible)\n ? (_openBlock(), _createBlock(_component_SelectBox, {\n key: 0,\n \"entity-name\": \"courseTracks\",\n \"option-label-attribute\": \"name\",\n options: $setup.schools,\n \"model-value\": $setup.selectedSchoolBox,\n \"onUpdate:model-value\": _cache[4] || (_cache[4] = ($event: any) => (($setup.selectedSchoolBox) = $event)),\n label: \"escola\"\n }, null, 8, [\"options\", \"model-value\"]))\n : _createCommentVNode(\"\", true),\n (!$setup.isSelectBoxVisible)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 1 }, _renderList($setup.schools, (school, index) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n key: index,\n class: _normalizeClass(['school', { active: $setup.isSchoolActive(school.id) }]),\n onClick: ($event: any) => ($setup.filterBySchool(school.id))\n }, _toDisplayString(school.name), 11, _hoisted_19))\n }), 128))\n : _createCommentVNode(\"\", true)\n ]),\n ($setup.courseTracks.length > 0)\n ? (_openBlock(), _createBlock(_component_VueMultiselect, {\n key: 0,\n options: $setup.courseTracks,\n label: \"title\",\n \"track-by\": \"title\",\n multiple: true,\n placeholder: \"Pesquisar trilha\",\n modelValue: $setup.selectedCourseTracks,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => (($setup.selectedCourseTracks) = $event)),\n onSearchChange: $setup.selectedCourseTracks,\n selectedLabel: \"Selecionado\",\n deselectLabel: \"Remover\",\n selectLabel: \"Selecionar trilha\"\n }, {\n noResult: _withCtx(() => [\n _hoisted_20\n ]),\n _: 1\n }, 8, [\"options\", \"modelValue\", \"onSearchChange\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.courses, (course, index) => {\n return (_openBlock(), _createBlock(_component_course, {\n course: course,\n key: index,\n class: \"main-courses\",\n onOpenIntroductoryContent: ($event: any) => (\r\n $setup.openIntroductoryContent(course.introductoryContent)\r\n ),\n onLoadCourseCommentsModal: ($event: any) => ($setup.loadCourseCommentsModal(course)),\n onOpenCourse: ($event: any) => (\r\n _ctx.$router.push({ name: 'course', params: { course_id: course.id } })\r\n )\n }, null, 8, [\"course\", \"onOpenIntroductoryContent\", \"onLoadCourseCommentsModal\", \"onOpenCourse\"]))\n }), 128))\n ]),\n ($setup.coursesPages)\n ? (_openBlock(), _createBlock(_component_PaginationDefault, {\n key: 0,\n \"qt-pages\": $setup.coursesPages,\n currentPage: Number(_ctx.$route.query.page) || 1,\n onChangePage: _cache[6] || (_cache[6] = ($event: any) => ($setup.updateQuery(_ctx.$router, 'page', $event)))\n }, null, 8, [\"qt-pages\", \"currentPage\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _hoisted_22\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0e4291c8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"stories\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"stories__background\" }, null, -1))\nconst _hoisted_3 = { class: \"stories__content\" }\nconst _hoisted_4 = { class: \"stories__header\" }\nconst _hoisted_5 = [\"onClick\"]\nconst _hoisted_6 = {\n key: 1,\n class: \"button-container\"\n}\nconst _hoisted_7 = [\"onClick\"]\nconst _hoisted_8 = {\n key: 2,\n id: \"iframe\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Slide = _resolveComponent(\"Slide\")!\n const _component_Navigation = _resolveComponent(\"Navigation\")!\n const _component_Carousel = _resolveComponent(\"Carousel\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"stories__btn-close\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('close')))\n })\n ]),\n _createVNode(_component_Carousel, {\n ref: \"carouselElement\",\n wrapAround: true,\n \"snap-align\": \"center\",\n breakpoints: _ctx.breakpoints,\n onClick: _cache[3] || (_cache[3] = _withModifiers(() => {}, [\"stop\"])),\n class: \"stories-carousel\"\n }, {\n addons: _withCtx(() => [\n _createVNode(_component_Navigation)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.pills, (pill, index) => {\n return (_openBlock(), _createBlock(_component_Slide, {\n key: index,\n class: \"pills-list\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\r\n 'carousel__item pills',\r\n { inactive: _ctx.currentPillIndex !== index }\r\n ])\n }, [\n (_ctx.currentPillIndex === index && _ctx.pills.length > 1)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.prev && _ctx.prev(...args))),\n class: \"carousel__prv\"\n }, \" ← \"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: \"fake-iframe\",\n onClick: ($event: any) => (_ctx.slideTo(index)),\n style: _normalizeStyle(\r\n `background-image: url('https://img.youtube.com/vi/${_ctx.getCodeYoutube(\r\n pill.url\r\n )}/hqdefault.jpg')`\r\n )\n }, null, 12, _hoisted_5),\n (pill.idCourse)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", {\n class: \"button-link\",\n \"data-button-course\": \"\",\n onClick: ($event: any) => (_ctx.goToCourse(pill.idCourse))\n }, \" ver treinamento \", 8, _hoisted_7)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.currentPillIndex === index)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8))\n : _createCommentVNode(\"\", true),\n (_ctx.currentPillIndex === index && _ctx.pills.length > 1)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 3,\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.next && _ctx.next(...args))),\n class: \"carousel__nxt\"\n }, \" → \"))\n : _createCommentVNode(\"\", true)\n ], 2)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"breakpoints\"])\n ])\n ]))\n}","\r\nimport {\r\n defineComponent,\r\n onBeforeMount,\r\n onBeforeUnmount,\r\n onMounted,\r\n PropType,\r\n Ref,\r\n ref,\r\n watch\r\n} from \"vue\";\r\nimport { Carousel, Navigation, Pagination, Slide } from \"vue3-carousel\";\r\nimport \"vue3-carousel/dist/carousel.css\";\r\nimport {\r\n checkDailyDecoinLimit,\r\n dispatchErrorBox,\r\n enableBodyOverflow\r\n} from \"../mixins\";\r\nimport { RepositoryException } from \"../../../../domain/exceptions/exceptions\";\r\nimport { useStore } from \"vuex\";\r\nimport { Pill } from \"../../../../domain/entities/pill\";\r\nimport { useRouter } from \"vue-router\";\r\nimport { dispatchError } from \"../../utils/error_handling\";\r\n\r\ndeclare const window: any;\r\n\r\nexport default defineComponent({\r\n components: {\r\n Carousel,\r\n Slide,\r\n Navigation,\r\n Pagination\r\n },\r\n props: {\r\n pills: {\r\n type: Array as PropType,\r\n required: true\r\n },\r\n startPill: {\r\n type: [Number, String],\r\n required: true\r\n }\r\n },\r\n setup(props, { emit }) {\r\n const store = useStore();\r\n /** That is because the Carousel Component does not have a specified type. */\r\n const carouselElement = ref(null) as any;\r\n\r\n /** Index of the current pill in the pills array. */\r\n const currentPillIndex: Ref = ref(0);\r\n\r\n const router = useRouter();\r\n\r\n /** Carousel layout breakpoints. */\r\n const breakpoints = ref({\r\n 0: {\r\n itemsToShow: 1.5\r\n },\r\n\r\n 640: {\r\n itemsToShow: 1.6\r\n },\r\n\r\n 700: {\r\n itemsToShow: 2.5\r\n },\r\n\r\n 900: {\r\n itemsToShow: 2.5\r\n },\r\n\r\n 1024: {\r\n itemsToShow: 2.8\r\n }\r\n });\r\n\r\n /** Tells whether the onBeforeMount hook has already been called or not. */\r\n const isDOMMounted = ref(false);\r\n\r\n document.addEventListener(\"keydown\", function(e) {\r\n if (e.key === \"Escape\") {\r\n emit(\"close\");\r\n }\r\n });\r\n\r\n onBeforeMount(async () => {\r\n currentPillIndex.value = props.startPill as number;\r\n await requestIframeApi();\r\n await loadVideo(props.pills[currentPillIndex.value].url);\r\n await addStyleToIframe();\r\n // seeMoreDescription()\r\n isDOMMounted.value = true;\r\n });\r\n\r\n onMounted(() => {\r\n carouselElement.value.restartCarousel();\r\n carouselElement.value.data.currentSlide.value = currentPillIndex.value;\r\n });\r\n\r\n watch(\r\n () => currentPillIndex.value,\r\n async () => {\r\n if (isDOMMounted.value) {\r\n const iframe = document.getElementById(\"iframe\") as HTMLIFrameElement;\r\n\r\n if (iframe) {\r\n await removeIframe(iframe);\r\n }\r\n\r\n await loadVideo(props.pills[currentPillIndex.value].url);\r\n await addStyleToIframe();\r\n }\r\n }\r\n );\r\n\r\n onBeforeUnmount(async () => {\r\n try {\r\n await store.dispatch(\"pill_module/list\");\r\n\r\n const iframe = document.getElementById(\"iframe\") as HTMLIFrameElement;\r\n if (iframe) {\r\n iframe.remove();\r\n }\r\n\r\n const youtubeIframeApiScript = document.getElementById(\"scriptAPI\");\r\n if (youtubeIframeApiScript) {\r\n youtubeIframeApiScript.remove();\r\n }\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n });\r\n\r\n const getCodeYoutube = (url: string): string => {\r\n const parts = url.split(\"/\");\r\n const code = parts.pop();\r\n if (code) {\r\n return code;\r\n } else return \"\";\r\n };\r\n\r\n /** Makes a request to the YouTube Iframe API. */\r\n const requestIframeApi = async (): Promise => {\r\n try {\r\n const tag = document.createElement(\"script\");\r\n tag.id = \"scriptAPI\";\r\n tag.src = \"https://www.youtube.com/iframe_api\";\r\n const firstScriptTag = document.getElementsByTagName(\"script\")[1];\r\n if (firstScriptTag) {\r\n if (firstScriptTag.parentNode)\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n };\r\n\r\n window.onYouTubeIframeAPIReady = async (): Promise => {\r\n await loadVideo(props.pills[currentPillIndex.value].url);\r\n await addStyleToIframe();\r\n };\r\n\r\n const onPlayerReady = async (event): Promise => {\r\n event.target.playVideo();\r\n await addStyleToIframe();\r\n if (!props.pills[currentPillIndex.value].isWatched) {\r\n await watchPill(props.pills[currentPillIndex.value].id);\r\n await checkDailyDecoinLimit();\r\n }\r\n };\r\n\r\n /** The YouTube Iframe API will call this function when the player's state changes. */\r\n const onPlayerStateChange = (event): void => {\r\n if (event.data === 0) {\r\n let nextIndex = currentPillIndex.value + 1;\r\n\r\n if (nextIndex >= props.pills.length) {\r\n nextIndex = 0;\r\n }\r\n\r\n slideTo(nextIndex);\r\n event.target.playVideo();\r\n }\r\n };\r\n\r\n /** Loads a video by ID.\r\n * @param url url of the video.\r\n */\r\n const loadVideo = async (url: string): Promise => {\r\n try {\r\n window.player = new window.YT.Player(\"iframe\", {\r\n videoId: getCodeYoutube(url),\r\n host: \"https://www.youtube.com\",\r\n playerVars: {\r\n autoplay: 1,\r\n controls: 0,\r\n modestbranding: 1,\r\n rel: 0\r\n },\r\n events: {\r\n onReady: onPlayerReady,\r\n onStateChange: onPlayerStateChange\r\n }\r\n });\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n };\r\n\r\n /** Adds style to the iframe that runs the current pill. This is done\r\n * dynamicaly with inline style because of the limitations established by\r\n * the YouTube Iframe Api. */\r\n const addStyleToIframe = async (): Promise => {\r\n const iframe = document.getElementById(\"iframe\") as HTMLIFrameElement;\r\n iframe.style.height = \"100%\";\r\n iframe.style.width = \"100%\";\r\n iframe.style.position = \"absolute\";\r\n iframe.style.left = \"0\";\r\n iframe.style.zIndex = \"1\";\r\n iframe.style.borderRadius = \"10px\";\r\n };\r\n\r\n /** Removes an iframe from the DOM. */\r\n const removeIframe = async (iframe: HTMLIFrameElement): Promise => {\r\n iframe.remove();\r\n };\r\n\r\n /** Makes a request to set the state of the pill as watched. */\r\n const watchPill = async (pillID: number): Promise => {\r\n try {\r\n await store.dispatch(\"pill_module/watch\", pillID);\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n const slideTo = (index: number): void => {\r\n carouselElement.value.slideTo(index);\r\n currentPillIndex.value = index;\r\n };\r\n\r\n const prev = (): void => {\r\n carouselElement.value.prev();\r\n currentPillIndex.value = carouselElement.value.data.currentSlide.value;\r\n };\r\n\r\n const next = (): void => {\r\n carouselElement.value.next();\r\n currentPillIndex.value = carouselElement.value.data.currentSlide.value;\r\n };\r\n\r\n const goToCourse = async (id: number) => {\r\n enableBodyOverflow();\r\n await router.push({ name: \"course\", params: { course_id: id } });\r\n };\r\n\r\n return {\r\n breakpoints,\r\n carouselElement,\r\n currentPillIndex,\r\n getCodeYoutube,\r\n slideTo,\r\n prev,\r\n next,\r\n goToCourse\r\n };\r\n }\r\n});\r\n","import { render } from \"./Stories.vue?vue&type=template&id=0e4291c8&scoped=true&ts=true\"\nimport script from \"./Stories.vue?vue&type=script&lang=ts\"\nexport * from \"./Stories.vue?vue&type=script&lang=ts\"\n\nimport \"./Stories.vue?vue&type=style&index=0&id=0e4291c8&lang=css\"\nimport \"./Stories.vue?vue&type=style&index=1&id=0e4291c8&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0e4291c8\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-16df0f84\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"school\" }\nconst _hoisted_2 = { class: \"school__name\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_course_track = _resolveComponent(\"course-track\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h2\", _hoisted_2, _toDisplayString(_ctx.school.name), 1),\n (_ctx.courseTracks.length)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(_ctx.courseTracks, (courseTrack, index) => {\n return (_openBlock(), _createBlock(_component_course_track, {\n key: 'courseTrack' + index,\n courseTrack: courseTrack,\n schoolID: _ctx.school.id,\n class: \"course-track\"\n }, null, 8, [\"courseTrack\", \"schoolID\"]))\n }), 128))\n : _createCommentVNode(\"\", true),\n (!_ctx.onlyOneCourseTrack)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n class: \"school__button\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.loadCourseTracks(_ctx.school.id, !_ctx.isAllLoaded)))\n }, _toDisplayString(_ctx.isAllLoaded ? \"Ver menos trilhas\" : \"Ver mais trilhas\"), 1))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport {CourseTrack, School} from \"../../../../domain/entities/entities\";\r\nimport {defineComponent, onBeforeMount, PropType, ref} from \"vue\";\r\nimport store from \"../../../../infrastructure/repository/store/store\";\r\nimport courseTrack from \"./CourseTrack.vue\";\r\nimport {RepositoryException} from \"../../../../domain/exceptions/exceptions\";\r\nimport {dispatchErrorBox} from \"../mixins\";\r\n\r\nconst __default__ = defineComponent({\r\n components: { courseTrack },\r\n props: {\r\n school: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n color: {\r\n type: String,\r\n default: \"#121212\",\r\n },\r\n },\r\n\r\n setup(props) {\r\n const courseTracks = ref(Array());\r\n const isAllLoaded = ref(false);\r\n let onlyOneCourseTrack = ref(true);\r\n\r\n onBeforeMount(async () => {\r\n await loadCourseTracks(props.school.id, false);\r\n });\r\n\r\n /** Loads all course tracks of a school.\r\n * @param schoolID Target school ID.\r\n * @param loadAll Boolean that tells whether the function is going to load all course tracks or a single one.\r\n */\r\n async function loadCourseTracks(schoolID: number, loadAll: boolean) {\r\n try {\r\n const hasCourseTracks = courseTracks.value.length;\r\n if (!hasCourseTracks || loadAll) {\r\n courseTracks.value = await store.dispatch(\r\n \"categories_module/loadCourseTracksOfSchool\",\r\n schoolID\r\n );\r\n }\r\n\r\n /* show or hide the \"Ver mais trilhas\" button */\r\n onlyOneCourseTrack.value = courseTracks.value.length == 1;\r\n\r\n if (!loadAll) {\r\n const array: Array = new Array();\r\n array.push(courseTracks.value[0]);\r\n courseTracks.value = array;\r\n }\r\n\r\n const allCourseTracks = props.school.courseTracks;\r\n isAllLoaded.value =\r\n allCourseTracks.length === courseTracks.value.length;\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n return {\r\n courseTracks,\r\n isAllLoaded,\r\n onlyOneCourseTrack,\r\n loadCourseTracks,\r\n };\r\n },\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"4025f134\": (_ctx.color)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./School.vue?vue&type=template&id=16df0f84&scoped=true&ts=true\"\nimport script from \"./School.vue?vue&type=script&lang=ts\"\nexport * from \"./School.vue?vue&type=script&lang=ts\"\n\nimport \"./School.vue?vue&type=style&index=0&id=16df0f84&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-16df0f84\"]])\n\nexport default __exports__","import { withModifiers as _withModifiers, createElementVNode as _createElementVNode, renderSlot as _renderSlot, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, vShow as _vShow, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3ebdc8eb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"onboarding\" }\nconst _hoisted_2 = { class: \"onboarding__modal\" }\nconst _hoisted_3 = { class: \"onboarding__pagination\" }\nconst _hoisted_4 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$emit('close')), [\"prevent\"])),\n class: \"btn btn--exit\"\n }),\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true),\n _createElementVNode(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.steps, (step, index) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n tabindex: \"3\",\n key: index,\n onClick: ($event: any) => (_ctx.$emit('stepChanged', step)),\n class: _normalizeClass(['btn btn--step', { selected: _ctx.currentStep === step }])\n }, null, 10, _hoisted_4))\n }), 128))\n ]),\n _withDirectives(_createElementVNode(\"button\", {\n tabindex: \"1\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('previousStep'))),\n class: \"btn btn--previous\"\n }, null, 512), [\n [_vShow, _ctx.currentStep > 1]\n ]),\n _withDirectives(_createElementVNode(\"button\", {\n tabindex: \"4\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('nextStep'))),\n class: \"btn btn--next\"\n }, null, 512), [\n [_vShow, _ctx.currentStep < _ctx.steps + 1]\n ])\n ])\n ]))\n}","\r\nimport {defineComponent, onBeforeMount} from \"vue\";\r\nimport {disableBodyOverflow} from \"../../mixins\";\r\n\r\nexport default defineComponent({\r\n name: \"OnboardingBox\",\r\n\r\n props: {\r\n steps: {\r\n type: Number,\r\n required: true\r\n },\r\n\r\n currentStep: {\r\n type: Number,\r\n required: true\r\n }\r\n },\r\n setup(props, { emit }) {\r\n onBeforeMount(() => disableBodyOverflow());\r\n document.addEventListener(\"keydown\", function(e) {\r\n if (e.key === \"Escape\") {\r\n emit(\"close\");\r\n }\r\n });\r\n }\r\n\r\n});\r\n","import { render } from \"./OnboardingBox.vue?vue&type=template&id=3ebdc8eb&scoped=true&ts=true\"\nimport script from \"./OnboardingBox.vue?vue&type=script&lang=ts\"\nexport * from \"./OnboardingBox.vue?vue&type=script&lang=ts\"\n\nimport \"./OnboardingBox.vue?vue&type=style&index=0&id=3ebdc8eb&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3ebdc8eb\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, vShow as _vShow, createVNode as _createVNode, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"current-step\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Layout1 = _resolveComponent(\"Layout1\")!\n const _component_Layout6 = _resolveComponent(\"Layout6\")!\n const _component_Layout2 = _resolveComponent(\"Layout2\")!\n const _component_Layout3 = _resolveComponent(\"Layout3\")!\n const _component_Layout4 = _resolveComponent(\"Layout4\")!\n const _component_Layout5 = _resolveComponent(\"Layout5\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createVNode(_component_Layout1, {\n user: $setup.unifiedUser,\n message: $props.messages[$props.currentStep - 1],\n animationIsReverse: $setup.animationIsReverse,\n \"onUpdate:user\": _cache[0] || (_cache[0] = ($event: any) => ($setup.updateUser($event)))\n }, null, 8, [\"user\", \"message\", \"animationIsReverse\"]), [\n [_vShow, $props.currentStep === 1]\n ]),\n _withDirectives(_createVNode(_component_Layout6, {\n user: $setup.unifiedUser,\n message: $props.messages[$props.currentStep - 1],\n animationIsReverse: $setup.animationIsReverse,\n \"onUpdate:user\": _cache[1] || (_cache[1] = ($event: any) => ($setup.updateUser($event)))\n }, null, 8, [\"user\", \"message\", \"animationIsReverse\"]), [\n [_vShow, $props.currentStep === 2]\n ]),\n _withDirectives(_createVNode(_component_Layout2, {\n user: $setup.unifiedUser,\n message: $props.messages[$props.currentStep - 1],\n animationIsReverse: $setup.animationIsReverse\n }, null, 8, [\"user\", \"message\", \"animationIsReverse\"]), [\n [_vShow, $props.currentStep < 6 && $props.currentStep !== 1 && $props.currentStep !== 2]\n ]),\n _withDirectives(_createVNode(_component_Layout3, {\n interests: $props.interests,\n \"user-interests\": $setup.userInterest,\n message: $props.messages[$props.currentStep - 1],\n animationIsReverse: $setup.animationIsReverse,\n \"onUpdate:userInterests\": _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('update:userInterests', $event)))\n }, null, 8, [\"interests\", \"user-interests\", \"message\", \"animationIsReverse\"]), [\n [_vShow, $props.currentStep === 6]\n ]),\n _withDirectives(_createVNode(_component_Layout4, {\n user: $setup.unifiedUser,\n message: $props.messages[$props.currentStep - 1],\n animationIsReverse: $setup.animationIsReverse,\n \"onUpdate:user\": _cache[3] || (_cache[3] = ($event: any) => ($setup.updateUser($event)))\n }, null, 8, [\"user\", \"message\", \"animationIsReverse\"]), [\n [_vShow, $props.currentStep === 7]\n ]),\n _withDirectives(_createVNode(_component_Layout5, {\n message: $props.messages[$props.currentStep - 1],\n animationIsReverse: $setup.animationIsReverse\n }, null, 8, [\"message\", \"animationIsReverse\"]), [\n [_vShow, $props.currentStep === 8]\n ])\n ]))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, createVNode as _createVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../../../assets/static/onboarding/biggest-planet.svg'\nimport _imports_1 from '../../../../assets/static/onboarding/smallest-planet.svg'\nimport _imports_2 from '../../../../assets/static/onboarding/astronaut.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c7b7b9d6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"layout\" }\nconst _hoisted_2 = { class: \"layout__welcome\" }\nconst _hoisted_3 = [\"value\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MessageBox = _resolveComponent(\"MessageBox\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, \" Bem-vindo(a) ao \" + _toDisplayString(_ctx.platformNames) + \", \" + _toDisplayString(_ctx.userName), 1),\n _createVNode(_component_MessageBox, {\n class: _normalizeClass(['layout__message', { reverse: _ctx.animationIsReverse }]),\n message: _ctx.message,\n facingRight: true,\n left: \"20%\"\n }, null, 8, [\"class\", \"message\"]),\n _createElementVNode(\"img\", {\n class: _normalizeClass(['layout__biggest-planet', { reverse: _ctx.animationIsReverse }]),\n src: _imports_0,\n alt: \"Planeta grande\"\n }, null, 2),\n _createElementVNode(\"img\", {\n class: _normalizeClass(['layout__smallest-planet', { reverse: _ctx.animationIsReverse }]),\n src: _imports_1,\n alt: \"Planeta pequeno\"\n }, null, 2),\n _createElementVNode(\"img\", {\n class: _normalizeClass([\r\n 'layout__astronaut',\r\n { 'fluctuate-facing-left': _ctx.isTransitionFinished },\r\n { reverse: _ctx.animationIsReverse }\r\n ]),\n src: _imports_2,\n alt: \"Astronauta\",\n onAnimationend: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.fluctuate && _ctx.fluctuate(...args)))\n }, null, 34),\n _createElementVNode(\"form\", {\n onSubmit: _cache[2] || (_cache[2] = _withModifiers(() => {}, [\"prevent\"])),\n class: _normalizeClass(['layout__form', { reverse: _ctx.animationIsReverse }])\n }, [\n _createElementVNode(\"input\", {\n value: _ctx.user.socialName,\n onInput: _cache[1] || (_cache[1] = ($event: any) => (_ctx.updateUser($event.target))),\n tabindex: \"2\",\n class: \"layout__input\",\n type: \"text\",\n placeholder: \"Digite aqui\"\n }, null, 40, _hoisted_3)\n ], 34)\n ]))\n}","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./MessageBox.vue?vue&type=template&id=e7877174&scoped=true\"\nimport script from \"./MessageBox.vue?vue&type=script&lang=js\"\nexport * from \"./MessageBox.vue?vue&type=script&lang=js\"\n\nimport \"./MessageBox.vue?vue&type=style&index=0&id=e7877174&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e7877174\"]])\n\nexport default __exports__","\r\nimport MessageBox from \"../MessageBox.vue\";\r\nimport { User } from \"../../../../../../domain/entities/entities\";\r\nimport {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n onBeforeMount,\r\n PropType,\r\n Ref,\r\n ref\r\n} from \"vue\";\r\nimport { isGTopTemplate } from \"../../../mixins\";\r\n\r\nexport default defineComponent({\r\n components: { MessageBox },\r\n props: {\r\n message: {\r\n required: true,\r\n type: String\r\n },\r\n animationIsReverse: {\r\n required: false,\r\n type: Boolean\r\n },\r\n user: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n setup({ user }, { emit }) {\r\n const isTransitionFinished = ref(false);\r\n\r\n const userName: Ref = ref(\"Usuário\");\r\n\r\n const newUser: Ref = ref(new User());\r\n\r\n const platformNames: ComputedRef = computed(() => {\r\n if (isGTopTemplate()) {\r\n return \"Portal GTop\";\r\n } else {\r\n return \"Decola\";\r\n }\r\n });\r\n\r\n onBeforeMount(async () => {\r\n getFirstName();\r\n });\r\n\r\n const updateUser = (inputElement: HTMLInputElement) => {\r\n newUser.value = user;\r\n newUser.value.socialName = inputElement.value;\r\n emit(\"update:user\", newUser.value);\r\n };\r\n\r\n const getFirstName = (): string => {\r\n if (user.socialName) {\r\n return (userName.value = user.socialName);\r\n } else if (user.name) {\r\n const endOfFirstName = user.name.indexOf(\" \");\r\n return (userName.value = user.name.slice(0, endOfFirstName));\r\n }\r\n return userName.value;\r\n };\r\n\r\n const fluctuate = (): void => {\r\n if (!isTransitionFinished.value) {\r\n isTransitionFinished.value = true;\r\n }\r\n };\r\n\r\n return {\r\n isTransitionFinished,\r\n userName,\r\n platformNames,\r\n updateUser,\r\n getFirstName,\r\n fluctuate\r\n };\r\n }\r\n});\r\n","import { render } from \"./Layout1.vue?vue&type=template&id=c7b7b9d6&scoped=true&ts=true\"\nimport script from \"./Layout1.vue?vue&type=script&lang=ts\"\nexport * from \"./Layout1.vue?vue&type=script&lang=ts\"\n\nimport \"./Layout1.vue?vue&type=style&index=0&id=c7b7b9d6&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c7b7b9d6\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../../../assets/static/onboarding/biggest-planet.svg'\nimport _imports_1 from '../../../../assets/static/onboarding/smallest-planet.svg'\nimport _imports_2 from '../../../../assets/static/onboarding/astronaut.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a28e573a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"layout\" }\nconst _hoisted_2 = { class: \"layout__welcome\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MessageBox = _resolveComponent(\"MessageBox\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, \" Bem-vindo(a) ao Decola, \" + _toDisplayString($setup.userName), 1),\n _createVNode(_component_MessageBox, {\n class: _normalizeClass(['layout__message', { reverse: $props.animationIsReverse }]),\n message: $props.message,\n direction: \"right\"\n }, null, 8, [\"class\", \"message\"]),\n _createElementVNode(\"img\", {\n class: _normalizeClass(['layout__biggest-planet', { reverse: $props.animationIsReverse }]),\n src: _imports_0,\n alt: \"Planeta grande\"\n }, null, 2),\n _createElementVNode(\"img\", {\n class: _normalizeClass(['layout__smallest-planet', { reverse: $props.animationIsReverse }]),\n src: _imports_1,\n alt: \"Planeta pequeno\"\n }, null, 2),\n _createElementVNode(\"img\", {\n class: _normalizeClass([\r\n 'layout__astronaut',\r\n { 'fade-in': _ctx.$route.params.step == '2' },\r\n { 'fluctuate-facing-right': $setup.isTransitionFinished },\r\n { reverse: $props.animationIsReverse },\r\n ]),\n src: _imports_2,\n alt: \"Astronauta\",\n onAnimationend: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => ($setup.fluctuate && $setup.fluctuate(...args)))\n }, null, 34)\n ]))\n}","\r\nimport {onBeforeMount, Ref, ref, watch} from \"vue\";\r\nimport {useRoute} from \"vue-router\";\r\nimport MessageBox from \"../MessageBox.vue\";\r\n\r\nexport default {\r\n components: { MessageBox },\r\n props: {\r\n user: {\r\n required: true,\r\n type: Object,\r\n },\r\n message: {\r\n required: true,\r\n type: String,\r\n },\r\n animationIsReverse: {\r\n required: false,\r\n type: Boolean,\r\n },\r\n },\r\n setup({user}) {\r\n const route = useRoute();\r\n const isTransitionFinished = ref(false);\r\n const userName: Ref = ref(\"Usuário\");\r\n\r\n onBeforeMount(() => {\r\n getFirstName();\r\n })\r\n /** Reset animations everytime I leave a step. */\r\n watch(\r\n () => route.params.step,\r\n () => {\r\n if (\r\n Number(route.params.step) === 5 ||\r\n Number(route.params.step) === 1\r\n ) {\r\n isTransitionFinished.value = false;\r\n }\r\n }\r\n );\r\n\r\n const getFirstName = (): string => {\r\n\r\n if (user.socialName) {\r\n return (userName.value = user.socialName);\r\n } else if (user.name) {\r\n const endOfFirstName = user.name.indexOf(\" \");\r\n return (userName.value = user.name.slice(0, endOfFirstName));\r\n }\r\n return userName.value;\r\n };\r\n\r\n const fluctuate = (): void => {\r\n if (!isTransitionFinished.value) {\r\n isTransitionFinished.value = true;\r\n }\r\n };\r\n\r\n return {\r\n isTransitionFinished,\r\n userName,\r\n getFirstName,\r\n fluctuate,\r\n };\r\n },\r\n};\r\n","import { render } from \"./Layout2.vue?vue&type=template&id=a28e573a&scoped=true&ts=true\"\nimport script from \"./Layout2.vue?vue&type=script&lang=ts\"\nexport * from \"./Layout2.vue?vue&type=script&lang=ts\"\n\nimport \"./Layout2.vue?vue&type=style&index=0&id=a28e573a&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a28e573a\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, createVNode as _createVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../../../assets/static/onboarding/biggest-planet.svg'\nimport _imports_1 from '../../../../assets/static/onboarding/smallest-planet.svg'\nimport _imports_2 from '../../../../assets/static/onboarding/astronaut.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-fa919716\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"layout\" }\nconst _hoisted_2 = { class: \"layout__interests\" }\nconst _hoisted_3 = [\"disabled\", \"id\", \"onChange\", \"checked\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MessageBox = _resolveComponent(\"MessageBox\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_MessageBox, {\n class: _normalizeClass(['layout__message', { reverse: $props.animationIsReverse }]),\n message: $props.message\n }, null, 8, [\"class\", \"message\"]),\n _createElementVNode(\"img\", {\n class: _normalizeClass(['layout__biggest-planet', { reverse: $props.animationIsReverse }]),\n src: _imports_0,\n alt: \"Planeta grande\"\n }, null, 2),\n _createElementVNode(\"img\", {\n class: _normalizeClass(['layout__smallest-planet', { reverse: $props.animationIsReverse }]),\n src: _imports_1,\n alt: \"Planeta pequeno\"\n }, null, 2),\n _createElementVNode(\"img\", {\n class: _normalizeClass([\r\n 'layout__astronaut',\r\n { 'fluctuate-facing-right': $setup.isTransitionFinished },\r\n { reverse: $props.animationIsReverse }\r\n ]),\n src: _imports_2,\n alt: \"Astronauta\",\n onAnimationend: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => ($setup.fluctuate && $setup.fluctuate(...args)))\n }, null, 34),\n _createElementVNode(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($props.interests, (interest, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: \"layout__interest\",\n key: index\n }, [\n _createElementVNode(\"label\", {\n class: _normalizeClass([\r\n 'layout__label',\r\n {\r\n disable: $setup.hasEnough && !$setup.selectedInterestsIDs.includes(interest.id)\r\n },\r\n {\r\n selected: $setup.selectedInterestsIDs.includes(interest.id)\r\n }\r\n ])\n }, [\n _createElementVNode(\"input\", {\n disabled: $setup.hasEnough && !$setup.selectedInterestsIDs.includes(interest.id),\n class: \"layout__check-box\",\n type: \"checkbox\",\n id: interest.id,\n onChange: ($event: any) => ($setup.selectInterest($event.target, interest.id)),\n checked: \r\n $setup.selectedInterestsIDs.map(value => value).includes(interest.id)\r\n \n }, null, 40, _hoisted_3),\n _createTextVNode(\" \" + _toDisplayString(interest.title), 1)\n ], 2)\n ]))\n }), 128))\n ])\n ]))\n}","\r\nimport MessageBox from \"../MessageBox.vue\";\r\nimport {onBeforeMount, PropType, Ref, ref, watch} from \"vue\";\r\nimport {useRoute} from \"vue-router\";\r\nimport {Interest} from \"../../../../../../domain/entities/entities\";\r\n\r\nexport default {\r\n components: { MessageBox },\r\n props: {\r\n message: {\r\n required: true,\r\n type: String\r\n },\r\n animationIsReverse: {\r\n required: false,\r\n type: Boolean\r\n },\r\n interests: {\r\n required: true,\r\n type: Array as PropType\r\n },\r\n userInterests: {\r\n required: true,\r\n type: Array as PropType\r\n }\r\n },\r\n setup(props, { emit }) {\r\n const route = useRoute();\r\n\r\n /** Checks if up to 5 interests have been selected. */\r\n const hasEnough: Ref = ref(false);\r\n\r\n const isTransitionFinished = ref(false);\r\n\r\n /** IDs of selected interests. */\r\n const selectedInterestsIDs: Ref = ref([]);\r\n\r\n onBeforeMount(() => {\r\n if (props.userInterests.length) {\r\n const userInterestIDs: number[] = props.userInterests.map(\r\n (userInterest: Interest) => userInterest.id\r\n );\r\n userInterestIDs.forEach((userInterestID: number) => {\r\n if (!selectedInterestsIDs.value.includes(userInterestID)) {\r\n selectedInterestsIDs.value.push(userInterestID);\r\n } else return;\r\n });\r\n }\r\n\r\n if (selectedInterestsIDs.value.length === 5) {\r\n hasEnough.value = true;\r\n }\r\n emit(\"update:userInterests\", selectedInterestsIDs.value);\r\n });\r\n\r\n /** Reset animations everytime I leave a step. */\r\n watch(\r\n () => route.params.step,\r\n () => {\r\n if (\r\n Number(route.params.step) === 4 ||\r\n Number(route.params.step) === 6\r\n ) {\r\n isTransitionFinished.value = false;\r\n }\r\n }\r\n );\r\n\r\n /** Function responsible for sending the IDs of the selected interests. */\r\n const selectInterest = (\r\n input: HTMLInputElement,\r\n interestID: number\r\n ): void => {\r\n if (input.checked) {\r\n selectedInterestsIDs.value.push(interestID);\r\n hasEnough.value = selectedInterestsIDs.value.length === 5;\r\n } else {\r\n const index = selectedInterestsIDs.value.indexOf(interestID);\r\n if (index !== -1) {\r\n selectedInterestsIDs.value.splice(index, 1);\r\n }\r\n hasEnough.value = selectedInterestsIDs.value.length === 5;\r\n }\r\n\r\n emit(\"update:userInterests\", selectedInterestsIDs.value);\r\n };\r\n\r\n const fluctuate = (): void => {\r\n if (!isTransitionFinished.value) {\r\n isTransitionFinished.value = true;\r\n }\r\n };\r\n\r\n return {\r\n isTransitionFinished,\r\n hasEnough,\r\n selectedInterestsIDs,\r\n selectInterest,\r\n fluctuate\r\n };\r\n }\r\n};\r\n","import { render } from \"./Layout3.vue?vue&type=template&id=fa919716&scoped=true&ts=true\"\nimport script from \"./Layout3.vue?vue&type=script&lang=ts\"\nexport * from \"./Layout3.vue?vue&type=script&lang=ts\"\n\nimport \"./Layout3.vue?vue&type=style&index=0&id=fa919716&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-fa919716\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createVNode as _createVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../../../assets/static/onboarding/astronaut.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4a281cfb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"layout\" }\nconst _hoisted_2 = [\"src\", \"alt\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_CropperImageInput = _resolveComponent(\"CropperImageInput\")!\n const _component_MessageBox = _resolveComponent(\"MessageBox\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n ($setup.isInputImageOpened)\n ? (_openBlock(), _createBlock(_component_CropperImageInput, {\n key: 0,\n \"image-url\": $setup.newUser.image,\n onCroppedImageUrl: _cache[0] || (_cache[0] = ($event: any) => ($setup.getCroppedImageUrl($event)))\n }, null, 8, [\"image-url\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_MessageBox, {\n class: _normalizeClass(['layout__message', { reverse: $props.animationIsReverse }]),\n message: $props.message\n }, null, 8, [\"class\", \"message\"]),\n _createElementVNode(\"div\", {\n class: _normalizeClass(['layout__div-absolute', { reverse: $props.animationIsReverse }])\n }, [\n _createElementVNode(\"button\", {\n class: \"container-pic\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => ($setup.openInputImage()))\n }, [\n _createElementVNode(\"img\", {\n id: \"profile_pic\",\n class: \"container-pic__image\",\n src: \r\n $setup.newUser.image\r\n ? $setup.newUser.image\r\n : '../../../../assets/static/onerror-user.png'\r\n ,\n alt: $setup.newUser.name,\n onError: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => ($setup.loadFallbackImage && $setup.loadFallbackImage(...args))),\n \"data-profile-image\": \"\"\n }, null, 40, _hoisted_2)\n ])\n ], 2),\n _createElementVNode(\"img\", {\n class: _normalizeClass([\r\n 'layout__astronaut',\r\n { 'fluctuate-facing-right': $setup.isTransitionFinished },\r\n { reverse: $props.animationIsReverse }\r\n ]),\n src: _imports_0,\n alt: \"Astronauta\",\n onAnimationend: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => ($setup.fluctuate && $setup.fluctuate(...args)))\n }, null, 34),\n _createElementVNode(\"div\", {\n class: _normalizeClass(['layout__banner', { reverse: $props.animationIsReverse }])\n }, \" Hora de decolar! \", 2)\n ]))\n}","\r\nimport MessageBox from \"../MessageBox.vue\";\r\nimport {ref} from \"@vue/runtime-core\";\r\nimport {useRoute} from \"vue-router\";\r\nimport {computed, ComputedRef, watch} from \"vue\";\r\nimport CropperImageInput from \"../../CropperImageInput.vue\";\r\nimport {useStore} from \"vuex\";\r\n\r\nexport default {\r\n components: { CropperImageInput, MessageBox },\r\n props: {\r\n message: {\r\n required: true,\r\n type: String\r\n },\r\n animationIsReverse: {\r\n required: false,\r\n type: Boolean\r\n },\r\n user: {\r\n required: true,\r\n type: Object\r\n }\r\n },\r\n setup({ user }, { emit }) {\r\n const route = useRoute();\r\n const store = useStore();\r\n const newUser = user;\r\n const isTransitionFinished = ref(false);\r\n const isInputImageOpened: ComputedRef = computed(\r\n () => store.getters[\"utils_module/isVisible\"]\r\n );\r\n\r\n /** Reset animations everytime I leave a step. */\r\n watch(\r\n () => route.params.step,\r\n () => {\r\n if (\r\n Number(route.params.step) === 5 ||\r\n Number(route.params.step) === 7\r\n ) {\r\n isTransitionFinished.value = false;\r\n }\r\n }\r\n );\r\n\r\n const fluctuate = (): void => {\r\n if (!isTransitionFinished.value) {\r\n isTransitionFinished.value = true;\r\n }\r\n };\r\n\r\n /** Loads a fallback image when an image rendering error occurs. */\r\n const loadFallbackImage = (event: Event) => {\r\n const img = event.target as HTMLImageElement;\r\n img.src = require(\"../../../../assets/static/onerror-user.png\");\r\n };\r\n\r\n const openInputImage = async (): Promise => {\r\n await store.dispatch(\"utils_module/setVisibility\", true);\r\n };\r\n\r\n const getCroppedImageUrl = (url: string) => {\r\n newUser.image = url;\r\n emit(\"update:user\", newUser);\r\n };\r\n return {\r\n isTransitionFinished,\r\n isInputImageOpened,\r\n newUser,\r\n fluctuate,\r\n loadFallbackImage,\r\n openInputImage,\r\n getCroppedImageUrl\r\n };\r\n }\r\n};\r\n","import { render } from \"./Layout4.vue?vue&type=template&id=4a281cfb&scoped=true&ts=true\"\nimport script from \"./Layout4.vue?vue&type=script&lang=ts\"\nexport * from \"./Layout4.vue?vue&type=script&lang=ts\"\n\nimport \"./Layout4.vue?vue&type=style&index=0&id=4a281cfb&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4a281cfb\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../../../assets/static/onboarding/astronaut.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7897f9de\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"layout\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"layout__banner\" }, \"Hora de decolar!\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MessageBox = _resolveComponent(\"MessageBox\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_MessageBox, {\n class: \"layout__message\",\n message: $props.message,\n top: \"9rem\",\n left: \"calc(30% + 1rem)\"\n }, null, 8, [\"message\"]),\n _hoisted_2,\n _createElementVNode(\"img\", {\n class: _normalizeClass([\r\n 'layout__astronaut',\r\n { 'fluctuate-facing-right': $setup.isTransitionFinished },\r\n { reverse: $props.animationIsReverse },\r\n ]),\n src: _imports_0,\n alt: \"Astronauta\",\n onAnimationend: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => ($setup.fluctuate && $setup.fluctuate(...args)))\n }, null, 34)\n ]))\n}","\r\nimport {ref, watch} from \"vue\";\r\nimport {useRoute} from \"vue-router\";\r\nimport MessageBox from \"../MessageBox.vue\";\r\n\r\nexport default {\r\n components: { MessageBox },\r\n props: {\r\n message: {\r\n required: true,\r\n type: String,\r\n },\r\n animationIsReverse: {\r\n required: false,\r\n type: Boolean,\r\n },\r\n },\r\n setup() {\r\n const route = useRoute();\r\n const isTransitionFinished = ref(false);\r\n\r\n /** Reset animations everytime I leave a step. */\r\n watch(\r\n () => route.params.step,\r\n () => {\r\n if (Number(route.params.step) === 6) {\r\n isTransitionFinished.value = false;\r\n }\r\n }\r\n );\r\n\r\n const fluctuate = (): void => {\r\n if (!isTransitionFinished.value) {\r\n isTransitionFinished.value = true;\r\n }\r\n };\r\n\r\n return {\r\n isTransitionFinished,\r\n fluctuate,\r\n };\r\n },\r\n};\r\n","import { render } from \"./Layout5.vue?vue&type=template&id=7897f9de&scoped=true&ts=true\"\nimport script from \"./Layout5.vue?vue&type=script&lang=ts\"\nexport * from \"./Layout5.vue?vue&type=script&lang=ts\"\n\nimport \"./Layout5.vue?vue&type=style&index=0&id=7897f9de&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7897f9de\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, createVNode as _createVNode, createElementVNode as _createElementVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../../../assets/static/onboarding/biggest-planet.svg'\nimport _imports_1 from '../../../../assets/static/onboarding/smallest-planet.svg'\nimport _imports_2 from '../../../../assets/static/onboarding/astronaut.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5ebc1e53\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"layout\" }\nconst _hoisted_2 = [\"value\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MessageBox = _resolveComponent(\"MessageBox\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_MessageBox, {\n class: _normalizeClass(['layout__message', { reverse: _ctx.animationIsReverse }]),\n message: _ctx.message,\n facingRight: true,\n left: \"20%\"\n }, null, 8, [\"class\", \"message\"]),\n _createElementVNode(\"img\", {\n class: _normalizeClass(['layout__biggest-planet', { reverse: _ctx.animationIsReverse }]),\n src: _imports_0,\n alt: \"Planeta grande\"\n }, null, 2),\n _createElementVNode(\"img\", {\n class: _normalizeClass(['layout__smallest-planet', { reverse: _ctx.animationIsReverse }]),\n src: _imports_1,\n alt: \"Planeta pequeno\"\n }, null, 2),\n _createElementVNode(\"img\", {\n class: _normalizeClass([\r\n 'layout__astronaut',\r\n { 'fluctuate-facing-left': _ctx.isTransitionFinished },\r\n { reverse: _ctx.animationIsReverse }\r\n ]),\n src: _imports_2,\n alt: \"Astronauta\",\n onAnimationend: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.fluctuate && _ctx.fluctuate(...args)))\n }, null, 34),\n _createElementVNode(\"form\", {\n onSubmit: _cache[2] || (_cache[2] = _withModifiers(() => {}, [\"prevent\"])),\n class: _normalizeClass(['layout__form', { reverse: _ctx.animationIsReverse }])\n }, [\n _createElementVNode(\"textarea\", {\n value: _ctx.user.biography,\n onInput: _cache[1] || (_cache[1] = ($event: any) => (_ctx.updateUser($event.target))),\n tabindex: \"2\",\n class: \"layout__input\",\n rows: \"4\",\n cols: \"4\",\n placeholder: \"Digite aqui\"\n }, null, 40, _hoisted_2)\n ], 34)\n ]))\n}","\r\nimport MessageBox from \"../MessageBox.vue\";\r\nimport { User } from \"../../../../../../domain/entities/entities\";\r\nimport { defineComponent, PropType, Ref, ref } from \"vue\";\r\nexport default defineComponent({\r\n components: { MessageBox },\r\n name: \"Layout6\",\r\n props: {\r\n message: {\r\n required: true,\r\n type: String\r\n },\r\n animationIsReverse: {\r\n required: false,\r\n type: Boolean\r\n },\r\n user: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n setup({ user }, { emit }) {\r\n const isTransitionFinished = ref(false);\r\n\r\n const newUser: Ref = ref(new User());\r\n\r\n const updateUser = (inputElement: HTMLInputElement) => {\r\n newUser.value = user;\r\n newUser.value.biography = inputElement.value;\r\n emit(\"update:user\", newUser.value);\r\n };\r\n\r\n const fluctuate = (): void => {\r\n if (!isTransitionFinished.value) {\r\n isTransitionFinished.value = true;\r\n }\r\n };\r\n\r\n return {\r\n isTransitionFinished,\r\n updateUser,\r\n fluctuate\r\n };\r\n }\r\n});\r\n","import { render } from \"./Layout6.vue?vue&type=template&id=5ebc1e53&scoped=true&ts=true\"\nimport script from \"./Layout6.vue?vue&type=script&lang=ts\"\nexport * from \"./Layout6.vue?vue&type=script&lang=ts\"\n\nimport \"./Layout6.vue?vue&type=style&index=0&id=5ebc1e53&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5ebc1e53\"]])\n\nexport default __exports__","\r\nimport { ComputedRef, onBeforeMount, PropType, Ref, ref, watch } from \"vue\";\r\nimport { Interest, User } from \"../../../../../domain/entities/entities\";\r\nimport router from \"../../../../../src/routes\";\r\nimport Layout1 from \"./steps/Layout1.vue\";\r\nimport Layout2 from \"./steps/Layout2.vue\";\r\nimport Layout3 from \"./steps/Layout3.vue\";\r\nimport Layout4 from \"./steps/Layout4.vue\";\r\nimport Layout5 from \"./steps/Layout5.vue\";\r\nimport \"./steps/steps.css\";\r\nimport { dispatchErrorBox } from \"../../mixins\";\r\nimport { RepositoryException } from \"../../../../../domain/exceptions/exceptions\";\r\nimport { useStore } from \"vuex\";\r\nimport { computed } from \"@vue/reactivity\";\r\nimport Layout6 from \"./steps/Layout6.vue\";\r\n\r\nexport default {\r\n name: \"Steps\",\r\n components: { Layout6, Layout1, Layout2, Layout5, Layout4, Layout3 },\r\n\r\n props: {\r\n user: {\r\n type: Object,\r\n required: true\r\n },\r\n\r\n messages: {\r\n required: true,\r\n type: Array\r\n },\r\n\r\n interests: {\r\n required: true,\r\n type: Array as PropType\r\n },\r\n\r\n currentStep: {\r\n required: true,\r\n type: Number\r\n }\r\n },\r\n\r\n setup({ currentStep, user }, { emit }) {\r\n const store = useStore();\r\n const unifiedUser: Ref = ref(user);\r\n const animationIsReverse = ref(false);\r\n let reDoOnBoarding = false;\r\n let lastStep = currentStep;\r\n\r\n const userInterest: ComputedRef = computed(\r\n () => store.getters[\"interest_module/interests\"]\r\n );\r\n\r\n onBeforeMount(async () => {\r\n reDoOnBoarding = await store.getters[\"userProfile_module/redoOnBoarding\"];\r\n if (reDoOnBoarding) {\r\n await loadUser();\r\n await listUserInterest();\r\n }\r\n });\r\n\r\n const updateUser = event => {\r\n unifiedUser.value = { ...unifiedUser.value, ...event };\r\n emit(\"update:user\", unifiedUser.value);\r\n };\r\n\r\n watch(\r\n () => router.currentRoute.value.params.step,\r\n () => {\r\n const newStep = Number(router.currentRoute.value.params.step);\r\n animationIsReverse.value = lastStep > newStep;\r\n lastStep = newStep;\r\n }\r\n );\r\n\r\n async function loadUser() {\r\n try {\r\n await store.dispatch(\"userProfile_module/loadUser\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n async function listUserInterest(): Promise {\r\n try {\r\n await store.dispatch(\"interest_module/listUserInterest\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n return {\r\n animationIsReverse,\r\n unifiedUser,\r\n userInterest,\r\n updateUser\r\n };\r\n }\r\n};\r\n","import { render } from \"./Steps.vue?vue&type=template&id=3ea931ce&ts=true\"\nimport script from \"./Steps.vue?vue&type=script&lang=ts\"\nexport * from \"./Steps.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-60ac5705\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"card__release_course\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"event__certificate\"\n}\nconst _hoisted_3 = { class: \"event__image\" }\nconst _hoisted_4 = { class: \"class__type\" }\nconst _hoisted_5 = { class: \"event__content\" }\nconst _hoisted_6 = { class: \"event__name\" }\nconst _hoisted_7 = { class: \"class__information__bottom\" }\nconst _hoisted_8 = { class: \"class__info\" }\nconst _hoisted_9 = { class: \"class__info\" }\nconst _hoisted_10 = { class: \"class__info\" }\nconst _hoisted_11 = { class: \"class__info\" }\nconst _hoisted_12 = { class: \"class__info\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_NewContentEventFlag = _resolveComponent(\"NewContentEventFlag\")!\n const _component_VideoPlayButton = _resolveComponent(\"VideoPlayButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"event\",\n onMousedown: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.pressing && _ctx.pressing(...args))),\n onMousemove: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.moving && _ctx.moving(...args))),\n onTouchend: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.releasing && _ctx.releasing(...args))),\n onTouchmove: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.moving && _ctx.moving(...args))),\n onTouchstart: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.pressing && _ctx.pressing(...args))),\n onClick: _cache[6] || (_cache[6] = \n//@ts-ignore\n(...args) => (_ctx.releasing && _ctx.releasing(...args))),\n \"data-card-event\": \"\"\n }, [\n (_ctx.isNewCourse())\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1))\n : _createCommentVNode(\"\", true),\n (_ctx.event.hasCertificate)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.event.type === 1 ? \"Evento\" : \"Treinamento\"), 1),\n (_ctx.event.hasNewContent)\n ? (_openBlock(), _createBlock(_component_NewContentEventFlag, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_ctx.event.introductoryContent)\n ? (_openBlock(), _createBlock(_component_VideoPlayButton, {\n key: 1,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.openIntroductoryContent())),\n class: \"video-play-button\"\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"h3\", _hoisted_6, _toDisplayString(_ctx.event.name), 1),\n _createElementVNode(\"address\", _hoisted_7, [\n _createElementVNode(\"span\", _hoisted_8, \"Local: \" + _toDisplayString(_ctx.event.type === 1 ? _ctx.event.classes[0].location : _ctx.event.location), 1),\n (_ctx.event.type === 2)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createElementVNode(\"span\", _hoisted_9, \" Data: \" + _toDisplayString(_ctx.formatMenusDates(_ctx.event.menus)), 1),\n _createElementVNode(\"span\", _hoisted_10, \" Horário: \" + _toDisplayString(_ctx.formatMenusSchedule(_ctx.event.menus)), 1)\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createElementVNode(\"span\", _hoisted_11, \" Data: \" + _toDisplayString(_ctx.formattedDate(_ctx.event.classes[0].scheduleStartDateTime)), 1),\n _createElementVNode(\"span\", _hoisted_12, \" Horário: \" + _toDisplayString(_ctx.formatOneTime(_ctx.event.classes[0].scheduleStartDateTime)) + \" até \" + _toDisplayString(_ctx.formatOneTime(_ctx.event.classes[0].scheduleEndDateTime)), 1)\n ], 64))\n ])\n ])\n ], 32))\n}","\r\nimport router from \"@/routes\";\r\nimport { defineComponent, PropType, Ref, ref } from \"vue\";\r\nimport { EventCourse } from \"../../../../domain/entities/courseEvent/courseEvent\";\r\nimport {\r\n formatMenusDates,\r\n formatMenusSchedule,\r\n formatOneTime,\r\n formattedDate\r\n} from \"../mixins\";\r\nimport NewContentEventFlag from \"./flags/NewContentEventFlag.vue\";\r\nimport VideoPlayButton from \"./buttons/VideoPlay.vue\";\r\nimport { useCarouselMouseEvents } from \"../composables/carousel_mouse_events\";\r\n\r\nconst __default__ = defineComponent({\r\n methods: {\r\n formatOneTime,\r\n formattedDate,\r\n formatMenusDates,\r\n formatMenusSchedule\r\n },\r\n components: { VideoPlayButton, NewContentEventFlag },\r\n props: {\r\n event: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n\r\n setup(props, { emit }) {\r\n /** Used to know if the user pressed the event card. */\r\n let pressed = false;\r\n\r\n /** Used to know if the user moved the event card. */\r\n let moved = false;\r\n\r\n /** Used to know if the user pressed the event card. */\r\n let released = false;\r\n\r\n /** Event's image to the background.\r\n * @see EventCourse.image. */\r\n const image: Ref = ref(`url(${props.event.image})`);\r\n\r\n const { isAllowedToClick: isAllowedToOpenIntro } = useCarouselMouseEvents(\r\n \"video-play-button\"\r\n );\r\n const { isAllowedToClick: isAllowedToGoToCourse } = useCarouselMouseEvents(\r\n \"event\"\r\n );\r\n\r\n /** Controls if user is pressing the event card. */\r\n function pressing(): void {\r\n pressed = true;\r\n }\r\n\r\n /** Controls if user is moving the event card. */\r\n function moving(): void {\r\n if (!pressed) return;\r\n moved = true;\r\n }\r\n\r\n /** Controls if the event will open or not. */\r\n function releasing(): void {\r\n released = true;\r\n if (released && !moved) {\r\n openEvent();\r\n }\r\n pressed = false;\r\n moved = false;\r\n released = false;\r\n }\r\n\r\n /** Redirects the user the clicked event passing the event ID through the route params. */\r\n function openEvent(): void {\r\n if (!hasLowLevelActions && isAllowedToGoToCourse.value) {\r\n if (props.event.type === 1) {\r\n router.push({\r\n name: \"event\",\r\n params: {\r\n event_id: props.event.id,\r\n class_id: props.event.classID\r\n }\r\n });\r\n } else {\r\n router.push({\r\n name: \"training-course\",\r\n params: {\r\n trainingCourseID: props.event.id\r\n }\r\n });\r\n }\r\n }\r\n hasLowLevelActions = false;\r\n }\r\n\r\n /** Return the date formatted to locale date*/\r\n const toLocaleDate = (date: string) => {\r\n const options = {\r\n month: \"numeric\",\r\n year: \"numeric\",\r\n day: \"numeric\"\r\n };\r\n return new Date(date).toLocaleString(\"pt-br\", options);\r\n };\r\n\r\n /** Return the time formatted to locale date/time*/\r\n const toLocaleTime = (date: string) => {\r\n const options = {\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n };\r\n return new Date(date).toLocaleString(\"pt-br\", options);\r\n };\r\n\r\n function isNewCourse(): boolean {\r\n const today = new Date().toISOString().slice(0, 10);\r\n\r\n if (props.event.releaseStartDate && props.event.releaseEndDate) {\r\n return (\r\n today >= props.event.releaseStartDate &&\r\n today <= props.event.releaseEndDate\r\n );\r\n }\r\n return (\r\n today >= props.event.releaseStartDate ||\r\n today <= props.event.releaseEndDate\r\n );\r\n }\r\n\r\n /** Boolean used to tell when a click event has been fired\r\n * from below the `div.card` in the DOM tree. */\r\n let hasLowLevelActions = false;\r\n\r\n const openIntroductoryContent = (): void => {\r\n if (isAllowedToOpenIntro.value) {\r\n emit(\"openIntroductoryContent\");\r\n hasLowLevelActions = true;\r\n }\r\n };\r\n\r\n return {\r\n image,\r\n isNewCourse,\r\n moving,\r\n pressing,\r\n releasing,\r\n toLocaleDate,\r\n toLocaleTime,\r\n openIntroductoryContent\r\n };\r\n }\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"4cd62c82\": (_ctx.image)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./Event.vue?vue&type=template&id=60ac5705&scoped=true&ts=true\"\nimport script from \"./Event.vue?vue&type=script&lang=ts\"\nexport * from \"./Event.vue?vue&type=script&lang=ts\"\n\nimport \"./Event.vue?vue&type=style&index=0&id=60ac5705&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-60ac5705\"]])\n\nexport default __exports__","import { vShow as _vShow, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"select__view\" }\nconst _hoisted_2 = { class: \"select__empty\" }\nconst _hoisted_3 = [\"for\"]\nconst _hoisted_4 = [\"onChange\", \"checked\", \"disabled\", \"id\"]\nconst _hoisted_5 = { class: \"select-title\" }\nconst _hoisted_6 = [\"checked\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _withDirectives(_createElementVNode(\"span\", {\n class: \"select-box-trigger-area\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.toggleSelect && _ctx.toggleSelect(...args)))\n }, null, 512), [\n [_vShow, _ctx.isSelectOpened]\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass(['select', _ctx.isSelectOpened ? 'opened' : 'closed', { disabled: _ctx.disabled }]),\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.toggleSelect && _ctx.toggleSelect(...args)))\n }, [\n _createElementVNode(\"ul\", _hoisted_1, [\n _createElementVNode(\"li\", _hoisted_2, \"Selecione \" + _toDisplayString(_ctx.label), 1)\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(() => {}, [\"stop\"])),\n class: _normalizeClass(['select__options', _ctx.isSelectOpened ? 'opened' : 'closed'])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.options, (option, index) => {\n return (_openBlock(), _createElementBlock(\"label\", {\n class: \"option__label\",\n key: index,\n for: _ctx.optionID(option.id)\n }, [\n _createElementVNode(\"input\", {\n onChange: ($event: any) => (_ctx.updateModelValue(option, $event.target)),\n checked: _ctx.modelValue.map((value) => value.id).includes(option.id),\n disabled: _ctx.disabled,\n id: _ctx.optionID(option.id),\n class: \"option__input\",\n type: \"checkbox\"\n }, null, 40, _hoisted_4),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(option[_ctx.optionLabelAttribute]), 1)\n ], 8, _hoisted_3))\n }), 128))\n ], 2),\n (_ctx.required)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n tabindex: \"-1\",\n class: \"select__input-hidden\",\n type: \"checkbox\",\n checked: _ctx.modelValue.length\n }, null, 8, _hoisted_6))\n : _createCommentVNode(\"\", true)\n ], 2)\n ], 64))\n}","\r\nimport {defineComponent, watch} from \"vue\";\r\nimport {ref} from \"@vue/reactivity\";\r\n\r\nconst __default__ = defineComponent({\r\n name: \"select-box\",\r\n props: {\r\n entityName: {\r\n type: String,\r\n required: true,\r\n },\r\n\r\n optionLabelAttribute: {\r\n required: true,\r\n type: String,\r\n },\r\n\r\n modelValue: {\r\n required: true,\r\n type: Array,\r\n default: () => [],\r\n },\r\n\r\n options: {\r\n required: true,\r\n type: Array,\r\n default: () => [],\r\n },\r\n\r\n width: {\r\n required: false,\r\n type: String,\r\n default: () => \"100%\",\r\n },\r\n\r\n disabled: {\r\n required: false,\r\n type: Boolean,\r\n },\r\n\r\n label: {\r\n required: true,\r\n type: String,\r\n },\r\n\r\n required: {\r\n required: false,\r\n type: Boolean,\r\n },\r\n },\r\n\r\n setup(props, { emit }) {\r\n const isSelectOpened = ref(false);\r\n const allInputsAreChecked = ref(false);\r\n\r\n const optionID = (id: number): string => {\r\n return props.entityName + \"-\" + id;\r\n };\r\n\r\n const toggleSelect = () => {\r\n if (props.disabled) {\r\n return;\r\n }\r\n\r\n isSelectOpened.value = !isSelectOpened.value;\r\n };\r\n\r\n const updateModelValueFullArray = (allInputsAreChecked): void => {\r\n const array = allInputsAreChecked ? [...props.options] : [];\r\n emit(\"update:modelValue\", array);\r\n };\r\n\r\n const updateModelValue = (option, input: HTMLInputElement): void => {\r\n const selectedOptions = [...props.modelValue] as Array;\r\n\r\n if (input.checked) {\r\n selectedOptions.push(option);\r\n } else {\r\n const selectedIDs = selectedOptions.map((option) => option.id);\r\n const index = selectedIDs.indexOf(option.id);\r\n if (index !== -1) {\r\n selectedOptions.splice(index, 1);\r\n }\r\n }\r\n\r\n emit(\"update:modelValue\", selectedOptions);\r\n };\r\n\r\n watch(\r\n () => props.modelValue,\r\n () => {\r\n allInputsAreChecked.value = !!(\r\n props.modelValue.length === props.options.length &&\r\n props.options.length\r\n );\r\n }\r\n );\r\n\r\n return {\r\n allInputsAreChecked,\r\n isSelectOpened,\r\n optionID,\r\n toggleSelect,\r\n updateModelValue,\r\n updateModelValueFullArray,\r\n };\r\n },\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"6e69baf8\": (_ctx.width)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./SelectBox.vue?vue&type=template&id=696e9542&ts=true\"\nimport script from \"./SelectBox.vue?vue&type=script&lang=ts\"\nexport * from \"./SelectBox.vue?vue&type=script&lang=ts\"\n\nimport \"./SelectBox.vue?vue&type=style&index=0&id=696e9542&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, withModifiers as _withModifiers, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1cc6665f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"course-card\" }\nconst _hoisted_2 = { class: \"course-card__information\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"course-card__img\" }, null, -1))\nconst _hoisted_4 = { class: \"course-card__title\" }\nconst _hoisted_5 = { class: \"course-card__fade fadeInUp\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ProgressBar = _resolveComponent(\"ProgressBar\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.course.title), 1),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.goToCourse())),\n onMousemove: _cache[1] || (_cache[1] = _withModifiers(() => {}, [\"stop\"]))\n }, \"Continuar\", 32)\n ])\n ]),\n _createVNode(_component_ProgressBar, {\n \"filled-percentage\": _ctx.course.courseProgress\n }, null, 8, [\"filled-percentage\"])\n ]))\n}","\r\nimport {computed, ComputedRef, defineComponent, PropType} from \"vue\";\r\nimport {Course} from \"../../../../domain/entities/entities\";\r\nimport ModalIntroductoryContent from \"./ModalIntroductoryContent.vue\";\r\nimport VideoPlayButton from \"./buttons/VideoPlay.vue\";\r\nimport ButtonComment from \"./DashboardComments/ButtonComment.vue\";\r\nimport ProgressBar from \"./ProgressBar.vue\";\r\nimport {useRouter} from \"vue-router\";\r\nimport {useCarouselMouseEvents} from \"../composables/carousel_mouse_events\";\r\nimport {Content} from \"../../views/content/helpers\";\r\nimport {useStore} from \"vuex\";\r\nimport {dispatchErrorBox} from \"../mixins\";\r\nimport {ContentProviderType} from \"../../../../domain/entities/content-provider/content-provider\";\r\n\r\n;\r\n\r\nconst __default__ = defineComponent({\r\n components: {\r\n ProgressBar,\r\n ButtonComment,\r\n ModalIntroductoryContent,\r\n VideoPlayButton\r\n },\r\n props: {\r\n course: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const router = useRouter();\r\n const store = useStore();\r\n\r\n const backgroundImage: ComputedRef = computed(() => {\r\n return `url(${props.course.imageURL})`;\r\n });\r\n /** Boolean used to tell when a click event has been fired\r\n * from below the `div.card` in the DOM tree. */\r\n let hasLowLevelActions = false;\r\n\r\n const { isAllowedToClick: isAllowedToGoToCourse } = useCarouselMouseEvents(\r\n \"course-card\"\r\n );\r\n const contents: ComputedRef = computed(\r\n (): Content[] => store.getters[\"content_module/contents\"]\r\n );\r\n\r\n const loadContents = async (): Promise => {\r\n try {\r\n await store.dispatch(\"content_module/loadContentProvider\", {type: ContentProviderType.COURSE, ids: {providerID: props.course.id}})\r\n await store.dispatch(\"content_module/loadAllContents\");\r\n } catch (e) {\r\n console.error(e);\r\n await dispatchErrorBox(e);\r\n }\r\n };\r\n\r\n /** Redirects the user to the first content_provider that is not finished */\r\n async function redirectToContent(): Promise {\r\n await loadContents();\r\n const notFinishedContents = contents.value.filter(\r\n content => content.status.progress !== 100 && !content.isBlocked && content.isReleased\r\n );\r\n const currentContent: Content = notFinishedContents.length\r\n ? notFinishedContents[0]\r\n : contents.value[0];\r\n\r\n await router.push({\r\n name: \"course_content\",\r\n params: { course_id: props.course.id, content_id: currentContent.id }\r\n });\r\n }\r\n\r\n const goToCourse = async (): Promise => {\r\n if (isAllowedToGoToCourse.value && !hasLowLevelActions) {\r\n await redirectToContent();\r\n }\r\n hasLowLevelActions = false;\r\n };\r\n\r\n return {\r\n backgroundImage,\r\n goToCourse\r\n };\r\n }\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"39372841\": (_ctx.backgroundImage)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./OngoingCourse.vue?vue&type=template&id=1cc6665f&scoped=true&ts=true\"\nimport script from \"./OngoingCourse.vue?vue&type=script&lang=ts\"\nexport * from \"./OngoingCourse.vue?vue&type=script&lang=ts\"\n\nimport \"./OngoingCourse.vue?vue&type=style&index=0&id=1cc6665f&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1cc6665f\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1e39beb0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"new-image\" }, null, -1))\nconst _hoisted_2 = { class: \"new-content\" }\nconst _hoisted_3 = { class: \"new-title\" }\nconst _hoisted_4 = { class: \"new-description\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"new\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.goToCourse()))\n }, [\n _hoisted_1,\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.course.title), 1),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.course.description), 1)\n ])\n ]))\n}","\r\nimport { computed, ComputedRef, defineComponent, PropType } from \"vue\";\r\nimport { Course } from \"../../../../domain/entities/entities\";\r\nimport {useRouter} from \"vue-router\";\r\n\r\nconst __default__ = defineComponent({\r\n name: \"NewCourse\",\r\n props: {\r\n course: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const router = useRouter();\r\n\r\n const backgroundImage: ComputedRef = computed(() => {\r\n return `url(${props.course.imageURL})`;\r\n });\r\n\r\n const goToCourse = async () => {\r\n await router.push({ name: 'course', params: { course_id: props.course.id } })\r\n }\r\n\r\n return {\r\n backgroundImage,\r\n goToCourse,\r\n };\r\n }\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"acbabb28\": (_ctx.backgroundImage)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./NewCourse.vue?vue&type=template&id=1e39beb0&scoped=true&ts=true\"\nimport script from \"./NewCourse.vue?vue&type=script&lang=ts\"\nexport * from \"./NewCourse.vue?vue&type=script&lang=ts\"\n\nimport \"./NewCourse.vue?vue&type=style&index=0&id=1e39beb0&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1e39beb0\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-24a5810b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"pill-container\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"pill__content\"\n}\nconst _hoisted_3 = { class: \"pill__title\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"pill__description\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass(['pill', { 'not-watched': !_ctx.watched }]),\n style: _normalizeStyle(`background-image: url(${_ctx.background}) !important;`),\n onMousedown: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.pressing && _ctx.pressing(...args))),\n onMousemove: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.moving && _ctx.moving(...args))),\n onMouseup: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.releasing && _ctx.releasing(...args))),\n onTouchstart: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.pressing && _ctx.pressing(...args))),\n onTouchmove: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.moving && _ctx.moving(...args))),\n onTouchend: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.releasing && _ctx.releasing(...args)))\n }, [\n false\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"h2\", _hoisted_3, _toDisplayString(_ctx.title), 1),\n false\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_4, _toDisplayString(_ctx.description), 1))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ], 38)\n ]))\n}","\r\nimport {defineComponent} from \"vue\";\r\n\r\nexport default defineComponent({\r\n emits: [\"click\"],\r\n\r\n props: {\r\n title: {\r\n type: String\r\n },\r\n\r\n description: {\r\n type: String\r\n },\r\n\r\n background: {\r\n required: true,\r\n type: String\r\n },\r\n\r\n watched: {\r\n type: Boolean\r\n }\r\n },\r\n\r\n setup(_props, { emit }) {\r\n let pressed = false;\r\n let moved = false;\r\n let released = false;\r\n\r\n /** note: is it really necessary to pass the events as params? */\r\n\r\n const pressing = () => {\r\n pressed = true;\r\n };\r\n\r\n const moving = () => {\r\n if (!pressed) {\r\n return;\r\n }\r\n moved = true;\r\n };\r\n\r\n const releasing = e => {\r\n released = true;\r\n const context = e.button == 2;\r\n\r\n if (released && !moved && !context) {\r\n emit(\"click\", e);\r\n }\r\n\r\n pressed = false;\r\n moved = false;\r\n released = false;\r\n };\r\n\r\n return {\r\n moving,\r\n pressing,\r\n releasing\r\n };\r\n }\r\n});\r\n","import { render } from \"./Pill.vue?vue&type=template&id=24a5810b&scoped=true&ts=true\"\nimport script from \"./Pill.vue?vue&type=script&lang=ts\"\nexport * from \"./Pill.vue?vue&type=script&lang=ts\"\n\nimport \"./Pill.vue?vue&type=style&index=0&id=24a5810b&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-24a5810b\"]])\n\nexport default __exports__","\r\n\r\n\r\n","import { render } from \"./PillLoader.vue?vue&type=template&id=0cbff207&scoped=true\"\nconst script = {}\n\nimport \"./PillLoader.vue?vue&type=style&index=0&id=0cbff207&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0cbff207\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ba8029f4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"icon-button\" }, null, -1))\nconst _hoisted_2 = [\n _hoisted_1\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"button\", {\n class: \"info-icon\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.toggleInfo && _ctx.toggleInfo(...args)))\n }, _hoisted_2))\n}","\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"InfoIcon\",\r\n emits: [\"toggle-info\"],\r\n setup(_, { emit }) {\r\n const toggleInfo = () => {\r\n emit(\"toggle-info\");\r\n };\r\n\r\n return {\r\n toggleInfo,\r\n };\r\n },\r\n});\r\n","import { render } from \"./InfoIcon.vue?vue&type=template&id=ba8029f4&scoped=true&ts=true\"\nimport script from \"./InfoIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./InfoIcon.vue?vue&type=script&lang=ts\"\n\nimport \"./InfoIcon.vue?vue&type=style&index=0&id=ba8029f4&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ba8029f4\"]])\n\nexport default __exports__","import { vShow as _vShow, withModifiers as _withModifiers, createElementVNode as _createElementVNode, withDirectives as _withDirectives, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, vModelText as _vModelText, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2b675b1d\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"info-panel\" }\nconst _hoisted_2 = { class: \"header_panel\" }\nconst _hoisted_3 = { class: \"header_faq\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Perguntas frequentes\", -1))\nconst _hoisted_5 = {\n key: 0,\n class: \"no-results-message\"\n}\nconst _hoisted_6 = [\"onClick\", \"aria-expanded\"]\nconst _hoisted_7 = [\"onClick\"]\nconst _hoisted_8 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_TUIViewer = _resolveComponent(\"TUIViewer\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_Transition, { name: \"backdrop\" }, {\n default: _withCtx(() => [\n _withDirectives(_createElementVNode(\"div\", {\n class: \"backdrop\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.toggleInfo && _ctx.toggleInfo(...args)), [\"stop\"]))\n }, null, 512), [\n [_vShow, _ctx.isVisible]\n ])\n ]),\n _: 1\n }),\n _createVNode(_Transition, { name: \"slide-right\" }, {\n default: _withCtx(() => [\n _withDirectives(_createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createElementVNode(\"button\", {\n class: \"close-button\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.toggleInfo && _ctx.toggleInfo(...args)), [\"stop\"])),\n \"aria-label\": \"Fechar painel\"\n })\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n class: \"input_panel\",\n id: \"title\",\n title: \"Título\",\n placeholder: \"Qual sua dúvida?\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.searchQuery) = $event)),\n required: \"\"\n }, null, 512), [\n [_vModelText, _ctx.searchQuery]\n ])\n ]),\n (_ctx.filteredInformations.length === 0)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_5, \" Nenhuma dúvida encontrada. \"))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.filteredInformations, (item, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: _normalizeClass(['info-box', { 'info-box--active': _ctx.openItems[index] }])\n }, [\n _createElementVNode(\"button\", {\n class: \"header_dropdown\",\n onClick: ($event: any) => (_ctx.toggleItem(index)),\n \"aria-expanded\": _ctx.openItems[index].toString()\n }, [\n _createElementVNode(\"p\", null, _toDisplayString(item.question), 1),\n _createElementVNode(\"span\", {\n class: _normalizeClass([\r\n 'icon__arrow',\r\n { 'icon__arrow--active': _ctx.openItems[index] }\r\n ]),\n onClick: _withModifiers(($event: any) => (_ctx.toggleItem(index)), [\"stop\"])\n }, null, 10, _hoisted_7)\n ], 8, _hoisted_6),\n _createVNode(_Transition, { name: \"slide-fade\" }, {\n default: _withCtx(() => [\n _withDirectives(_createElementVNode(\"div\", {\n class: \"content\",\n onClick: ($event: any) => (_ctx.toggleItem(index))\n }, [\n _createVNode(_component_TUIViewer, {\n modelValue: item.response\n }, null, 8, [\"modelValue\"])\n ], 8, _hoisted_8), [\n [_vShow, _ctx.openItems[index]]\n ])\n ]),\n _: 2\n }, 1024)\n ], 2))\n }), 128))\n ], 512), [\n [_vShow, _ctx.isVisible]\n ])\n ]),\n _: 1\n })\n ]))\n}","\r\nimport {\r\n defineComponent,\r\n toRefs,\r\n computed,\r\n ref,\r\n watch,\r\n ComputedRef,\r\n onBeforeMount\r\n} from \"vue\";\r\nimport TextInput from \"../../components/application/inputs/TextInput.vue\";\r\nimport TUIViewer from \"../../components/application/TUIViewer.vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { Information } from \"../../../../domain/entities/information\";\r\nimport { dispatchErrorBox } from \"../../components/mixins\";\r\n\r\nexport default defineComponent({\r\n name: \"InfoPanel\",\r\n components: { TextInput, TUIViewer },\r\n props: {\r\n isVisible: { type: Boolean, default: false },\r\n fetchInformations: { type: Function, required: true }\r\n },\r\n setup(props, { emit }) {\r\n const { isVisible, fetchInformations } = toRefs(props);\r\n const store = useStore();\r\n const openItems = ref([]);\r\n const searchQuery = ref(\"\");\r\n\r\n const informations: ComputedRef = computed(\r\n () => store.getters[\"information_module/informations\"] || []\r\n );\r\n\r\n const filteredInformations = computed(() => {\r\n if (!searchQuery.value) return informations.value;\r\n return informations.value.filter(item =>\r\n item.question.toLowerCase().includes(searchQuery.value.toLowerCase())\r\n );\r\n });\r\n\r\n const toggleInfo = () => {\r\n emit(\"toggle-info\");\r\n };\r\n\r\n watch(\r\n () => informations.value,\r\n newVal => {\r\n const savedState = localStorage.getItem(\"openItemsState\");\r\n if (savedState) {\r\n openItems.value = JSON.parse(savedState);\r\n } else {\r\n openItems.value = newVal ? newVal.map((_, index) => index === 0) : [];\r\n }\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const toggleItem = (index: number) => {\r\n openItems.value[index] = !openItems.value[index];\r\n };\r\n\r\n watch(\r\n () => isVisible.value,\r\n async newVal => {\r\n if (newVal) {\r\n await fetchInformations.value();\r\n }\r\n }\r\n );\r\n\r\n onBeforeMount(async () => {\r\n await fetchInformations.value();\r\n });\r\n\r\n return {\r\n isVisible,\r\n informations,\r\n filteredInformations,\r\n openItems,\r\n toggleInfo,\r\n toggleItem,\r\n searchQuery\r\n };\r\n }\r\n});\r\n","import { render } from \"./InfoPanel.vue?vue&type=template&id=2b675b1d&scoped=true&ts=true\"\nimport script from \"./InfoPanel.vue?vue&type=script&lang=ts\"\nexport * from \"./InfoPanel.vue?vue&type=script&lang=ts\"\n\nimport \"./InfoPanel.vue?vue&type=style&index=0&id=2b675b1d&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2b675b1d\"]])\n\nexport default __exports__","\r\nimport { computed, ComputedRef, ref } from \"@vue/runtime-core\";\r\nimport { Carousel, Navigation, Slide } from \"vue3-carousel\";\r\nimport \"vue3-carousel/dist/carousel.css\";\r\nimport PillModal from \"../components/Stories/Stories.vue\";\r\nimport school from \"../components/application/School.vue\";\r\nimport course from \"../components/application/Course.vue\";\r\nimport RecommendedCourses from \"../components/application/Course.vue\";\r\nimport {\r\n ContentComment,\r\n Course,\r\n CourseTrack,\r\n FilterCourse,\r\n Interest,\r\n School,\r\n User,\r\n} from \"../../../domain/entities/entities\";\r\nimport { Pill } from \"../../../domain/entities/pill\";\r\nimport { onBeforeMount, onMounted, Ref, watch } from \"vue\";\r\nimport OnboardingModal from \"../components/application/onboarding/OnboardingBox.vue\";\r\nimport router from \"../../../src/routes\";\r\nimport Steps from \"../components/application/onboarding/Steps.vue\";\r\nimport {\r\n cloneObject,\r\n dispatchErrorBox,\r\n isDecolaTemplate,\r\n scrollToTop,\r\n toLocaleDateTime,\r\n} from \"../components/mixins\";\r\nimport { RepositoryException } from \"../../../domain/exceptions/exceptions\";\r\nimport Event from \"../components/application/Event.vue\";\r\nimport Card from \"../components/application/filters/Card.vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { EventCourse } from \"../../../domain/entities/courseEvent/courseEvent\";\r\nimport PaginationDefault from \"../components/application/shop/PaginationDefault.vue\";\r\nimport SelectBox from \"../components/application/inputs/SelectBox.vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport {\r\n removeQuery,\r\n updateQueries,\r\n updateQuery,\r\n} from \"../../repository/utils/routing_utils\";\r\nimport IntroductoryContentModal from \"../components/application/ModalIntroductoryContent.vue\";\r\nimport CommentModal from \"../components/application/DashboardComments/CommentsModal.vue\";\r\nimport Comment from \"../components/application/DashboardComments/Comment.vue\";\r\nimport ContentFallback from \"../components/application/moldure/ContentFallback.vue\";\r\nimport ProgressBar from \"../components/application/ProgressBar.vue\";\r\nimport OngoingCourse from \"../components/application/OngoingCourse.vue\";\r\nimport NewCourse from \"../components/application/NewCourse.vue\";\r\nimport { dispatchError } from \"../utils/error_handling\";\r\nimport { wrapLoading } from \"../utils/wrap_loading\";\r\nimport VueMultiselect from \"vue-multiselect\";\r\nimport \"vue-multiselect/dist/vue-multiselect.css\";\r\nimport PillComponent from \"../components/Stories/Pill.vue\";\r\nimport PillLoader from \"../components/Stories/PillLoader.vue\";\r\nimport { Content } from \"./content/helpers\";\r\nimport { getOrderFromURL } from \"../utils/order_utils\";\r\nimport { Order } from \"../../../domain/entities/order\";\r\nimport { removeQueries } from \"../utils/routing_utils\";\r\nimport InfoIcon from \"./information/InfoIcon.vue\";\r\nimport InfoPanel from \"./information/InfoPanel.vue\";\r\n\r\nexport default {\r\n components: {\r\n PillLoader,\r\n NewCourse,\r\n OngoingCourse,\r\n ProgressBar,\r\n ContentFallback,\r\n Comment,\r\n CommentModal,\r\n Event,\r\n Steps,\r\n OnboardingModal,\r\n Carousel,\r\n Slide,\r\n PillComponent,\r\n PillModal,\r\n RecommendedCourses,\r\n school,\r\n course,\r\n CourseTrack,\r\n Navigation,\r\n PaginationDefault,\r\n Card,\r\n SelectBox,\r\n IntroductoryContentModal,\r\n VueMultiselect,\r\n InfoIcon,\r\n InfoPanel,\r\n },\r\n\r\n setup() {\r\n const store = useStore();\r\n const route = useRoute();\r\n\r\n const openModalIntroductoryContent: Ref = ref(false);\r\n\r\n const introductoryContent: Ref = ref();\r\n\r\n const messages = [\r\n \"Como você gostaria de ser chamado?\",\r\n \"Me conte um pouco mais sobre você!\",\r\n \"Temos muitas novidades a explorar e contamos com você para essa missão.\",\r\n \"Mas não se preocupe, estaremos te acompanhando e apoiando no que for preciso!\",\r\n \"Antes de levá-lo para central de treinamento, precisamos de algumas informações para lhe auxiliar nessa jornada.\",\r\n \"Selecione até 5 interesses para que possamos preparar o seu caminho para o sucesso.\",\r\n \"Estamos quase lá, só falta adicionar uma foto para seu perfil.\",\r\n \"Tudo pronto para o seu treinamento.\",\r\n ];\r\n\r\n const steps = ref(8);\r\n\r\n const user = ref(new User());\r\n const userInterests = ref>(Array());\r\n const interests: Ref = ref(new Array());\r\n const currentStep = ref(1);\r\n /**\r\n * return all incompletePills.\r\n */\r\n const incompletePills: ComputedRef = computed(\r\n () => store.getters[\"pill_module/pills\"] || []\r\n );\r\n\r\n const recommendedCourses: ComputedRef> = computed(() => {\r\n return store.getters[\"course_module/recommendedCourses\"] || [];\r\n });\r\n\r\n const schools: ComputedRef> = computed(() => {\r\n return store.getters[\"categories_module/schools\"] || [];\r\n });\r\n\r\n const redoingOnBoarding = computed(() => {\r\n return store.getters[\"userProfile_module/redoOnBoarding\"];\r\n });\r\n\r\n const showOnboarding = (): boolean | undefined => {\r\n if (!isDecolaTemplate()) return;\r\n if (\r\n (user.value.name && user.value.isFirstLogin) ||\r\n (redoingOnBoarding.value && currentStep.value <= steps.value)\r\n ) {\r\n disableBodyOverflow();\r\n return true;\r\n }\r\n };\r\n\r\n /** Returns the list of registered events. */\r\n const eventCourses: ComputedRef = computed(() => {\r\n return store.getters[\"event_module/eventCourses\"];\r\n });\r\n\r\n const courses: ComputedRef = computed(\r\n () => store.getters[\"course_module/courses\"]\r\n );\r\n\r\n const coursesPages: ComputedRef = computed(\r\n () => store.getters[\"course_module/coursesPages\"]\r\n );\r\n\r\n const currentFilter: ComputedRef = computed(() => {\r\n return store.getters[\"course_module/currentFilter\"];\r\n });\r\n\r\n const openPill = ref(false);\r\n\r\n const startPill = ref(0);\r\n\r\n const completedPills: Ref = ref([]);\r\n\r\n const schoolFilterIsActive: Ref = ref(false);\r\n\r\n const isSelectBoxVisible: Ref = ref(false);\r\n\r\n const showPills: Ref = ref(false);\r\n\r\n const schoolIDs: Ref = ref([]);\r\n\r\n const widthSelectCourseTracks: Ref = ref(\"25%\");\r\n\r\n const courseTracksBySchool: Ref = ref([]);\r\n\r\n const courseTracks: Ref = ref([]);\r\n const filteredCourseTracks: Ref = ref([]);\r\n\r\n const selectedCourseTracks: Ref> = ref(\r\n Array()\r\n );\r\n\r\n const isInfoPanelVisible = ref(false);\r\n\r\n const toggleInfoPanel = () => {\r\n isInfoPanelVisible.value = !isInfoPanelVisible.value;\r\n\r\n if (isInfoPanelVisible.value) {\r\n disableBodyOverflow();\r\n } else {\r\n enableBodyOverflow();\r\n }\r\n };\r\n\r\n const informationsExist = computed(() => {\r\n const informations = store.getters[\"information_module/informations\"];\r\n return informations && informations.length > 0;\r\n });\r\n\r\n const fetchInformations = async () => {\r\n\r\n try {\r\n await store.dispatch(\"information_module/list\");\r\n } catch (e) {\r\n await dispatchErrorBox(\"Ocorreu um erro ao carregar as informações.\");\r\n }\r\n };\r\n const selectedSchoolBox: Ref = ref([]);\r\n\r\n const pillSettings = {\r\n itemsToShow: 1,\r\n itemsToScroll: 1,\r\n transition: 800,\r\n };\r\n\r\n const pillInFocusIndex = ref(0);\r\n\r\n const pillBreakpoints = {\r\n 280: {\r\n itemsToShow: 2,\r\n itemsToScroll: 2,\r\n snapAlign: \"center\",\r\n },\r\n 390: {\r\n itemsToShow: 3,\r\n itemsToScroll: 3,\r\n snapAlign: \"center\",\r\n },\r\n 515: {\r\n itemsToShow: 4,\r\n itemsToScroll: 4,\r\n snapAlign: \"center\",\r\n },\r\n 620: {\r\n itemsToShow: 5,\r\n itemsToScroll: 5,\r\n snapAlign: \"center\",\r\n },\r\n 740: {\r\n itemsToShow: 6,\r\n itemsToScroll: 6,\r\n snapAlign: \"center\",\r\n },\r\n 860: {\r\n itemsToShow: 7,\r\n itemsToScroll: 7,\r\n snapAlign: \"center\",\r\n },\r\n 960: {\r\n itemsToShow: 8,\r\n itemsToScroll: 8,\r\n snapAlign: \"center\",\r\n },\r\n 1060: {\r\n itemsToShow: 10,\r\n itemsToScroll: 10,\r\n snapAlign: \"center\",\r\n },\r\n };\r\n\r\n /** Event's settings controls the initial state of the event's carousel. */\r\n const eventsSettings = {\r\n itemsToShow: 1,\r\n transition: 800,\r\n };\r\n\r\n const eventInFocusIndex: Ref = ref();\r\n\r\n /** Event's breakpoints controls the events sliders responsiveness. */\r\n const eventsBreakpoints = {\r\n 290: {\r\n itemsToShow: 1.2,\r\n itemsToScroll: 1,\r\n },\r\n 320: {\r\n itemsToShow: 1.3,\r\n itemsToScroll: 1,\r\n },\r\n 380: {\r\n itemsToShow: 1.7,\r\n itemsToScroll: 1,\r\n },\r\n 440: {\r\n itemsToShow: 1.9,\r\n itemsToScroll: 2,\r\n },\r\n 510: {\r\n itemsToShow: 2.2,\r\n itemsToScroll: 3,\r\n },\r\n 550: {\r\n itemsToShow: 2.4,\r\n itemsToScroll: 3,\r\n },\r\n 590: {\r\n itemsToShow: 2.6,\r\n itemsToScroll: 3,\r\n },\r\n 690: {\r\n itemsToShow: 3,\r\n itemsToScroll: 3,\r\n },\r\n 790: {\r\n itemsToShow: 3.45,\r\n itemsToScroll: 3,\r\n },\r\n 860: {\r\n itemsToShow: 3.75,\r\n },\r\n 950: {\r\n itemsToShow: 4,\r\n itemsToScroll: 4,\r\n },\r\n 1020: {\r\n itemsToShow: 4.4,\r\n },\r\n 1180: {\r\n itemsToShow: 5,\r\n itemsToScroll: 4,\r\n },\r\n };\r\n\r\n const ongoingCourseSettings = {\r\n itemsToShow: 1,\r\n transition: 800,\r\n };\r\n const ongoingCourseBreakpoints = {\r\n 350: {\r\n itemsToShow: 1.1,\r\n itemsToScroll: 1,\r\n },\r\n 370: {\r\n itemsToShow: 1.15,\r\n itemsToScroll: 1,\r\n },\r\n 390: {\r\n itemsToShow: 1.2,\r\n itemsToScroll: 1,\r\n },\r\n 400: {\r\n itemsToShow: 1.3,\r\n itemsToScroll: 1,\r\n },\r\n 440: {\r\n itemsToShow: 1.4,\r\n itemsToScroll: 1,\r\n },\r\n 470: {\r\n itemsToShow: 1.6,\r\n itemsToScroll: 1,\r\n },\r\n 510: {\r\n itemsToShow: 1.7,\r\n itemsToScroll: 1,\r\n },\r\n 540: {\r\n itemsToShow: 1.8,\r\n itemsToScroll: 1,\r\n },\r\n 580: {\r\n itemsToShow: 2,\r\n itemsToScroll: 1,\r\n },\r\n 640: {\r\n itemsToShow: 2.2,\r\n itemsToScroll: 1,\r\n },\r\n 690: {\r\n itemsToShow: 2.4,\r\n itemsToScroll: 1,\r\n },\r\n 730: {\r\n itemsToShow: 2.6,\r\n itemsToScroll: 2,\r\n },\r\n 760: {\r\n itemsToShow: 2.8,\r\n itemsToScroll: 2,\r\n },\r\n 850: {\r\n itemsToShow: 3.2,\r\n itemsToScroll: 2,\r\n },\r\n 930: {\r\n itemsToShow: 3.4,\r\n itemsToScroll: 3,\r\n },\r\n 1050: {\r\n itemsToShow: 3.6,\r\n itemsToScroll: 3,\r\n },\r\n\r\n 1170: {\r\n itemsToShow: 3.8,\r\n itemsToScroll: 3,\r\n },\r\n };\r\n\r\n /** Todo: document this explaining where and how it's gonna be used. */\r\n const recommendedSettings = {\r\n itemsToShow: 1,\r\n transition: 800,\r\n };\r\n\r\n /** Todo: explain what the heck is this. */\r\n const recommendedBreakpoints = {\r\n 320: {\r\n itemsToShow: 1.2,\r\n itemsToScroll: 1,\r\n },\r\n 350: {\r\n itemsToShow: 1.3,\r\n itemsToScroll: 1,\r\n },\r\n 370: {\r\n itemsToShow: 1.4,\r\n itemsToScroll: 1,\r\n },\r\n 390: {\r\n itemsToShow: 1.5,\r\n itemsToScroll: 1,\r\n },\r\n 400: {\r\n itemsToShow: 1.6,\r\n itemsToScroll: 1,\r\n },\r\n 440: {\r\n itemsToShow: 1.7,\r\n itemsToScroll: 1,\r\n },\r\n 470: {\r\n itemsToShow: 1.8,\r\n itemsToScroll: 1,\r\n },\r\n 510: {\r\n itemsToShow: 2,\r\n itemsToScroll: 1,\r\n },\r\n 540: {\r\n itemsToShow: 2.2,\r\n itemsToScroll: 1,\r\n },\r\n 580: {\r\n itemsToShow: 2.4,\r\n itemsToScroll: 1,\r\n },\r\n 640: {\r\n itemsToShow: 2.6,\r\n itemsToScroll: 1,\r\n },\r\n 690: {\r\n itemsToShow: 2.9,\r\n itemsToScroll: 1,\r\n },\r\n 730: {\r\n itemsToShow: 3,\r\n itemsToScroll: 2,\r\n },\r\n 760: {\r\n itemsToShow: 3.3,\r\n itemsToScroll: 2,\r\n },\r\n 850: {\r\n itemsToShow: 3.6,\r\n itemsToScroll: 2,\r\n },\r\n 930: {\r\n itemsToShow: 4,\r\n itemsToScroll: 3,\r\n },\r\n 1014: {\r\n itemsToShow: 4.5,\r\n itemsToScroll: 2,\r\n },\r\n 1080: {\r\n itemsToShow: 4.6,\r\n itemsToScroll: 3,\r\n },\r\n 1170: {\r\n itemsToShow: 4.8,\r\n itemsToScroll: 4,\r\n },\r\n };\r\n\r\n const newCourseSettings = {\r\n itemsToShow: 1,\r\n transition: 800,\r\n };\r\n\r\n const newCourseBreakpoints = {\r\n 230: {\r\n itemsToShow: 1,\r\n itemsToScroll: 1,\r\n },\r\n 280: {\r\n itemsToShow: 1.3,\r\n itemsToScroll: 1,\r\n },\r\n 320: {\r\n itemsToShow: 1.5,\r\n itemsToScroll: 1,\r\n },\r\n\r\n 350: {\r\n itemsToShow: 1.7,\r\n itemsToScroll: 1,\r\n },\r\n\r\n 370: {\r\n itemsToShow: 1.8,\r\n itemsToScroll: 1,\r\n },\r\n 410: {\r\n itemsToShow: 2,\r\n itemsToScroll: 1,\r\n },\r\n 450: {\r\n itemsToShow: 2.2,\r\n itemsToScroll: 1,\r\n },\r\n 490: {\r\n itemsToShow: 2.4,\r\n itemsToScroll: 1,\r\n },\r\n 530: {\r\n itemsToShow: 2.6,\r\n itemsToScroll: 1,\r\n },\r\n 560: {\r\n itemsToShow: 2.8,\r\n itemsToScroll: 1,\r\n },\r\n 615: {\r\n itemsToShow: 3,\r\n itemsToScroll: 1,\r\n },\r\n 650: {\r\n itemsToShow: 3.2,\r\n itemsToScroll: 1,\r\n },\r\n 710: {\r\n itemsToShow: 3.5,\r\n itemsToScroll: 1,\r\n },\r\n 800: {\r\n itemsToShow: 4,\r\n itemsToScroll: 1,\r\n },\r\n 910: {\r\n itemsToShow: 4.5,\r\n itemsToScroll: 1,\r\n },\r\n 1020: {\r\n itemsToShow: 5,\r\n itemsToScroll: 1,\r\n },\r\n 1080: {\r\n itemsToShow: 5.5,\r\n itemsToScroll: 1,\r\n },\r\n 1180: {\r\n itemsToShow: 6,\r\n itemsToScroll: 1,\r\n },\r\n };\r\n\r\n /** Returns all the courses of the user filtered based on the query param 'filter'. */\r\n const coursesInProgress: ComputedRef = computed(\r\n () => store.getters[\"userProfile_module/userCoursesInProgress\"]\r\n );\r\n\r\n const newsCourses: ComputedRef = computed(() => {\r\n return store.getters[\"course_module/newCourses\"] || [];\r\n });\r\n\r\n const userInformation: ComputedRef = computed(() => {\r\n return store.getters[\"userProfile_module/user\"];\r\n });\r\n\r\n onBeforeMount(async () => {\r\n scrollToTop();\r\n setSelectBoxVisibility();\r\n setWidthSelectedBoxCourseTrack();\r\n enableBodyOverflow();\r\n await removeQueries(router, [\"pageDefault\", \"courseID\"]);\r\n await updateQueries(router, {\r\n page: \"1\",\r\n });\r\n await wrapLoading(async () => {\r\n await loadInformation();\r\n await loadCoursesInProgress();\r\n await loadCourseTracks();\r\n if (!route.query.schools || !route.query.courseTracks) {\r\n courseTracks.value = store.getters[\"categories_module/courseTracks\"];\r\n }\r\n\r\n if (route.query.schools) {\r\n getSchoolRouteIDs();\r\n checkSelectedBoxSchoolsByRouteIDS();\r\n await filterCourseTracksBySchools();\r\n }\r\n\r\n if (route.query.courseTracks) {\r\n getCourseTrackRouteIDs();\r\n checkSelectedBoxCourseTrackByRouteIDS();\r\n }\r\n\r\n await loadCourse(Number(route.query.page) || 1, currentFilter.value);\r\n setPillsCarouselJustifyContent();\r\n });\r\n /** todo: Temporary removal of the news courses section */\r\n /** await loadNewsCourses(); */\r\n });\r\n\r\n onMounted(() => {\r\n showPills.value = true;\r\n });\r\n\r\n watch(\r\n () => route.query,\r\n async (newQuery) => {\r\n if (route.name === \"dashboard\") {\r\n try {\r\n if (route.query.schools) {\r\n getSchoolRouteIDs();\r\n await filterCourseTracksBySchools();\r\n\r\n const selectedCourseTrackIDs = selectedCourseTracks.value.map(\r\n (courseTrack: CourseTrack) => courseTrack.id\r\n );\r\n const courseTrackIDs = courseTracks.value.map(\r\n (courseTrack: CourseTrack) => courseTrack.id\r\n );\r\n\r\n for (const selectedCourseTrackID of selectedCourseTrackIDs) {\r\n if (!courseTrackIDs.includes(selectedCourseTrackID)) {\r\n const index = selectedCourseTrackIDs.indexOf(\r\n selectedCourseTrackID\r\n );\r\n if (index !== -1) {\r\n selectedCourseTracks.value.splice(index, 1);\r\n selectedCourseTrackIDs.splice(index, 1);\r\n }\r\n } else {\r\n currentFilter.value.courseTracks.push(selectedCourseTrackID);\r\n }\r\n }\r\n\r\n currentFilter.value.courseTracks = selectedCourseTracks.value.map(\r\n (courseTrack: CourseTrack) => courseTrack.id\r\n );\r\n }\r\n\r\n if (\r\n route.query.page &&\r\n !route.query.pageDefault &&\r\n !route.query.courseID\r\n ) {\r\n await wrapLoading(async () => {\r\n await loadCourse(\r\n Number(route.query.page) || 1,\r\n currentFilter.value\r\n );\r\n });\r\n }\r\n\r\n if (route.query.pageDefault && route.query.courseID) {\r\n await loadContentCommentsById(\r\n parseInt(route.query.courseID.toString())\r\n );\r\n }\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n }\r\n }\r\n );\r\n\r\n watch(\r\n () => route.name,\r\n async () => {\r\n if (route.name !== \"dashboard\") {\r\n await removeQuery(router, \"page\");\r\n }\r\n }\r\n );\r\n\r\n watch(\r\n () => route.query.page,\r\n async () => {\r\n if (!route.query.schools && !route.query.courseTracks) {\r\n await updateQueries(router, {\r\n page: String(route.query.page),\r\n });\r\n }\r\n\r\n if (route.query.courseTracks) {\r\n await updateQueries(router, {\r\n page: String(route.query.page),\r\n courseTracks: String(currentFilter.value.courseTracks),\r\n });\r\n }\r\n if (route.query.schools) {\r\n await updateQueries(router, {\r\n page: String(route.query.page),\r\n schools: String(currentFilter.value.schools),\r\n });\r\n }\r\n if (route.query.schools && route.query.courseTracks) {\r\n await updateQueries(router, {\r\n page: String(route.query.page),\r\n schools: String(currentFilter.value.schools),\r\n courseTracks: String(currentFilter.value.courseTracks),\r\n });\r\n }\r\n }\r\n );\r\n\r\n watch(\r\n () => selectedSchoolBox.value,\r\n async () => {\r\n const schoolIDs = selectedSchoolBox.value.map(\r\n (school: School) => school.id\r\n );\r\n currentFilter.value.schools = schoolIDs;\r\n await updateQuery(router, \"schools\", String(schoolIDs));\r\n }\r\n );\r\n\r\n // Updates the course list when the selected tracks change.\r\n watch(\r\n () => selectedCourseTracks.value,\r\n async () => {\r\n const courseTrackIDs = selectedCourseTracks.value.map(\r\n (courseTrack) => courseTrack.id\r\n );\r\n currentFilter.value.courseTracks = courseTrackIDs;\r\n await updateQueries(router, {\r\n courseTracks: String(courseTrackIDs),\r\n page: \"1\",\r\n });\r\n }\r\n );\r\n\r\n watch(\r\n () => currentFilter.value.courseTracks,\r\n async () => {\r\n if (currentFilter.value.courseTracks.length <= 0) {\r\n await removeQuery(router, \"courseTracks\");\r\n } else {\r\n await updateQueries(router, {\r\n courseTracks: String(currentFilter.value.courseTracks),\r\n page: \"1\",\r\n });\r\n }\r\n }\r\n );\r\n\r\n const loadNewsCourses = async (): Promise => {\r\n try {\r\n await store.dispatch(\"course_module/loadNewsCourses\");\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n /** Loads all the courses in which the user has an enrollment (including the finished ones). */\r\n const loadCoursesInProgress = async (): Promise => {\r\n try {\r\n await store.dispatch(\"userProfile_module/loadUserCoursesInProgress\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n };\r\n\r\n const getSchoolRouteIDs = (): void => {\r\n const ids = (route.query.schools as string).split(\",\");\r\n currentFilter.value.schools = ids.map((id) => Number(id));\r\n schoolIDs.value = ids.map((id) => Number(id));\r\n };\r\n\r\n const getCourseTrackRouteIDs = (): void => {\r\n const ids = (route.query.courseTracks as string).split(\",\");\r\n currentFilter.value.courseTracks = ids.map((id) => Number(id));\r\n };\r\n\r\n const checkSelectedBoxSchoolsByRouteIDS = (): void => {\r\n schools.value.forEach((school: School) => {\r\n currentFilter.value.schools.forEach((id) => {\r\n if (school.id === id) {\r\n selectedSchoolBox.value.push(school);\r\n }\r\n });\r\n });\r\n };\r\n\r\n const checkSelectedBoxCourseTrackByRouteIDS = (): void => {\r\n courseTracks.value.forEach((courseTrack: CourseTrack) => {\r\n currentFilter.value.courseTracks\r\n .map((id) => Number(id))\r\n .forEach((id) => {\r\n if (courseTrack.id === id) {\r\n selectedCourseTracks.value.push(courseTrack);\r\n }\r\n });\r\n });\r\n };\r\n\r\n const isSchoolActive = (schoolID?: number): boolean => {\r\n if (schoolID) {\r\n return currentFilter.value.schools.includes(schoolID);\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const filterCourseTracksBySchools = async (): Promise => {\r\n courseTracks.value = [];\r\n for (const registeredSchoolID of currentFilter.value.schools) {\r\n isSchoolActive(registeredSchoolID);\r\n await loadCourseTracksOfSchool(registeredSchoolID);\r\n filteredCourseTracks.value =\r\n store.getters[\"categories_module/courseTracks\"];\r\n filteredCourseTracks.value.forEach(\r\n (filteredCourseTrack: CourseTrack) => {\r\n courseTracks.value.push(filteredCourseTrack);\r\n }\r\n );\r\n }\r\n };\r\n\r\n const setSelectBoxVisibility = () => {\r\n if (window.matchMedia(\"(max-width:500px)\").matches) {\r\n isSelectBoxVisible.value = true;\r\n }\r\n };\r\n\r\n const setWidthSelectedBoxCourseTrack = (): void => {\r\n if (window.matchMedia(\"(max-width:800px\").matches) {\r\n widthSelectCourseTracks.value = \"100%\";\r\n }\r\n };\r\n\r\n const loadCourseTracksOfSchool = async (\r\n schoolID: number\r\n ): Promise => {\r\n try {\r\n await store.dispatch(\r\n \"categories_module/loadCourseTracksOfSchool\",\r\n schoolID\r\n );\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n };\r\n\r\n const filterBySchool = async (schoolID: number): Promise => {\r\n try {\r\n await updateQuery(router, \"page\", \"1\");\r\n if (!schoolIDs.value.includes(schoolID)) {\r\n schoolIDs.value.push(schoolID);\r\n currentFilter.value.schools = schoolIDs.value;\r\n } else {\r\n const index = schoolIDs.value.indexOf(schoolID);\r\n if (index !== -1) {\r\n schoolIDs.value.splice(index, 1);\r\n currentFilter.value.schools = schoolIDs.value;\r\n }\r\n if (schoolIDs.value.length) {\r\n await loadCourseTracksOfSchool(schoolID);\r\n filteredCourseTracks.value =\r\n store.getters[\"categories_module/courseTracks\"];\r\n filteredCourseTracks.value.forEach(\r\n (filteredCourseTrack: CourseTrack) => {\r\n courseTracks.value.push(filteredCourseTrack);\r\n }\r\n );\r\n } else {\r\n courseTracks.value = await store.dispatch(\r\n \"categories_module/loadCourseTracks\"\r\n );\r\n }\r\n }\r\n\r\n await updateQueries(router, { schools: String(schoolIDs.value) });\r\n\r\n if (schoolIDs.value && schoolIDs.value.length <= 0) {\r\n await removeQuery(router, \"schools\");\r\n await loadCourseTracks();\r\n }\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n };\r\n\r\n const loadCourse = async (\r\n page: number,\r\n filter: FilterCourse\r\n ): Promise => {\r\n try {\r\n await store.dispatch(\"course_module/loadCourses\", {\r\n page: page,\r\n filter: filter,\r\n });\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n };\r\n\r\n const loadCourseTracks = async (): Promise => {\r\n try {\r\n await store.dispatch(\"categories_module/loadCourseTracks\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n };\r\n\r\n /** Load all information based in user's status (if is logged) required to display in dashboard view */\r\n async function loadInformation() {\r\n const user = await store.getters[\"userProfile_module/user\"];\r\n\r\n await loadIncompletePills();\r\n await loadSchools();\r\n\r\n if (user) {\r\n await loadUser();\r\n await loadInterests();\r\n await loadEvents();\r\n await loadRecommendedCourses();\r\n }\r\n }\r\n\r\n async function loadUser() {\r\n try {\r\n await store.dispatch(\"userProfile_module/loadUser\");\r\n const userToClone = await store.getters[\"userProfile_module/user\"];\r\n user.value = cloneObject(userToClone) as User;\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n async function loadInterests() {\r\n try {\r\n await store.dispatch(\"interest_module/loadInterests\");\r\n interests.value = store.getters[\"interest_module/interests\"];\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n async function loadIncompletePills() {\r\n try {\r\n await store.dispatch(\"pill_module/list\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n async function loadRecommendedCourses() {\r\n try {\r\n await store.dispatch(\"course_module/loadRecommendedCourses\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n async function loadSchools() {\r\n try {\r\n await store.dispatch(\"categories_module/loadSchools\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n /** Function responsible for loading events.*/\r\n async function loadEvents() {\r\n try {\r\n await store.dispatch(\"event_module/list\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n async function playPill(index: number) {\r\n openPill.value = true;\r\n startPill.value = index;\r\n completedPills.value = [];\r\n const _completedPills: Pill[] = [];\r\n try {\r\n await wrapLoading(async () => {\r\n const storedPills = store.getters[\"pill_module/pills\"];\r\n for (let incompletePill of incompletePills.value) {\r\n const pill = storedPills.find(\r\n (item: Pill) => item.id === incompletePill.id\r\n );\r\n pill.isWatched = incompletePill.isWatched;\r\n pill.id = incompletePill.id;\r\n _completedPills.push(pill);\r\n }\r\n\r\n completedPills.value = _completedPills;\r\n disableBodyOverflow();\r\n });\r\n } catch (e) {\r\n await dispatchError(e);\r\n openPill.value = false;\r\n }\r\n }\r\n\r\n async function closePill() {\r\n openPill.value = false;\r\n enableBodyOverflow();\r\n await wrapLoading(async () => {\r\n await loadUser();\r\n });\r\n }\r\n\r\n async function setStep(step: number) {\r\n await router.push({ name: \"onboarding\", params: { step: step } });\r\n }\r\n\r\n async function previousStep() {\r\n await router.push({\r\n name: \"onboarding\",\r\n params: { step: currentStep.value - 1 },\r\n });\r\n }\r\n\r\n /** Close onboarding box when user click in the close button. */\r\n const closeOnBoarding = async (): Promise => {\r\n try {\r\n user.value.isFirstLogin = false;\r\n await store.dispatch(\r\n \"authentication_module/finishOnBoarding\",\r\n user.value\r\n );\r\n await store.dispatch(\"userProfile_module/redoOnBoarding\", false);\r\n enableBodyOverflow();\r\n await router.push({ name: \"dashboard\" });\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n async function finishOnBoarding() {\r\n try {\r\n await closeOnBoarding();\r\n await store.dispatch(\r\n \"interest_module/relateInterestToUser\",\r\n userInterests.value\r\n );\r\n await loadRecommendedCourses();\r\n await store.dispatch(\"userProfile_module/updateUser\", user.value);\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n }\r\n\r\n async function nextStep() {\r\n if (currentStep.value === steps.value) {\r\n await finishOnBoarding();\r\n return;\r\n }\r\n await router.push({\r\n name: \"onboarding\",\r\n params: { step: currentStep.value + 1 },\r\n });\r\n }\r\n\r\n watch(\r\n () => router.currentRoute.value.params.step,\r\n () => (currentStep.value = Number(router.currentRoute.value.params.step))\r\n );\r\n\r\n const updateUserInterests = (event) => {\r\n userInterests.value = event;\r\n };\r\n const updateUser = (event) => {\r\n user.value = event;\r\n };\r\n\r\n const openIntroductoryContent = (\r\n _introductoryContent: Content | null\r\n ): void => {\r\n if (!_introductoryContent) return;\r\n introductoryContent.value = _introductoryContent;\r\n openModalIntroductoryContent.value = true;\r\n disableBodyOverflow();\r\n };\r\n\r\n const closeModalIntroductoryContent = (): void => {\r\n openModalIntroductoryContent.value = false;\r\n enableBodyOverflow();\r\n };\r\n\r\n const isCommentsModalOpen: ComputedRef = computed(\r\n () => store.getters[\"course_module/isCommentsModalOpen\"]\r\n );\r\n\r\n /** Disable the body overflow to not let the user scroll the page behind some modal while is open. */\r\n const disableBodyOverflow = () => {\r\n document.body.style.overflow = \"hidden\";\r\n };\r\n\r\n /** Enable the body overflow to let the user scroll the page after close some modal. */\r\n const enableBodyOverflow = () => {\r\n document.body.style.overflow = \"auto\";\r\n };\r\n\r\n /** Dispatch an action to open the comment modal on screen. */\r\n const openCommentsModal = async () => {\r\n disableBodyOverflow();\r\n await store.dispatch(\"course_module/openCommentsModal\");\r\n };\r\n\r\n /** Dispatch an action to open the comment modal on screen. */\r\n const closeCommentsModal = async () => {\r\n enableBodyOverflow();\r\n await store.dispatch(\"course_module/closeCommentsModal\");\r\n };\r\n\r\n /** Dispatch an action to load the comments. */\r\n const loadContentCommentsById = async (id: number) => {\r\n const order = getOrderFromURL(route);\r\n\r\n await wrapLoading(async () => {\r\n await store.dispatch(\"course_module/loadContentCommentsById\", {\r\n courseID: id,\r\n order: order,\r\n });\r\n });\r\n };\r\n\r\n /** Is what will be the title of the comment modal. */\r\n const commentModalTitle = ref(\"\");\r\n\r\n /** Display the modal with the comments about the course. */\r\n const loadCourseCommentsModal = async (course: Course) => {\r\n try {\r\n commentModalTitle.value = course.title;\r\n await updateQueries(router, {\r\n pageDefault: \"1\",\r\n courseID: course.id.toString(),\r\n });\r\n await openCommentsModal();\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n /** Dispatch an action to load the comments. */\r\n const loadEventCommentsById = async (eventBasedOnClass: EventCourse) =>\r\n await store.dispatch(\r\n \"course_module/loadEventCommentsById\",\r\n eventBasedOnClass.id\r\n );\r\n\r\n /** Display the modal with the comments about the event. */\r\n const loadEventCommentsModal = async (eventCourse: EventCourse) => {\r\n try {\r\n commentModalTitle.value = eventCourse.name;\r\n await openCommentsModal();\r\n await loadEventCommentsById(eventCourse);\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n const comments: ComputedRef = computed(\r\n () => store.getters[\"course_module/comments\"]\r\n );\r\n\r\n const isPillsCentered = ref(false);\r\n\r\n /** Center pills carousel if there's less than the maximum number\r\n * of pills that fit in the current screen size. */\r\n const setPillsCarouselJustifyContent = (): void => {\r\n if (!incompletePills.value) return;\r\n if (\r\n document.body.offsetWidth > 1060 &&\r\n incompletePills.value.length <= 10\r\n ) {\r\n isPillsCentered.value = true;\r\n return;\r\n }\r\n\r\n if (\r\n document.body.offsetWidth > 960 &&\r\n incompletePills.value.length <= 8\r\n ) {\r\n isPillsCentered.value = true;\r\n return;\r\n }\r\n\r\n if (\r\n document.body.offsetWidth > 860 &&\r\n incompletePills.value.length <= 7\r\n ) {\r\n isPillsCentered.value = true;\r\n return;\r\n }\r\n\r\n if (\r\n document.body.offsetWidth > 740 &&\r\n incompletePills.value.length <= 6\r\n ) {\r\n isPillsCentered.value = true;\r\n return;\r\n }\r\n\r\n if (\r\n document.body.offsetWidth > 740 &&\r\n incompletePills.value.length <= 6\r\n ) {\r\n isPillsCentered.value = true;\r\n return;\r\n }\r\n\r\n if (\r\n document.body.offsetWidth > 620 &&\r\n incompletePills.value.length <= 5\r\n ) {\r\n isPillsCentered.value = true;\r\n return;\r\n }\r\n\r\n if (\r\n document.body.offsetWidth > 515 &&\r\n incompletePills.value.length <= 4\r\n ) {\r\n isPillsCentered.value = true;\r\n return;\r\n }\r\n\r\n if (\r\n document.body.offsetWidth > 390 &&\r\n incompletePills.value.length <= 3\r\n ) {\r\n isPillsCentered.value = true;\r\n return;\r\n }\r\n\r\n if (\r\n document.body.offsetWidth > 280 &&\r\n incompletePills.value.length <= 2\r\n ) {\r\n isPillsCentered.value = true;\r\n return;\r\n }\r\n\r\n isPillsCentered.value = false;\r\n };\r\n\r\n /** Hides arrow buttons of the event carousel if there's no need for it. */\r\n const setEventCarouselButtonVisibility = async () => {\r\n const events = await eventCourses.value;\r\n const hasLessThanMaxVisibleEvents = events.length < 6;\r\n const isBigScreen = document.body.offsetWidth > 1060;\r\n if (hasLessThanMaxVisibleEvents && isBigScreen) {\r\n eventInFocusIndex.value = undefined;\r\n } else if (!isBigScreen) {\r\n eventInFocusIndex.value = 0;\r\n }\r\n };\r\n\r\n const onResize = async () => {\r\n pillInFocusIndex.value = 0;\r\n await setEventCarouselButtonVisibility();\r\n setPillsCarouselJustifyContent();\r\n };\r\n\r\n window.addEventListener(\"resize\", onResize);\r\n\r\n return {\r\n openPill,\r\n pillSettings,\r\n pillInFocusIndex,\r\n pillBreakpoints,\r\n eventsSettings,\r\n eventInFocusIndex,\r\n eventsBreakpoints,\r\n recommendedSettings,\r\n recommendedBreakpoints,\r\n user,\r\n interests,\r\n userInterests,\r\n redoingOnBoarding,\r\n incompletePills,\r\n completedPills,\r\n isPillsCentered,\r\n startPill,\r\n recommendedCourses,\r\n schools,\r\n steps,\r\n currentStep,\r\n messages,\r\n eventCourses,\r\n courses,\r\n coursesPages,\r\n courseTracks,\r\n schoolFilterIsActive,\r\n currentFilter,\r\n courseTracksBySchool,\r\n selectedCourseTracks,\r\n schoolIDs,\r\n selectedSchoolBox,\r\n isSelectBoxVisible,\r\n showPills,\r\n widthSelectCourseTracks,\r\n openModalIntroductoryContent,\r\n comments,\r\n commentModalTitle,\r\n isCommentsModalOpen,\r\n coursesInProgress,\r\n ongoingCourseSettings,\r\n ongoingCourseBreakpoints,\r\n newCourseBreakpoints,\r\n newCourseSettings,\r\n newsCourses,\r\n userInformation,\r\n introductoryContent,\r\n isInfoPanelVisible,\r\n toggleInfoPanel,\r\n isSchoolActive,\r\n closeOnBoarding,\r\n finishOnBoarding,\r\n updateUser,\r\n updateUserInterests,\r\n playPill,\r\n closePill,\r\n setStep,\r\n previousStep,\r\n nextStep,\r\n filterBySchool,\r\n loadCourse,\r\n closeModalIntroductoryContent,\r\n openIntroductoryContent,\r\n loadCourseCommentsModal,\r\n loadEventCommentsModal,\r\n closeCommentsModal,\r\n toLocaleDateTime,\r\n showOnboarding,\r\n isDecolaTemplate,\r\n updateQuery,\r\n fetchInformations,\r\n informationsExist,\r\n };\r\n },\r\n};\r\n","import { render } from \"./Dashboard.vue?vue&type=template&id=62cec597&scoped=true&ts=true\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=ts\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=ts\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=62cec597&lang=css\"\nimport \"./Dashboard.vue?vue&type=style&index=1&id=62cec597&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-62cec597\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NewCourse.vue?vue&type=style&index=0&id=1e39beb0&scoped=true&lang=css\"","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-13367ce0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"pagination\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"M17.51 3.87001L15.73 2.10001L5.83997 12L15.74 21.9L17.51 20.13L9.37997 12L17.51 3.87001Z\",\n fill: \"black\",\n \"fill-opacity\": \"0.54\"\n })\n], -1))\nconst _hoisted_3 = [\n _hoisted_2\n]\nconst _hoisted_4 = { class: \"pagination__item\" }\nconst _hoisted_5 = [\"onClick\"]\nconst _hoisted_6 = [\"disabled\"]\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"M6.48999 20.13L8.25999 21.9L18.16 12L8.25999 2.10001L6.48999 3.87001L14.62 12L6.48999 20.13Z\",\n fill: \"black\",\n \"fill-opacity\": \"0.54\"\n })\n], -1))\nconst _hoisted_8 = [\n _hoisted_7\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"button\", {\n class: _normalizeClass(['pagination__button-previous', { disabled: _ctx.isPreviousDisabled }]),\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.previousPage && _ctx.previousPage(...args)))\n }, _hoisted_3, 2),\n _createElementVNode(\"ul\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.pages, (page, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: index,\n onClick: ($event: any) => (_ctx.skip(page)),\n class: _normalizeClass({\r\n active: _ctx.isCurrentPage(page),\r\n interactive: _ctx.isNotEllipsis(page),\r\n })\n }, _toDisplayString(_ctx.setPageLink(page)), 11, _hoisted_5))\n }), 128))\n ]),\n _createElementVNode(\"button\", {\n class: _normalizeClass(['pagination__button-next', { disabled: _ctx.isNextDisabled }]),\n disabled: _ctx.isNextDisabled,\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.nextPage && _ctx.nextPage(...args)))\n }, _hoisted_8, 10, _hoisted_6)\n ]))\n}","\r\nimport { defineComponent, onBeforeMount, Ref, ref, watch } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"pagination\",\r\n props: {\r\n /** Number of pages coming from the request. */\r\n qtPages: {\r\n type: Number,\r\n required: true,\r\n },\r\n\r\n /** Page ID that's currently in the URL. */\r\n currentPage: {\r\n type: Number,\r\n required: true,\r\n },\r\n height: {\r\n type: String,\r\n default: \"60px\",\r\n },\r\n },\r\n\r\n setup(props, { emit }) {\r\n /** Variable that changes the style of the goTo next page button. */\r\n const isNextDisabled: Ref = ref(false);\r\n\r\n /** Variable that changes the style of the button to go back to the page. */\r\n const isPreviousDisabled: Ref = ref(false);\r\n\r\n /** Array of page links that's being shown in the screen (including the \"...\"). */\r\n const pages: Ref> = ref(new Array());\r\n\r\n /** Array containing all the pages. */\r\n let totalPagesArray: number[] = [];\r\n\r\n const pagHeight = ref(props.height);\r\n\r\n /** When assembling the page checks if it is necessary to remove the next and previous buttons. */\r\n onBeforeMount(async () => {\r\n await generatePageArray();\r\n await handleButtonStyles();\r\n await setPagesLinkVisibility();\r\n });\r\n\r\n /** Monitors if the current page has been changed and calls the function that controls the button states. */\r\n watch(\r\n () => props.currentPage,\r\n async () => {\r\n await handleButtonStyles();\r\n await setPagesLinkVisibility();\r\n }\r\n );\r\n\r\n /** Monitors if the page quantity has changed and calls the function that controls the page array. */\r\n watch(\r\n () => props.qtPages,\r\n async () => {\r\n await handleButtonStyles();\r\n await generatePageArray();\r\n await setPagesLinkVisibility();\r\n }\r\n );\r\n\r\n /** Set the link to each page or \"...\" in specific spots\r\n * defined by the items set with NaN as their value. */\r\n const setPageLink = (page): string => {\r\n return page ? page : \"...\";\r\n };\r\n\r\n /** Highlight current page link. */\r\n const isCurrentPage = (page): boolean => {\r\n return page === props.currentPage;\r\n };\r\n\r\n /** Checks if the pagination item is a page or an ellipsis to set the style of the items. */\r\n const isNotEllipsis = (page): boolean => {\r\n return page;\r\n };\r\n\r\n /** Generate an array of numbers based on the number of pages.\r\n * Each item in the array own its page number. */\r\n async function generatePageArray(): Promise {\r\n totalPagesArray = [];\r\n for (let i = 1; i <= props.qtPages; i++) {\r\n totalPagesArray.push(i);\r\n }\r\n }\r\n /** */\r\n /** Function that disables the next and previous buttons. */\r\n async function handleButtonStyles(): Promise {\r\n /** Check if there is only one page. */\r\n if (props.qtPages! <= 1) {\r\n /** Enable the next button disable. */\r\n isNextDisabled.value = true;\r\n /** Enable the previous button disable. */\r\n isPreviousDisabled.value = true;\r\n } else if (!(props.currentPage - 1)) {\r\n /** Checks if the current page is equal to zero. */\r\n /** Enable the back button disable. */\r\n isPreviousDisabled.value = true;\r\n /** Making the next button visible. */\r\n isNextDisabled.value = false;\r\n /** Checks if the current page is the last page. */\r\n } else if (props.currentPage === props.qtPages) {\r\n /** Activate the disabled of the next button. */\r\n isNextDisabled.value = true;\r\n /** Making the back button visible. */\r\n isPreviousDisabled.value = false;\r\n } else {\r\n /** If you have only one page, the buttons will not appear. */\r\n isNextDisabled.value = false;\r\n isPreviousDisabled.value = false;\r\n }\r\n }\r\n\r\n async function setPagesLinkVisibility(): Promise {\r\n /** If there are few pages, show all of them */\r\n if (props.qtPages <= 7) {\r\n pages.value = totalPagesArray;\r\n } else if (props.currentPage < 5) {\r\n /** Show pages 1 to 5, then \"...\" and the last page */\r\n pages.value = totalPagesArray.slice(0, 5);\r\n pages.value.push(NaN, props.qtPages);\r\n } else if (\r\n props.currentPage >= 5 &&\r\n props.currentPage <= props.qtPages - 4\r\n ) {\r\n /** Show pages dynamically when reaching 5 or beyond */\r\n pages.value = totalPagesArray.slice(\r\n props.currentPage - 2,\r\n props.currentPage + 1\r\n );\r\n pages.value.push(NaN, props.qtPages);\r\n pages.value.unshift(1);\r\n pages.value.splice(1, 0, NaN);\r\n } else {\r\n /** Show the last few pages with \"...\" after the first page */\r\n pages.value = totalPagesArray.slice(props.qtPages - 5, props.qtPages);\r\n pages.value.unshift(1);\r\n pages.value.splice(1, 0, NaN);\r\n }\r\n }\r\n\r\n /** Function to go to the next page. */\r\n const nextPage = (): void => {\r\n /** Checks if the current page is less than the total pages. */\r\n if (props.currentPage < props.qtPages) {\r\n /** If it is true, the 'page' variable receives the current page plus one, so that the page pass is done. */\r\n\r\n const page = props.currentPage + 1;\r\n /** Then we update the current page through emit, passing the variable set above. */\r\n emit(\"change-page\", page);\r\n }\r\n };\r\n\r\n /** Function to return to the page. */\r\n const previousPage = (): void => {\r\n /** Checks if the current page is greater than the total pages. */\r\n if (props.currentPage > 1) {\r\n /** If true, the 'page' variable receives the current page minus 1, so that we can go back to the page. */\r\n const page = props.currentPage - 1;\r\n\r\n /** Then we update the current page through emit, passing the variable set above. */\r\n emit(\"change-page\", page);\r\n }\r\n };\r\n\r\n /** Function to jump the page through the numeric buttons.\r\n * This function receives as a parameter the total number of pages that was set in v-for. */\r\n const skip = (page: number): void => {\r\n if (!page) return;\r\n\r\n /** Updates the current page through emit, passing the parameter variable. */\r\n emit(\"change-page\", page);\r\n };\r\n\r\n return {\r\n pages,\r\n isPreviousDisabled,\r\n isNextDisabled,\r\n pagHeight,\r\n setPageLink,\r\n nextPage,\r\n previousPage,\r\n skip,\r\n isCurrentPage,\r\n isNotEllipsis,\r\n };\r\n },\r\n});\r\n","import { render } from \"./PaginationDefault.vue?vue&type=template&id=13367ce0&scoped=true&ts=true\"\nimport script from \"./PaginationDefault.vue?vue&type=script&lang=ts\"\nexport * from \"./PaginationDefault.vue?vue&type=script&lang=ts\"\n\nimport \"./PaginationDefault.vue?vue&type=style&index=0&id=13367ce0&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-13367ce0\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FirstLogin.vue?vue&type=style&index=0&id=d3105eb2&scoped=true&lang=css\"","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-568a3eda\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"field\" }\nconst _hoisted_2 = [\"for\"]\nconst _hoisted_3 = [\"id\", \"disabled\", \"readonly\", \"required\", \"maxlength\", \"minlength\", \"value\", \"placeholder\", \"title\"]\nconst _hoisted_4 = {\n key: 0,\n class: \"character-count\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", {\n class: _normalizeClass(['label', _ctx.disabled ? 'disabled' : '']),\n for: _ctx.id\n }, _toDisplayString(_ctx.label), 11, _hoisted_2),\n _createElementVNode(\"input\", {\n type: \"text\",\n id: _ctx.id,\n disabled: _ctx.disabled,\n readonly: _ctx.readonly,\n required: _ctx.required,\n maxlength: _ctx.maxLength,\n minlength: _ctx.minLength,\n value: _ctx.disabled ? '' : _ctx.modelValue,\n placeholder: _ctx.placeholder,\n title: _ctx.title,\n class: \"input\",\n onInput: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.onInput && _ctx.onInput(...args)))\n }, null, 40, _hoisted_3),\n (_ctx.hasCharacterCounter)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_ctx.modelValue ? _ctx.modelValue.length : 0) + \" \" + _toDisplayString(_ctx.maxLength ? \" /\" + _ctx.maxLength : \"\"), 1))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport {defineComponent} from \"vue\";\r\n\r\nexport default defineComponent({\r\n props: {\r\n modelValue: {\r\n type: String,\r\n required: false,\r\n default: \"\",\r\n },\r\n label: {\r\n type: String,\r\n required: false,\r\n default: \"\",\r\n },\r\n id: {\r\n type: String,\r\n required: true,\r\n },\r\n disabled: {\r\n type: Boolean,\r\n required: false,\r\n default: false,\r\n },\r\n required: {\r\n type: Boolean,\r\n required: false,\r\n },\r\n readonly: {\r\n type: Boolean,\r\n required: false,\r\n default: false,\r\n },\r\n maxLength: {\r\n type: Number,\r\n required: false,\r\n },\r\n minLength: {\r\n type: Number,\r\n required: false,\r\n },\r\n placeholder: {\r\n type: String,\r\n required: false,\r\n default: \"\",\r\n },\r\n title: {\r\n type: String,\r\n required: false,\r\n default: \"\",\r\n },\r\n hasCharacterCounter: {\r\n type: Boolean,\r\n required: false,\r\n default: false,\r\n },\r\n },\r\n setup(_props, { emit }) {\r\n const onInput = async (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n\r\n if (!input.value || input.value === \"\") {\r\n emit(\"update:modelValue\", input.value);\r\n return;\r\n }\r\n\r\n emit(\"update:modelValue\", input.value);\r\n };\r\n\r\n return { onInput };\r\n },\r\n});\r\n","import { render } from \"./TextInput.vue?vue&type=template&id=568a3eda&scoped=true&ts=true\"\nimport script from \"./TextInput.vue?vue&type=script&lang=ts\"\nexport * from \"./TextInput.vue?vue&type=script&lang=ts\"\n\nimport \"./TextInput.vue?vue&type=style&index=0&id=568a3eda&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-568a3eda\"]])\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"img/missao.7a4562a4.svg\";","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c94d41b6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Não há nenhum comentário por aqui\", -1))\nconst _hoisted_2 = { class: \"course-track\" }\nconst _hoisted_3 = { class: \"course-track__content\" }\nconst _hoisted_4 = { class: \"course-track__title\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Comment = _resolveComponent(\"Comment\")!\n const _component_content_fallback = _resolveComponent(\"content-fallback\")!\n const _component_CommentsModal = _resolveComponent(\"CommentsModal\")!\n const _component_ModalIntroductoryContent = _resolveComponent(\"ModalIntroductoryContent\")!\n const _component_course = _resolveComponent(\"course\")!\n const _component_Slide = _resolveComponent(\"Slide\")!\n const _component_Navigation = _resolveComponent(\"Navigation\")!\n const _component_carousel = _resolveComponent(\"carousel\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_ctx.isCommentsModalOpen)\n ? (_openBlock(), _createBlock(_component_CommentsModal, {\n key: 0,\n onCloseCommentsModal: _ctx.closeCommentsModal,\n title: _ctx.commentModalTitle\n }, {\n default: _withCtx(() => [\n (_ctx.comments.length)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(_ctx.comments, (comment, index) => {\n return (_openBlock(), _createBlock(_component_Comment, {\n key: index,\n \"user-name\": comment.userName,\n comment: comment.message,\n date: _ctx.toLocaleDateTime(comment.createAt),\n stars: comment.rating,\n \"user-image\": comment.userImage,\n \"content-name\": comment.contentName\n }, null, 8, [\"user-name\", \"comment\", \"date\", \"stars\", \"user-image\", \"content-name\"]))\n }), 128))\n : (_openBlock(), _createBlock(_component_content_fallback, { key: 1 }, {\n default: _withCtx(() => [\n _hoisted_1\n ]),\n _: 1\n }))\n ]),\n _: 1\n }, 8, [\"onCloseCommentsModal\", \"title\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.openModalIntroductoryContent && _ctx.course.introductoryContent)\n ? (_openBlock(), _createBlock(_component_ModalIntroductoryContent, {\n key: 0,\n onClose: _ctx.closeModalIntroductoryContent,\n \"introductory-content\": _ctx.course.introductoryContent\n }, null, 8, [\"onClose\", \"introductory-content\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h3\", _hoisted_4, _toDisplayString(_ctx.courseTrack.title), 1),\n (_ctx.courses.length)\n ? (_openBlock(), _createBlock(_component_carousel, {\n key: 0,\n settings: _ctx.settings,\n breakpoints: _ctx.breakpoints,\n class: \"carousel-course\"\n }, {\n addons: _withCtx(() => [\n _createVNode(_component_Navigation)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.courses, (course, index) => {\n return (_openBlock(), _createBlock(_component_Slide, {\n key: 'course' + index\n }, {\n default: _withCtx(() => [\n _createVNode(_component_course, {\n course: course,\n onLoadCourseCommentsModal: ($event: any) => (_ctx.loadCourseCommentsModal(course)),\n onOpenIntroductoryContent: ($event: any) => (_ctx.openIntroductoryContent(course)),\n onOpenCourse: ($event: any) => (\r\n _ctx.$router.push({ name: 'course', params: { course_id: course.id } })\r\n )\n }, null, 8, [\"course\", \"onLoadCourseCommentsModal\", \"onOpenIntroductoryContent\", \"onOpenCourse\"])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"settings\", \"breakpoints\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 64))\n}","\r\nimport {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n onBeforeMount,\r\n PropType,\r\n Ref,\r\n ref\r\n} from \"vue\";\r\nimport \"vue3-carousel/dist/carousel.css\";\r\nimport { Carousel, Navigation, Pagination, Slide } from \"vue3-carousel\";\r\nimport {\r\n ContentComment,\r\n Course,\r\n CourseTrack\r\n} from \"../../../../domain/entities/entities\";\r\nimport course from \"../application/Course.vue\";\r\nimport {\r\n dispatchErrorBox,\r\n formattedDuration,\r\n toLocaleDateTime\r\n} from \"../mixins\";\r\nimport { RepositoryException } from \"../../../../domain/exceptions/exceptions\";\r\nimport { useStore } from \"vuex\";\r\nimport CommentsModal from \"../application/DashboardComments/CommentsModal.vue\";\r\nimport ContentFallback from \"../application/moldure/ContentFallback.vue\";\r\nimport ModalIntroductoryContent from \"../application/ModalIntroductoryContent.vue\";\r\nimport Comment from \"../application/DashboardComments/Comment.vue\";\r\nimport { dispatchError } from \"../../utils/error_handling\";\r\nimport { getOrderFromURL } from \"../../utils/order_utils\";\r\nimport { wrapLoading } from \"../../utils/wrap_loading\";\r\nimport { useRoute } from \"vue-router\";\r\n\r\nexport default defineComponent({\r\n components: {\r\n Carousel,\r\n Slide,\r\n Navigation,\r\n Pagination,\r\n course,\r\n CommentsModal,\r\n ContentFallback,\r\n ModalIntroductoryContent,\r\n Comment\r\n },\r\n\r\n props: {\r\n courseTrack: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n\r\n setup(props) {\r\n const store = useStore();\r\n const route = useRoute();\r\n\r\n const courses = ref(Array());\r\n\r\n /** Todo: document this explaining where and how it's gonna be used. */\r\n const settings = {\r\n itemsToShow: 1,\r\n snapAlign: \"center\",\r\n wrapAround: false\r\n };\r\n\r\n /** Todo: explain what the heck is this. */\r\n const breakpoints = {\r\n 320: {\r\n itemsToShow: 1.25\r\n },\r\n\r\n 420: {\r\n itemsToShow: 1.5\r\n },\r\n 470: {\r\n itemsToShow: 1.75\r\n },\r\n\r\n 560: {\r\n itemsToShow: 2\r\n },\r\n\r\n 630: {\r\n itemsToShow: 3\r\n },\r\n\r\n 720: {\r\n itemsToShow: 3.5\r\n },\r\n\r\n 820: {\r\n itemsToShow: 3\r\n },\r\n\r\n 920: {\r\n itemsToShow: 3.25\r\n },\r\n\r\n 1020: {\r\n itemsToShow: 3.5\r\n },\r\n\r\n 1120: {\r\n itemsToShow: 4\r\n },\r\n\r\n 1270: {\r\n itemsToShow: 5\r\n },\r\n\r\n 1320: {\r\n itemsToShow: 6\r\n },\r\n 1920: {\r\n itemsToShow: 7\r\n }\r\n // 2340: {\r\n // itemsToShow: 9\r\n // }\r\n };\r\n\r\n /** Is what will be the title of the comment modal. */\r\n const commentModalTitle = ref(\"\");\r\n\r\n const course = ref(new Course());\r\n\r\n const openModalIntroductoryContent: Ref = ref(false);\r\n\r\n const comments: ComputedRef = computed(\r\n () => store.getters[\"course_module/comments\"]\r\n );\r\n\r\n const isCommentsModalOpen: Ref = ref(false);\r\n\r\n onBeforeMount(async () => {\r\n await loadCourses();\r\n });\r\n\r\n async function loadCourses(): Promise {\r\n if (!props.courseTrack.id) return;\r\n try {\r\n const order = getOrderFromURL(route);\r\n await wrapLoading(async () => {\r\n await store.dispatch(\"course_module/loadCoursesOfCourseTrack\", {\r\n order: order,\r\n courseTrackID: props.courseTrack.id\r\n });\r\n });\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n }\r\n\r\n /** Enable the body overflow to let the user scroll the page after close some modal. */\r\n const enableBodyOverflow = () => {\r\n document.body.style.overflow = \"auto\";\r\n };\r\n\r\n /** Disable the body overflow to not let the user scroll the page behind some modal while is open. */\r\n const disableBodyOverflow = () => {\r\n document.body.style.overflow = \"hidden\";\r\n };\r\n\r\n /** Dispatch an action to open the comment modal on screen. */\r\n const openCommentsModal = async () => {\r\n disableBodyOverflow();\r\n isCommentsModalOpen.value = true;\r\n };\r\n\r\n /** Dispatch an action to open the comment modal on screen. */\r\n const closeCommentsModal = async () => {\r\n enableBodyOverflow();\r\n isCommentsModalOpen.value = false;\r\n };\r\n\r\n /** Dispatch an action to load the comments. */\r\n const loadContentCommentsById = async (course: Course) =>\r\n await store.dispatch(\"course_module/loadContentCommentsById\", course.id);\r\n\r\n /** Display the modal with the comments about the course. */\r\n const loadCourseCommentsModal = async (course: Course) => {\r\n try {\r\n commentModalTitle.value = course.title;\r\n await openCommentsModal();\r\n await loadContentCommentsById(course);\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n };\r\n\r\n const openIntroductoryContent = (_course: Course): void => {\r\n course.value = _course;\r\n openModalIntroductoryContent.value = true;\r\n disableBodyOverflow();\r\n };\r\n\r\n const closeModalIntroductoryContent = (): void => {\r\n openModalIntroductoryContent.value = false;\r\n enableBodyOverflow();\r\n };\r\n return {\r\n courses,\r\n settings,\r\n breakpoints,\r\n openModalIntroductoryContent,\r\n isCommentsModalOpen,\r\n course,\r\n commentModalTitle,\r\n comments,\r\n closeModalIntroductoryContent,\r\n openIntroductoryContent,\r\n formattedDuration,\r\n loadCourseCommentsModal,\r\n closeCommentsModal,\r\n toLocaleDateTime\r\n };\r\n }\r\n});\r\n","import { render } from \"./CourseTrack.vue?vue&type=template&id=c94d41b6&scoped=true&ts=true\"\nimport script from \"./CourseTrack.vue?vue&type=script&lang=ts\"\nexport * from \"./CourseTrack.vue?vue&type=script&lang=ts\"\n\nimport \"./CourseTrack.vue?vue&type=style&index=0&id=c94d41b6&lang=css\"\nimport \"./CourseTrack.vue?vue&type=style&index=1&id=c94d41b6&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c94d41b6\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderSlot as _renderSlot, resolveComponent as _resolveComponent, createVNode as _createVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-75e4fb18\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"comments-modal\" }\nconst _hoisted_2 = { class: \"comments-modal__header\" }\nconst _hoisted_3 = { class: \"comments-modal__header__top\" }\nconst _hoisted_4 = { class: \"comments-modal__title\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1))\nconst _hoisted_6 = { class: \"comments-modal__body\" }\nconst _hoisted_7 = { class: \"comments-modal__list\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Pagination = _resolveComponent(\"Pagination\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"comments-modal__close-area\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => ($setup.closeCommentsModal()))\n }, [\n _createElementVNode(\"div\", {\n class: \"comments-modal__container\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(() => {}, [\"stop\"]))\n }, [\n _createElementVNode(\"header\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h3\", _hoisted_4, _toDisplayString($props.title), 1),\n _createElementVNode(\"button\", {\n class: \"button-close\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => ($setup.closeCommentsModal()))\n })\n ]),\n _hoisted_5\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"ul\", _hoisted_7, [\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ])\n ]),\n _createVNode(_component_Pagination, {\n \"qt-pages\": $setup.commentsPage,\n currentPage: Number(_ctx.$route.query.pageDefault) || 1,\n onChangePage: _cache[1] || (_cache[1] = ($event: any) => ($options.updateQuery(_ctx.$router, 'pageDefault', $event)))\n }, null, 8, [\"qt-pages\", \"currentPage\"])\n ])\n ])\n ]))\n}","\r\nimport Pagination from \"../shop/PaginationDefault.vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { computed, ComputedRef } from \"@vue/runtime-core\";\r\nimport { removeQueries, updateQuery } from \"../../../utils/routing_utils\";\r\nimport router from \"@/routes\";\r\n\r\nexport default {\r\n name: \"CommentsModal\",\r\n methods: { updateQuery },\r\n components: { Pagination },\r\n props: {\r\n title: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n setup(props, { emit }) {\r\n const store = useStore();\r\n\r\n const commentsPage: ComputedRef = computed(\r\n () => store.getters[\"course_module/commentsPage\"]\r\n );\r\n\r\n const closeCommentsModal = async () => {\r\n await removeQueries(router, [\"pageDefault\", \"courseID\"]);\r\n await emit(\"closeCommentsModal\");\r\n };\r\n\r\n return {\r\n commentsPage,\r\n closeCommentsModal\r\n };\r\n }\r\n};\r\n","import { render } from \"./CommentsModal.vue?vue&type=template&id=75e4fb18&scoped=true&ts=true\"\nimport script from \"./CommentsModal.vue?vue&type=script&lang=ts\"\nexport * from \"./CommentsModal.vue?vue&type=script&lang=ts\"\n\nimport \"./CommentsModal.vue?vue&type=style&index=0&id=75e4fb18&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-75e4fb18\"]])\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"img/corporativa-icon.42af174a.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ContentFallback.vue?vue&type=style&index=0&id=c6d1ce32&scoped=true&lang=css\"","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./ContentFallback.vue?vue&type=template&id=c6d1ce32&scoped=true\"\nimport script from \"./ContentFallback.vue?vue&type=script&lang=js\"\nexport * from \"./ContentFallback.vue?vue&type=script&lang=js\"\n\nimport \"./ContentFallback.vue?vue&type=style&index=0&id=c6d1ce32&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c6d1ce32\"]])\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"img/logout.affd433b.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAAB8ElEQVRIieWWP08UQRjGfy+hseEChQFMtEAoIFELsdYEGxsTUfkExC9AZ01HZfwKxuSMITQ0WPAJSNAchXcUmoDGgoskaGN4KHZmM9zu7N56G0zkaWZ25v3tM/POnwxcNln4IakBLAGjkfjfwKaZdXq4m8Aj4EqEOwKaZvYz0yOpIWlf5TqRNB9w9yT96oPruIlljF/0AXu9Cbi3Fbhlzw0F3hO+YhEB2y5kMuDGXbldwHldyzO+UP0z4+Ea/iFXjkpaKIk9rdN4D3gA3Aa2SmJbvlJHqlfDHxaoCaz7j4FnbGbfJN0BbgFjkbAvZtYOG+pINWb2B9ipwoTG6cIXbBJ/lSpslDRMssaxq/armX3O7ZH0tMIN9CrgJiS1+mDeScruKUlDrrNMnySNB9zrCgNezKTazE6BZ5KmgRuRlB0BH92aes26chdYiXD+mM0B788ZBwNoA+3e9gL5u7hrZh/yAqR0S6SpzhhLmgGuR0y6wG7PjP9KqbFb+CawGA8HoCVpwcy+D2Ic7rInfZhCsk4vBzGF86meDeoPI/FrJOd1rk7jdPYFm6TrQwY1vtwPgUNfUXDwIjrI4e5X5FKzhpInaJlOJN0NuHnXVqa2pBHP5T3onwNTkRH/ADbMbL+HmwIeA1cjXIfkQX9ckpH/WGe73jgDYWQe1gAAAABJRU5ErkJggg==\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Layout1.vue?vue&type=style&index=0&id=c7b7b9d6&scoped=true&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Menu.vue?vue&type=style&index=0&id=02fc3520&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./CropperImageInput.vue?vue&type=style&index=0&id=af682c02&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Stories.vue?vue&type=style&index=1&id=0e4291c8&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./RegisterModal.vue?vue&type=style&index=0&id=7a63cd68&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MessageBox.vue?vue&type=style&index=0&id=e7877174&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./School.vue?vue&type=style&index=0&id=16df0f84&scoped=true&lang=css\"","import router from \"@/routes\";\r\nimport axios from \"axios\";\r\n/** Redirects the user to the login page and dispatches an error modal if they\r\n * do not have permission to access the requested resource and are also logged\r\n * in or only redirect them to the login page if they are not logged in.\r\n * @param e Error in an intercepted request. */\r\n\r\n/** Environment route configs. */\r\nlet baseURL = window.location.origin;\r\n\r\nif (process.env.NODE_ENV === \"development\") {\r\n const protocol = window.location.protocol;\r\n const hostname = window.location.hostname;\r\n const doubleSlash = \"//\";\r\n const port = \":8000\";\r\n baseURL = protocol + doubleSlash + hostname + port;\r\n}\r\n\r\n/** Responsible to redirect student dev panel to adm dev panel or production student panel to production adm panel by clicking on menu. */\r\nexport const currentDomain = baseURL;\r\n/** The axios instance containing the axios request config. */\r\nconst http = axios.create({\r\n withCredentials: true,\r\n baseURL,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n },\r\n});\r\n\r\n/** Response interceptor (intercepts all responses from any request made using axios in the app). */\r\nhttp.interceptors.response.use(\r\n (response) => {\r\n return response;\r\n },\r\n async (e) => {\r\n await handleAccess(e);\r\n return Promise.reject(e);\r\n }\r\n);\r\n\r\nconst handleAccess = async (e) => {\r\n const isUserNotAllowed: boolean = e?.response?.status === 403;\r\n\r\n if (isUserNotAllowed) {\r\n await router.push({ name: \"home\" });\r\n }\r\n\r\n return;\r\n};\r\n\r\nexport default http;\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NewPassword.vue?vue&type=style&index=0&id=226251d5&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Course.vue?vue&type=style&index=0&id=03f5a269&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/logo-hub-white.cf0e880d.png\";","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../../assets/static/footer/instagram.svg'\nimport _imports_1 from '../../../assets/static/footer/linkedin.svg'\nimport _imports_2 from '../../../assets/static/global-outlined-white.svg'\nimport _imports_3 from '../../../assets/static/footer/facebook.svg'\nimport _imports_4 from '../../../assets/static/footer/tiktok.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5f86427c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"footer\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = { class: \"footer-content\" }\nconst _hoisted_4 = { class: \"footer-content__social\" }\nconst _hoisted_5 = { class: \"footer-content__social-links\" }\nconst _hoisted_6 = [\"href\"]\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"Instagram\"\n}, null, -1))\nconst _hoisted_8 = [\n _hoisted_7\n]\nconst _hoisted_9 = [\"href\"]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_1,\n alt: \"Linkedin\"\n}, null, -1))\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = {\n key: 1,\n target: \"_blank\",\n href: \"https://circulo.com.br/\",\n class: \"icon-linkedin\",\n title: \"Site Círculo\"\n}\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_2,\n alt: \"site\"\n}, null, -1))\nconst _hoisted_14 = [\n _hoisted_13\n]\nconst _hoisted_15 = {\n key: 2,\n target: \"_blank\",\n href: \"https://www.facebook.com/circuloprodutos\",\n class: \"icon-linkedin\",\n title: \"Facebook\"\n}\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_3,\n alt: \"Facebook\"\n}, null, -1))\nconst _hoisted_17 = [\n _hoisted_16\n]\nconst _hoisted_18 = {\n key: 3,\n target: \"_blank\",\n href: \"https://www.tiktok.com/@circuloprodutos\",\n class: \"icon-linkedin\",\n title: \"Tiktok\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_4,\n alt: \"Tiktok\"\n}, null, -1))\nconst _hoisted_20 = [\n _hoisted_19\n]\nconst _hoisted_21 = { class: \"footer-content__contact\" }\nconst _hoisted_22 = { class: \"footer-content__contact-address\" }\nconst _hoisted_23 = [\"href\"]\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-content__credits\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", null, \"Powered by\"),\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://www.lincetec.com.br/\",\n target: \"_blank\",\n title: \"Lince Tech\",\n class: \"footer-content__credits-image\"\n })\n], -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"footer\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"img\", {\n src: _ctx.logo,\n alt: \"Logo do Decola\",\n class: \"footer-logo\"\n }, null, 8, _hoisted_2),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"a\", {\n target: \"_blank\",\n href: _ctx.instagram,\n class: \"icon-instagram\",\n title: \"Instagram\"\n }, _hoisted_8, 8, _hoisted_6),\n (!_ctx.isCirculoTemplate)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n target: \"_blank\",\n href: _ctx.linkedin,\n class: \"icon-linkedin\",\n title: \"Linkedin\"\n }, _hoisted_11, 8, _hoisted_9))\n : _createCommentVNode(\"\", true),\n (_ctx.isCirculoTemplate)\n ? (_openBlock(), _createElementBlock(\"a\", _hoisted_12, _hoisted_14))\n : _createCommentVNode(\"\", true),\n (_ctx.isCirculoTemplate)\n ? (_openBlock(), _createElementBlock(\"a\", _hoisted_15, _hoisted_17))\n : _createCommentVNode(\"\", true),\n (_ctx.isCirculoTemplate)\n ? (_openBlock(), _createElementBlock(\"a\", _hoisted_18, _hoisted_20))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"address\", _hoisted_22, [\n _createElementVNode(\"a\", {\n href: `malito:` + _ctx.email,\n title: \"E-mail\"\n }, _toDisplayString(_ctx.email), 9, _hoisted_23),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.phone), 1)\n ])\n ])\n ]),\n _hoisted_24\n ]),\n _createElementVNode(\"span\", null, \" Copyright © \" + _toDisplayString(_ctx.getCurrentYear()) + \" Lince Tech. Todos os direitos reservados. \", 1)\n ]))\n}","\r\nimport { defineComponent, onBeforeMount, ref } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"Footer\",\r\n setup() {\r\n const email = ref(\"\");\r\n const phone = ref(\"\");\r\n const logo = ref(\"\");\r\n const instagram = ref(\"\");\r\n const linkedin = ref(\"\");\r\n const isCirculoTemplate = ref(false);\r\n\r\n onBeforeMount(async () => {\r\n await loadInformation();\r\n });\r\n\r\n const loadInformation = (): void => {\r\n switch (process.env.VUE_APP_THEME) {\r\n case \"circulo\":\r\n logo.value = require(\"../../../assets/static/companies_logos/ganhemais-white.svg\");\r\n phone.value = \"0800-648-2966\";\r\n email.value = \"sac.circulo@circulo.com.br\";\r\n isCirculoTemplate.value = true;\r\n instagram.value = \"https://www.instagram.com/circuloprodutos/\";\r\n break;\r\n case \"construcolor\":\r\n logo.value = require(\"../../../assets/static/decola_logos/logo04_sem_slogan.svg\");\r\n phone.value = \"(47) 99918 - 7801\";\r\n email.value = \"midia@construcolor.com.br\";\r\n instagram.value = \"https://www.instagram.com/construcolor\";\r\n linkedin.value = \"https://www.linkedin.com/company/construcolor/\";\r\n break;\r\n default:\r\n logo.value = require(\"../../../assets/static/decola_logos/logo04_sem_slogan.svg\");\r\n phone.value = \"(47) 3331 - 9700\";\r\n email.value = \"decola@lince.com.br\";\r\n instagram.value = \"https://www.instagram.com/lincetech/\";\r\n linkedin.value =\r\n \"https://br.linkedin.com/company/lince-participa%C3%A7%C3%B5es-e-empreendimentos-ltda\";\r\n }\r\n };\r\n\r\n const getCurrentYear = (): number => {\r\n const currentDate = new Date();\r\n\r\n return currentDate.getFullYear();\r\n };\r\n\r\n return {\r\n email,\r\n logo,\r\n phone,\r\n instagram,\r\n linkedin,\r\n isCirculoTemplate,\r\n getCurrentYear\r\n };\r\n }\r\n});\r\n","import { render } from \"./Footer.vue?vue&type=template&id=5f86427c&scoped=true&ts=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=5f86427c&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5f86427c\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TUIViewer.vue?vue&type=style&index=0&id=7b7e77bc&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Dashboard.vue?vue&type=style&index=1&id=62cec597&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./modernInput.vue?vue&type=style&index=0&id=6ef81a04&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/operacoes-icon.4430280c.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Call.vue?vue&type=style&index=0&id=288f2740&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Card.vue?vue&type=style&index=0&id=9b216466&scoped=true&lang=css\"","import {\r\n ContentComment,\r\n Course,\r\n CourseCertificate,\r\n FilterCourse,\r\n Instructor,\r\n UserCourse\r\n} from \"../../../domain/entities/entities\";\r\nimport { CourseRepository } from \"../repository\";\r\nimport http from \"../http/index\";\r\nimport { Receipt } from \"../../../domain/entities/shop/order/receipt\";\r\nimport { wrapErrorHandler } from \"../utils/wrap_error_handler\";\r\nimport { ListResponse } from \"../../../domain/entities/shop/product/listResponse\";\r\nimport { Order } from \"../../../domain/entities/order\";\r\n\r\nfunction encodeFilterToURL(filter: FilterCourse): string {\r\n /** Concatenates the array of category ids with the string '&' and strips all spaces. */\r\n const schools = filter.schools\r\n .map(id => `school=${id}`)\r\n .join(\"&\")\r\n .trim();\r\n\r\n /** Concatenates the array of shops ids with the string '&' and strips all spaces. */\r\n const courseTracks = filter.courseTracks\r\n .map(id => `courseTrack=${id}`)\r\n .join(\"&\")\r\n .trim();\r\n\r\n /** Variable that receives all formatted parameters.\r\n * Ex.: category=1&category=3&shop=8&interval=(10,20) */\r\n let params = \"\";\r\n\r\n /** Checks if there are categories inside the array.\r\n * If it exists, it is checked if there are already parameters in the URl.\r\n * If so, the string '&' is added.\r\n * If it doesn't mean it is the first parameter of the URL then the string '?' is added. */\r\n if (filter.schools.length) {\r\n params += params.length ? `&${schools}` : `?${schools}`;\r\n }\r\n\r\n if (filter.courseTracks.length) {\r\n params += params.length ? `&${courseTracks}` : `?${courseTracks}`;\r\n }\r\n\r\n return params;\r\n}\r\n\r\nclass _CourseRepository implements CourseRepository {\r\n async get(courseID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(`/api/decola/course/list/id/${courseID}`);\r\n return response.data.course;\r\n });\r\n }\r\n\r\n async list(\r\n page: number,\r\n filter: FilterCourse\r\n ): Promise> {\r\n return wrapErrorHandler>(async () => {\r\n const currentBodyWidth = document.body.offsetWidth;\r\n\r\n const params: URLSearchParams = new URLSearchParams();\r\n const limit: number = currentBodyWidth >= 1400 ? 25 : 24;\r\n\r\n if (page) {\r\n params.append(\"page\", String(page));\r\n params.append(\"limit\", String(limit));\r\n }\r\n\r\n const response = await http.get(\r\n `/api/decola/course/list${encodeFilterToURL(filter)}`,\r\n { params }\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n async listNewCourses(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"/api/course/list/new\");\r\n return response.data.courses;\r\n });\r\n }\r\n\r\n async listRecommendedCourses(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\r\n \"/api/decola/list/courses/recommendation\"\r\n );\r\n return response.data.courses;\r\n });\r\n }\r\n\r\n listByCourseTrack(\r\n order: Order,\r\n courseTrackID: number\r\n ): Promise> {\r\n return wrapErrorHandler>(async () => {\r\n const response = await http.get(\r\n `/api/decola/course/courseTrack/${courseTrackID}`,\r\n {\r\n params: {\r\n page: order.page,\r\n limit: 20\r\n }\r\n }\r\n );\r\n\r\n return response.data;\r\n });\r\n }\r\n\r\n enrollInCourse(courseID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(`/api/decola/enroll/${courseID}`);\r\n return response.data;\r\n });\r\n }\r\n\r\n userCourseSituation(courseID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(`/api/decola/enroll/${courseID}`);\r\n return response.data;\r\n });\r\n }\r\n\r\n finishCourse(courseID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(`/api/decola/course/finish/${courseID}`);\r\n return response.data;\r\n });\r\n }\r\n\r\n async createReceipt(orderID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(`/api/decola/receipt/${orderID}`);\r\n return response.data;\r\n });\r\n }\r\n\r\n getCertificate = (courseID: number): Promise => {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(`/api/decola/certificate/${courseID}`);\r\n return response.data;\r\n });\r\n };\r\n\r\n async listBySearch(order: Order): Promise> {\r\n return wrapErrorHandler>(async () => {\r\n const response = await http.get(`/api/decola/course/globalSearch`, {\r\n params: {\r\n page: order.page,\r\n limit: order.limit,\r\n search: order.search\r\n }\r\n });\r\n return response.data;\r\n });\r\n }\r\n\r\n getComments(\r\n courseId: number,\r\n order: Order\r\n ): Promise> {\r\n return wrapErrorHandler>(async () => {\r\n const response = await http.get(`/api/decola/rate/${courseId}`, {\r\n params: {\r\n page: order.pageDefault,\r\n limit: 15,\r\n search: order.search\r\n }\r\n });\r\n return response.data;\r\n });\r\n }\r\n\r\n getInstructors(courseID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\r\n `/api/decola/courses/${courseID}/instructors`\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n leaveCourse(courseID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(`/api/decola/remove/progress/course/${courseID}`);\r\n return response.data;\r\n });\r\n }\r\n}\r\n\r\nexport const interfaceCourseRepository: CourseRepository = new _CourseRepository();\r\n","import {\r\n ContentComment,\r\n Course,\r\n CourseCertificate,\r\n FilterCourse,\r\n Instructor,\r\n UserCourse\r\n} from \"domain/entities/entities\";\r\nimport { interfaceCourseRepository } from \"../../../infrastructure/repository/impl/course_repository\";\r\nimport { ListResponse } from \"../../entities/shop/product/listResponse\";\r\nimport { Order } from \"../../entities/order\";\r\n\r\nexport interface CourseUseCases {\r\n get(courseID: number): Promise;\r\n\r\n list(page: number, filter?: FilterCourse): Promise>;\r\n\r\n listRecommendedCourses(): Promise;\r\n\r\n listByCourseTrack(\r\n order: Order,\r\n courseTrackID: number\r\n ): Promise>;\r\n\r\n enrollInCourse(courseID: number): Promise;\r\n\r\n userCourseSituation(courseID: number): Promise;\r\n\r\n finishCourse(courseID: number): Promise;\r\n\r\n listNewCourses(): Promise;\r\n\r\n getCertificate(courseID: number): Promise;\r\n\r\n listBySearch(order: Order): Promise>;\r\n\r\n getComments(\r\n courseId: number,\r\n order: Order\r\n ): Promise>;\r\n\r\n getInstructors(courseID: number): Promise;\r\n\r\n leaveCourse(courseID: number): Promise;\r\n}\r\n\r\nclass _CourseUseCases implements CourseUseCases {\r\n async get(courseID: number): Promise {\r\n return await interfaceCourseRepository.get(courseID);\r\n }\r\n\r\n async list(\r\n page: number,\r\n filter?: FilterCourse\r\n ): Promise> {\r\n return await interfaceCourseRepository.list(page, filter);\r\n }\r\n\r\n async listRecommendedCourses(): Promise {\r\n return await interfaceCourseRepository.listRecommendedCourses();\r\n }\r\n\r\n async listByCourseTrack(\r\n order: Order,\r\n courseTrackID: number\r\n ): Promise> {\r\n return await interfaceCourseRepository.listByCourseTrack(\r\n order,\r\n courseTrackID\r\n );\r\n }\r\n\r\n async enrollInCourse(courseID: number): Promise {\r\n return await interfaceCourseRepository.enrollInCourse(courseID);\r\n }\r\n\r\n async userCourseSituation(courseID: number): Promise {\r\n return await interfaceCourseRepository.userCourseSituation(courseID);\r\n }\r\n\r\n async finishCourse(courseID: number): Promise {\r\n await interfaceCourseRepository.finishCourse(courseID);\r\n }\r\n\r\n async listNewCourses(): Promise {\r\n return await interfaceCourseRepository.listNewCourses();\r\n }\r\n\r\n getCertificate = async (courseID: number): Promise => {\r\n return await interfaceCourseRepository.getCertificate(courseID);\r\n };\r\n\r\n async listBySearch(order: Order): Promise> {\r\n return await interfaceCourseRepository.listBySearch(order);\r\n }\r\n\r\n async getComments(\r\n courseId: number,\r\n order: Order\r\n ): Promise> {\r\n return await interfaceCourseRepository.getComments(courseId, order);\r\n }\r\n\r\n async getInstructors(courseID: number): Promise {\r\n return await interfaceCourseRepository.getInstructors(courseID);\r\n }\r\n\r\n async leaveCourse(courseID: number): Promise {\r\n return await interfaceCourseRepository.leaveCourse(courseID);\r\n }\r\n}\r\n\r\nexport const InterfaceCourseUseCases: CourseUseCases = new _CourseUseCases();\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NotificationButton.vue?vue&type=style&index=0&id=f57ebbc6&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/global-outlined-white.29f490aa.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AlertBox.vue?vue&type=style&index=0&id=34908b4e&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NotificationItem.vue?vue&type=style&index=0&id=571bbdf3&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Stories.vue?vue&type=style&index=0&id=0e4291c8&lang=css\"","module.exports = __webpack_public_path__ + \"img/dashboard.a3d09ce0.svg\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Layout6.vue?vue&type=style&index=0&id=5ebc1e53&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Comment.vue?vue&type=style&index=0&id=3d137d1e&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./RegisterModal.vue?vue&type=style&index=1&id=7a63cd68&scoped=true&lang=css\"","import { RepositoryException } from \"../../../domain/exceptions/exceptions\";\r\n\r\nexport async function wrapErrorHandler(\r\n callback: () => Promise\r\n): Promise {\r\n try {\r\n return await callback();\r\n } catch (e) {\r\n const errorResponse = e.response;\r\n const webServiceError = e?.response?.data;\r\n\r\n if (e?.response?.status === 403) {\r\n throw new RepositoryException(\r\n \"Faça seu login novamente.\",\r\n \"ACCESS_SESSION_EXPIRED\"\r\n );\r\n }\r\n\r\n if (!errorResponse) {\r\n throw new RepositoryException(\"Erro de conexão.\", \"UNEXPECTED_ERROR\");\r\n }\r\n\r\n if (!webServiceError || !webServiceError.code || !webServiceError.message) {\r\n console.error(e);\r\n throw new RepositoryException(\r\n \"Ocorreu um erro inesperado.\",\r\n \"UNEXPECTED_ERROR\"\r\n );\r\n }\r\n\r\n if (webServiceError.code === \"UNEXPECTED_ERROR\") {\r\n console.error(webServiceError.message);\r\n throw new RepositoryException(\r\n \"Ocorreu um erro inesperado.\",\r\n \"UNEXPECTED_ERROR\"\r\n );\r\n }\r\n\r\n throw new RepositoryException(\r\n webServiceError.message,\r\n webServiceError.code\r\n );\r\n }\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Pill.vue?vue&type=style&index=0&id=24a5810b&scoped=true&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Layout4.vue?vue&type=style&index=0&id=4a281cfb&scoped=true&lang=css\"","import { resolveComponent as _resolveComponent, createVNode as _createVNode, resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, Transition as _Transition, withCtx as _withCtx, createElementVNode as _createElementVNode, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-27181619\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"moldure\",\n \"data-top-element\": \"\"\n}\nconst _hoisted_2 = { class: \"moldure__content\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_my_menu = _resolveComponent(\"my-menu\")!\n const _component_my_header = _resolveComponent(\"my-header\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_FooterGTop = _resolveComponent(\"FooterGTop\")!\n const _component_my_footer = _resolveComponent(\"my-footer\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_my_menu, {\n \"is-open\": _ctx.isMenuOpen,\n items: _ctx.menuItems,\n \"user-already-toggle\": _ctx.userAlreadyToggle\n }, null, 8, [\"is-open\", \"items\", \"user-already-toggle\"]),\n _createVNode(_component_my_header, {\n class: \"moldure__header\",\n onToggleMenu: _ctx.toggleMenu\n }, null, 8, [\"onToggleMenu\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_router_view, null, {\n default: _withCtx(({ Component }) => [\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_resolveDynamicComponent(Component)))\n ]),\n _: 2\n }, 1024)\n ]),\n _: 1\n })\n ]),\n (_ctx.isGTopTemplate())\n ? (_openBlock(), _createBlock(_component_FooterGTop, { key: 0 }))\n : (_openBlock(), _createBlock(_component_my_footer, { key: 1 }))\n ]))\n}","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, normalizeClass as _normalizeClass, withModifiers as _withModifiers } from \"vue\"\nimport _imports_0 from '../../../../assets/static/decola_logos/logo04_sem_slogan.svg'\n\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n width: \"150\",\n class: \"menu__logo\",\n alt: \"Logo do Decola.\"\n}, null, -1)\nconst _hoisted_2 = { class: \"menu__list\" }\nconst _hoisted_3 = [\"src\", \"alt\"]\nconst _hoisted_4 = [\"href\", \"target\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"nav\", {\n class: _normalizeClass([\r\n 'menu',\r\n { expand: _ctx.isOpen },\r\n { collapse: !_ctx.isOpen && _ctx.userAlreadyToggle },\r\n ])\n }, [\n _hoisted_1,\n _createElementVNode(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: \"menu__item\",\n key: index\n }, [\n _createElementVNode(\"img\", {\n width: \"25\",\n height: \"25\",\n src: require(`../../../../assets/static/main-menu/${item.image}`),\n alt: `Ícone de ${item.title}`\n }, null, 8, _hoisted_3),\n (item.route.target)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: item.route.path,\n target: item.route.target,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('toggle-menu')))\n }, _toDisplayString(item.title), 9, _hoisted_4))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n to: { name: item.route.name, params: item.route.params },\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('toggle-menu')))\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.title), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n ]))\n }), 128))\n ])\n ], 2),\n (_ctx.isOpen)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.$emit('toggle-menu')), [\"prevent\"])),\n class: \"menu__trigger-area\"\n }))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","\r\nimport {defineComponent, PropType} from \"vue\";\r\nimport {MenuItem} from \"./MenuItem\";\r\n\r\nexport default defineComponent({\r\n props: {\r\n isOpen: {\r\n required: true,\r\n type: Boolean,\r\n },\r\n items: {\r\n type: Array as PropType,\r\n default: [],\r\n },\r\n userAlreadyToggle: {\r\n required: true,\r\n type: Boolean,\r\n },\r\n },\r\n});\r\n","import { render } from \"./Menu.vue?vue&type=template&id=02fc3520&ts=true\"\nimport script from \"./Menu.vue?vue&type=script&lang=ts\"\nexport * from \"./Menu.vue?vue&type=script&lang=ts\"\n\nimport \"./Menu.vue?vue&type=style&index=0&id=02fc3520&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport Header from \"./Header.vue\";\r\nimport Menu from \"./menu/Menu.vue\";\r\nimport Footer from \"./Footer.vue\";\r\nimport { getMenuItems } from \"./menu/MenuItemsLoader\";\r\nimport { defineComponent, Ref, ref } from \"vue\";\r\nimport FooterGTop from \"../../landingpageGTop/Footer.vue\";\r\nimport { isGTopTemplate } from \"../../mixins\";\r\n\r\nexport default defineComponent({\r\n components: {\r\n FooterGTop,\r\n \"my-menu\": Menu,\r\n \"my-header\": Header,\r\n \"my-footer\": Footer\r\n },\r\n\r\n setup() {\r\n /** Controls menu's state. */\r\n const isMenuOpen: Ref = ref(false);\r\n\r\n /** Contains all the menu's items. */\r\n const menuItems = getMenuItems();\r\n\r\n /** Used to control the close animation. */\r\n const userAlreadyToggle: Ref = ref(false);\r\n\r\n /** Used to toggle the menu. Can be called by an event coming from the menu\r\n * or from the header that contains the menu. */\r\n const toggleMenu = (): void => {\r\n isMenuOpen.value = !isMenuOpen.value;\r\n if (!userAlreadyToggle.value) userAlreadyToggle.value = true;\r\n };\r\n\r\n return {\r\n toggleMenu,\r\n isGTopTemplate,\r\n isMenuOpen,\r\n menuItems,\r\n userAlreadyToggle\r\n };\r\n }\r\n});\r\n","import { render } from \"./Moldure.vue?vue&type=template&id=27181619&scoped=true&ts=true\"\nimport script from \"./Moldure.vue?vue&type=script&lang=ts\"\nexport * from \"./Moldure.vue?vue&type=script&lang=ts\"\n\nimport \"./Moldure.vue?vue&type=style&index=0&id=27181619&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-27181619\"]])\n\nexport default __exports__","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./InputPassword.vue?vue&type=style&index=0&id=8fc5c298&scoped=true&lang=css\"","import {onMounted, onUnmounted, Ref, ref} from \"vue\";\r\n\r\n/** Sets event listeners for each type of mouse event so that unexpected\r\n * behavior caused by the `vue3-carousel` component is avoided.\r\n * The way this is done is by exposing a `Ref` that will always\r\n * tell if the given tag(s) is(are) allowed to perform a click safely without\r\n * messing up with the carousel dragging behavior.\r\n * @param className CSS class of the element(s) you want to handle the clicks. */\r\nexport const useCarouselMouseEvents = (\r\n className: string\r\n): {\r\n isAllowedToClick: Ref;\r\n} => {\r\n const isMouseDown: Ref = ref(false);\r\n const isDragging: Ref = ref(false);\r\n const isAllowedToClick: Ref = ref(false);\r\n\r\n const onMouseDown = (): void => {\r\n isAllowedToClick.value = false;\r\n isMouseDown.value = true;\r\n };\r\n\r\n const onMouseMove = (): void => {\r\n isDragging.value = isMouseDown.value;\r\n };\r\n\r\n const onMouseUp = async (): Promise => {\r\n isAllowedToClick.value = !isDragging.value;\r\n isMouseDown.value = false;\r\n isDragging.value = false;\r\n };\r\n\r\n onMounted(() => {\r\n const elements = document.getElementsByClassName(className);\r\n for (let element of elements) {\r\n element.addEventListener(\"mousedown\", onMouseDown);\r\n element.addEventListener(\"mousemove\", onMouseMove);\r\n element.addEventListener(\"mouseup\", onMouseUp);\r\n element.addEventListener(\"touchstart\", onMouseDown);\r\n element.addEventListener(\"touchmove\", onMouseMove);\r\n element.addEventListener(\"touchend\", onMouseUp);\r\n }\r\n });\r\n\r\n onUnmounted(() => {\r\n const elements = document.getElementsByClassName(className);\r\n for (let element of elements) {\r\n element.removeEventListener(\"mousedown\", onMouseDown);\r\n element.removeEventListener(\"mousemove\", onMouseMove);\r\n element.removeEventListener(\"mouseup\", onMouseUp);\r\n element.removeEventListener(\"touchstart\", onMouseDown);\r\n element.removeEventListener(\"touchmove\", onMouseMove);\r\n element.removeEventListener(\"touchend\", onMouseUp);\r\n }\r\n });\r\n\r\n return { isAllowedToClick };\r\n};\r\n","export class Order {\r\n public page: number;\r\n public pageDefault: number;\r\n public limit: number;\r\n public search: string;\r\n\r\n constructor(page = 1, pageDefault = 1, limit = 1, search = \"\") {\r\n this.page = page;\r\n this.pageDefault = pageDefault;\r\n this.limit = limit;\r\n this.search = search;\r\n }\r\n}\r\n","import { RouteLocationNormalizedLoaded } from \"vue-router\";\r\nimport { Order } from \"../../../domain/entities/order\";\r\nexport const getOrderFromURL = (\r\n route: RouteLocationNormalizedLoaded\r\n): Order => {\r\n const search =\r\n route.query.search?.toString() !== undefined\r\n ? route.query.search.toString()\r\n : \"\";\r\n const page = Number(route.query.page) || undefined;\r\n const pageDefault = Number(route.query.pageDefault) || undefined;\r\n const limit = Number(route.query.limit) || undefined;\r\n\r\n return new Order(page, pageDefault, limit, search);\r\n};\r\n","import { User } from \"./entities\";\r\n\r\nexport class Rating {\r\n readonly id: number;\r\n public stars: number;\r\n public message: string;\r\n readonly likes: UserLikes[];\r\n readonly userName: string;\r\n readonly userImage: string;\r\n readonly userID: number;\r\n readonly createdAt: string;\r\n\r\n constructor(stars: number, message: string) {\r\n this.id = 0;\r\n this.stars = stars;\r\n this.message = message;\r\n this.likes = [];\r\n this.userName = \"\";\r\n this.userImage = \"\";\r\n this.createdAt = \"\";\r\n this.userID = 0;\r\n }\r\n}\r\n\r\nexport class UserLikes {\r\n userID: number;\r\n userName: string;\r\n userImage: string;\r\n\r\n constructor(userID = 0, userName = \"\", userImage = \"\") {\r\n this.userID = userID;\r\n this.userName = userName;\r\n this.userImage = userImage;\r\n }\r\n}\r\n\r\nexport class RatingList {\r\n public ratings: Rating[];\r\n public haveRatings: boolean;\r\n\r\n constructor(ratings = [], haveRatings = false) {\r\n this.ratings = ratings;\r\n this.haveRatings = haveRatings;\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/ganhemais02.2dd22dfe.svg\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LoginForm.vue?vue&type=style&index=0&id=107273db&scoped=true&lang=css\"","import { withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-03f5a269\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 1,\n class: \"finished-flag\"\n}\nconst _hoisted_2 = {\n key: 2,\n class: \"progress-flag\"\n}\nconst _hoisted_3 = { class: \"card__content\" }\nconst _hoisted_4 = [\"title\"]\nconst _hoisted_5 = { class: \"card__information\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"decoins\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n \"data-ls-module\": \"progressBar\",\n role: \"progressbar\",\n \"aria-valuenow\": \"60\"\n}, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_VideoPlayButton = _resolveComponent(\"VideoPlayButton\")!\n const _component_ButtonComment = _resolveComponent(\"ButtonComment\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"card\",\n onClick: _cache[8] || (_cache[8] = ($event: any) => (_ctx.goToCourse()))\n }, [\n (_ctx.course.haveCertification)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n onMousemove: _cache[0] || (_cache[0] = _withModifiers(() => {}, [\"stop\"])),\n title: \"Certificado\",\n class: \"card__certificate\"\n }, null, 32))\n : _createCommentVNode(\"\", true),\n (_ctx.course.statusCourse.finished)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, \"Concluído\"))\n : _createCommentVNode(\"\", true),\n (_ctx.course.statusCourse.progress)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, \"Em andamento\"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass(['card__img', { finished: _ctx.course.statusCourse.finished }])\n }, [\n (_ctx.course.hasNewContent)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n onMousemove: _cache[1] || (_cache[1] = _withModifiers(() => {}, [\"stop\"])),\n class: \"card__new_contents\"\n }, null, 32))\n : _createCommentVNode(\"\", true),\n (_ctx.isNewCourse())\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n onMousemove: _cache[2] || (_cache[2] = _withModifiers(() => {}, [\"stop\"])),\n class: \"card__release_course\"\n }, null, 32))\n : _createCommentVNode(\"\", true),\n (_ctx.course.introductoryContent)\n ? (_openBlock(), _createBlock(_component_VideoPlayButton, {\n key: 2,\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.openIntroductoryContent())),\n class: \"video-play-button\"\n }))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", {\n class: \"card__title\",\n title: _ctx.course.title,\n onMousemove: _cache[4] || (_cache[4] = _withModifiers(() => {}, [\"stop\"]))\n }, _toDisplayString(_ctx.course.title), 41, _hoisted_4),\n _createElementVNode(\"div\", _hoisted_5, [\n (_ctx.course.haveDecoins && _ctx.isDecolaTemplate())\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", null, [\n (_ctx.course.duration)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n onMousemove: _cache[5] || (_cache[5] = _withModifiers(() => {}, [\"stop\"])),\n class: \"card__duration\",\n title: \"Duração\"\n }, _toDisplayString(_ctx.formattedDuration(_ctx.course.duration)), 33))\n : _createCommentVNode(\"\", true),\n (Number(_ctx.course.rating) > 0)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n onMousemove: _cache[6] || (_cache[6] = _withModifiers(() => {}, [\"stop\"])),\n class: \"card__rating\",\n title: \"Avaliação\"\n }, _toDisplayString(parseFloat(_ctx.course.rating.toString()).toFixed(1)), 33))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.course.haveComments)\n ? (_openBlock(), _createBlock(_component_ButtonComment, {\n key: 1,\n class: \"card__comments\",\n onClick: _cache[7] || (_cache[7] = ($event: any) => (_ctx.openComment()))\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _hoisted_7\n ])\n ]))\n}","\r\nimport { computed, ComputedRef, defineComponent, PropType } from \"vue\";\r\nimport { Course } from \"../../../../domain/entities/entities\";\r\nimport { formattedDuration, isDecolaTemplate } from \"../mixins\";\r\nimport ModalIntroductoryContent from \"./ModalIntroductoryContent.vue\";\r\nimport VideoPlayButton from \"./buttons/VideoPlay.vue\";\r\nimport ButtonComment from \"./DashboardComments/ButtonComment.vue\";\r\nimport { useCarouselMouseEvents } from \"../composables/carousel_mouse_events\";\r\n\r\nconst __default__ = defineComponent({\r\n components: {\r\n ButtonComment,\r\n ModalIntroductoryContent,\r\n VideoPlayButton\r\n },\r\n props: {\r\n course: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n setup(props, { emit }) {\r\n const backgroundImage: ComputedRef = computed(() => {\r\n return `url(${props.course.imageURL})`;\r\n });\r\n\r\n const { isAllowedToClick: isAllowedToOpenComment } = useCarouselMouseEvents(\r\n \"card__comments\"\r\n );\r\n const { isAllowedToClick: isAllowedToOpenIntro } = useCarouselMouseEvents(\r\n \"video-play-button\"\r\n );\r\n const { isAllowedToClick: isAllowedToGoToCourse } = useCarouselMouseEvents(\r\n \"card\"\r\n );\r\n\r\n /** Boolean used to tell when a click event has been fired\r\n * from below the `div.card` in the DOM tree. */\r\n let hasLowLevelActions = false;\r\n\r\n const openComment = (): void => {\r\n if (isAllowedToOpenComment.value) {\r\n emit(\"loadCourseCommentsModal\");\r\n hasLowLevelActions = true;\r\n }\r\n };\r\n\r\n const openIntroductoryContent = (): void => {\r\n if (isAllowedToOpenIntro.value) {\r\n emit(\"openIntroductoryContent\");\r\n hasLowLevelActions = true;\r\n }\r\n };\r\n\r\n const goToCourse = async (): Promise => {\r\n if (isAllowedToGoToCourse.value && !hasLowLevelActions) {\r\n emit(\"openCourse\");\r\n }\r\n hasLowLevelActions = false;\r\n };\r\n\r\n const isNewCourse = (): boolean => {\r\n if (props.course.releaseStartDate && props.course.releaseEndDate) {\r\n return (\r\n getToday() >= props.course.releaseStartDate &&\r\n getToday() <= props.course.releaseEndDate\r\n );\r\n }\r\n return (\r\n getToday() >= props.course.releaseStartDate ||\r\n getToday() <= props.course.releaseEndDate\r\n );\r\n };\r\n\r\n const getToday = (): string => {\r\n return new Date().toISOString().slice(0, 10);\r\n };\r\n\r\n return {\r\n backgroundImage,\r\n isNewCourse,\r\n formattedDuration,\r\n openIntroductoryContent,\r\n openComment,\r\n goToCourse,\r\n isDecolaTemplate\r\n };\r\n }\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"17785c11\": (_ctx.backgroundImage)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./Course.vue?vue&type=template&id=03f5a269&scoped=true&ts=true\"\nimport script from \"./Course.vue?vue&type=script&lang=ts\"\nexport * from \"./Course.vue?vue&type=script&lang=ts\"\n\nimport \"./Course.vue?vue&type=style&index=0&id=03f5a269&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-03f5a269\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./RegisterModal.vue?vue&type=style&index=1&id=5be5b1cc&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/shop.90395544.svg\";","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=0fc349eb&lang=css\"","module.exports = __webpack_public_path__ + \"img/biggest-planet.8a001ee5.svg\";","import {BusinessRuleException, RepositoryException} from \"../../../domain/exceptions/exceptions\";\r\nimport {dispatchErrorBox} from \"../components/mixins\";\r\n\r\nexport const unexpectedErrorMessage = \"Ocorreu um erro inesperado.\"\r\n\r\nexport async function dispatchError(e: unknown, messageOnUnexpectedError?: string): Promise {\r\n console.error(e);\r\n if (e instanceof BusinessRuleException) {\r\n const errors = e.errors;\r\n const firstErrorMessage = errors[0].message;\r\n await dispatchErrorBox(firstErrorMessage);\r\n } else if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n await dispatchErrorBox(messageOnUnexpectedError ? messageOnUnexpectedError : unexpectedErrorMessage);\r\n }\r\n}\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./OnboardingBox.vue?vue&type=style&index=0&id=3ebdc8eb&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ResetPassword.vue?vue&type=style&index=0&id=11b17742&scoped=true&lang=css\"","\r\n\r\n\r\n\r\n\r\n","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4162e74c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"box\",\n \"data-box\": \"\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _toDisplayString(_ctx.error.message), 1))\n}","\r\nimport store from \"../../../../infrastructure/repository/store/store\";\r\nimport { defineComponent, onMounted, watch } from \"vue\";\r\n\r\nclass Error {\r\n public message: string;\r\n public changed: boolean;\r\n\r\n constructor(message = \"\", changed = false) {\r\n this.message = message;\r\n this.changed = changed;\r\n }\r\n}\r\n\r\nexport default defineComponent({\r\n props: {\r\n error: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n\r\n /**\r\n * note: wouldn't it make more sense to approach this with class binding? it'd probably be less verbose\r\n * +todo: document the whole thing\r\n */\r\n setup(props) {\r\n onMounted(() => {\r\n const box = document.querySelector(\"[data-box]\") as HTMLDivElement;\r\n box.addEventListener(\"animationend\", () => {\r\n if (box.classList.contains(\"open\")) {\r\n box.classList.remove(\"open\");\r\n box.classList.add(\"close\");\r\n store.dispatch(\"miscellany_module/setError\", {\r\n message: props.error.message,\r\n changed: false\r\n });\r\n }\r\n });\r\n });\r\n\r\n watch(\r\n () => props.error.changed,\r\n () => {\r\n if (props.error.changed) {\r\n const box = document.querySelector(\"[data-box]\") as HTMLDivElement;\r\n box.classList.add(\"open\");\r\n }\r\n }\r\n );\r\n }\r\n});\r\n","import { render } from \"./ErrorBox.vue?vue&type=template&id=4162e74c&scoped=true&ts=true\"\nimport script from \"./ErrorBox.vue?vue&type=script&lang=ts\"\nexport * from \"./ErrorBox.vue?vue&type=script&lang=ts\"\n\nimport \"./ErrorBox.vue?vue&type=style&index=0&id=4162e74c&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4162e74c\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2fc4c394\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"box\",\n \"data-success-box\": \"\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _toDisplayString(_ctx.success?.message), 1))\n}","\r\nimport store from \"../../../../infrastructure/repository/store/store\";\r\nimport {defineComponent, onMounted, PropType, watch} from \"vue\";\r\n\r\nclass Span {\r\n public message: string;\r\n public changed: boolean;\r\n\r\n constructor(message = \"\", changed = false) {\r\n this.changed = changed;\r\n this.message = message;\r\n }\r\n}\r\nexport default defineComponent({\r\n props: {\r\n success: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n },\r\n\r\n setup(props) {\r\n onMounted(() => {\r\n const box = document.querySelector(\r\n \"[data-success-box]\"\r\n ) as HTMLDivElement;\r\n box.addEventListener(\"animationend\", () => {\r\n if (box.classList.contains(\"open\")) {\r\n box.classList.remove(\"open\");\r\n box.classList.add(\"close\");\r\n\r\n store.dispatch(\"miscellany_module/setSuccess\", {\r\n message: props.success?.message,\r\n changed: false,\r\n });\r\n }\r\n });\r\n });\r\n\r\n watch(\r\n () => props.success?.changed,\r\n () => {\r\n if (props.success?.changed) {\r\n const box = document.querySelector(\r\n \"[data-success-box]\"\r\n ) as HTMLDivElement;\r\n box.classList.add(\"open\");\r\n }\r\n }\r\n );\r\n },\r\n});\r\n","import { render } from \"./SuccessBox.vue?vue&type=template&id=2fc4c394&scoped=true&ts=true\"\nimport script from \"./SuccessBox.vue?vue&type=script&lang=ts\"\nexport * from \"./SuccessBox.vue?vue&type=script&lang=ts\"\n\nimport \"./SuccessBox.vue?vue&type=style&index=0&id=2fc4c394&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2fc4c394\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-34908b4e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"success-box\",\n \"aria-modal\": \"true\"\n}\nconst _hoisted_2 = { class: \"message\" }\nconst _hoisted_3 = { class: \"contain-buttons\" }\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\" Ok \")\nconst _hoisted_5 = [\n _hoisted_4\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _directive_focus = _resolveDirective(\"focus\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"span\", {\n class: \"success-box__box\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(() => {}, [\"stop\"]))\n }, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(_ctx.message), 1),\n _createElementVNode(\"span\", _hoisted_3, [\n _withDirectives(_createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.continueAction && _ctx.continueAction(...args))),\n class: \"link\"\n }, _hoisted_5, 512), [\n [_directive_focus]\n ])\n ])\n ])\n ]))\n}","\r\nimport {defineComponent, onBeforeMount, ref, Ref} from \"vue\";\r\nimport {useStore} from \"vuex\";\r\n\r\nexport default defineComponent({\r\n setup() {\r\n const store = useStore();\r\n const message: Ref = ref(\"\");\r\n const buttonsText: Ref = ref();\r\n\r\n onBeforeMount(() => {\r\n message.value = store.getters[\"alert_box_module/message\"];\r\n buttonsText.value = store.getters[\"alert_box_module/buttonsText\"];\r\n });\r\n\r\n const continueAction = async (): Promise => {\r\n await store.dispatch(\"alert_box_module/shouldContinue\", true);\r\n await close();\r\n };\r\n\r\n const close = async (): Promise => {\r\n await store.dispatch(\"alert_box_module/close\");\r\n };\r\n\r\n return {\r\n continueAction,\r\n message,\r\n buttonsText,\r\n };\r\n },\r\n});\r\n","import { render } from \"./AlertBox.vue?vue&type=template&id=34908b4e&scoped=true&ts=true\"\nimport script from \"./AlertBox.vue?vue&type=script&lang=ts\"\nexport * from \"./AlertBox.vue?vue&type=script&lang=ts\"\n\nimport \"./AlertBox.vue?vue&type=style&index=0&id=34908b4e&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-34908b4e\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5eb9a5e3\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"loading-spinner\" }\nconst _hoisted_2 = { class: \"loading-spinner-box\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"lds-ring\" }, [\n /*#__PURE__*/_createElementVNode(\"div\"),\n /*#__PURE__*/_createElementVNode(\"div\"),\n /*#__PURE__*/_createElementVNode(\"div\"),\n /*#__PURE__*/_createElementVNode(\"div\")\n], -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.message), 1)\n ])\n ]))\n}","\r\nimport {defineComponent} from \"vue\";\r\n\r\nexport default defineComponent({\r\n props: {\r\n message: {\r\n type: String,\r\n default: \"Carregando...\",\r\n },\r\n },\r\n});\r\n","import { render } from \"./Loading.vue?vue&type=template&id=5eb9a5e3&scoped=true&ts=true\"\nimport script from \"./Loading.vue?vue&type=script&lang=ts\"\nexport * from \"./Loading.vue?vue&type=script&lang=ts\"\n\nimport \"./Loading.vue?vue&type=style&index=0&id=5eb9a5e3&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5eb9a5e3\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4144fc1a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"modal__backdrop\" }\nconst _hoisted_2 = { class: \"modal\" }\nconst _hoisted_3 = { class: \"modal__image\" }\nconst _hoisted_4 = { class: \"modal__body\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"🎉 Você alcançou o limite diário de Decoins! 🎉\", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, [\n /*#__PURE__*/_createTextVNode(\" Seu progresso é incrível, \"),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"bold\" }, \"continue assim\"),\n /*#__PURE__*/_createTextVNode(\" e prepare-se para \"),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"bold\" }, \"novas conquistas.\"),\n /*#__PURE__*/_createTextVNode(\" Continue nessa trajetória para aprender ainda mais, evoluir suas habilidades e \"),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"bold\" }, \"decolar com sucesso!\")\n], -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", null, \"Parabéns, \" + _toDisplayString(_ctx.user.name) + \"! \", 1)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _hoisted_6,\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.closeModal()))\n }, \"Continuar\")\n ])\n ])\n ]))\n}","\r\nimport { computed, ComputedRef, defineComponent, onMounted } from \"vue\";\r\nimport { disableBodyOverflow, enableBodyOverflow } from \"../../mixins\";\r\nimport { User } from \"../../../../../domain/entities/entities\";\r\nimport { useStore } from \"vuex\";\r\n\r\nexport default defineComponent({\r\n setup() {\r\n const store = useStore();\r\n\r\n const user: ComputedRef = computed(() => {\r\n return store.getters[\"userProfile_module/user\"];\r\n });\r\n\r\n onMounted(() => {\r\n disableBodyOverflow();\r\n });\r\n\r\n const closeModal = async (): Promise => {\r\n await store.dispatch(\"decoins_module/setDecoinsLimitModal\", false);\r\n enableBodyOverflow();\r\n await store.dispatch(\"decoins_module/decoinDailyLimitMessageAccepted\");\r\n };\r\n\r\n return {\r\n user,\r\n closeModal\r\n };\r\n }\r\n});\r\n","import { render } from \"./DecoinsLimitModal.vue?vue&type=template&id=4144fc1a&scoped=true&ts=true\"\nimport script from \"./DecoinsLimitModal.vue?vue&type=script&lang=ts\"\nexport * from \"./DecoinsLimitModal.vue?vue&type=script&lang=ts\"\n\nimport \"./DecoinsLimitModal.vue?vue&type=style&index=0&id=4144fc1a&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4144fc1a\"]])\n\nexport default __exports__","import { render } from \"./App.vue?vue&type=template&id=0fc349eb\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=0fc349eb&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from \"vue\";\r\nimport App from \"./App.vue\";\r\nimport store from \"../infrastructure/repository/store/store\";\r\nimport router from \"./routes\";\r\nimport \"../infrastructure/presentation/assets/css/reset.css\";\r\nimport \"../infrastructure/presentation/assets/css/base.css\";\r\n\r\nif (process.env.VUE_APP_THEME == \"circulo\") {\r\n /** Set title of the page. */\r\n document.title = \"Ganhe Mais | Círculo\";\r\n require(\"../infrastructure/presentation/assets/css/template-circulo.css\");\r\n}\r\nif (process.env.VUE_APP_THEME == \"default\") {\r\n /** Set title of the page. */\r\n document.title = \"Decola | Educação Corporativa\";\r\n\r\n require(\"../infrastructure/presentation/assets/css/template-default.css\");\r\n}\r\nif (process.env.VUE_APP_THEME == \"construcolor\") {\r\n /** Set title of the page. */\r\n document.title = \"Decola - Construcolor | Educação Corporativa\";\r\n\r\n require(\"../infrastructure/presentation/assets/css/template-construcolor.css\");\r\n}\r\nif (process.env.VUE_APP_THEME == \"gtop\") {\r\n /** Set title of the page. */\r\n document.title = \"Portal GTop\";\r\n\r\n require(\"../infrastructure/presentation/assets/css/template-gtop.css\");\r\n}\r\n\r\nconst app = createApp(App)\r\n .use(router)\r\n .use(store);\r\n\r\napp.directive(\"focus\", {\r\n mounted: el => {\r\n el.focus();\r\n }\r\n});\r\n\r\napp.directive(\"view-scroll\", {\r\n mounted(el) {\r\n el.addEventListener(\"scroll\", () => {\r\n if (el.scrollTop) {\r\n document.querySelector(\"[data-main-header]\")?.classList.add(\"overlap\");\r\n } else {\r\n document\r\n .querySelector(\"[data-main-header]\")\r\n ?.classList.remove(\"overlap\");\r\n }\r\n });\r\n }\r\n});\r\n\r\napp.directive(\"scroll-button\", {\r\n mounted(el) {\r\n window.addEventListener(\"resize\", () => {\r\n if (el.scrollWidth > document.body.scrollWidth) {\r\n el.classList.add(\"scroll\");\r\n } else {\r\n el.classList.remove(\"scroll\");\r\n }\r\n });\r\n },\r\n\r\n beforeMount(el) {\r\n if (el.scrollWidth > document.body.scrollWidth) {\r\n el.classList.add(\"scroll\");\r\n }\r\n }\r\n});\r\n\r\n/** Set meta description for SEO of the website. */\r\nconst metaDescription: HTMLMetaElement = document.createElement(\"meta\");\r\nmetaDescription.name = \"description\";\r\nmetaDescription.content =\r\n \"O Decola surgiu para levar informação e conhecimento para os colaboradores do Grupo Lince, seus familiares e toda a comunidade. Com o propósito de ser referência na aprendizagem dos colaboradores e da comunidade local.\";\r\nif (process.env.VUE_APP_THEME === \"construcolor\") {\r\n metaDescription.content =\r\n \"O Decola surgiu para levar informação e conhecimento para os colaboradores do Grupo Lince, seus familiares e toda a comunidade. Com o propósito de ser referência na aprendizagem dos colaboradores e da comunidade local.\";\r\n}\r\ndocument.head.appendChild(metaDescription);\r\n\r\n/** Returns the key of the PDF reader. */\r\nexport const pdfKey = () => {\r\n let key: string = \"a932842a8afd4e18b7a1470ff065dbb7\";\r\n\r\n if (\r\n process.env.NODE_ENV === \"production\" &&\r\n window.location.origin === \"https://decolahomolog.lince.com.br\"\r\n ) {\r\n key = \"c144b9a3ec1c4781b8dc516cb31c0dda\";\r\n }\r\n\r\n if (process.env.VUE_APP_THEME === \"construcolor\") {\r\n key = \"9c0bd8acdd27417f913596fc5e3f1b68\";\r\n }\r\n\r\n if (process.env.VUE_APP_THEME === \"gtop\") {\r\n key = \"54627fb3e6184b0ea6ed8bc671e8e93b\";\r\n }\r\n\r\n return key;\r\n};\r\n\r\napp.mount(\"#app\");\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ProgressBar.vue?vue&type=style&index=0&id=feead474&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TUIViewer.vue?vue&type=style&index=1&id=7b7e77bc&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Card.vue?vue&type=style&index=0&id=9db2d7ca&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./PillLoader.vue?vue&type=style&index=0&id=0cbff207&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/linkedin.daf419e1.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ResetPassword.vue?vue&type=style&index=0&id=22c64ca6&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/arrow-user.d481a77c.svg\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./PaginationDefault.vue?vue&type=style&index=0&id=13367ce0&scoped=true&lang=css\"","/** Class used to filter shops. */\r\n\r\nexport class Shop {\r\n\r\n /** Shop ID. */\r\n public id: number;\r\n\r\n /** Shop name. */\r\n public name: string;\r\n\r\n /** Quantity of products still available in this shop. */\r\n public quantityProducts: number;\r\n\r\n constructor(id = NaN, name = \"\", quantityProducts = 0) {\r\n this.id = id;\r\n this.name = name;\r\n this.quantityProducts = quantityProducts;\r\n }\r\n}","import { Shop } from \"../filter/shop\";\r\nimport { Interest } from \"../../entities\";\r\n\r\n/** Class that references a shop product. */\r\nexport class imagesUrl {\r\n public id: number;\r\n public url: string;\r\n public extension: string;\r\n\r\n constructor(emptyString = \"\", id = NaN) {\r\n this.extension = emptyString;\r\n this.url = emptyString;\r\n this.id = id;\r\n }\r\n}\r\n\r\nexport class Product {\r\n /** Product ID. */\r\n public id: number;\r\n\r\n /** Code of product. */\r\n public code: string;\r\n\r\n /** Name of product. */\r\n public name: string;\r\n\r\n /** Description of product. */\r\n public description: string;\r\n\r\n /** Informs if the product is already published in the shop. */\r\n public isActive: boolean;\r\n\r\n /** Image extension. Eg: png, jpeg*/\r\n public imageExtension: string;\r\n\r\n /** Product image url. */\r\n public imagesUrl: Array;\r\n\r\n /** Price of product. */\r\n public decoins: number;\r\n\r\n /** Quantity of products. */\r\n public stock: number;\r\n\r\n /** Date of the last time the product was updated. */\r\n public lastChange: string;\r\n\r\n /** Shop linked to the product. */\r\n public shop: Shop;\r\n\r\n /** Quantity of products. Used to check the amount of products added in the bag. */\r\n public quantity: number;\r\n\r\n constructor(\r\n id = NaN,\r\n code = \"\",\r\n name = \"\",\r\n description = \"\",\r\n isActive = true,\r\n imageExtension = \"\",\r\n imagesUrl = new Array(),\r\n decoins = NaN,\r\n stock = NaN,\r\n lastChange = \"\",\r\n shops = new Shop(),\r\n quantity = NaN\r\n ) {\r\n this.id = id;\r\n this.code = code;\r\n this.name = name;\r\n this.description = description;\r\n this.isActive = isActive;\r\n this.imageExtension = imageExtension;\r\n this.imagesUrl = imagesUrl;\r\n this.decoins = decoins;\r\n this.stock = stock;\r\n this.lastChange = lastChange;\r\n this.shop = shops;\r\n this.quantity = quantity;\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/statistics.3394786a.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SectionDivisor.vue?vue&type=style&index=0&id=2f2e17d5&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/order.59eb5699.svg\";","import store from \"../../../../../repository/store/store\";\r\nimport { User } from \"../../../../../../domain/entities/entities\";\r\nimport { ExternalRoute, InternalRoute, MenuItem } from \"./MenuItem\";\r\nimport { currentDomain } from \"../../../../../repository/http\";\r\nimport { isDecolaTemplate, isGTopTemplate } from \"../../../mixins\";\r\n\r\n/** Returns all the menu's items */\r\nexport const getMenuItems = (): MenuItem[] => {\r\n /** Contains current user's information. */\r\n const user = store.getters[\"userProfile_module/user\"] as User;\r\n\r\n /** Dashboard item. */\r\n const dashboard = new MenuItem(\r\n \"Início\",\r\n \"dashboard-icon.png\",\r\n new InternalRoute(\"dashboard\")\r\n );\r\n\r\n /** Statistics item. */\r\n const statistics = new MenuItem(\r\n \"Meu dashboard\",\r\n \"dashboard-icon.png\",\r\n new InternalRoute(\"statistics\", { option: \"chart\" })\r\n );\r\n\r\n /** Shop item. */\r\n const shop = new MenuItem(\"Loja\", \"shop.png\", new InternalRoute(\"shop\"));\r\n\r\n /** Contains all the menu's items */\r\n const menuItems = [dashboard, statistics];\r\n\r\n /** Administrative panel item */\r\n const administrativePanel = new MenuItem(\r\n \"Painel Admin.\",\r\n \"admin-icon.png\",\r\n new ExternalRoute(currentDomain + \"/admin#/dashboard\", \"_blank\")\r\n );\r\n\r\n /** Manager panel item */\r\n const managerPanel = new MenuItem(\r\n \"Meus times\",\r\n \"admin-icon.png\",\r\n new ExternalRoute(currentDomain + \"/admin#/team\", \"_blank\")\r\n );\r\n\r\n switch (user.userType) {\r\n /** master and admin */\r\n case 2:\r\n case 5:\r\n menuItems.unshift(administrativePanel);\r\n break;\r\n /** manager */\r\n case 4:\r\n menuItems.unshift(managerPanel);\r\n break;\r\n }\r\n\r\n if (isDecolaTemplate() || isGTopTemplate()) {\r\n menuItems.push(shop);\r\n }\r\n\r\n return menuItems;\r\n};\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ResetPasswordSuccess.vue?vue&type=style&index=0&id=5e0ca7fa&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/visao.7715a2a5.svg\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SelectBox.vue?vue&type=style&index=0&id=696e9542&lang=css\"","module.exports = __webpack_public_path__ + \"img/new_logo_sem_slogan_white.1df9d525.svg\";","module.exports = __webpack_public_path__ + \"img/logo.7b986e2e.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAAB10lEQVRIie3Uv2sUQRwF8O8mKrYiIp6msLTRys7KRhA8Cxv9Dw5BYyMXrJPY2IiNYqfGwk5MFcFGBP0L/BHUIpJKEIyNB7mPxc6RJe5d5o67VHmw7O6b78ybeTNvIvaQASzj1W4IzaCFy3htCyuJa2FmEsItO6M1zJhTmXXr6d2JiHZEHE/PXOKqNeNDshTaNW3tnu3jFl2u2NlI3Du8Td+NSnv2gcuxWg3X7cPXcaNjB6vn6qzGKhYwjy+jCjfT4H/TnjbS004cNCv1N2tO/Y1RhLPjhE/pfxNP8QzdxH0cVrh6gaxUxP67QLCY2p5U+i8lbrHH7csRLopiLSIept+X6fQqiqJZVz5oDTl6I6FidTfZvFSx+vOgjtO4kDqtYw2PcWYI8dmaMzDbr/g07iWxfniT9nTH/CvjNK+M1OqgwmHwTRmlQ7kujEu4h994hFO7LdzDJhZqxpzCReV9v4G74xaGjcpYh3EbX7fV/OnVZOU4A52IuI+zEXE9Iq5GxMHta4uIB5NY8SB8wLnaKVeKfuAOTuAYbtm6FIbFKq4M9ArvcQ37a9oKnMcLdDIEf6YJH8jaqBzgqDLD32sEO8p4HRmbYM0EpnFJGZVfeI6TExPcw6j4B0qKaYr6IoK/AAAAAElFTkSuQmCC\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Call.vue?vue&type=style&index=0&id=094d6c5b&scoped=true&lang=css\"","export class RepositoryException {\r\n public message: string = \"\";\r\n public code: string = \"\";\r\n\r\n constructor(message= \"\", code= \"\") {\r\n this.message = message;\r\n this.code = code;\r\n }\r\n}\r\n\r\nexport const error = (e): RepositoryException => {\r\n // const error = e?.response?.data;\r\n //\r\n // if (error && error.code && error.code !== \"UNEXPECTED_ERROR\") {\r\n // return new Exception(error.message, error.code);\r\n // }\r\n //\r\n // return new Exception(\"Ocorreu um erro inesperado.\", \"UNEXPECTED_ERROR\");\r\n return e;\r\n};\r\n\r\n\r\nexport class BusinessException {\r\n /** This is the message that will be displayed to the user.\r\n * Example if some attribute/field is empty the message probably will be: \"This field can not be empty\"*/\r\n private readonly _message: string;\r\n\r\n /** Represents the cause of the error,\r\n * for example if some attribute/field is empty the cause of error can be: \"EMPTY_FIELD\".\r\n * This is used just to developers identify the real cause of the error by an easy way\r\n * The cause must be written this way: \"COMPOSITE_NAME\", \"NAME\" */\r\n private readonly _cause: string;\r\n\r\n /** Represents the error code as a http error which can be: 500, 400, 404, etc... */\r\n private readonly _code: number;\r\n\r\n get code(): number {\r\n return this._code;\r\n }\r\n get cause(): string {\r\n return this._cause;\r\n }\r\n get message(): string {\r\n return this._message;\r\n }\r\n\r\n constructor(message: string, cause: string, code?: number) {\r\n this._message = message;\r\n this._cause = cause;\r\n this._code = code ?? 0;\r\n }\r\n}\r\n\r\n/** Used to display all BusinessErrors to the user.\r\n * It will be used in conjunction with BusinessError.\r\n * It should be called only after some entity passes its respective rules. */\r\nexport class BusinessRuleException {\r\n /** It will receive each BusinessError from an entity when going through their respective rules and failing them. */\r\n private readonly _errors: Array;\r\n\r\n constructor(errors: Array) {\r\n this._errors = errors;\r\n }\r\n\r\n get errors(): Array {\r\n return this._errors;\r\n }\r\n}","module.exports = __webpack_public_path__ + \"img/mercado-icon.7598c2b2.png\";","import { RouteLocationNormalizedLoaded } from \"vue-router\";\r\n\r\ntype Target = \"_blank\" | \"_self\";\r\n\r\n/** Route responsible to control redirects that are not related with VueRouter's route.\r\n * Usually used in anchor tags. */\r\nexport class ExternalRoute {\r\n /** Path is a string that is used to redirect user to another page and should be used just with the target attribute when this one is equal _blank.\r\n * Path example: \"https://decola.lince.com.br/admin#/dashboard\"\r\n * @see target. */\r\n public path: string;\r\n\r\n /** Defines if the route's path should be open in the same app frame or in another page.\r\n * and should be used just with the path attribute.\r\n * @see path */\r\n public target: Target;\r\n\r\n constructor(path: string = \"\", target: Target = \"_self\") {\r\n this.path = path;\r\n this.target = target;\r\n }\r\n}\r\n/** This route class have a direct relationship whit VueRouter's route. */\r\nexport class InternalRoute {\r\n /** Represents the VueRouter's route's name.\r\n * @see RouteLocationNormalizedLoaded */\r\n public name: string;\r\n\r\n /** Represents the VueRouter's route's params object.\r\n * @see RouteLocationNormalizedLoaded */\r\n public params: Record;\r\n\r\n constructor(name: string = \"\", params: {} = {}) {\r\n this.name = name;\r\n this.params = params;\r\n }\r\n}\r\n\r\n/** Class that defines the menu's items configuration. */\r\nexport class MenuItem {\r\n /** item's title that is displayed to the user. */\r\n public title: string;\r\n\r\n /** Is an icon that should represent the title. */\r\n public image: string;\r\n\r\n /** @see InternalRoute\r\n * @see ExternalRoute */\r\n public route: InternalRoute | ExternalRoute;\r\n\r\n constructor(\r\n title: string,\r\n image: string,\r\n route: InternalRoute | ExternalRoute\r\n ) {\r\n this.title = title;\r\n this.image = image;\r\n this.route = route;\r\n }\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Introduction.vue?vue&type=style&index=0&id=45784449&scoped=true&lang=css\"","(function(c, l, a, r, i, t, y) {\r\n c[a] =\r\n c[a] ||\r\n function() {\r\n (c[a].q = c[a].q || []).push(arguments);\r\n };\r\n t = l.createElement(r);\r\n t.async = 1;\r\n t.src = \"https://www.clarity.ms/tag/\" + i;\r\n y = l.getElementsByTagName(r)[0];\r\n y.parentNode.insertBefore(t, y);\r\n})(window, document, \"clarity\", \"script\", \"mmtl5hotdd\");\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./About.vue?vue&type=style&index=0&id=795bc5dc&scoped=true&lang=css\"","/** All existing types of {@link Content}. */\r\nexport enum ContentType {\r\n YOUTUBE = 1,\r\n SCORM = 2,\r\n PDF = 3,\r\n EXERCISE = 4,\r\n MP3 = 5,\r\n}\r\n\r\n/** todo: document this class */\r\nexport enum ContentProgressStatus {\r\n REACH_MIN = 99,\r\n FINISHED = 100,\r\n}\r\n\r\n/** Represents the type YouTube Video of a {@link Content}.\r\n * This is the entity responsible for holding the video code\r\n * that generates the video in player as well as further information. */\r\nexport class Youtube {\r\n public code: string;\r\n public duration: string;\r\n public thumbnail: string;\r\n\r\n constructor(\r\n code: string = \"\",\r\n duration: string = \"\",\r\n thumbnail: string = \"\"\r\n ) {\r\n this.code = code;\r\n this.duration = duration;\r\n this.thumbnail = thumbnail;\r\n }\r\n}\r\n\r\nexport class Audio {\r\n public timestamp: number;\r\n constructor(timestamp = 0) {\r\n this.timestamp = timestamp;\r\n }\r\n}\r\n\r\n/** Represents the type Scorm of a {@link Content} and holds its files. */\r\nexport class Scorm {\r\n public file: ArrayBuffer | string;\r\n public url: string;\r\n\r\n constructor(file: ArrayBuffer | string = \"\", url = \"\") {\r\n this.file = file;\r\n this.url = url;\r\n }\r\n}\r\n\r\n/** Used to set different types of content_provider. */\r\nexport type SimpleFile = {\r\n /** File name. */\r\n name: string;\r\n\r\n /** SCORM version. */\r\n scormVersion: \"1.1\" | \"1.2\" | \"2004.2\" | \"2004.3\";\r\n\r\n /** Folder path of the file. */\r\n path: string;\r\n};\r\n\r\nexport type SCORMContent = Map;","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./InfoPanel.vue?vue&type=style&index=0&id=2b675b1d&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SuccessBox.vue?vue&type=style&index=0&id=2fc4c394&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FirstLogin.vue?vue&type=style&index=1&id=31ac3396&lang=css\"","import { LocationQuery, Router } from \"vue-router\";\r\n\r\n/** Adds or updates a single query in the URL.\r\n * @param router A {@link Router} instance.\r\n * @param key Key of the query.\r\n * @param value Value of the query.\r\n *\r\n * How it looks in the URL: ?key=value\r\n */\r\nexport const updateQuery = async (\r\n router: Router,\r\n key: string,\r\n value: string\r\n): Promise => {\r\n await router.replace({\r\n ...router.currentRoute,\r\n query: {\r\n ...router.currentRoute.value.query,\r\n ...{\r\n [key]: value\r\n }\r\n }\r\n });\r\n};\r\n\r\n/** Adds or updates multiple queries at the same time in the URL.\r\n * @param router A {@link Router} instance.\r\n * @param queries Object containing a number of key-value query params.\r\n *\r\n * How it looks in the URL: ?key=value&key=value&...\r\n */\r\nexport const updateQueries = async (\r\n router: Router,\r\n queries: LocationQuery\r\n): Promise => {\r\n await router.replace({\r\n ...router.currentRoute,\r\n query: {\r\n ...router.currentRoute.value.query,\r\n ...queries\r\n }\r\n });\r\n};\r\n\r\n/** Removes a single query in the URL.\r\n * @param router A {@link Router} instance.\r\n * @param key Key of the query.\r\n */\r\nexport const removeQuery = async (\r\n router: Router,\r\n key: string\r\n): Promise => {\r\n const newQuery: LocationQuery = Object.assign(\r\n {},\r\n router.currentRoute.value.query\r\n );\r\n delete newQuery[key];\r\n await router.replace({\r\n ...router.currentRoute,\r\n query: newQuery\r\n });\r\n};\r\n\r\n/** Removes multiple queries in the URL.\r\n * @param router A {@link Router} instance.\r\n * @param keys The keys of the queries that will be deleted.\r\n */\r\nexport const removeQueries = async (\r\n router: Router,\r\n keys: string[]\r\n): Promise => {\r\n const newQuery: LocationQuery = Object.assign(\r\n {},\r\n router.currentRoute.value.query\r\n );\r\n for (const key of keys) {\r\n delete newQuery[key];\r\n }\r\n await router.replace({\r\n ...router.currentRoute,\r\n query: newQuery\r\n });\r\n};\r\n\r\n/** Removes all the queries in the URL.\r\n * @param router A {@link Router} instance.\r\n */\r\nexport const clearAllQueries = async (router: Router): Promise => {\r\n await router.replace({\r\n ...router.currentRoute,\r\n query: {}\r\n });\r\n};\r\n","import {ContentAnnotation} from \"../helpers\";\r\n\r\nclass AnnotationSubject {\r\n private readonly observers: AnnotationObserver[] = [];\r\n\r\n public subscribe(observer: AnnotationObserver) {\r\n this.observers.push(observer);\r\n }\r\n\r\n public notify(event: AnnotationEvent, note: ContentAnnotation) {\r\n switch (event) {\r\n case AnnotationEvent.TAKING_NOTES:\r\n this.notifyTakingNotes(note);\r\n break;\r\n case AnnotationEvent.NOTE_CREATED:\r\n this.notifyNoteCreated(note);\r\n break;\r\n case AnnotationEvent.NOTE_SELECTED:\r\n this.notifyNoteSelected(note);\r\n break;\r\n case AnnotationEvent.NOTE_UPDATED:\r\n this.notifyNoteUpdated(note);\r\n break;\r\n }\r\n }\r\n\r\n private notifyTakingNotes(note: ContentAnnotation) {\r\n for (const observer of this.observers) {\r\n observer.onTakingNote(note);\r\n }\r\n }\r\n\r\n private notifyNoteCreated(note: ContentAnnotation) {\r\n for (const observer of this.observers) {\r\n observer.onNoteCreated(note);\r\n }\r\n }\r\n\r\n private notifyNoteSelected(note: ContentAnnotation) {\r\n for (const observer of this.observers) {\r\n observer.onNoteSelected(note);\r\n }\r\n }\r\n\r\n private notifyNoteUpdated(note: ContentAnnotation) {\r\n for (const observer of this.observers) {\r\n observer.onNoteUpdated(note);\r\n }\r\n }\r\n\r\n private notifyNoteDeleted(note: ContentAnnotation) {\r\n for (const observer of this.observers) {\r\n observer.onNoteDeleted(note);\r\n }\r\n }\r\n}\r\n\r\nexport interface AnnotationObserver {\r\n onTakingNote(note: ContentAnnotation): void;\r\n\r\n onNoteCreated(note: ContentAnnotation): void;\r\n\r\n onNoteSelected(note: ContentAnnotation): void;\r\n\r\n onNoteDeleted(note: ContentAnnotation): void;\r\n\r\n onNoteUpdated(note: ContentAnnotation): void;\r\n}\r\n\r\nexport enum AnnotationEvent {\r\n TAKING_NOTES,\r\n NOTE_CREATED,\r\n NOTE_SELECTED,\r\n NOTE_UPDATED,\r\n NOTE_DELETED,\r\n}\r\n\r\nexport const annotationSubject = new AnnotationSubject();","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./InfoIcon.vue?vue&type=style&index=0&id=ba8029f4&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TextInput.vue?vue&type=style&index=0&id=568a3eda&scoped=true&lang=css\"","import {\r\n NavigationGuardNext,\r\n RouteLocationNormalized,\r\n Router\r\n} from \"vue-router\";\r\nimport { User } from \"../../domain/entities/entities\";\r\nimport store from \"../../infrastructure/repository/store/store\";\r\n\r\n/** Makes a request to a private route and if is unauthorized redirect to home. */\r\nexport const handleAccess = async (to, from, next): Promise => {\r\n try {\r\n await store.dispatch(\"userProfile_module/validateUserIsLogged\");\r\n next();\r\n } catch (e) {\r\n console.log(e);\r\n if (e?.response?.status === 403)\r\n return next({\r\n name: \"home\",\r\n query: {\r\n redirect: to.fullPath\r\n }\r\n });\r\n return next();\r\n }\r\n};\r\n\r\n/** It does verify if routeTo is \"dashboard\" and if user is logged first time, if true will redirect to onboarding else dashboard.\r\n * @param routeTo It refers the route that user is trying to access. */\r\nasync function handleOnBoardingRedirect(\r\n routeTo: RouteLocationNormalized,\r\n router: Router\r\n) {\r\n if (routeTo.name === \"dashboard\") {\r\n const { isFirstLogin } = (await store.getters[\r\n \"userProfile_module/user\"\r\n ]) as User;\r\n if (isFirstLogin) {\r\n await router.push({ name: \"onboarding\", params: { step: 1 } });\r\n }\r\n }\r\n}\r\n\r\nexport async function handleUserAuthRedirect(\r\n routeTo: RouteLocationNormalized,\r\n routeFrom: RouteLocationNormalized,\r\n next: NavigationGuardNext,\r\n router: Router\r\n) {\r\n const isUserLogged = await store.getters[\"userProfile_module/user\"];\r\n /** It doesn't let user access any route if isn't logged and route isn't public*/\r\n if (!routeTo.meta.isPublic && !isUserLogged) {\r\n return next({\r\n name: \"home\",\r\n query: {\r\n redirect: routeTo.fullPath\r\n }\r\n });\r\n }\r\n\r\n /** It will call onBoardingRedirect if route is private and user is already logged in */\r\n if (!routeTo.meta.isPublic) {\r\n await handleOnBoardingRedirect(routeTo, router);\r\n }\r\n\r\n next();\r\n}\r\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, resolveDynamicComponent as _resolveDynamicComponent, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-92a0a434\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"view\",\n \"data-view\": \"\",\n id: \"landingPage\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Call = _resolveComponent(\"Call\")!\n const _component_ResetPassword = _resolveComponent(\"ResetPassword\")!\n const _component_FirstLogin = _resolveComponent(\"FirstLogin\")!\n const _component_ModalTerm = _resolveComponent(\"ModalTerm\")!\n const _component_Introduction = _resolveComponent(\"Introduction\")!\n const _component_Mission = _resolveComponent(\"Mission\")!\n const _component_Faq = _resolveComponent(\"Faq\")!\n const _component_HomeFooter = _resolveComponent(\"HomeFooter\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Call, { class: \"section\" }),\n (_ctx.$route.params.resetPass)\n ? (_openBlock(), _createBlock(_component_ResetPassword, {\n key: 0,\n class: \"reset-pass\",\n onToggleModal: _ctx.closeModal\n }, null, 8, [\"onToggleModal\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.$route.query.firstLogin)\n ? (_openBlock(), _createBlock(_component_FirstLogin, {\n key: 1,\n class: \"first-login\",\n onCloseModal: _ctx.closeModal\n }, null, 8, [\"onCloseModal\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.$route.query.acceptTerm)\n ? (_openBlock(), _createBlock(_component_ModalTerm, {\n key: 2,\n class: \"accept-term\"\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_Introduction, { class: \"introduction section\" }),\n _createVNode(_component_Mission, { class: \"mission section\" }),\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.SupportersComponent), { class: \"supporters section\" })),\n _createVNode(_component_Faq),\n _createVNode(_component_HomeFooter, { class: \"footer\" })\n ]))\n}","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, createVNode as _createVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../assets/static/decola_logos/new_logo_sem_slogan_white.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-094d6c5b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"call\" }\nconst _hoisted_2 = { class: \"call__top\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"call__title\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"call__details\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"call__image\",\n width: \"500\",\n src: _imports_0,\n alt: \"Logo do decola\"\n }),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"call__slogan\" }, \"a nossa escola\")\n ]),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"call__description\" }, \" Abrindo espaço para o seu crescimento e desenvolvimento. \")\n], -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_register_modal = _resolveComponent(\"register-modal\")!\n const _component_login = _resolveComponent(\"login\")!\n\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.toggleLogin && _ctx.toggleLogin(...args))),\n class: \"call__button\"\n }, \"Login\"),\n (_ctx.isModalOpened)\n ? (_openBlock(), _createBlock(_component_register_modal, {\n key: 0,\n onToggleRegisterModal: _ctx.toggleRegisterModal\n }, null, 8, [\"onToggleRegisterModal\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.toggleLogin && _ctx.toggleLogin(...args))),\n class: \"trigger-area\"\n }, [\n _createVNode(_component_login, {\n onRecoverPassword: _cache[1] || (_cache[1] = \r\n () => {\r\n _ctx.toggleLogin();\r\n _ctx.$router.push({\r\n name: 'home',\r\n params: { resetPass: 'reset-password', resetBy: 'identity' }\r\n });\r\n }\r\n ),\n onToggleLogin: _cache[2] || (_cache[2] = ($event: any) => (_ctx.toggleLogin())),\n onToggleRegisterModal: _cache[3] || (_cache[3] = \r\n () => {\r\n _ctx.toggleLogin();\r\n _ctx.toggleRegisterModal();\r\n }\r\n ),\n onClick: _cache[4] || (_cache[4] = _withModifiers(() => {}, [\"stop\"])),\n class: \"call__login\"\n })\n ])\n ])\n ]))\n}","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_login_form = _resolveComponent(\"login-form\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"content\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(() => {}, [\"stop\"]))\n }, [\n (_ctx.$route.name === 'home')\n ? (_openBlock(), _createBlock(_component_login_form, {\n key: 0,\n onRecoverPassword: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('recoverPassword', $event))),\n onToggleRegisterModal: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('toggleRegisterModal', $event))),\n onToggleLogin: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('toggleLogin', $event)))\n }))\n : _createCommentVNode(\"\", true)\n ]))\n}","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, vModelText as _vModelText, withDirectives as _withDirectives, vModelDynamic as _vModelDynamic, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-107273db\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/_createTextVNode(\" Novo por aqui? \")\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", { class: \"form__option__link__registration\" }, \"Crie uma conta\", -1))\nconst _hoisted_3 = [\n _hoisted_1,\n _hoisted_2\n]\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"contain-title\" }, [\n /*#__PURE__*/_createElementVNode(\"h1\", { class: \"form__title\" }, \"Acesse:\")\n], -1))\nconst _hoisted_5 = { class: \"contain-inputs\" }\nconst _hoisted_6 = { class: \"contain-input\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", {\n class: \"form__label\",\n for: \"login-document\"\n}, [\n /*#__PURE__*/_createTextVNode(\" CPF ou E-mail \"),\n /*#__PURE__*/_createElementVNode(\"sup\", { class: \"required\" }, \"*\")\n], -1))\nconst _hoisted_8 = { class: \"contain-input\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", {\n class: \"form__label\",\n for: \"login-password\"\n}, [\n /*#__PURE__*/_createTextVNode(\"Senha \"),\n /*#__PURE__*/_createElementVNode(\"sup\", { class: \"required\" }, \"*\")\n], -1))\nconst _hoisted_10 = [\"type\"]\nconst _hoisted_11 = { class: \"contain-submit\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"input\", {\n form: \"login-form\",\n \"data-input\": \"\",\n type: \"submit\",\n class: \"form__submit\",\n value: \"Entrar\"\n}, null, -1))\nconst _hoisted_13 = { class: \"form__option\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"form\", {\n id: \"login-form\",\n ref: \"root\",\n onSubmit: _cache[8] || (_cache[8] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.login && _ctx.login(...args)), [\"prevent\"])),\n class: \"form\"\n }, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('toggleLogin'))),\n class: \"content__button\",\n type: \"button\"\n }, \" X \"),\n _createElementVNode(\"button\", {\n type: \"button\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$emit('toggleRegisterModal')), [\"prevent\"])),\n class: \"form__option__link-register\"\n }, _hoisted_3),\n _hoisted_4,\n _createElementVNode(\"fieldset\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _withDirectives(_createElementVNode(\"input\", {\n \"data-input\": \"\",\n id: \"login-document\",\n type: \"text\",\n form: \"login-form\",\n class: \"form__input glass-border\",\n placeholder: \"CPF ou e-mail\",\n autocomplete: \"off\",\n maxlength: \"254\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.userInput.loginMask) = $event)),\n onFocus: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.unmaskCPF && _ctx.unmaskCPF(...args))),\n onBlur: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.maskCPF && _ctx.maskCPF(...args)))\n }, null, 544), [\n [_vModelText, _ctx.userInput.loginMask]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _withDirectives(_createElementVNode(\"input\", {\n \"data-input\": \"password\",\n id: \"login-password\",\n type: _ctx.isPasswordVisible ? 'text' : 'password',\n form: \"login-form\",\n class: \"form__input glass-border\",\n placeholder: \"Senha\",\n autocomplete: \"off\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.userInput.password) = $event))\n }, null, 8, _hoisted_10), [\n [_vModelDynamic, _ctx.userInput.password]\n ]),\n _createElementVNode(\"span\", {\n onClick: _cache[6] || (_cache[6] = \n//@ts-ignore\n(...args) => (_ctx.togglePassword && _ctx.togglePassword(...args))),\n class: _normalizeClass([\"form__input__visibility\", _ctx.isPasswordVisible ? '' : 'notVisible'])\n }, null, 2)\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _hoisted_12,\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"button\", {\n onClick: _cache[7] || (_cache[7] = _withModifiers(($event: any) => (_ctx.$emit('recoverPassword')), [\"prevent\"])),\n class: \"form__option__link\"\n }, \" Esqueci minha senha \")\n ])\n ])\n ])\n ], 544))\n}","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-17aa2926\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"modal\" }\nconst _hoisted_2 = { class: \"modal__container\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"header\", null, \"Aceitar Termo de Uso e Política de Privacidade\", -1))\nconst _hoisted_4 = { class: \"term\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", null, \"1. Introdução\", -1))\nconst _hoisted_6 = /*#__PURE__*/_createStaticVNode(\"

2. Cadastro

Para acessar os treinamentos, é necessário um cadastro simples. Ao se cadastrar, você concorda em fornecer informações verdadeiras e atualizá-las conforme necessário. Os dados solicitados são:

  1. a) Nome
  2. b) Data de nascimento
  3. c) CPF (obrigatório)
  4. d) Email (obrigatório)
  5. e) Endereço
  6. f) Descrição pessoal (biografia)

Os dados pessoais identificados acima como “obrigatórios” são tratados para identificação e autenticação de cadastro em sistemas eletrônicos, nos termos da letra “g” do inciso II do artigo 11 da Lei Geral de Proteção de Dados Pessoais – Lei 13.709/2018. Caso você forneça dados que não sejam obrigatórios, você automaticamente consente que o Grupo Lince trate tais dados, nos termos deste documento.

3. Uso da Plataforma

A plataforma é destinada ao aprendizado e ao desenvolvimento pessoal. Qualquer uso fora deste escopo é proibido, como por exemplo a redistribuição comercial do conteúdo.

4. Política de Privacidade

- Coleta de Dados: informações básicas durante o cadastro.

- Uso de Dados: Utilizamos suas informações para personalizar sua experiência e comunicar novidades e oportunidades relacionadas à plataforma.

- Compartilhamento de Dados: Os dados pessoais relacionados neste documento não serão compartilhados, vendidos, ou de alguma forma transferidos a terceiros, exceto para cumprimento das obrigações legais e/ou regulatórias pela empresa, ou por ordem judicial.

- Segurança dos Dados: Empregamos medidas de segurança para proteger suas informações contra acesso não autorizado, alteração, divulgação ou destruição.

- Comentários: Os administradores da plataforma tem total acesso aos comentários feitos pelos usuários, incluindo comentários excluídos.

5. Cookies e Tecnologias Semelhantes

Utilizamos cookies para melhorar a experiência de navegação. Você pode controlar o uso de cookies através das configurações do seu navegador.

O que são cookies?

Como é prática comum em quase todos os sites profissionais, este site usa cookies, que são pequenos arquivos baixados no seu computador, para melhorar sua experiência. Esta página descreve quais informações eles coletam, como as usamos e por que às vezes precisamos armazenar esses cookies. Também compartilharemos como você pode impedir que esses cookies sejam armazenados, no entanto, isso pode prejudicar certos elementos da funcionalidade do site.

Como usamos os cookies?

Utilizamos cookies por vários motivos, detalhados abaixo. Infelizmente, na maioria dos casos, não existem opções padrão do setor para desativar os cookies sem desativar completamente a funcionalidade e os recursos que eles adicionam a este site. É recomendável que você deixe todos os cookies se não tiver certeza se precisa ou não deles, caso sejam usados para fornecer um serviço que você usa.

Desativar cookies:

Você pode impedir a configuração de cookies ajustando as configurações do seu navegador (consulte a Ajuda do navegador para saber como fazer isso). Esteja ciente de que a desativação de cookies afetará a funcionalidade deste e de muitos outros sites que você visita. A desativação de cookies geralmente resultará na desativação de determinadas funcionalidades e recursos deste site. Portanto, é recomendável que você não desative os cookies

\", 5)\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", null, \"6. Direitos de Propriedade Intelectual\", -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"section\", null, [\n /*#__PURE__*/_createElementVNode(\"h3\", null, \"7. Modificações nos Termos\"),\n /*#__PURE__*/_createElementVNode(\"p\", null, \" Podemos modificar estes termos e a política de privacidade a qualquer momento. Sua continuidade no uso da plataforma após tais mudanças constitui sua aceitação dos novos termos. \")\n], -1))\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"section\", null, [\n /*#__PURE__*/_createElementVNode(\"h3\", null, \"8. Contato\"),\n /*#__PURE__*/_createElementVNode(\"p\", null, [\n /*#__PURE__*/_createTextVNode(\" Em caso de dúvidas sobre estes termos ou a política de privacidade, entre em contato conosco através do e-mail \"),\n /*#__PURE__*/_createElementVNode(\"a\", { href: \"mailto:decola@lince.com.br\" }, \"decola@lince.com.br\"),\n /*#__PURE__*/_createTextVNode(\" . \")\n ])\n], -1))\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", null, \"9. Lei Aplicável e Jurisdição\", -1))\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \" Estes termos serão regidos e interpretados de acordo com as leis do Brasil, e qualquer disputa relacionada a estes termos estará sujeita à jurisdição exclusiva dos tribunais do Brasil. \", -1))\nconst _hoisted_16 = { class: \"subtitle\" }\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", null, \"1. Ganho de Decoins\", -1))\nconst _hoisted_18 = /*#__PURE__*/_createStaticVNode(\"

2. Alterações nas Regras

As regras que regem o ganho ou a perda de Decoins, incluindo, mas não se limitando a valores de Decoins, métodos de aquisição e condições especiais, podem ser modificadas a qualquer momento pela administração da plataforma. A administração reserva-se o direito de ajustar as regras com o objetivo de garantir uma experiência equilibrada e justa para todos os usuários, bem como sustentável pela empresa. A implementação das mudanças pode ocorrer imediatamente ou em uma data futura especificada. As mudanças nas regras podem ou não ter efeito retroativo, conforme decidido pela administração.

3. Fraudes e Abusos

Qualquer tentativa de manipulação ou abuso do sistema de Decoins resultará na anulação dos pontos obtidos de forma indevida. A administração reserva-se o direito de investigar e tomar as ações necessárias em caso de suspeita de fraude ou comportamento impróprio.

4. Decisões da Administração

Qualquer decisão que a administração da plataforma tomar em relação ao sistema de Decoins, como ajuste de pontos, regras de ganho ou perda, ou resolução de disputas, é definitiva. Isso significa que, uma vez que a administração tomar uma decisão, essa decisão não pode ser contestada, questionada ou alterada pelos usuários. O objetivo das regras é promover uma experiência justa e envolvente para todos os usuários, sendo que qualquer mudança visa o aprimoramento da plataforma.

5. Condições Especiais

Em determinados eventos ou campanhas, regras temporárias e específicas para o ganho de Decoins podem ser estabelecidas. Essas regras serão comunicadas juntamente com os detalhes do evento e terão prioridade sobre as regras gerais durante o período de vigência.

6. Extinção de Decoins

A administração da plataforma possui a autoridade de extinguir os Decoins já acumulados pelos usuários. Motivos para a retirada de Decoins podem incluir, mas não estão limitados a, comportamentos inadequados, infrações das regras da plataforma, exploração de falhas no sistema, ou ajustes necessários para manter a competitividade justa entre os usuários. Além disso, a administração pode optar pela retirada de Decoins em casos onde a implementação da gamificação tenha insucesso ou não alcance os objetivos desejados, exigindo revisões ou ajustes no sistema.

Se ocorrer a retirada de Decoins, os usuários serão notificados com uma explicação clara do motivo, dependendo do caso.

Assim como nas outras regras, a retirada de Decoins não será passível de recurso ou contestação pelos usuários, e todas as decisões da administração a esse respeito são definitivas.

7. Expiração de Decoins

Os Decoins adquiridos pelo usuário podem expirar se não forem utilizados dentro de um período específico, conforme estabelecido pela plataforma.

\", 6)\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h3\", null, \"8. Atividades Proibidas e Consequências \", -1))\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \" É estritamente proibido o usuário se envolver em qualquer atividade que seja ou inclua material: \", -1))\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, \" 1. Ofensivo, abusivo, difamatório, pornográfico, ameaçador ou obsceno \", -1))\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, \" 3. Que contenha a sua senha, que, propositalmente, possua a senha de qualquer outro usuário, que, de forma intencional, inclua dados pessoais de terceiros ou que se destine a solicitar tais dados pessoais. \", -1))\nconst _hoisted_28 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, \" 4. Que inclua conteúdo malicioso, como vírus, cavalos de Tróia ou malware, ou que, de qualquer forma, interfira no acesso de qualquer usuário ao Serviço.\", -1))\nconst _hoisted_29 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, \" 5. Que personifique ou deturpe sua afiliação com outro usuário, pessoa ou entidade ou que seja fraudulento, falso, enganoso ou falacioso.\", -1))\nconst _hoisted_30 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, \" 6. Que envolva atividades comerciais ou de vendas ilícitas\", -1))\nconst _hoisted_31 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, \"7. Que incite o ódio ou o preconceito a gênero, raça, classe social, orientação sexual, crença religiosa, entre outros.\", -1))\nconst _hoisted_32 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \" O descumprimento dessas regras resultará em advertência ao usuário. As consequências para o descumprimento das regras incluem: \", -1))\nconst _hoisted_33 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"ol\", null, [\n /*#__PURE__*/_createElementVNode(\"li\", null, \" 1. Advertência Formal: O usuário será notificado sobre a violação \"),\n /*#__PURE__*/_createElementVNode(\"li\", null, \" 2. Suspensão Temporária: A conta do usuário poderá ser suspensa por um período determinado. \"),\n /*#__PURE__*/_createElementVNode(\"li\", null, \" 3. Bloqueio Permanente: A conta do usuário poderá ser bloqueada de forma definitiva. \"),\n /*#__PURE__*/_createElementVNode(\"li\", null, \" 4. Restrição de Acessos: Limitação parcial das funcionalidades da plataforma. \"),\n /*#__PURE__*/_createElementVNode(\"li\", null, \" 5. Ações Legais: Em casos graves, podem ser tomadas medidas legais apropriadas.\"),\n /*#__PURE__*/_createElementVNode(\"li\", null, \" 6. Perda de Privilégios: Remoção de acesso a recursos ou benefícios exclusivos\"),\n /*#__PURE__*/_createElementVNode(\"li\", null, \"7. Reversão de Conquistas: Anulação de pontos ou qualquer progresso adquirido na plataforma.\"),\n /*#__PURE__*/_createElementVNode(\"li\", null, \" 8. Notificação às Autoridades: Em casos de atividades ilegais, as autoridades competentes poderão ser notificadas \")\n], -1))\nconst _hoisted_34 = { class: \"container__terms\" }\nconst _hoisted_35 = {\n class: \"label__terms\",\n for: \"terms\"\n}\nconst _hoisted_36 = /*#__PURE__*/_createTextVNode(\"Aceito os \")\nconst _hoisted_37 = /*#__PURE__*/_createTextVNode(\"Termos de Uso e Política de Privacidade\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n class: \"btn--reset-pass-exit\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.closeModal && _ctx.closeModal(...args)))\n }),\n _hoisted_3,\n _createElementVNode(\"main\", _hoisted_4, [\n _createElementVNode(\"section\", null, [\n _hoisted_5,\n _createElementVNode(\"p\", null, \" Olá, seja bem-vindo(a) à plataforma \" + _toDisplayString(_ctx.platformNames) + \"! Ao acessar, você concorda em cumprir estes termos de uso e nossa política de privacidade. Estes documentos regem seu acesso e uso da plataforma, que oferece treinamentos gratuitos para os colaboradores. Os Termos estão disponíveis para todos, desta forma, não será aceito que alguém alegue desconhecimento das regras e obrigações. \", 1)\n ]),\n _hoisted_6,\n _createElementVNode(\"section\", null, [\n _hoisted_11,\n _createElementVNode(\"p\", null, \" Todo o conteúdo da plataforma, incluindo treinamentos, é propriedade do \" + _toDisplayString(_ctx.platformNames) + \" ou de seus licenciantes. É concedida a você uma licença limitada, não exclusiva e intransferível para acessar e utilizar o conteúdo para fins pessoais e não comerciais. \", 1)\n ]),\n _hoisted_12,\n _hoisted_13,\n _createElementVNode(\"section\", null, [\n _hoisted_14,\n _hoisted_15,\n _createElementVNode(\"p\", null, \" Ao utilizar a plataforma \" + _toDisplayString(_ctx.platformNames) + \", você concorda com estes termos de uso e política de privacidade \", 1)\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"span\", null, \"GAMIFICAÇÃO da Plataforma \" + _toDisplayString(_ctx.platformNames), 1)\n ]),\n _createElementVNode(\"section\", null, [\n _hoisted_17,\n _createElementVNode(\"p\", null, \" Os usuários podem ganhar Decoins (moedas específicas e válidas somente na plataforma de educação \" + _toDisplayString(_ctx.platformNames) + \") ao completar missões, participar de treinamentos, e cumprindo regras criadas na plataforma. A quantidade de Decoins atribuída a cada atividade é pré-definida pela administração da plataforma e pode variar conforme o tipo e a complexidade da tarefa. O administrador da plataforma reserva-se o direito de definir um limite diário de ganho de Decoins para cada usuário. \", 1)\n ]),\n _hoisted_18,\n _createElementVNode(\"section\", null, [\n _hoisted_24,\n _hoisted_25,\n _createElementVNode(\"ol\", null, [\n _hoisted_26,\n _createElementVNode(\"li\", null, \" 2. Ilegal ou que se destine a promover ou cometer ato ilegal de qualquer natureza, incluindo as violações de direitos de privacidade e direitos de propriedade do \" + _toDisplayString(_ctx.platformNames) + \". \", 1),\n _hoisted_27,\n _hoisted_28,\n _hoisted_29,\n _hoisted_30,\n _hoisted_31\n ]),\n _hoisted_32,\n _hoisted_33\n ])\n ]),\n _createElementVNode(\"footer\", null, [\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"input\", {\n id: \"terms\",\n type: \"checkbox\",\n class: \"input__terms\",\n onChange: _cache[1] || (_cache[1] = ($event: any) => (_ctx.changeInputTerm($event.target)))\n }, null, 32),\n _createElementVNode(\"label\", _hoisted_35, [\n _hoisted_36,\n _createVNode(_component_router_link, {\n to: { name: 'terms' },\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _hoisted_37\n ]),\n _: 1\n })\n ])\n ])\n ])\n ])\n ]))\n}","\r\nimport {computed, ComputedRef, defineComponent} from \"vue\";\r\nimport { removeQuery } from \"../../utils/routing_utils\";\r\nimport {useRoute, useRouter} from \"vue-router\";\r\nimport {useStore} from \"vuex\";\r\nimport {dispatchError} from \"../../utils/error_handling\";\r\nimport {isGTopTemplate} from \"../mixins\";\r\n\r\nexport default defineComponent({\r\n setup() {\r\n\r\n const router = useRouter();\r\n const store = useStore();\r\n const route = useRoute()\r\n\r\n const platformNames: ComputedRef = computed(() => {\r\n if (isGTopTemplate()) {\r\n return \"Portal GTop\"\r\n } else {\r\n return \"Decola\"\r\n }\r\n })\r\n\r\n const changeInputTerm = async (input: HTMLInputElement): Promise => {\r\n\r\n try {\r\n if (input.checked) {\r\n await closeModal();\r\n await acceptTerm();\r\n /** Redirect them to the app's dashboard. */\r\n if (route.query.redirect) {\r\n await router.push(route.query.redirect as string);\r\n } else {\r\n await router.push({ name: \"dashboard\" });\r\n }\r\n }\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n }\r\n const closeModal = async (): Promise => {\r\n await removeQuery(router, \"acceptTerm\")\r\n }\r\n\r\n const acceptTerm = async (): Promise => {\r\n await store.dispatch(\"authentication_module/acceptTerm\");\r\n };\r\n\r\n return {\r\n platformNames,\r\n closeModal,\r\n changeInputTerm,\r\n }\r\n }\r\n});\r\n","import { render } from \"./ModalTerm.vue?vue&type=template&id=17aa2926&scoped=true&ts=true\"\nimport script from \"./ModalTerm.vue?vue&type=script&lang=ts\"\nexport * from \"./ModalTerm.vue?vue&type=script&lang=ts\"\n\nimport \"./ModalTerm.vue?vue&type=style&index=0&id=17aa2926&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-17aa2926\"]])\n\nexport default __exports__","\r\nimport { User } from \"../../../../../domain/entities/entities\";\r\nimport { useStore } from \"vuex\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { computed, ComputedRef, ref } from \"@vue/reactivity\";\r\nimport { defineComponent, onMounted, Ref } from \"vue\";\r\nimport { dispatchError } from \"../../../utils/error_handling\";\r\nimport ModalTerm from \"../../landingpage/ModalTerm.vue\";\r\n\r\n/** Todo: document this class. */\r\nclass UserInput {\r\n public loginMask: string = \"\";\r\n public loginFormatted: string = \"\";\r\n public password: string = \"\";\r\n\r\n constructor(mask: string = \"\", login: string = \"\", password: string = \"\") {\r\n this.loginMask = mask;\r\n this.loginFormatted = login;\r\n this.password = password;\r\n }\r\n}\r\n\r\nexport default defineComponent({\r\n components: { ModalTerm },\r\n setup() {\r\n onMounted(() => {\r\n setTimeout(function() {\r\n document?.getElementById(\"login-document\")?.focus();\r\n }, 250);\r\n });\r\n\r\n /** Instance of the vuex store. */\r\n const store = useStore();\r\n\r\n /** Instance of a router. */\r\n const router = useRouter();\r\n\r\n const route = useRoute();\r\n\r\n /** Todo: document this. */\r\n const userInput: Ref = ref(new UserInput());\r\n\r\n /** Tells whether the password is visible or not. */\r\n const isPasswordVisible: ComputedRef = computed(() => {\r\n return store.getters[\"authentication_module/isPasswordVisible\"];\r\n });\r\n\r\n const showPassword = () => {\r\n store.dispatch(\"authentication_module/showPassword\");\r\n };\r\n\r\n const hidePassword = () => {\r\n store.dispatch(\"authentication_module/hidePassword\");\r\n };\r\n\r\n const togglePassword = () => {\r\n isPasswordVisible.value ? hidePassword() : showPassword();\r\n };\r\n\r\n const maskCPF = (event: Event): void => {\r\n const input = event.target as HTMLInputElement;\r\n\r\n if (input.value.includes(\"@\")) {\r\n return;\r\n }\r\n\r\n userInput.value.loginMask = maskedCPF(input.value).trim();\r\n };\r\n\r\n const unmaskCPF = (event: Event): void => {\r\n const input = event.target as HTMLInputElement;\r\n\r\n if (input.value.includes(\"@\")) {\r\n return;\r\n }\r\n\r\n userInput.value.loginMask = input.value.replace(/(\\.|\\/|\\-)/g, \"\").trim();\r\n };\r\n\r\n const maskedCPF = (value: string): string => {\r\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})/g, \"\\$1.\\$2.\\$3\\-\\$4\");\r\n };\r\n\r\n /** Requests the login and redirects the user to the dashboard.\r\n * If it's the user's first login a password redefinition modal is called before the navigation. */\r\n const login = async (): Promise => {\r\n userInput.value.loginFormatted = userInput.value.loginMask.includes(\"@\")\r\n ? userInput.value.loginMask.trim()\r\n : userInput.value.loginMask\r\n .replaceAll(\"-\", \"\")\r\n .replaceAll(\".\", \"\")\r\n .trim();\r\n\r\n const credentials = new User(\r\n userInput.value.loginFormatted,\r\n userInput.value.password\r\n );\r\n try {\r\n /** Log the user in. */\r\n await store.dispatch(\"authentication_module/login\", credentials);\r\n\r\n /** Get the logged user. */\r\n await store.dispatch(\"userProfile_module/loadUser\");\r\n const user: User = store.getters[\"userProfile_module/user\"];\r\n\r\n /** If the user is imported and still hasn't created their new password. */\r\n if (user.isImported && !user.passwordModifiedAt) {\r\n /** Open the modal to change the password. */\r\n await router.push({\r\n name: \"home\",\r\n query: {\r\n firstLogin: \"create-new-credentials\"\r\n }\r\n });\r\n } else if (user.needAcceptNewTerm) {\r\n if (route.query.redirect) {\r\n /** Open the modal to change the password. */\r\n await router.push({\r\n name: \"home\",\r\n query: {\r\n acceptTerm: \"true\",\r\n redirect: route.query.redirect\r\n }\r\n });\r\n } else {\r\n /** Open the modal to change the password. */\r\n await router.push({\r\n name: \"home\",\r\n query: {\r\n acceptTerm: \"true\"\r\n }\r\n });\r\n }\r\n } else {\r\n /** Redirect them to the app's dashboard. */\r\n if (route.query.redirect) {\r\n await router.push(route.query.redirect as string);\r\n } else {\r\n await router.push({ name: \"dashboard\" });\r\n }\r\n }\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n return {\r\n isPasswordVisible,\r\n userInput,\r\n maskCPF,\r\n unmaskCPF,\r\n login,\r\n showPassword,\r\n hidePassword,\r\n togglePassword\r\n };\r\n }\r\n});\r\n","import { render } from \"./LoginForm.vue?vue&type=template&id=107273db&scoped=true&ts=true\"\nimport script from \"./LoginForm.vue?vue&type=script&lang=ts\"\nexport * from \"./LoginForm.vue?vue&type=script&lang=ts\"\n\nimport \"./LoginForm.vue?vue&type=style&index=0&id=107273db&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-107273db\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5be5b1cc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"box-menu\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"register-form__information\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", { class: \"register-form__title\" }, \"Cadastre-se\"),\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"register-form__description\" }, \" Preencha os campos abaixo para realizar o seu cadastro. \")\n], -1))\nconst _hoisted_3 = { class: \"inputs\" }\nconst _hoisted_4 = { class: \"pair\" }\nconst _hoisted_5 = { class: \"pair\" }\nconst _hoisted_6 = { class: \"pair\" }\nconst _hoisted_7 = { class: \"pair\" }\nconst _hoisted_8 = { class: \"pair\" }\nconst _hoisted_9 = { class: \"pair\" }\nconst _hoisted_10 = { class: \"container-password\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"button\", {\n class: \"register-form__button\",\n type: \"submit\"\n}, \"Cadastrar\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_modern_input = _resolveComponent(\"modern-input\")!\n const _component_input_password = _resolveComponent(\"input-password\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"register-modal\",\n onClick: _cache[17] || (_cache[17] = _withModifiers(() => {}, [\"stop\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"button\", {\n class: \"btn--exit\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('toggleRegisterModal')))\n }),\n _createElementVNode(\"form\", {\n onSubmit: _cache[16] || (_cache[16] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.register && _ctx.register(...args)), [\"prevent\"])),\n id: \"register-form\",\n class: \"register-form\"\n }, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n required: \"\",\n class: \"modern-input\",\n id: \"register-name\",\n label: \"Nome\",\n type: \"text\",\n userData: _ctx.user.name,\n \"onUpdate:userData\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.user.name) = $event))\n }, null, 8, [\"userData\"]),\n _createVNode(_component_modern_input, {\n max: _ctx.maxDate,\n min: \"1900-01-01\",\n form: \"register-form\",\n required: \"\",\n class: \"modern-input\",\n id: \"register-birthDate\",\n label: \"Data de nascimento\",\n type: \"date\",\n userData: _ctx.user.birthDate,\n \"onUpdate:userData\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.user.birthDate) = $event))\n }, null, 8, [\"max\", \"userData\"])\n ]),\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n required: \"\",\n class: \"modern-input\",\n id: \"register-document\",\n label: \"CPF\",\n type: \"text\",\n userData: _ctx.user.document,\n \"onUpdate:userData\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.user.document) = $event)),\n \"has-mask\": \"\",\n \"input-mask\": \"###.###.###-##\"\n }, null, 8, [\"userData\"]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n required: \"\",\n class: \"modern-input\",\n id: \"register-email\",\n label: \"E-mail\",\n type: \"email\",\n userData: _ctx.user.email,\n \"onUpdate:userData\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.user.email) = $event))\n }, null, 8, [\"userData\"]),\n _createVNode(_component_modern_input, {\n \"max-length\": \"14\",\n form: \"register-form\",\n onInput: _cache[5] || (_cache[5] = ($event: any) => (_ctx.requestCepAPI($event.target.value))),\n class: \"modern-input\",\n id: \"register-CEP\",\n label: \"CEP\",\n type: \"text\",\n userData: _ctx.user.address.zipCode,\n \"onUpdate:userData\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.user.address.zipCode) = $event)),\n \"has-mask\": \"\",\n \"input-mask\": \"#####-###\"\n }, null, 8, [\"userData\"])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n userData: _ctx.user.address.stateID,\n \"onUpdate:userData\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.user.address.stateID) = $event)),\n class: \"modern-input\",\n id: \"register-uf\",\n label: \"UF (Estado)\",\n type: \"select\",\n options: _ctx.states\n }, null, 8, [\"userData\", \"options\"]),\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n userData: _ctx.user.address.city,\n \"onUpdate:userData\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.user.address.city) = $event)),\n class: \"modern-input\",\n id: \"register-city\",\n label: \"Cidade\",\n type: \"text\"\n }, null, 8, [\"userData\"])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n \"user-data\": _ctx.user.address.street,\n \"onUpdate:user-data\": _cache[9] || (_cache[9] = ($event: any) => ((_ctx.user.address.street) = $event)),\n class: \"modern-input\",\n id: \"register-street\",\n label: \"Rua\",\n type: \"text\"\n }, null, 8, [\"user-data\"]),\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n \"user-data\": _ctx.user.address.district,\n \"onUpdate:user-data\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.user.address.district) = $event)),\n class: \"modern-input\",\n id: \"register-neighborhood\",\n label: \"Bairro\",\n type: \"text\"\n }, null, 8, [\"user-data\"])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n \"user-data\": _ctx.user.address.addressNumber,\n \"onUpdate:user-data\": _cache[11] || (_cache[11] = ($event: any) => ((_ctx.user.address.addressNumber) = $event)),\n min: \"0\",\n class: \"modern-input\",\n id: \"register-number\",\n label: \"Número\",\n type: \"number\"\n }, null, 8, [\"user-data\"]),\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n \"user-data\": _ctx.user.address.complement,\n \"onUpdate:user-data\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.user.address.complement) = $event)),\n class: \"modern-input\",\n id: \"register-complement\",\n label: \"Complemento\",\n type: \"text\"\n }, null, 8, [\"user-data\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_input_password, {\n form: \"register-form\",\n required: \"\",\n \"model-value\": _ctx.user.password,\n \"onUpdate:model-value\": _cache[13] || (_cache[13] = ($event: any) => ((_ctx.user.password) = $event)),\n id: \"register-password\",\n label: \"Senha\",\n passwordVisibility: true\n }, null, 8, [\"model-value\"]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n required: \"\",\n \"user-data\": _ctx.user.passwordConfirmation,\n \"onUpdate:user-data\": _cache[14] || (_cache[14] = ($event: any) => ((_ctx.user.passwordConfirmation) = $event)),\n id: \"register-passwordConfirmation\",\n label: \"Confirme sua senha\",\n type: _ctx.isPasswordVisible ? 'text' : 'password'\n }, null, 8, [\"user-data\", \"type\"]),\n _createElementVNode(\"span\", {\n onClick: _cache[15] || (_cache[15] = ($event: any) => (_ctx.togglePassword())),\n class: _normalizeClass([\"input__visibility\", _ctx.isPasswordVisible ? '' : 'notVisible'])\n }, null, 2)\n ])\n ])\n ]),\n _hoisted_11\n ], 32)\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, createVNode as _createVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-718bf952\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"form__information\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"form__title\" }, \"REDEFINIÇÃO DE SENHA\", -1))\nconst _hoisted_3 = { class: \"form__description\" }\nconst _hoisted_4 = { class: \"inputs\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"divisor\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"ou\", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"line\" }, null, -1))\nconst _hoisted_9 = [\n _hoisted_6,\n _hoisted_7,\n _hoisted_8\n]\nconst _hoisted_10 = { class: \"pair\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"button\", {\n class: \"form__button\",\n type: \"submit\"\n}, \"redefinir senha\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_modern_input = _resolveComponent(\"modern-input\")!\n\n return (_openBlock(), _createElementBlock(\"form\", {\n onSubmit: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (_ctx.$emit('post', $setup.userData)), [\"prevent\"])),\n id: \"identify-form\",\n class: \"form\"\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString($setup.setDescriptionModal()), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n (!$setup.isGTopTemplate())\n ? (_openBlock(), _createBlock(_component_modern_input, {\n key: 0,\n form: \"identify-form\",\n class: \"modern-input\",\n id: \"email\",\n label: \"E-mail\",\n type: \"email\",\n userData: $setup.userData.email,\n \"onUpdate:userData\": _cache[0] || (_cache[0] = ($event: any) => (($setup.userData.email) = $event)),\n required: \r\n !$setup.userData.birthDate ||\r\n !$setup.userData.badgeCode ||\r\n !$setup.userData.document ||\r\n !$setup.userData.mothersName ||\r\n !$setup.userData.mothersName\r\n \n }, null, 8, [\"userData\", \"required\"]))\n : _createCommentVNode(\"\", true),\n (!$setup.isGTopTemplate())\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _hoisted_9))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_modern_input, {\n form: \"identify-form\",\n class: \"modern-input\",\n id: \"name\",\n label: \"Nome\",\n type: \"text\",\n userData: $setup.userData.name,\n \"onUpdate:userData\": _cache[1] || (_cache[1] = ($event: any) => (($setup.userData.name) = $event)),\n required: \r\n !$setup.userData.email &&\r\n (!$setup.userData.birthDate ||\r\n !$setup.userData.badgeCode ||\r\n !$setup.userData.document ||\r\n !$setup.userData.mothersName)\r\n \n }, null, 8, [\"userData\", \"required\"]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_modern_input, {\n form: \"identify-form\",\n required: \r\n !$setup.userData.email &&\r\n (!$setup.userData.name ||\r\n !$setup.userData.badgeCode ||\r\n !$setup.userData.document ||\r\n !$setup.userData.mothersName)\r\n ,\n class: \"modern-input\",\n id: \"birthDate\",\n label: \"Data de nascimento\",\n type: \"date\",\n userData: $setup.userData.birthDate,\n \"onUpdate:userData\": _cache[2] || (_cache[2] = ($event: any) => (($setup.userData.birthDate) = $event))\n }, null, 8, [\"required\", \"userData\"]),\n _createVNode(_component_modern_input, {\n form: \"identify-form\",\n required: \r\n !$setup.userData.email &&\r\n (!$setup.userData.birthDate ||\r\n !$setup.userData.name ||\r\n !$setup.userData.document ||\r\n !$setup.userData.mothersName)\r\n ,\n class: \"modern-input\",\n id: \"badgeCode\",\n label: \"Código do cracha\",\n type: \"number\",\n userData: $setup.userData.badgeCode,\n \"onUpdate:userData\": _cache[3] || (_cache[3] = ($event: any) => (($setup.userData.badgeCode) = $event))\n }, null, 8, [\"required\", \"userData\"])\n ]),\n _createVNode(_component_modern_input, {\n form: \"identify-form\",\n required: \r\n !$setup.userData.email &&\r\n (!$setup.userData.birthDate ||\r\n !$setup.userData.badgeCode ||\r\n !$setup.userData.name ||\r\n !$setup.userData.mothersName)\r\n ,\n class: \"modern-input\",\n id: \"document\",\n label: \"CPF\",\n type: \"text\",\n userData: $setup.userData.document,\n \"onUpdate:userData\": _cache[4] || (_cache[4] = ($event: any) => (($setup.userData.document) = $event)),\n \"has-mask\": \"\",\n \"input-mask\": \"###.###.###-##\",\n \"max-length\": \"14\"\n }, null, 8, [\"required\", \"userData\"]),\n _createVNode(_component_modern_input, {\n form: \"identify-form\",\n required: \r\n !$setup.userData.email &&\r\n (!$setup.userData.birthDate ||\r\n !$setup.userData.badgeCode ||\r\n !$setup.userData.document ||\r\n !$setup.userData.name)\r\n ,\n class: \"modern-input\",\n id: \"mothersName\",\n label: \"Nome da mãe\",\n type: \"text\",\n userData: $setup.userData.mothersName,\n \"onUpdate:userData\": _cache[5] || (_cache[5] = ($event: any) => (($setup.userData.mothersName) = $event))\n }, null, 8, [\"required\", \"userData\"])\n ]),\n _hoisted_11\n ], 32))\n}","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6ef81a04\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"modern-input-container\" }\nconst _hoisted_2 = [\"for\"]\nconst _hoisted_3 = [\"form\", \"required\", \"value\", \"type\", \"id\", \"min\", \"max\", \"maxLength\", \"pattern\", \"title\", \"disabled\"]\nconst _hoisted_4 = [\"value\", \"id\", \"selected\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\r\n $props.type === 'select'\r\n ? $setup.toggleLabelClass($event.target.innerText, true)\r\n : undefined\r\n )),\n for: $props.id,\n class: _normalizeClass([\r\n 'label',\r\n { focus: $setup.isInputFocused && !$props.disabled },\r\n { required: $props.required && !$props.disabled }\r\n ])\n }, _toDisplayString($props.label), 11, _hoisted_2),\n ($props.type !== 'select')\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n form: $props.form,\n required: $props.required,\n value: $props.hasMask ? $setup.mask($props.userData, $props.inputMask) : $props.userData,\n type: $props.type,\n id: $props.id,\n class: _normalizeClass(['input', { disabled: $props.disabled }]),\n min: $props.min,\n max: $props.max,\n maxLength: $props.maxLength,\n pattern: $props.pattern,\n title: $props.title,\n onInput: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('update:userData', $event.target.value))),\n onFocus: _cache[2] || (_cache[2] = ($event: any) => ($setup.toggleLabelClass($event.target.value, true))),\n onBlur: _cache[3] || (_cache[3] = ($event: any) => ($setup.toggleLabelClass($event.target.value, false))),\n disabled: $props.disabled\n }, null, 42, _hoisted_3))\n : _createCommentVNode(\"\", true),\n ($props.type === 'select')\n ? (_openBlock(), _createElementBlock(\"select\", {\n key: 1,\n onChange: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$emit('update:userData', $event.target.value))),\n onFocus: _cache[5] || (_cache[5] = ($event: any) => ($setup.toggleLabelClass($event.target.value, true))),\n onBlur: _cache[6] || (_cache[6] = ($event: any) => ($setup.toggleLabelClass($event.target.value, false))),\n class: \"input input--select\"\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($props.options, (option, index) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: option.id,\n id: option.id,\n key: index,\n class: \"option\",\n selected: option.id === $props.userData\n }, _toDisplayString(option.label), 9, _hoisted_4))\n }), 128))\n ], 32))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport { onMounted, Ref, ref, watch } from \"vue\";\r\nimport { mask } from \"../../mixins\";\r\n\r\nconst __default__ = {\r\n name: \"modernInput\",\r\n props: {\r\n /** It will relate the label and the input */\r\n id: {\r\n required: true,\r\n type: [String, Number]\r\n },\r\n\r\n /** Defines the input type, it will implicate the input's behaviour */\r\n type: {\r\n required: true,\r\n type: String\r\n },\r\n\r\n /** It is a pointer to input and is the input's name too (this will be visible by users). */\r\n label: {\r\n required: true,\r\n type: String\r\n },\r\n\r\n options: {\r\n required: false,\r\n type: Array,\r\n default: () => []\r\n },\r\n\r\n /** Do not let the form be submitted before the input that has this attribute be filled correctly */\r\n required: {\r\n required: false,\r\n type: Boolean\r\n },\r\n\r\n /** It controls if the input's value must be masked */\r\n hasMask: {\r\n required: false,\r\n type: Boolean\r\n },\r\n\r\n /** Receives the mask that will be applied to input's value if hasMaks be true */\r\n inputMask: {\r\n required: false,\r\n type: String\r\n },\r\n\r\n min: {\r\n type: [String, Number]\r\n },\r\n\r\n max: {\r\n type: String\r\n },\r\n\r\n maxLength: {\r\n type: [String, Number]\r\n },\r\n\r\n /** Used to make a connection with another variable outside this component */\r\n userData: {\r\n required: false,\r\n default: () => null\r\n },\r\n\r\n form: {\r\n required: true,\r\n type: [String, Number]\r\n },\r\n\r\n pattern: {\r\n required: false,\r\n type: String\r\n },\r\n\r\n title: {\r\n required: false,\r\n type: String\r\n },\r\n\r\n color: {\r\n required: false,\r\n type: String,\r\n default: \"var(--primary-color)\"\r\n },\r\n\r\n disabled: {\r\n type: Boolean\r\n }\r\n },\r\n\r\n setup(props) {\r\n /** Used to control the label state */\r\n const isInputFocused: Ref = ref(false);\r\n\r\n /** This will be called when the input receive and event of type focus or blur and will be used to control the label state\r\n * @param value Refers to the current content_provider coming from the input.\r\n * @param isFocused Receive true when the event type is focus and false when the event type is blur. */\r\n const toggleLabelClass = (value, isFocused: boolean): void => {\r\n isInputFocused.value = isFocused;\r\n if (value && !isFocused) {\r\n isInputFocused.value = true;\r\n }\r\n };\r\n\r\n /** Serves to handle when the input receive data coming from another source that do not come from user */\r\n watch(\r\n () => props.userData,\r\n () => {\r\n if (props.userData) isInputFocused.value = true;\r\n }\r\n );\r\n\r\n return {\r\n isInputFocused,\r\n toggleLabelClass,\r\n mask\r\n };\r\n }\r\n};\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"7c9634b8\": (_ctx.color)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./modernInput.vue?vue&type=template&id=6ef81a04&scoped=true&ts=true\"\nimport script from \"./modernInput.vue?vue&type=script&lang=ts\"\nexport * from \"./modernInput.vue?vue&type=script&lang=ts\"\n\nimport \"./modernInput.vue?vue&type=style&index=0&id=6ef81a04&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6ef81a04\"]])\n\nexport default __exports__","\r\nimport { UserData } from \"../../../../../domain/entities/entities\";\r\nimport { onBeforeMount, ref } from \"vue\";\r\nimport {\r\n disableBodyOverflow,\r\n isGTopTemplate,\r\n} from \"../../mixins\";\r\nimport ModernInput from \"./modernInput.vue\";\r\n\r\nexport default {\r\n name: \"IdentityForm\",\r\n components: { ModernInput },\r\n setup() {\r\n const userData = ref(new UserData());\r\n onBeforeMount(() => disableBodyOverflow());\r\n\r\n const setDescriptionModal = (): string => {\r\n if (isGTopTemplate()) {\r\n return \"Por favor, insira seus dados abaixo para validarmos sua identidade.\";\r\n } else {\r\n return \"Escolha um das opções abaixo para que possamos validar sua identidade.\";\r\n }\r\n };\r\n return {\r\n userData,\r\n setDescriptionModal,\r\n isGTopTemplate\r\n };\r\n }\r\n};\r\n","import { render } from \"./IdentityForm.vue?vue&type=template&id=718bf952&scoped=true&ts=true\"\nimport script from \"./IdentityForm.vue?vue&type=script&lang=ts\"\nexport * from \"./IdentityForm.vue?vue&type=script&lang=ts\"\n\nimport \"./IdentityForm.vue?vue&type=style&index=0&id=718bf952&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-718bf952\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8fc5c298\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"input-password\" }\nconst _hoisted_2 = { class: \"input-password__container\" }\nconst _hoisted_3 = [\"for\"]\nconst _hoisted_4 = { class: \"input-password__validations\" }\nconst _hoisted_5 = [\"value\", \"type\", \"required\"]\nconst _hoisted_6 = {\n key: 1,\n class: \"input-password__validations\"\n}\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = { key: 1 }\nconst _hoisted_9 = { key: 2 }\nconst _hoisted_10 = { class: \"input-password__requirements\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"requirements\" }, \"Sua senha deve seguir os requisitos abaixo:\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"label\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => ($setup.toggleLabelClass($event.target.innerText, true))),\n class: _normalizeClass(['label', { focus: $setup.isInputFocused }, { required: $props.required }]),\n for: this.$attrs.id\n }, _toDisplayString($props.label), 11, _hoisted_3),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"input\", _mergeProps(_ctx.$attrs, {\n value: $props.modelValue,\n class: \"input\",\n onInput: _cache[1] || (_cache[1] = ($event: any) => ($setup.onInput($event.target.value))),\n onFocus: _cache[2] || (_cache[2] = ($event: any) => ($setup.toggleLabelClass($event.target.value, true))),\n onBlur: _cache[3] || (_cache[3] = ($event: any) => ($setup.toggleLabelClass($event.target.value, false))),\n type: $setup.showSpan(),\n required: $props.required\n }), null, 16, _hoisted_5),\n ($props.passwordVisibility)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n onClick: _cache[4] || (_cache[4] = ($event: any) => ($setup.togglePassword())),\n class: _normalizeClass([\"form__input__visibility\", $setup.isPasswordVisible ? '' : 'notVisible'])\n }, null, 2))\n : _createCommentVNode(\"\", true),\n ($props.modelValue)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n ($setup.passwordWeak() && $setup.isInputFocused)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_7, \"senha fraca\"))\n : _createCommentVNode(\"\", true),\n ($setup.passwordIntermediate() && $setup.isInputFocused)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_8, \"senha boa\"))\n : _createCommentVNode(\"\", true),\n ($setup.passwordExcellent() && $setup.isInputFocused)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_9, \"senha forte\"))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _hoisted_11,\n (!$setup.isCirculoTemplate())\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass(['password-rule', { passed: $setup.specialCharacterValidationPassed }])\n }, \"Caractere especial (!@#$%^&*).\", 2))\n : _createCommentVNode(\"\", true),\n (!$setup.isCirculoTemplate())\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: _normalizeClass(['password-rule', { passed: $setup.upperCaseValidationPassed }])\n }, \"Letra maiúscula.\", 2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", {\n class: _normalizeClass(['password-rule', { passed: $setup.lowerCaseValidationPassed }])\n }, \"Letra minúscula.\", 2),\n _createElementVNode(\"span\", {\n class: _normalizeClass(['password-rule', { passed: $setup.numericCharacterValidationPassed }])\n }, \"Pelo menos um número.\", 2),\n _createElementVNode(\"span\", {\n class: _normalizeClass(['password-rule', { passed: $setup.eightCharacterValidationPassed }])\n }, \"No mínimo 8 caracteres.\", 2),\n _createElementVNode(\"span\", {\n class: _normalizeClass(['password-rule', { passed: $setup.noWhiteSpaceValidationPassed }])\n }, \"Sem espaços em branco.\", 2)\n ])\n ]))\n}","\r\nimport { Ref, ref, watch } from \"vue\";\r\nimport { computed, ComputedRef } from \"@vue/reactivity\";\r\nimport { PasswordStrength } from \"../../../../../domain/entities/entities\";\r\nimport { useStore } from \"vuex\";\r\nimport {\r\n isCirculoTemplate,\r\n isConstrucolorTemplate,\r\n isDecolaTemplate\r\n} from \"../../mixins\";\r\n\r\nconst __default__ = {\r\n name: \"inputPassword\",\r\n props: {\r\n /** It is a pointer to input and is the input's name too (this will be visible by users). */\r\n label: {\r\n required: true,\r\n type: String\r\n },\r\n\r\n /** Used to make a connection with another variable outside this component */\r\n modelValue: {\r\n required: false,\r\n default: \"\"\r\n },\r\n\r\n /** Prop used to set if the password view format is standard. */\r\n passwordVisibility: {\r\n required: false,\r\n type: Boolean\r\n },\r\n\r\n /** Prop used to set a different password view type than the default. */\r\n typeInput: {\r\n type: String,\r\n required: false,\r\n default: \"\"\r\n },\r\n inputColor: {\r\n type: String,\r\n default: \"var(--primary-color)\"\r\n },\r\n required: {\r\n required: false,\r\n type: Boolean\r\n }\r\n },\r\n\r\n setup(props, { emit }) {\r\n const store = useStore();\r\n\r\n /** Key that references the timer in progress. Used to cancel the timeout. */\r\n let timerId;\r\n\r\n /** Regex expression to validate a strong password.\r\n * Strong password pattern:\r\n * Special character (!@#$%^&*).\r\n * Upper case.\r\n * Lower case.\r\n * At least one number.\r\n * At least 8 characters.*/\r\n const strengthRegex: RegExp = new RegExp(\r\n \"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})\"\r\n );\r\n\r\n /** Used to control the label state. */\r\n const isInputFocused: Ref = ref(false);\r\n\r\n const defaultColor = props.inputColor as string;\r\n const successColor = \"#008000\";\r\n const invalidColor = \"#f4271c\";\r\n\r\n /** Variable used to set the input color according to validation.\r\n * the variable is started with the default color of the inputs. */\r\n const inputColor: Ref = ref(defaultColor);\r\n\r\n /** Variable used to change the span color if the password has white spaces. */\r\n const noWhiteSpaceValidationPassed: Ref = ref(false);\r\n\r\n /** Variable used to change the span color if the password is eight characters long. */\r\n const eightCharacterValidationPassed: Ref = ref(false);\r\n\r\n /** Variable used to change the color of the span if the password has an uppercase letter. */\r\n const upperCaseValidationPassed: Ref = ref(false);\r\n\r\n /** Variable used to change the color of the span if the password has a lowercase letter. */\r\n const lowerCaseValidationPassed: Ref = ref(false);\r\n\r\n /** Variable used to change the span color if the password has a number. */\r\n const numericCharacterValidationPassed: Ref = ref(false);\r\n\r\n /** Variable used to change the span color if the password has a special character. */\r\n const specialCharacterValidationPassed: Ref = ref(false);\r\n\r\n /** Variable that makes the password visible. */\r\n const isPasswordVisible: Ref = ref(false);\r\n\r\n /** Computed that returns the color of the input when it has focus and without. */\r\n const color: ComputedRef = computed(() => {\r\n return isInputFocused.value ? inputColor.value : defaultColor;\r\n });\r\n\r\n /** Computed which returns the strength of the user's password. */\r\n const passwordStrength: ComputedRef = computed(() => {\r\n return store.getters[\"authentication_module/passwordStrength\"];\r\n });\r\n\r\n /** This will be called when the input receive and event of type focus or blur and will be used to control the label state\r\n * @param value Refers to the current content_provider coming from the input.\r\n * @param isFocused Receive true when the event type is focus and false when the event type is blur. */\r\n const toggleLabelClass = (value, isFocused: boolean): void => {\r\n isInputFocused.value = isFocused;\r\n if (value && !isFocused) {\r\n isInputFocused.value = true;\r\n }\r\n };\r\n\r\n /** Serves to handle when the input receive data coming from another source that do not come from user */\r\n watch(\r\n () => props.modelValue,\r\n async () => {\r\n if (props.modelValue) {\r\n isInputFocused.value = true;\r\n return;\r\n }\r\n await store.dispatch(\"authentication_module/clearPasswordStrength\");\r\n }\r\n );\r\n\r\n const validatePasswordStrength = async (password: string) =>\r\n await store.dispatch(\r\n \"authentication_module/validatePasswordStrength\",\r\n password\r\n );\r\n\r\n /** Function responsible for checking if the password is weak.\r\n * For a password to be considered weak it must be below the entropy level. That would be 60.*/\r\n function passwordWeak(): boolean {\r\n return passwordStrength.value.entropy < passwordStrength.value.minEntropy;\r\n }\r\n\r\n /** Function responsible for checking if the password is good.\r\n * For a password to be considered good it needs to be 60 to 75 entropy.*/\r\n function passwordIntermediate(): boolean {\r\n return (\r\n passwordStrength.value.entropy >= passwordStrength.value.minEntropy &&\r\n passwordStrength.value.entropy <= 75\r\n );\r\n }\r\n\r\n /** Function responsible for checking if the password is strong.\r\n * For a password to be considered strong it must be above 75 entropy. */\r\n function passwordExcellent(): boolean {\r\n return passwordStrength.value.entropy > 75;\r\n }\r\n\r\n /** Function responsible for setting the input color according to entropy. */\r\n function updateInputColorBasedOnStrength(isPasswordValid: boolean): void {\r\n if (!isPasswordValid) {\r\n inputColor.value = invalidColor;\r\n return;\r\n }\r\n\r\n if (passwordStrength.value.entropy < passwordStrength.value.minEntropy) {\r\n inputColor.value = \"#ffc800\";\r\n }\r\n if (\r\n passwordStrength.value.entropy >= passwordStrength.value.minEntropy &&\r\n passwordStrength.value.entropy <= 75\r\n ) {\r\n inputColor.value = \"#ff8d00\";\r\n }\r\n if (passwordStrength.value.entropy > 75) {\r\n inputColor.value = successColor;\r\n }\r\n }\r\n\r\n const updatePasswordValidationDependencies = (password: string): void => {\r\n eightCharacterValidationPassed.value = password.length >= 8;\r\n noWhiteSpaceValidationPassed.value = !/\\s/g.test(password);\r\n upperCaseValidationPassed.value = /(?=.*[A-Z])/.test(password);\r\n lowerCaseValidationPassed.value = /(?=.*[a-z])/.test(password);\r\n numericCharacterValidationPassed.value = /(?=.*[0-9])/.test(password);\r\n specialCharacterValidationPassed.value = /(?=.*[!@#$%^&*])/.test(\r\n password\r\n );\r\n };\r\n\r\n const isPasswordValid = (): boolean => {\r\n if (isDecolaTemplate()) {\r\n return (\r\n eightCharacterValidationPassed.value &&\r\n noWhiteSpaceValidationPassed.value &&\r\n upperCaseValidationPassed.value &&\r\n lowerCaseValidationPassed.value &&\r\n numericCharacterValidationPassed.value &&\r\n specialCharacterValidationPassed.value\r\n );\r\n } else {\r\n return (\r\n eightCharacterValidationPassed.value &&\r\n noWhiteSpaceValidationPassed.value &&\r\n lowerCaseValidationPassed.value &&\r\n specialCharacterValidationPassed.value\r\n );\r\n }\r\n };\r\n\r\n /** Function responsible for validating the password and passing it on to the registration modal.\r\n * @param password password entered by the user. */\r\n const onInput = async (password: string): Promise => {\r\n updatePasswordValidationDependencies(password);\r\n\r\n const isPasswordStrong = strengthRegex.test(password);\r\n if (isPasswordStrong) {\r\n timerId = setTimeout(async () => {\r\n await validatePasswordStrength(password);\r\n updateInputColorBasedOnStrength(isPasswordValid());\r\n clearTimeout(timerId);\r\n }, 200);\r\n } else {\r\n await store.dispatch(\"authentication_module/clearPasswordStrength\");\r\n }\r\n\r\n emit(\"update:modelValue\", password);\r\n };\r\n\r\n /** Function responsible for making the password view span visible. */\r\n function showSpan(): string {\r\n if (props.passwordVisibility) {\r\n return isPasswordVisible.value ? \"text\" : \"password\";\r\n }\r\n return props.typeInput as string;\r\n }\r\n\r\n /** Function responsible for making the password visible. */\r\n function togglePassword(): void {\r\n isPasswordVisible.value = !isPasswordVisible.value;\r\n }\r\n\r\n return {\r\n isInputFocused,\r\n color,\r\n passwordStrength,\r\n noWhiteSpaceValidationPassed,\r\n eightCharacterValidationPassed,\r\n upperCaseValidationPassed,\r\n lowerCaseValidationPassed,\r\n numericCharacterValidationPassed,\r\n specialCharacterValidationPassed,\r\n isPasswordVisible,\r\n toggleLabelClass,\r\n passwordWeak,\r\n passwordIntermediate,\r\n passwordExcellent,\r\n validatePasswordStrength,\r\n onInput,\r\n showSpan,\r\n togglePassword,\r\n isDecolaTemplate,\r\n isConstrucolorTemplate,\r\n isCirculoTemplate\r\n };\r\n }\r\n};\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"e8953702\": (_ctx.color)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./InputPassword.vue?vue&type=template&id=8fc5c298&scoped=true&ts=true\"\nimport script from \"./InputPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./InputPassword.vue?vue&type=script&lang=ts\"\n\nimport \"./InputPassword.vue?vue&type=style&index=0&id=8fc5c298&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8fc5c298\"]])\n\nexport default __exports__","\r\nimport IdentityForm from \"../application/forms/IdentityForm.vue\";\r\nimport ModernInput from \"../application/forms/modernInput.vue\";\r\nimport {Address, User} from \"../../../../domain/entities/entities\";\r\nimport InputPassword from \"../application/forms/InputPassword.vue\";\r\nimport store from \"../../../repository/store/store\";\r\nimport {defineComponent, onBeforeMount, onBeforeUnmount, Ref, ref} from \"vue\";\r\nimport http from \"../../../repository/http\";\r\nimport {dispatchErrorBox, dispatchSuccessBox} from \"../mixins\";\r\nimport {RepositoryException} from \"../../../../domain/exceptions/exceptions\";\r\n\r\nexport default defineComponent({\r\n name: \"register-modal\",\r\n components: { ModernInput, IdentityForm, InputPassword },\r\n\r\n setup(_, { emit }) {\r\n /** Referes the new user that will be registered */\r\n const user = ref(new User());\r\n\r\n /** Contain all of Brazil's states */\r\n const states = ref([{ stateID: null, id: null, label: \"Selecionar\" }]);\r\n\r\n /** Contain the max date value that can be applied in the date input example 2022-06-08 */\r\n const maxDate: Ref = ref(\"\");\r\n\r\n /** Variable that makes the password visible. */\r\n const isPasswordVisible: Ref = ref(false);\r\n\r\n onBeforeMount(async () => {\r\n await loadStates();\r\n calcMaxDate();\r\n });\r\n\r\n onBeforeUnmount(async () => {\r\n user.value = new User();\r\n });\r\n\r\n /** Calculate the max value that the date input can contain */\r\n const calcMaxDate = () => {\r\n const currentDate = new Date();\r\n let day: string | number = currentDate.getDay();\r\n let month: string | number = currentDate.getMonth();\r\n const year = currentDate.getFullYear();\r\n day = formatDayMonth(day.toString());\r\n month = formatDayMonth(month.toString());\r\n maxDate.value = year + \"-\" + month + \"-\" + day;\r\n };\r\n\r\n /** Verifies if day or month has only one character, if true put 0 in end\r\n * @param value might be the day or the month, example day \"4\" or month \"12\". */\r\n const formatDayMonth = (value: string): string => {\r\n return value.length == 1 ? \"0\" + value : value;\r\n };\r\n\r\n /** Makes a request to get all the states of Brazil. */\r\n async function loadStates() {\r\n try {\r\n const response = await http.get(\"api/decola/states\");\r\n states.value = [...states.value, ...response.data.states];\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n /** Used to display some information while the address is loading. */\r\n function fillAddressLoading() {\r\n const loading = \"...\";\r\n user.value.address.federalUnit = loading;\r\n user.value.address.city = loading;\r\n user.value.address.district = loading;\r\n user.value.address.street = loading;\r\n }\r\n\r\n /** To clear all address fields. Usually used when the provided cep does not exist. */\r\n function clearFillAddress() {\r\n user.value.address.zipCode = \"\";\r\n user.value.address.federalUnit = \"\";\r\n user.value.address.city = \"\";\r\n user.value.address.district = \"\";\r\n user.value.address.street = \"\";\r\n }\r\n\r\n /** Used to fill the address field with the payload received from the backend app.\r\n * @see Address */\r\n function fillAddress(address: Address) {\r\n user.value.address = address;\r\n }\r\n\r\n /** Request the address by passing the cep.\r\n * @param cep follow this pattern \"89110110\" */\r\n async function requestCepAPI(cep: string): Promise {\r\n if (cep.length < 9) {\r\n user.value.address.zipCode = cep;\r\n return;\r\n }\r\n try {\r\n fillAddressLoading();\r\n const response = await http.get(`/api/decola/cep/${cep}`);\r\n const address: Address = {\r\n ...response.data,\r\n zipCode: user.value.address.zipCode\r\n };\r\n fillAddress(address);\r\n } catch (e) {\r\n clearFillAddress();\r\n console.log(e);\r\n await dispatchErrorBox(\"O CEP digitado não existe!\");\r\n }\r\n }\r\n\r\n /** Undo the structural changes applied by the input's mask to send correctly to the backend app.*/\r\n const formatUserData = () => {\r\n user.value.document = user.value.document.replaceAll(\"-\", \"\").replaceAll(\".\", \"\");\r\n user.value.address.zipCode = user.value.address.zipCode.replace(\"-\", \"\");\r\n user.value.address.stateID = Number(user.value.address.stateID);\r\n user.value.address.addressNumber = Number(user.value.address.addressNumber);\r\n }\r\n\r\n /** Register a new user with the information provided through the form. */\r\n async function register(): Promise {\r\n try {\r\n formatUserData();\r\n await store.dispatch(\r\n \"authentication_module/registerNewUser\",\r\n user.value\r\n );\r\n await dispatchSuccessBox(\"Cadastro realizado com sucesso!\");\r\n emit(\"toggleRegisterModal\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n /** Function that makes the password visible or not. */\r\n function togglePassword() {\r\n isPasswordVisible.value = !isPasswordVisible.value;\r\n }\r\n\r\n return {\r\n user,\r\n states,\r\n maxDate,\r\n isPasswordVisible,\r\n requestCepAPI,\r\n register,\r\n togglePassword\r\n };\r\n }\r\n});\r\n","import { render } from \"./RegisterModal.vue?vue&type=template&id=5be5b1cc&scoped=true&ts=true\"\nimport script from \"./RegisterModal.vue?vue&type=script&lang=ts\"\nexport * from \"./RegisterModal.vue?vue&type=script&lang=ts\"\n\nimport \"./RegisterModal.vue?vue&type=style&index=0&id=5be5b1cc&scoped=true&lang=css\"\nimport \"./RegisterModal.vue?vue&type=style&index=1&id=5be5b1cc&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5be5b1cc\"]])\n\nexport default __exports__","\r\nimport LoginForm from \"../application/forms/LoginForm.vue\";\r\nimport RegisterModal from \"./RegisterModal.vue\";\r\n\r\nexport default {\r\n components: {\r\n RegisterModal,\r\n \"login-form\": LoginForm\r\n }\r\n};\r\n","import { render } from \"./Login.vue?vue&type=template&id=3c34be24&scoped=true&ts=true\"\nimport script from \"./Login.vue?vue&type=script&lang=ts\"\nexport * from \"./Login.vue?vue&type=script&lang=ts\"\n\nimport \"./Login.vue?vue&type=style&index=0&id=3c34be24&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3c34be24\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9db2d7ca\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"course__content\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"course__span\" }, \"curso\", -1))\nconst _hoisted_3 = { class: \"course__information\" }\nconst _hoisted_4 = { class: \"course__title\" }\nconst _hoisted_5 = { class: \"course__details-content\" }\nconst _hoisted_6 = { class: \"course__details\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"course__rating\"\n}\nconst _hoisted_8 = { class: \"course__duration\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"course__certification\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n style: _normalizeStyle({\r\n backgroundImage: `linear-gradient(101.39deg, rgba(40, 55, 135, 0.38) 0%, rgba(35, 125, 174, 0.38) 98.82%), url(${_ctx.course.thumbnailURL}) !important`\r\n }),\n class: \"course\"\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h4\", _hoisted_4, _toDisplayString(_ctx.course.title), 1),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n (_ctx.course.rating)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(_ctx.course.rating), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_8, _toDisplayString(_ctx.formattedDuration(_ctx.course.duration)), 1)\n ])\n ]),\n (_ctx.course.haveCertification)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 4))\n}","\r\nimport {defineComponent, PropType} from \"vue\";\r\nimport {Course} from \"../../../../domain/entities/entities\";\r\n\r\nexport default defineComponent({\r\n props: {\r\n course: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n\r\n setup() {\r\n /**\r\n * Formats course duration.\r\n * @param duration Number that tells how long the course can last (calculated from the sum of each content_provider duration [the content_provider duration is defined by the instructor]).\r\n * @returns Course duration in one of the following formats: 00:00:00h, 00:00m in case the hours are less than zero and 00h for too many hours.\r\n */\r\n function formattedDuration(duration: number) {\r\n const sec = duration;\r\n let hours: string | number = Math.floor(sec / 3600);\r\n let minutes: string | number = Math.floor((sec - hours * 3600) / 60);\r\n let seconds: string | number = sec - hours * 3600 - minutes * 60;\r\n if (hours < 10) {\r\n hours = \"0\" + hours;\r\n }\r\n if (minutes < 10) {\r\n minutes = \"0\" + minutes;\r\n }\r\n if (seconds < 10) {\r\n seconds = \"0\" + seconds;\r\n }\r\n if (hours > 24) {\r\n return hours + \"h\";\r\n }\r\n if (hours == 0) {\r\n return minutes + \":\" + seconds + \"m\";\r\n }\r\n return hours + \":\" + minutes + \":\" + seconds + \"h\";\r\n }\r\n\r\n return {\r\n formattedDuration\r\n };\r\n }\r\n});\r\n","import { render } from \"./Card.vue?vue&type=template&id=9db2d7ca&scoped=true&ts=true\"\nimport script from \"./Card.vue?vue&type=script&lang=ts\"\nexport * from \"./Card.vue?vue&type=script&lang=ts\"\n\nimport \"./Card.vue?vue&type=style&index=0&id=9db2d7ca&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-9db2d7ca\"]])\n\nexport default __exports__","\r\nimport Login from \"../landingpage/Login.vue\";\r\nimport { Carousel, Navigation, Slide } from \"vue3-carousel\";\r\nimport \"vue3-carousel/dist/carousel.css\";\r\nimport { computed, ComputedRef, onBeforeMount, Ref } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport \"./callCarousel.css\";\r\nimport Card from \"./Card.vue\";\r\nimport LoginForm from \"../application/forms/LoginForm.vue\";\r\nimport { defineComponent, ref } from \"@vue/runtime-core\";\r\nimport RegisterModal from \"./RegisterModal.vue\";\r\nimport {\r\n disableBodyOverflow,\r\n dispatchErrorBox,\r\n enableBodyOverflow\r\n} from \"../mixins\";\r\nimport { RepositoryException } from \"../../../../domain/exceptions/exceptions\";\r\nimport { Course } from \"../../../../domain/entities/entities\";\r\nimport { useRoute } from \"vue-router\";\r\n\r\nconst __default__ = defineComponent({\r\n components: {\r\n RegisterModal,\r\n LoginForm,\r\n Card,\r\n login: Login,\r\n Carousel,\r\n Slide,\r\n Navigation\r\n },\r\n\r\n setup() {\r\n const route = useRoute();\r\n const store = useStore();\r\n\r\n const loginDisplay: Ref = ref(\"none\");\r\n\r\n const newsCourses: ComputedRef = computed(() => {\r\n return store.getters[\"course_module/courses\"] || [];\r\n });\r\n\r\n const isModalOpened: Ref = ref(false);\r\n\r\n onBeforeMount(async () => {\r\n if (route.query?.redirect) loginDisplay.value = \"flex\";\r\n\r\n await loadNewsCourses();\r\n });\r\n /* make registration pop-up visible when called */\r\n function showRegistrationSpan(): void {\r\n store.dispatch(\"setRegistrationSpanVisibility\", true);\r\n }\r\n\r\n function formattedDuration(duration: number) {\r\n const sec = duration;\r\n let hours: string | number = Math.floor(sec / 3600);\r\n let minutes: string | number = Math.floor((sec - hours * 3600) / 60);\r\n let seconds: string | number = sec - hours * 3600 - minutes * 60;\r\n if (hours < 10) {\r\n hours = \"0\" + hours;\r\n }\r\n if (minutes < 10) {\r\n minutes = \"0\" + minutes;\r\n }\r\n if (seconds < 10) {\r\n seconds = \"0\" + seconds;\r\n }\r\n if (hours > 24) {\r\n return hours + \"h\";\r\n }\r\n if (hours == 0) {\r\n return minutes + \":\" + seconds + \"m\";\r\n }\r\n return hours + \":\" + minutes + \":\" + seconds + \"h\";\r\n }\r\n\r\n async function loadNewsCourses(): Promise {\r\n try {\r\n await store.dispatch(\"course_module/loadNewsCourses\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n const toggleLogin = (): void => {\r\n loginDisplay.value = loginDisplay.value === \"none\" ? \"flex\" : \"none\";\r\n if (loginDisplay.value === \"flex\") {\r\n disableBodyOverflow();\r\n } else {\r\n enableBodyOverflow();\r\n }\r\n };\r\n\r\n const toggleRegisterModal = async (): Promise => {\r\n isModalOpened.value = !isModalOpened.value;\r\n await store.dispatch(\"authentication_module/clearPasswordStrength\");\r\n };\r\n\r\n return {\r\n newsCourses,\r\n isModalOpened,\r\n loginDisplay,\r\n toggleRegisterModal,\r\n showRegistrationSpan,\r\n loadNewsCourses,\r\n formattedDuration,\r\n toggleLogin\r\n };\r\n }\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"15840bfc\": (_ctx.loginDisplay)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./Call.vue?vue&type=template&id=094d6c5b&scoped=true&ts=true\"\nimport script from \"./Call.vue?vue&type=script&lang=ts\"\nexport * from \"./Call.vue?vue&type=script&lang=ts\"\n\nimport \"./Call.vue?vue&type=style&index=0&id=094d6c5b&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-094d6c5b\"]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createBlock as _createBlock, createElementVNode as _createElementVNode, createStaticVNode as _createStaticVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6f1ba49a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"introduction\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"releases\"\n}\nconst _hoisted_3 = {\n key: 0,\n class: \"releases__title\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"contain-video\" }, [\n /*#__PURE__*/_createElementVNode(\"iframe\", {\n class: \"introduction__video\",\n \"data-iframe\": \"\",\n src: \"https://www.youtube.com/embed/OwIpXBMmRL0\",\n title: \"YouTube video player\",\n allow: \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\",\n allowfullscreen: \"\"\n })\n], -1))\nconst _hoisted_5 = /*#__PURE__*/_createStaticVNode(\"

SENIORIDADE DOS PROFISSIONAIS E AUMENTO DA PRODUTIVIDADE
RETENÇÃO DE TALENTOS
DESENVOLVIMENTO DE LIDERANÇAS
PROMOVER A MENTALIDADE DA INOVAÇÃO
MAIS QUALIDADE NAS ENTREGAS
\", 2)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_card = _resolveComponent(\"card\")!\n const _component_Slide = _resolveComponent(\"Slide\")!\n const _component_Navigation = _resolveComponent(\"Navigation\")!\n const _component_Carousel = _resolveComponent(\"Carousel\")!\n const _component_section_divisor = _resolveComponent(\"section-divisor\")!\n\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n (_ctx.newsCourses.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_ctx.newsCourses.length)\n ? (_openBlock(), _createElementBlock(\"h2\", _hoisted_3, \"NOVIDADES\"))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_Carousel, {\n breakpoints: _ctx.breakpoints,\n settings: _ctx.settings\n }, {\n addons: _withCtx(() => [\n _createVNode(_component_Navigation)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.newsCourses, (card, index) => {\n return (_openBlock(), _createBlock(_component_Slide, { key: index }, {\n default: _withCtx(() => [\n _createVNode(_component_card, {\n duration: _ctx.formattedDuration(card.duration),\n rating: card.rating,\n title: card.title,\n \"thumbnail-u-r-l\": card.imageURL,\n course: card\n }, null, 8, [\"duration\", \"rating\", \"title\", \"thumbnail-u-r-l\", \"course\"])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"breakpoints\", \"settings\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_section_divisor, {\n title: \"Sobre nós\",\n \"color-label\": \"#fafafa\",\n class: \"introduction__title\",\n \"color-line\": \"#fafafa\"\n }),\n _hoisted_4,\n _hoisted_5\n ]))\n}","\r\nimport SectionDivisor from \"./SectionDivisor.vue\";\r\nimport { Carousel, Navigation, Slide } from \"vue3-carousel\";\r\nimport {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n onBeforeMount,\r\n onMounted\r\n} from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { Course } from \"../../../../domain/entities/entities\";\r\nimport { RepositoryException } from \"../../../../domain/exceptions/exceptions\";\r\nimport { dispatchErrorBox } from \"../mixins\";\r\nimport Card from \"./Card.vue\";\r\n\r\nexport default defineComponent({\r\n components: {\r\n Carousel,\r\n Slide,\r\n Navigation,\r\n Card,\r\n SectionDivisor\r\n },\r\n setup() {\r\n const store = useStore();\r\n\r\n let isPaused = true;\r\n\r\n onMounted(() => {\r\n document.addEventListener(\"scroll\", iframeSettings);\r\n });\r\n\r\n onBeforeMount(async () => {\r\n await loadNewsCourses();\r\n });\r\n\r\n const iframeSettings = () => {\r\n const landingPage = document.getElementById(\r\n \"landingPage\"\r\n ) as HTMLDivElement;\r\n\r\n /** View port information */\r\n const { height } = landingPage.getBoundingClientRect();\r\n\r\n /** Iframe information */\r\n const iframe = document.querySelector(\r\n \"[data-iframe]\"\r\n ) as HTMLIFrameElement;\r\n const { y } = iframe.getBoundingClientRect();\r\n const iframeCenterPosition = y + iframe.offsetHeight / 2;\r\n const runningArea = !(\r\n iframeCenterPosition < 0 || iframeCenterPosition > height\r\n );\r\n\r\n if (!isPaused && !runningArea) {\r\n isPaused = true;\r\n pauseVideo(iframe);\r\n } else if (isPaused && runningArea) {\r\n playVideo(iframe);\r\n isPaused = false;\r\n }\r\n };\r\n\r\n const playVideo = (iframe: HTMLIFrameElement) => {\r\n if (iframe && iframe.contentWindow)\r\n iframe.contentWindow.postMessage(\r\n '{\"event\":\"command\",\"func\":\"' + \"playVideo\" + '\",\"args\":\"\"}',\r\n \"*\"\r\n );\r\n };\r\n\r\n const pauseVideo = (iframe: HTMLIFrameElement) => {\r\n if (iframe && iframe.contentWindow)\r\n iframe.contentWindow.postMessage(\r\n '{\"event\":\"command\",\"func\":\"' + \"stopVideo\" + '\",\"args\":\"\"}',\r\n \"*\"\r\n );\r\n };\r\n\r\n const newsCourses: ComputedRef = computed(() => {\r\n return store.getters[\"course_module/newCourses\"] || [];\r\n });\r\n\r\n const settings = {\r\n itemsToShow: 1,\r\n transition: 1000\r\n };\r\n\r\n const breakpoints = {\r\n 0: {\r\n itemsToShow: 1,\r\n snapAlign: \"center\"\r\n },\r\n\r\n 280: {\r\n itemsToShow: 1,\r\n snapAlign: \"center\"\r\n },\r\n\r\n 520: {\r\n itemsToShow: 2,\r\n snapAlign: \"center\",\r\n itemsToScroll: 2\r\n },\r\n\r\n 980: {\r\n itemsToShow: 3,\r\n snapAlign: \"center\",\r\n itemsToScroll: 3\r\n },\r\n\r\n 1030: {\r\n itemsToShow: 3,\r\n snapAlign: \"center\",\r\n itemsToScroll: 3\r\n },\r\n\r\n 1580: {\r\n itemsToShow: 4,\r\n snapAlign: \"center\",\r\n itemsToScroll: 4\r\n }\r\n };\r\n\r\n function formattedDuration(duration: number) {\r\n const sec = duration;\r\n let hours: string | number = Math.floor(sec / 3600);\r\n let minutes: string | number = Math.floor((sec - hours * 3600) / 60);\r\n let seconds: string | number = sec - hours * 3600 - minutes * 60;\r\n if (hours < 10) {\r\n hours = \"0\" + hours;\r\n }\r\n if (minutes < 10) {\r\n minutes = \"0\" + minutes;\r\n }\r\n if (seconds < 10) {\r\n seconds = \"0\" + seconds;\r\n }\r\n if (hours > 24) {\r\n return hours + \"h\";\r\n }\r\n if (hours == 0) {\r\n return minutes + \":\" + seconds + \"m\";\r\n }\r\n return hours + \":\" + minutes + \":\" + seconds + \"h\";\r\n }\r\n\r\n async function loadNewsCourses(): Promise {\r\n try {\r\n await store.dispatch(\"course_module/loadNewsCourses\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n return {\r\n newsCourses,\r\n breakpoints,\r\n settings,\r\n formattedDuration\r\n };\r\n }\r\n});\r\n","import { render } from \"./Introduction.vue?vue&type=template&id=6f1ba49a&scoped=true&ts=true\"\nimport script from \"./Introduction.vue?vue&type=script&lang=ts\"\nexport * from \"./Introduction.vue?vue&type=script&lang=ts\"\n\nimport \"./Introduction.vue?vue&type=style&index=0&id=6f1ba49a&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6f1ba49a\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-51a66197\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"mission\" }\nconst _hoisted_2 = { class: \"list\" }\nconst _hoisted_3 = { class: \"mission__content\" }\nconst _hoisted_4 = { class: \"mission__image\" }\nconst _hoisted_5 = [\"src\"]\nconst _hoisted_6 = { class: \"item__content item__title\" }\nconst _hoisted_7 = { class: \"item__content item__description\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.missions, (mission) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: \"item\",\n key: mission\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"img\", {\n class: \"icon\",\n src: \r\n require(`../../assets/static/home/mission-icons/${mission.image}`)\r\n ,\n alt: \"icon\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"h3\", _hoisted_6, _toDisplayString(mission.title), 1)\n ]),\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(mission.description), 1)\n ]))\n }), 128))\n ])\n ]))\n}","\r\nimport {defineComponent} from \"vue\";\r\nimport SectionDivisor from \"./SectionDivisor.vue\";\r\n\r\nexport default defineComponent({\r\n components: { SectionDivisor },\r\n data() {\r\n return {\r\n missions: [\r\n {\r\n title: \"Corporativa\",\r\n description:\r\n \"Guardiã do DNA lince, responsável pela cultura organizacional, conteúdos institucionais e sustentabilidade, com atenção às pessoas da empresa e da comunidade.\",\r\n image: \"corporativa-icon.png\",\r\n },\r\n {\r\n title: \"Operações\",\r\n description:\r\n \"Escola responsável por capacitar tecnicamente os colaboradores, conforme o core business de cada uma das empresas do grupo.\",\r\n image: \"operacoes-icon.png\",\r\n },\r\n {\r\n title: \"Administração\",\r\n description:\r\n \"Capacitar profissionais através de trilhas de conhecimentos técnicos nas áreas administrativas garantindo a alta performance dos profissionais nas rotinas e projetos que atuam.\",\r\n image: \"administracao-icon.png\",\r\n },\r\n {\r\n title: \"Gestão e liderança\",\r\n description:\r\n \"Desenvolver profissionais nas competências e habilidades de gestão e liderança, com visão estratégia e sistêmica comprometidos com o crescimento e desenvolvimento do grupo.\",\r\n image: \"lideranca-icon.png\",\r\n },\r\n {\r\n title: \"Mercado\",\r\n description:\r\n \"Com foco nas áreas de marketing e comercial a escola de mercado desenvolverá os colaboradores nas estratégias de vendas posicionamento de marca e produtos do grupo lince.\",\r\n image: \"mercado-icon.png\",\r\n },\r\n {\r\n title: \"Ferramentas\",\r\n description:\r\n \"Apoiar todas as demais escolas, fornecendo conteúdos de suporte para o desenvolvimento das atividades.\",\r\n image: \"ferramentas.svg\",\r\n },\r\n ],\r\n };\r\n },\r\n});\r\n","import { render } from \"./Mission.vue?vue&type=template&id=51a66197&scoped=true&ts=true\"\nimport script from \"./Mission.vue?vue&type=script&lang=ts\"\nexport * from \"./Mission.vue?vue&type=script&lang=ts\"\n\nimport \"./Mission.vue?vue&type=style&index=0&id=51a66197&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-51a66197\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-446487a4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"reset-password\" }\nconst _hoisted_2 = { class: \"box-menu\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_reset_options = _resolveComponent(\"reset-options\")!\n const _component_reset_password_component = _resolveComponent(\"reset-password-component\")!\n const _component_new_password = _resolveComponent(\"new-password\")!\n const _component_reset_password_success = _resolveComponent(\"reset-password-success\")!\n const _component_identity_form = _resolveComponent(\"identity-form\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n class: \"btn--reset-pass-exit\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('toggleModal')))\n }),\n false\n ? (_openBlock(), _createBlock(_component_reset_options, { key: 0 }))\n : _createCommentVNode(\"\", true),\n false\n ? (_openBlock(), _createBlock(_component_reset_password_component, {\n key: 1,\n onToggleModal: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('toggleModal'))),\n onRecoverByDocument: _cache[2] || (_cache[2] = ($event: any) => ($setup.recoverPasswordByDocument($event))),\n onRecoverByEmail: _cache[3] || (_cache[3] = ($event: any) => ($setup.recoverPasswordByEmail($event)))\n }))\n : (_ctx.$route.params.token)\n ? (_openBlock(), _createBlock(_component_new_password, {\n key: 2,\n onToggleModal: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$emit('toggleModal')))\n }))\n : ($setup.emailHasBeenSent)\n ? (_openBlock(), _createBlock(_component_reset_password_success, {\n key: 3,\n onToggleModal: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$emit('toggleModal')))\n }))\n : (_ctx.$route.params.resetBy)\n ? (_openBlock(), _createBlock(_component_identity_form, {\n key: 4,\n onPost: _cache[6] || (_cache[6] = ($event: any) => ($setup.checkUserCredentials($event)))\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, resolveDirective as _resolveDirective, withDirectives as _withDirectives, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-11b17742\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"form__transcription\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", { class: \"form__title\" }, \"Redefinição de senha\"),\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"form__description\" }, [\n /*#__PURE__*/_createTextVNode(\" Esqueceu sua senha? \"),\n /*#__PURE__*/_createElementVNode(\"br\"),\n /*#__PURE__*/_createElementVNode(\"br\"),\n /*#__PURE__*/_createTextVNode(\" Digite seu CPF o E-mail para que possamos dar continuidade na recuperação de senha. \")\n ])\n], -1))\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"button\", {\n form: \"reset-password\",\n class: \"form__input--submit\",\n type: \"submit\"\n}, \" Enviar \", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _directive_focus = _resolveDirective(\"focus\")!\n\n return (_openBlock(), _createElementBlock(\"form\", {\n onSubmit: _cache[3] || (_cache[3] = _withModifiers(\n//@ts-ignore\n(...args) => ($setup.submit && $setup.submit(...args)), [\"prevent\"])),\n id: \"reset-password\",\n class: \"form\"\n }, [\n _hoisted_1,\n _withDirectives(_createElementVNode(\"input\", {\n \"data-input\": \"\",\n id: \"login-email\",\n type: \"text\",\n form: \"reset-password\",\n class: \"form__input\",\n placeholder: \"CPF ou e-mail\",\n autocomplete: \"off\",\n maxlength: \"254\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (($setup.userData.document) = $event)),\n onFocus: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => ($setup.unmaskCPF && $setup.unmaskCPF(...args))),\n onBlur: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => ($setup.maskCPF && $setup.maskCPF(...args)))\n }, null, 544), [\n [_directive_focus],\n [_vModelText, $setup.userData.document]\n ]),\n _hoisted_2\n ], 32))\n}","\r\nimport {onBeforeMount, ref} from \"vue\";\r\nimport ModernInput from \"./modernInput.vue\";\r\nimport {UserData} from \"../../../../../domain/entities/entities\";\r\nimport {disableBodyOverflow, enableBodyOverflow} from \"../../mixins\";\r\n\r\nexport default {\r\n name: \"ResetPasswordComponent\",\r\n components: { ModernInput },\r\n\r\n setup(_, { emit }) {\r\n const userData = ref(new UserData());\r\n\r\n onBeforeMount(() => disableBodyOverflow())\r\n\r\n const maskCPF = (event: Event): void => {\r\n const input = event.target as HTMLInputElement;\r\n\r\n if (input.value.includes(\"@\")) {\r\n return;\r\n }\r\n\r\n input.value = maskedCPF(input.value);\r\n };\r\n\r\n const unmaskCPF = (event: Event): void => {\r\n const input = event.target as HTMLInputElement;\r\n\r\n if (input.value.includes(\"@\")) {\r\n return;\r\n }\r\n\r\n input.value = input.value.replace(/(\\.|\\/|\\-)/g, \"\");\r\n };\r\n\r\n const maskedCPF = (value: string): string => {\r\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})/g, \"\\$1.\\$2.\\$3\\-\\$4\");\r\n };\r\n\r\n const submit = () => {\r\n if (userData.value.document.includes(\"@\")) {\r\n emit(\"recoverByEmail\", userData.value);\r\n } else {\r\n emit(\"recoverByDocument\", userData.value);\r\n }\r\n enableBodyOverflow();\r\n };\r\n\r\n return {\r\n userData,\r\n maskCPF,\r\n unmaskCPF,\r\n submit,\r\n };\r\n },\r\n};\r\n","import { render } from \"./ResetPassword.vue?vue&type=template&id=11b17742&scoped=true&ts=true\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts\"\n\nimport \"./ResetPassword.vue?vue&type=style&index=0&id=11b17742&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-11b17742\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-034ed0f3\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"success-box\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"success-box__title\" }, \"VERIFIQUE SEU E-MAIL\", -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"success-box__description\" }, \" Enviamos as instruções de recuperação de senha para o seu e-mail. \", -1))\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"Voltar para tela inicial\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _hoisted_3,\n _createVNode(_component_router_link, {\n to: { name: 'home' },\n class: \"success-box__link\"\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n })\n ]))\n}","\r\nexport default {\r\n name: \"ResetPasswordSuccess\"\r\n};\r\n","import { render } from \"./ResetPasswordSuccess.vue?vue&type=template&id=034ed0f3&scoped=true&ts=true\"\nimport script from \"./ResetPasswordSuccess.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPasswordSuccess.vue?vue&type=script&lang=ts\"\n\nimport \"./ResetPasswordSuccess.vue?vue&type=style&index=0&id=034ed0f3&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-034ed0f3\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, vModelCheckbox as _vModelCheckbox, withDirectives as _withDirectives, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-226251d5\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"form__transcription\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", { class: \"form__title\" }, \"Redefinição de senha\"),\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"form__description\" }, \" A senha deve conter no mínimo 8 caracteres. \")\n], -1))\nconst _hoisted_2 = { class: \"form__containers\" }\nconst _hoisted_3 = { class: \"container__terms\" }\nconst _hoisted_4 = {\n class: \"label__terms\",\n for: \"terms\"\n}\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"Aceito os \")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"Termos de Uso e Política de Privacidade\")\nconst _hoisted_7 = { class: \"form__containers__box\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", {\n for: \"form__containers__input\",\n class: \"form__containers__label\"\n}, \"Mostrar senha\", -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"input\", {\n form: \"new-password\",\n class: \"form__input form__input--submit\",\n type: \"submit\",\n value: \"Alterar\"\n}, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_input_password = _resolveComponent(\"input-password\")!\n const _component_modern_input = _resolveComponent(\"modern-input\")!\n\n return (_openBlock(), _createElementBlock(\"form\", {\n id: \"new-password\",\n class: \"form\",\n onSubmit: _cache[4] || (_cache[4] = _withModifiers(\n//@ts-ignore\n(...args) => ($setup.resetPassword && $setup.resetPassword(...args)), [\"prevent\"]))\n }, [\n _hoisted_1,\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"terms\",\n type: \"checkbox\",\n class: \"input__terms\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (($setup.term) = $event))\n }, null, 512), [\n [_vModelCheckbox, $setup.term]\n ]),\n _createElementVNode(\"label\", _hoisted_4, [\n _hoisted_5,\n _createVNode(_component_router_link, {\n to: { name: 'terms' },\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n })\n ])\n ]),\n _createVNode(_component_input_password, {\n form: \"new-password\",\n required: \"\",\n \"model-value\": $setup.password,\n \"onUpdate:model-value\": _cache[1] || (_cache[1] = ($event: any) => (($setup.password) = $event)),\n id: \"input-new-password\",\n label: \"Senha\",\n typeInput: $setup.currentType\n }, null, 8, [\"model-value\", \"typeInput\"]),\n _createVNode(_component_modern_input, {\n form: \"new-password\",\n type: $setup.currentType,\n id: \"confirmation-password\",\n label: \"Confirmar senha\",\n \"user-data\": $setup.confirmation,\n \"onUpdate:user-data\": _cache[2] || (_cache[2] = ($event: any) => (($setup.confirmation) = $event)),\n required: \"\"\n }, null, 8, [\"type\", \"user-data\"]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"input\", {\n form: \"new-password\",\n onInput: _cache[3] || (_cache[3] = ($event: any) => ($setup.togglePasswordVisibility($event.target.checked))),\n type: \"checkbox\",\n id: \"form__containers__input\",\n class: \"form__containers__input\"\n }, null, 32),\n _hoisted_8\n ])\n ]),\n _hoisted_9\n ], 32))\n}","\r\nimport { ComputedRef, Ref, ref } from \"vue\";\r\nimport { authenticationUseCases } from \"../../../../../domain/usecase/impl/authenticationUseCases\";\r\nimport ModernInput from \"./modernInput.vue\";\r\nimport InputPassword from \"./InputPassword.vue\";\r\nimport { computed } from \"@vue/reactivity\";\r\nimport { dispatchErrorBox } from \"../../mixins\";\r\nimport { dispatchError } from \"../../../utils/error_handling\";\r\nimport { useStore } from \"vuex\";\r\nimport { useRouter } from \"vue-router\";\r\n\r\nexport default {\r\n name: \"EmailVerification\",\r\n components: { ModernInput, InputPassword },\r\n\r\n setup(_) {\r\n const store = useStore();\r\n const router = useRouter();\r\n\r\n const password = ref(\"\");\r\n const confirmation = ref(\"\");\r\n const currentType = ref(\"password\");\r\n const passwordPattern =\r\n \"(?=^.{8,}$)((?=.*\\\\d)|(?=.*\\\\W+))(?![.\\\\n])(?=.*[A-Z])(?=.*[a-z]).*$\";\r\n const passwordPatternTitle = ref(\r\n \"\" +\r\n \"Sua senha deve conter: \" +\r\n \"Ao menos 8 caracteres, \\n\" +\r\n \"uma letra minúscula, \\n\" +\r\n \"uma letra maiúscula, \\n\" +\r\n \"um caractere especial \\n\"\r\n );\r\n\r\n const term: Ref = ref(false);\r\n\r\n async function resetPassword() {\r\n const token = String(router.currentRoute.value.params.token);\r\n const recoveryType = router.currentRoute.value.params.resetBy;\r\n password.value = password.value.trim();\r\n confirmation.value = confirmation.value.trim();\r\n try {\r\n if (!term.value) {\r\n await dispatchErrorBox(\r\n \"É necessário aceitar o Termo de Uso para prosseguir!\"\r\n );\r\n } else {\r\n if (recoveryType === \"email\") {\r\n await authenticationUseCases.resetPasswordByEmail(\r\n password.value,\r\n confirmation.value,\r\n token\r\n );\r\n } else {\r\n await authenticationUseCases.resetPasswordByData(\r\n password.value,\r\n confirmation.value,\r\n token\r\n );\r\n }\r\n //await acceptTerm();\r\n await store.dispatch(\"miscellany_module/setSuccess\", {\r\n message: \"Senha alterada com sucesso!\",\r\n changed: true\r\n });\r\n await router.push({ name: \"home\" });\r\n }\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n }\r\n\r\n const togglePasswordVisibility = async isVisible => {\r\n currentType.value = isVisible ? \"text\" : \"password\";\r\n };\r\n\r\n const isPasswordVisible: ComputedRef = computed(() => {\r\n return store.getters[\"authentication_module/isPasswordVisible\"];\r\n });\r\n\r\n const acceptTerm = async (): Promise => {\r\n await store.dispatch(\"authentication_module/acceptTerm\");\r\n };\r\n return {\r\n currentType,\r\n password,\r\n confirmation,\r\n isPasswordVisible,\r\n passwordPattern,\r\n passwordPatternTitle,\r\n term,\r\n resetPassword,\r\n togglePasswordVisibility\r\n };\r\n }\r\n};\r\n","import { render } from \"./NewPassword.vue?vue&type=template&id=226251d5&scoped=true&ts=true\"\nimport script from \"./NewPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./NewPassword.vue?vue&type=script&lang=ts\"\n\nimport \"./NewPassword.vue?vue&type=style&index=0&id=226251d5&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-226251d5\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./ResetOptions.vue?vue&type=template&id=78dbe598&scoped=true\"\nimport script from \"./ResetOptions.vue?vue&type=script&lang=js\"\nexport * from \"./ResetOptions.vue?vue&type=script&lang=js\"\n\nimport \"./ResetOptions.vue?vue&type=style&index=0&id=78dbe598&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-78dbe598\"]])\n\nexport default __exports__","\r\nimport ResetPasswordComponent from \"../application/forms/ResetPassword.vue\";\r\nimport { ref } from \"vue\";\r\nimport ResetPasswordSuccess from \"../application/forms/ResetPasswordSuccess.vue\";\r\nimport NewPassword from \"../application/forms/NewPassword.vue\";\r\nimport ResetOptions from \"../application/forms/ResetOptions.vue\";\r\nimport IdentityForm from \"../application/forms/IdentityForm.vue\";\r\nimport { UserData } from \"../../../../domain/entities/entities\";\r\nimport { authenticationUseCases } from \"../../../../domain/usecase/impl/authenticationUseCases\";\r\nimport router from \"@/routes\";\r\nimport {\r\n dispatchErrorBox,\r\n enableBodyOverflow,\r\n getObjectByValue\r\n} from \"../mixins\";\r\nimport { RepositoryException } from \"../../../../domain/exceptions/exceptions\";\r\nimport { dispatchError } from \"../../utils/error_handling\";\r\nimport { useStore } from \"vuex\";\r\n\r\nexport default {\r\n name: \"ResetPassword\",\r\n components: {\r\n IdentityForm,\r\n ResetOptions,\r\n NewPassword,\r\n ResetPasswordSuccess,\r\n ResetPasswordComponent\r\n },\r\n\r\n setup() {\r\n const store = useStore();\r\n\r\n const emailHasBeenSent = ref(false);\r\n\r\n /** Get user's information and parse it to a specific format to make a request and validate the user's credentials\r\n * @param userData Contains all data that the backend needs to validate the user's credentials, like document, name, etc... */\r\n const formattedUserData = (userData: UserData): UserData => {\r\n const formattedData: UserData = getObjectByValue(userData);\r\n\r\n /** Remove all characters except numbers */\r\n if (formattedData.document) {\r\n formattedData.document = formattedData.document.replace(\r\n /[^a-zA-Z0-9]/g,\r\n \"\"\r\n );\r\n }\r\n\r\n /** Parse to number attributes that should be numbers but is string */\r\n if (formattedData.badgeCode) {\r\n formattedData.badgeCode = Number(formattedData.badgeCode);\r\n }\r\n\r\n if (formattedData.name) {\r\n formattedData.name = formattedData.name.trim();\r\n }\r\n\r\n if (formattedData.mothersName) {\r\n formattedData.mothersName = formattedData.mothersName.trim();\r\n }\r\n\r\n if (formattedData.email) {\r\n formattedData.email = formattedData.email.trim();\r\n }\r\n\r\n return formattedData;\r\n };\r\n\r\n const validateEmailOnly = (data: UserData): boolean => {\r\n return !!(\r\n data.email &&\r\n !data.name &&\r\n !data.birthDate &&\r\n !data.badgeCode &&\r\n !data.document &&\r\n !data.mothersName\r\n );\r\n };\r\n\r\n /** Send user's information to validate their credentials and if it matches, the user will be able to reset their password\r\n * @param userData Contains all data that the backend needs to validate the user's credentials, like document, name, etc... */\r\n const checkUserCredentials = async (userData: UserData): Promise => {\r\n try {\r\n const userDataToSend = formattedUserData(userData);\r\n\r\n if (validateEmailOnly(userDataToSend)) {\r\n const response = await authenticationUseCases.recoverPasswordByEmail(\r\n userDataToSend.email\r\n );\r\n if (response.recoveryType === \"data\") {\r\n await router.push({\r\n name: \"home\",\r\n params: { resetPass: \"reset-password\", resetBy: \"identity\" }\r\n });\r\n } else {\r\n emailHasBeenSent.value = true;\r\n }\r\n } else {\r\n await authenticationUseCases.recoverPassword(userDataToSend.document);\r\n const token = await authenticationUseCases.checkUserCredentials(\r\n userDataToSend\r\n );\r\n await store.dispatch(\"miscellany_module/setSuccess\", {\r\n message: \"Usuário validado com sucesso!\",\r\n changed: true\r\n });\r\n await router.push({\r\n name: \"home\",\r\n params: { resetPass: \"reset-password\", resetBy: \"token\", token }\r\n });\r\n }\r\n } catch (e) {\r\n await dispatchError(e);\r\n } finally {\r\n enableBodyOverflow();\r\n }\r\n };\r\n\r\n async function recoverPasswordByDocument(userData: UserData) {\r\n try {\r\n const userDataToSend = formattedUserData(userData);\r\n const response = await authenticationUseCases.recoverPassword(\r\n userDataToSend.document\r\n );\r\n if (response.recoveryType === \"data\") {\r\n await router.push({\r\n name: \"home\",\r\n params: { resetPass: \"reset-password\", resetBy: \"identity\" }\r\n });\r\n } else {\r\n emailHasBeenSent.value = true;\r\n }\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n async function recoverPasswordByEmail(userData: UserData) {\r\n try {\r\n const response = await authenticationUseCases.recoverPasswordByEmail(\r\n userData.document\r\n );\r\n if (response.recoveryType === \"data\") {\r\n await router.push({\r\n name: \"home\",\r\n params: { resetPass: \"reset-password\", resetBy: \"identity\" }\r\n });\r\n } else {\r\n emailHasBeenSent.value = true;\r\n }\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n return {\r\n emailHasBeenSent,\r\n checkUserCredentials,\r\n recoverPasswordByDocument,\r\n recoverPasswordByEmail\r\n };\r\n }\r\n};\r\n","import { render } from \"./ResetPassword.vue?vue&type=template&id=446487a4&scoped=true&ts=true\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts\"\n\nimport \"./ResetPassword.vue?vue&type=style&index=0&id=446487a4&scoped=true&lang=css\"\nimport \"./ResetPassword.vue?vue&type=style&index=1&id=446487a4&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-446487a4\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, vModelCheckbox as _vModelCheckbox, withDirectives as _withDirectives, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d3105eb2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"reset-password\" }\nconst _hoisted_2 = { class: \"box-menu\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"form__transcription\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", { class: \"form__title\" }, \"Redefinição de senha\"),\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"form__description\" }, \" Detectamos que este é seu primeiro acesso. Crie uma nova senha. \")\n], -1))\nconst _hoisted_4 = { class: \"form__containers\" }\nconst _hoisted_5 = { class: \"container__terms\" }\nconst _hoisted_6 = {\n class: \"label__terms\",\n for: \"terms\"\n}\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\"Aceito os \")\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Termos de Uso e Política de Privacidade\")\nconst _hoisted_9 = { class: \"form__containers__box\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", {\n for: \"form__containers__input\",\n class: \"form__containers__label\"\n}, \"Mostrar senha\", -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"input\", {\n form: \"new-password\",\n class: \"form__input form__input--submit\",\n type: \"submit\",\n value: \"Salvar e entrar\"\n}, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_InputPassword = _resolveComponent(\"InputPassword\")!\n const _component_ModernInput = _resolveComponent(\"ModernInput\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n class: \"btn--reset-pass-exit\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('closeModal')))\n }),\n _createElementVNode(\"form\", {\n id: \"new-password\",\n class: \"form\",\n onSubmit: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (_ctx.changePassword(_ctx.password, _ctx.confirmation)), [\"prevent\"]))\n }, [\n _hoisted_3,\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"terms\",\n type: \"checkbox\",\n class: \"input__terms\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.term) = $event))\n }, null, 512), [\n [_vModelCheckbox, _ctx.term]\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_router_link, {\n to: { name: 'terms' },\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n })\n ])\n ]),\n _createVNode(_component_InputPassword, {\n id: \"input-new-password\",\n form: \"new-password\",\n required: \"\",\n label: \"Senha\",\n typeInput: _ctx.currentType,\n \"model-value\": _ctx.password,\n \"onUpdate:model-value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.password) = $event))\n }, null, 8, [\"typeInput\", \"model-value\"]),\n _createVNode(_component_ModernInput, {\n form: \"new-password\",\n type: _ctx.currentType,\n id: \"confirmation-password\",\n label: \"Confirmar senha\",\n \"user-data\": _ctx.confirmation,\n \"onUpdate:user-data\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.confirmation) = $event)),\n required: \"\"\n }, null, 8, [\"type\", \"user-data\"]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"input\", {\n id: \"form__containers__input\",\n type: \"checkbox\",\n form: \"new-password\",\n class: \"form__containers__input\",\n onInput: _cache[4] || (_cache[4] = ($event: any) => (_ctx.togglePasswordVisibility($event)))\n }, null, 32),\n _hoisted_10\n ])\n ]),\n _hoisted_11\n ], 32)\n ])\n ]))\n}","\r\nimport { defineComponent, nextTick, onBeforeMount, Ref, ref } from \"vue\";\r\nimport { useRouter } from \"vue-router\";\r\nimport { useStore } from \"vuex\";\r\nimport ResetPasswordComponent from \"../application/forms/ResetPassword.vue\";\r\nimport ResetPasswordSuccess from \"../application/forms/ResetPasswordSuccess.vue\";\r\nimport ResetOptions from \"../application/forms/ResetOptions.vue\";\r\nimport IdentityForm from \"../application/forms/IdentityForm.vue\";\r\nimport { authenticationUseCases } from \"../../../../domain/usecase/impl/authenticationUseCases\";\r\nimport ModernInput from \"../application/forms/modernInput.vue\";\r\nimport InputPassword from \"../application/forms/InputPassword.vue\";\r\nimport { dispatchErrorBox } from \"../mixins\";\r\nimport { dispatchError } from \"../../utils/error_handling\";\r\n\r\nexport default defineComponent({\r\n components: {\r\n IdentityForm,\r\n ResetOptions,\r\n ResetPasswordSuccess,\r\n ResetPasswordComponent,\r\n ModernInput,\r\n InputPassword\r\n },\r\n setup() {\r\n /** Instance of the vuex store. */\r\n const store = useStore();\r\n\r\n /** An instance of a router. */\r\n const router = useRouter();\r\n\r\n /** The current type of the password input. */\r\n const currentType: Ref = ref(\"password\");\r\n\r\n /** The current password. */\r\n const password: Ref = ref(\"\");\r\n\r\n /** The current password confirmation. */\r\n const confirmation: Ref = ref(\"\");\r\n\r\n onBeforeMount(async () => {\r\n await nextTick(() => {\r\n const input = document.querySelector(\r\n \"[data-password-input]\"\r\n ) as HTMLInputElement;\r\n input.focus();\r\n });\r\n });\r\n\r\n const term: Ref = ref(false);\r\n\r\n const acceptTerm = async (): Promise => {\r\n await store.dispatch(\"authentication_module/acceptTerm\");\r\n };\r\n\r\n /** Changes the user's password to a new one. */\r\n const changePassword = async (\r\n password: string,\r\n confirmation: string\r\n ): Promise => {\r\n try {\r\n if (term.value) {\r\n await authenticationUseCases.changePassword(password, confirmation);\r\n await acceptTerm();\r\n await store.dispatch(\"miscellany_module/setSuccess\", {\r\n message: \"Senha alterada com sucesso!\",\r\n changed: true\r\n });\r\n await router.push({ name: \"dashboard\" });\r\n } else {\r\n await dispatchErrorBox(\r\n \"É necessário aceitar o Termo de Uso para prosseguir!\"\r\n );\r\n }\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n /** Toggles the password visibility by switching the input type\r\n * from password to text and vice-versa. */\r\n const togglePasswordVisibility = async (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n const isVisible = input.checked;\r\n currentType.value = isVisible ? \"text\" : \"password\";\r\n };\r\n\r\n return {\r\n currentType,\r\n password,\r\n confirmation,\r\n term,\r\n changePassword,\r\n togglePasswordVisibility\r\n };\r\n }\r\n});\r\n","import { render } from \"./FirstLogin.vue?vue&type=template&id=d3105eb2&scoped=true&ts=true\"\nimport script from \"./FirstLogin.vue?vue&type=script&lang=ts\"\nexport * from \"./FirstLogin.vue?vue&type=script&lang=ts\"\n\nimport \"./FirstLogin.vue?vue&type=style&index=0&id=d3105eb2&scoped=true&lang=css\"\nimport \"./FirstLogin.vue?vue&type=style&index=1&id=d3105eb2&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d3105eb2\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, vShow as _vShow, Transition as _Transition, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f2feb374\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"info-panel\" }\nconst _hoisted_2 = { class: \"header_panel\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"no-results-message\"\n}\nconst _hoisted_4 = [\"onClick\"]\nconst _hoisted_5 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SectionDivisor = _resolveComponent(\"SectionDivisor\")!\n const _component_TUIViewer = _resolveComponent(\"TUIViewer\")!\n\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_SectionDivisor, {\n title: \"Perguntas frequentes\",\n colorLabel: \"var(--primary-color)\",\n \"color-background\": \"#fafafa\",\n \"color-line\": \"var(--primary-color)\",\n class: \"divisor-faq\"\n })\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n class: \"input-faq_landingpage\",\n id: \"title\",\n title: \"Título\",\n placeholder: \"Qual sua dúvida?\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.searchQuery) = $event)),\n required: \"\"\n }, null, 512), [\n [_vModelText, _ctx.searchQuery]\n ]),\n (_ctx.filteredInformations.length === 0)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_3, \" Nenhuma dúvida encontrada. \"))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.filteredInformations, (item, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: _normalizeClass(['info-box', { 'info-box--active': _ctx.openItems[index] }])\n }, [\n _createElementVNode(\"button\", {\n class: \"header_dropdown\",\n onClick: ($event: any) => (_ctx.toggleItem(index))\n }, [\n _createElementVNode(\"p\", null, _toDisplayString(item.question), 1),\n _createElementVNode(\"span\", {\n class: _normalizeClass(['icon__arrow', { 'icon__arrow--active': _ctx.openItems[index] }])\n }, null, 2)\n ], 8, _hoisted_4),\n _createVNode(_Transition, { name: \"slide-fade\" }, {\n default: _withCtx(() => [\n _withDirectives(_createElementVNode(\"div\", {\n class: \"content\",\n onClick: ($event: any) => (_ctx.toggleItem(index))\n }, [\n _createVNode(_component_TUIViewer, {\n modelValue: item.response\n }, null, 8, [\"modelValue\"])\n ], 8, _hoisted_5), [\n [_vShow, _ctx.openItems[index]]\n ])\n ]),\n _: 2\n }, 1024)\n ], 2))\n }), 128))\n ]))\n}","\r\nimport {\r\n defineComponent,\r\n toRefs,\r\n computed,\r\n ref,\r\n watch,\r\n ComputedRef,\r\n onBeforeMount,\r\n} from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { Information } from \"../../../../domain/entities/information\";\r\nimport TUIViewer from \"../../components/application/TUIViewer.vue\";\r\nimport SectionDivisor from \"../landingpage/SectionDivisor.vue\";\r\nimport { dispatchErrorBox } from \"../mixins\";\r\n\r\nexport default defineComponent({\r\n name: \"Faq\",\r\n components: { TUIViewer, SectionDivisor },\r\n props: {\r\n isVisible: { type: Boolean, default: true },\r\n isOpen: { type: Boolean, default: true },\r\n },\r\n setup(props, { emit }) {\r\n const { isVisible } = toRefs(props);\r\n const store = useStore();\r\n const openItems = ref([]);\r\n const searchQuery = ref(\"\");\r\n const loading = ref(true);\r\n\r\n const informations: ComputedRef = computed(() => {\r\n return store.getters[\"information_module/informationsLandingPage\"];\r\n });\r\n\r\n const filteredInformations = computed(() => {\r\n if (!searchQuery.value) return informations.value;\r\n return informations.value.filter((item) =>\r\n item.question.toLowerCase().includes(searchQuery.value.toLowerCase())\r\n );\r\n });\r\n\r\n const toggleInfo = () => {\r\n emit(\"toggle-info\");\r\n };\r\n\r\n watch(\r\n () => informations.value,\r\n (newVal) => {\r\n openItems.value = newVal.map((_, index) => index === 0);\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const toggleItem = (index: number) => {\r\n const currentScrollPosition = window.scrollY;\r\n\r\n openItems.value = openItems.value.map((isOpen, i) =>\r\n i === index ? !isOpen : isOpen\r\n );\r\n\r\n requestAnimationFrame(() => {\r\n window.scrollTo(0, currentScrollPosition);\r\n });\r\n };\r\n\r\n const fetchInformations = async () => {\r\n if (!isVisible.value) return;\r\n\r\n try {\r\n await store.dispatch(\"information_module/listLandingPage\");\r\n loading.value = false;\r\n } catch (e) {\r\n loading.value = false;\r\n await dispatchErrorBox(\"Ocorreu um erro ao carregar as informações.\");\r\n }\r\n };\r\n\r\n watch(\r\n () => isVisible.value,\r\n async (newVal) => {\r\n if (newVal) {\r\n await fetchInformations();\r\n }\r\n }\r\n );\r\n\r\n onBeforeMount(async () => {\r\n await fetchInformations();\r\n });\r\n\r\n return {\r\n isVisible,\r\n informations,\r\n filteredInformations,\r\n openItems,\r\n toggleInfo,\r\n toggleItem,\r\n fetchInformations,\r\n searchQuery,\r\n };\r\n },\r\n});\r\n","import { render } from \"./Faq.vue?vue&type=template&id=f2feb374&scoped=true&ts=true\"\nimport script from \"./Faq.vue?vue&type=script&lang=ts\"\nexport * from \"./Faq.vue?vue&type=script&lang=ts\"\n\nimport \"./Faq.vue?vue&type=style&index=0&id=f2feb374&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f2feb374\"]])\n\nexport default __exports__","\r\nimport { defineAsyncComponent, defineComponent } from \"vue\";\r\nimport Call from \"../components/landingpage/Call.vue\";\r\nimport Introduction from \"../components/landingpage/Introduction.vue\";\r\nimport Mission from \"../components/landingpage/Mission.vue\";\r\nimport Footer from \"../components/application/moldure/Footer.vue\";\r\nimport ResetPassword from \"../components/landingpage/ResetPassword.vue\";\r\nimport { useRouter } from \"vue-router\";\r\nimport FirstLogin from \"../components/landingpage/FirstLogin.vue\";\r\nimport { enableBodyOverflow } from \"../components/mixins\";\r\nimport ModalTerm from \"../components/landingpage/ModalTerm.vue\";\r\nimport Faq from \"../components/landingpage/Faq.vue\";\r\n\r\nexport default defineComponent({\r\n components: {\r\n ModalTerm,\r\n Call,\r\n Introduction,\r\n Mission,\r\n HomeFooter: Footer,\r\n ResetPassword,\r\n FirstLogin,\r\n Faq,\r\n },\r\n\r\n setup() {\r\n /** Instance of a router. */\r\n const router = useRouter();\r\n\r\n /** Closes the currently open modal by redirecting user to the home page. */\r\n const closeModal = async () => {\r\n await router.push({ name: \"home\" });\r\n enableBodyOverflow();\r\n };\r\n\r\n const SupportersComponent = defineAsyncComponent(() => {\r\n if (process.env.VUE_APP_THEME === \"construcolor\") {\r\n return import(\"../components/landingpage/supporters/Construcolor.vue\");\r\n }\r\n return import(\"../components/landingpage/supporters/Lince.vue\");\r\n });\r\n\r\n return {\r\n closeModal,\r\n SupportersComponent,\r\n };\r\n },\r\n});\r\n","import { render } from \"./LandingPage.vue?vue&type=template&id=92a0a434&scoped=true&ts=true\"\nimport script from \"./LandingPage.vue?vue&type=script&lang=ts\"\nexport * from \"./LandingPage.vue?vue&type=script&lang=ts\"\n\nimport \"./LandingPage.vue?vue&type=style&index=0&id=92a0a434&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-92a0a434\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../assets/static/companies_logos/ganhemais02.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1fa01f5e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"call\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"logo\",\n src: _imports_0,\n alt: \"logo\"\n}, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LoginFormCirculo = _resolveComponent(\"LoginFormCirculo\")!\n\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n _hoisted_2,\n _createVNode(_component_LoginFormCirculo)\n ]))\n}","import { renderSlot as _renderSlot, mergeProps as _mergeProps, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"section\", null, [\n _createElementVNode(\"div\", _mergeProps({ class: \"container\" }, _ctx.$attrs), [\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ], 16)\n ]))\n}","\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"LandingPageCirculoSection\"\r\n});\r\n","import { render } from \"./LandingPageCirculoSection.vue?vue&type=template&id=e6c7abfc&scoped=true&ts=true\"\nimport script from \"./LandingPageCirculoSection.vue?vue&type=script&lang=ts\"\nexport * from \"./LandingPageCirculoSection.vue?vue&type=script&lang=ts\"\n\nimport \"./LandingPageCirculoSection.vue?vue&type=style&index=0&id=e6c7abfc&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e6c7abfc\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, vModelDynamic as _vModelDynamic, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, withCtx as _withCtx, createVNode as _createVNode, withModifiers as _withModifiers, Fragment as _Fragment, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-16a23494\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"login-form\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", null, \"Acesse\", -1))\nconst _hoisted_3 = { class: \"inputs-form\" }\nconst _hoisted_4 = { class: \"input-password\" }\nconst _hoisted_5 = [\"type\"]\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"Esqueci minha senha*\")\nconst _hoisted_7 = { class: \"buttons\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"button\", {\n class: \"button button--sign-in\",\n type: \"submit\"\n}, \"Entrar\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_RegisterModal = _resolveComponent(\"RegisterModal\")!\n const _component_ResetPassword = _resolveComponent(\"ResetPassword\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n ($setup.isSignupModalOpen)\n ? (_openBlock(), _createBlock(_component_RegisterModal, {\n key: 0,\n onToggleRegisterModal: $setup.onCloseSignup\n }, null, 8, [\"onToggleRegisterModal\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.$route.params.resetPass)\n ? (_openBlock(), _createBlock(_component_ResetPassword, {\n key: 1,\n class: \"reset-pass\",\n onToggleModal: $setup.onCloseForgetPassword\n }, null, 8, [\"onToggleModal\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"form\", {\n onSubmit: _cache[4] || (_cache[4] = _withModifiers(\n//@ts-ignore\n(...args) => ($setup.onSubmit && $setup.onSubmit(...args)), [\"prevent\"])),\n class: \"form--login\"\n }, [\n _hoisted_2,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_3, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n placeholder: \"CPF ou e-mail\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (($setup.name) = $event))\n }, null, 512), [\n [_vModelText, $setup.name]\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _withDirectives(_createElementVNode(\"input\", {\n type: $setup.isPasswordVisible ? 'text' : 'password',\n placeholder: \"Senha\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (($setup.password) = $event))\n }, null, 8, _hoisted_5), [\n [_vModelDynamic, $setup.password]\n ]),\n _createElementVNode(\"span\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => ($setup.togglePassword())),\n class: _normalizeClass([\"input__visibility\", $setup.isPasswordVisible ? '' : 'notVisible'])\n }, null, 2)\n ])\n ]),\n _createVNode(_component_router_link, {\n class: \"link\",\n to: { name: 'home', params: { resetPass: true } }\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"button\", {\n class: \"button button--sign-up\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(\n//@ts-ignore\n(...args) => ($setup.onClickSignup && $setup.onClickSignup(...args)), [\"prevent\"]))\n }, \" Cadastre-se \")\n ])\n ])\n ], 32)\n ])\n ], 64))\n}","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, withCtx as _withCtx, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a58959c6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"box-menu\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"register-form__title\" }, \"Cadastre-se\", -1))\nconst _hoisted_3 = { class: \"inputs\" }\nconst _hoisted_4 = { class: \"foreigner\" }\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", { for: \"foreigner\" }, \"Sou estrangeiro\", -1))\nconst _hoisted_7 = { class: \"pair\" }\nconst _hoisted_8 = { class: \"date-input-container\" }\nconst _hoisted_9 = { class: \"pair\" }\nconst _hoisted_10 = { class: \"pair\" }\nconst _hoisted_11 = { class: \"pair\" }\nconst _hoisted_12 = { class: \"pair\" }\nconst _hoisted_13 = { class: \"pair\" }\nconst _hoisted_14 = { class: \"container-password\" }\nconst _hoisted_15 = { class: \"pair pair--terms\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"input\", {\n required: \"\",\n id: \"terms\",\n type: \"checkbox\",\n class: \"input__terms\"\n}, null, -1))\nconst _hoisted_17 = {\n class: \"label__terms\",\n for: \"terms\"\n}\nconst _hoisted_18 = /*#__PURE__*/_createTextVNode(\"Aceito os \")\nconst _hoisted_19 = /*#__PURE__*/_createTextVNode(\"termos de uso\")\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"button\", {\n class: \"register-form__button\",\n type: \"submit\"\n}, \"Cadastrar\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ModernInput = _resolveComponent(\"ModernInput\")!\n const _component_input_password = _resolveComponent(\"input-password\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"register-modal\",\n onClick: _cache[20] || (_cache[20] = _withModifiers(() => {}, [\"stop\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"button\", {\n class: \"button--exit\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('toggleRegisterModal')))\n }, \" X \"),\n _createElementVNode(\"form\", {\n onSubmit: _cache[19] || (_cache[19] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.register && _ctx.register(...args)), [\"prevent\"])),\n id: \"register-form\",\n class: \"register-form\"\n }, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n id: \"foreigner\",\n value: _ctx.user.isForeigner,\n onChange: _cache[1] || (_cache[1] = ($event: any) => (_ctx.setForeigner($event.target)))\n }, null, 40, _hoisted_5),\n _hoisted_6\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_ModernInput, {\n form: \"register-form\",\n required: \"\",\n class: \"modern-input\",\n id: \"register-name\",\n label: \"Nome\",\n type: \"text\",\n userData: _ctx.user.name,\n \"onUpdate:userData\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.user.name) = $event)),\n color: \"var(--color-black-dark)\"\n }, null, 8, [\"userData\"]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", {\n for: \"input-date\",\n class: _normalizeClass(['label-date', 'required', { focus: _ctx.isInputFocused }])\n }, \" Data de nascimento\", 2),\n _createElementVNode(\"input\", {\n class: \"input-date\",\n id: \"input-date\",\n type: \"text\",\n maxlength: \"10\",\n placeholder: \"dd/mm/yyyy\",\n onChange: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.user.birthDate && _ctx.user.birthDate(...args))),\n onInput: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.onInput && _ctx.onInput(...args))),\n onFocus: _cache[5] || (_cache[5] = ($event: any) => (_ctx.toggleLabelClass($event.target.value, true))),\n onBlur: _cache[6] || (_cache[6] = ($event: any) => (_ctx.toggleLabelClass($event.target.value, false)))\n }, null, 32)\n ])\n ]),\n _createVNode(_component_ModernInput, {\n form: \"register-form\",\n class: \"modern-input\",\n id: \"register-document\",\n label: \"CPF\",\n type: \"text\",\n userData: _ctx.user.document,\n \"onUpdate:userData\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.user.document) = $event)),\n \"has-mask\": \"\",\n \"input-mask\": \"###.###.###-##\",\n color: \"var(--color-black-dark)\",\n required: \"\",\n disabled: _ctx.user.isForeigner\n }, null, 8, [\"userData\", \"disabled\"]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_ModernInput, {\n form: \"register-form\",\n required: \"\",\n class: \"modern-input\",\n id: \"register-email\",\n label: \"E-mail\",\n type: \"email\",\n userData: _ctx.user.email,\n \"onUpdate:userData\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.user.email) = $event)),\n color: \"var(--color-black-dark)\"\n }, null, 8, [\"userData\"]),\n _createVNode(_component_ModernInput, {\n \"max-length\": \"14\",\n form: \"register-form\",\n class: \"modern-input\",\n id: \"register-CEP\",\n label: \"CEP\",\n type: \"text\",\n userData: _ctx.user.address.zipCode,\n \"onUpdate:userData\": _cache[9] || (_cache[9] = ($event: any) => ((_ctx.user.address.zipCode) = $event)),\n \"has-mask\": \"\",\n \"input-mask\": \"#####-###\",\n color: \"var(--color-black-dark)\"\n }, null, 8, [\"userData\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_ModernInput, {\n form: \"register-form\",\n userData: _ctx.user.address.stateID,\n \"onUpdate:userData\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.user.address.stateID) = $event)),\n class: \"modern-input\",\n id: \"register-uf\",\n label: \"UF (Estado)\",\n type: \"select\",\n options: _ctx.states,\n color: \"var(--color-black-dark)\"\n }, null, 8, [\"userData\", \"options\"]),\n _createVNode(_component_ModernInput, {\n form: \"register-form\",\n userData: _ctx.user.address.city,\n \"onUpdate:userData\": _cache[11] || (_cache[11] = ($event: any) => ((_ctx.user.address.city) = $event)),\n class: \"modern-input\",\n id: \"register-city\",\n label: \"Cidade\",\n type: \"text\",\n color: \"var(--color-black-dark)\"\n }, null, 8, [\"userData\"])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_ModernInput, {\n form: \"register-form\",\n \"user-data\": _ctx.user.address.street,\n \"onUpdate:user-data\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.user.address.street) = $event)),\n class: \"modern-input\",\n id: \"register-street\",\n label: \"Rua\",\n type: \"text\",\n color: \"var(--color-black-dark)\"\n }, null, 8, [\"user-data\"]),\n _createVNode(_component_ModernInput, {\n form: \"register-form\",\n \"user-data\": _ctx.user.address.district,\n \"onUpdate:user-data\": _cache[13] || (_cache[13] = ($event: any) => ((_ctx.user.address.district) = $event)),\n class: \"modern-input\",\n id: \"register-neighborhood\",\n label: \"Bairro\",\n type: \"text\",\n color: \"var(--color-black-dark)\"\n }, null, 8, [\"user-data\"])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(_component_ModernInput, {\n form: \"register-form\",\n \"user-data\": _ctx.user.address.addressNumber,\n \"onUpdate:user-data\": _cache[14] || (_cache[14] = ($event: any) => ((_ctx.user.address.addressNumber) = $event)),\n min: \"0\",\n class: \"modern-input\",\n id: \"register-number\",\n label: \"Número\",\n type: \"number\",\n color: \"var(--color-black-dark)\"\n }, null, 8, [\"user-data\"]),\n _createVNode(_component_ModernInput, {\n form: \"register-form\",\n \"user-data\": _ctx.user.address.complement,\n \"onUpdate:user-data\": _cache[15] || (_cache[15] = ($event: any) => ((_ctx.user.address.complement) = $event)),\n class: \"modern-input\",\n id: \"register-complement\",\n label: \"Complemento\",\n type: \"text\",\n color: \"var(--color-black-dark)\"\n }, null, 8, [\"user-data\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_input_password, {\n form: \"register-form\",\n required: \"\",\n \"model-value\": _ctx.user.password,\n \"onUpdate:model-value\": _cache[16] || (_cache[16] = ($event: any) => ((_ctx.user.password) = $event)),\n id: \"register-password\",\n label: \"Senha\",\n passwordVisibility: true,\n \"input-color\": \"var(--color-black-dark)\"\n }, null, 8, [\"model-value\"]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_ModernInput, {\n form: \"register-form\",\n required: \"\",\n \"user-data\": _ctx.user.passwordConfirmation,\n \"onUpdate:user-data\": _cache[17] || (_cache[17] = ($event: any) => ((_ctx.user.passwordConfirmation) = $event)),\n id: \"register-passwordConfirmation\",\n label: \"Confirme sua senha\",\n type: _ctx.isPasswordVisible ? 'text' : 'password',\n color: \"var(--color-black-dark)\"\n }, null, 8, [\"user-data\", \"type\"]),\n _createElementVNode(\"span\", {\n onClick: _cache[18] || (_cache[18] = ($event: any) => (_ctx.togglePassword())),\n class: _normalizeClass([\"input__visibility\", _ctx.isPasswordVisible ? '' : 'notVisible'])\n }, null, 2)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _hoisted_16,\n _createElementVNode(\"label\", _hoisted_17, [\n _hoisted_18,\n _createVNode(_component_router_link, {\n to: { name: 'terms' },\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _hoisted_19\n ]),\n _: 1\n })\n ])\n ])\n ]),\n _hoisted_20\n ], 32)\n ])\n ]))\n}","\r\nimport IdentityForm from \"../application/forms/IdentityForm.vue\";\r\nimport ModernInput from \"../application/forms/modernInput.vue\";\r\nimport { Address, User } from \"../../../../domain/entities/entities\";\r\nimport InputPassword from \"../application/forms/InputPassword.vue\";\r\nimport store from \"../../../repository/store/store\";\r\nimport { defineComponent, onBeforeMount, onBeforeUnmount, Ref, ref } from \"vue\";\r\nimport http from \"../../../repository/http\";\r\nimport { dispatchErrorBox, dispatchSuccessBox } from \"../mixins\";\r\nimport { dispatchError } from \"../../utils/error_handling\";\r\n\r\nconst __default__ = defineComponent({\r\n name: \"register-modal\",\r\n components: { ModernInput, IdentityForm, InputPassword },\r\n\r\n setup(_, { emit }) {\r\n /** Referes the new user that will be registered */\r\n const user = ref(new User());\r\n\r\n /** Contain all of Brazil's states */\r\n const states = ref([{ stateID: null, id: null, label: \"Selecionar\" }]);\r\n\r\n /** Contain the max date value that can be applied in the date input example 2022-06-08 */\r\n const maxDate: Ref = ref(\"\");\r\n\r\n /** Variable that makes the password visible. */\r\n const isPasswordVisible: Ref = ref(false);\r\n\r\n /** Used to control the label state */\r\n const isInputFocused: Ref = ref(false);\r\n\r\n onBeforeMount(async () => {\r\n await loadStates();\r\n calcMaxDate();\r\n });\r\n\r\n onBeforeUnmount(async () => {\r\n user.value = new User();\r\n });\r\n\r\n /** Calculate the max value that the date input can contain */\r\n const calcMaxDate = () => {\r\n const currentDate = new Date();\r\n let day: string | number = currentDate.getDay();\r\n let month: string | number = currentDate.getMonth();\r\n const year = currentDate.getFullYear();\r\n day = formatDayMonth(day.toString());\r\n month = formatDayMonth(month.toString());\r\n maxDate.value = year + \"-\" + month + \"-\" + day;\r\n };\r\n\r\n /** Verifies if day or month has only one character, if true put 0 in end\r\n * @param value might be the day or the month, example day \"4\" or month \"12\". */\r\n const formatDayMonth = (value: string): string => {\r\n return value.length == 1 ? \"0\" + value : value;\r\n };\r\n\r\n /** Makes a request to get all the states of Brazil. */\r\n async function loadStates() {\r\n try {\r\n const response = await http.get(\"api/decola/states\");\r\n states.value = [...states.value, ...response.data.states];\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n /** Used to display some information while the address is loading. */\r\n function fillAddressLoading() {\r\n const loading = \"...\";\r\n user.value.address.federalUnit = loading;\r\n user.value.address.city = loading;\r\n user.value.address.district = loading;\r\n user.value.address.street = loading;\r\n }\r\n\r\n /** To clear all address fields. Usually used when the provided cep does not exist. */\r\n function clearFillAddress() {\r\n user.value.address.zipCode = \"\";\r\n user.value.address.federalUnit = \"\";\r\n user.value.address.city = \"\";\r\n user.value.address.district = \"\";\r\n user.value.address.street = \"\";\r\n }\r\n\r\n /** Used to fill the address field with the payload received from the backend app.\r\n * @see Address */\r\n function fillAddress(address: Address) {\r\n user.value.address = address;\r\n }\r\n\r\n /** Request the address by passing the cep.\r\n * @param cep follow this pattern \"89110110\" */\r\n async function requestCepAPI(cep: string): Promise {\r\n if (cep.length < 9) {\r\n user.value.address.zipCode = cep;\r\n return;\r\n }\r\n try {\r\n fillAddressLoading();\r\n const response = await http.get(`/api/decola/cep/${cep}`);\r\n const address: Address = {\r\n ...response.data,\r\n zipCode: user.value.address.zipCode\r\n };\r\n fillAddress(address);\r\n } catch (e) {\r\n clearFillAddress();\r\n console.log(e);\r\n await dispatchErrorBox(\"O CEP digitado não existe!\");\r\n }\r\n }\r\n\r\n /** Undo the structural changes applied by the input's mask to send correctly to the backend app.*/\r\n const formatUserData = () => {\r\n user.value.document = user.value.document\r\n .replaceAll(\"-\", \"\")\r\n .replaceAll(\".\", \"\");\r\n user.value.address.zipCode = user.value.address.zipCode.replace(\"-\", \"\");\r\n user.value.address.stateID = Number(user.value.address.stateID);\r\n user.value.address.addressNumber = Number(\r\n user.value.address.addressNumber\r\n );\r\n };\r\n\r\n /** Register a new user with the information provided through the form. */\r\n async function register(): Promise {\r\n try {\r\n formatUserData();\r\n await store.dispatch(\r\n \"authentication_module/registerNewUser\",\r\n user.value\r\n );\r\n await dispatchSuccessBox(\"Cadastro realizado com sucesso!\");\r\n emit(\"toggleRegisterModal\");\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n }\r\n\r\n /** Function that makes the password visible or not. */\r\n function togglePassword() {\r\n isPasswordVisible.value = !isPasswordVisible.value;\r\n }\r\n\r\n const setForeigner = (input: HTMLInputElement): void => {\r\n user.value.isForeigner = input.checked;\r\n if (user.value.isForeigner) {\r\n user.value.document = \"\";\r\n }\r\n };\r\n\r\n function maskDate(input: string) {\r\n let inputElement = document.getElementById(\r\n \"input-date\"\r\n ) as HTMLInputElement;\r\n\r\n if (input.match(/^\\d{2}$/)) {\r\n inputElement.value = input + \"/\";\r\n } else if (input.match(/^\\d{2}\\/\\d{2}$/)) {\r\n inputElement.value = input + \"/\";\r\n }\r\n }\r\n\r\n /** This will be called when the input receive and event of type focus or blur and will be used to control the label state\r\n * @param value Refers to the current content_provider coming from the input.\r\n * @param isFocused Receive true when the event type is focus and false when the event type is blur. */\r\n const toggleLabelClass = (value, isFocused: boolean): void => {\r\n isInputFocused.value = isFocused;\r\n if (value && !isFocused) {\r\n isInputFocused.value = true;\r\n }\r\n };\r\n\r\n const onInput = async (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n\r\n if (!input.value || input.value === \"\") {\r\n return;\r\n }\r\n maskDate(input.value);\r\n user.value.birthDate = input.value\r\n .split(\"/\")\r\n .reverse()\r\n .join(\"-\");\r\n };\r\n\r\n return {\r\n user,\r\n states,\r\n maxDate,\r\n isPasswordVisible,\r\n isInputFocused,\r\n toggleLabelClass,\r\n setForeigner,\r\n requestCepAPI,\r\n register,\r\n togglePassword,\r\n maskDate,\r\n onInput\r\n };\r\n }\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"1cb6553e\": (_ctx.color)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./RegisterModal.vue?vue&type=template&id=a58959c6&scoped=true&ts=true\"\nimport script from \"./RegisterModal.vue?vue&type=script&lang=ts\"\nexport * from \"./RegisterModal.vue?vue&type=script&lang=ts\"\n\nimport \"./RegisterModal.vue?vue&type=style&index=0&id=a58959c6&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a58959c6\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-22c64ca6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"reset-password\" }\nconst _hoisted_2 = { class: \"box-menu\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_reset_options = _resolveComponent(\"reset-options\")!\n const _component_reset_password_component = _resolveComponent(\"reset-password-component\")!\n const _component_new_password = _resolveComponent(\"new-password\")!\n const _component_reset_password_success = _resolveComponent(\"reset-password-success\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n class: \"btn--reset-pass-exit\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('toggleModal')))\n }, \" X \"),\n false\n ? (_openBlock(), _createBlock(_component_reset_options, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (\r\n !$setup.emailHasBeenSent && !_ctx.$route.params.token && !_ctx.$route.params.resetBy\r\n )\n ? (_openBlock(), _createBlock(_component_reset_password_component, {\n key: 1,\n onToggleModal: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('toggleModal'))),\n onRecoverByDocument: _cache[2] || (_cache[2] = ($event: any) => ($setup.recoverPasswordByDocument($event))),\n onRecoverByEmail: _cache[3] || (_cache[3] = ($event: any) => ($setup.recoverPasswordByEmail($event)))\n }))\n : (_ctx.$route.params.token)\n ? (_openBlock(), _createBlock(_component_new_password, {\n key: 2,\n onToggleModal: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$emit('toggleModal')))\n }))\n : ($setup.emailHasBeenSent)\n ? (_openBlock(), _createBlock(_component_reset_password_success, {\n key: 3,\n onToggleModal: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$emit('toggleModal')))\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, resolveDirective as _resolveDirective, withDirectives as _withDirectives, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-54049c26\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"form__transcription\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", { class: \"form__title\" }, \"Redefinição de senha\"),\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"form__description\" }, [\n /*#__PURE__*/_createTextVNode(\" Esqueceu sua senha? \"),\n /*#__PURE__*/_createElementVNode(\"br\"),\n /*#__PURE__*/_createElementVNode(\"br\"),\n /*#__PURE__*/_createTextVNode(\" Digite seu CPF o E-mail para que possamos dar continuidade na recuperação de senha. \")\n ])\n], -1))\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"button\", {\n form: \"reset-password\",\n class: \"form__input--submit\",\n type: \"submit\"\n}, \" Enviar \", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _directive_focus = _resolveDirective(\"focus\")!\n\n return (_openBlock(), _createElementBlock(\"form\", {\n onSubmit: _cache[3] || (_cache[3] = _withModifiers(\n//@ts-ignore\n(...args) => ($setup.submit && $setup.submit(...args)), [\"prevent\"])),\n id: \"reset-password\",\n class: \"form\"\n }, [\n _hoisted_1,\n _withDirectives(_createElementVNode(\"input\", {\n \"data-input\": \"\",\n id: \"login-email\",\n type: \"text\",\n form: \"reset-password\",\n class: \"form__input\",\n placeholder: \"CPF ou e-mail\",\n autocomplete: \"off\",\n maxlength: \"254\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (($setup.userData.document) = $event)),\n onFocus: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => ($setup.unmaskCPF && $setup.unmaskCPF(...args))),\n onBlur: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => ($setup.maskCPF && $setup.maskCPF(...args)))\n }, null, 544), [\n [_directive_focus],\n [_vModelText, $setup.userData.document]\n ]),\n _hoisted_2\n ], 32))\n}","\r\nimport {onBeforeMount, ref} from \"vue\";\r\nimport ModernInput from \"../application/forms/modernInput.vue\";\r\nimport {UserData} from \"../../../../domain/entities/entities\";\r\nimport {disableBodyOverflow, enableBodyOverflow} from \"../mixins\";\r\n\r\nexport default {\r\n name: \"ResetPasswordComponent\",\r\n components: { ModernInput },\r\n\r\n setup(_, { emit }) {\r\n const userData = ref(new UserData());\r\n\r\n onBeforeMount(() => disableBodyOverflow())\r\n\r\n const maskCPF = (event: Event): void => {\r\n const input = event.target as HTMLInputElement;\r\n\r\n if (input.value.includes(\"@\")) {\r\n return;\r\n }\r\n\r\n input.value = maskedCPF(input.value);\r\n };\r\n\r\n const unmaskCPF = (event: Event): void => {\r\n const input = event.target as HTMLInputElement;\r\n\r\n if (input.value.includes(\"@\")) {\r\n return;\r\n }\r\n\r\n input.value = input.value.replace(/(\\.|\\/|\\-)/g, \"\");\r\n };\r\n\r\n const maskedCPF = (value: string): string => {\r\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})/g, \"\\$1.\\$2.\\$3\\-\\$4\");\r\n };\r\n\r\n const submit = () => {\r\n if (userData.value.document.includes(\"@\")) {\r\n emit(\"recoverByEmail\", userData.value);\r\n } else {\r\n emit(\"recoverByDocument\", userData.value);\r\n }\r\n enableBodyOverflow();\r\n };\r\n\r\n return {\r\n userData,\r\n maskCPF,\r\n unmaskCPF,\r\n submit,\r\n };\r\n },\r\n};\r\n","import { render } from \"./ResetPasswordComponent.vue?vue&type=template&id=54049c26&scoped=true&ts=true\"\nimport script from \"./ResetPasswordComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPasswordComponent.vue?vue&type=script&lang=ts\"\n\nimport \"./ResetPasswordComponent.vue?vue&type=style&index=0&id=54049c26&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-54049c26\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5e0ca7fa\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"success-box\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"success-box__title\" }, \"VERIFIQUE SEU E-MAIL\", -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"success-box__description\" }, \"Enviamos as instruções de recuperação de senha para o seu e-mail.\", -1))\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"Voltar para tela inicial\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _hoisted_3,\n _createVNode(_component_router_link, {\n to: {name: 'home'},\n class: \"success-box__link\"\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n })\n ]))\n}","\r\nimport {defineComponent} from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"ResetPasswordSuccess\",\r\n});\r\n","import { render } from \"./ResetPasswordSuccess.vue?vue&type=template&id=5e0ca7fa&scoped=true&ts=true\"\nimport script from \"./ResetPasswordSuccess.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPasswordSuccess.vue?vue&type=script&lang=ts\"\n\nimport \"./ResetPasswordSuccess.vue?vue&type=style&index=0&id=5e0ca7fa&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5e0ca7fa\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-154f103c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"form__transcription\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", { class: \"form__title\" }, \"Redefinição de senha\"),\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"form__description\" }, \" A senha deve conter no mínimo 8 caracteres. \")\n], -1))\nconst _hoisted_2 = { class: \"form__containers\" }\nconst _hoisted_3 = { class: \"form__containers__box\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", {\n for: \"form__containers__input\",\n class: \"form__containers__label\"\n}, \"Mostrar senha\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"input\", {\n form: \"new-password\",\n class: \"form__input form__input--submit\",\n type: \"submit\",\n value: \"Alterar\"\n}, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_input_password = _resolveComponent(\"input-password\")!\n const _component_modern_input = _resolveComponent(\"modern-input\")!\n\n return (_openBlock(), _createElementBlock(\"form\", {\n id: \"new-password\",\n class: \"form\",\n onSubmit: _cache[3] || (_cache[3] = _withModifiers(\n//@ts-ignore\n(...args) => ($setup.resetPassword && $setup.resetPassword(...args)), [\"prevent\"]))\n }, [\n _hoisted_1,\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_input_password, {\n form: \"new-password\",\n required: \"\",\n \"model-value\": $setup.password,\n \"onUpdate:model-value\": _cache[0] || (_cache[0] = ($event: any) => (($setup.password) = $event)),\n id: \"input-new-password\",\n label: \"Senha\",\n typeInput: $setup.currentType,\n \"input-color\": \"var(--color-black-dark)\"\n }, null, 8, [\"model-value\", \"typeInput\"]),\n _createVNode(_component_modern_input, {\n form: \"new-password\",\n type: $setup.currentType,\n id: \"confirmation-password\",\n label: \"Confirmar senha\",\n \"user-data\": $setup.confirmation,\n \"onUpdate:user-data\": _cache[1] || (_cache[1] = ($event: any) => (($setup.confirmation) = $event)),\n required: \"\",\n color: \"var(--color-black-dark)\"\n }, null, 8, [\"type\", \"user-data\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"input\", {\n form: \"new-password\",\n onInput: _cache[2] || (_cache[2] = ($event: any) => ($setup.togglePasswordVisibility($event.target.checked))),\n type: \"checkbox\",\n id: \"form__containers__input\",\n class: \"form__containers__input\"\n }, null, 32),\n _hoisted_4\n ])\n ]),\n _hoisted_5\n ], 32))\n}","\r\nimport {ComputedRef, ref} from \"vue\";\r\nimport {authenticationUseCases} from \"../../../../domain/usecase/impl/authenticationUseCases\";\r\nimport store from \"../../../repository/store/store\";\r\nimport router from \"../../../../src/routes\";\r\nimport ModernInput from \"../application/forms/modernInput.vue\";\r\nimport InputPassword from \"../application/forms/InputPassword.vue\";\r\nimport {computed} from \"@vue/reactivity\";\r\nimport {dispatchErrorBox} from \"../mixins\";\r\nimport {RepositoryException} from \"../../../../domain/exceptions/exceptions\";\r\n\r\nexport default {\r\n name: \"EmailVerification\",\r\n components: { ModernInput, InputPassword },\r\n\r\n setup(_) {\r\n const password = ref(\"\");\r\n const confirmation = ref(\"\");\r\n const currentType = ref(\"password\");\r\n const passwordPattern =\r\n \"(?=^.{8,}$)((?=.*\\\\d)|(?=.*\\\\W+))(?![.\\\\n])(?=.*[A-Z])(?=.*[a-z]).*$\";\r\n const passwordPatternTitle = ref(\r\n \"\" +\r\n \"Sua senha deve conter: \" +\r\n \"Ao menos 8 caracteres, \\n\" +\r\n \"uma letra minúscula, \\n\" +\r\n \"uma letra maiúscula, \\n\" +\r\n \"um caractere especial \\n\"\r\n );\r\n\r\n async function resetPassword() {\r\n const token = String(router.currentRoute.value.params.token);\r\n const recoveryType = router.currentRoute.value.params.resetBy;\r\n password.value = password.value.trim();\r\n confirmation.value = confirmation.value.trim();\r\n try {\r\n if (recoveryType === \"email\") {\r\n await authenticationUseCases.resetPasswordByEmail(\r\n password.value,\r\n confirmation.value,\r\n token\r\n );\r\n } else {\r\n await authenticationUseCases.resetPasswordByData(\r\n password.value,\r\n confirmation.value,\r\n token\r\n );\r\n }\r\n await store.dispatch(\"miscellany_module/setSuccess\", {\r\n message: \"Senha alterada com sucesso!\",\r\n changed: true\r\n });\r\n await router.push({ name: \"home\" });\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n const togglePasswordVisibility = async isVisible => {\r\n currentType.value = isVisible ? \"text\" : \"password\";\r\n };\r\n\r\n const isPasswordVisible: ComputedRef = computed(() => {\r\n return store.getters[\"authentication_module/isPasswordVisible\"];\r\n });\r\n\r\n return {\r\n currentType,\r\n password,\r\n confirmation,\r\n isPasswordVisible,\r\n passwordPattern,\r\n passwordPatternTitle,\r\n resetPassword,\r\n togglePasswordVisibility\r\n };\r\n }\r\n};\r\n","import { render } from \"./NewPassword.vue?vue&type=template&id=154f103c&scoped=true&ts=true\"\nimport script from \"./NewPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./NewPassword.vue?vue&type=script&lang=ts\"\n\nimport \"./NewPassword.vue?vue&type=style&index=0&id=154f103c&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-154f103c\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./ResetOptions.vue?vue&type=template&id=ad9cfb56&scoped=true\"\nimport script from \"./ResetOptions.vue?vue&type=script&lang=js\"\nexport * from \"./ResetOptions.vue?vue&type=script&lang=js\"\n\nimport \"./ResetOptions.vue?vue&type=style&index=0&id=ad9cfb56&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ad9cfb56\"]])\n\nexport default __exports__","\r\nimport ResetPasswordComponent from \"./ResetPasswordComponent.vue\";\r\nimport { ref } from \"vue\";\r\nimport ResetPasswordSuccess from \"./ResetPasswordSuccess.vue\";\r\nimport NewPassword from \"./NewPassword.vue\";\r\nimport ResetOptions from \"./ResetOptions.vue\";\r\nimport { UserData } from \"../../../../domain/entities/entities\";\r\nimport { authenticationUseCases } from \"../../../../domain/usecase/impl/authenticationUseCases\";\r\nimport store from \"../../../repository/store/store\";\r\nimport router from \"@/routes\";\r\nimport {\r\n dispatchErrorBox,\r\n enableBodyOverflow,\r\n getObjectByValue\r\n} from \"../mixins\";\r\nimport { RepositoryException } from \"../../../../domain/exceptions/exceptions\";\r\n\r\nexport default {\r\n name: \"ResetPassword\",\r\n components: {\r\n ResetOptions,\r\n NewPassword,\r\n ResetPasswordSuccess,\r\n ResetPasswordComponent\r\n },\r\n\r\n setup() {\r\n const emailHasBeenSent = ref(false);\r\n\r\n /** Get user's information and parse it to a specific format to make a request and validate the user's credentials\r\n * @param userData Contains all data that the backend needs to validate the user's credentials, like document, name, etc... */\r\n const formattedUserData = (userData: UserData): UserData => {\r\n const formattedData: UserData = getObjectByValue(userData);\r\n\r\n /** Remove all characters except numbers */\r\n if (formattedData.document) {\r\n formattedData.document = formattedData.document.replace(\r\n /[^a-zA-Z0-9]/g,\r\n \"\"\r\n );\r\n }\r\n\r\n /** Parse to number attributes that should be numbers but is string */\r\n if (formattedData.badgeCode) {\r\n formattedData.badgeCode = Number(formattedData.badgeCode);\r\n }\r\n\r\n if (formattedData.name) {\r\n formattedData.name = formattedData.name.trim();\r\n }\r\n\r\n if (formattedData.mothersName) {\r\n formattedData.mothersName = formattedData.mothersName.trim();\r\n }\r\n\r\n return formattedData;\r\n };\r\n\r\n /** Send user's information to validate their credentials and if it matches, the user will be able to reset their password\r\n * @param userData Contains all data that the backend needs to validate the user's credentials, like document, name, etc... */\r\n const checkUserCredentials = async (userData: UserData): Promise => {\r\n try {\r\n const userDataToSend = formattedUserData(userData);\r\n const token = await authenticationUseCases.checkUserCredentials(\r\n userDataToSend\r\n );\r\n await store.dispatch(\"miscellany_module/setSuccess\", {\r\n message: \"Usuário validado com sucesso!\",\r\n changed: true\r\n });\r\n await router.push({\r\n name: \"home\",\r\n params: { resetPass: \"reset-password\", resetBy: \"token\", token }\r\n });\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n } finally {\r\n enableBodyOverflow();\r\n }\r\n };\r\n\r\n async function recoverPasswordByDocument(userData: UserData) {\r\n try {\r\n const userDataToSend = formattedUserData(userData);\r\n const response = await authenticationUseCases.recoverPassword(\r\n userDataToSend.document\r\n );\r\n if (response.recoveryType === \"data\") {\r\n await router.push({\r\n name: \"home\",\r\n params: { resetPass: \"reset-password\", resetBy: \"identity\" }\r\n });\r\n } else {\r\n emailHasBeenSent.value = true;\r\n }\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n async function recoverPasswordByEmail(userData: UserData) {\r\n try {\r\n const response = await authenticationUseCases.recoverPasswordByEmail(\r\n userData.document\r\n );\r\n if (response.recoveryType === \"data\") {\r\n await router.push({\r\n name: \"home\",\r\n params: { resetPass: \"reset-password\", resetBy: \"identity\" }\r\n });\r\n } else {\r\n emailHasBeenSent.value = true;\r\n }\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n return {\r\n emailHasBeenSent,\r\n checkUserCredentials,\r\n recoverPasswordByDocument,\r\n recoverPasswordByEmail\r\n };\r\n }\r\n};\r\n","import { render } from \"./ResetPassword.vue?vue&type=template&id=22c64ca6&scoped=true&ts=true\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts\"\n\nimport \"./ResetPassword.vue?vue&type=style&index=0&id=22c64ca6&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-22c64ca6\"]])\n\nexport default __exports__","\r\nimport { ref, Ref } from \"vue\";\r\nimport { dispatchError } from \"../../utils/error_handling\";\r\nimport store from \"../../../repository/store/store\";\r\nimport router from \"@/routes\";\r\nimport { disableBodyOverflow, enableBodyOverflow } from \"../mixins\";\r\nimport RegisterModal from \"./RegisterModal.vue\";\r\nimport ResetPassword from \"./ResetPassword.vue\";\r\nimport ModernInput from \"../application/forms/modernInput.vue\";\r\nimport { useRoute } from \"vue-router\";\r\n\r\nexport default {\r\n name: \"LoginFormCirculo\",\r\n components: { ModernInput, ResetPassword, RegisterModal },\r\n\r\n setup() {\r\n const name: Ref = ref(\"\");\r\n const password: Ref = ref(\"\");\r\n const isPasswordVisible: Ref = ref(false);\r\n\r\n const route = useRoute();\r\n\r\n const onSubmit = async () => {\r\n try {\r\n await login();\r\n await loadUser();\r\n if (route.query.redirect) {\r\n await router.push(route.query.redirect as string);\r\n } else {\r\n await router.push({ name: \"dashboard\" });\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n const login = async (): Promise => {\r\n try {\r\n await store.dispatch(\"authentication_module/login\", {\r\n login: name.value,\r\n password: password.value\r\n });\r\n } catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n };\r\n\r\n const loadUser = async (): Promise => {\r\n try {\r\n await store.dispatch(\"userProfile_module/loadUser\");\r\n } catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n };\r\n\r\n const isSignupModalOpen: Ref = ref(false);\r\n\r\n const onClickSignup = (): void => {\r\n openSignupModal();\r\n disableBodyOverflow();\r\n };\r\n\r\n const onCloseSignup = (): void => {\r\n closeSignupModal();\r\n enableBodyOverflow();\r\n };\r\n\r\n const openSignupModal = (): void => {\r\n isSignupModalOpen.value = true;\r\n };\r\n\r\n const closeSignupModal = (): void => {\r\n isSignupModalOpen.value = false;\r\n };\r\n\r\n const onClickForgetPassword = (): void => {\r\n openResetPassword();\r\n disableBodyOverflow();\r\n };\r\n\r\n const openResetPassword = (): void => {\r\n isSignupModalOpen.value = true;\r\n };\r\n\r\n const onCloseForgetPassword = (): void => {\r\n router.push({ name: \"home\" });\r\n enableBodyOverflow();\r\n };\r\n\r\n /** Function that makes the password visible or not. */\r\n function togglePassword() {\r\n isPasswordVisible.value = !isPasswordVisible.value;\r\n }\r\n return {\r\n name,\r\n password,\r\n isSignupModalOpen,\r\n isPasswordVisible,\r\n onSubmit,\r\n onClickSignup,\r\n onCloseSignup,\r\n onClickForgetPassword,\r\n onCloseForgetPassword,\r\n togglePassword\r\n };\r\n }\r\n};\r\n","import { render } from \"./LoginFormCirculo.vue?vue&type=template&id=16a23494&scoped=true&ts=true\"\nimport script from \"./LoginFormCirculo.vue?vue&type=script&lang=ts\"\nexport * from \"./LoginFormCirculo.vue?vue&type=script&lang=ts\"\n\nimport \"./LoginFormCirculo.vue?vue&type=style&index=0&id=16a23494&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-16a23494\"]])\n\nexport default __exports__","\r\nimport { defineComponent } from \"vue\";\r\nimport LandingPageCirculoSection from \"./LandingPageCirculoSection.vue\";\r\nimport Login from \"../landingpage/Login.vue\";\r\nimport LoginFormCirculo from \"./LoginFormCirculo.vue\";\r\n\r\nexport default defineComponent({\r\n components: { LoginFormCirculo, Login, LandingPageCirculoSection },\r\n\r\n setup() {\r\n return {};\r\n }\r\n});\r\n","import { render } from \"./Call.vue?vue&type=template&id=1fa01f5e&scoped=true&ts=true\"\nimport script from \"./Call.vue?vue&type=script&lang=ts\"\nexport * from \"./Call.vue?vue&type=script&lang=ts\"\n\nimport \"./Call.vue?vue&type=style&index=0&id=1fa01f5e&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1fa01f5e\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-795bc5dc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"about\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"content\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", null, \"Saiba mais\"),\n /*#__PURE__*/_createElementVNode(\"p\", null, \" A plataforma Ganhe Mais Círculo oferece uma rica variedade de conteúdos voltados para artesanato, empreendedorismo e inovação. Desenvolvidos por especialistas, nossos cursos visam enriquecer suas habilidades e conhecimentos em diversas áreas. \"),\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"default\" })\n], -1))\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from \"vue\";\r\nimport LandingPageCirculoSection from \"./LandingPageCirculoSection.vue\";\r\n\r\nexport default defineComponent({\r\n name: \"AboutView\",\r\n components: { LandingPageCirculoSection }\r\n});\r\n","import { render } from \"./About.vue?vue&type=template&id=795bc5dc&scoped=true&ts=true\"\nimport script from \"./About.vue?vue&type=script&lang=ts\"\nexport * from \"./About.vue?vue&type=script&lang=ts\"\n\nimport \"./About.vue?vue&type=style&index=0&id=795bc5dc&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-795bc5dc\"]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"span\"))\n}","\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"DivisorView\",\r\n props: {\r\n withArrowDown: {\r\n type: Boolean,\r\n default: false\r\n }\r\n }\r\n});\r\n","import { render } from \"./Divisor.vue?vue&type=template&id=0894d498&scoped=true&ts=true\"\nimport script from \"./Divisor.vue?vue&type=script&lang=ts\"\nexport * from \"./Divisor.vue?vue&type=script&lang=ts\"\n\nimport \"./Divisor.vue?vue&type=style&index=0&id=0894d498&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0894d498\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-64d8c27d\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"highlights\" }\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"
  • Cadastro
    simples

    Realize um cadastro fácil.
    Inscreva-se em apenas alguns passos.

  • Navegação
    intuitiva

    Navegue de forma fácil.
    Descubra os cursos disponíveis de maneira intuitiva.

  • Aprendizado
    flexível

    Adquira conhecimento
    quando e onde quiser.

  • Certificação

    Obtenha
    reconhecimento pelo seu empenho.

\", 1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from \"vue\";\r\nimport LandingPageCirculoSection from \"./LandingPageCirculoSection.vue\";\r\n\r\nexport default defineComponent({\r\n name: \"HighLightsView\",\r\n components: { LandingPageCirculoSection }\r\n});\r\n","import { render } from \"./HighLights.vue?vue&type=template&id=64d8c27d&scoped=true&ts=true\"\nimport script from \"./HighLights.vue?vue&type=script&lang=ts\"\nexport * from \"./HighLights.vue?vue&type=script&lang=ts\"\n\nimport \"./HighLights.vue?vue&type=style&index=0&id=64d8c27d&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-64d8c27d\"]])\n\nexport default __exports__","\r\nimport { defineComponent } from \"vue\";\r\nimport Call from \"../components/landingpageCirculo/Call.vue\";\r\nimport LandingPageCirculoSection from \"../components/landingpageCirculo/LandingPageCirculoSection.vue\";\r\nimport AboutView from \"../components/landingpageCirculo/About.vue\";\r\nimport DivisorView from \"../components/landingpageCirculo/Divisor.vue\";\r\nimport HighLightsView from \"../components/landingpageCirculo/HighLights.vue\";\r\nimport Footer from \"../components/application/moldure/Footer.vue\";\r\n\r\nexport default defineComponent({\r\n name: \"LandingPageCirculo\",\r\n components: {\r\n Footer,\r\n HighLightsView,\r\n DivisorView,\r\n AboutView,\r\n LandingPageCirculoSection,\r\n Call\r\n },\r\n\r\n setup() {\r\n return {};\r\n }\r\n});\r\n","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-288f2740\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"call\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"logo-container\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"logo\" })\n], -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"banner\" }, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_login = _resolveComponent(\"login\")!\n\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n _hoisted_2,\n _hoisted_3,\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.toggleLogin && _ctx.toggleLogin(...args))),\n class: \"call__button\"\n }, \"Login\"),\n _createElementVNode(\"div\", {\n class: \"trigger-area\",\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.toggleLogin && _ctx.toggleLogin(...args)))\n }, [\n _createVNode(_component_login, {\n onRecoverPassword: _cache[1] || (_cache[1] = \r\n () => {\r\n _ctx.toggleLogin();\r\n _ctx.$router.push({\r\n name: 'home',\r\n params: { resetPass: 'reset-password', resetBy: 'identity' }\r\n });\r\n }\r\n ),\n onToggleLogin: _cache[2] || (_cache[2] = ($event: any) => (_ctx.toggleLogin())),\n onToggleRegisterModal: _cache[3] || (_cache[3] = \r\n () => {\r\n _ctx.toggleLogin();\r\n _ctx.toggleRegisterModal();\r\n }\r\n ),\n class: \"call__login\"\n })\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9b216466\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"course__content\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"course__span\" }, \"curso\", -1))\nconst _hoisted_3 = { class: \"course__information\" }\nconst _hoisted_4 = { class: \"course__title\" }\nconst _hoisted_5 = { class: \"course__details-content\" }\nconst _hoisted_6 = { class: \"course__details\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"course__rating\"\n}\nconst _hoisted_8 = { class: \"course__duration\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"course__certification\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n style: _normalizeStyle({\r\n backgroundImage: `linear-gradient(101.39deg, rgba(40, 55, 135, 0.38) 0%, rgba(35, 125, 174, 0.38) 98.82%), url(${_ctx.course.thumbnailURL}) !important`\r\n }),\n class: \"course\"\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h4\", _hoisted_4, _toDisplayString(_ctx.course.title), 1),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n (_ctx.course.rating)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(_ctx.course.rating), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_8, _toDisplayString(_ctx.formattedDuration(_ctx.course.duration)), 1)\n ])\n ]),\n (_ctx.course.haveCertification)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 4))\n}","\r\nimport {defineComponent, PropType} from \"vue\";\r\nimport {Course} from \"../../../../domain/entities/entities\";\r\n\r\nexport default defineComponent({\r\n props: {\r\n course: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n\r\n setup() {\r\n /**\r\n * Formats course duration.\r\n * @param duration Number that tells how long the course can last (calculated from the sum of each content_provider duration [the content_provider duration is defined by the instructor]).\r\n * @returns Course duration in one of the following formats: 00:00:00h, 00:00m in case the hours are less than zero and 00h for too many hours.\r\n */\r\n function formattedDuration(duration: number) {\r\n const sec = duration;\r\n let hours: string | number = Math.floor(sec / 3600);\r\n let minutes: string | number = Math.floor((sec - hours * 3600) / 60);\r\n let seconds: string | number = sec - hours * 3600 - minutes * 60;\r\n if (hours < 10) {\r\n hours = \"0\" + hours;\r\n }\r\n if (minutes < 10) {\r\n minutes = \"0\" + minutes;\r\n }\r\n if (seconds < 10) {\r\n seconds = \"0\" + seconds;\r\n }\r\n if (hours > 24) {\r\n return hours + \"h\";\r\n }\r\n if (hours == 0) {\r\n return minutes + \":\" + seconds + \"m\";\r\n }\r\n return hours + \":\" + minutes + \":\" + seconds + \"h\";\r\n }\r\n\r\n return {\r\n formattedDuration\r\n };\r\n }\r\n});\r\n","import { render } from \"./Card.vue?vue&type=template&id=9b216466&scoped=true&ts=true\"\nimport script from \"./Card.vue?vue&type=script&lang=ts\"\nexport * from \"./Card.vue?vue&type=script&lang=ts\"\n\nimport \"./Card.vue?vue&type=style&index=0&id=9b216466&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-9b216466\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7a63cd68\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"box-menu\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"register-form__information\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", { class: \"register-form__title\" }, \"Cadastre-se\"),\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"register-form__description\" }, \" Preencha os campos abaixo para realizar o seu cadastro. \")\n], -1))\nconst _hoisted_3 = { class: \"inputs\" }\nconst _hoisted_4 = { class: \"pair\" }\nconst _hoisted_5 = { class: \"pair\" }\nconst _hoisted_6 = { class: \"pair\" }\nconst _hoisted_7 = { class: \"pair\" }\nconst _hoisted_8 = { class: \"pair\" }\nconst _hoisted_9 = { class: \"pair\" }\nconst _hoisted_10 = { class: \"container-password\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"button\", {\n class: \"register-form__button\",\n type: \"submit\"\n}, \"Cadastrar\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_modern_input = _resolveComponent(\"modern-input\")!\n const _component_input_password = _resolveComponent(\"input-password\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"register-modal\",\n onClick: _cache[17] || (_cache[17] = _withModifiers(() => {}, [\"stop\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"button\", {\n class: \"btn--exit\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('toggleRegisterModal')))\n }),\n _createElementVNode(\"form\", {\n onSubmit: _cache[16] || (_cache[16] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.register && _ctx.register(...args)), [\"prevent\"])),\n id: \"register-form\",\n class: \"register-form\"\n }, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n required: \"\",\n class: \"modern-input\",\n id: \"register-name\",\n label: \"Nome\",\n type: \"text\",\n userData: _ctx.user.name,\n \"onUpdate:userData\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.user.name) = $event))\n }, null, 8, [\"userData\"]),\n _createVNode(_component_modern_input, {\n max: _ctx.maxDate,\n min: \"1900-01-01\",\n form: \"register-form\",\n required: \"\",\n class: \"modern-input\",\n id: \"register-birthDate\",\n label: \"Data de nascimento\",\n type: \"date\",\n userData: _ctx.user.birthDate,\n \"onUpdate:userData\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.user.birthDate) = $event))\n }, null, 8, [\"max\", \"userData\"])\n ]),\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n required: \"\",\n class: \"modern-input\",\n id: \"register-document\",\n label: \"CPF\",\n type: \"text\",\n userData: _ctx.user.document,\n \"onUpdate:userData\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.user.document) = $event)),\n \"has-mask\": \"\",\n \"input-mask\": \"###.###.###-##\"\n }, null, 8, [\"userData\"]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n required: \"\",\n class: \"modern-input\",\n id: \"register-email\",\n label: \"E-mail\",\n type: \"email\",\n userData: _ctx.user.email,\n \"onUpdate:userData\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.user.email) = $event))\n }, null, 8, [\"userData\"]),\n _createVNode(_component_modern_input, {\n \"max-length\": \"14\",\n form: \"register-form\",\n onInput: _cache[5] || (_cache[5] = ($event: any) => (_ctx.requestCepAPI($event.target.value))),\n class: \"modern-input\",\n id: \"register-CEP\",\n label: \"CEP\",\n type: \"text\",\n userData: _ctx.user.address.zipCode,\n \"onUpdate:userData\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.user.address.zipCode) = $event)),\n \"has-mask\": \"\",\n \"input-mask\": \"#####-###\"\n }, null, 8, [\"userData\"])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n userData: _ctx.user.address.stateID,\n \"onUpdate:userData\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.user.address.stateID) = $event)),\n class: \"modern-input\",\n id: \"register-uf\",\n label: \"UF (Estado)\",\n type: \"select\",\n options: _ctx.states\n }, null, 8, [\"userData\", \"options\"]),\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n userData: _ctx.user.address.city,\n \"onUpdate:userData\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.user.address.city) = $event)),\n class: \"modern-input\",\n id: \"register-city\",\n label: \"Cidade\",\n type: \"text\"\n }, null, 8, [\"userData\"])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n \"user-data\": _ctx.user.address.street,\n \"onUpdate:user-data\": _cache[9] || (_cache[9] = ($event: any) => ((_ctx.user.address.street) = $event)),\n class: \"modern-input\",\n id: \"register-street\",\n label: \"Rua\",\n type: \"text\"\n }, null, 8, [\"user-data\"]),\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n \"user-data\": _ctx.user.address.district,\n \"onUpdate:user-data\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.user.address.district) = $event)),\n class: \"modern-input\",\n id: \"register-neighborhood\",\n label: \"Bairro\",\n type: \"text\"\n }, null, 8, [\"user-data\"])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n \"user-data\": _ctx.user.address.addressNumber,\n \"onUpdate:user-data\": _cache[11] || (_cache[11] = ($event: any) => ((_ctx.user.address.addressNumber) = $event)),\n min: \"0\",\n class: \"modern-input\",\n id: \"register-number\",\n label: \"Número\",\n type: \"number\"\n }, null, 8, [\"user-data\"]),\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n \"user-data\": _ctx.user.address.complement,\n \"onUpdate:user-data\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.user.address.complement) = $event)),\n class: \"modern-input\",\n id: \"register-complement\",\n label: \"Complemento\",\n type: \"text\"\n }, null, 8, [\"user-data\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_input_password, {\n form: \"register-form\",\n required: \"\",\n \"model-value\": _ctx.user.password,\n \"onUpdate:model-value\": _cache[13] || (_cache[13] = ($event: any) => ((_ctx.user.password) = $event)),\n id: \"register-password\",\n label: \"Senha\",\n passwordVisibility: true\n }, null, 8, [\"model-value\"]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_modern_input, {\n form: \"register-form\",\n required: \"\",\n \"user-data\": _ctx.user.passwordConfirmation,\n \"onUpdate:user-data\": _cache[14] || (_cache[14] = ($event: any) => ((_ctx.user.passwordConfirmation) = $event)),\n id: \"register-passwordConfirmation\",\n label: \"Confirme sua senha\",\n type: _ctx.isPasswordVisible ? 'text' : 'password'\n }, null, 8, [\"user-data\", \"type\"]),\n _createElementVNode(\"span\", {\n onClick: _cache[15] || (_cache[15] = ($event: any) => (_ctx.togglePassword())),\n class: _normalizeClass([\"input__visibility\", _ctx.isPasswordVisible ? '' : 'notVisible'])\n }, null, 2)\n ])\n ])\n ]),\n _hoisted_11\n ], 32)\n ])\n ]))\n}","\r\nimport IdentityForm from \"../application/forms/IdentityForm.vue\";\r\nimport ModernInput from \"../application/forms/modernInput.vue\";\r\nimport {Address, User} from \"../../../../domain/entities/entities\";\r\nimport InputPassword from \"../application/forms/InputPassword.vue\";\r\nimport store from \"../../../repository/store/store\";\r\nimport {defineComponent, onBeforeMount, onBeforeUnmount, Ref, ref} from \"vue\";\r\nimport http from \"../../../repository/http\";\r\nimport {dispatchErrorBox, dispatchSuccessBox} from \"../mixins\";\r\nimport {RepositoryException} from \"../../../../domain/exceptions/exceptions\";\r\n\r\nexport default defineComponent({\r\n name: \"register-modal\",\r\n components: { ModernInput, IdentityForm, InputPassword },\r\n\r\n setup(_, { emit }) {\r\n /** Referes the new user that will be registered */\r\n const user = ref(new User());\r\n\r\n /** Contain all of Brazil's states */\r\n const states = ref([{ stateID: null, id: null, label: \"Selecionar\" }]);\r\n\r\n /** Contain the max date value that can be applied in the date input example 2022-06-08 */\r\n const maxDate: Ref = ref(\"\");\r\n\r\n /** Variable that makes the password visible. */\r\n const isPasswordVisible: Ref = ref(false);\r\n\r\n onBeforeMount(async () => {\r\n await loadStates();\r\n calcMaxDate();\r\n });\r\n\r\n onBeforeUnmount(async () => {\r\n user.value = new User();\r\n });\r\n\r\n /** Calculate the max value that the date input can contain */\r\n const calcMaxDate = () => {\r\n const currentDate = new Date();\r\n let day: string | number = currentDate.getDay();\r\n let month: string | number = currentDate.getMonth();\r\n const year = currentDate.getFullYear();\r\n day = formatDayMonth(day.toString());\r\n month = formatDayMonth(month.toString());\r\n maxDate.value = year + \"-\" + month + \"-\" + day;\r\n };\r\n\r\n /** Verifies if day or month has only one character, if true put 0 in end\r\n * @param value might be the day or the month, example day \"4\" or month \"12\". */\r\n const formatDayMonth = (value: string): string => {\r\n return value.length == 1 ? \"0\" + value : value;\r\n };\r\n\r\n /** Makes a request to get all the states of Brazil. */\r\n async function loadStates() {\r\n try {\r\n const response = await http.get(\"api/decola/states\");\r\n states.value = [...states.value, ...response.data.states];\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n /** Used to display some information while the address is loading. */\r\n function fillAddressLoading() {\r\n const loading = \"...\";\r\n user.value.address.federalUnit = loading;\r\n user.value.address.city = loading;\r\n user.value.address.district = loading;\r\n user.value.address.street = loading;\r\n }\r\n\r\n /** To clear all address fields. Usually used when the provided cep does not exist. */\r\n function clearFillAddress() {\r\n user.value.address.zipCode = \"\";\r\n user.value.address.federalUnit = \"\";\r\n user.value.address.city = \"\";\r\n user.value.address.district = \"\";\r\n user.value.address.street = \"\";\r\n }\r\n\r\n /** Used to fill the address field with the payload received from the backend app.\r\n * @see Address */\r\n function fillAddress(address: Address) {\r\n user.value.address = address;\r\n }\r\n\r\n /** Request the address by passing the cep.\r\n * @param cep follow this pattern \"89110110\" */\r\n async function requestCepAPI(cep: string): Promise {\r\n if (cep.length < 9) {\r\n user.value.address.zipCode = cep;\r\n return;\r\n }\r\n try {\r\n fillAddressLoading();\r\n const response = await http.get(`/api/decola/cep/${cep}`);\r\n const address: Address = {\r\n ...response.data,\r\n zipCode: user.value.address.zipCode\r\n };\r\n fillAddress(address);\r\n } catch (e) {\r\n clearFillAddress();\r\n console.log(e);\r\n await dispatchErrorBox(\"O CEP digitado não existe!\");\r\n }\r\n }\r\n\r\n /** Undo the structural changes applied by the input's mask to send correctly to the backend app.*/\r\n const formatUserData = () => {\r\n user.value.document = user.value.document.replaceAll(\"-\", \"\").replaceAll(\".\", \"\");\r\n user.value.address.zipCode = user.value.address.zipCode.replace(\"-\", \"\");\r\n user.value.address.stateID = Number(user.value.address.stateID);\r\n user.value.address.addressNumber = Number(user.value.address.addressNumber);\r\n }\r\n\r\n /** Register a new user with the information provided through the form. */\r\n async function register(): Promise {\r\n try {\r\n formatUserData();\r\n await store.dispatch(\r\n \"authentication_module/registerNewUser\",\r\n user.value\r\n );\r\n await dispatchSuccessBox(\"Cadastro realizado com sucesso!\");\r\n emit(\"toggleRegisterModal\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n /** Function that makes the password visible or not. */\r\n function togglePassword() {\r\n isPasswordVisible.value = !isPasswordVisible.value;\r\n }\r\n\r\n return {\r\n user,\r\n states,\r\n maxDate,\r\n isPasswordVisible,\r\n requestCepAPI,\r\n register,\r\n togglePassword\r\n };\r\n }\r\n});\r\n","import { render } from \"./RegisterModal.vue?vue&type=template&id=7a63cd68&scoped=true&ts=true\"\nimport script from \"./RegisterModal.vue?vue&type=script&lang=ts\"\nexport * from \"./RegisterModal.vue?vue&type=script&lang=ts\"\n\nimport \"./RegisterModal.vue?vue&type=style&index=0&id=7a63cd68&scoped=true&lang=css\"\nimport \"./RegisterModal.vue?vue&type=style&index=1&id=7a63cd68&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7a63cd68\"]])\n\nexport default __exports__","\r\nimport Login from \"../landingpage/Login.vue\";\r\nimport { Carousel, Navigation, Slide } from \"vue3-carousel\";\r\nimport \"vue3-carousel/dist/carousel.css\";\r\nimport { computed, ComputedRef, onBeforeMount, Ref } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport \"./callCarousel.css\";\r\nimport Card from \"./Card.vue\";\r\nimport LoginForm from \"../application/forms/LoginForm.vue\";\r\nimport { defineComponent, ref } from \"@vue/runtime-core\";\r\nimport RegisterModal from \"./RegisterModal.vue\";\r\nimport { disableBodyOverflow, enableBodyOverflow } from \"../mixins\";\r\nimport { Course } from \"../../../../domain/entities/entities\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { dispatchError } from \"../../utils/error_handling\";\r\n\r\nconst __default__ = defineComponent({\r\n components: {\r\n RegisterModal,\r\n LoginForm,\r\n Card,\r\n login: Login,\r\n Carousel,\r\n Slide,\r\n Navigation\r\n },\r\n\r\n setup() {\r\n const route = useRoute();\r\n const store = useStore();\r\n\r\n const loginDisplay: Ref = ref(\"none\");\r\n\r\n const newsCourses: ComputedRef = computed(() => {\r\n return store.getters[\"course_module/courses\"] || [];\r\n });\r\n\r\n const isModalOpened: Ref = ref(false);\r\n\r\n onBeforeMount(async () => {\r\n if (route.query?.redirect) loginDisplay.value = \"flex\";\r\n\r\n await loadNewsCourses();\r\n });\r\n /* make registration pop-up visible when called */\r\n function showRegistrationSpan(): void {\r\n store.dispatch(\"setRegistrationSpanVisibility\", true);\r\n }\r\n\r\n function formattedDuration(duration: number) {\r\n const sec = duration;\r\n let hours: string | number = Math.floor(sec / 3600);\r\n let minutes: string | number = Math.floor((sec - hours * 3600) / 60);\r\n let seconds: string | number = sec - hours * 3600 - minutes * 60;\r\n if (hours < 10) {\r\n hours = \"0\" + hours;\r\n }\r\n if (minutes < 10) {\r\n minutes = \"0\" + minutes;\r\n }\r\n if (seconds < 10) {\r\n seconds = \"0\" + seconds;\r\n }\r\n if (hours > 24) {\r\n return hours + \"h\";\r\n }\r\n if (hours == 0) {\r\n return minutes + \":\" + seconds + \"m\";\r\n }\r\n return hours + \":\" + minutes + \":\" + seconds + \"h\";\r\n }\r\n\r\n async function loadNewsCourses(): Promise {\r\n try {\r\n await store.dispatch(\"course_module/loadNewsCourses\");\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n }\r\n\r\n const toggleLogin = (): void => {\r\n console.log(\"oi\");\r\n loginDisplay.value = loginDisplay.value === \"none\" ? \"flex\" : \"none\";\r\n if (loginDisplay.value === \"flex\") {\r\n disableBodyOverflow();\r\n } else {\r\n enableBodyOverflow();\r\n }\r\n };\r\n\r\n const toggleRegisterModal = async (): Promise => {\r\n isModalOpened.value = !isModalOpened.value;\r\n await store.dispatch(\"authentication_module/clearPasswordStrength\");\r\n };\r\n\r\n return {\r\n newsCourses,\r\n isModalOpened,\r\n loginDisplay,\r\n toggleRegisterModal,\r\n showRegistrationSpan,\r\n loadNewsCourses,\r\n formattedDuration,\r\n toggleLogin\r\n };\r\n }\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"3affc004\": (_ctx.loginDisplay)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./Call.vue?vue&type=template&id=288f2740&scoped=true&ts=true\"\nimport script from \"./Call.vue?vue&type=script&lang=ts\"\nexport * from \"./Call.vue?vue&type=script&lang=ts\"\n\nimport \"./Call.vue?vue&type=style&index=0&id=288f2740&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-288f2740\"]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createBlock as _createBlock, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-45784449\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"introduction\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"releases\"\n}\nconst _hoisted_3 = {\n key: 0,\n class: \"releases__title\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"container\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"title\" }, \"PROPÓSITO\"),\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"description\" }, [\n /*#__PURE__*/_createTextVNode(\" O \"),\n /*#__PURE__*/_createElementVNode(\"strong\", null, \"Grupo GTOP\"),\n /*#__PURE__*/_createTextVNode(\" é uma rede supermercadista catarinense que reúne famílias tradicionais do varejo para oferecer a melhor experiência de compras, com preços competitivos, em lojas dedicadas ao bem-estar das pessoas para, assim, atingir o propósito de estar perto dos clientes em todos os momentos e ocasiões! \")\n ])\n], -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_card = _resolveComponent(\"card\")!\n const _component_Slide = _resolveComponent(\"Slide\")!\n const _component_Navigation = _resolveComponent(\"Navigation\")!\n const _component_Carousel = _resolveComponent(\"Carousel\")!\n\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n (_ctx.newsCourses.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_ctx.newsCourses.length)\n ? (_openBlock(), _createElementBlock(\"h2\", _hoisted_3, \"NOVIDADES\"))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_Carousel, {\n breakpoints: _ctx.breakpoints,\n settings: _ctx.settings\n }, {\n addons: _withCtx(() => [\n _createVNode(_component_Navigation)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.newsCourses, (card, index) => {\n return (_openBlock(), _createBlock(_component_Slide, { key: index }, {\n default: _withCtx(() => [\n _createVNode(_component_card, {\n duration: _ctx.formattedDuration(card.duration),\n rating: card.rating,\n title: card.title,\n \"thumbnail-u-r-l\": card.imageURL,\n course: card\n }, null, 8, [\"duration\", \"rating\", \"title\", \"thumbnail-u-r-l\", \"course\"])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"breakpoints\", \"settings\"])\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_4\n ]))\n}","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2f2e17d5\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n ref: \"root\",\n class: \"divisor\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1))\nconst _hoisted_3 = { \"data-title\": \"\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"h2\", _hoisted_3, _toDisplayString(_ctx.title), 1),\n _hoisted_4\n ], 512))\n}","\r\nimport {defineComponent} from \"vue\";\r\n\r\nconst __default__ = defineComponent({\r\n name: \"SectionDivisor\",\r\n props: {\r\n title: {\r\n type: String,\r\n },\r\n colorLabel: {\r\n type: String,\r\n },\r\n colorBackground: {\r\n type: String,\r\n },\r\n colorLine: {\r\n type: String,\r\n },\r\n },\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"6373e31d\": (_ctx.colorBackground),\n \"2750b7a5\": (_ctx.colorLabel),\n \"2a8f1d23\": (_ctx.colorLine)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./SectionDivisor.vue?vue&type=template&id=2f2e17d5&scoped=true&ts=true\"\nimport script from \"./SectionDivisor.vue?vue&type=script&lang=ts\"\nexport * from \"./SectionDivisor.vue?vue&type=script&lang=ts\"\n\nimport \"./SectionDivisor.vue?vue&type=style&index=0&id=2f2e17d5&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2f2e17d5\"]])\n\nexport default __exports__","\r\nimport SectionDivisor from \"./SectionDivisor.vue\";\r\nimport { Carousel, Navigation, Slide } from \"vue3-carousel\";\r\nimport { computed, ComputedRef, defineComponent, onBeforeMount } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { Course } from \"../../../../domain/entities/entities\";\r\nimport Card from \"./Card.vue\";\r\nimport { dispatchError } from \"../../utils/error_handling\";\r\nimport { wrapLoading } from \"../../utils/wrap_loading\";\r\n\r\nexport default defineComponent({\r\n components: {\r\n Carousel,\r\n Slide,\r\n Navigation,\r\n Card,\r\n SectionDivisor\r\n },\r\n setup() {\r\n const store = useStore();\r\n\r\n onBeforeMount(async () => {\r\n await loadNewsCourses();\r\n });\r\n\r\n const newsCourses: ComputedRef = computed(() => {\r\n return store.getters[\"course_module/newCourses\"] || [];\r\n });\r\n\r\n const settings = {\r\n itemsToShow: 1,\r\n transition: 1000\r\n };\r\n\r\n const breakpoints = {\r\n 0: {\r\n itemsToShow: 1,\r\n snapAlign: \"center\"\r\n },\r\n\r\n 280: {\r\n itemsToShow: 1,\r\n snapAlign: \"center\"\r\n },\r\n\r\n 520: {\r\n itemsToShow: 2,\r\n snapAlign: \"center\",\r\n itemsToScroll: 2\r\n },\r\n\r\n 980: {\r\n itemsToShow: 3,\r\n snapAlign: \"center\",\r\n itemsToScroll: 3\r\n },\r\n\r\n 1030: {\r\n itemsToShow: 3,\r\n snapAlign: \"center\",\r\n itemsToScroll: 3\r\n },\r\n\r\n 1580: {\r\n itemsToShow: 4,\r\n snapAlign: \"center\",\r\n itemsToScroll: 4\r\n }\r\n };\r\n\r\n function formattedDuration(duration: number) {\r\n const sec = duration;\r\n let hours: string | number = Math.floor(sec / 3600);\r\n let minutes: string | number = Math.floor((sec - hours * 3600) / 60);\r\n let seconds: string | number = sec - hours * 3600 - minutes * 60;\r\n if (hours < 10) {\r\n hours = \"0\" + hours;\r\n }\r\n if (minutes < 10) {\r\n minutes = \"0\" + minutes;\r\n }\r\n if (seconds < 10) {\r\n seconds = \"0\" + seconds;\r\n }\r\n if (hours > 24) {\r\n return hours + \"h\";\r\n }\r\n if (hours == 0) {\r\n return minutes + \":\" + seconds + \"m\";\r\n }\r\n return hours + \":\" + minutes + \":\" + seconds + \"h\";\r\n }\r\n\r\n async function loadNewsCourses(): Promise {\r\n try {\r\n await wrapLoading(async () => {\r\n await store.dispatch(\"course_module/loadNewsCourses\");\r\n });\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n }\r\n return {\r\n newsCourses,\r\n breakpoints,\r\n settings,\r\n formattedDuration\r\n };\r\n }\r\n});\r\n","import { render } from \"./Introduction.vue?vue&type=template&id=45784449&scoped=true&ts=true\"\nimport script from \"./Introduction.vue?vue&type=script&lang=ts\"\nexport * from \"./Introduction.vue?vue&type=script&lang=ts\"\n\nimport \"./Introduction.vue?vue&type=style&index=0&id=45784449&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-45784449\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3ff3097e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"mission\" }\nconst _hoisted_2 = { class: \"list\" }\nconst _hoisted_3 = { class: \"mission__content\" }\nconst _hoisted_4 = { class: \"mission__image\" }\nconst _hoisted_5 = [\"src\"]\nconst _hoisted_6 = { class: \"item__content item__title\" }\nconst _hoisted_7 = { class: \"item__content item__description\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.missions, (mission) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: \"item\",\n key: mission\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"img\", {\n class: \"icon\",\n src: \r\n require(`../../assets/static/landingPageGTop/${mission.image}`)\r\n ,\n alt: \"icon\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"h3\", _hoisted_6, _toDisplayString(mission.title), 1)\n ]),\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(mission.description), 1)\n ]))\n }), 128))\n ])\n ]))\n}","\r\nimport { defineComponent } from \"vue\";\r\nimport SectionDivisor from \"./SectionDivisor.vue\";\r\n\r\nexport default defineComponent({\r\n components: { SectionDivisor },\r\n data() {\r\n return {\r\n missions: [\r\n {\r\n title: \"Missão\",\r\n description:\r\n \"Simplificar a jornada do cliente com produtos e serviços de qualidade.\",\r\n image: \"missao.svg\"\r\n },\r\n {\r\n title: \"Visão\",\r\n description:\r\n \"Estar entre as cinco maiores empresas do mercado em que atuamos, sempre com o cliente e o colaborador no centro dos nossos negócios.\",\r\n image: \"visao.svg\"\r\n },\r\n {\r\n title: \"Valores\",\r\n description:\r\n \"- Pessoas em 1º lugar;\\n\" +\r\n \"- Foco no cliente;\\n\" +\r\n \"- Agilidade;\\n\" +\r\n \"- Confiança e transparência;\\n\" +\r\n \"- Compromisso com os resultados;\\n\" +\r\n \"- Determinação e disciplina.\",\r\n image: \"valores.svg\"\r\n }\r\n ]\r\n };\r\n }\r\n});\r\n","import { render } from \"./Mission.vue?vue&type=template&id=3ff3097e&scoped=true&ts=true\"\nimport script from \"./Mission.vue?vue&type=script&lang=ts\"\nexport * from \"./Mission.vue?vue&type=script&lang=ts\"\n\nimport \"./Mission.vue?vue&type=style&index=0&id=3ff3097e&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3ff3097e\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3480a932\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"reset-password\" }\nconst _hoisted_2 = { class: \"box-menu\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_reset_options = _resolveComponent(\"reset-options\")!\n const _component_reset_password_component = _resolveComponent(\"reset-password-component\")!\n const _component_new_password = _resolveComponent(\"new-password\")!\n const _component_reset_password_success = _resolveComponent(\"reset-password-success\")!\n const _component_identity_form = _resolveComponent(\"identity-form\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n class: \"btn--reset-pass-exit\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('toggleModal')))\n }),\n false\n ? (_openBlock(), _createBlock(_component_reset_options, { key: 0 }))\n : _createCommentVNode(\"\", true),\n false\n ? (_openBlock(), _createBlock(_component_reset_password_component, {\n key: 1,\n onToggleModal: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('toggleModal'))),\n onRecoverByDocument: _cache[2] || (_cache[2] = ($event: any) => ($setup.recoverPasswordByDocument($event))),\n onRecoverByEmail: _cache[3] || (_cache[3] = ($event: any) => ($setup.recoverPasswordByEmail($event)))\n }))\n : (_ctx.$route.params.token)\n ? (_openBlock(), _createBlock(_component_new_password, {\n key: 2,\n onToggleModal: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$emit('toggleModal')))\n }))\n : ($setup.emailHasBeenSent)\n ? (_openBlock(), _createBlock(_component_reset_password_success, {\n key: 3,\n onToggleModal: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$emit('toggleModal')))\n }))\n : (_ctx.$route.params.resetBy)\n ? (_openBlock(), _createBlock(_component_identity_form, {\n key: 4,\n onPost: _cache[6] || (_cache[6] = ($event: any) => ($setup.checkUserCredentials($event)))\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}","\r\nimport ResetPasswordComponent from \"../application/forms/ResetPassword.vue\";\r\nimport { ref } from \"vue\";\r\nimport ResetPasswordSuccess from \"../application/forms/ResetPasswordSuccess.vue\";\r\nimport NewPassword from \"../application/forms/NewPassword.vue\";\r\nimport ResetOptions from \"../application/forms/ResetOptions.vue\";\r\nimport IdentityForm from \"../application/forms/IdentityForm.vue\";\r\nimport { UserData } from \"../../../../domain/entities/entities\";\r\nimport { authenticationUseCases } from \"../../../../domain/usecase/impl/authenticationUseCases\";\r\nimport router from \"@/routes\";\r\nimport {\r\n dispatchErrorBox,\r\n enableBodyOverflow,\r\n getObjectByValue\r\n} from \"../mixins\";\r\nimport { RepositoryException } from \"../../../../domain/exceptions/exceptions\";\r\nimport { dispatchError } from \"../../utils/error_handling\";\r\nimport { useStore } from \"vuex\";\r\n\r\nexport default {\r\n name: \"ResetPassword\",\r\n components: {\r\n IdentityForm,\r\n ResetOptions,\r\n NewPassword,\r\n ResetPasswordSuccess,\r\n ResetPasswordComponent\r\n },\r\n\r\n setup() {\r\n const store = useStore();\r\n\r\n const emailHasBeenSent = ref(false);\r\n\r\n /** Get user's information and parse it to a specific format to make a request and validate the user's credentials\r\n * @param userData Contains all data that the backend needs to validate the user's credentials, like document, name, etc... */\r\n const formattedUserData = (userData: UserData): UserData => {\r\n const formattedData: UserData = getObjectByValue(userData);\r\n\r\n /** Remove all characters except numbers */\r\n if (formattedData.document) {\r\n formattedData.document = formattedData.document.replace(\r\n /[^a-zA-Z0-9]/g,\r\n \"\"\r\n );\r\n }\r\n\r\n /** Parse to number attributes that should be numbers but is string */\r\n if (formattedData.badgeCode) {\r\n formattedData.badgeCode = Number(formattedData.badgeCode);\r\n }\r\n\r\n if (formattedData.name) {\r\n formattedData.name = formattedData.name.trim();\r\n }\r\n\r\n if (formattedData.mothersName) {\r\n formattedData.mothersName = formattedData.mothersName.trim();\r\n }\r\n\r\n if (formattedData.email) {\r\n formattedData.email = formattedData.email.trim();\r\n }\r\n\r\n return formattedData;\r\n };\r\n\r\n const validateEmailOnly = (data: UserData): boolean => {\r\n return !!(\r\n data.email &&\r\n !data.name &&\r\n !data.birthDate &&\r\n !data.badgeCode &&\r\n !data.document &&\r\n !data.mothersName\r\n );\r\n };\r\n\r\n /** Send user's information to validate their credentials and if it matches, the user will be able to reset their password\r\n * @param userData Contains all data that the backend needs to validate the user's credentials, like document, name, etc... */\r\n const checkUserCredentials = async (userData: UserData): Promise => {\r\n try {\r\n const userDataToSend = formattedUserData(userData);\r\n\r\n if (validateEmailOnly(userDataToSend)) {\r\n const response = await authenticationUseCases.recoverPasswordByEmail(\r\n userDataToSend.email\r\n );\r\n if (response.recoveryType === \"data\") {\r\n await router.push({\r\n name: \"home\",\r\n params: { resetPass: \"reset-password\", resetBy: \"identity\" }\r\n });\r\n } else {\r\n emailHasBeenSent.value = true;\r\n }\r\n } else {\r\n await authenticationUseCases.recoverPassword(userDataToSend.document);\r\n const token = await authenticationUseCases.checkUserCredentials(\r\n userDataToSend\r\n );\r\n await store.dispatch(\"miscellany_module/setSuccess\", {\r\n message: \"Usuário validado com sucesso!\",\r\n changed: true\r\n });\r\n await router.push({\r\n name: \"home\",\r\n params: { resetPass: \"reset-password\", resetBy: \"token\", token }\r\n });\r\n }\r\n } catch (e) {\r\n await dispatchError(e);\r\n } finally {\r\n enableBodyOverflow();\r\n }\r\n };\r\n\r\n async function recoverPasswordByDocument(userData: UserData) {\r\n try {\r\n const userDataToSend = formattedUserData(userData);\r\n const response = await authenticationUseCases.recoverPassword(\r\n userDataToSend.document\r\n );\r\n if (response.recoveryType === \"data\") {\r\n await router.push({\r\n name: \"home\",\r\n params: { resetPass: \"reset-password\", resetBy: \"identity\" }\r\n });\r\n } else {\r\n emailHasBeenSent.value = true;\r\n }\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n async function recoverPasswordByEmail(userData: UserData) {\r\n try {\r\n const response = await authenticationUseCases.recoverPasswordByEmail(\r\n userData.document\r\n );\r\n if (response.recoveryType === \"data\") {\r\n await router.push({\r\n name: \"home\",\r\n params: { resetPass: \"reset-password\", resetBy: \"identity\" }\r\n });\r\n } else {\r\n emailHasBeenSent.value = true;\r\n }\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n return {\r\n emailHasBeenSent,\r\n checkUserCredentials,\r\n recoverPasswordByDocument,\r\n recoverPasswordByEmail\r\n };\r\n }\r\n};\r\n","import { render } from \"./ResetPassword.vue?vue&type=template&id=3480a932&scoped=true&ts=true\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts\"\n\nimport \"./ResetPassword.vue?vue&type=style&index=0&id=3480a932&scoped=true&lang=css\"\nimport \"./ResetPassword.vue?vue&type=style&index=1&id=3480a932&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3480a932\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, vModelCheckbox as _vModelCheckbox, withDirectives as _withDirectives, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-31ac3396\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"reset-password\" }\nconst _hoisted_2 = { class: \"box-menu\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"form__transcription\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", { class: \"form__title\" }, \"Redefinição de senha\"),\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"form__description\" }, \" Detectamos que este é seu primeiro acesso. Crie uma nova senha. \")\n], -1))\nconst _hoisted_4 = { class: \"form__containers\" }\nconst _hoisted_5 = { class: \"container__terms\" }\nconst _hoisted_6 = {\n class: \"label__terms\",\n for: \"terms\"\n}\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\"Aceito os \")\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Termos de Uso e Política de Privacidade\")\nconst _hoisted_9 = { class: \"form__containers__box\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"label\", {\n for: \"form__containers__input\",\n class: \"form__containers__label\"\n}, \"Mostrar senha\", -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"input\", {\n form: \"new-password\",\n class: \"form__input form__input--submit\",\n type: \"submit\",\n value: \"Salvar e entrar\"\n}, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_InputPassword = _resolveComponent(\"InputPassword\")!\n const _component_ModernInput = _resolveComponent(\"ModernInput\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n class: \"btn--reset-pass-exit\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('closeModal')))\n }),\n _createElementVNode(\"form\", {\n id: \"new-password\",\n class: \"form\",\n onSubmit: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (_ctx.changePassword(_ctx.password, _ctx.confirmation)), [\"prevent\"]))\n }, [\n _hoisted_3,\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"terms\",\n type: \"checkbox\",\n class: \"input__terms\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.term) = $event))\n }, null, 512), [\n [_vModelCheckbox, _ctx.term]\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_router_link, {\n to: { name: 'terms' },\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n })\n ])\n ]),\n _createVNode(_component_InputPassword, {\n id: \"input-new-password\",\n form: \"new-password\",\n required: \"\",\n label: \"Senha\",\n typeInput: _ctx.currentType,\n \"model-value\": _ctx.password,\n \"onUpdate:model-value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.password) = $event))\n }, null, 8, [\"typeInput\", \"model-value\"]),\n _createVNode(_component_ModernInput, {\n form: \"new-password\",\n type: _ctx.currentType,\n id: \"confirmation-password\",\n label: \"Confirmar senha\",\n \"user-data\": _ctx.confirmation,\n \"onUpdate:user-data\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.confirmation) = $event)),\n required: \"\"\n }, null, 8, [\"type\", \"user-data\"]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"input\", {\n id: \"form__containers__input\",\n type: \"checkbox\",\n form: \"new-password\",\n class: \"form__containers__input\",\n onInput: _cache[4] || (_cache[4] = ($event: any) => (_ctx.togglePasswordVisibility($event)))\n }, null, 32),\n _hoisted_10\n ])\n ]),\n _hoisted_11\n ], 32)\n ])\n ]))\n}","\r\nimport { defineComponent, nextTick, onBeforeMount, Ref, ref } from \"vue\";\r\nimport { useRouter } from \"vue-router\";\r\nimport { useStore } from \"vuex\";\r\nimport ResetPasswordComponent from \"../application/forms/ResetPassword.vue\";\r\nimport ResetPasswordSuccess from \"../application/forms/ResetPasswordSuccess.vue\";\r\nimport ResetOptions from \"../application/forms/ResetOptions.vue\";\r\nimport IdentityForm from \"../application/forms/IdentityForm.vue\";\r\nimport { authenticationUseCases } from \"../../../../domain/usecase/impl/authenticationUseCases\";\r\nimport ModernInput from \"../application/forms/modernInput.vue\";\r\nimport InputPassword from \"../application/forms/InputPassword.vue\";\r\nimport { dispatchErrorBox } from \"../mixins\";\r\nimport { dispatchError } from \"../../utils/error_handling\";\r\n\r\nexport default defineComponent({\r\n components: {\r\n IdentityForm,\r\n ResetOptions,\r\n ResetPasswordSuccess,\r\n ResetPasswordComponent,\r\n ModernInput,\r\n InputPassword\r\n },\r\n setup() {\r\n /** Instance of the vuex store. */\r\n const store = useStore();\r\n\r\n /** An instance of a router. */\r\n const router = useRouter();\r\n\r\n /** The current type of the password input. */\r\n const currentType: Ref = ref(\"password\");\r\n\r\n /** The current password. */\r\n const password: Ref = ref(\"\");\r\n\r\n /** The current password confirmation. */\r\n const confirmation: Ref = ref(\"\");\r\n\r\n onBeforeMount(async () => {\r\n await nextTick(() => {\r\n const input = document.querySelector(\r\n \"[data-password-input]\"\r\n ) as HTMLInputElement;\r\n input.focus();\r\n });\r\n });\r\n\r\n const term: Ref = ref(false);\r\n\r\n const acceptTerm = async (): Promise => {\r\n await store.dispatch(\"authentication_module/acceptTerm\");\r\n };\r\n\r\n /** Changes the user's password to a new one. */\r\n const changePassword = async (\r\n password: string,\r\n confirmation: string\r\n ): Promise => {\r\n try {\r\n if (term.value) {\r\n await authenticationUseCases.changePassword(password, confirmation);\r\n await acceptTerm();\r\n await store.dispatch(\"miscellany_module/setSuccess\", {\r\n message: \"Senha alterada com sucesso!\",\r\n changed: true\r\n });\r\n await router.push({ name: \"dashboard\" });\r\n } else {\r\n await dispatchErrorBox(\r\n \"É necessário aceitar o Termo de Uso para prosseguir!\"\r\n );\r\n }\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n };\r\n\r\n /** Toggles the password visibility by switching the input type\r\n * from password to text and vice-versa. */\r\n const togglePasswordVisibility = async (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n const isVisible = input.checked;\r\n currentType.value = isVisible ? \"text\" : \"password\";\r\n };\r\n\r\n return {\r\n currentType,\r\n password,\r\n confirmation,\r\n term,\r\n changePassword,\r\n togglePasswordVisibility\r\n };\r\n }\r\n});\r\n","import { render } from \"./FirstLogin.vue?vue&type=template&id=31ac3396&scoped=true&ts=true\"\nimport script from \"./FirstLogin.vue?vue&type=script&lang=ts\"\nexport * from \"./FirstLogin.vue?vue&type=script&lang=ts\"\n\nimport \"./FirstLogin.vue?vue&type=style&index=0&id=31ac3396&scoped=true&lang=css\"\nimport \"./FirstLogin.vue?vue&type=style&index=1&id=31ac3396&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-31ac3396\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-45f36432\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"modal\" }\nconst _hoisted_2 = { class: \"modal__container\" }\nconst _hoisted_3 = /*#__PURE__*/_createStaticVNode(\"
Aceitar Termo de Uso e Política de Privacidade

1. Introdução

Olá, seja bem-vindo(a) à plataforma Decola! Ao acessar, você concorda em cumprir estes termos de uso e nossa política de privacidade. Estes documentos regem seu acesso e uso da plataforma, que oferece treinamentos gratuitos para os colaboradores. Os Termos estão disponíveis para todos, desta forma, não será aceito que alguém alegue desconhecimento das regras e obrigações.

2. Cadastro

Para acessar os treinamentos, é necessário um cadastro simples. Ao se cadastrar, você concorda em fornecer informações verdadeiras e atualizá-las conforme necessário. Os dados solicitados são:

  1. a) Nome
  2. b) Data de nascimento
  3. c) CPF (obrigatório)
  4. d) Email (obrigatório)
  5. e) Endereço
  6. f) Descrição pessoal (biografia)

Os dados pessoais identificados acima como “obrigatórios” são tratados para identificação e autenticação de cadastro em sistemas eletrônicos, nos termos da letra “g” do inciso II do artigo 11 da Lei Geral de Proteção de Dados Pessoais – Lei 13.709/2018. Caso você forneça dados que não sejam obrigatórios, você automaticamente consente que o Grupo Lince trate tais dados, nos termos deste documento.

3. Uso da Plataforma

A plataforma é destinada ao aprendizado e ao desenvolvimento pessoal. Qualquer uso fora deste escopo é proibido, como por exemplo a redistribuição comercial do conteúdo.

4. Política de Privacidade

- Coleta de Dados: informações básicas durante o cadastro.

- Uso de Dados: Utilizamos suas informações para personalizar sua experiência e comunicar novidades e oportunidades relacionadas à plataforma.

- Compartilhamento de Dados: Os dados pessoais relacionados neste documento não serão compartilhados, vendidos, ou de alguma forma transferidos a terceiros, exceto para cumprimento das obrigações legais e/ou regulatórias pela empresa, ou por ordem judicial.

- Segurança dos Dados: Empregamos medidas de segurança para proteger suas informações contra acesso não autorizado, alteração, divulgação ou destruição.

- Comentários: Os administradores da plataforma tem total acesso aos comentários feitos pelos usuários, incluindo comentários excluídos.

5. Cookies e Tecnologias Semelhantes

Utilizamos cookies para melhorar a experiência de navegação. Você pode controlar o uso de cookies através das configurações do seu navegador.

O que são cookies?

Como é prática comum em quase todos os sites profissionais, este site usa cookies, que são pequenos arquivos baixados no seu computador, para melhorar sua experiência. Esta página descreve quais informações eles coletam, como as usamos e por que às vezes precisamos armazenar esses cookies. Também compartilharemos como você pode impedir que esses cookies sejam armazenados, no entanto, isso pode prejudicar certos elementos da funcionalidade do site.

Como usamos os cookies?

Utilizamos cookies por vários motivos, detalhados abaixo. Infelizmente, na maioria dos casos, não existem opções padrão do setor para desativar os cookies sem desativar completamente a funcionalidade e os recursos que eles adicionam a este site. É recomendável que você deixe todos os cookies se não tiver certeza se precisa ou não deles, caso sejam usados para fornecer um serviço que você usa.

Desativar cookies:

Você pode impedir a configuração de cookies ajustando as configurações do seu navegador (consulte a Ajuda do navegador para saber como fazer isso). Esteja ciente de que a desativação de cookies afetará a funcionalidade deste e de muitos outros sites que você visita. A desativação de cookies geralmente resultará na desativação de determinadas funcionalidades e recursos deste site. Portanto, é recomendável que você não desative os cookies

6. Direitos de Propriedade Intelectual

Todo o conteúdo da plataforma, incluindo treinamentos, é propriedade do Decola ou de seus licenciantes. É concedida a você uma licença limitada, não exclusiva e intransferível para acessar e utilizar o conteúdo para fins pessoais e não comerciais.

7. Modificações nos Termos

Podemos modificar estes termos e a política de privacidade a qualquer momento. Sua continuidade no uso da plataforma após tais mudanças constitui sua aceitação dos novos termos.

8. Contato

Em caso de dúvidas sobre estes termos ou a política de privacidade, entre em contato conosco através do e-mail decola@lince.com.br .

9. Lei Aplicável e Jurisdição

Estes termos serão regidos e interpretados de acordo com as leis do Brasil, e qualquer disputa relacionada a estes termos estará sujeita à jurisdição exclusiva dos tribunais do Brasil.

Ao utilizar a plataforma Decola, você concorda com estes termos de uso e política de privacidade

GAMIFICAÇÃO da Plataforma Decola

1. Ganho de Decoins

Os usuários podem ganhar Decoins (moedas específicas e válidas somente na plataforma de educação Decola) ao completar missões, participar de treinamentos, e cumprindo regras criadas na plataforma. A quantidade de Decoins atribuída a cada atividade é pré-definida pela administração da plataforma e pode variar conforme o tipo e a complexidade da tarefa. O administrador da plataforma reserva-se o direito de definir um limite diário de ganho de Decoins para cada usuário.

2. Alterações nas Regras

As regras que regem o ganho ou a perda de Decoins, incluindo, mas não se limitando a valores de Decoins, métodos de aquisição e condições especiais, podem ser modificadas a qualquer momento pela administração da plataforma. A administração reserva-se o direito de ajustar as regras com o objetivo de garantir uma experiência equilibrada e justa para todos os usuários, bem como sustentável pela empresa. A implementação das mudanças pode ocorrer imediatamente ou em uma data futura especificada. As mudanças nas regras podem ou não ter efeito retroativo, conforme decidido pela administração.

3. Fraudes e Abusos

Qualquer tentativa de manipulação ou abuso do sistema de Decoins resultará na anulação dos pontos obtidos de forma indevida. A administração reserva-se o direito de investigar e tomar as ações necessárias em caso de suspeita de fraude ou comportamento impróprio.

4. Decisões da Administração

Qualquer decisão que a administração da plataforma tomar em relação ao sistema de Decoins, como ajuste de pontos, regras de ganho ou perda, ou resolução de disputas, é definitiva. Isso significa que, uma vez que a administração tomar uma decisão, essa decisão não pode ser contestada, questionada ou alterada pelos usuários. O objetivo das regras é promover uma experiência justa e envolvente para todos os usuários, sendo que qualquer mudança visa o aprimoramento da plataforma.

5. Condições Especiais

Em determinados eventos ou campanhas, regras temporárias e específicas para o ganho de Decoins podem ser estabelecidas. Essas regras serão comunicadas juntamente com os detalhes do evento e terão prioridade sobre as regras gerais durante o período de vigência.

6. Extinção de Decoins

A administração da plataforma possui a autoridade de extinguir os Decoins já acumulados pelos usuários. Motivos para a retirada de Decoins podem incluir, mas não estão limitados a, comportamentos inadequados, infrações das regras da plataforma, exploração de falhas no sistema, ou ajustes necessários para manter a competitividade justa entre os usuários. Além disso, a administração pode optar pela retirada de Decoins em casos onde a implementação da gamificação tenha insucesso ou não alcance os objetivos desejados, exigindo revisões ou ajustes no sistema.

Se ocorrer a retirada de Decoins, os usuários serão notificados com uma explicação clara do motivo, dependendo do caso.

Assim como nas outras regras, a retirada de Decoins não será passível de recurso ou contestação pelos usuários, e todas as decisões da administração a esse respeito são definitivas.

7. Expiração de Decoins

Os Decoins adquiridos pelo usuário podem expirar se não forem utilizados dentro de um período específico, conforme estabelecido pela plataforma.

8. Atividades Proibidas e Consequências

É estritamente proibido o usuário se envolver em qualquer atividade que seja ou inclua material:

  1. 1. Ofensivo, abusivo, difamatório, pornográfico, ameaçador ou obsceno
  2. 2. Ilegal ou que se destine a promover ou cometer ato ilegal de qualquer natureza, incluindo as violações de direitos de privacidade e direitos de propriedade do Decola.
  3. 3. Que contenha a sua senha, que, propositalmente, possua a senha de qualquer outro usuário, que, de forma intencional, inclua dados pessoais de terceiros ou que se destine a solicitar tais dados pessoais.
  4. 4. Que inclua conteúdo malicioso, como vírus, cavalos de Tróia ou malware, ou que, de qualquer forma, interfira no acesso de qualquer usuário ao Serviço.
  5. 5. Que personifique ou deturpe sua afiliação com outro usuário, pessoa ou entidade ou que seja fraudulento, falso, enganoso ou falacioso.
  6. 6. Que envolva atividades comerciais ou de vendas ilícitas
  7. 7. Que incite o ódio ou o preconceito a gênero, raça, classe social, orientação sexual, crença religiosa, entre outros.

O descumprimento dessas regras resultará em advertência ao usuário. As consequências para o descumprimento das regras incluem:

  1. 1. Advertência Formal: O usuário será notificado sobre a violação
  2. 2. Suspensão Temporária: A conta do usuário poderá ser suspensa por um período determinado.
  3. 3. Bloqueio Permanente: A conta do usuário poderá ser bloqueada de forma definitiva.
  4. 4. Restrição de Acessos: Limitação parcial das funcionalidades da plataforma.
  5. 5. Ações Legais: Em casos graves, podem ser tomadas medidas legais apropriadas.
  6. 6. Perda de Privilégios: Remoção de acesso a recursos ou benefícios exclusivos
  7. 7. Reversão de Conquistas: Anulação de pontos ou qualquer progresso adquirido na plataforma.
  8. 8. Notificação às Autoridades: Em casos de atividades ilegais, as autoridades competentes poderão ser notificadas
\", 2)\nconst _hoisted_5 = { class: \"container__terms\" }\nconst _hoisted_6 = {\n class: \"label__terms\",\n for: \"terms\"\n}\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\"Aceito os \")\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Termos de Uso e Política de Privacidade\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n class: \"btn--reset-pass-exit\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.closeModal && _ctx.closeModal(...args)))\n }),\n _hoisted_3,\n _createElementVNode(\"footer\", null, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"input\", {\n id: \"terms\",\n type: \"checkbox\",\n class: \"input__terms\",\n onChange: _cache[1] || (_cache[1] = ($event: any) => (_ctx.changeInputTerm($event.target)))\n }, null, 32),\n _createElementVNode(\"label\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_router_link, {\n to: { name: 'terms' },\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n })\n ])\n ])\n ])\n ])\n ]))\n}","\r\nimport {defineComponent } from \"vue\";\r\nimport { removeQuery } from \"../../utils/routing_utils\";\r\nimport {useRoute, useRouter} from \"vue-router\";\r\nimport {useStore} from \"vuex\";\r\nimport {dispatchError} from \"../../utils/error_handling\";\r\n\r\nexport default defineComponent({\r\n setup() {\r\n\r\n const router = useRouter();\r\n const store = useStore();\r\n const route = useRoute()\r\n\r\n const changeInputTerm = async (input: HTMLInputElement): Promise => {\r\n\r\n try {\r\n if (input.checked) {\r\n await closeModal();\r\n await acceptTerm();\r\n /** Redirect them to the app's dashboard. */\r\n if (route.query.redirect) {\r\n await router.push(route.query.redirect as string);\r\n } else {\r\n await router.push({ name: \"dashboard\" });\r\n }\r\n }\r\n } catch (e) {\r\n await dispatchError(e);\r\n }\r\n }\r\n const closeModal = async (): Promise => {\r\n await removeQuery(router, \"acceptTerm\")\r\n }\r\n\r\n const acceptTerm = async (): Promise => {\r\n await store.dispatch(\"authentication_module/acceptTerm\");\r\n };\r\n\r\n return {\r\n closeModal,\r\n changeInputTerm\r\n }\r\n }\r\n});\r\n","import { render } from \"./ModalTerm.vue?vue&type=template&id=45f36432&scoped=true&ts=true\"\nimport script from \"./ModalTerm.vue?vue&type=script&lang=ts\"\nexport * from \"./ModalTerm.vue?vue&type=script&lang=ts\"\n\nimport \"./ModalTerm.vue?vue&type=style&index=0&id=45f36432&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-45f36432\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../assets/static/landingPageGTop/redetop.png'\nimport _imports_1 from '../../assets/static/landingPageGTop/obencard.png'\nimport _imports_2 from '../../assets/static/landingPageGTop/preceiro.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-342e4eb1\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"supporters\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"logotipos\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n title: \"Rede Top\",\n class: \"logo\",\n alt: \"Rede Top\"\n }),\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_1,\n class: \"logo\",\n title: \"Obencard\",\n alt: \"Obencard\"\n }),\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_2,\n title: \"Preceiro\",\n alt: \"Preceiro\",\n class: \"logo\"\n })\n], -1))\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({});\r\n","import { render } from \"./Supporters.vue?vue&type=template&id=342e4eb1&scoped=true&ts=true\"\nimport script from \"./Supporters.vue?vue&type=script&lang=ts\"\nexport * from \"./Supporters.vue?vue&type=script&lang=ts\"\n\nimport \"./Supporters.vue?vue&type=style&index=0&id=342e4eb1&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-342e4eb1\"]])\n\nexport default __exports__","\r\nimport { defineComponent } from \"vue\";\r\nimport Call from \"../components/landingpageGTop/Call.vue\";\r\nimport Introduction from \"../components/landingpageGTop/Introduction.vue\";\r\nimport Mission from \"../components/landingpageGTop/Mission.vue\";\r\nimport ResetPassword from \"../components/landingpageGTop/ResetPassword.vue\";\r\nimport { useRouter } from \"vue-router\";\r\nimport FirstLogin from \"../components/landingpageGTop/FirstLogin.vue\";\r\nimport { enableBodyOverflow } from \"../components/mixins\";\r\nimport ModalTerm from \"../components/landingpageGTop/ModalTerm.vue\";\r\nimport Supporters from \"../components/landingpageGTop/Supporters.vue\";\r\nimport FooterGTop from \"../components/landingpageGTop/Footer.vue\";\r\n\r\nexport default defineComponent({\r\n components: {\r\n FooterGTop,\r\n Supporters,\r\n ModalTerm,\r\n Call,\r\n Introduction,\r\n Mission,\r\n ResetPassword,\r\n FirstLogin\r\n },\r\n\r\n setup() {\r\n /** Instance of a router. */\r\n const router = useRouter();\r\n\r\n /** Closes the currently open modal by redirecting user to the home page. */\r\n const closeModal = async () => {\r\n await router.push({ name: \"home\" });\r\n enableBodyOverflow();\r\n };\r\n\r\n return {\r\n closeModal\r\n };\r\n }\r\n});\r\n","import { render } from \"./LandingPageGTop.vue?vue&type=template&id=f003cb90&scoped=true&ts=true\"\nimport script from \"./LandingPageGTop.vue?vue&type=script&lang=ts\"\nexport * from \"./LandingPageGTop.vue?vue&type=script&lang=ts\"\n\nimport \"./LandingPageGTop.vue?vue&type=style&index=0&id=f003cb90&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f003cb90\"]])\n\nexport default __exports__","import {\r\n createRouter,\r\n createWebHashHistory,\r\n NavigationGuardNext,\r\n RouteLocationNormalized\r\n} from \"vue-router\";\r\nimport { handleAccess, handleUserAuthRedirect } from \"./middleware\";\r\nimport { Component } from \"vue\";\r\nimport Home from \"../../infrastructure/presentation/views/LandingPage.vue\";\r\nimport HomeCirculo from \"../../infrastructure/presentation/views/LandingPageCirculo.vue\";\r\nimport HomeGTop from \"../../infrastructure/presentation/views/LandingPageGTop.vue\";\r\n\r\nlet home;\r\nlet term;\r\nif (process.env.VUE_APP_THEME === \"circulo\") {\r\n home = {\r\n path: \"/home/:resetPass?/:resetBy?/:token?\",\r\n name: \"home\",\r\n component: HomeCirculo,\r\n meta: {\r\n isPublic: true\r\n }\r\n };\r\n term = {\r\n path: \"/terms\",\r\n name: \"terms\",\r\n meta: {\r\n isPublic: true\r\n },\r\n component: () =>\r\n import(\"../../infrastructure/presentation/CirculoTerms.vue\")\r\n };\r\n} else if (process.env.VUE_APP_THEME === \"gtop\") {\r\n home = {\r\n path: \"/home/:resetPass?/:resetBy?/:token?\",\r\n name: \"home\",\r\n component: HomeGTop,\r\n meta: {\r\n isPublic: true\r\n }\r\n };\r\n term = {\r\n path: \"/terms\",\r\n name: \"terms\",\r\n meta: {\r\n isPublic: true\r\n },\r\n component: () => import(\"../../infrastructure/presentation/Terms.vue\")\r\n };\r\n} else {\r\n home = {\r\n path: \"/home/:resetPass?/:resetBy?/:token?\",\r\n name: \"home\",\r\n component: Home,\r\n meta: {\r\n isPublic: true\r\n }\r\n };\r\n term = {\r\n path: \"/terms\",\r\n name: \"terms\",\r\n meta: {\r\n isPublic: true\r\n },\r\n component: () => import(\"../../infrastructure/presentation/Terms.vue\")\r\n };\r\n}\r\n\r\nconst routes = [\r\n /* Redirect to the landing page if it's an empty path. */\r\n {\r\n path: \"\",\r\n redirect: { name: \"dashboard\" }\r\n },\r\n /* Redirect to the 404 page when the path couldn't be found or doesn't exist. */\r\n {\r\n path: \"/:pathMatch(.*)*\",\r\n component: () => import(\"../../infrastructure/presentation/views/404.vue\")\r\n },\r\n /* Landing page */\r\n home,\r\n /* Terms of use and privacy policy */\r\n term,\r\n /* The actual application */\r\n {\r\n path: \"\",\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/components/application/moldure/Moldure.vue\"\r\n ),\r\n meta: {\r\n breadcrumbText: \"dashboard\",\r\n isPublic: true\r\n },\r\n children: [\r\n /* Dashboard router view */\r\n {\r\n path: \"dashboard\",\r\n beforeEnter: handleAccess,\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/RouterView.vue\"),\r\n meta: {\r\n isPublic: false\r\n },\r\n children: [\r\n /* Dashboard */\r\n {\r\n path: \"\",\r\n name: \"dashboard\",\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/Dashboard.vue\")\r\n },\r\n {\r\n path: \"onboarding/:step\",\r\n name: \"onboarding\",\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/Dashboard.vue\")\r\n },\r\n {\r\n path: \"statistics/:option?\",\r\n name: \"statistics\",\r\n component: (): Promise =>\r\n import(\r\n \"../../infrastructure/presentation/views/UserStatistics.vue\"\r\n )\r\n },\r\n {\r\n /* Course router view */\r\n path: \"course/:course_id\",\r\n props: true,\r\n meta: {\r\n breadcrumbText: \"curso\"\r\n },\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/RouterView.vue\"),\r\n children: [\r\n /* Course */\r\n {\r\n path: \"\",\r\n name: \"course\",\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/course/Course.vue\"\r\n )\r\n },\r\n /* Content router view */\r\n {\r\n path: \"content/:content_id\",\r\n props: true,\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/RouterView.vue\"\r\n ),\r\n children: [\r\n /* Content */\r\n {\r\n path: \"\",\r\n name: \"course_content\",\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/content/ContentView.vue\"\r\n )\r\n },\r\n /* Exercise */\r\n {\r\n path: \"questionnaire/:questionnaire_id/page/:page\",\r\n name: \"course_questionnaire\",\r\n props: true,\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/content/ContentView.vue\"\r\n )\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n /* Event router view */\r\n path: \"event/:event_id/class/:class_id\",\r\n props: true,\r\n meta: {\r\n breadcrumbText: \"evento\"\r\n },\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/RouterView.vue\"),\r\n children: [\r\n /* Event */\r\n {\r\n path: \"\",\r\n name: \"event\",\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/course/EventCourse.vue\"\r\n )\r\n },\r\n /* Content */\r\n {\r\n path: \"content/:content_id\",\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/RouterView.vue\"\r\n ),\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"event_content\",\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/content/ContentView.vue\"\r\n )\r\n },\r\n /* Exercise */\r\n {\r\n path: \"questionnaire/:questionnaire_id/page/:page\",\r\n name: \"event_questionnaire\",\r\n props: true,\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/content/ContentView.vue\"\r\n )\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n /* Training course router view */\r\n path: \"training-course/:trainingCourseID\",\r\n props: true,\r\n meta: {\r\n breadcrumbText: \"evento\"\r\n },\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/RouterView.vue\"),\r\n children: [\r\n /* Event */\r\n {\r\n path: \"\",\r\n name: \"training-course\",\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/course/TrainingCourse.vue\"\r\n )\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n /* Search view */\r\n {\r\n path: \"/search\",\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/RouterView.vue\"),\r\n meta: {\r\n isPublic: false\r\n },\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"global_search\",\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/SearchView.vue\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/details-course-tracks/:entityID?\",\r\n props: true,\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/RouterView.vue\"),\r\n meta: {\r\n isPublic: false\r\n },\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"details_course_tracks\",\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/SearchSchools.vue\"\r\n )\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/details-courses/:entityID?\",\r\n props: true,\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/RouterView.vue\"),\r\n meta: {\r\n isPublic: false\r\n },\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"details_courses\",\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/SearchCourseTrack.vue\"\r\n )\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/details-courses-instructors/:entityID?\",\r\n props: true,\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/RouterView.vue\"),\r\n meta: {\r\n isPublic: false\r\n },\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"details_courses_instructors\",\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/SearchInstructorsCourses.vue\"\r\n )\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/shop/page/:productsPage?\",\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/RouterView.vue\"),\r\n meta: {\r\n isPublic: false\r\n },\r\n children: [\r\n /* Shop */\r\n {\r\n path: \"\",\r\n name: \"shop\",\r\n beforeEnter: async (\r\n to: RouteLocationNormalized,\r\n from: RouteLocationNormalized,\r\n next: NavigationGuardNext\r\n ): Promise => {\r\n if (!to.params.productsPage) {\r\n await router.push({\r\n name: \"shop\",\r\n params: { productsPage: \"1\" }\r\n });\r\n }\r\n next();\r\n },\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/shop/Shop.vue\")\r\n },\r\n {\r\n path: \"bag/:orderID?\",\r\n name: \"bag\",\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/shop/Bag.vue\")\r\n },\r\n {\r\n path: \"favorites\",\r\n name: \"favorite\",\r\n beforeEnter: async (\r\n to: RouteLocationNormalized,\r\n from: RouteLocationNormalized,\r\n next: NavigationGuardNext\r\n ): Promise => {\r\n if (!to.query.page) {\r\n await router.push({\r\n name: \"favorite\",\r\n query: { page: 1 }\r\n });\r\n }\r\n next();\r\n },\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/shop/FavoriteList.vue\"\r\n )\r\n },\r\n {\r\n path: \"product/:productID?\",\r\n name: \"product_detail\",\r\n component: () =>\r\n import(\r\n \"../../infrastructure/presentation/views/shop/ProductDetail.vue\"\r\n )\r\n }\r\n ]\r\n },\r\n\r\n /** Profile router view */\r\n {\r\n path: \"profile/:option?\",\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/RouterView.vue\"),\r\n meta: {\r\n isPublic: false\r\n },\r\n children: [\r\n /* Profile */\r\n {\r\n path: \"\",\r\n name: \"profile\",\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/Profile.vue\")\r\n },\r\n\r\n /* Edit profile */\r\n {\r\n path: \"edit\",\r\n name: \"edit\",\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/EditProfile.vue\")\r\n },\r\n\r\n {\r\n path: \"statement\",\r\n name: \"statement\",\r\n component: () =>\r\n import(\"../../infrastructure/presentation/views/Statement.vue\")\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHashHistory(\"/student/\"),\r\n routes\r\n});\r\n\r\nrouter.beforeEach(\r\n async (\r\n routeTo: RouteLocationNormalized,\r\n routeFrom: RouteLocationNormalized,\r\n next: NavigationGuardNext\r\n ) => {\r\n await handleUserAuthRedirect(routeTo, routeFrom, next, router);\r\n }\r\n);\r\n\r\nexport default router;\r\n","module.exports = __webpack_public_path__ + \"img/banner-central.b6beb42a.jpg\";","module.exports = __webpack_public_path__ + \"img/tiktok.6e731fcd.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Dashboard.vue?vue&type=style&index=0&id=62cec597&lang=css\"","module.exports = __webpack_public_path__ + \"img/obencard.a764ac49.png\";","import {Annotation} from \"../../../domain/entities/entities\";\r\nimport {AnnotationRepository} from \"../repository\";\r\nimport http from \"../http/index\";\r\nimport {wrapErrorHandler} from \"../utils/wrap_error_handler\";\r\n\r\nclass _AnnotationRepository implements AnnotationRepository {\r\n listAnnotations(contentID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(`/api/decola/annotation/list/${contentID}`);\r\n return response.data.annotation;\r\n });\r\n }\r\n\r\n async saveAnnotation(payload: any): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http\r\n .post(`/api/decola/annotation/create/${payload.content_id}`, {\r\n annotation: payload.annotation,\r\n });\r\n return response.data.annotation;\r\n });\r\n }\r\n\r\n async editAnnotation(annotation: Annotation): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http\r\n .post(`/api/decola/annotation/edit/${annotation.id}`, {\r\n annotation: annotation,\r\n });\r\n return response.data;\r\n });\r\n }\r\n\r\n async deleteAnnotation(annotation: Annotation): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.delete(`/api/decola/annotation/delete/${annotation.id}`);\r\n return response.data;\r\n });\r\n }\r\n}\r\n\r\nexport const interfaceAnnotationRepository: AnnotationRepository = new _AnnotationRepository();\r\n","import {interfaceAnnotationRepository} from \"../../../infrastructure/repository/impl/annotation_repository\";\r\nimport {Annotation} from \"../../entities/entities\";\r\n\r\ninterface AnnotationUseCase {\r\n listAnnotations(videoID: number): Promise>;\r\n saveAnnotation(annotation: Annotation): Promise;\r\n editAnnotation(annotation: Annotation): Promise;\r\n deleteAnnotation(annotation: Annotation): Promise;\r\n}\r\n\r\nclass _AnnotationUseCase implements AnnotationUseCase {\r\n async listAnnotations(videoID: number): Promise> {\r\n return interfaceAnnotationRepository.listAnnotations(videoID);\r\n }\r\n\r\n async saveAnnotation(annotation: Annotation): Promise {\r\n return interfaceAnnotationRepository.saveAnnotation(annotation);\r\n }\r\n\r\n async editAnnotation(annotation: Annotation): Promise {\r\n return interfaceAnnotationRepository.editAnnotation(annotation);\r\n }\r\n\r\n async deleteAnnotation(annotation: Annotation): Promise {\r\n return interfaceAnnotationRepository.deleteAnnotation(annotation);\r\n }\r\n}\r\n\r\nexport const interfaceAnnotationUseCase: _AnnotationUseCase = new _AnnotationUseCase();\r\n","import { Annotation } from \"../../../../domain/entities/entities\";\r\nimport { interfaceAnnotationUseCase } from \"../../../../domain/usecase/impl/annotationUseCases\";\r\nimport { ActionContext } from \"vuex\";\r\n\r\nclass AnnotationState {\r\n annotations: Array = Array();\r\n timestamp: number = NaN;\r\n redirectTo: number = NaN;\r\n videoPauseRequested: boolean = false;\r\n}\r\n\r\nconst state = new AnnotationState();\r\nconst mutations = {\r\n LOAD_NOTE_LIST: (state: AnnotationState, annotations: Array) => {\r\n state.annotations = annotations;\r\n state.annotations.sort(function(a, b) {\r\n return a.seconds - b.seconds;\r\n });\r\n },\r\n SET_TIMESTAMP: (state: AnnotationState, timestamp: number) => {\r\n state.timestamp = timestamp;\r\n },\r\n REDIRECT_TO_TIMESTAMP: (state: AnnotationState, targetTimestamp: number) => {\r\n state.redirectTo = targetTimestamp;\r\n },\r\n TOGGLE_VIDEO_STATE: (state: AnnotationState, formState) => {\r\n if (formState == false) {\r\n state.videoPauseRequested = true;\r\n } else if (formState == true) {\r\n state.videoPauseRequested = false;\r\n }\r\n },\r\n ADD_NEW_ANNOTATION: (state: AnnotationState, annotation: Annotation) => {\r\n state.annotations.push(annotation);\r\n state.annotations.sort(function(a, b) {\r\n return a.seconds - b.seconds;\r\n });\r\n },\r\n REMOVE_ANNOTATION: (state: AnnotationState, annotation: Annotation) => {\r\n const index = state.annotations.indexOf(annotation);\r\n state.annotations.splice(index, 1);\r\n }\r\n};\r\nconst actions = {\r\n async loadAnnotations(\r\n { commit }: ActionContext,\r\n content_id: number\r\n ): Promise {\r\n const annotations: Array = await interfaceAnnotationUseCase.listAnnotations(\r\n content_id\r\n );\r\n commit(\"LOAD_NOTE_LIST\", annotations);\r\n return annotations;\r\n },\r\n\r\n redirectToTimestamp(\r\n { commit }: ActionContext,\r\n timestamp: number\r\n ): void {\r\n commit(\"REDIRECT_TO_TIMESTAMP\", timestamp);\r\n },\r\n\r\n changeVideoState(\r\n { commit }: ActionContext,\r\n formState: boolean\r\n ): void {\r\n commit(\"TOGGLE_VIDEO_STATE\", formState);\r\n },\r\n\r\n async editAnnotation(\r\n { commit }: ActionContext,\r\n annotation: Annotation\r\n ): Promise {\r\n await interfaceAnnotationUseCase.editAnnotation(annotation);\r\n },\r\n\r\n async saveAnnotation(\r\n { commit }: ActionContext,\r\n payload: any\r\n ): Promise {\r\n const annotation: Annotation = await interfaceAnnotationUseCase.saveAnnotation(\r\n payload\r\n );\r\n commit(\"ADD_NEW_ANNOTATION\", annotation);\r\n return annotation;\r\n },\r\n\r\n async removeAnnotation(\r\n { commit }: ActionContext,\r\n annotation: Annotation\r\n ): Promise {\r\n await interfaceAnnotationUseCase.deleteAnnotation(annotation);\r\n commit(\"REMOVE_ANNOTATION\", annotation);\r\n },\r\n\r\n async recoverPassword(\r\n { commit }: ActionContext,\r\n annotation: Annotation\r\n ): Promise {\r\n await interfaceAnnotationUseCase.deleteAnnotation(annotation);\r\n commit(\"REMOVE_ANNOTATION\", annotation);\r\n },\r\n\r\n setTimestamp(\r\n { commit }: ActionContext,\r\n timestamp: number\r\n ): void {\r\n commit(\"SET_TIMESTAMP\", timestamp);\r\n }\r\n};\r\nconst getters = {\r\n annotations: state => state.annotations,\r\n redirectTo: state => state.redirectTo,\r\n timestamp: state => state.timestamp,\r\n videoPauseRequested: state => state.videoPauseRequested\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","import { PasswordStrength, User } from \"../../../../domain/entities/entities\";\r\nimport { authenticationUseCases } from \"../../../../domain/usecase/impl/authenticationUseCases\";\r\nimport { resetStore } from \"../store\";\r\nimport { ActionContext } from \"vuex\";\r\n\r\nclass AuthenticationState {\r\n user: User = new User();\r\n isAdmin: boolean = false;\r\n isManager: boolean = false;\r\n\r\n /** Tells whether the password is visible or not. */\r\n isPasswordVisible: boolean = false;\r\n\r\n /** Entropy of the password. */\r\n passwordStrength: PasswordStrength = new PasswordStrength();\r\n}\r\n\r\nconst state = new AuthenticationState();\r\n\r\nconst mutations = {\r\n USER_IS_ADMIN(state: AuthenticationState, isAdmin: boolean): void {\r\n state.isAdmin = isAdmin;\r\n },\r\n USER_IS_MANAGER(state: AuthenticationState, isManager: boolean): void {\r\n state.isManager = isManager;\r\n },\r\n USER_IS_STUDENT(state: AuthenticationState): void {\r\n state.isAdmin = false;\r\n state.isManager = false;\r\n },\r\n\r\n /** Mutation responsible for setting the passwordStrength state to password strength.\r\n * @param state\r\n * @param passwordStrength result of the user's password strength. */\r\n SET_PASSWORD(\r\n state: AuthenticationState,\r\n passwordStrength: PasswordStrength\r\n ): void {\r\n state.passwordStrength = passwordStrength;\r\n },\r\n\r\n /** Mutation responsible for showing the password in the input. */\r\n SHOW_PASSWORD(state: AuthenticationState) {\r\n state.isPasswordVisible = true;\r\n },\r\n\r\n /** Mutation responsible for hiding the password in the input. */\r\n HIDE_PASSWORD(state: AuthenticationState) {\r\n state.isPasswordVisible = false;\r\n }\r\n};\r\n\r\nconst actions = {\r\n async login(\r\n ctx: ActionContext,\r\n user: User\r\n ): Promise {\r\n return await authenticationUseCases.login(user);\r\n //await ctx.dispatch(\"getUserType\");\r\n // return loginRequestOutcome;\r\n },\r\n\r\n async finishOnBoarding(\r\n { commit }: ActionContext,\r\n user: User\r\n ): Promise {\r\n await authenticationUseCases.finishOnBoarding(user);\r\n },\r\n\r\n async registerNewUser(\r\n { commit }: ActionContext,\r\n user: User\r\n ): Promise {\r\n await authenticationUseCases.register(user);\r\n },\r\n\r\n async getUserType({\r\n commit\r\n }: ActionContext): Promise {\r\n const userType = await authenticationUseCases.getUserType();\r\n switch (userType) {\r\n case 1:\r\n commit(\"USER_IS_STUDENT\");\r\n break;\r\n case 2:\r\n commit(\"USER_IS_ADMIN\", true);\r\n break;\r\n case 4:\r\n commit(\"USER_IS_MANAGER\", true);\r\n break;\r\n default:\r\n commit(\"USER_IS_STUDENT\");\r\n }\r\n },\r\n\r\n async logout(): Promise {\r\n await resetStore();\r\n await authenticationUseCases.logout();\r\n },\r\n\r\n /** Action responsible for resetting password strength.\r\n * @param commit\r\n * @param password password entered by the user. */\r\n async validatePasswordStrength(\r\n { commit }: ActionContext,\r\n password: string\r\n ): Promise {\r\n const response: PasswordStrength = await authenticationUseCases.validatePasswordStrength(\r\n password\r\n );\r\n commit(\"SET_PASSWORD\", response);\r\n },\r\n\r\n async acceptTerm({\r\n commit\r\n }: ActionContext): Promise {\r\n try {\r\n await authenticationUseCases.acceptTerm();\r\n } catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n },\r\n\r\n /** Action responsible for clearing the passwordStrength state. */\r\n clearPasswordStrength({\r\n commit\r\n }: ActionContext): void {\r\n commit(\"SET_PASSWORD\", new PasswordStrength());\r\n },\r\n\r\n /** Action responsible for showing the password in the input. */\r\n showPassword({ commit }): void {\r\n commit(\"SHOW_PASSWORD\");\r\n },\r\n\r\n /** Action responsible for hiding the password in the input. */\r\n hidePassword({ commit }): void {\r\n commit(\"HIDE_PASSWORD\");\r\n }\r\n};\r\n\r\nconst getters = {\r\n isAdmin: (state): boolean => state.isAdmin,\r\n isManager: (state): boolean => state.isManager,\r\n\r\n /** Gets the current state of the password (whether it is visible or not). */\r\n isPasswordVisible: (state): boolean => state.isPasswordVisible,\r\n\r\n /** Password strength getter. */\r\n passwordStrength: (state): PasswordStrength => state.passwordStrength\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","import {School} from \"../../../domain/entities/entities\";\r\nimport {SchoolRepository} from \"../repository\";\r\nimport http from \"../http/index\";\r\nimport {wrapErrorHandler} from \"../utils/wrap_error_handler\";\r\nimport {formatSearchQuery} from \"../../presentation/components/mixins\";\r\n\r\nclass _SchoolRepository implements SchoolRepository {\r\n get(schoolID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http\r\n .get(`/api/decola/school/${schoolID}`);\r\n return response.data.school;\r\n });\r\n }\r\n\r\n list(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http\r\n .get(\"/api/decola/list/schools\");\r\n return response.data.schools;\r\n });\r\n }\r\n listBySearch(search: string): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http\r\n .get(`/api/decola/school/globalSearch?search=${formatSearchQuery(search)}`);\r\n return response.data;\r\n });\r\n }\r\n}\r\n\r\nexport const interfaceSchoolRepository: SchoolRepository = new _SchoolRepository();\r\n","import {interfaceSchoolRepository} from \"../../../infrastructure/repository/impl/school_repository\";\r\nimport {School} from \"../../entities/entities\";\r\n\r\ninterface SchoolUseCases {\r\n get(schoolID: number): Promise;\r\n list(): Promise;\r\n listBySearch(search: string): Promise;\r\n}\r\n\r\nclass _SchoolUseCases implements SchoolUseCases {\r\n async get(schoolID: number): Promise {\r\n return await interfaceSchoolRepository.get(schoolID);\r\n }\r\n\r\n async list(): Promise {\r\n return await interfaceSchoolRepository.list();\r\n }\r\n\r\n async listBySearch(search: string): Promise {\r\n return await interfaceSchoolRepository.listBySearch(search);\r\n }\r\n}\r\n\r\nexport const InterfaceSchoolUseCases: SchoolUseCases = new _SchoolUseCases();\r\n","import {CourseTrackRepository} from \"../repository\";\r\nimport http from \"../http/index\";\r\nimport {CourseTrack} from \"../../../domain/entities/entities\";\r\nimport {wrapErrorHandler} from \"../utils/wrap_error_handler\";\r\nimport {formatSearchQuery} from \"../../presentation/components/mixins\";\r\n\r\nclass _CourseTrackRepository implements CourseTrackRepository {\r\n async get(courseTrackID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http\r\n .get(`/api/decola/courseTrack/${courseTrackID}`);\r\n return response.data.courseTrack;\r\n });\r\n }\r\n\r\n list(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http\r\n .get(\"/api/decola/courseTrack/list\");\r\n return response.data.courseTracks;\r\n });\r\n }\r\n\r\n listBySchool(schoolID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http\r\n .get(`/api/decola/courseTrack/school/${schoolID}`);\r\n return response.data.courseTracks;\r\n });\r\n }\r\n\r\n listBySearch(search: string): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http\r\n .get(`/api/decola/courseTrack/globalSearch?search=${formatSearchQuery(search)}`);\r\n return response.data;\r\n });\r\n }\r\n}\r\n\r\nexport const interfaceCourseTrackRepository: CourseTrackRepository = new _CourseTrackRepository();\r\n","import {interfaceCourseTrackRepository} from \"../../../infrastructure/repository/impl/courseTrack_repository\";\r\nimport {CourseTrack} from \"../../entities/entities\";\r\n\r\ninterface CourseTrackUseCases {\r\n get(courseTrackID: number): Promise;\r\n list(): Promise;\r\n listBySchool(schoolID: number): Promise;\r\n listBySearch(search: string): Promise;\r\n}\r\n\r\nclass _CourseTrackUseCases implements CourseTrackUseCases {\r\n async get(courseTrackID: number): Promise {\r\n return await interfaceCourseTrackRepository.get(courseTrackID);\r\n }\r\n\r\n async list(): Promise {\r\n return await interfaceCourseTrackRepository.list();\r\n }\r\n\r\n async listBySchool(schoolID: number): Promise {\r\n return await interfaceCourseTrackRepository.listBySchool(schoolID);\r\n }\r\n\r\n async listBySearch(search: string): Promise {\r\n return await interfaceCourseTrackRepository.listBySearch(search);\r\n }\r\n}\r\n\r\nexport const InterfaceCourseTrackUseCases: CourseTrackUseCases = new _CourseTrackUseCases();\r\n","import {CourseTrack, School} from \"../../../../domain/entities/entities\";\r\nimport {InterfaceSchoolUseCases} from \"../../../../domain/usecase/impl/schoolUseCases\";\r\nimport {InterfaceCourseTrackUseCases} from \"../../../../domain/usecase/impl/courseTrackUseCases\";\r\nimport {ActionContext} from \"vuex\";\r\n\r\nclass CategoriesState {\r\n schools: School[] = Array();\r\n school: School = new School();\r\n courseTracks: CourseTrack[] = Array();\r\n}\r\n\r\nconst state = new CategoriesState();\r\n\r\nconst mutations = {\r\n LIST_SCHOOLS(state: CategoriesState, schools: School[]): void {\r\n state.schools = schools;\r\n },\r\n\r\n GET_SCHOOL(state: CategoriesState, school: School): void {\r\n state.school = school;\r\n },\r\n\r\n LIST_COURSE_TRACKS(\r\n state: CategoriesState,\r\n courseTracks: CourseTrack[]\r\n ): void {\r\n state.courseTracks = courseTracks;\r\n }\r\n};\r\n\r\nconst actions = {\r\n async loadSchools({ commit }): Promise {\r\n const schools = await InterfaceSchoolUseCases.list();\r\n commit(\"LIST_SCHOOLS\", schools);\r\n },\r\n async loadSchool({ commit }: any, school_id: number): Promise {\r\n const school = await InterfaceSchoolUseCases.get(school_id);\r\n commit(\"GET_SCHOOL\", school);\r\n },\r\n\r\n async loadCourseTracks({ commit }: any): Promise {\r\n const courseTracks = await InterfaceCourseTrackUseCases.list();\r\n commit(\"LIST_COURSE_TRACKS\", courseTracks);\r\n return courseTracks;\r\n },\r\n\r\n async loadCourseTrack({ commit }, id: number): Promise {\r\n const courseTrack = await InterfaceCourseTrackUseCases.get(id);\r\n commit(\"GET_COURSE_TRACK\", courseTrack);\r\n return courseTrack;\r\n },\r\n\r\n async loadCourseTracksOfSchool(\r\n { commit }: ActionContext,\r\n school_id: number\r\n ): Promise {\r\n const courseTracks = await InterfaceCourseTrackUseCases.listBySchool(school_id);\r\n commit(\"LIST_COURSE_TRACKS\", courseTracks);\r\n return courseTracks;\r\n }\r\n};\r\n\r\nconst getters = {\r\n schools: (state: CategoriesState) => state.schools,\r\n courseTracks: (state: CategoriesState) => state.courseTracks\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","import {ContentState} from \"./content_module\";\r\nimport {ActionContext} from \"vuex\";\r\nimport {Content} from \"../../../../presentation/views/content/helpers\";\r\n\r\ntype ContentControlActionContext = ActionContext\r\n\r\nclass ContentControlState {\r\n navigableContents: Content[] = [];\r\n previousIndex: number = -1;\r\n currentIndex: number = -1;\r\n nextIndex: number = -1;\r\n lastIndex: number = -1;\r\n lockedIndex: number = -1;\r\n}\r\n\r\nconst state = new ContentControlState();\r\n\r\nconst mutations = {\r\n SET_NAVIGABLE_CONTENTS(state: ContentControlState, contents: Content[]) {\r\n state.navigableContents = contents;\r\n },\r\n SET_PREVIOUS_INDEX(state: ContentControlState, index: number) {\r\n state.previousIndex = index;\r\n },\r\n SET_CURRENT_INDEX(state: ContentControlState, index: number) {\r\n state.currentIndex = index;\r\n },\r\n SET_NEXT_INDEX(state: ContentControlState, index: number) {\r\n state.nextIndex = index;\r\n },\r\n SET_LAST_INDEX(state: ContentControlState, index: number) {\r\n state.lastIndex = index;\r\n },\r\n SET_LOCKED_INDEX(state: ContentControlState, index: number) {\r\n state.lockedIndex = index;\r\n },\r\n};\r\n\r\n/** Return only contents available to read from the content_provider list. */\r\nconst extractNavigableContents = (contents: Content[]): Content[] => contents.filter((content) => {\r\n return content.isReleased && !content.isBlocked;\r\n});\r\n\r\nconst actions = {\r\n reload(ctx: ContentControlActionContext) {\r\n const content = ctx.rootGetters[\"content_module/currentContent\"];\r\n const rawContents = ctx.rootGetters[\"content_module/contents\"];\r\n const contents = extractNavigableContents(rawContents);\r\n\r\n const lastIndex = contents.length - 1;\r\n\r\n const currentIndex = contents.findIndex((it) => it.id === content.id);\r\n let lockIndex = -1;\r\n\r\n rawContents.forEach((it, index) => {\r\n /** set index of the locked content. */\r\n if (it.isBlocked && lockIndex === -1) {\r\n lockIndex = index;\r\n }\r\n });\r\n\r\n const nextIndex = currentIndex + 1 > lastIndex ? lastIndex : currentIndex + 1;\r\n const previousIndex = currentIndex - 1 < 0 ? 0 : currentIndex - 1;\r\n\r\n ctx.commit(\"SET_NAVIGABLE_CONTENTS\", contents);\r\n ctx.commit(\"SET_PREVIOUS_INDEX\", previousIndex);\r\n ctx.commit(\"SET_CURRENT_INDEX\", currentIndex);\r\n ctx.commit(\"SET_NEXT_INDEX\", nextIndex);\r\n ctx.commit(\"SET_LAST_INDEX\", lastIndex);\r\n ctx.commit(\"SET_LOCKED_INDEX\", lockIndex);\r\n },\r\n\r\n async loadPrevious(ctx: ContentControlActionContext) {\r\n try {\r\n const previousContent = ctx.state.navigableContents[ctx.state.previousIndex];\r\n await ctx.dispatch(\"content_module/setCurrentContent\", previousContent.id, {root: true});\r\n } catch (e) {\r\n console.error(\"[loadPrevious] Error setCurrentContent \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async loadNext(ctx: ContentControlActionContext) {\r\n try {\r\n const nextContent = ctx.state.navigableContents[ctx.state.nextIndex];\r\n await ctx.dispatch(\"content_module/setCurrentContent\", nextContent.id, {root: true});\r\n } catch (e) {\r\n console.error(\"[loadNext] Error setCurrentContent \", e);\r\n throw e;\r\n }\r\n }\r\n};\r\n\r\nconst getters = {\r\n hasNext: (state: ContentControlState) => state.currentIndex < state.lastIndex,\r\n isNextLocked: (state: ContentControlState) => {\r\n return state.currentIndex + 1 === state.lockedIndex\r\n },\r\n hasPrevious: (state: ContentControlState) => state.currentIndex > 0,\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters,\r\n}","import { ActionContext } from \"vuex\";\r\nimport {\r\n Rating,\r\n RatingList,\r\n UserLikes\r\n} from \"../../../../../domain/entities/rating\";\r\nimport {\r\n ContentState,\r\n getContentProvider,\r\n getCurrentContent\r\n} from \"./content_module\";\r\nimport Login from \"../../../../presentation/components/landingpage/Login.vue\";\r\n\r\nclass RatingState {\r\n ratingsList: RatingList = new RatingList();\r\n}\r\n\r\nconst state = new RatingState();\r\ntype RatingActionContext = ActionContext;\r\n\r\nconst mutations = {\r\n SET_RATINGS(state: RatingState, ratings: RatingList) {\r\n for (let rating of ratings.ratings) {\r\n state.ratingsList.ratings.push(rating);\r\n }\r\n\r\n state.ratingsList.haveRatings = ratings.haveRatings;\r\n },\r\n SET_CLEAR_RATINGS(state: RatingState) {\r\n state.ratingsList = new RatingList([], false);\r\n },\r\n\r\n ADD_RATING(state: RatingState, rating: Rating) {\r\n state.ratingsList.ratings.unshift(rating);\r\n },\r\n\r\n PATCH_LIKE_RATING(\r\n state: RatingState,\r\n payload: { id: number; userID: number; isLike: boolean }\r\n ) {\r\n const patchIndex = state.ratingsList.ratings.findIndex(\r\n item => item.id === payload.id\r\n );\r\n\r\n if (payload.isLike) {\r\n state.ratingsList.ratings[patchIndex].likes.push(\r\n new UserLikes(payload.userID)\r\n );\r\n } else {\r\n const userIndex = state.ratingsList.ratings[patchIndex].likes.findIndex(\r\n item => item.userID === payload.userID\r\n );\r\n state.ratingsList.ratings[patchIndex].likes.splice(userIndex, 1);\r\n }\r\n },\r\n\r\n PATCH_RATING(state: RatingState, id: number) {\r\n const patchIndex = state.ratingsList.ratings.findIndex(\r\n item => item.id === id\r\n );\r\n\r\n state.ratingsList.ratings.splice(patchIndex, 1);\r\n }\r\n};\r\n\r\nconst actions = {\r\n async loadRatings(ctx: RatingActionContext, index?: number) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n const response: RatingList =\r\n (await provider.getAllRatings(content.id, index)) ?? new RatingList();\r\n\r\n ctx.commit(\"SET_RATINGS\", response);\r\n } catch (e) {\r\n console.error(\"[loadRatings] Error getAllRatings \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async clearRatings(ctx: RatingActionContext) {\r\n try {\r\n ctx.commit(\"SET_CLEAR_RATINGS\");\r\n } catch (e) {\r\n console.error(\"[loadRatings] Error getAllRatings \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async createRating(ctx: RatingActionContext, rating: Rating) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n const response = await provider.createRating(content.id, rating);\r\n ctx.commit(\"ADD_RATING\", response);\r\n } catch (e) {\r\n console.error(\"[createRating] Error createRating \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async likeRating(\r\n ctx: RatingActionContext,\r\n payload: { ratingID: number; userID: number }\r\n ) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n await provider.likeRating(payload.ratingID);\r\n ctx.commit(\"PATCH_LIKE_RATING\", {\r\n id: payload.ratingID,\r\n userID: payload.userID,\r\n isLike: true\r\n });\r\n } catch (e) {\r\n console.error(\"[likeRating] Error likeRating \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async removeLikeRating(\r\n ctx: RatingActionContext,\r\n payload: { ratingID: number; userID: number }\r\n ) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n await provider.removeLikeRating(payload.ratingID);\r\n ctx.commit(\"PATCH_LIKE_RATING\", {\r\n id: payload.ratingID,\r\n userID: payload.userID,\r\n isLike: false\r\n });\r\n } catch (e) {\r\n console.error(\"[removeLikeRating] Error removeLikeRating \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async deleteRating(ctx: RatingActionContext, ratingID: number) {\r\n try {\r\n\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n await provider.deleteRating(content.id, ratingID);\r\n\r\n ctx.commit(\"PATCH_RATING\", ratingID);\r\n } catch (e) {\r\n console.error(\"[deleteRating] Error deleteRating \", e);\r\n throw e;\r\n }\r\n }\r\n};\r\n\r\nconst getters = {\r\n ratings: (state: RatingState) => state.ratingsList\r\n};\r\n\r\nconst modules = {};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n getters,\r\n modules\r\n};\r\n","import {ActionContext} from \"vuex\";\r\nimport {ContentState} from \"./content_module\";\r\nimport {ContentProvider,} from \"../../../../../domain/entities/content-provider/content-provider\";\r\nimport {Content, ContentDoubt} from \"../../../../presentation/views/content/helpers\";\r\n\r\nclass ContentDoubtState {\r\n contentDoubts: ContentDoubt[] = [];\r\n}\r\n\r\nconst state = new ContentDoubtState();\r\ntype DoubtActionContext = ActionContext;\r\n\r\nconst mutations = {\r\n SET_CONTENT_DOUBTS(state: ContentDoubtState, contentDoubts: ContentDoubt[]) {\r\n state.contentDoubts = contentDoubts;\r\n },\r\n ADD_DOUBT(state: ContentDoubtState, contentDoubt: ContentDoubt) {\r\n state.contentDoubts?.unshift(contentDoubt);\r\n },\r\n};\r\n\r\nconst getDependencies = ({rootGetters}: DoubtActionContext): { provider: ContentProvider, content: Content } => {\r\n const provider = rootGetters[\"content_module/contentProvider\"];\r\n const content = rootGetters[\"content_module/currentContent\"];\r\n\r\n if (!provider || !content) {\r\n throw new Error(\"ContentState is not ready\");\r\n }\r\n\r\n return {provider, content};\r\n}\r\n\r\nconst actions = {\r\n async loadDoubts(ctx: DoubtActionContext) {\r\n try {\r\n const {provider, content} = getDependencies(ctx);\r\n const contentDoubts = await provider.getAllDoubts(content.id) ?? [];\r\n ctx.commit(\"SET_CONTENT_DOUBTS\", contentDoubts);\r\n } catch (e) {\r\n console.error(\"[loadRatings] Error getAllDoubts \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async createDoubt(ctx: DoubtActionContext, doubt: ContentDoubt) {\r\n try {\r\n const {provider, content} = getDependencies(ctx);\r\n const newDoubt = await provider.createDoubt(content.id, doubt);\r\n ctx.commit(\"ADD_DOUBT\", newDoubt);\r\n } catch (e) {\r\n console.error(\"[createDoubt] Error createDoubt \", e);\r\n throw e;\r\n }\r\n },\r\n};\r\n\r\nconst getters = {\r\n contentDoubts: (state: ContentDoubtState) => state.contentDoubts ?? [],\r\n};\r\n\r\nconst modules = {}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n getters,\r\n modules,\r\n};","import {ContentProvider} from \"../../../../../domain/entities/content-provider/content-provider\";\r\nimport {Content} from \"../../../../presentation/views/content/helpers\";\r\nimport {ContentProgressStatus} from \"../../../../../domain/entities/content/content\";\r\nimport {getContentProvider, getCurrentContent} from \"./content_module\";\r\nimport {ActionContext} from \"vuex\";\r\nimport {PlayerState} from \"./player\";\r\n\r\nexport class ProgressState {\r\n progressInterval: number | undefined = undefined;\r\n}\r\n\r\nconst state = new ProgressState();\r\ntype ProgressActionContext = ActionContext\r\n\r\nconst mutations = {\r\n SET_PROGRESS_INTERVAL(state: ProgressState, progressInterval: number | undefined) {\r\n state.progressInterval = progressInterval;\r\n },\r\n\r\n CLEAR_PROGRESS_INTERVAL(state: ProgressState) {\r\n clearInterval(state.progressInterval);\r\n },\r\n};\r\n\r\nconst actions = {\r\n async startProgressRoutine(ctx: ProgressActionContext) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n\r\n if (content.status.progress === ContentProgressStatus.FINISHED) return;\r\n\r\n if (!content.minDuration && !content.status.finishedAt) {\r\n await provider.finishContent(content.id);\r\n await ctx.dispatch(\"content_module/loadAllContents\", null, {root: true});\r\n return;\r\n }\r\n if (!content.minDuration) return;\r\n\r\n const interval = setInterval(async () => await saveProgress(ctx, provider, content), 15000);\r\n ctx.commit(\"SET_PROGRESS_INTERVAL\", interval);\r\n } catch (e) {\r\n console.error(\"[startProgressRoutine] Error saveProgress\", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async stopProgressRoutine(ctx: ProgressActionContext) {\r\n try {\r\n ctx.commit(\"CLEAR_PROGRESS_INTERVAL\");\r\n } catch (e) {\r\n console.error(\"[stopProgressRoutine] Error CLEAR_PROGRESS_INTERVAL\", e);\r\n throw e;\r\n }\r\n },\r\n};\r\n\r\n/** TODO: REFACTOR -> SINGLE RESPONSIBILITY. */\r\n/** Save the content progress based on the content's minimum duration.\r\n * Update the content progress on the content list.\r\n * Finish the content if user reach the min duration.\r\n * @see Content.minDuration */\r\nconst saveProgress = async (ctx: ProgressActionContext, provider: ContentProvider, content: Content): Promise => {\r\n try {\r\n if (content.status.progress !== ContentProgressStatus.REACH_MIN) {\r\n const playbackRate: number = ctx.rootGetters[\"content_module/player/playbackRate\"];\r\n content.status.progress = await provider.saveProgress(content.id, playbackRate);\r\n }\r\n\r\n if (content.status.progress === ContentProgressStatus.REACH_MIN) {\r\n await provider.finishContent(content.id);\r\n ctx.commit(\"CLEAR_PROGRESS_INTERVAL\");\r\n await ctx.dispatch(\"content_module/loadAllContents\", null, {root: true})\r\n } else {\r\n await ctx.dispatch(\"content_module/updateContentOnList\", content, {root: true});\r\n }\r\n\r\n } catch (e) {\r\n console.error(\"[saveProgress] Error \", e);\r\n throw e;\r\n }\r\n};\r\n\r\nconst getters = {};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n getters,\r\n}","import {getContentProvider, getCurrentContent} from \"./content_module\";\r\nimport {ActionContext} from \"vuex\";\r\nimport {PlayerState} from \"./player\";\r\nimport {ScormCheckpoint} from \"../../../../presentation/views/content/helpers\";\r\n\r\nexport class CheckpointState {}\r\n\r\nconst state = new CheckpointState();\r\ntype ProgressActionContext = ActionContext;\r\n\r\nconst mutations = {};\r\n\r\nconst actions = {\r\n async saveCheckpointSeconds(ctx: ProgressActionContext, timestamp: number) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n await provider.saveCheckpointSeconds(content.id, timestamp);\r\n } catch (e) {\r\n console.error(\"[saveCheckpointSeconds] Error SET_CHECKPOINT_INTERVAL\", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async saveCheckpointSCORM(ctx: ProgressActionContext, scormCheckpoint: ScormCheckpoint) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n await provider.saveCheckpointSCORM(content.id, scormCheckpoint);\r\n } catch (e) {\r\n console.error(\"[saveCheckpointSCORM] Error \", e);\r\n throw e;\r\n }\r\n }\r\n};\r\n\r\nconst getters = {};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n getters,\r\n}","import {ActionContext} from \"vuex\";\r\nimport {ContentState} from \"./content_module\";\r\nimport {ContentProvider} from \"../../../../../domain/entities/content-provider/content-provider\";\r\nimport {Content} from \"../../../../presentation/views/content/helpers\";\r\nimport progress from \"./progress\";\r\nimport checkpoint from \"./checkpoint\";\r\n\r\nexport class PlayerState {\r\n contentProvider: ContentProvider | null = null;\r\n currentContent: Content | null = null;\r\n playbackRate: number = 1;\r\n lastPausedTime: number | undefined;\r\n}\r\n\r\nconst state = new PlayerState();\r\n\r\ntype PlayerActionContext = ActionContext;\r\n\r\nconst mutations = {\r\n SET_CONTENT_PROVIDER(state: PlayerState, contentProvider: ContentProvider) {\r\n state.contentProvider = contentProvider;\r\n },\r\n\r\n SET_CURRENT_CONTENT(state: PlayerState, currentContent: Content) {\r\n state.currentContent = currentContent;\r\n },\r\n\r\n SET_PLAYBACK_RATE(state: PlayerState, playbackRate: number) {\r\n state.playbackRate = playbackRate;\r\n },\r\n\r\n SET_LAST_PAUSED_TIME(state: PlayerState, lastPausedTime: number) {\r\n state.lastPausedTime = lastPausedTime;\r\n },\r\n}\r\n\r\nconst actions = {\r\n async setPlaybackRate({commit}: PlayerActionContext, playbackRate: number) {\r\n commit(\"SET_PLAYBACK_RATE\", playbackRate);\r\n },\r\n\r\n async setLastPausedTime({commit}: PlayerActionContext, lastPausedTime: number) {\r\n commit(\"SET_LAST_PAUSED_TIME\", lastPausedTime);\r\n },\r\n};\r\n\r\nconst getters = {\r\n contentProvider: (state: PlayerState): ContentProvider | null => state.contentProvider,\r\n currentContent: (state: PlayerState): Content | null => state.currentContent,\r\n playbackRate: (state: PlayerState): number => state.playbackRate,\r\n lastPausedTime: (state: PlayerState): number | undefined => state.lastPausedTime,\r\n};\r\n\r\nconst modules = {\r\n progress,\r\n checkpoint,\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n getters,\r\n modules,\r\n}","import { ActionContext } from \"vuex\";\r\nimport { ContentState } from \"./content_module\";\r\nimport { watch } from \"vue\";\r\n\r\nexport class CountdownState {\r\n timer: number | undefined;\r\n}\r\n\r\nconst state = new CountdownState();\r\n\r\nconst mutations = {\r\n\r\n};\r\n\r\ntype CountdownActionContext = ActionContext;\r\nconst actions = {\r\n\r\n};\r\n\r\nconst gettters = {\r\n\r\n};\r\n\r\nexport default {\r\n namespace: true,\r\n state,\r\n mutations,\r\n actions,\r\n gettters,\r\n}","import {ActionContext} from \"vuex\";\r\nimport {ContentState, getContentProvider, getCurrentContent} from \"./content_module\";\r\nimport {ContentComplement} from \"../../../../presentation/views/content/helpers\";\r\n\r\nclass ComplementState {\r\n complements: ContentComplement[] = [];\r\n}\r\n\r\nconst state = new ComplementState();\r\ntype ContentComplementActionContext = ActionContext;\r\n\r\nconst mutations = {\r\n SET_COMPLEMENTS(state: ComplementState, complements: ContentComplement[]) {\r\n state.complements = complements;\r\n }\r\n};\r\n\r\nconst actions = {\r\n async loadComplements(ctx: ContentComplementActionContext) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n const complements = await provider.getAllComplements(content.id) ?? [];\r\n ctx.commit(\"SET_COMPLEMENTS\", complements);\r\n } catch (e) {\r\n console.error(\"[loadComplements] Error getAllComplements \", e);\r\n throw e;\r\n }\r\n },\r\n};\r\n\r\nconst getters = {\r\n complements: (state: ComplementState) => state.complements ?? [],\r\n};\r\n\r\nconst modules = {}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n getters,\r\n modules,\r\n};","import {ContentAnnotation} from \"../../../../presentation/views/content/helpers\";\r\nimport {ActionContext} from \"vuex\";\r\nimport {ContentState, getContentProvider, getCurrentContent} from \"./content_module\";\r\nimport {\r\n AnnotationEvent,\r\n annotationSubject\r\n} from \"../../../../presentation/views/content/menu/ContentAnnotationNotifier\";\r\n\r\nclass AnnotationState {\r\n annotations: ContentAnnotation[] = [];\r\n}\r\n\r\nconst state = new AnnotationState();\r\ntype AnnotationActionContext = ActionContext;\r\n\r\nconst mutations = {\r\n SET_ANNOTATIONS(state: AnnotationState, annotations: ContentAnnotation[]) {\r\n state.annotations = annotations;\r\n },\r\n SET_ANNOTATION(state: AnnotationState, {index, annotation}: {index: number, annotation: ContentAnnotation}) {\r\n state.annotations[index] = annotation;\r\n },\r\n ADD_ANNOTATION(state: AnnotationState, annotation: ContentAnnotation) {\r\n state.annotations?.unshift(annotation);\r\n },\r\n REMOVE_ANNOTATION(state: AnnotationState, annotationIndex: number) {\r\n state.annotations.splice(annotationIndex, 1);\r\n },\r\n};\r\n\r\nconst actions = {\r\n async loadAnnotations(ctx: AnnotationActionContext) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n const annotations = await provider.getAllContentAnnotations(content.id) ?? [];\r\n ctx.commit(\"SET_ANNOTATIONS\", annotations);\r\n } catch (e) {\r\n console.error(\"[loadAnnotations] Error \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async takingNotes(ctx: AnnotationActionContext, annotation: ContentAnnotation) {\r\n try {\r\n annotationSubject.notify(AnnotationEvent.TAKING_NOTES, annotation);\r\n } catch (e) {\r\n console.error(\"[takingNotes] Error \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async createAnnotation(ctx: AnnotationActionContext, annotation: ContentAnnotation) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n const newContentAnnotation = await provider.createContentAnnotation(content.id, annotation);\r\n let annotations = ctx.state.annotations;\r\n annotations = [newContentAnnotation, ...annotations];\r\n ctx.commit(\"SET_ANNOTATIONS\", annotations);\r\n annotationSubject.notify(AnnotationEvent.NOTE_CREATED, annotation);\r\n } catch (e) {\r\n console.error(\"[createAnnotation] Error \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async updateAnnotation(ctx: AnnotationActionContext, {index, text}: {index: number, text: string}) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n\r\n const annotations = ctx.state.annotations;\r\n const annotation = annotations[index];\r\n annotation.text = text;\r\n\r\n annotations[index] = await provider.updateContentAnnotation(content.id, annotation);\r\n ctx.commit(\"SET_ANNOTATIONS\", annotations);\r\n annotationSubject.notify(AnnotationEvent.NOTE_UPDATED, annotation);\r\n } catch (e) {\r\n console.error(\"[updateAnnotation] Error \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async selectAnnotation(ctx: AnnotationActionContext, index: number) {\r\n try {\r\n const annotation = ctx.state.annotations[index];\r\n annotationSubject.notify(AnnotationEvent.NOTE_SELECTED, annotation);\r\n } catch (e) {\r\n console.error(\"[selectAnnotation] Error \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async deleteAnnotation(ctx: AnnotationActionContext, index) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n const annotation = ctx.state.annotations[index];\r\n await provider.deleteContentAnnotation(content.id, annotation.id);\r\n ctx.commit(\"REMOVE_ANNOTATION\", index);\r\n annotationSubject.notify(AnnotationEvent.NOTE_DELETED, annotation);\r\n } catch (e) {\r\n console.error(\"[deleteAnnotation] Error \", e);\r\n throw e;\r\n }\r\n },\r\n};\r\n\r\nconst getters = {\r\n annotations: (state: AnnotationState) => state.annotations ?? [],\r\n};\r\n\r\nconst modules = {}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n getters,\r\n modules,\r\n};","import {ContentState, getContentProvider, getCurrentContent} from \"./content_module\";\r\nimport {ActionContext} from \"vuex\";\r\nimport {ExerciseStudent} from \"../../../../presentation/views/content/helpers\";\r\n\r\nexport class ExerciseState {\r\n exercise: ExerciseStudent | null = null;\r\n answeredQuestions: Set = new Set();\r\n}\r\n\r\nconst state = new ExerciseState();\r\n\r\ntype ExerciseActionContext = ActionContext;\r\n\r\nconst mutations = {\r\n SET_EXERCISE(state: ExerciseState, exercise: ExerciseStudent) {\r\n state.exercise = exercise;\r\n },\r\n};\r\n\r\n/** return the current content granting is not null. */\r\nexport const getCurrentContentExercise = (ctx: ActionContext): ExerciseStudent => {\r\n const {exercise} = getCurrentContent(ctx);\r\n if (!exercise) throw new Error(\"[getCurrentContentExercise] Error !exercise\");\r\n return exercise;\r\n};\r\n\r\nconst actions = {\r\n async initializeModule(ctx: ExerciseActionContext) {\r\n const exercise = getCurrentContentExercise(ctx);\r\n ctx.commit(\"SET_EXERCISE\", exercise);\r\n },\r\n\r\n async generateQuestionnaire(ctx: ExerciseActionContext): Promise {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n const exercise = getCurrentContentExercise(ctx);\r\n const questionnaireID = await provider.generateQuestionnaire(content.id);\r\n\r\n content.status.progress = 0;\r\n await ctx.dispatch(\"content_module/updateContentOnList\", content, {root: true});\r\n\r\n exercise.status.doing = true;\r\n exercise.status.finished = false;\r\n exercise.status.userAttempts++;\r\n exercise.status.questionnaire.id = questionnaireID;\r\n exercise.status.questionnaire.createdAt = new Date().toString();\r\n exercise.status.questionnaire.finishedAt = null;\r\n exercise.status.questionnaire.questions.corrects = 0;\r\n exercise.status.questionnaire.questions.answered = 0;\r\n\r\n ctx.commit(\"SET_EXERCISE\", exercise);\r\n\r\n return questionnaireID;\r\n } catch (e) {\r\n console.error(\"[generateQuestionnaire] Error \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async finishQuestionnaire(ctx: ExerciseActionContext): Promise {\r\n try {\r\n await ctx.dispatch(\"content_module/finishContent\", null, {root: true});\r\n const exercise = getCurrentContentExercise(ctx);\r\n exercise.status.doing = false;\r\n exercise.status.finished = true;\r\n exercise.status.questionnaire.finishedAt = new Date().toString();\r\n\r\n ctx.commit(\"SET_EXERCISE\", exercise);\r\n } catch (e) {\r\n console.error(\"[generateQuestionnaire] Error \", e);\r\n throw e;\r\n }\r\n }\r\n};\r\n\r\nconst getters = {\r\n exercise: (state: ExerciseState): ExerciseStudent | null => state.exercise,\r\n createdAt: (state: ExerciseState): string | null => {\r\n const exercise = state.exercise;\r\n if (!exercise) {\r\n return null;\r\n }\r\n return exercise.status.questionnaire.createdAt;\r\n },\r\n maximumTime: (state: ExerciseState): number | null => {\r\n const exercise = state.exercise;\r\n if (!exercise) {\r\n return null\r\n }\r\n return exercise.maximumTime;\r\n },\r\n remainingTime: (_: ExerciseState, {createdAt, maximumTime}): number | null => {\r\n if (!maximumTime || !createdAt) {\r\n return null;\r\n }\r\n\r\n const createdAtDate = new Date(createdAt);\r\n const maximumTimeMilliseconds = maximumTime * 1000; \r\n const createdAtMilliseconds = createdAtDate.getTime();\r\n\r\n const expireTimeMilliseconds = createdAtMilliseconds + maximumTimeMilliseconds;\r\n\r\n const dateNow = new Date();\r\n const dateNowMilliseconds = dateNow.getTime();\r\n\r\n return expireTimeMilliseconds - dateNowMilliseconds;\r\n },\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n getters,\r\n}","import {ActionContext} from \"vuex\";\r\nimport {Content} from \"../../../../presentation/views/content/helpers\";\r\nimport {getCurrentQuestion, QuestionnaireState} from \"./questionnaire\";\r\nimport {getCurrentContentExercise} from \"./exercise\";\r\n\r\nclass QuestionnaireControlState {\r\n previousPage: number | null = null;\r\n currentPage: number | null = null;\r\n nextPage: number | null = null;\r\n lastPage: number | null = null;\r\n}\r\n\r\nconst state = new QuestionnaireControlState();\r\n\r\nconst mutations = {\r\n SET_PREVIOUS_PAGE(state: QuestionnaireControlState, page: number) {\r\n state.previousPage = page;\r\n },\r\n SET_CURRENT_PAGE(state: QuestionnaireControlState, page: number) {\r\n state.currentPage = page;\r\n },\r\n SET_NEXT_PAGE(state: QuestionnaireControlState, page: number) {\r\n state.nextPage = page;\r\n },\r\n SET_LAST_PAGE(state: QuestionnaireControlState, page: number) {\r\n state.lastPage = page;\r\n }\r\n};\r\n\r\ntype QuestionnaireControlActionContext = ActionContext;\r\n\r\nconst actions = {\r\n reload(ctx: QuestionnaireControlActionContext) {\r\n const exercise = getCurrentContentExercise(ctx);\r\n const question = getCurrentQuestion(ctx);\r\n\r\n const currentPage: number = question.page;\r\n const previousPage: number | null = currentPage > 1 ? currentPage - 1 : null;\r\n\r\n const lastPage: number = exercise.numberOfQuestions;\r\n const nextPage: number | null = currentPage + 1 <= lastPage ? currentPage + 1 : null;\r\n\r\n ctx.commit(\"SET_PREVIOUS_PAGE\", previousPage);\r\n ctx.commit(\"SET_CURRENT_PAGE\", currentPage);\r\n ctx.commit(\"SET_NEXT_PAGE\", nextPage);\r\n ctx.commit(\"SET_LAST_PAGE\", lastPage);\r\n },\r\n\r\n async loadPrevious(ctx: QuestionnaireControlActionContext) {\r\n try {\r\n const previousPage = ctx.state.previousPage;\r\n await ctx.dispatch(\"content_module/questionnaire/setCurrentQuestion\", previousPage, {root: true});\r\n } catch (e) {\r\n console.error(\"[loadPrevious] Error setCurrentContent \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async loadNext(ctx: QuestionnaireControlActionContext) {\r\n try {\r\n const nextPage = ctx.state.nextPage;\r\n await ctx.dispatch(\"content_module/questionnaire/setCurrentQuestion\", nextPage, {root: true});\r\n } catch (e) {\r\n console.error(\"[loadNext] Error setCurrentContent \", e);\r\n throw e;\r\n }\r\n }\r\n};\r\n\r\nconst getters = {\r\n hasNext: (state: QuestionnaireControlState) => state.nextPage != null,\r\n hasPrevious: (state: QuestionnaireControlState) => state.previousPage != null,\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters,\r\n}","import {\r\n Alternative,\r\n Content,\r\n ExerciseStudent,\r\n Question,\r\n QuestionStatus\r\n} from \"../../../../presentation/views/content/helpers\";\r\nimport {ActionContext} from \"vuex\";\r\nimport {getContentProvider, getCurrentContent} from \"./content_module\";\r\nimport {ContentProvider} from \"../../../../../domain/entities/content-provider/content-provider\";\r\nimport {ExerciseState, getCurrentContentExercise} from \"./exercise\";\r\nimport questionnaire_control from \"./questionnaire_control\";\r\nimport {shuffle} from \"../../../../presentation/components/mixins\";\r\n\r\nexport class QuestionnaireState {\r\n currentQuestion: Question | null = null;\r\n alternatives: Alternative[] | null = null;\r\n}\r\n\r\nconst state = new QuestionnaireState();\r\n\r\nconst mutations = {\r\n SET_CURRENT_QUESTION(state: QuestionnaireState, question: Question) {\r\n state.currentQuestion = question;\r\n },\r\n SET_CURRENT_QUESTION_STATUS(state: QuestionnaireState, questionStatus: QuestionStatus) {\r\n if (!state.currentQuestion) return;\r\n state.currentQuestion.status = questionStatus;\r\n },\r\n SET_ALTERNATIVES(state: QuestionnaireState, alternatives) {\r\n state.alternatives = alternatives;\r\n },\r\n};\r\n\r\nexport const getCurrentQuestion = (ctx: ActionContext) => {\r\n const currentQuestion: Question = ctx.rootGetters[\"content_module/questionnaire/currentQuestion\"];\r\n if (!currentQuestion) throw new Error(\"[getCurrentQuestion] Error !currentQuestion\");\r\n return currentQuestion;\r\n}\r\n\r\ntype QuestionnaireActionContext = ActionContext;\r\nconst actions = {\r\n async setCurrentQuestion(ctx: QuestionnaireActionContext, page: number) {\r\n try {\r\n const content: Content = getCurrentContent(ctx);\r\n const {status}: ExerciseStudent = getCurrentContentExercise(ctx);\r\n const questionnaireID: number = status.questionnaire.id;\r\n const provider: ContentProvider = getContentProvider(ctx);\r\n const question: Question = await provider.getQuestionByPage(content.id, questionnaireID, page);\r\n ctx.commit(\"SET_CURRENT_QUESTION\", question);\r\n ctx.commit(\"SET_ALTERNATIVES\", question.alternatives);\r\n } catch (e) {\r\n console.error(\"[setCurrentQuestion] Error \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async replyQuestionByPage(ctx: QuestionnaireActionContext, {\r\n page,\r\n alternativeID\r\n }: { page: number, alternativeID: number }) {\r\n try {\r\n const {status}: ExerciseStudent = getCurrentContentExercise(ctx);\r\n const questionnaireID: number = status.questionnaire.id;\r\n\r\n const provider: ContentProvider = getContentProvider(ctx);\r\n const content: Content = getCurrentContent(ctx);\r\n const questionStatus: QuestionStatus = await provider.replyQuestionByPage(content.id, questionnaireID, page, alternativeID);\r\n ctx.commit(\"SET_CURRENT_QUESTION_STATUS\", questionStatus);\r\n } catch (e) {\r\n console.error(\"[setCurrentQuestion] Error \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async replyDescriptiveQuestionByPage(ctx: QuestionnaireActionContext, {\r\n page,\r\n answer\r\n }: { page: number, answer: string }) {\r\n try {\r\n const {status}: ExerciseStudent = getCurrentContentExercise(ctx);\r\n const questionnaireID: number = status.questionnaire.id;\r\n\r\n const provider: ContentProvider = getContentProvider(ctx);\r\n const content: Content = getCurrentContent(ctx);\r\n const questionStatus: QuestionStatus = await provider.replyDescriptiveQuestionByPage(content.id, questionnaireID, page, answer);\r\n ctx.commit(\"SET_CURRENT_QUESTION_STATUS\", questionStatus);\r\n } catch (e) {\r\n console.error(\"[setCurrentQuestion] Error \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async shuffleAlternatives(ctx: QuestionnaireActionContext) {\r\n if(!ctx.state.alternatives) return;\r\n const alternatives = shuffle(ctx.state.alternatives);\r\n ctx.commit(\"SET_ALTERNATIVES\", alternatives);\r\n }\r\n};\r\n\r\nconst getters = {\r\n currentQuestion: (state: QuestionnaireState): Question | null => state.currentQuestion,\r\n alternatives: (state: QuestionnaireState): Alternative[] | null => state.alternatives,\r\n};\r\n\r\nconst modules = {\r\n questionnaire_control\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters,\r\n modules\r\n}","import {SCORMContent, SimpleFile} from \"../../../../../domain/entities/content/content\";\r\nimport {Content, ScormCheckpoint} from \"../../../../presentation/views/content/helpers\";\r\nimport {ActionContext} from \"vuex\";\r\nimport {ContentState, getCurrentContent} from \"./content_module\";\r\nimport {stringify} from \"../../../../presentation/components/mixins\";\r\n\r\nexport class ScormState {\r\n scorm: SimpleFile | null = null;\r\n scormContent: SCORMContent | null = null;\r\n}\r\n\r\nconst state = new ScormState();\r\n\r\nconst mutations = {\r\n SET_SCORM(state: ScormState, scorm: SimpleFile) {\r\n state.scorm = scorm;\r\n },\r\n\r\n SET_SCORM_CONTENT(state: ScormState, scormContent: SCORMContent) {\r\n state.scormContent = scormContent;\r\n },\r\n\r\n SET_VALUE(state: ScormState, scormCheckpoint: ScormCheckpoint) {\r\n if (!state.scormContent) return;\r\n state.scormContent.set(scormCheckpoint.key, scormCheckpoint.value);\r\n }\r\n};\r\n\r\ntype ScormActionContext = ActionContext\r\nconst actions = {\r\n async initialize(ctx: ScormActionContext) {\r\n const content = getCurrentContent(ctx);\r\n loadSCORM(ctx, content);\r\n loadSCORMContent(ctx, content);\r\n },\r\n\r\n async setValue(ctx: ScormActionContext, scormCheckpoint: ScormCheckpoint) {\r\n ctx.commit(\"SET_VALUE\", scormCheckpoint);\r\n },\r\n};\r\n\r\nconst loadSCORM = (ctx: ScormActionContext, content: Content) => {\r\n ctx.commit(\"SET_SCORM\", content.file);\r\n};\r\n\r\nconst loadSCORMContent = (ctx: ScormActionContext, content: Content) => {\r\n const checkpoints = content.status.scormCheckpoints;\r\n const scormContent = new Map();\r\n\r\n if (checkpoints) {\r\n for (let it of checkpoints) {\r\n scormContent.set(stringify(it.key), stringify(it.value));\r\n }\r\n }\r\n\r\n ctx.commit(\"SET_SCORM_CONTENT\", scormContent);\r\n}\r\n\r\nconst getters = {\r\n scorm: (state: ScormState) => state.scorm,\r\n scormContent: (state: ScormState) => state.scormContent,\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters,\r\n};","import {Content,} from \"../../../../presentation/views/content/helpers\";\r\nimport {\r\n ContentProvider,\r\n contentProviderBuilder\r\n} from \"../../../../../domain/entities/content-provider/content-provider\";\r\nimport {ActionContext, ModuleTree} from \"vuex\";\r\nimport control from \"./control\";\r\nimport rating from \"./rating\";\r\nimport doubt from \"./doubt\";\r\nimport player from \"./player\";\r\nimport countdown from \"./countdown\";\r\n\r\n\r\nimport {Instructor} from \"../../../../../domain/entities/entities\";\r\nimport complement from \"./complement\";\r\nimport annotation from \"./annotation\";\r\nimport exercise from \"./exercise\";\r\nimport questionnaire from \"./questionnaire\";\r\nimport scorm from \"./scorm\";\r\n\r\nexport class ContentState {\r\n contentProvider: ContentProvider | null = null;\r\n currentContent: Content | null = null;\r\n instructors: Instructor[] = [];\r\n contents: Content[] = [];\r\n}\r\n\r\nconst state = new ContentState();\r\ntype ContentActionContext = ActionContext;\r\n\r\n/** return the content provider granting is initialized. */\r\nexport const getContentProvider = (ctx: ActionContext): ContentProvider => {\r\n const contentProvider = ctx.rootGetters[\"content_module/contentProvider\"];\r\n if (!contentProvider) throw new Error(\"[getContentProvider] Error !contentProvider\");\r\n return contentProvider;\r\n};\r\n\r\n/** return the current content granting is not null. */\r\nexport const getCurrentContent = (ctx: ActionContext): Content => {\r\n const content = ctx.rootGetters[\"content_module/currentContent\"];\r\n if (!content) throw new Error(\"[getCurrentContent] Error !content\");\r\n return content;\r\n};\r\n\r\nconst actions = {\r\n async loadContentProvider({commit}: ContentActionContext, {type, ids}) {\r\n try {\r\n const contentProvider = contentProviderBuilder.build(type, ids);\r\n commit(\"SET_CONTENT_PROVIDER\", contentProvider);\r\n } catch (e) {\r\n console.error(\"[loadContentProvider] Error build \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async loadAllContents(ctx: ContentActionContext) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const contents = await provider.getAllContents();\r\n ctx.commit(\"SET_CONTENTS\", contents);\r\n } catch (e) {\r\n console.error(\"[loadAllContents] Error wrapContentAction \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n /** TODO: Improve this method and their dependencies to reduce the redundancy. */\r\n async setCurrentContent(ctx: ContentActionContext, contentID: number) {\r\n try {\r\n /** initialize content if not initialized. */\r\n const provider = getContentProvider(ctx);\r\n await initializeContent(ctx, provider, contentID);\r\n\r\n /** Request the content by ID and update current content on state. */\r\n const content = await provider.getContentByID(contentID);\r\n ctx.commit(\"SET_CURRENT_CONTENT\", content);\r\n\r\n /** update the current content on the content list. */\r\n await ctx.dispatch(\"updateContentOnList\", content);\r\n } catch (e) {\r\n console.error(\"[setCurrentContent] Error \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async clearCurrentContent(ctx: ContentActionContext) {\r\n ctx.commit(\"SET_CURRENT_CONTENT\", null);\r\n },\r\n\r\n /** Replace the equivalent content on the content array on ContentState for the giving content by comparing the id. */\r\n async updateContentOnList(ctx: ContentActionContext, content: Content) {\r\n const contents = ctx.state.contents;\r\n const index = contents.findIndex((it) => it.id === content.id);\r\n if (index === -1) throw new Error(\"[updateContentOnList] Error findIndex\");\r\n\r\n contents[index] = content;\r\n ctx.commit(\"SET_CONTENTS\", contents);\r\n },\r\n\r\n async loadInstructors(ctx: ContentActionContext) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n const instructors = await provider.getContentInstructors(content.id) ?? [];\r\n ctx.commit(\"SET_INSTRUCTORS\", instructors);\r\n } catch (e) {\r\n console.error(\"[loadInstructors] Error wrapContentAction \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async finishContent(ctx: ContentActionContext) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n const content = getCurrentContent(ctx);\r\n await provider.finishContent(content.id);\r\n content.status.progress = 100;\r\n await ctx.dispatch(\"updateContentOnList\", content)\r\n } catch (e) {\r\n console.error(\"[finishContent] Error \", e);\r\n throw e;\r\n }\r\n },\r\n\r\n async finishContentProvider(ctx: ContentActionContext) {\r\n try {\r\n const provider = getContentProvider(ctx);\r\n await provider.finishContentProvider();\r\n } catch (e) {\r\n console.error(\"[finishContent] Error \", e);\r\n throw e;\r\n }\r\n },\r\n};\r\n\r\n\r\nconst initializeContent = async (ctx: ContentActionContext, provider: ContentProvider, contentID: number): Promise => {\r\n try {\r\n if (isContentInitialized(ctx, contentID)) return;\r\n await provider.initializeContent(contentID);\r\n } catch (e) {\r\n console.error(\"[initializeContent] Error initializeContent \", e);\r\n throw e;\r\n }\r\n};\r\n\r\nconst isContentInitialized = (ctx: ContentActionContext, contentID: number): boolean => {\r\n const contents: Content[] = ctx.state.contents;\r\n const content = contents.find((content) => content.id == contentID);\r\n return content?.status.startedAt != null;\r\n}\r\n\r\nconst mutations = {\r\n SET_CONTENT_PROVIDER(state: ContentState, contentProvider: ContentProvider) {\r\n state.contentProvider = contentProvider;\r\n },\r\n\r\n SET_CURRENT_CONTENT(state: ContentState, currentContent: Content | null) {\r\n state.currentContent = currentContent;\r\n },\r\n\r\n SET_CONTENTS(state: ContentState, contents: Content[]) {\r\n state.contents = contents;\r\n },\r\n\r\n SET_INSTRUCTORS(state: ContentState, instructors: Instructor[]) {\r\n state.instructors = instructors;\r\n },\r\n};\r\n\r\nconst getters = {\r\n contentProvider: (state: ContentState) => state.contentProvider,\r\n currentContent: (state: ContentState) => state.currentContent,\r\n contents: (state: ContentState) => state.contents,\r\n instructors: (state: ContentState) => state.instructors,\r\n};\r\n\r\nconst modules: ModuleTree = {\r\n player,\r\n control,\r\n complement,\r\n rating,\r\n doubt,\r\n annotation,\r\n exercise,\r\n questionnaire,\r\n scorm,\r\n countdown,\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations,\r\n getters,\r\n modules,\r\n};","import { Event_interface } from \"./event_interface\";\r\nimport {\r\n EventClass,\r\n EventCourse,\r\n EventRequest\r\n} from \"../../../../domain/entities/courseEvent/courseEvent\";\r\nimport http from \"../../http\";\r\nimport {\r\n ContentComment,\r\n Instructor\r\n} from \"../../../../domain/entities/entities\";\r\nimport { wrapErrorHandler } from \"../../utils/wrap_error_handler\";\r\n\r\nclass _EventRepository implements Event_interface {\r\n async list(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"/api/decola/event/list\");\r\n return response.data;\r\n });\r\n }\r\n\r\n async getEventCourse(eventID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n return (await http.get(`/api/decola/event/${eventID}`)).data;\r\n });\r\n }\r\n\r\n async enrollUser(eventClass: EventClass): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(\r\n `/api/decola/event/class/${eventClass.id}/enroll`\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n async unEnrollUser(eventClass: EventClass): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(\r\n `/api/decola/event/class/${eventClass.id}/unenroll`\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n async getComments(eventId: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(`/api/decola/event/{eventId}/ratings`);\r\n return response.data;\r\n });\r\n }\r\n\r\n async confirmCheckinQrCode(token: string, date: string): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(\r\n `/api/decola/event/check-in/qr-code?confirmation=true&date=${date}`,\r\n {},\r\n {\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n async getInstructors(\r\n eventID: number,\r\n classID: number\r\n ): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\r\n `/api/decola/event/${eventID}/class/${classID}/instructors`\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n async generateCertificate(eventID: number, classID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const params: URLSearchParams = new URLSearchParams();\r\n\r\n /**\r\n * PRODUÇÃO\r\n * EventID = 1230\r\n * ClassID = 237\r\n *\r\n * */\r\n\r\n if (eventID === 1230 && classID === 237) {\r\n params.append(\"certificateDifferent\", \"true\");\r\n }\r\n const response = await http.get(\r\n `/api/decola/certificate/event/${eventID}/class/${classID}`,\r\n { params }\r\n );\r\n return response.data.path;\r\n });\r\n }\r\n}\r\n\r\nexport const interfaceEventRepository: Event_interface = new _EventRepository();\r\n","import { EventClass } from \"../../../entities/courseEvent/courseEvent\";\r\nimport { BusinessException } from \"../../../exceptions/exceptions\";\r\nimport { User } from \"../../../entities/entities\";\r\n\r\nexport class EventClassRules {\r\n static alreadyEnrolledError = (\r\n user: User,\r\n eventClass: EventClass\r\n ): BusinessException | void => {\r\n if (!eventClass.enrollUsers) return;\r\n\r\n const enrolledUsersIds = eventClass.enrollUsers.map(user => user.id);\r\n if (enrolledUsersIds.includes(user.id)) {\r\n return new BusinessException(\r\n \"Você já está matriculado nessa turma.\",\r\n \"ALREADY_ENROLLED\"\r\n );\r\n }\r\n };\r\n\r\n static maxCapacityReachedError = (\r\n user: User,\r\n eventClass: EventClass\r\n ): BusinessException | void => {\r\n if (!eventClass.enrollUsers) return;\r\n\r\n if (eventClass.maxCapacity === eventClass.enrollUsers.length) {\r\n return new BusinessException(\r\n \"Não há mais vagas para essa turma.\",\r\n \"MAX_CAPACITY_REACHED\"\r\n );\r\n }\r\n };\r\n\r\n static eventClassIsFinishedError = (\r\n eventClass: EventClass\r\n ): BusinessException | void => {\r\n if (eventClass.finishedAt) {\r\n return new BusinessException(\r\n \"Esta turma já foi finalizada.\",\r\n \"EVENT_CLASS_FINISHED\"\r\n );\r\n }\r\n };\r\n}\r\n","import {\r\n EventClass,\r\n EventCourse,\r\n EventRequest\r\n} from \"../../../entities/courseEvent/courseEvent\";\r\nimport { interfaceEventRepository } from \"../../../../infrastructure/repository/impl/event/event_repository\";\r\nimport { ContentComment, Instructor, User } from \"../../../entities/entities\";\r\nimport { EventClassRules } from \"./eventClassRules\";\r\n\r\nexport interface EventUseCases {\r\n /** Returns the event listing.\r\n * @see EventCourse */\r\n list(): Promise;\r\n\r\n /** Return event information by id. */\r\n getEventCourse(eventID: number): Promise;\r\n\r\n /** Request to enroll the user in the class. */\r\n enrollUser(user: User, eventClass: EventClass): Promise;\r\n\r\n /** Request to remove the user's enrollment in the class. */\r\n unEnrollUser(user: User, eventClass: EventClass): Promise;\r\n\r\n /** Get all comments of an event. */\r\n getComments(eventId: number): Promise;\r\n\r\n confirmCheckinQrCode(token: string, date: string): Promise;\r\n\r\n getInstructors(eventID: number, classID: number): Promise;\r\n\r\n generateCertificate(eventID: number, classID: number): Promise;\r\n}\r\n\r\nclass _EventUseCases implements EventUseCases {\r\n async list(): Promise {\r\n return await interfaceEventRepository.list();\r\n }\r\n\r\n async getEventCourse(eventID: number): Promise {\r\n return await interfaceEventRepository.getEventCourse(eventID);\r\n }\r\n\r\n async enrollUser(user: User, eventClass: EventClass): Promise {\r\n const alreadyEnrolledError = EventClassRules.alreadyEnrolledError(\r\n user,\r\n eventClass\r\n );\r\n if (alreadyEnrolledError) {\r\n throw alreadyEnrolledError;\r\n }\r\n\r\n const maxCapacityReachedError = EventClassRules.maxCapacityReachedError(\r\n user,\r\n eventClass\r\n );\r\n if (maxCapacityReachedError) {\r\n throw maxCapacityReachedError;\r\n }\r\n\r\n const eventClassIsFinishedError = EventClassRules.eventClassIsFinishedError(\r\n eventClass\r\n );\r\n if (eventClassIsFinishedError) {\r\n throw eventClassIsFinishedError;\r\n }\r\n\r\n return await interfaceEventRepository.enrollUser(eventClass);\r\n }\r\n\r\n async unEnrollUser(user: User, eventClass: EventClass): Promise {\r\n const eventClassIsFinishedError = EventClassRules.eventClassIsFinishedError(\r\n eventClass\r\n );\r\n if (eventClassIsFinishedError) {\r\n throw eventClassIsFinishedError;\r\n }\r\n\r\n return await interfaceEventRepository.unEnrollUser(eventClass);\r\n }\r\n\r\n async getComments(eventId: number): Promise {\r\n return await interfaceEventRepository.getComments(eventId);\r\n }\r\n\r\n async confirmCheckinQrCode(token: string, date: string): Promise {\r\n return await interfaceEventRepository.confirmCheckinQrCode(token, date);\r\n }\r\n\r\n async getInstructors(\r\n eventID: number,\r\n classID: number\r\n ): Promise {\r\n return await interfaceEventRepository.getInstructors(eventID, classID);\r\n }\r\n\r\n async generateCertificate(eventID: number, classID: number): Promise {\r\n return await interfaceEventRepository.generateCertificate(eventID, classID);\r\n }\r\n}\r\n\r\nexport const InterfaceEventUseCases: EventUseCases = new _EventUseCases();\r\n","import {\r\n ContentComment,\r\n Course,\r\n CourseCertificate,\r\n FilterCourse,\r\n Instructor,\r\n UserCourse\r\n} from \"../../../../domain/entities/entities\";\r\nimport { InterfaceCourseUseCases } from \"../../../../domain/usecase/impl/courseUseCases\";\r\nimport { ActionContext } from \"vuex\";\r\nimport { ListResponse } from \"../../../../domain/entities/shop/product/listResponse\";\r\nimport { InterfaceEventUseCases } from \"../../../../domain/usecase/impl/event/eventUseCases\";\r\nimport { Content } from \"../../../presentation/views/content/helpers\";\r\nimport courseUseCases from \"../../../../domain/usecase/content_provider/course/content_repository\";\r\nimport { Order } from \"../../../../domain/entities/order\";\r\nimport {dispatchErrorBox, dispatchSuccessBox} from \"../../../presentation/components/mixins\";\r\n\r\nclass CourseState {\r\n courses: Course[] = [];\r\n course: Course = new Course();\r\n recommendedCourses: Course[] = [];\r\n userCourseSituation: UserCourse = new UserCourse();\r\n certificate: CourseCertificate = new CourseCertificate();\r\n /** State that controls loading.*/\r\n loading = false;\r\n coursesByCourseTrack: Course[] = [];\r\n coursesPages = 0;\r\n currentFilter = new FilterCourse();\r\n isCommentsModalOpen = false;\r\n comments: ContentComment[] = [];\r\n commentsTotalCount = 0;\r\n commentsPage = 1;\r\n newCourses: Course[] = [];\r\n contents: Content[] = [];\r\n instructors: Instructor[] = [];\r\n coursesByCourseTrackPage = 0;\r\n userCourses: Course[] = [];\r\n}\r\n\r\nconst state = new CourseState();\r\n\r\nconst mutations = {\r\n LIST_COURSES(state: CourseState, courses: Course[]): void {\r\n state.courses = courses;\r\n },\r\n LIST_COURSES_OF_COURSES_TRACKS(\r\n state: CourseState,\r\n list: ListResponse\r\n ): void {\r\n state.coursesByCourseTrack = list.items;\r\n state.coursesByCourseTrackPage = list.page;\r\n },\r\n\r\n LOAD_RECOMMENDED_COURSES(\r\n state: CourseState,\r\n recommendedCourses: Course[]\r\n ): void {\r\n state.recommendedCourses = recommendedCourses;\r\n },\r\n\r\n GET_COURSE(state: CourseState, course: Course): void {\r\n state.course = course;\r\n },\r\n\r\n ENROLL_IN_COURSE(state: CourseState): void {\r\n state.userCourseSituation.enrolled = true;\r\n },\r\n\r\n SET_USER_COURSE_SITUATION(\r\n state: CourseState,\r\n userCourseSituation: UserCourse\r\n ): void {\r\n state.userCourseSituation = userCourseSituation;\r\n },\r\n\r\n LIST_NEWS_COURSES(state: CourseState, newCourses: Course[]): void {\r\n state.newCourses = newCourses;\r\n },\r\n\r\n /** Mutation that sets the loading state.\r\n * @param state\r\n * @param isVisible parameter that takes a boolean variable.*/\r\n SET_LOADING(state: CourseState, isVisible: boolean): void {\r\n state.loading = isVisible;\r\n },\r\n\r\n SET_DECOLA_CERTIFICATE: (\r\n state: CourseState,\r\n certificate: CourseCertificate\r\n ): void => {\r\n state.certificate = certificate;\r\n },\r\n SET_COURSES_PAGES(state: CourseState, page: number): void {\r\n state.coursesPages = page;\r\n },\r\n SET_CURRENT_FILTER(state: CourseState, filter: FilterCourse): void {\r\n state.currentFilter = filter;\r\n },\r\n\r\n OPEN_COMMENTS_MODAL(state: CourseState): void {\r\n state.isCommentsModalOpen = true;\r\n },\r\n\r\n CLOSE_COMMENTS_MODAL(state: CourseState): void {\r\n state.isCommentsModalOpen = false;\r\n },\r\n CLEAR_COURSE_COMMENTS(state: CourseState): void {\r\n state.comments = [];\r\n },\r\n LOAD_COMMENTS(\r\n state: CourseState,\r\n comments: ListResponse\r\n ): void {\r\n state.comments = comments.items;\r\n state.commentsPage = comments.page;\r\n state.commentsTotalCount = comments.totalCount;\r\n },\r\n SET_CONTENTS(state: CourseState, contents: Content[]) {\r\n state.contents = contents;\r\n },\r\n SET_INSTRUCTORS(state: CourseState, instructors: Instructor[]) {\r\n state.instructors = instructors;\r\n },\r\n REMOVE_COURSE_FROM_USER_LIST(state: CourseState, courseID: number) {\r\n state.userCourses = state.userCourses.filter(\r\n (course) => course.id !== courseID\r\n );\r\n }\r\n};\r\n\r\nconst actions = {\r\n async loadCourses(\r\n { commit }: ActionContext,\r\n payload: { page: number; filter: FilterCourse }\r\n ): Promise {\r\n let requestFilter: FilterCourse = new FilterCourse();\r\n if (payload.filter) {\r\n requestFilter = payload.filter;\r\n }\r\n const response: ListResponse = await InterfaceCourseUseCases.list(\r\n payload.page,\r\n requestFilter\r\n );\r\n\r\n commit(\"LIST_COURSES\", response.items);\r\n commit(\"SET_COURSES_PAGES\", response.page);\r\n },\r\n\r\n async loadNewsCourses({\r\n commit\r\n }: ActionContext): Promise {\r\n const response = await InterfaceCourseUseCases.listNewCourses();\r\n commit(\"LIST_NEWS_COURSES\", response);\r\n },\r\n\r\n async loadCoursesOfCourseTrack(\r\n { commit }: ActionContext,\r\n payload: { order: Order; courseTrackID: number }\r\n ): Promise {\r\n const response: ListResponse = await InterfaceCourseUseCases.listByCourseTrack(\r\n payload.order,\r\n payload.courseTrackID\r\n );\r\n commit(\"LIST_COURSES_OF_COURSES_TRACKS\", response);\r\n return response.items;\r\n },\r\n\r\n async loadCourse(\r\n { commit }: ActionContext,\r\n course_id: number\r\n ): Promise {\r\n const course: Course = await InterfaceCourseUseCases.get(course_id);\r\n commit(\"GET_COURSE\", course);\r\n return course;\r\n },\r\n\r\n async loadRecommendedCourses({\r\n commit\r\n }: ActionContext): Promise {\r\n const courses = await InterfaceCourseUseCases.listRecommendedCourses();\r\n commit(\"LOAD_RECOMMENDED_COURSES\", courses);\r\n },\r\n\r\n setCurrentCourse(\r\n { commit }: ActionContext,\r\n course\r\n ): void {\r\n commit(\"GET_COURSE\", course);\r\n },\r\n\r\n async enrollInCourse(\r\n { commit }: ActionContext,\r\n course_id: number\r\n ): Promise {\r\n await InterfaceCourseUseCases.enrollInCourse(course_id);\r\n commit(\"ENROLL_IN_COURSE\");\r\n },\r\n\r\n async userCourseSituation(\r\n { commit }: ActionContext,\r\n course_id: number\r\n ): Promise {\r\n const userCourseSituation: UserCourse = await InterfaceCourseUseCases.userCourseSituation(\r\n course_id\r\n );\r\n commit(\"SET_USER_COURSE_SITUATION\", userCourseSituation);\r\n },\r\n\r\n /** Get the generated certificate from backend and commit on the certificate state. */\r\n loadCertificate: async (\r\n { commit }: ActionContext,\r\n courseID: number\r\n ) => {\r\n const certificate = await InterfaceCourseUseCases.getCertificate(courseID);\r\n commit(\"SET_DECOLA_CERTIFICATE\", certificate);\r\n },\r\n\r\n /** Action used to wait for completion of the end course request\r\n * @param commit\r\n * @param isVisible parameter that takes a boolean variable. */\r\n setLoading(\r\n { commit }: ActionContext,\r\n isVisible: boolean\r\n ): void {\r\n commit(\"SET_LOADING\", isVisible);\r\n },\r\n\r\n currentFilter(\r\n { commit }: ActionContext,\r\n filter: FilterCourse\r\n ): void {\r\n commit(\"SET_CURRENT_FILTER\", filter);\r\n },\r\n openCommentsModal({ commit }: ActionContext): void {\r\n commit(\"OPEN_COMMENTS_MODAL\");\r\n },\r\n closeCommentsModal({\r\n commit\r\n }: ActionContext): void {\r\n commit(\"CLOSE_COMMENTS_MODAL\");\r\n },\r\n clearComments({ commit }: ActionContext): void {\r\n commit(\"CLEAR_COMMENTS\");\r\n },\r\n async loadContentCommentsById(\r\n { commit }: ActionContext,\r\n payload: { courseID: number; order: Order }\r\n ): Promise {\r\n const comments: ListResponse = await InterfaceCourseUseCases.getComments(\r\n payload.courseID,\r\n payload.order\r\n );\r\n commit(\"LOAD_COMMENTS\", comments);\r\n },\r\n async loadEventCommentsById(\r\n { commit }: ActionContext,\r\n eventId: number\r\n ): Promise {\r\n const comments: ContentComment[] = await InterfaceEventUseCases.getComments(\r\n eventId\r\n );\r\n commit(\"LOAD_COMMENTS\", comments);\r\n },\r\n\r\n async loadContents(\r\n { commit }: ActionContext,\r\n courseID: number\r\n ): Promise {\r\n const contents = await courseUseCases.getAllContents(courseID);\r\n commit(\"SET_CONTENTS\", contents);\r\n },\r\n\r\n async loadInstructors(\r\n { commit }: ActionContext,\r\n courseID: number\r\n ): Promise {\r\n const response = await InterfaceCourseUseCases.getInstructors(courseID);\r\n commit(\"SET_INSTRUCTORS\", response);\r\n },\r\n\r\n async leaveCourse(\r\n { commit }: ActionContext,\r\n courseID: number\r\n ): Promise {\r\n try {\r\n await InterfaceCourseUseCases.leaveCourse(courseID);\r\n\r\n commit(\"REMOVE_COURSE_FROM_USER_LIST\", courseID);\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n }\r\n};\r\n\r\nconst getters = {\r\n course: (state: CourseState): Course => state.course,\r\n newCourses: (state: CourseState): Course[] => state.newCourses,\r\n coursesByCourseTrack: (state: CourseState): Course[] =>\r\n state.coursesByCourseTrack,\r\n coursesByCourseTrackPage: (state: CourseState): number =>\r\n state.coursesByCourseTrackPage,\r\n courses: (state: CourseState) => state.courses,\r\n coursesPages: (state: CourseState): number => state.coursesPages,\r\n recommendedCourses: (state: CourseState) => state.recommendedCourses,\r\n userCourseSituation: (state: CourseState): UserCourse =>\r\n state.userCourseSituation,\r\n certificate: (state: CourseState): CourseCertificate =>\r\n state.certificate || new CourseCertificate(),\r\n /** Loading state getter. */\r\n loading: (state: CourseState): boolean => state.loading,\r\n currentFilter: (state: CourseState): FilterCourse => state.currentFilter,\r\n isCommentsModalOpen: (state: CourseState): boolean =>\r\n state.isCommentsModalOpen,\r\n comments: (state: CourseState): ContentComment[] => state.comments,\r\n commentsPage: (state: CourseState): number => state.commentsPage,\r\n commentsTotalCount: (state: CourseState): number => state.commentsTotalCount,\r\n contents: (state: CourseState): Content[] => state.contents,\r\n instructors: (state: CourseState): Instructor[] => state.instructors\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","import {InterestRepository} from \"../repository\";\r\nimport {Interest} from \"../../../domain/entities/entities\";\r\nimport http from \"../http\";\r\nimport {wrapErrorHandler} from \"../utils/wrap_error_handler\";\r\n\r\nclass _Interest_repository implements InterestRepository {\r\n list(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http\r\n .get(\"/api/decola/interest/list\");\r\n return response.data.interests;\r\n });\r\n }\r\n\r\n relateInterestToUser(interests: Array): Promise {\r\n return wrapErrorHandler(async () => {\r\n await http\r\n .post(\"/api/decola/interest/link\", { interests: interests });\r\n });\r\n }\r\n\r\n listUserInterest(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http\r\n .get(\"/api/decola/list/interests/user\");\r\n return response.data.interests;\r\n });\r\n }\r\n}\r\n\r\nexport const interfaceInterestRepository: InterestRepository = new _Interest_repository();\r\n","import {Interest} from \"../../entities/entities\";\r\nimport {interfaceInterestRepository} from \"../../../infrastructure/repository/impl/interest_repository\";\r\n\r\ninterface InterestUseCases {\r\n list(): Promise;\r\n relateInterestToUser(interests): Promise;\r\n listUserInterest(): Promise;\r\n}\r\n\r\nclass _InterestUseCases implements InterestUseCases {\r\n async list(): Promise {\r\n return await interfaceInterestRepository.list();\r\n }\r\n\r\n async listUserInterest(): Promise {\r\n return await interfaceInterestRepository.listUserInterest();\r\n }\r\n\r\n async relateInterestToUser(interests): Promise {\r\n return await interfaceInterestRepository.relateInterestToUser(interests);\r\n }\r\n}\r\n\r\nexport const InterfaceInterestUseCases: InterestUseCases = new _InterestUseCases();\r\n","import {Interest} from \"../../../../domain/entities/entities\";\r\nimport {InterfaceInterestUseCases} from \"../../../../domain/usecase/impl/interestUseCases\";\r\nimport {ActionContext} from \"vuex\";\r\n\r\nclass InterestState {\r\n interests: Interest[] = [];\r\n}\r\n\r\nconst state = new InterestState();\r\n\r\nconst mutations = {\r\n SET_INTERESTS(state: InterestState, interests: Interest[]): void {\r\n state.interests = interests;\r\n },\r\n\r\n SET_INTERESTS_USER(state: InterestState, interests: Interest[]): void {\r\n state.interests = interests;\r\n },\r\n};\r\n\r\nconst actions = {\r\n async loadInterests({ commit }: ActionContext): Promise {\r\n const interests = await InterfaceInterestUseCases.list();\r\n commit(\"SET_INTERESTS\", interests);\r\n },\r\n\r\n async listUserInterest({ commit }: ActionContext): Promise {\r\n const interests = await InterfaceInterestUseCases.listUserInterest();\r\n commit(\"SET_INTERESTS_USER\", interests);\r\n },\r\n\r\n async relateInterestToUser(_, interests: Interest[]): Promise {\r\n await InterfaceInterestUseCases.relateInterestToUser(interests);\r\n },\r\n};\r\n\r\nconst getters = {\r\n interests: (state: InterestState): Interest[] => state.interests || [],\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters,\r\n};\r\n","class Span {\r\n public message: string;\r\n public changed: boolean;\r\n\r\n constructor(message = \"\", changed = false) {\r\n (this.message = message), (this.changed = changed);\r\n }\r\n}\r\n\r\nclass MiscellanyState {\r\n sidebarIsOpen: boolean = false;\r\n headerDropdownIsOpen: boolean = false;\r\n featuresIsOpen: boolean = true;\r\n error: Span = new Span();\r\n success: Span = new Span();\r\n}\r\n\r\nconst state = new MiscellanyState();\r\nconst mutations = {\r\n TOGGLE_SIDEBAR_STATE(state: MiscellanyState): void {\r\n state.sidebarIsOpen = !state.sidebarIsOpen;\r\n },\r\n SET_SIDEBAR_STATE(state: MiscellanyState, option: boolean): void {\r\n state.sidebarIsOpen = option;\r\n },\r\n SET_DROPDOWN_MENU_STATE(state: MiscellanyState, option: boolean): void {\r\n state.headerDropdownIsOpen = option;\r\n },\r\n TOGGLE_HEADER_OPTIONS_STATE(state: MiscellanyState) {\r\n state.headerDropdownIsOpen = !state.headerDropdownIsOpen;\r\n },\r\n TOGGLE_CONTENT_FEATURES_STATE(state: MiscellanyState) {\r\n state.featuresIsOpen = !state.featuresIsOpen;\r\n },\r\n SET_CONTENT_FEATURES_STATE(state: MiscellanyState, featuresState: boolean) {\r\n state.featuresIsOpen = featuresState;\r\n },\r\n SET_ERROR(state: MiscellanyState, e: Span) {\r\n state.error.message = e.message;\r\n state.error.changed = e.changed;\r\n },\r\n SET_SUCCESS(state: MiscellanyState, success: Span) {\r\n state.success.message = success.message;\r\n state.success.changed = success.changed;\r\n },\r\n};\r\nconst actions = {\r\n toggleSidebarState({ commit }: any): void {\r\n commit(\"TOGGLE_SIDEBAR_STATE\");\r\n },\r\n setSidebarState({ commit }: any): void {\r\n commit(\"SET_SIDEBAR_STATE\");\r\n },\r\n setDropdownMenuState({ commit }: any): void {\r\n commit(\"SET_DROPDOWN_MENU_STATE\");\r\n },\r\n toggleHeaderOptionsState({ commit }) {\r\n commit(\"TOGGLE_HEADER_OPTIONS_STATE\");\r\n },\r\n toggleContentFeaturesState({ commit }: any): void {\r\n commit(\"TOGGLE_CONTENT_FEATURES_STATE\");\r\n },\r\n setContentFeaturesState({ commit }: any, featuresState: boolean): void {\r\n commit(\"SET_CONTENT_FEATURES_STATE\", featuresState);\r\n },\r\n setError({ commit }, error) {\r\n commit(\"SET_ERROR\", error);\r\n },\r\n setSuccess({ commit }, success) {\r\n commit(\"SET_SUCCESS\", success);\r\n },\r\n};\r\nconst getters = {\r\n headerDropdownIsOpen: (state) => state.headerDropdownIsOpen,\r\n featuresIsOpen: (state) => state.featuresIsOpen,\r\n sidebarIsOpen: (state) => state.sidebarIsOpen,\r\n error: (state) => state.error,\r\n success: (state) => state.success,\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters,\r\n};\r\n","import { UserProfile } from \"../repository\";\r\nimport http from \"../http\";\r\nimport {\r\n Course,\r\n EnrolledTraining,\r\n Interest,\r\n School,\r\n User,\r\n UserAccess,\r\n UserGeneralStatistics,\r\n UserRanking,\r\n UserTeam\r\n} from \"../../../domain/entities/entities\";\r\nimport { wrapErrorHandler } from \"../utils/wrap_error_handler\";\r\nimport { EventCourse } from \"../../../domain/entities/courseEvent/courseEvent\";\r\nimport { TrainingCourseRequest } from \"../../../domain/entities/courseEvent/training_course\";\r\nimport { formatSearchQuery } from \"../../presentation/components/mixins\";\r\n\r\nclass _UserProfile implements UserProfile {\r\n async get(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"/api/user/me/list/personalInformation\");\r\n const user: User = response.data.user;\r\n localStorage.setItem(\"user\", JSON.stringify(user));\r\n return user;\r\n });\r\n }\r\n\r\n async listUserCompanies(): Promise<[]> {\r\n return wrapErrorHandler<[]>(async () => {\r\n const response = await http.get(\"/api/decola/user/companies\");\r\n return response.data.companies;\r\n });\r\n }\r\n\r\n async listUserInterests(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"/api/decola/user/interests\");\r\n return response.data.interests;\r\n });\r\n }\r\n\r\n async editUserInterests(interests: Array): Promise {\r\n return wrapErrorHandler(async () => {\r\n await http.post(\"/api/decola/interest/link\", { interests: interests });\r\n });\r\n }\r\n\r\n async edit(user: User): Promise {\r\n return wrapErrorHandler(async () => {\r\n await http.post(\"/api/decola/user/me/edit/personalInformation\", {\r\n user: user\r\n });\r\n });\r\n }\r\n\r\n async getUserCoursesInProgress(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"api/decola/course/list/progress\");\r\n return response.data;\r\n });\r\n }\r\n\r\n async getUserEnrolledTraining(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"api/decola/courses/enrolled\");\r\n return response.data;\r\n });\r\n }\r\n\r\n async getUserEvents(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"/api/decola/event/list/attended\");\r\n return response.data;\r\n });\r\n }\r\n\r\n async getUserEvent(eventId: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n return (await http.get(`/api/decola/event/${eventId}`)).data.event;\r\n });\r\n }\r\n\r\n async getUserTraining(eventId: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n return (await http.get(`/api/decola/graduation/${eventId}`)).data;\r\n });\r\n }\r\n\r\n async validateUserIsLogged(): Promise {\r\n await http.get(\"/api/user/me/list/personalInformation\");\r\n }\r\n\r\n async getTeams(): Promise {\r\n const { data } = await http.get(\"/api/decola/user/teams\");\r\n return data;\r\n }\r\n\r\n async getUsersRanking(): Promise {\r\n const { data } = await http.get(\"/api/decola/list/students/engagement\");\r\n return data;\r\n }\r\n\r\n async getGeneralStatistics(): Promise {\r\n const { data } = await http.get(\"/api/decola/get/statistics/user\");\r\n return data;\r\n }\r\n\r\n async getAccessesStatistics(): Promise {\r\n const { data } = await http.get(\r\n \"/api/decola/statistics/user/access?period=day&interval=6\"\r\n );\r\n return data;\r\n }\r\n\r\n getUserCertificate(trainingID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\r\n `/api/decola/certificate/graduation/${trainingID}`\r\n );\r\n return response.data.path;\r\n });\r\n }\r\n}\r\n\r\nexport const userProfileRepository: UserProfile = new _UserProfile();\r\n","import {\r\n Course,\r\n EnrolledTraining,\r\n Interest,\r\n User,\r\n UserAccess,\r\n UserGeneralStatistics,\r\n UserRanking,\r\n UserTeam\r\n} from \"../../entities/entities\";\r\nimport { userProfileRepository } from \"../../../infrastructure/repository/impl/userProfile_repository\";\r\nimport { EventCourse } from \"../../entities/courseEvent/courseEvent\";\r\nimport { TrainingCourseRequest } from \"../../entities/courseEvent/training_course\";\r\n\r\ninterface UserProfileUseCases {\r\n get(): Promise;\r\n\r\n edit(user: User): Promise;\r\n\r\n editUserInterests(interests: Interest[]): Promise;\r\n\r\n getUserCoursesInProgress(): Promise;\r\n\r\n getUserEnrolledTraining(): Promise;\r\n\r\n getUserEvents(): Promise;\r\n\r\n getUserEvent(eventId: number): Promise;\r\n\r\n getUserTraining(eventId: number): Promise;\r\n\r\n validateUserIsLogged(): Promise;\r\n\r\n getTeams(): Promise;\r\n\r\n getUsersRanking(): Promise;\r\n\r\n getGeneralStatistics(): Promise;\r\n\r\n getAccessesStatistics(): Promise;\r\n\r\n getUserCertificate(trainingID: number): Promise;\r\n}\r\n\r\nclass _UserProfileUseCases implements UserProfileUseCases {\r\n async get(): Promise {\r\n return await userProfileRepository.get();\r\n }\r\n\r\n async edit(user: User): Promise {\r\n if (user.address) {\r\n user.address.stateID = Number(user.address.stateID);\r\n }\r\n return await userProfileRepository.edit(user);\r\n }\r\n\r\n async editUserInterests(interests: Interest[]): Promise {\r\n return await userProfileRepository.editUserInterests(interests);\r\n }\r\n\r\n async getUserCoursesInProgress(): Promise {\r\n return await userProfileRepository.getUserCoursesInProgress();\r\n }\r\n\r\n async getUserEnrolledTraining(): Promise {\r\n return await userProfileRepository.getUserEnrolledTraining();\r\n }\r\n\r\n async getUserEvents(): Promise {\r\n return await userProfileRepository.getUserEvents();\r\n }\r\n\r\n async getUserEvent(eventId: number): Promise {\r\n return await userProfileRepository.getUserEvent(eventId);\r\n }\r\n\r\n async getUserTraining(eventId: number): Promise {\r\n return await userProfileRepository.getUserTraining(eventId);\r\n }\r\n\r\n async validateUserIsLogged(): Promise {\r\n return await userProfileRepository.validateUserIsLogged();\r\n }\r\n\r\n async getTeams(): Promise {\r\n return await userProfileRepository.getTeams();\r\n }\r\n\r\n async getUsersRanking(): Promise {\r\n return await userProfileRepository.getUsersRanking();\r\n }\r\n\r\n async getGeneralStatistics(): Promise {\r\n return await userProfileRepository.getGeneralStatistics();\r\n }\r\n\r\n async getAccessesStatistics(): Promise {\r\n return await userProfileRepository.getAccessesStatistics();\r\n }\r\n async getUserCertificate(trainingID: number): Promise {\r\n return await userProfileRepository.getUserCertificate(trainingID);\r\n }\r\n}\r\n\r\nexport const userProfileUseCases: UserProfileUseCases = new _UserProfileUseCases();\r\n","import {\r\n Course,\r\n EnrolledTraining,\r\n Interest,\r\n User,\r\n UserAccess,\r\n UserGeneralStatistics,\r\n UserRanking,\r\n UserTeam\r\n} from \"../../../../domain/entities/entities\";\r\nimport { userProfileUseCases } from \"../../../../domain/usecase/impl/userProfileUseCases\";\r\nimport { ActionContext } from \"vuex\";\r\nimport { EventCourse } from \"../../../../domain/entities/courseEvent/courseEvent\";\r\nimport { disableBodyOverflow } from \"../../../presentation/components/mixins\";\r\nimport { TrainingCourseRequest } from \"../../../../domain/entities/courseEvent/training_course\";\r\n\r\nclass UserProfileState {\r\n user: User | null = null;\r\n userInterests: Interest[] = [];\r\n userCoursesInProgress: Course[] = [];\r\n enrolledTraining: EnrolledTraining[] = [];\r\n sortCourseByProgress: string = \"\";\r\n redoOnBoarding: boolean = false;\r\n userEvents: EventCourse[] = [];\r\n userActiveEvent: EventCourse = new EventCourse();\r\n userActiveTraining: TrainingCourseRequest = new TrainingCourseRequest();\r\n teams: UserTeam[] = [];\r\n usersRanking: UserRanking[] = [];\r\n generalStatistics: UserGeneralStatistics | null = null;\r\n accessesStatistics: UserAccess[] = [];\r\n certificateTraining: string = \"\";\r\n}\r\n\r\nconst state = new UserProfileState();\r\n\r\nconst mutations = {\r\n SET_USER(state: UserProfileState, user: User | null): void {\r\n state.user = user;\r\n },\r\n\r\n SET_USER_INTERESTS(\r\n state: UserProfileState,\r\n interests: Array\r\n ): void {\r\n state.userInterests = interests;\r\n },\r\n\r\n LOAD_USER_COURSES_IN_PROGRESS(\r\n state: UserProfileState,\r\n userCoursesInProgress: Course[]\r\n ): void {\r\n state.userCoursesInProgress = userCoursesInProgress;\r\n },\r\n\r\n ENROLLED_TRAININGS(\r\n state: UserProfileState,\r\n enrolledTraining: EnrolledTraining[]\r\n ): void {\r\n state.enrolledTraining = enrolledTraining;\r\n },\r\n\r\n LOAD_USER_EVENTS(state: UserProfileState, userEvents: EventCourse[]): void {\r\n state.userEvents = userEvents;\r\n },\r\n\r\n LOAD_USER_ACTIVE_EVENT(\r\n state: UserProfileState,\r\n userActiveEvent: EventCourse\r\n ): void {\r\n state.userActiveEvent = userActiveEvent;\r\n },\r\n\r\n LOAD_USER_ACTIVE_TRAINING(\r\n state: UserProfileState,\r\n userActiveTraining: TrainingCourseRequest\r\n ): void {\r\n state.userActiveTraining = userActiveTraining;\r\n },\r\n\r\n SORT_COURSES_BY_PROGRESS(state: UserProfileState, value: string): void {\r\n state.sortCourseByProgress = value;\r\n },\r\n\r\n REDO_ON_BOARDING(sate: UserProfileState, redoOnBoarding: boolean): void {\r\n state.redoOnBoarding = redoOnBoarding;\r\n },\r\n\r\n SET_TEAMS(state: UserProfileState, teams: UserTeam[]) {\r\n state.teams = teams;\r\n },\r\n\r\n SET_USERS_RANKING(state: UserProfileState, usersRanking: UserRanking[]) {\r\n state.usersRanking = usersRanking;\r\n },\r\n\r\n SET_GENERAL_STATISTICS(\r\n state: UserProfileState,\r\n generalStatistics: UserGeneralStatistics\r\n ) {\r\n state.generalStatistics = generalStatistics;\r\n },\r\n\r\n SET_ACCESSES_STATISTICS(\r\n state: UserProfileState,\r\n accessesStatistics: UserAccess[]\r\n ) {\r\n state.accessesStatistics = accessesStatistics;\r\n },\r\n\r\n LOAD_USER_CERTIFICATE(state: UserProfileState, certificate: string) {\r\n state.certificateTraining = certificate;\r\n }\r\n};\r\n\r\nconst actions = {\r\n async loadUser({\r\n commit\r\n }: ActionContext): Promise {\r\n const user = await userProfileUseCases.get();\r\n commit(\"SET_USER\", user);\r\n },\r\n\r\n async loadTeams({\r\n commit\r\n }: ActionContext): Promise {\r\n const teams: UserTeam[] = await userProfileUseCases.getTeams();\r\n commit(\"SET_TEAMS\", teams);\r\n },\r\n\r\n async loadUsersRanking({\r\n commit\r\n }: ActionContext): Promise {\r\n const usersRanking: UserRanking[] = await userProfileUseCases.getUsersRanking();\r\n commit(\"SET_USERS_RANKING\", usersRanking);\r\n },\r\n\r\n async loadGeneralStatistics({\r\n commit\r\n }: ActionContext): Promise {\r\n const generalStatistics: UserGeneralStatistics = await userProfileUseCases.getGeneralStatistics();\r\n commit(\"SET_GENERAL_STATISTICS\", generalStatistics);\r\n },\r\n\r\n async loadUserAccesses({\r\n commit\r\n }: ActionContext): Promise {\r\n const generalStatistics: UserAccess[] = await userProfileUseCases.getAccessesStatistics();\r\n commit(\"SET_ACCESSES_STATISTICS\", generalStatistics);\r\n },\r\n\r\n async validateUserIsLogged({\r\n commit\r\n }: ActionContext): Promise {\r\n return await userProfileUseCases.validateUserIsLogged();\r\n },\r\n async editUser(\r\n { commit }: ActionContext,\r\n user: User\r\n ): Promise {\r\n await userProfileUseCases.edit(user);\r\n commit(\"SET_USER\", user);\r\n },\r\n\r\n async editUserInterests(\r\n { commit }: ActionContext,\r\n interests: Array\r\n ): Promise {\r\n await userProfileUseCases.editUserInterests(interests);\r\n commit(\"SET_USER_INTERESTS\", interests);\r\n },\r\n\r\n updateUser(\r\n { commit }: ActionContext,\r\n user: User | null\r\n ): void {\r\n commit(\"SET_USER\", user);\r\n },\r\n\r\n async loadUserCoursesInProgress({\r\n commit\r\n }: ActionContext): Promise {\r\n const response = await userProfileUseCases.getUserCoursesInProgress();\r\n commit(\"LOAD_USER_COURSES_IN_PROGRESS\", response);\r\n },\r\n\r\n async listEnrolledTraining({\r\n commit\r\n }: ActionContext): Promise {\r\n const response: EnrolledTraining[] = await userProfileUseCases.getUserEnrolledTraining();\r\n commit(\"ENROLLED_TRAININGS\", response);\r\n },\r\n\r\n async loadUserEvents({\r\n commit\r\n }: ActionContext): Promise {\r\n const eventCourses: EventCourse[] = await userProfileUseCases.getUserEvents();\r\n commit(\"LOAD_USER_EVENTS\", eventCourses);\r\n },\r\n\r\n async loadUserActiveEvent(\r\n { commit }: ActionContext,\r\n eventId: number\r\n ): Promise {\r\n commit(\r\n \"LOAD_USER_ACTIVE_EVENT\",\r\n await userProfileUseCases.getUserEvent(eventId)\r\n );\r\n },\r\n\r\n async loadUserActiveTraining(\r\n { commit }: ActionContext,\r\n eventId: number\r\n ): Promise {\r\n commit(\r\n \"LOAD_USER_ACTIVE_TRAINING\",\r\n await userProfileUseCases.getUserTraining(eventId)\r\n );\r\n },\r\n\r\n sortUserCoursesByProgress(\r\n { commit }: ActionContext,\r\n value: string\r\n ): void {\r\n commit(\"SORT_COURSES_BY_PROGRESS\", value);\r\n },\r\n\r\n redoOnBoarding(\r\n { commit }: ActionContext,\r\n redoOnBoarding: boolean\r\n ): void {\r\n commit(\"REDO_ON_BOARDING\", redoOnBoarding);\r\n disableBodyOverflow();\r\n },\r\n\r\n async getCertificate(\r\n { commit }: ActionContext,\r\n trainingID: number\r\n ): Promise {\r\n commit(\r\n \"LOAD_USER_CERTIFICATE\",\r\n await userProfileUseCases.getUserCertificate(trainingID)\r\n );\r\n }\r\n};\r\n\r\nconst getters = {\r\n user: (state: UserProfileState): User | null => {\r\n const localUser = localStorage.getItem(\"user\");\r\n let user = null;\r\n if (localUser) {\r\n user = JSON.parse(localUser);\r\n }\r\n return state.user || user;\r\n },\r\n userInterests: (state: UserProfileState) => state.userInterests || [],\r\n userCoursesInProgress: (state: UserProfileState): Course[] =>\r\n state.userCoursesInProgress || [],\r\n enrolledTraining: (state: UserProfileState): EnrolledTraining[] =>\r\n state.enrolledTraining,\r\n userEvents: (state: UserProfileState): EventCourse[] =>\r\n state.userEvents || [],\r\n userActiveEvent: (state: UserProfileState): EventCourse =>\r\n state.userActiveEvent,\r\n userActiveTraining: (state: UserProfileState): TrainingCourseRequest =>\r\n state.userActiveTraining,\r\n sortCourseByProgress: (state: UserProfileState) => state.sortCourseByProgress,\r\n redoOnBoarding: (state: UserProfileState) => state.redoOnBoarding,\r\n teams: (state: UserProfileState) => state.teams,\r\n usersRanking: (state: UserProfileState) => state.usersRanking,\r\n generalStatistics: (state: UserProfileState) => state.generalStatistics,\r\n userAccesses: (state: UserProfileState) => state.accessesStatistics,\r\n certificateTraining: (state: UserProfileState) => state.certificateTraining\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","import { StatementInterface } from \"./statement_interface\";\r\nimport { wrapErrorHandler } from \"../../utils/wrap_error_handler\";\r\nimport http from \"../../http\";\r\nimport { Statement } from \"../../../../domain/entities/statement\";\r\n\r\nclass StatementRepository implements StatementInterface {\r\n async list(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"/api/decola/list/statement/user\");\r\n return response.data;\r\n });\r\n }\r\n}\r\n\r\nexport default new StatementRepository() as StatementInterface;\r\n","import StatementUseCasesInterface from \"./statementInterface\";\r\nimport statement_repository from \"../../../../infrastructure/repository/impl/statement/statement_repository\";\r\nimport { Statement } from \"../../../entities/statement\";\r\n\r\nclass StatementUseCases implements StatementUseCasesInterface {\r\n async list(): Promise {\r\n return await statement_repository.list();\r\n }\r\n}\r\n\r\nexport default new StatementUseCases() as StatementUseCasesInterface;\r\n","import { ActionContext } from \"vuex\";\r\nimport statementUseCases from \"../../../../domain/usecase/impl/statement/statementUseCases\";\r\nimport { Statement } from \"../../../../domain/entities/statement\";\r\n\r\nclass StatementState {\r\n statements: Statement[] = [];\r\n}\r\n\r\nconst state = new StatementState();\r\n\r\nconst mutations = {\r\n LOAD_STATEMENT(state: StatementState, statements: Statement[]): void {\r\n state.statements = statements;\r\n }\r\n};\r\n\r\nconst actions = {\r\n async loadStatements({\r\n commit\r\n }: ActionContext): Promise {\r\n const statement: Statement[] = await statementUseCases.list();\r\n commit(\"LOAD_STATEMENT\", statement);\r\n }\r\n};\r\n\r\nconst getters = {\r\n statements: (state: StatementState): Statement[] => state.statements\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","/** Class used to set the amount of products available in the price filter. */\r\n\r\nexport class QuantityByValues {\r\n\r\n /** Number of products from the first price. */\r\n public firstValue: number;\r\n\r\n /** Number of products from the second price. */\r\n public secondValue: number;\r\n\r\n /** Number of products from the third price. */\r\n public thirtyValue: number;\r\n\r\n /** Quantity of products in the fourth price. */\r\n public fourthValue: number;\r\n\r\n constructor(\r\n firstValue: number = 0,\r\n secondValue: number = 0,\r\n thirtyValue: number = 0,\r\n fourthValue: number = 0\r\n ) {\r\n this.firstValue = firstValue;\r\n this.secondValue = secondValue;\r\n this.thirtyValue = thirtyValue;\r\n this.fourthValue = fourthValue;\r\n }\r\n}","import {Shop} from \"./shop\";\r\nimport {Prices} from \"./prices\";\r\nimport {Category} from \"./category\";\r\nimport {QuantityByValues} from \"./quantityByValues\";\r\n\r\n/** Class used in the product filter. */\r\nexport class Filter {\r\n\r\n /** Array of shops. */\r\n public shops: Array;\r\n\r\n /** Array with prices that products can be filtered. */\r\n public prices: Array;\r\n\r\n /** Array with categories that products can be filtered. */\r\n public categories: Array;\r\n\r\n /** Text typed into the search bar to search for a product. */\r\n public searchQuery: string;\r\n\r\n /** Quantity of products available when filtering prices. */\r\n public values: QuantityByValues;\r\n\r\n\r\n constructor(\r\n shops = new Array(),\r\n prices = new Array(),\r\n categories = new Array(),\r\n searchQuery = '',\r\n values = new QuantityByValues(),\r\n ) {\r\n this.shops = shops;\r\n this.prices = prices;\r\n this.categories = categories;\r\n this.searchQuery = searchQuery;\r\n this.values = values;\r\n }\r\n}","import {Product} from \"../product/product\";\r\n\r\n/** Class that references the order receipt. */\r\nexport class Receipt {\r\n\r\n /** Receipt ID. */\r\n public id: number;\r\n\r\n /** Total order amount. */\r\n public grossValue: number;\r\n\r\n /** Total amount of products added. */\r\n public quantity: number;\r\n\r\n /** List of purchased products. */\r\n public products: Array;\r\n\r\n /** URL of the receipt pdf. */\r\n public receiptUrl: string;\r\n\r\n /** Date of completion of the order. */\r\n public lastChange: string;\r\n\r\n /** Date the order was created. */\r\n public createAt: string;\r\n\r\n constructor(\r\n id = NaN,\r\n grossValue = NaN,\r\n quantity = NaN,\r\n products: Product[] = [],\r\n receiptUrl= \"\",\r\n lastChange = \"\",\r\n createAt = \"\"\r\n ) {\r\n this.id = id;\r\n this.grossValue = grossValue;\r\n this.quantity = quantity;\r\n this.products = products;\r\n this.receiptUrl = receiptUrl;\r\n this.lastChange = lastChange;\r\n this.createAt = createAt;\r\n }\r\n}","import http from \"../../http\";\r\nimport { Order } from \"../../../../domain/entities/shop/order/order\";\r\nimport { Receipt } from \"../../../../domain/entities/shop/order/receipt\";\r\nimport { Filter } from \"../../../../domain/entities/shop/filter/filter\";\r\nimport { Product } from \"../../../../domain/entities/shop/product/product\";\r\nimport { ShopRepository } from \"./shop_interface\";\r\nimport { ListResponse } from \"../../../../domain/entities/shop/product/listResponse\";\r\nimport { wrapErrorHandler } from \"../../utils/wrap_error_handler\";\r\nimport { RepositoryException } from \"../../../../domain/exceptions/exceptions\";\r\n\r\n/** Function responsible for formatting the selected filters.\r\n * This function is called when the request is made, passing the formatted parameters in the GET of the URL. */\r\nfunction encodeFilterToURL(filter: Filter): string {\r\n /** Concatenates the array of category ids with the string '&' and strips all spaces. */\r\n const categories = filter.categories\r\n .map(a => `category=${a.id}`)\r\n .join(\"&\")\r\n .trim();\r\n\r\n /** Concatenates the array of shops ids with the string '&' and strips all spaces. */\r\n const shops = filter.shops\r\n .map(a => `shop=${a.id}`)\r\n .join(\"&\")\r\n .trim();\r\n\r\n /** Concatenates the array of prices ids with the string '&' and strips all spaces. */\r\n const prices = filter.prices\r\n .map(e => `interval=(${e.min},${e.max})`)\r\n .join(\"&\")\r\n .trim();\r\n\r\n const search = `search=${filter.searchQuery}`;\r\n\r\n /** Variable that receives all formatted parameters.\r\n * Ex.: category=1&category=3&shop=8&interval=(10,20) */\r\n let params = \"\";\r\n\r\n /** Checks if there are categories inside the array.\r\n * If it exists, it is checked if there are already parameters in the URl.\r\n * If so, the string '&' is added.\r\n * If it doesn't mean it is the first parameter of the URL then the string '?' is added. */\r\n if (filter.categories.length) {\r\n if (params.length) {\r\n params += `&${categories}`;\r\n } else {\r\n params += `?${categories}`;\r\n }\r\n }\r\n\r\n if (filter.shops.length) {\r\n if (params.length) {\r\n params += `&${shops}`;\r\n } else {\r\n params += `?${shops}`;\r\n }\r\n }\r\n\r\n if (filter.prices.length) {\r\n if (params.length) {\r\n params += `&${prices}`;\r\n } else {\r\n params += `?${prices}`;\r\n }\r\n }\r\n\r\n if (filter.searchQuery.length) {\r\n if (params.length) {\r\n params += `&${search}`;\r\n } else {\r\n params += `?${search}`;\r\n }\r\n }\r\n\r\n return params;\r\n}\r\n\r\nclass _Shop implements ShopRepository {\r\n async listFilters(filter: Filter): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\r\n `/api/decola/list/filters${encodeFilterToURL(filter)}`\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n async filterProducts(\r\n filter: Filter,\r\n page: number\r\n ): Promise> {\r\n return wrapErrorHandler>(async () => {\r\n const response = await http.get(\r\n `/api/decola/list/products${encodeFilterToURL(filter)}`,\r\n {\r\n params: {\r\n limit: 20,\r\n page: page\r\n }\r\n }\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n async products(): Promise> {\r\n return wrapErrorHandler>(async () => {\r\n const response = await http.get(`/api/decola/list/products`);\r\n return response.data;\r\n });\r\n }\r\n\r\n async addToFavorite(id: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n await http.post(`/api/decola/save/user/favorite/product/id/${id}`);\r\n });\r\n }\r\n\r\n async listFavoriteProducts(\r\n page?: number,\r\n limit?: number\r\n ): Promise> {\r\n return wrapErrorHandler>(async () => {\r\n const params: URLSearchParams = new URLSearchParams();\r\n\r\n if (page && limit) {\r\n params.append(\"page\", String(page));\r\n params.append(\"limit\", String(limit));\r\n }\r\n\r\n const response = await http.get(\r\n `/api/decola/list/user/favorite/product`,\r\n {\r\n params\r\n }\r\n );\r\n\r\n return response.data;\r\n });\r\n }\r\n\r\n async removeProductFromFavorites(id: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n await http.delete(`/api/decola/delete/user/favorite/product/id/${id}`);\r\n });\r\n }\r\n\r\n async getProduct(id: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(`/api/decola/get/product/id/${id}`);\r\n return response.data;\r\n });\r\n }\r\n\r\n async order(order: Order): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(`/api/decola/order`, order);\r\n return response.data;\r\n });\r\n }\r\n\r\n async getReceipt(orderID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(`/api/decola/order/${orderID}`);\r\n return response.data;\r\n });\r\n }\r\n\r\n async orders(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(`/api/decola/orders`);\r\n return response.data;\r\n });\r\n }\r\n\r\n async createReceipt(orderID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(`/api/decola/receipt/${orderID}`);\r\n return response.data;\r\n });\r\n }\r\n\r\n getProductsFromBag(): Product[] {\r\n try {\r\n let products: Product[] = [];\r\n const stringProducts = localStorage.getItem(\"bagProducts\");\r\n if (stringProducts) {\r\n const localStorageProducts = JSON.parse(stringProducts);\r\n products = [...localStorageProducts];\r\n }\r\n return products;\r\n } catch (e) {\r\n console.error(e);\r\n throw new RepositoryException(\r\n \"Ocorreu um erro inesperado.\",\r\n \"UNEXPECTED_ERROR\"\r\n );\r\n }\r\n }\r\n\r\n setProductToBag(product: Product): void {\r\n try {\r\n const products = this.getProductsFromBag();\r\n products.push(product);\r\n localStorage.setItem(\"bagProducts\", JSON.stringify(products));\r\n } catch (e) {\r\n console.error(e);\r\n throw new RepositoryException(\r\n \"Ocorreu um erro inesperado.\",\r\n \"UNEXPECTED_ERROR\"\r\n );\r\n }\r\n }\r\n\r\n setBagProducts(products: Product[]): void {\r\n try {\r\n localStorage.setItem(\"bagProducts\", JSON.stringify(products));\r\n } catch (e) {\r\n console.error(e);\r\n throw new RepositoryException(\r\n \"Ocorreu um erro inesperado.\",\r\n \"UNEXPECTED_ERROR\"\r\n );\r\n }\r\n }\r\n\r\n removeBagProduct(product: Product): void {\r\n try {\r\n const productsBag = this.getProductsFromBag();\r\n const products = productsBag.filter(item => product.id !== item.id);\r\n this.setBagProducts(products);\r\n } catch (e) {\r\n console.error(e);\r\n throw new RepositoryException(\r\n \"Ocorreu um erro inesperado.\",\r\n \"UNEXPECTED_ERROR\"\r\n );\r\n }\r\n }\r\n\r\n removeAllBagProducts(): void {\r\n try {\r\n const productsBag = [];\r\n this.setBagProducts(productsBag);\r\n } catch (e) {\r\n console.error(e);\r\n throw new RepositoryException(\r\n \"Ocorreu um erro inesperado.\",\r\n \"UNEXPECTED_ERROR\"\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport const shop_repository: ShopRepository = new _Shop();\r\n","import {Filter} from \"../../entities/shop/filter/filter\";\r\nimport {ListResponse} from \"../../entities/shop/product/listResponse\";\r\nimport {Product} from \"../../entities/shop/product/product\";\r\nimport {Receipt} from \"../../entities/shop/order/receipt\";\r\nimport {Order} from \"../../entities/shop/order/order\";\r\nimport {shop_repository} from \"../../../infrastructure/repository/impl/shop/shop_repository\";\r\n\r\ninterface ShopUseCases {\r\n /** Listing of products with filters.\r\n * @param page current page referring to the product listing.\r\n * @param filter entity with user-selected filters.\r\n * @see Filter */\r\n filterProducts(page: number, filter: Filter): Promise>;\r\n\r\n /** Listagem dos produtos sem filtros. */\r\n products(): Promise>;\r\n\r\n /** Request to list filter entities.\r\n * @param filter is passed as a parameter to the filter in order to update the value of the products of each entity.\r\n * @see Filter */\r\n listFilters(filter: Filter): Promise;\r\n\r\n /** Request to register a product in the favorites list.\r\n * @param id id of the product to be registered.\r\n * @see id */\r\n addToFavorite(id: number): Promise;\r\n\r\n /** Request to list the products registered in the favorites list.\r\n * @param page parameter referring to the pagination of the product listing. Current page the user is on in the listing.\r\n * @param limit number of products per page.\r\n * @see page\r\n * @see limit */\r\n listFavoriteProducts(\r\n page?: number,\r\n limit?: number\r\n ): Promise>;\r\n\r\n /** Request to remove a product from the favorites list.\r\n * @param id id of the product to be removed.\r\n * @see id */\r\n removeProductFromFavorites(id: number);\r\n\r\n /** Request to get the information of a product.\r\n * @param id product id.\r\n * @see id */\r\n getProduct(id: number): Promise;\r\n\r\n /** Request used to finalize the user's purchase.\r\n * The return of this request will be the purchase receipt.\r\n * @param order object containing the order information.\r\n * @see Order\r\n * @see Receipt */\r\n order(order: Order): Promise;\r\n\r\n /** Request that returns the user's receipt when the purchase is completed.\r\n * @param orderID referring to the order id at checkout. */\r\n getReceipt(orderID: number): Promise;\r\n\r\n /** Request that returns the list of orders referring to the user.\r\n * This information comes from the user's cookie, it is not necessary to pass the user's id as a parameter.\r\n * @see Receipt */\r\n orders(): Promise;\r\n\r\n /** Request to create user receipt from order id.\r\n * @param orderID id of order. */\r\n createReceipt(orderID: number): Promise;\r\n\r\n /** Request to get all the products that are in the bag.\r\n * @see Product */\r\n getProductsFromBag(): Product[];\r\n\r\n /** Request to put a product in the bag.\r\n * @param product product to be placed in the bag.\r\n * @see Product */\r\n setProductToBag(product: Product): void;\r\n\r\n /** Request to put more than one product in the bag.\r\n * @param products array of products.\r\n * @see Product */\r\n setProductsToBag(products: Product[]): void;\r\n\r\n /** Request to remove a product from the bag.\r\n * @param product product to remove. */\r\n removeBagProduct(product: Product): void;\r\n\r\n /** Request to remove all products from the bag. Used when completing a purchase. */\r\n removeAllBagProducts(): void;\r\n}\r\n\r\nclass _ShopUseCases implements ShopUseCases {\r\n async filterProducts(\r\n page: number,\r\n filter: Filter\r\n ): Promise> {\r\n return await shop_repository.filterProducts(filter, page);\r\n }\r\n\r\n async products(): Promise> {\r\n return await shop_repository.products();\r\n }\r\n\r\n async listFilters(filter: Filter): Promise {\r\n return await shop_repository.listFilters(filter);\r\n }\r\n\r\n async addToFavorite(id: number): Promise {\r\n return await shop_repository.addToFavorite(id);\r\n }\r\n\r\n async listFavoriteProducts(\r\n page?: number,\r\n limit?: number\r\n ): Promise> {\r\n return await shop_repository.listFavoriteProducts(page, limit);\r\n }\r\n\r\n async removeProductFromFavorites(id: number) {\r\n return await shop_repository.removeProductFromFavorites(id);\r\n }\r\n\r\n async getProduct(id: number): Promise {\r\n return await shop_repository.getProduct(id);\r\n }\r\n\r\n async order(order: Order): Promise {\r\n return await shop_repository.order(order);\r\n }\r\n\r\n async getReceipt(orderID: number): Promise {\r\n return await shop_repository.getReceipt(orderID);\r\n }\r\n\r\n async orders(): Promise {\r\n return await shop_repository.orders();\r\n }\r\n\r\n async createReceipt(orderID: number): Promise {\r\n return await shop_repository.createReceipt(orderID);\r\n }\r\n\r\n getProductsFromBag(): Product[] {\r\n return shop_repository.getProductsFromBag();\r\n }\r\n\r\n setProductToBag(product: Product): void {\r\n return shop_repository.setProductToBag(product);\r\n }\r\n\r\n setProductsToBag(products: Product[]): void {\r\n return shop_repository.setBagProducts(products);\r\n }\r\n\r\n removeBagProduct(product: Product): void {\r\n return shop_repository.removeBagProduct(product);\r\n }\r\n\r\n removeAllBagProducts(): void {\r\n return shop_repository.removeAllBagProducts();\r\n }\r\n}\r\n\r\nexport default new _ShopUseCases() as ShopUseCases;\r\n","import {ActionContext, ActionTree} from \"vuex\";\r\nimport {Product} from \"../../../../domain/entities/shop/product/product\";\r\nimport {Filter} from \"../../../../domain/entities/shop/filter/filter\";\r\nimport {Receipt} from \"../../../../domain/entities/shop/order/receipt\";\r\nimport {Prices} from \"../../../../domain/entities/shop/filter/prices\";\r\nimport {Order} from \"../../../../domain/entities/shop/order/order\";\r\nimport {ListResponse} from \"../../../../domain/entities/shop/product/listResponse\";\r\nimport shopUseCase from \"../../../../domain/usecase/impl/shopUseCase\";\r\n\r\nclass ShopState {\r\n /** State used for pagination of view shop products.*/\r\n productsPages = 0;\r\n\r\n /** State of the products listing in the products view. */\r\n products: Array = Array();\r\n\r\n /** Controls the current state of the product. */\r\n product = new Product();\r\n\r\n /** State to list the products added to the cart. */\r\n productsInBag: Array = Array();\r\n\r\n /** State to list all products the user has favorite. */\r\n favoriteProducts: Array = Array();\r\n\r\n /** State used for pagination of products in the favorite list. */\r\n page = 0;\r\n\r\n /** State to list all filter items. */\r\n filter = new Filter();\r\n\r\n /**The state to keep track of the selected options in the filter. */\r\n currentFilter = new Filter();\r\n\r\n /** State of the maximum number entered by the user in the filter input. */\r\n maxPrice = 0;\r\n\r\n /** State of the minimum number entered by the user in the filter input. */\r\n minPrice = 0;\r\n\r\n /** Receipt returned from the order post. */\r\n receiptOrder = new Receipt();\r\n\r\n /** Listing of user orders, information is taken by user cookie. */\r\n ordersHistory: Array = Array();\r\n\r\n /** Receipt returned from get by the product id.*/\r\n currentReceipt = new Receipt();\r\n\r\n /** State used to generate the receipt in the order list. */\r\n receipt = new Receipt();\r\n\r\n /** State that makes the loading view visible.*/\r\n loading = false;\r\n\r\n /** State with updated user's decoins. */\r\n decoinsInWallet = 0;\r\n}\r\n\r\nconst state = new ShopState();\r\n\r\nconst mutations = {\r\n /** Mutation responsible for setting the state product with a product. Used in the getProduct action.\r\n * @param state\r\n * @param product parameter that takes an object of type Product.\r\n * @see Product */\r\n SET_PRODUCT(state: ShopState, product: Product): void {\r\n state.product = product;\r\n },\r\n\r\n /** Mutation responsible for receiving an array of products. Used to set the products that will be loaded in the view.\r\n * @param state\r\n * @param products parameter that takes an array of objects of type Product.\r\n * @see Product */\r\n LOAD_PRODUCTS(state: ShopState, products: Array): void {\r\n state.products = products;\r\n },\r\n\r\n /** Mutation responsible for setting the state products with the registered products.\r\n * @param state\r\n * @param products parameter that takes an array of objects of type Product.\r\n * @see Product */\r\n PRODUCTS(state: ShopState, products: Array): void {\r\n state.products = products;\r\n },\r\n\r\n /** Mutation that receives an array of products that are in the favorites list.\r\n * @param state\r\n * @param products parameter that takes an array of objects of type Product.\r\n * @see Product */\r\n LOAD_FAVORITE_PRODUCTS(state: ShopState, products: Array): void {\r\n state.favoriteProducts = products;\r\n },\r\n\r\n /** Mutation responsible for setting the productsInBag state with the products that were added to the bag.\r\n * @param state\r\n * @param products parameter that receives an array of objects of type Product\r\n * @see Product */\r\n LOAD_BAG(state: ShopState, products: Array): void {\r\n state.productsInBag = products;\r\n },\r\n\r\n /** Mutation responsible for setting the product in the bag.\r\n * @param state\r\n * @param products parameter that receives an array of objects of type Product.\r\n * @see Product */\r\n SET_PRODUCTS(state: ShopState, products: Array): void {\r\n state.productsInBag = products;\r\n },\r\n\r\n /** Mutation responsible for setting the state receipt with the receipt returned when an order is finalized.\r\n * @param state\r\n * @param receipt parameter that receives an object of type Receipt.\r\n * @see Receipt */\r\n RECEIPT_ORDER(state: ShopState, receipt: Receipt): void {\r\n state.receiptOrder = receipt;\r\n },\r\n\r\n /** Mutation responsible for setting the receiptOrderHistory state.\r\n * @param state\r\n * @param receipt parameter that receives an object of type Receipt.\r\n * @see Receipt */\r\n SET_RECEIPT(state: ShopState, receipt: Receipt): void {\r\n state.receipt = receipt;\r\n },\r\n\r\n /** Mutation responsible for setting the currentReceipt state with the receipt generated at the time of finalizing order.\r\n * @param state\r\n * @param currentReceipt parameter that receives an object of type Receipt.\r\n * @see Receipt */\r\n CURRENT_RECEIPT(state: ShopState, currentReceipt: Receipt): void {\r\n state.currentReceipt = currentReceipt;\r\n },\r\n\r\n /** Mutation responsible for setting the order history.\r\n * @param state\r\n * @param orders parameter that receives an array of objects of type Receipt.\r\n * @see Receipt*/\r\n ORDERS_HISTORY(state: ShopState, orders: Array): void {\r\n state.ordersHistory = orders;\r\n },\r\n\r\n /** Mutation responsible for setting the state filter with the filters returned from the request.\r\n * @param state\r\n * @param filter parameter that receives an object of type Filter.\r\n * @see Filter */\r\n LOAD_FILTERS(state: ShopState, filter: Filter): void {\r\n state.filter = filter;\r\n },\r\n\r\n /** Mutation that sets the current filters that the user has selected.\r\n * @param state\r\n * @param filter parameter that receives an object of type Filter.\r\n * @see Filter */\r\n SET_CURRENT_FILTER(state: ShopState, filter: Filter): void {\r\n state.currentFilter = filter;\r\n },\r\n\r\n /** Mutation responsible for setting the minimum value in state.\r\n * @param state\r\n * @param min parameter that takes a variable of type number. */\r\n SET_MIN_PRICE(state: ShopState, min: number): void {\r\n state.minPrice = min;\r\n },\r\n\r\n /** Mutation responsible for setting the maximum value in the state.\r\n * @param state\r\n * @param max parameter that takes a variable of type number. */\r\n SET_MAX_PRICE(state: ShopState, max: number): void {\r\n state.maxPrice = max;\r\n },\r\n\r\n /** Mutation that sets the pagination value of the products.\r\n * @param state\r\n * @param pages parameter that takes a variable of number. */\r\n SET_PRODUCTS_PAGES(state: ShopState, pages: number): void {\r\n state.productsPages = pages;\r\n },\r\n\r\n /** Mutation that sets the pagination value of the products in the favorites list.\r\n * @param state\r\n * @param page number of pages. */\r\n SET_FAVORITE_PRODUCTS_PAGE(state: ShopState, page: number): void {\r\n state.page = page;\r\n },\r\n\r\n /** Mutation that sets the loading state.\r\n * @param state\r\n * @param isVisible parameter that takes a boolean variable.*/\r\n SET_LOADING(state: ShopState, isVisible: boolean): void {\r\n state.loading = isVisible;\r\n },\r\n\r\n /** Mutation that sets the state decoinsInWallet with the updated user's decoins.\r\n * @param state\r\n * @param decoinsInWallet User decoins available. */\r\n SET_DECOINS_IN_WALLET(state: ShopState, decoinsInWallet: number): void {\r\n state.decoinsInWallet = decoinsInWallet;\r\n }\r\n};\r\n\r\nconst actions: ActionTree = {\r\n /** Action responsible for getting the information of a product.\r\n * @param commit\r\n * @param id parameter that receives the product id. */\r\n async getProduct({ commit }: ActionContext, id: number): Promise {\r\n const product: Product = await shopUseCase.getProduct(id);\r\n commit(\"SET_PRODUCT\", product);\r\n return product;\r\n },\r\n\r\n /** Action responsible for loading all registered products. Used to list products with filters.\r\n * @param commit\r\n * @param payload object that has an object of type Filter, variable page of type number,\r\n * min variable of type number or null, min variable of type number or null.\r\n * @see Filter */\r\n async loadProducts(\r\n { commit }: ActionContext,\r\n payload: {\r\n filter: Filter;\r\n page: number;\r\n min: number | null;\r\n max: number | null;\r\n }\r\n ): Promise {\r\n /** Variable prices receives a list of all prices selected in the filter by the user.\r\n * Then a new object of type Prices is added to the prices variable instantiating the min and max variables\r\n * with the value passed by parameters in the action.\r\n * After that, the request is made passing the Filter object with the populated values and the current page. */\r\n const prices = [...payload.filter.prices];\r\n if (payload.min || payload.max) {\r\n prices.push(new Prices(0, \"\", payload.min, payload.max));\r\n }\r\n const listResponse = await shopUseCase.filterProducts(\r\n payload.page,\r\n new Filter(payload.filter.shops, prices, payload.filter.categories, payload.filter.searchQuery)\r\n );\r\n\r\n commit(\"SET_PRODUCTS_PAGES\", listResponse.page);\r\n commit(\"LOAD_PRODUCTS\", listResponse.items);\r\n },\r\n\r\n /** Action responsible for loading all registered products without filters. */\r\n async products({ commit }: ActionContext): Promise {\r\n const products: ListResponse = await shopUseCase.products();\r\n commit(\"PRODUCTS\", products.items);\r\n },\r\n\r\n /** Action responsible for increasing the quantity of the product added to the cart and updating the localStorage\r\n * with the current amount.\r\n * @param commit\r\n * @param product parameter that takes an object of type Product.\r\n * @see Product */\r\n async increaseProduct({ commit }: ActionContext, product: Product): Promise {\r\n const bagProducts: Array = shopUseCase.getProductsFromBag();\r\n const bagProduct = bagProducts.find(\r\n bagProduct => bagProduct.id === product.id\r\n );\r\n if (bagProduct) {\r\n bagProduct.quantity++;\r\n }\r\n await shopUseCase.setProductsToBag(bagProducts);\r\n },\r\n\r\n /** Action responsible for decreasing the quantity of the product added to the cart and updating the localStorage\r\n * with the current amount.\r\n * @param commit\r\n * @param product parameter that takes an object of type Product.\r\n * @see Product */\r\n async decreaseProduct({ commit }: ActionContext, product: Product): Promise {\r\n const bagProducts: Array = shopUseCase.getProductsFromBag();\r\n const bagProduct = bagProducts.find(\r\n bagProduct => bagProduct.id === product.id\r\n );\r\n if (bagProduct) {\r\n bagProduct.quantity--;\r\n }\r\n await shopUseCase.setProductsToBag(bagProducts);\r\n },\r\n\r\n /** Action responsible for adding a product to favorites.\r\n * @param commit\r\n * @param id product id to add to favorites. */\r\n async addToFavorite({ commit }: ActionContext, id: number): Promise {\r\n const product = await shopUseCase.addToFavorite(id);\r\n commit(\"SET_FAVORITE_PRODUCT\", product);\r\n },\r\n\r\n /** Action responsible for loading all products that are in the favorites list.\r\n * This action expects as a parameter the payload object that serves to set the number of pages\r\n * and the limit of products per page.\r\n * @param commit\r\n * @param payload object that takes two variables of type number. */\r\n async loadFavoriteProducts(\r\n { commit }: ActionContext,\r\n payload: { page: number; limit: number }\r\n ): Promise {\r\n const product: ListResponse = await shopUseCase.listFavoriteProducts(\r\n payload.page,\r\n payload.limit\r\n );\r\n commit(\"LOAD_FAVORITE_PRODUCTS\", product.items);\r\n commit(\"SET_FAVORITE_PRODUCTS_PAGE\", product.page);\r\n },\r\n\r\n /** Action responsible for removing the product from the favorites list.\r\n * @param commit\r\n * @param id parameter that receives the id of the product to remove. */\r\n async removeProductFromFavorites(\r\n { commit }: ActionContext,\r\n id: number\r\n ): Promise {\r\n await shopUseCase.removeProductFromFavorites(id);\r\n },\r\n\r\n /** Action responsible for loading the products added to the bag. */\r\n loadBagProducts: function({ commit }: ActionContext): void {\r\n const products: Array = shopUseCase.getProductsFromBag();\r\n commit(\"LOAD_BAG\", products);\r\n },\r\n\r\n /** Action responsible for adding a product to the bag.\r\n * @param commit\r\n * @param product parameter that takes an object of type Product.\r\n * @see Product */\r\n addToBag({ commit }: ActionContext, product: Product): void {\r\n shopUseCase.setProductToBag(product);\r\n const products: Array = shopUseCase.getProductsFromBag();\r\n commit(\"SET_PRODUCTS\", products);\r\n },\r\n\r\n /** Action responsible for removing a product in the bag from its id.\r\n * @param commit\r\n * @param product parameter that takes a variable of type number. */\r\n async removeFromBag({ commit }: ActionContext, product: Product): Promise {\r\n await shopUseCase.removeBagProduct(product);\r\n const products: Array = shopUseCase.getProductsFromBag();\r\n commit(\"SET_PRODUCTS\", products);\r\n },\r\n\r\n /** Action responsible for removing all products from the bag when a purchase is completed.*/\r\n async removeAllProductsFromBag({ commit }: ActionContext): Promise {\r\n await shopUseCase.removeAllBagProducts();\r\n const products: Array = shopUseCase.getProductsFromBag();\r\n commit(\"SET_PRODUCTS\", products);\r\n },\r\n\r\n /** Action responsible for making a post of the order for the request.\r\n * The request will return the purchase receipt. This receipt is used to set the order id in the URl in the shop view.\r\n * Placing the id in the URl it is possible to have the order information.\r\n * @param commit\r\n * @param order parameter that takes an object of type Order.\r\n * @see Order */\r\n async order({ commit }: ActionContext, order: Order): Promise {\r\n const response: Receipt = await shopUseCase.order(order);\r\n commit(\"RECEIPT_ORDER\", response);\r\n },\r\n\r\n /** Action responsible for loading user orders. */\r\n async ordersHistory({ commit }: ActionContext): Promise {\r\n const response: Array = await shopUseCase.orders();\r\n commit(\"ORDERS_HISTORY\", response);\r\n },\r\n\r\n /** Action responsible for getting the current information of the order. The order id is taken from the URL.\r\n * @param commit\r\n * @param orderID parameter that receives the id of the order. */\r\n async getReceipt({ commit }: ActionContext, orderID: number): Promise {\r\n const response: Receipt = await shopUseCase.getReceipt(orderID);\r\n commit(\"CURRENT_RECEIPT\", response);\r\n },\r\n\r\n /** Action used in the orderHistory view to regenerate the receipt.\r\n * @param commit\r\n * @param orderID parameter that receives the id of the order. */\r\n async createReceipt({ commit }: ActionContext, orderID: number): Promise {\r\n const response: Receipt = await shopUseCase.createReceipt(orderID);\r\n commit(\"SET_RECEIPT\", response);\r\n },\r\n\r\n /** Action responsible for loading the entities that the products can filter on.\r\n * @param commit\r\n * @param filter parameter that receives an object of type Filter.\r\n * @see Filter */\r\n async loadFilters({ commit }: ActionContext, filter: Filter): Promise {\r\n const filters: Filter = await shopUseCase.listFilters(filter);\r\n commit(\"LOAD_FILTERS\", filters);\r\n },\r\n\r\n /** Action responsible for setting the minimum value entered by the user in the filter input.\r\n * @param commit\r\n * @param min parameter that receives a variable of type number*/\r\n setMinPrice({ commit }: ActionContext, min: number): void {\r\n commit(\"SET_MIN_PRICE\", min);\r\n },\r\n\r\n /** Action responsible for setting the maximum value entered by the user in the filter input.\r\n * @param commit\r\n * @param max parameter that receives a variable of type number*/\r\n setMaxPrice({ commit }: ActionContext, max: number): void {\r\n commit(\"SET_MAX_PRICE\", max);\r\n },\r\n\r\n /** Action responsible for setting the filters selected by the user.\r\n * @param commit\r\n * @param filter parameter that receives an object of type Filter.\r\n * @see Filter */\r\n currentFilter({ commit }: ActionContext, filter: Filter): void {\r\n commit(\"SET_CURRENT_FILTER\", filter);\r\n },\r\n\r\n /** Action responsible for setting the value entered by the user in the search bar. */\r\n async setInputFilter({ commit }: ActionContext, payload: { filter: Filter; page: number; }): Promise {\r\n const listResponse = await shopUseCase.filterProducts(\r\n payload.page,\r\n new Filter(payload.filter.shops, payload.filter.prices, payload.filter.categories, payload.filter.searchQuery)\r\n );\r\n\r\n commit(\"SET_PRODUCTS_PAGES\", listResponse.page);\r\n commit(\"LOAD_PRODUCTS\", listResponse.items);\r\n },\r\n\r\n /** Action responsible for making the loading view visible.\r\n * @param commit\r\n * @param isVisible parameter that takes a boolean variable. */\r\n setLoading({ commit }: ActionContext, isVisible: boolean) {\r\n commit(\"SET_LOADING\", isVisible);\r\n },\r\n\r\n /** Action responsible for receiving the user's decoins.\r\n * @param commit\r\n * @param decoins total user decoins. */\r\n setDecoinsInWallet({ commit }: ActionContext, decoins: number): void {\r\n commit(\"SET_DECOINS_IN_WALLET\", decoins);\r\n }\r\n};\r\n\r\nconst getters = {\r\n /** Getter of the number of pages per products. */\r\n productsPages: (state: ShopState): number => state.productsPages,\r\n\r\n /** Getter of a product. */\r\n product: (state: ShopState): Product => state.product,\r\n\r\n /** Getter of an array of products. */\r\n products: (state: ShopState): Array => state.products,\r\n\r\n /** Getter of the products in the favorites list. */\r\n productsInFavoriteList: (state: ShopState): Array =>\r\n state.favoriteProducts,\r\n\r\n /** Getter of the number of pages of the product listing in favorites. */\r\n page: (state: ShopState): number => state.page,\r\n\r\n /** Getter of the products in the bag. */\r\n productsInBag: (state: ShopState): Array => state.productsInBag,\r\n\r\n /** Filter entities getter. */\r\n filter: (state: ShopState): Filter => state.filter,\r\n\r\n /** Getter of the entities selected in the filters. */\r\n currentFilter: (state: ShopState): Filter => state.currentFilter,\r\n\r\n /** Getter of the maximum value entered by the user in the filters input. */\r\n maxPrice: (state: ShopState): number => state.maxPrice,\r\n\r\n /** Getter of the minimum value entered by the user in the filters input. */\r\n minPrice: (state: ShopState): number => state.minPrice,\r\n\r\n /** Receipt getter returned at checkout. */\r\n receiptOrder: (state: ShopState): Receipt => state.receiptOrder,\r\n\r\n /** User's order history getter. */\r\n ordersHistory: (state: ShopState): Array => state.ordersHistory,\r\n\r\n /** Receipt getter, used no to display the order details when the purchase is completed. */\r\n currentReceipt: (state: ShopState): Receipt => state.currentReceipt,\r\n\r\n /** Receipt getter, used in the order history to generate a new receipt, in case it was not generated at the time of finalizing the purchase. */\r\n receipt: (state: ShopState): Receipt => state.receipt,\r\n\r\n /** View loading view state getter */\r\n loading: (state: ShopState): boolean => state.loading,\r\n\r\n /** Getter of the decoins with the subtraction of the values of the products added in the bag. */\r\n balance: (state: ShopState): number => {\r\n let total = 0;\r\n for (const it of state.productsInBag) {\r\n total += it.decoins * it.quantity;\r\n }\r\n return state.decoinsInWallet - total;\r\n }\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","import { ActionContext } from \"vuex\";\r\nimport eventContentUseCase from \"../../../../domain/usecase/content_provider/event/content_repository\";\r\nimport {\r\n EventBasedOnClass,\r\n EventClass,\r\n EventCourse,\r\n EventRequest\r\n} from \"../../../../domain/entities/courseEvent/courseEvent\";\r\nimport { InterfaceEventUseCases } from \"../../../../domain/usecase/impl/event/eventUseCases\";\r\nimport {\r\n AttendanceAt,\r\n Instructor,\r\n User\r\n} from \"../../../../domain/entities/entities\";\r\nimport store from \"../store\";\r\nimport { Content } from \"../../../presentation/views/content/helpers\";\r\nimport { EventContentProvider } from \"../../../../domain/entities/content-provider/event-content-provider\";\r\nimport { dateGrouped } from \"../../../presentation/components/mixins\";\r\n\r\nclass EventState {\r\n eventsBasedOnClass: EventBasedOnClass[] = [];\r\n eventCourses: EventCourse[] = [];\r\n eventRequest: EventRequest = new EventRequest();\r\n event: EventCourse = new EventCourse();\r\n eventClass: EventClass = new EventClass();\r\n contents: Content[] = [];\r\n isUserEnrolled: boolean = false;\r\n isUserAttendance: boolean = false;\r\n instructors: Instructor[] = [];\r\n certificate = \"\";\r\n enrolledUser: User = new User();\r\n dateQrCode = \"\";\r\n}\r\n\r\nconst state = new EventState();\r\n\r\nconst mutations = {\r\n SET_EVENT_BASED_ON_CLASSES(\r\n state: EventState,\r\n eventsBasedOnClass: EventBasedOnClass[]\r\n ): void {\r\n state.eventsBasedOnClass = eventsBasedOnClass;\r\n },\r\n SET_EVENT_REQUEST(state: EventState, eventCourse: EventRequest): void {\r\n state.eventRequest = eventCourse;\r\n },\r\n SET_EVENT(state: EventState, eventCourse: EventCourse): void {\r\n state.event = eventCourse;\r\n },\r\n SET_EVENTS(state: EventState, eventCourses: EventCourse[]): void {\r\n state.eventCourses = eventCourses;\r\n },\r\n SET_EVENT_CONTENTS(state: EventState, contents: Content[]): void {\r\n state.contents = contents;\r\n },\r\n SET_EVENT_CLASS(state: EventState, eventClass: EventClass): void {\r\n state.eventClass = eventClass;\r\n },\r\n ENROLL_USER(state: EventState, enrolledUser: User): void {\r\n state.isUserEnrolled = true;\r\n state.enrolledUser = enrolledUser;\r\n },\r\n UN_ENROLL_USER(state: EventState): void {\r\n state.isUserEnrolled = false;\r\n },\r\n ATTENDANCE_USER(state: EventState): void {\r\n state.isUserAttendance = true;\r\n },\r\n UN_ATTENDANCE_USER(state: EventState): void {\r\n state.isUserAttendance = false;\r\n },\r\n SET_INSTRUCTORS(state: EventState, instructors: Instructor[]): void {\r\n state.instructors = instructors;\r\n },\r\n SET_USER_CERTIFICATE(state: EventState, certificate: string): void {\r\n state.certificate = certificate;\r\n },\r\n SET_DATE_QR_CODE(state: EventState, date: string): void {\r\n state.dateQrCode = date;\r\n }\r\n};\r\n\r\nconst actions = {\r\n async list({ commit }: ActionContext): Promise {\r\n const eventCourses: EventCourse[] = await InterfaceEventUseCases.list();\r\n\r\n commit(\"SET_EVENTS\", eventCourses);\r\n },\r\n async getEventCourse(\r\n { commit }: ActionContext,\r\n { eventID, classID }: { eventID: number; classID: number }\r\n ): Promise {\r\n try {\r\n const response: EventRequest = await InterfaceEventUseCases.getEventCourse(\r\n eventID\r\n );\r\n commit(\"SET_EVENT_REQUEST\", response);\r\n commit(\"SET_EVENT\", response.event);\r\n\r\n const contents = await eventContentUseCase.getAllContents(\r\n eventID,\r\n classID\r\n );\r\n commit(\"SET_EVENT_CONTENTS\", contents);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n\r\n getClass: (ctx: ActionContext, id: number) => {\r\n const eventClass =\r\n ctx.getters.event?.classes?.filter(\r\n eventClass => eventClass.id === id\r\n )[0] || new EventClass();\r\n ctx.commit(\"SET_EVENT_CLASS\", eventClass);\r\n },\r\n\r\n async loadUserEnrollment(ctx: ActionContext) {\r\n const user: User = await store.getters[\"userProfile_module/user\"];\r\n const enrolledUsers: User[] = ctx.getters.eventClass.enrollUsers;\r\n ctx.commit(\"UN_ENROLL_USER\");\r\n ctx.commit(\"UN_ATTENDANCE_USER\");\r\n\r\n if (!enrolledUsers) return;\r\n\r\n const userInEnrroledList = enrolledUsers.find(\r\n userEnrolled => userEnrolled.id === user.id\r\n );\r\n\r\n const dateQrCode = state.dateQrCode;\r\n\r\n if (userInEnrroledList) {\r\n ctx.commit(\"ENROLL_USER\", userInEnrroledList);\r\n\r\n if (dateQrCode) {\r\n const userAttendanceAt = userInEnrroledList.attendanceAts?.filter(\r\n (attendance: AttendanceAt) => {\r\n return dateGrouped(attendance.trainingDate) === dateQrCode;\r\n }\r\n );\r\n\r\n if (userAttendanceAt && userAttendanceAt.length) {\r\n ctx.commit(\"ATTENDANCE_USER\");\r\n }\r\n } else if (\r\n userInEnrroledList.attendanceAts &&\r\n userInEnrroledList.attendanceAts?.length\r\n )\r\n ctx.commit(\"ATTENDANCE_USER\");\r\n }\r\n },\r\n\r\n async enroll(\r\n { commit }: ActionContext,\r\n { user, eventClass }: { user: User; eventClass: EventClass }\r\n ): Promise {\r\n await InterfaceEventUseCases.enrollUser(user, eventClass);\r\n if (!eventClass.enrollUsers) {\r\n eventClass.enrollUsers = [];\r\n }\r\n eventClass.enrollUsers.push(user);\r\n commit(\"SET_EVENT_CLASS\", eventClass);\r\n commit(\"ENROLL_USER\");\r\n },\r\n\r\n async unEnrollUser(\r\n { commit }: ActionContext,\r\n { user, eventClass }: { user: User; eventClass: EventClass }\r\n ): Promise {\r\n await InterfaceEventUseCases.unEnrollUser(user, eventClass);\r\n if (!eventClass.enrollUsers) {\r\n eventClass.enrollUsers = [];\r\n }\r\n eventClass.enrollUsers = eventClass.enrollUsers.filter(\r\n enrolledUser => enrolledUser.id !== user.id\r\n );\r\n commit(\"SET_EVENT_CLASS\", eventClass);\r\n commit(\"UN_ENROLL_USER\");\r\n commit(\"UN_ATTENDANCE_USER\");\r\n },\r\n\r\n async confirmCheckinQrCode(\r\n { commit }: ActionContext,\r\n payload: { token: string; date: string }\r\n ): Promise {\r\n return await InterfaceEventUseCases.confirmCheckinQrCode(\r\n payload.token,\r\n payload.date\r\n );\r\n },\r\n\r\n async getInstructors(\r\n { commit }: ActionContext,\r\n payload: { eventID: number; classID: number }\r\n ): Promise {\r\n const response = await InterfaceEventUseCases.getInstructors(\r\n payload.eventID,\r\n payload.classID\r\n );\r\n\r\n commit(\"SET_INSTRUCTORS\", response);\r\n },\r\n\r\n async generateCertificate(\r\n { commit }: ActionContext,\r\n payload: { eventID: number; classID: number }\r\n ): Promise {\r\n const response = await InterfaceEventUseCases.generateCertificate(\r\n payload.eventID,\r\n payload.classID\r\n );\r\n\r\n commit(\"SET_USER_CERTIFICATE\", response);\r\n },\r\n\r\n async setDateQrCode(\r\n { commit }: ActionContext,\r\n date: string\r\n ): Promise {\r\n commit(\"SET_DATE_QR_CODE\", date);\r\n }\r\n};\r\n\r\nconst getters = {\r\n eventsBasedOnClass: (state: EventState): EventBasedOnClass[] =>\r\n state.eventsBasedOnClass || [],\r\n event: (state: EventState): EventCourse => state.event || new EventCourse(),\r\n eventCourses: (state: EventState): EventCourse[] => state.eventCourses || [],\r\n contents: (state: EventState): Content[] => state.contents || [],\r\n eventClass: (state: EventState): EventClass =>\r\n state.eventClass || new EventClass(),\r\n isUserEnrolled: (state: EventState): boolean => state.isUserEnrolled,\r\n isUserAttendance: (state: EventState): boolean => state.isUserAttendance,\r\n instructors: (state: EventState): Instructor[] => state.instructors,\r\n certificate: (state: EventState): string => state.certificate,\r\n enrolledUser: (state: EventState): User => state.enrolledUser,\r\n dateQrCode: (state: EventState): string => state.dateQrCode\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","import { ActionContext } from \"vuex\";\r\nimport JSConfetti from \"js-confetti\";\r\n\r\nclass UtilsState {\r\n /** Tells whether the loading screen is visible or not. */\r\n isLoading = false;\r\n\r\n /** Tells whether the loading screen is visible or not. */\r\n isContentLoading = false;\r\n\r\n /** Message that displays at the loading screen. */\r\n message = \"\";\r\n\r\n /** Message that displays at the loading screen. */\r\n contentLoadingMessage = \"\";\r\n\r\n isVisible = false;\r\n}\r\n\r\nconst state = new UtilsState();\r\n\r\nconst mutations = {\r\n SET_LOADING_VISIBILITY(state: UtilsState, isLoading: boolean): void {\r\n state.isLoading = isLoading;\r\n },\r\n SET_CONTENT_LOADING_VISIBILITY(\r\n state: UtilsState,\r\n isContentLoading: boolean\r\n ): void {\r\n state.isContentLoading = isContentLoading;\r\n },\r\n SET_MESSAGE(state: UtilsState, message: string): void {\r\n state.message = message;\r\n },\r\n SET_CONTENT_MESSAGE(state: UtilsState, contentLoadingMessage: string): void {\r\n state.contentLoadingMessage = contentLoadingMessage;\r\n },\r\n SET_VISIBILITY(state: UtilsState, isVisible: boolean): void {\r\n state.isVisible = isVisible;\r\n }\r\n};\r\n\r\nconst actions = {\r\n /** Action used to set the loading screen visibility.\r\n * @param commit\r\n * @param isLoading Tells whether the loading screen will be visible or hidden. */\r\n setLoadingVisibility(\r\n { commit }: ActionContext,\r\n isLoading: boolean\r\n ): void {\r\n commit(\"SET_LOADING_VISIBILITY\", isLoading);\r\n },\r\n /** Action used to set the loading screen visibility.\r\n * @param commit\r\n * @param isContentLoading Tells whether the loading screen will be visible or hidden. */\r\n setContentLoadingVisibility(\r\n { commit }: ActionContext,\r\n isContentLoading: boolean\r\n ): void {\r\n commit(\"SET_CONTENT_LOADING_VISIBILITY\", isContentLoading);\r\n },\r\n /** Action used set the message of the current loading screen.\r\n * @param commit\r\n * @param message Message that will be given to the loading screen. */\r\n setMessage(\r\n { commit }: ActionContext,\r\n message: string\r\n ): void {\r\n commit(\"SET_MESSAGE\", message);\r\n },\r\n /** Action used set the message of the current loading screen.\r\n * @param commit\r\n * @param message Message that will be given to the loading screen. */\r\n setContentLoadingMessage(\r\n { commit }: ActionContext,\r\n contentLoadingMessage: string\r\n ): void {\r\n commit(\"SET_CONTENT_MESSAGE\", contentLoadingMessage);\r\n },\r\n\r\n setVisibility(\r\n { commit }: ActionContext,\r\n isVisible: boolean\r\n ): void {\r\n commit(\"SET_VISIBILITY\", isVisible);\r\n }\r\n};\r\n\r\nconst getters = {\r\n isLoading: (state: UtilsState): boolean => state.isLoading,\r\n isVisible: (state: UtilsState): boolean => state.isVisible,\r\n\r\n isContentLoading: (state: UtilsState): boolean => state.isContentLoading,\r\n message: (state: UtilsState): string => state.message\r\n};\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","import { Course, Instructor } from \"../../../../domain/entities/entities\";\r\nimport http from \"../../http/index\";\r\nimport { wrapErrorHandler } from \"../../utils/wrap_error_handler\";\r\nimport { formatSearchQuery } from \"../../../presentation/components/mixins\";\r\nimport InstructorInterface from \"./instructor_interface\";\r\nimport { Order } from \"domain/entities/order\";\r\nimport { ListResponse } from \"domain/entities/shop/product/listResponse\";\r\n\r\nclass InstructorRepository implements InstructorInterface {\r\n listBySearchInstructors(search: string): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\r\n `/api/decola/instructors/globalSearch?search=${formatSearchQuery(\r\n search\r\n )}`\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n getCoursesByInstructors(\r\n order: Order,\r\n instructorId: number\r\n ): Promise> {\r\n return wrapErrorHandler>(async () => {\r\n const response = await http.get(\r\n `/api/decola/list/course/instructors/${instructorId}`,\r\n {\r\n params: {\r\n page: order.page,\r\n limit: 20,\r\n },\r\n }\r\n );\r\n return response.data;\r\n });\r\n }\r\n}\r\n\r\nexport default new InstructorRepository() as InstructorInterface;\r\n","import { Order } from \"domain/entities/order\";\r\nimport searchInstructorsRepository from \"../../../../infrastructure/repository/impl/instructors/instructor_repository\";\r\nimport { Course, Instructor } from \"../../../entities/entities\";\r\nimport InstructorInterface from \"./instructorInterface\";\r\nimport { ListResponse } from \"domain/entities/shop/product/listResponse\";\r\n\r\nclass InstructorUseCase implements InstructorInterface {\r\n async listBySearchInstructors(search: string): Promise {\r\n return await searchInstructorsRepository.listBySearchInstructors(search);\r\n }\r\n\r\n async getCoursesByInstructors(\r\n order: Order,\r\n instructorId: number\r\n ): Promise> {\r\n return await searchInstructorsRepository.getCoursesByInstructors(\r\n order,\r\n instructorId\r\n );\r\n }\r\n}\r\n\r\nexport default new InstructorUseCase() as InstructorInterface;\r\n","import { ActionContext } from \"vuex\";\r\nimport {\r\n Course,\r\n CourseTrack,\r\n Instructor,\r\n School,\r\n} from \"../../../../domain/entities/entities\";\r\nimport { InterfaceSchoolUseCases } from \"../../../../domain/usecase/impl/schoolUseCases\";\r\nimport { InterfaceCourseTrackUseCases } from \"../../../../domain/usecase/impl/courseTrackUseCases\";\r\nimport { InterfaceCourseUseCases } from \"../../../../domain/usecase/impl/courseUseCases\";\r\nimport searchInstructorsUseCase from \"../../../../domain/usecase/impl/instructors/instructorUseCase\";\r\nimport { Order } from \"../../../../domain/entities/order\";\r\nimport { ListResponse } from \"../../../../domain/entities/shop/product/listResponse\";\r\n\r\nclass GlobalSearchState {\r\n schools: School[] = Array();\r\n courseTracks: CourseTrack[] = Array();\r\n courses: Course[] = Array();\r\n instructors: Instructor[] = Array();\r\n searching: boolean = false;\r\n coursesPage = 0;\r\n instructorCourses: Course[] = [];\r\n instructorsCoursesPage = 0;\r\n}\r\n\r\nconst state = new GlobalSearchState();\r\n\r\nconst mutations = {\r\n LIST_SCHOOLS(state: GlobalSearchState, schools: School[]): void {\r\n state.schools = schools;\r\n },\r\n LIST_COURSE_TRACKS(\r\n state: GlobalSearchState,\r\n courseTracks: CourseTrack[]\r\n ): void {\r\n state.courseTracks = courseTracks;\r\n },\r\n SET_COURSES(state: GlobalSearchState, courses: Course[]): void {\r\n state.courses = courses;\r\n },\r\n SET_SEARCHING(state: GlobalSearchState, isSearching: boolean): void {\r\n state.searching = isSearching;\r\n },\r\n SET_COURSES_PAGE(state: GlobalSearchState, page: number): void {\r\n state.coursesPage = page;\r\n },\r\n SET_INSTRUCTORS(state: GlobalSearchState, instructors: Instructor[]): void {\r\n state.instructors = instructors;\r\n },\r\n SET_INSTRUCTOR_COURSES(\r\n state: GlobalSearchState,\r\n instructorCourses: Course[]\r\n ): void {\r\n state.instructorCourses = instructorCourses;\r\n },\r\n SET_INSTRUCTOR_COURSES_PAGE(\r\n state: GlobalSearchState,\r\n instructorsCoursesPage: number\r\n ): void {\r\n state.instructorsCoursesPage = instructorsCoursesPage;\r\n },\r\n};\r\n\r\nconst actions = {\r\n async loadSchools(\r\n { commit }: ActionContext,\r\n search: string\r\n ): Promise {\r\n if (search?.length) {\r\n const schools = await InterfaceSchoolUseCases.listBySearch(search);\r\n commit(\"LIST_SCHOOLS\", schools);\r\n } else {\r\n commit(\"LIST_SCHOOLS\", []);\r\n }\r\n },\r\n\r\n async loadCourseTracks(\r\n { commit }: ActionContext,\r\n search: string\r\n ): Promise {\r\n if (search?.length) {\r\n const courseTracks = await InterfaceCourseTrackUseCases.listBySearch(\r\n search\r\n );\r\n commit(\"LIST_COURSE_TRACKS\", courseTracks);\r\n } else {\r\n commit(\"LIST_COURSE_TRACKS\", []);\r\n }\r\n },\r\n\r\n async loadCourses(\r\n { commit }: ActionContext,\r\n order: Order\r\n ): Promise {\r\n try {\r\n const listResponse: ListResponse = await InterfaceCourseUseCases.listBySearch(\r\n order\r\n );\r\n commit(\"SET_COURSES\", listResponse.items);\r\n commit(\"SET_COURSES_PAGE\", listResponse.page);\r\n } catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n },\r\n\r\n async loadInstructors(\r\n { commit }: ActionContext,\r\n search: string\r\n ): Promise {\r\n try {\r\n if (search?.length) {\r\n const response: Instructor[] = await searchInstructorsUseCase.listBySearchInstructors(\r\n search\r\n );\r\n commit(\"SET_INSTRUCTORS\", response);\r\n } else {\r\n commit(\"SET_INSTRUCTORS\", []);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n },\r\n\r\n async getCoursesByInstructors(\r\n { commit }: ActionContext,\r\n payload: { order: Order; instructorID: number }\r\n ): Promise {\r\n try {\r\n const response: ListResponse = await searchInstructorsUseCase.getCoursesByInstructors(\r\n payload.order,\r\n payload.instructorID\r\n );\r\n commit(\"SET_INSTRUCTOR_COURSES\", response.items);\r\n commit(\"SET_INSTRUCTOR_COURSES_PAGE\", response.page);\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n },\r\n\r\n async setSearch(\r\n { commit }: ActionContext,\r\n isSearching: boolean\r\n ): Promise {\r\n commit(\"SET_SEARCHING\", isSearching);\r\n },\r\n};\r\n\r\nconst getters = {\r\n schools: (state: GlobalSearchState): School[] => state.schools,\r\n courseTracks: (state: GlobalSearchState): CourseTrack[] => state.courseTracks,\r\n courses: (state: GlobalSearchState): Course[] => state.courses,\r\n instructors: (state: GlobalSearchState): Instructor[] => state.instructors,\r\n searching: (state: GlobalSearchState): boolean => state.searching,\r\n coursesPage: (state: GlobalSearchState): number => state.coursesPage,\r\n instructorCourses: (state: GlobalSearchState): Course[] =>\r\n state.instructorCourses,\r\n instructorsCoursesPage: (state: GlobalSearchState): number =>\r\n state.instructorsCoursesPage,\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters,\r\n};\r\n","import {Choice} from \"./choice\";\r\n\r\n/** Represents a question that can be added to an exercise. */\r\nexport class Question {\r\n /** ID. */\r\n public id: number;\r\n\r\n /** Description used to make the question statement. */\r\n public description: string;\r\n\r\n /** Type of the question. */\r\n public type: number;\r\n\r\n /** List of available alternatives. */\r\n public alternatives: Choice[];\r\n\r\n /** Date of the last time the question was updated. */\r\n public lastChange: string;\r\n\r\n /** Tells whether the question is visible to the public or not. */\r\n public isActive: boolean;\r\n\r\n /** Tells whether the question has a relationship with another entity or not. */\r\n public isLinked: boolean;\r\n\r\n public alternativeAnswered: number;\r\n public correctAnswer: number;\r\n public isIncorrect: boolean;\r\n public attemptLimit: number;\r\n public attempts: number;\r\n\r\n constructor(\r\n id = 0,\r\n description = \"\",\r\n type = 0,\r\n alternatives = new Array(),\r\n lastChange = \"\",\r\n isActive = true,\r\n isLinked = false,\r\n alternativeAnswered = NaN,\r\n correctAnswer = NaN,\r\n isIncorrect = false,\r\n attemptLimit = NaN,\r\n attempts = NaN,\r\n ) {\r\n this.id = id;\r\n this.description = description;\r\n this.type = type;\r\n this.alternatives = alternatives;\r\n this.lastChange = lastChange;\r\n this.isActive = isActive;\r\n this.isLinked = isLinked;\r\n this.alternativeAnswered = alternativeAnswered;\r\n this.correctAnswer = correctAnswer;\r\n this.isIncorrect = isIncorrect;\r\n this.attemptLimit = attemptLimit;\r\n this.attempts = attempts;\r\n }\r\n}\r\n\r\nexport class Questionnaire {\r\n public id: number;\r\n public userId: number;\r\n public courseId: number;\r\n public contentId: number;\r\n public exerciseId: number;\r\n public minCorrectAnswers: number;\r\n public numberOfQuestions: number;\r\n public maximumTime: number;\r\n public createdAt: string;\r\n public finishedAt: string;\r\n\r\n constructor(\r\n id = 0,\r\n userId = 0,\r\n courseId = 0,\r\n contentId = 0,\r\n exerciseId = 0,\r\n minCorrectAnswers = 0,\r\n numberOfQuestions = 0,\r\n maximumTime = 0,\r\n createdAt = \"\",\r\n finishedAt = \"\"\r\n ) {\r\n this.id = id;\r\n this.userId = userId;\r\n this.courseId = courseId;\r\n this.contentId = contentId;\r\n this.exerciseId = exerciseId;\r\n this.minCorrectAnswers = minCorrectAnswers;\r\n this.numberOfQuestions = numberOfQuestions;\r\n this.maximumTime = maximumTime;\r\n this.createdAt = createdAt;\r\n this.finishedAt = finishedAt;\r\n }\r\n}\r\n","import http from \"../../http\";\r\nimport {wrapErrorHandler} from \"../../utils/wrap_error_handler\";\r\nimport {Question, Questionnaire,} from \"../../../../domain/entities/exercise/question\";\r\nimport {QuestionInterface} from \"./question_interface\";\r\nimport {ListResponse} from \"../../../../domain/entities/shop/product/listResponse\";\r\nimport {Answer} from \"../../../../domain/entities/exercise/choice\";\r\n\r\nclass _QuestionRepository implements QuestionInterface {\r\n list(\r\n questionnaireID: number,\r\n page?: number\r\n ): Promise> {\r\n return wrapErrorHandler>(async () => {\r\n const response = await http.get(\r\n `/api/decola/exercise/questionnaire/${questionnaireID}`,\r\n {\r\n params: {\r\n page: page,\r\n },\r\n }\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n async submit(\r\n questionnaireID: number,\r\n questionID: number,\r\n alternativeID: number\r\n ): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(\r\n `/api/decola/exercise/questionnaire/${questionnaireID}/question/${questionID}/alternative/${alternativeID}`\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n async getQuestionnaire(questionnaireID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\r\n `/api/decola/exercise/questionnaire/cover/${questionnaireID}`\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n async finishQuestionnaire(questionnaireID: number): Promise {\r\n return wrapErrorHandler>(async () => {\r\n const response = await http.post(\r\n `/api/decola/exercise/questionnaire/${questionnaireID}/finish`\r\n );\r\n return response.data;\r\n });\r\n }\r\n}\r\n\r\nexport const interfaceQuestionRepository: QuestionInterface = new _QuestionRepository();\r\n","import { ActionContext } from \"vuex\";\r\nimport {\r\n Question,\r\n Questionnaire\r\n} from \"../../../../domain/entities/exercise/question\";\r\nimport { interfaceQuestionRepository } from \"../../impl/question/question_repository\";\r\nimport { Answer } from \"../../../../domain/entities/exercise/choice\";\r\nimport { ListResponse } from \"../../../../domain/entities/shop/product/listResponse\";\r\n\r\nclass QuestionState {\r\n questions: Question[] = [];\r\n question: Question = new Question();\r\n allQuestions: Question[] = [];\r\n numberOfPages = 0;\r\n questionnaire = new Questionnaire();\r\n timeCounter = 0;\r\n duration = 0;\r\n}\r\n\r\nconst state = new QuestionState();\r\n\r\nconst mutations = {\r\n SET_QUESTIONS(state: QuestionState, questions: Question[]): void {\r\n state.questions = questions;\r\n },\r\n\r\n SET_QUESTION(state: QuestionState, question: Question): void {\r\n state.question = question;\r\n },\r\n\r\n SET_ALL_QUESTIONS(state: QuestionState, questions: Question[]): void {\r\n state.allQuestions = questions;\r\n },\r\n SET_NUMBER_OF_PAGES(state: QuestionState, numberOfPages: number): void {\r\n state.numberOfPages = numberOfPages;\r\n },\r\n SET_QUESTIONNAIRE(state: QuestionState, questionnaire: Questionnaire): void {\r\n state.questionnaire = questionnaire;\r\n },\r\n SET_TIME_COUNTER(state: QuestionState, timeCounter: number): void {\r\n state.timeCounter = timeCounter;\r\n },\r\n SET_TIMER_DURATION(state: QuestionState, duration: number): void {\r\n state.duration = duration;\r\n }\r\n};\r\n\r\nconst actions = {\r\n async loadQuestions(\r\n { commit }: ActionContext,\r\n payload: {\r\n questionnaireID: number;\r\n page?: number;\r\n }\r\n ): Promise {\r\n const response: ListResponse = await interfaceQuestionRepository.list(\r\n payload.questionnaireID,\r\n payload.page\r\n );\r\n commit(\"SET_QUESTIONS\", response.items);\r\n commit(\"SET_NUMBER_OF_PAGES\", response.page);\r\n commit(\"SET_QUESTION\", response.items[0]);\r\n },\r\n async loadAllQuestions(\r\n { commit }: ActionContext,\r\n\r\n questionnaireID: number\r\n ): Promise {\r\n const response: ListResponse = await interfaceQuestionRepository.list(\r\n questionnaireID\r\n );\r\n commit(\"SET_ALL_QUESTIONS\", response.items);\r\n },\r\n\r\n async submitQuestion(\r\n { commit }: ActionContext,\r\n payload: {\r\n questionnaireID: number;\r\n questionID: number;\r\n alternativeID: number;\r\n }\r\n ): Promise {\r\n return await interfaceQuestionRepository.submit(\r\n payload.questionnaireID,\r\n payload.questionID,\r\n payload.alternativeID\r\n );\r\n },\r\n\r\n async getQuestionnaire(\r\n { commit }: ActionContext,\r\n questionnaireID: number\r\n ): Promise {\r\n const questionnaire = await interfaceQuestionRepository.getQuestionnaire(\r\n questionnaireID\r\n );\r\n commit(\"SET_QUESTIONNAIRE\", questionnaire);\r\n },\r\n\r\n async finishQuestionnaire(\r\n { commit }: ActionContext,\r\n questionnaireID: number\r\n ): Promise {\r\n return await interfaceQuestionRepository.finishQuestionnaire(\r\n questionnaireID\r\n );\r\n },\r\n\r\n async setTimeCounter(\r\n { commit }: ActionContext,\r\n timeCounter: number\r\n ): Promise {\r\n commit(\"SET_TIME_COUNTER\", timeCounter);\r\n },\r\n\r\n async setTimerDuration(\r\n { commit }: ActionContext,\r\n duration: number\r\n ): Promise {\r\n commit(\"SET_TIMER_DURATION\", duration);\r\n }\r\n};\r\n\r\nconst getters = {\r\n questions: (state: QuestionState): Question[] => state.questions,\r\n numberOfPages: (state: QuestionState): number => state.numberOfPages,\r\n questionnaire: (state: QuestionState): Questionnaire => state.questionnaire,\r\n allQuestions: (state: QuestionState): Question[] => state.allQuestions,\r\n timeCounter: (state: QuestionState): number => state.timeCounter,\r\n duration: (state: QuestionState): number => state.duration,\r\n question: (state: QuestionState): Question => state.question\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","import {ActionContext, ActionTree, GetterTree, Module, MutationTree,} from \"vuex\";\r\nimport {watch} from \"vue\";\r\n\r\nexport class AlertBoxState {\r\n isOpen = false;\r\n message = \"\";\r\n shouldContinue: boolean | null = null;\r\n}\r\n\r\nconst state: AlertBoxState = new AlertBoxState();\r\n\r\nconst mutations: MutationTree = {\r\n IS_OPEN(state: AlertBoxState, isOpen: boolean): void {\r\n state.isOpen = isOpen;\r\n },\r\n MESSAGE(state: AlertBoxState, message: string): void {\r\n state.message = message;\r\n },\r\n SHOULD_CONTINUE(state: AlertBoxState, shouldContinue: boolean | null): void {\r\n state.shouldContinue = shouldContinue;\r\n },\r\n};\r\n\r\nconst actions: ActionTree = {\r\n async open(\r\n ctx: ActionContext,\r\n message: string\r\n ): Promise {\r\n ctx.commit(\"IS_OPEN\", true);\r\n ctx.commit(\"MESSAGE\", message);\r\n\r\n return await new Promise((resolve) => {\r\n watch(\r\n () => ctx.getters.shouldContinue,\r\n () => {\r\n if (state !== null) {\r\n resolve(ctx.getters.shouldContinue);\r\n }\r\n }\r\n );\r\n });\r\n },\r\n close({ commit }: ActionContext): void {\r\n commit(\"IS_OPEN\", false);\r\n commit(\"MESSAGE\", \"\");\r\n commit(\"BUTTONS_TEXT\", { continueAction: \"\", cancelAction: \"\" });\r\n commit(\"SHOULD_CONTINUE\", null);\r\n },\r\n shouldContinue(\r\n { commit }: ActionContext,\r\n shouldContinue: boolean\r\n ): void {\r\n commit(\"SHOULD_CONTINUE\", shouldContinue);\r\n },\r\n};\r\n\r\nconst getters: GetterTree = {\r\n isOpen: (state: AlertBoxState): boolean => state.isOpen,\r\n message: (state: AlertBoxState): string => state.message,\r\n shouldContinue: (state: AlertBoxState): boolean | null =>\r\n state.shouldContinue,\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters,\r\n} as Module;\r\n","import {wrapErrorHandler} from \"../../utils/wrap_error_handler\";\r\nimport http from \"../../http/index\";\r\nimport {Pill} from \"../../../../domain/entities/pill\";\r\nimport PillInterface from \"./pill_interface\";\r\n\r\nclass PillRepository implements PillInterface {\r\n async list(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"/api/decola/pills\");\r\n return response.data;\r\n });\r\n }\r\n\r\n async get(id: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(`/api/decola/pills/${id}`);\r\n return response.data;\r\n });\r\n }\r\n\r\n async watch(id: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n return http.post(`/api/decola/pills/${id}/watch`);\r\n });\r\n }\r\n}\r\n\r\nexport default new PillRepository() as PillInterface;\r\n","import {Pill} from \"../../../entities/pill\";\r\nimport pillRepository from \"../../../../infrastructure/repository/impl/pill/pill_repository\";\r\nimport PillUseCasesInterface from \"./pillInterface\";\r\n\r\nclass PillUseCases implements PillUseCasesInterface {\r\n async list(): Promise {\r\n return await pillRepository.list();\r\n }\r\n\r\n async get(id: number): Promise {\r\n return await pillRepository.get(id);\r\n }\r\n\r\n async watch(id: number): Promise {\r\n await pillRepository.watch(id);\r\n }\r\n}\r\n\r\nexport default new PillUseCases() as PillUseCasesInterface;\r\n","import {Youtube} from \"./content/content\";\r\n\r\n/** Represents a pill, a short video that's displayed\r\n * for the user in a format similar to Instagram stories. */\r\nexport class Pill {\r\n /** ID of the pill. */\r\n public id: number;\r\n\r\n /** Title of the pill. */\r\n public title: string;\r\n\r\n /** Whether the pill is released to everybody or not. */\r\n public isPublic: boolean;\r\n\r\n public imageURL: string;\r\n\r\n /** Whether the pill will be shown to the user. */\r\n public isActive: boolean;\r\n\r\n /** Date of the last time the pill was updated. */\r\n public lastChange: string;\r\n\r\n /** Date in which the pill will become active (isActive = true). */\r\n public activationDate: string;\r\n\r\n /** Date in which the pill will become inactive (isActive = false). */\r\n public inactivationDate: string;\r\n\r\n public url: string;\r\n\r\n public youtube: Youtube;\r\n public isWatched: boolean;\r\n public idCourse: number;\r\n\r\n\r\n constructor(\r\n id = NaN,\r\n title = \"\",\r\n isPublic = false,\r\n imageURL = \"\",\r\n isActive = true,\r\n lastChange = \"\",\r\n activationDate = \"\",\r\n inactivationDate = \"\",\r\n url = \"\",\r\n youtube = new Youtube(),\r\n isWatched = false,\r\n idCourse = NaN,\r\n ) {\r\n this.id = id;\r\n this.title = title;\r\n this.isPublic = isPublic;\r\n this.imageURL = imageURL;\r\n this.isActive = isActive;\r\n this.lastChange = lastChange;\r\n this.activationDate = activationDate;\r\n this.inactivationDate = inactivationDate;\r\n this.url = url;\r\n this.youtube = youtube;\r\n this.isWatched = isWatched;\r\n this.idCourse = idCourse;\r\n }\r\n}\r\n","import {ActionContext, ActionTree, GetterTree, Module, MutationTree} from \"vuex\";\r\nimport pillUseCases from \"../../../../domain/usecase/impl/pill/pillUseCases\";\r\n\r\nimport {Pill} from \"../../../../domain/entities/pill\";\r\n\r\nclass PillState {\r\n pill: Pill = new Pill();\r\n pills: Pill[] = [];\r\n numberOfPages = 0;\r\n}\r\n\r\nconst state = new PillState();\r\n\r\nconst mutations: MutationTree = {\r\n SET_PILL(state: PillState, pill: Pill): void {\r\n state.pill = pill;\r\n },\r\n SET_PILLS(state: PillState, pills: Pill[]): void {\r\n state.pills = pills;\r\n }\r\n};\r\n\r\nconst actions: ActionTree = {\r\n /** Lists an array with all the pills in the app. */\r\n async list({ commit }: ActionContext): Promise {\r\n try {\r\n const response: Pill[] = await pillUseCases.list();\r\n commit(\"SET_PILLS\", response);\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n },\r\n\r\n /** Gets a pill.\r\n * @param commit\r\n * @param id ID of the pill. */\r\n async get(\r\n { commit }: ActionContext,\r\n id: number\r\n ): Promise {\r\n try {\r\n const response: Pill = await pillUseCases.get(id);\r\n commit(\"SET_PILL\", response);\r\n } catch (e) {\r\n commit(\"SET_PILL\", new Pill());\r\n console.log(e);\r\n throw e;\r\n }\r\n },\r\n\r\n async watch(\r\n { commit }: ActionContext,\r\n id: number\r\n ): Promise {\r\n try {\r\n return await pillUseCases.watch(id);\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n },\r\n};\r\n\r\nconst getters: GetterTree = {\r\n pill: (state: PillState): Pill => state.pill,\r\n pills: (state: PillState): Pill[] => state.pills\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n} as Module;\r\n","import http from \"../../http\";\r\nimport DoubtInterface from \"./doubt_interface\";\r\nimport {Doubt} from \"../../../../domain/entities/doubt\";\r\nimport {wrapErrorHandler} from \"../../utils/wrap_error_handler\";\r\n\r\nclass DoubtRepository implements DoubtInterface {\r\n async create(doubt: Doubt, courseID: number, contentID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(`/api/decola/courses/${courseID}/contents/${contentID}/questions`, doubt);\r\n return response.data.id;\r\n });\r\n }\r\n\r\n async list(courseID: number, contentID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(`/api/decola/courses/${courseID}/contents/${contentID}/questions`);\r\n return response.data;\r\n });\r\n }\r\n}\r\n\r\nexport default new DoubtRepository() as DoubtInterface;\r\n","import {BusinessException} from \"../../../exceptions/exceptions\";\r\n\r\nexport default class DoubtRules {\r\n /** Checks if the pill title is empty. */\r\n static checkEmptyTitle(title: string): BusinessException | void {\r\n if (!title || !title.trim()) {\r\n return new BusinessException(\r\n \"Título não pode ser vazio.\",\r\n \"EMPTY_FIELD\",\r\n 500\r\n );\r\n }\r\n }\r\n\r\n /** Checks if the pill description is empty. */\r\n static checkEmptyDescription(description: string): BusinessException | void {\r\n if (!description || !description.trim()) {\r\n return new BusinessException(\r\n \"Descrição não pode ser vazia.\",\r\n \"EMPTY_FIELD\",\r\n 500\r\n );\r\n }\r\n }\r\n\r\n /** Checks if an ID is valid.\r\n * @see id */\r\n static isNotValidID(id: number | string): BusinessException | void {\r\n if (typeof id === undefined || isNaN(Number(id))) {\r\n return new BusinessException(\"ID não é válido.\", \"INVALID_ID\", 500);\r\n }\r\n }\r\n}\r\n","import doubtRepository from \"../../../../infrastructure/repository/impl/doubt/doubt_repository\";\r\nimport DoubtInterface from \"./doubtInterface\";\r\nimport {Doubt} from \"../../../entities/doubt\";\r\nimport {BusinessException, BusinessRuleException} from \"../../../exceptions/exceptions\";\r\nimport DoubtRules from \"./doubtRules\";\r\n\r\nclass DoubtUseCases implements DoubtInterface {\r\n async create(doubt: Doubt, courseID: number, contentID: number): Promise {\r\n const errors: BusinessException[] = [];\r\n\r\n const idCourseError = DoubtRules.isNotValidID(courseID);\r\n if (idCourseError) {\r\n errors.push(idCourseError);\r\n }\r\n\r\n const idContentError = DoubtRules.isNotValidID(contentID);\r\n if (idContentError) {\r\n errors.push(idContentError);\r\n }\r\n\r\n const titleError = DoubtRules.checkEmptyTitle(doubt.title);\r\n if (titleError) {\r\n errors.push(titleError);\r\n }\r\n\r\n const descriptionError = DoubtRules.checkEmptyDescription(\r\n doubt.description\r\n );\r\n if (descriptionError) {\r\n errors.push(descriptionError);\r\n }\r\n\r\n if (errors.length) {\r\n throw new BusinessRuleException(errors);\r\n }\r\n\r\n return await doubtRepository.create(doubt, courseID, contentID);\r\n }\r\n\r\n async list(courseID: number, contentID: number): Promise {\r\n return await doubtRepository.list(courseID, contentID);\r\n }\r\n\r\n\r\n}\r\n\r\nexport default new DoubtUseCases() as DoubtInterface;\r\n","import doubtUseCase from \"../../../../domain/usecase/impl/doubt/doubtUseCase\";\r\nimport { ActionContext } from \"vuex\";\r\nimport { Doubt } from \"../../../../domain/entities/doubt\";\r\n\r\nclass DoubtState {\r\n doubts: Doubt[] = [];\r\n}\r\n\r\nconst state = new DoubtState();\r\n\r\nconst mutations = {\r\n SET_DOUBTS(state: DoubtState, doubts: Doubt[]): void {\r\n state.doubts = doubts;\r\n }\r\n};\r\n\r\nconst actions = {\r\n async create({commit}: ActionContext, payload: {doubt: Doubt, courseID: number, contentID: number}): Promise {\r\n return await doubtUseCase.create(payload.doubt, payload.courseID, payload.contentID);\r\n },\r\n\r\n async list({ commit }: ActionContext, payload: {courseID: number, contentID: number}): Promise {\r\n const response: Doubt[] = await doubtUseCase.list(payload.courseID, payload.contentID);\r\n commit(\"SET_DOUBTS\", response);\r\n },\r\n\r\n};\r\n\r\nconst getters = {\r\n doubts: (state: DoubtState): Doubt[] => state.doubts || []\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","import { wrapErrorHandler } from \"../../utils/wrap_error_handler\";\r\nimport http from \"../../http/index\";\r\nimport NotificationInterface from \"./notification_interface\";\r\nimport { Notification } from \"../../../../domain/entities/notifications/notification\";\r\n\r\nclass NotificationRepository implements NotificationInterface {\r\n async list(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"/api/decola/notifications\");\r\n return response.data;\r\n });\r\n }\r\n\r\n async watch(notificationID: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n return await http.post(\r\n `/api/decola/notification/${notificationID}/watch`\r\n );\r\n });\r\n }\r\n}\r\n\r\nexport default new NotificationRepository() as NotificationInterface;\r\n","import NotificationInterface from \"./notificationInterface\";\r\nimport { Notification } from \"../../../entities/notifications/notification\";\r\nimport notification_repository from \"../../../../infrastructure/repository/impl/notification/notification_repository\";\r\n\r\nclass NotificationUseCases implements NotificationInterface {\r\n async list(): Promise {\r\n return await notification_repository.list();\r\n }\r\n async watch(notificationID: number): Promise {\r\n return await notification_repository.watch(notificationID);\r\n }\r\n}\r\n\r\nexport default new NotificationUseCases() as NotificationInterface;\r\n","import {\r\n ActionContext,\r\n ActionTree,\r\n GetterTree,\r\n Module,\r\n MutationTree\r\n} from \"vuex\";\r\nimport { Notification } from \"../../../../domain/entities/notifications/notification\";\r\nimport notificationUseCases from \"../../../../domain/usecase/impl/notification/notificationUseCases\";\r\nimport { watch } from \"vue\";\r\nimport { AlertBoxState } from \"./alert_box_module\";\r\nclass NotificationState {\r\n notifications: Notification[] = [];\r\n hasNewNotifications = false;\r\n}\r\n\r\nconst state = new NotificationState();\r\n\r\nconst mutations: MutationTree = {\r\n SET_NOTIFICATIONS(\r\n state: NotificationState,\r\n notifications: Notification[]\r\n ): void {\r\n state.notifications = notifications;\r\n if (state.notifications) {\r\n const newNotifications = state.notifications.find(\r\n (notification: Notification) => !notification.isRead\r\n );\r\n state.hasNewNotifications = !!newNotifications;\r\n }\r\n },\r\n\r\n SET_NEW_NOTIFICATIONS_INDICATOR(\r\n state: NotificationState,\r\n hasNewNotifications: boolean\r\n ): void {\r\n state.hasNewNotifications = hasNewNotifications;\r\n }\r\n};\r\n\r\nconst actions: ActionTree = {\r\n async list({\r\n commit\r\n }: ActionContext): Promise {\r\n try {\r\n const response: Notification[] = await notificationUseCases.list();\r\n commit(\"SET_NOTIFICATIONS\", response);\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n },\r\n\r\n async watch(\r\n { commit }: ActionContext,\r\n notificationID: number\r\n ): Promise {\r\n try {\r\n return await notificationUseCases.watch(notificationID);\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n }\r\n};\r\n\r\nconst getters: GetterTree = {\r\n notifications: (state: NotificationState): Notification[] =>\r\n state.notifications,\r\n hasNewNotifications: (state: NotificationState): boolean =>\r\n state.hasNewNotifications\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n} as Module;\r\n","import http from \"../../http\";\r\nimport { wrapErrorHandler } from \"../../utils/wrap_error_handler\";\r\nimport TrainingCourseInterface from \"./training_course_interface\";\r\nimport { TrainingCourseRequest } from \"../../../../domain/entities/courseEvent/training_course\";\r\nimport { Instructor } from \"../../../../domain/entities/entities\";\r\n\r\nclass TrainingCourseRepository implements TrainingCourseInterface {\r\n async get(id: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(`/api/decola/graduation/${id}`);\r\n return response.data;\r\n });\r\n }\r\n\r\n async getInstructors(id: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\r\n `/api/decola/graduation/${id}/instructors`\r\n );\r\n return response.data;\r\n });\r\n }\r\n\r\n async enroll(id: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n return await http.post(`/api/decola/graduation/${id}/enroll`);\r\n });\r\n }\r\n\r\n async unenroll(id: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n return await http.delete(`/api/decola/graduation/${id}/unenroll`);\r\n });\r\n }\r\n\r\n async confirmCheckinQrCode(token: string, id: number): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.post(\r\n `/api/decola/graduation/check-in/qr-code?confirmation=true&id=${id}`,\r\n {},\r\n {\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n );\r\n return response.data;\r\n });\r\n }\r\n}\r\n\r\nexport default new TrainingCourseRepository() as TrainingCourseInterface;\r\n","import trainingCourseRepository from \"../../../../infrastructure/repository/impl/training-course/training_course_repository\";\r\nimport TrainingCourseInterface from \"./trainingCorseInterface\";\r\nimport { TrainingCourseRequest } from \"../../../entities/courseEvent/training_course\";\r\nimport { Instructor } from \"../../../entities/entities\";\r\n\r\nclass TrainingCourseUseCases implements TrainingCourseInterface {\r\n async get(id: number): Promise {\r\n return await trainingCourseRepository.get(id);\r\n }\r\n\r\n async getInstructors(id: number): Promise {\r\n return await trainingCourseRepository.getInstructors(id);\r\n }\r\n async enroll(id: number): Promise {\r\n return await trainingCourseRepository.enroll(id);\r\n }\r\n\r\n async unenroll(id: number): Promise {\r\n return await trainingCourseRepository.unenroll(id);\r\n }\r\n async confirmCheckinQrCode(token: string, id: number): Promise {\r\n return await trainingCourseRepository.confirmCheckinQrCode(token, id);\r\n }\r\n}\r\n\r\nexport default new TrainingCourseUseCases() as TrainingCourseInterface;\r\n","import { ActionContext } from \"vuex\";\r\nimport {\r\n Menu,\r\n TrainingCourse,\r\n TrainingCourseRequest\r\n} from \"../../../../domain/entities/courseEvent/training_course\";\r\nimport trainingCourseUseCases from \"../../../../domain/usecase/impl/training-course/trainingCourseUseCases\";\r\nimport {\r\n AttendanceAt,\r\n Instructor,\r\n User\r\n} from \"../../../../domain/entities/entities\";\r\nimport store from \"../store\";\r\nimport { dateGrouped } from \"../../../presentation/components/mixins\";\r\n\r\nclass TrainingCourseState {\r\n trainingCourse: TrainingCourse = new TrainingCourse();\r\n instructors: Instructor[] = [];\r\n enrolledUsers: User[] = [];\r\n isUserEnrolled = false;\r\n isUserAttendance = false;\r\n menuIDQrCode = 0;\r\n currentMenu: Menu = new Menu();\r\n userPercentage = 0;\r\n}\r\n\r\nconst state = new TrainingCourseState();\r\n\r\nconst mutations = {\r\n SET_TRAINING_COURSE(\r\n state: TrainingCourseState,\r\n trainingCourse: TrainingCourse\r\n ): void {\r\n state.trainingCourse = trainingCourse;\r\n },\r\n\r\n SET_INSTRUCTORS(state: TrainingCourseState, instructors: Instructor[]): void {\r\n state.instructors = instructors;\r\n },\r\n\r\n SET_ENROLL_USERS(state: TrainingCourseState, users: User[]): void {\r\n state.enrolledUsers = users;\r\n },\r\n\r\n SET_IS_USER_ENROLLED(\r\n state: TrainingCourseState,\r\n isUserEnrolled: boolean\r\n ): void {\r\n state.isUserEnrolled = isUserEnrolled;\r\n },\r\n\r\n SET_IS_USER_ATTENDANCE(\r\n state: TrainingCourseState,\r\n isUserAttendace: boolean\r\n ): void {\r\n state.isUserAttendance = isUserAttendace;\r\n },\r\n SET_MENU_ID_QR_CODE(state: TrainingCourseState, id: number): void {\r\n state.menuIDQrCode = id;\r\n },\r\n SET_CURRENT_MENU(state: TrainingCourseState, menu: Menu): void {\r\n state.currentMenu = menu;\r\n },\r\n SET_USER_PERCENTAGE(state: TrainingCourseState, percentage: number): void {\r\n state.userPercentage = percentage;\r\n }\r\n};\r\n\r\nconst actions = {\r\n /** Gets a training course.\r\n * @param commit\r\n * @param id ID of the course. */\r\n async get(\r\n { commit }: ActionContext,\r\n id: number\r\n ): Promise {\r\n try {\r\n const response: TrainingCourseRequest = await trainingCourseUseCases.get(\r\n id\r\n );\r\n commit(\"SET_TRAINING_COURSE\", response.graduation);\r\n commit(\"SET_ENROLL_USERS\", response.users);\r\n\r\n /** Checks if the user is enrolled/attendance. */\r\n const user: User = await store.getters[\"userProfile_module/user\"];\r\n if (!response.users) return;\r\n\r\n const isUserEnrolledForEvent = response.users.find(\r\n enrolledUser => enrolledUser.id === user.id\r\n );\r\n if (!isUserEnrolledForEvent) return;\r\n\r\n const userPercentage = isUserEnrolledForEvent.percentageUser || 0;\r\n commit(\"SET_USER_PERCENTAGE\", userPercentage);\r\n\r\n commit(\"SET_IS_USER_ENROLLED\", true);\r\n\r\n const menuIDQrCode = state.menuIDQrCode;\r\n\r\n if (menuIDQrCode) {\r\n const attendanceDay = isUserEnrolledForEvent.attendanceAts?.filter(\r\n (attendanceAt: AttendanceAt) => {\r\n return attendanceAt.id === menuIDQrCode;\r\n }\r\n );\r\n\r\n const currentMenu = response.graduation.menus.filter((menu: Menu) => {\r\n return menu.id === menuIDQrCode;\r\n });\r\n\r\n if (attendanceDay && attendanceDay.length) {\r\n commit(\"SET_IS_USER_ATTENDANCE\", true);\r\n }\r\n\r\n if (currentMenu.length) {\r\n commit(\"SET_CURRENT_MENU\", currentMenu[0]);\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n },\r\n\r\n async getInstructors(\r\n { commit }: ActionContext,\r\n id: number\r\n ): Promise {\r\n try {\r\n const response: Instructor[] = await trainingCourseUseCases.getInstructors(\r\n id\r\n );\r\n commit(\"SET_INSTRUCTORS\", response);\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n },\r\n\r\n async enroll(\r\n { commit }: ActionContext,\r\n id: number\r\n ): Promise {\r\n try {\r\n await trainingCourseUseCases.enroll(id);\r\n commit(\"SET_IS_USER_ENROLLED\", true);\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n },\r\n\r\n async unenroll(\r\n { commit }: ActionContext,\r\n id: number\r\n ): Promise {\r\n try {\r\n commit(\"SET_IS_USER_ENROLLED\", false);\r\n return await trainingCourseUseCases.unenroll(id);\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n },\r\n\r\n async confirmCheckinQrCode(\r\n { commit }: ActionContext,\r\n payload: { token: string; id: number }\r\n ): Promise {\r\n const response = await trainingCourseUseCases.confirmCheckinQrCode(\r\n payload.token,\r\n payload.id\r\n );\r\n commit(\"SET_IS_USER_ENROLLED\", true);\r\n commit(\"SET_IS_USER_ATTENDANCE\", true);\r\n return response;\r\n },\r\n\r\n async setMenuIDQrCode(\r\n { commit }: ActionContext,\r\n id: number\r\n ): Promise {\r\n commit(\"SET_MENU_ID_QR_CODE\", id);\r\n }\r\n};\r\n\r\nconst getters = {\r\n trainingCourse: (state: TrainingCourseState): TrainingCourse =>\r\n state.trainingCourse,\r\n instructors: (state: TrainingCourseState): Instructor[] => state.instructors,\r\n enrolledUsers: (state: TrainingCourseState): User[] => state.enrolledUsers,\r\n isUserEnrolled: (state: TrainingCourseState): boolean => state.isUserEnrolled,\r\n isUserAttendance: (state: TrainingCourseState): boolean =>\r\n state.isUserAttendance,\r\n currentMenu: (state: TrainingCourseState): Menu => state.currentMenu,\r\n userPercentage: (state: TrainingCourseState): number => state.userPercentage\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","import http from \"../../http\";\r\nimport { wrapErrorHandler } from \"../../utils/wrap_error_handler\";\r\nimport DecoinInterface from \"./decoins_interface\";\r\nimport { DecoinLimit } from \"../../../../domain/entities/decoins\";\r\n\r\nclass DecoinRepository implements DecoinInterface {\r\n async dailyDecoinLimit(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(`/api/decola/decoinsMaxDaily`);\r\n return response.data;\r\n });\r\n }\r\n\r\n async decoinDailyLimitMessageAccepted(): Promise {\r\n return wrapErrorHandler(async () => {\r\n return await http.post(`/api/decola/decoins/accept`);\r\n });\r\n }\r\n}\r\n\r\nexport default new DecoinRepository() as DecoinInterface;\r\n","import decoins_repository from \"../../../../infrastructure/repository/impl/decoins/decoins_repository\";\r\nimport DecoinInterface from \"./decoinInterface\";\r\nimport { DecoinLimit } from \"../../../entities/decoins\";\r\n\r\nclass DecoinUseCases implements DecoinInterface {\r\n async dailyDecoinLimit(): Promise {\r\n return await decoins_repository.dailyDecoinLimit();\r\n }\r\n\r\n async decoinDailyLimitMessageAccepted(): Promise {\r\n return await decoins_repository.decoinDailyLimitMessageAccepted();\r\n }\r\n}\r\n\r\nexport default new DecoinUseCases() as DecoinInterface;\r\n","import { ActionContext } from \"vuex\";\r\nimport decoinUseCase from \"../../../../domain/usecase/impl/decoin/decoinUseCase\";\r\nimport JSConfetti from \"js-confetti\";\r\nimport { DecoinLimit } from \"../../../../domain/entities/decoins\";\r\n\r\nclass DecoinsState {\r\n dailyDecoinLimit = false;\r\n acceptDailyDecoinLimitMessage = false;\r\n isVisibleDecoinsModalLimit = false;\r\n}\r\n\r\nconst state = new DecoinsState();\r\n\r\nconst mutations = {\r\n SET_DAILY_DECOIN_LIMIT(state: DecoinsState, dailyDecoinLimit: boolean): void {\r\n state.dailyDecoinLimit = dailyDecoinLimit;\r\n },\r\n SET_VISIBILITY_DECOINS_LIMIT_MODAL(\r\n state: DecoinsState,\r\n isVisible: boolean\r\n ): void {\r\n state.isVisibleDecoinsModalLimit = isVisible;\r\n },\r\n SET_ACCEPT_DAILY_DECOIN_LIMIT_MESSAGE(\r\n state: DecoinsState,\r\n acceptDailyDecoinLimitMessage: boolean\r\n ): void {\r\n state.acceptDailyDecoinLimitMessage = acceptDailyDecoinLimitMessage;\r\n }\r\n};\r\n\r\nconst actions = {\r\n async dailyDecoinLimit({\r\n commit\r\n }: ActionContext): Promise {\r\n const response: DecoinLimit = await decoinUseCase.dailyDecoinLimit();\r\n commit(\"SET_DAILY_DECOIN_LIMIT\", response.isDecoinLimitExceed);\r\n commit(\r\n \"SET_ACCEPT_DAILY_DECOIN_LIMIT_MESSAGE\",\r\n response.acceptDailyDecoinLimitMessage\r\n );\r\n },\r\n async setDecoinsLimitModal(\r\n { commit }: ActionContext,\r\n isVisible: boolean\r\n ): Promise {\r\n console.log(\"chamou\");\r\n if (state.acceptDailyDecoinLimitMessage) return;\r\n commit(\"SET_VISIBILITY_DECOINS_LIMIT_MODAL\", isVisible);\r\n if (state.isVisibleDecoinsModalLimit) {\r\n const jsConfetti = new JSConfetti();\r\n await jsConfetti.addConfetti();\r\n }\r\n },\r\n async decoinDailyLimitMessageAccepted({\r\n commit\r\n }: ActionContext): Promise {\r\n return await decoinUseCase.decoinDailyLimitMessageAccepted();\r\n }\r\n};\r\n\r\nconst getters = {\r\n dailyDecoinLimit: (state: DecoinsState): boolean => state.dailyDecoinLimit,\r\n acceptDailyDecoinLimitMessage: (state: DecoinsState): boolean =>\r\n state.acceptDailyDecoinLimitMessage,\r\n isVisibleDecoinsModalLimit: (state: DecoinsState): boolean =>\r\n state.isVisibleDecoinsModalLimit\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","export class Information {\r\n public id: number;\r\n public title: string;\r\n public question: string;\r\n public response: string;\r\n public isActive: boolean;\r\n public isLinked: boolean;\r\n public showHomePage: boolean;\r\n public lastChange: string;\r\n\r\n constructor(\r\n id = NaN,\r\n title = \"\",\r\n question = \"\",\r\n response = \"\",\r\n isActive = true,\r\n showHomePage = true,\r\n isLinked = false,\r\n lastChange = \"\"\r\n ) {\r\n this.id = id;\r\n this.title = title;\r\n this.question = question;\r\n this.response = response;\r\n this.isActive = isActive;\r\n this.isLinked = isLinked;\r\n this.showHomePage = showHomePage;\r\n this.lastChange = lastChange;\r\n }\r\n}\r\n","import { Information } from \"../../../../domain/entities/information\";\r\nimport InformationInterface from \"./information_interface\";\r\nimport { wrapErrorHandler } from \"../../utils/wrap_error_handler\";\r\nimport http from \"../../http\";\r\n\r\nclass InformationRepository implements InformationInterface {\r\n async list(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"/api/decola/faq/list\");\r\n\r\n return response.data;\r\n });\r\n }\r\n\r\n async listLandingPage(): Promise {\r\n return wrapErrorHandler(async () => {\r\n const response = await http.get(\"/api/list/faq\");\r\n\r\n return response.data;\r\n });\r\n }\r\n}\r\n\r\nexport default new InformationRepository() as InformationInterface;\r\n","import { Information } from \"../../../entities/information\";\r\nimport InformationInterface from \"./informationInterface\";\r\nimport informationRepository from \"../../../../infrastructure/repository/impl/information/information_repository\";\r\n\r\nclass InformationUseCases implements InformationInterface {\r\n async list(): Promise {\r\n return await informationRepository.list();\r\n }\r\n\r\n async listLandingPage(): Promise {\r\n return await informationRepository.listLandingPage();\r\n }\r\n}\r\n\r\nexport default new InformationUseCases() as InformationInterface;\r\n","import { Information } from \"../../../../domain/entities/information\";\r\nimport informationUseCases from \"../../../../domain/usecase/impl/information/informationUseCases\";\r\nimport { ActionTree, Module } from \"vuex\";\r\n\r\nclass InformationState {\r\n information: Information = new Information();\r\n informations: Information[] = Array();\r\n\r\n informationsLandingPage: Information[] = Array();\r\n}\r\n\r\nconst state = new InformationState();\r\n\r\nconst mutations = {\r\n SET_INFORMATIONS(state: InformationState, informations: Information[]): void {\r\n state.informations = informations;\r\n },\r\n SET_INFORMATION(state: InformationState, information: Information): void {\r\n state.information = information;\r\n },\r\n SET_INFORMATIONS_LANDING_PAGE(\r\n state: InformationState,\r\n informationsLandingPage: Information[]\r\n ): void {\r\n state.informationsLandingPage = informationsLandingPage;\r\n },\r\n};\r\n\r\nconst actions: ActionTree = {\r\n async list({ commit }): Promise {\r\n try {\r\n const response: Information[] = await informationUseCases.list();\r\n commit(\"SET_INFORMATIONS\", response);\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n },\r\n\r\n async listLandingPage({ commit }): Promise {\r\n try {\r\n const response: Information[] = await informationUseCases.listLandingPage();\r\n commit(\"SET_INFORMATIONS_LANDING_PAGE\", response);\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n },\r\n};\r\n\r\nconst getters = {\r\n information: (state: InformationState): Information => state.information,\r\n informations: (state: InformationState): Information[] => state.informations,\r\n\r\n informationsLandingPage: (state: InformationState): Information[] =>\r\n state.informationsLandingPage,\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters,\r\n} as Module;\r\n","import { createStore, ModuleTree } from \"vuex\";\r\nimport annotation_module from \"./modules/annotation_module\";\r\nimport authentication_module from \"./modules/authentication_module\";\r\nimport categories_module from \"./modules/categories_module\";\r\nimport content_module from \"./modules/content/content_module\";\r\nimport course_module from \"./modules/course_module\";\r\nimport interest_module from \"./modules/interest_module\";\r\nimport miscellany_module from \"./modules/miscellany_module\";\r\nimport userProfile_module from \"./modules/userProfile_module\";\r\nimport statement_module from \"./modules/statement_module\";\r\nimport shop_module from \"./modules/shop_module\";\r\nimport event_module from \"./modules/event_module\";\r\nimport utils_module from \"./modules/utils_module\";\r\nimport globalSearch_module from \"./modules/globalSearch_module\";\r\nimport question_module from \"./modules/question_module\";\r\nimport alert_box_module from \"./modules/alert_box_module\";\r\nimport pill_module from \"./modules/pill_module\";\r\nimport doubt_module from \"./modules/doubt_module\";\r\nimport notification_module from \"./modules/notification_module\";\r\nimport training_course_module from \"./modules/training_course_module\";\r\nimport decoins_module from \"./modules/decoins_module\";\r\nimport information_module from \"./modules/information_module\";\r\n\r\nconst modules: ModuleTree = {\r\n annotation_module,\r\n authentication_module,\r\n userProfile_module,\r\n categories_module,\r\n content_module,\r\n course_module,\r\n interest_module,\r\n miscellany_module,\r\n statement_module,\r\n shop_module,\r\n event_module,\r\n utils_module,\r\n globalSearch_module,\r\n question_module,\r\n alert_box_module,\r\n doubt_module,\r\n pill_module,\r\n notification_module,\r\n training_course_module,\r\n decoins_module,\r\n information_module,\r\n};\r\n\r\nconst store = createStore({\r\n modules\r\n});\r\n\r\nconst ObjectToArray = obj => {\r\n return Object.keys(obj).map(function(key) {\r\n return [Number(key), obj[key]];\r\n });\r\n};\r\n\r\nexport const resetStore = () => {\r\n const modulesList = ObjectToArray(modules);\r\n\r\n modulesList.forEach(module => {\r\n const classConstructor = module[1].state.constructor;\r\n module[1].state = new classConstructor();\r\n });\r\n};\r\n\r\nexport default store;\r\n","var map = {\n\t\"./admin-icon.png\": \"e1c3\",\n\t\"./admin-icon.svg\": \"52bf\",\n\t\"./arrow-user.svg\": \"d5b4\",\n\t\"./dashboard-icon.png\": \"90ca\",\n\t\"./dashboard.svg\": \"b711\",\n\t\"./events.svg\": \"7986\",\n\t\"./logout.svg\": \"90a3\",\n\t\"./menu-icon.png\": \"2d9e\",\n\t\"./order.svg\": \"dc4b\",\n\t\"./shop.png\": \"4748\",\n\t\"./shop.svg\": \"c7ef\",\n\t\"./statement.svg\": \"205d\",\n\t\"./statistics.svg\": \"d88c\",\n\t\"./user.svg\": \"34d6\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"f5fb\";","\r\n\r\n\r\n\r\n","import { render } from \"./ButtonComment.vue?vue&type=template&id=1ac57321&scoped=true\"\nimport script from \"./ButtonComment.vue?vue&type=script&lang=js\"\nexport * from \"./ButtonComment.vue?vue&type=script&lang=js\"\n\nimport \"./ButtonComment.vue?vue&type=style&index=0&id=1ac57321&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1ac57321\"]])\n\nexport default __exports__","import {\r\n Content,\r\n ContentAnnotation,\r\n ContentComplement,\r\n ContentDoubt, Question, QuestionStatus, ScormCheckpoint\r\n} from \"../../../infrastructure/presentation/views/content/helpers\";\r\nimport {CourseContentProvider} from \"./course-content-provider\";\r\nimport {InterfaceCourseUseCases} from \"../../usecase/impl/courseUseCases\";\r\nimport {EventContentProvider} from \"./event-content-provider\";\r\nimport {Rating, RatingList} from \"../rating\";\r\nimport courseContentUseCase from \"../../usecase/content_provider/course/content_repository\";\r\nimport eventContentUseCase from \"../../usecase/content_provider/event/content_repository\";\r\nimport {Instructor} from \"../entities\";\r\n\r\nexport enum ContentProviderType {\r\n COURSE,\r\n EVENT,\r\n}\r\n\r\nexport interface ContentProvider {\r\n // Return type of this content_provider provider\r\n getType(): ContentProviderType;\r\n\r\n // Return id of this content_provider provider\r\n getID(): number;\r\n\r\n\r\n getAllContents(): Promise;\r\n\r\n initializeContent(contentID): Promise;\r\n\r\n getContentByID(contentID: number): Promise;\r\n\r\n finishContentProvider(): Promise;\r\n\r\n getAllContents(): Promise;\r\n\r\n getContentByID(contentID: number): Promise;\r\n\r\n getAllComplements(id: number): Promise;\r\n\r\n createRating(contentID: number, rating: Rating): Promise;\r\n\r\n getAllRatings(contentID: number, index?: number): Promise;\r\n\r\n likeRating(ratingID: number): Promise;\r\n\r\n removeLikeRating(ratingID: number): Promise;\r\n deleteRating(ratingID: number,contentID: number): Promise\r\n\r\n createDoubt(contentID: number, contentDoubt: ContentDoubt): Promise;\r\n\r\n getAllDoubts(contentID: number): Promise;\r\n\r\n getContentInstructors(contentID: number): Promise;\r\n\r\n createContentAnnotation(contentID: number, annotation: ContentAnnotation): Promise;\r\n\r\n getAllContentAnnotations(contentID: number): Promise;\r\n\r\n updateContentAnnotation(contentID: number, annotation: ContentAnnotation): Promise;\r\n\r\n deleteContentAnnotation(contentID: number, annotationID: number): Promise;\r\n\r\n saveCheckpointSeconds(contentID: number, timestamp: number): Promise;\r\n\r\n saveCheckpointSCORM(contentID: number, scormCheckpoint: ScormCheckpoint): Promise;\r\n\r\n saveProgress(contentID: number, speedRate: number): Promise;\r\n\r\n generateQuestionnaire(contentID: number): Promise;\r\n\r\n getQuestionByPage(contentID: number, questionnaireID: number, page: number): Promise;\r\n\r\n replyQuestionByPage(contentID: number, questionnaireID: number, page: number, alternativeID: number): Promise;\r\n\r\n finishContent(contentID: number): Promise;\r\n\r\n replyDescriptiveQuestionByPage(contentID: number, questionnaireID: number, page: number, answer: string): Promise;\r\n}\r\n\r\ntype ContentProviderIDs = {\r\n providerID: number,\r\n classID: number,\r\n}\r\n\r\nclass ContentProviderBuilder {\r\n build(type: ContentProviderType, ids: ContentProviderIDs): ContentProvider {\r\n switch (type) {\r\n case ContentProviderType.COURSE:\r\n return new CourseContentProvider(\r\n ids.providerID,\r\n InterfaceCourseUseCases,\r\n courseContentUseCase\r\n );\r\n\r\n case ContentProviderType.EVENT:\r\n return new EventContentProvider(ids.providerID, ids.classID, eventContentUseCase);\r\n }\r\n }\r\n}\r\n\r\nexport const contentProviderBuilder = new ContentProviderBuilder();\r\n","import { CourseUseCases } from \"../../usecase/impl/courseUseCases\";\r\nimport { ContentProvider, ContentProviderType } from \"./content-provider\";\r\nimport {\r\n Content,\r\n ContentAnnotation,\r\n ContentComplement,\r\n ContentDoubt,\r\n Question,\r\n QuestionStatus,\r\n ScormCheckpoint\r\n} from \"../../../infrastructure/presentation/views/content/helpers\";\r\nimport {Rating, RatingList} from \"../rating\";\r\nimport { CourseContentUseCase } from \"../../usecase/content_provider/course/content_interface\";\r\nimport { Instructor } from \"../entities\";\r\n\r\nexport class CourseContentProvider implements ContentProvider {\r\n constructor(\r\n id: number,\r\n courseUseCase: CourseUseCases,\r\n contentUseCase: CourseContentUseCase\r\n ) {\r\n this._courseUseCase = courseUseCase;\r\n this._contentUseCase = contentUseCase;\r\n this._id = id;\r\n }\r\n\r\n private _courseUseCase: CourseUseCases;\r\n private _contentUseCase: CourseContentUseCase;\r\n\r\n private readonly _id: number;\r\n\r\n getID(): number {\r\n return this._id;\r\n }\r\n\r\n getType(): ContentProviderType {\r\n return ContentProviderType.COURSE;\r\n }\r\n\r\n async getAllContents(): Promise {\r\n return await this._contentUseCase.getAllContents(this._id);\r\n }\r\n\r\n async initializeContent(contentID: number): Promise {\r\n return await this._contentUseCase.initializeContent(this._id, contentID);\r\n }\r\n\r\n async getContentByID(contentID: number): Promise {\r\n return await this._contentUseCase.getContentByID(this._id, contentID);\r\n }\r\n\r\n async getAllComplements(contentID: number): Promise {\r\n return await this._contentUseCase.getAllComplements(this._id, contentID);\r\n }\r\n\r\n async createRating(contentID: number, rating: Rating): Promise {\r\n return await this._contentUseCase.createRating(this._id, contentID, rating);\r\n }\r\n\r\n async getAllRatings(contentID: number, index?: number): Promise {\r\n return await this._contentUseCase.getAllRatings(this._id, contentID, index);\r\n }\r\n\r\n async likeRating(ratingID: number): Promise {\r\n return await this._contentUseCase.likeRating(ratingID);\r\n }\r\n\r\n async removeLikeRating(ratingID: number): Promise {\r\n return await this._contentUseCase.removeLikeRating(ratingID);\r\n }\r\n\r\n async deleteRating(contentID: number, ratingID: number): Promise {\r\n return await this._contentUseCase.deleteRating(this._id, contentID, ratingID);\r\n }\r\n\r\n async createDoubt(\r\n contentID: number,\r\n contentDoubt: ContentDoubt\r\n ): Promise {\r\n return await this._contentUseCase.createDoubt(\r\n this._id,\r\n contentID,\r\n contentDoubt\r\n );\r\n }\r\n\r\n async getAllDoubts(contentID: number): Promise {\r\n return await this._contentUseCase.getAllDoubts(this._id, contentID);\r\n }\r\n\r\n async getContentInstructors(contentID: number): Promise {\r\n return await this._contentUseCase.getContentInstructors(\r\n this._id,\r\n contentID\r\n );\r\n }\r\n\r\n async createContentAnnotation(\r\n contentID: number,\r\n annotation: ContentAnnotation\r\n ): Promise {\r\n return await this._contentUseCase.createContentAnnotation(\r\n this._id,\r\n contentID,\r\n annotation\r\n );\r\n }\r\n\r\n async getAllContentAnnotations(\r\n contentID: number\r\n ): Promise {\r\n return await this._contentUseCase.getAllContentAnnotations(\r\n this._id,\r\n contentID\r\n );\r\n }\r\n\r\n async updateContentAnnotation(\r\n contentID: number,\r\n annotation: ContentAnnotation\r\n ): Promise {\r\n return await this._contentUseCase.updateContentAnnotation(\r\n this._id,\r\n contentID,\r\n annotation\r\n );\r\n }\r\n\r\n async deleteContentAnnotation(\r\n contentID: number,\r\n annotationID: number\r\n ): Promise {\r\n return await this._contentUseCase.deleteContentAnnotation(\r\n this._id,\r\n contentID,\r\n annotationID\r\n );\r\n }\r\n\r\n async saveCheckpointSeconds(\r\n contentID: number,\r\n timestamp: number\r\n ): Promise {\r\n return await this._contentUseCase.saveCheckpointSeconds(\r\n this._id,\r\n contentID,\r\n timestamp\r\n );\r\n }\r\n\r\n async saveCheckpointSCORM(\r\n contentID: number,\r\n scormCheckpoint: ScormCheckpoint\r\n ): Promise {\r\n return await this._contentUseCase.saveCheckpointSCORM(\r\n this._id,\r\n contentID,\r\n scormCheckpoint\r\n );\r\n }\r\n\r\n async saveProgress(contentID: number, speedRate: number): Promise {\r\n return await this._contentUseCase.saveProgress(\r\n this._id,\r\n contentID,\r\n speedRate\r\n );\r\n }\r\n\r\n async generateQuestionnaire(contentID: number): Promise {\r\n return await this._contentUseCase.generateQuestionnaire(\r\n this._id,\r\n contentID\r\n );\r\n }\r\n\r\n async getQuestionByPage(\r\n contentID: number,\r\n questionnaireID: number,\r\n page: number\r\n ): Promise {\r\n return await this._contentUseCase.getQuestionByPage(\r\n this._id,\r\n contentID,\r\n questionnaireID,\r\n page\r\n );\r\n }\r\n\r\n async replyQuestionByPage(\r\n contentID: number,\r\n questionnaireID: number,\r\n page: number,\r\n alternativeID: number\r\n ): Promise {\r\n return await this._contentUseCase.replyQuestionByPage(\r\n this._id,\r\n contentID,\r\n questionnaireID,\r\n page,\r\n alternativeID\r\n );\r\n }\r\n\r\n async replyDescriptiveQuestionByPage(contentID: number, questionnaireID: number, page: number, answer: string): Promise {\r\n return await this._contentUseCase.replyDescriptiveQuestionByPage(\r\n this._id,\r\n contentID,\r\n questionnaireID,\r\n page,\r\n answer\r\n );\r\n }\r\n\r\n async finishContent(contentID: number): Promise {\r\n return await this._contentUseCase.finishContent(this._id, contentID);\r\n }\r\n\r\n async finishContentProvider(): Promise {\r\n return await this._courseUseCase.finishCourse(this._id);\r\n }\r\n}\r\n","import {ContentProvider, ContentProviderType} from \"./content-provider\";\r\nimport {\r\n Content,\r\n ContentAnnotation,\r\n ContentComplement,\r\n ContentDoubt, Question, QuestionStatus, ScormCheckpoint\r\n} from \"../../../infrastructure/presentation/views/content/helpers\";\r\nimport {Rating, RatingList} from \"../rating\";\r\nimport {EventContentUseCase} from \"../../usecase/content_provider/event/content_interface\";\r\nimport {Instructor} from \"../entities\";\r\n\r\nexport class EventContentProvider implements ContentProvider {\r\n constructor(eventID: number, classID: number, contentUseCase: EventContentUseCase) {\r\n this._contentUseCase = contentUseCase;\r\n this._eventID = eventID;\r\n this._classID = classID;\r\n }\r\n\r\n private _contentUseCase: EventContentUseCase;\r\n private readonly _eventID: number;\r\n private readonly _classID: number;\r\n\r\n getID(): number {\r\n return this._eventID;\r\n }\r\n\r\n getClassID(): number {\r\n return this._classID;\r\n }\r\n\r\n getType(): ContentProviderType {\r\n return ContentProviderType.EVENT;\r\n }\r\n\r\n async getAllContents(): Promise {\r\n return await this._contentUseCase.getAllContents(this._eventID, this._classID);\r\n }\r\n\r\n async getContentByID(contentID: number): Promise {\r\n return await this._contentUseCase.getContentByID(this._eventID, this._classID, contentID);\r\n }\r\n\r\n async initializeContent(contentID: number): Promise {\r\n return await this._contentUseCase.initializeContent(this._eventID, this._classID, contentID);\r\n }\r\n\r\n async getAllComplements(contentID: number): Promise {\r\n return await this._contentUseCase.getAllComplements(this._eventID, this._classID, contentID);\r\n }\r\n\r\n async getContentInstructors(contentID: number): Promise {\r\n return await this._contentUseCase.getContentInstructors(this._eventID, this._classID, contentID);\r\n }\r\n\r\n async createContentAnnotation(contentID: number, annotation: ContentAnnotation): Promise {\r\n return await this._contentUseCase.createContentAnnotation(this._eventID, this._classID, contentID, annotation);\r\n };\r\n\r\n async getAllContentAnnotations(contentID: number): Promise {\r\n return await this._contentUseCase.getAllContentAnnotations(this._eventID, this._classID, contentID);\r\n };\r\n\r\n async updateContentAnnotation(contentID: number, annotation: ContentAnnotation): Promise {\r\n return await this._contentUseCase.updateContentAnnotation(this._eventID, this._classID, contentID, annotation);\r\n };\r\n\r\n async deleteContentAnnotation(contentID: number, annotationID: number): Promise {\r\n return await this._contentUseCase.deleteContentAnnotation(this._eventID, this._classID, contentID, annotationID);\r\n };\r\n\r\n async saveCheckpointSeconds(contentID: number, timestamp: number): Promise {\r\n return await this._contentUseCase.saveCheckpointSeconds(this._eventID, this._classID, contentID, timestamp);\r\n };\r\n\r\n async saveCheckpointSCORM(contentID: number, scormCheckpoint: ScormCheckpoint): Promise {\r\n return await this._contentUseCase.saveCheckpointSCORM(this._eventID, this._classID, contentID, scormCheckpoint);\r\n };\r\n\r\n async saveProgress(contentID: number, speedRate: number): Promise {\r\n return await this._contentUseCase.saveProgress(this._eventID, this._classID, contentID, speedRate);\r\n };\r\n\r\n async generateQuestionnaire(contentID: number): Promise {\r\n return await this._contentUseCase.generateQuestionnaire(this._eventID, this._classID, contentID);\r\n };\r\n\r\n async finishContent(contentID: number): Promise {\r\n return await this._contentUseCase.finishContent(this._eventID, this._classID, contentID);\r\n };\r\n\r\n async getQuestionByPage(contentID: number, questionnaireID: number, page: number): Promise {\r\n return await this._contentUseCase.getQuestionByPage(this._eventID, this._classID, contentID, questionnaireID, page);\r\n };\r\n\r\n async replyQuestionByPage(contentID: number, questionnaireID: number, page: number, alternativeID: number): Promise {\r\n return await this._contentUseCase.replyQuestionByPage(this._eventID, this._classID, contentID, questionnaireID, page, alternativeID);\r\n };\r\n\r\n async replyDescriptiveQuestionByPage(contentID: number, questionnaireID: number, page: number, answer: string): Promise {\r\n return await this._contentUseCase.replyDescriptiveQuestionByPage(this._eventID, this._classID, contentID, questionnaireID, page, answer);\r\n }\r\n\r\n async finishContentProvider(): Promise {\r\n // no need implementation\r\n return new Promise((resolve, reject) => resolve());\r\n };\r\n\r\n async createDoubt(contentID: number, contentDoubt: ContentDoubt): Promise {\r\n // no need implementation\r\n return new Promise((resolve, reject) => reject(\"Not implemented\"));\r\n };\r\n\r\n createRating(contentID: number, rating: Rating): Promise {\r\n // no need implementation\r\n return new Promise((resolve, reject) => reject(\"Not implemented\"));\r\n };\r\n\r\n getAllDoubts(contentID: number): Promise {\r\n // no need implementation\r\n return new Promise((resolve, reject) => reject(\"Not implemented\"));\r\n };\r\n\r\n getAllRatings(contentID: number, index?: number): Promise {\r\n // no need implementation\r\n return new Promise((resolve, reject) => reject(\"Not implemented\"));\r\n };\r\n\r\n likeRating(ratingID: number): Promise {\r\n // no need implementation\r\n return new Promise((resolve, reject) => reject(\"Not implemented\"));\r\n };\r\n\r\n removeLikeRating(ratingID: number): Promise {\r\n // no need implementation\r\n return new Promise((resolve, reject) => reject(\"Not implemented\"));\r\n };\r\n\r\n deleteRating(ratingID: number, contentID: number): Promise {\r\n // no need implementation\r\n return new Promise((resolve, reject) => reject(\"Not implemented\"));\r\n };\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Mission.vue?vue&type=style&index=0&id=51a66197&scoped=true&lang=css\"","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4f48d8a6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"footer\" }\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"\", 1)\nconst _hoisted_3 = { class: \"footer-copy\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"footer\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"span\", _hoisted_3, \" Copyright © \" + _toDisplayString(_ctx.getCurrentYear()) + \" Lince Tech. Todos os direitos reservados. \", 1)\n ]))\n}","\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"FooterGTop\",\r\n setup() {\r\n const getCurrentYear = (): number => {\r\n const currentDate = new Date();\r\n\r\n return currentDate.getFullYear();\r\n };\r\n\r\n return {\r\n getCurrentYear\r\n };\r\n }\r\n});\r\n","import { render } from \"./Footer.vue?vue&type=template&id=4f48d8a6&scoped=true&ts=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=4f48d8a6&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4f48d8a6\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Faq.vue?vue&type=style&index=0&id=f2feb374&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ResetPasswordSuccess.vue?vue&type=style&index=0&id=034ed0f3&scoped=true&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./HighLights.vue?vue&type=style&index=0&id=64d8c27d&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Header.vue?vue&type=style&index=0&id=ee99c718&scoped=true&lang=css\""],"sourceRoot":""}