{"version":3,"file":"js/app.18672e98.js","mappings":"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","sources":["webpack://eloomi-infinite-spa/webpack/runtime/chunk loaded","webpack://eloomi-infinite-spa/webpack/runtime/load script","webpack://eloomi-infinite-spa/webpack/runtime/css loading","webpack://eloomi-infinite-spa/./node_modules/@segment/analytics.js-core/build/ sync","webpack://eloomi-infinite-spa/./src/authentication/components/AuthenticationFlowPanel.vue?6383","webpack://eloomi-infinite-spa/src/authentication/components/AuthenticationFlowPanel.vue","webpack://eloomi-infinite-spa/./src/authentication/components/AuthenticationFlowPanel.vue?d7f6","webpack://eloomi-infinite-spa/./src/authentication/components/AuthenticationFlowPanel.vue","webpack://eloomi-infinite-spa/./src/authentication/components/LoginPageLayout.vue?1360","webpack://eloomi-infinite-spa/src/authentication/components/LoginPageLayout.vue","webpack://eloomi-infinite-spa/./src/authentication/components/LoginPageLayout.vue?b23f","webpack://eloomi-infinite-spa/./src/authentication/components/LoginPageLayout.vue","webpack://eloomi-infinite-spa/./src/common/components/accordion/CoreAccordion.vue?bb16","webpack://eloomi-infinite-spa/src/common/components/accordion/CoreAccordionHeader.vue","webpack://eloomi-infinite-spa/./src/common/components/accordion/CoreAccordionHeader.vue?849d","webpack://eloomi-infinite-spa/./src/common/components/accordion/CoreAccordionHeader.vue","webpack://eloomi-infinite-spa/./src/common/components/accordion/CoreAccordionHeader.vue?615c","webpack://eloomi-infinite-spa/./src/common/components/accordion/CoreAccordionContent.vue?541e","webpack://eloomi-infinite-spa/src/common/components/accordion/CoreAccordionContent.vue","webpack://eloomi-infinite-spa/./src/common/components/accordion/CoreAccordionContent.vue?285c","webpack://eloomi-infinite-spa/./src/common/components/accordion/CoreAccordionContent.vue","webpack://eloomi-infinite-spa/src/common/components/accordion/CoreAccordion.vue","webpack://eloomi-infinite-spa/./src/common/components/accordion/CoreAccordion.vue?2593","webpack://eloomi-infinite-spa/./src/common/components/accordion/CoreAccordion.vue","webpack://eloomi-infinite-spa/./src/common/components/app-header/AppHeader.vue?7554","webpack://eloomi-infinite-spa/src/common/components/app-header/AppHeader.vue","webpack://eloomi-infinite-spa/./src/common/components/app-header/AppHeader.vue?3b68","webpack://eloomi-infinite-spa/./src/common/components/app-header/AppHeader.vue","webpack://eloomi-infinite-spa/./src/common/components/app-header/DesktopHeader.vue?60a2","webpack://eloomi-infinite-spa/src/common/components/app-header/CompanyLogo.vue","webpack://eloomi-infinite-spa/./src/common/components/app-header/CompanyLogo.vue?0b75","webpack://eloomi-infinite-spa/./src/common/components/app-header/CompanyLogo.vue","webpack://eloomi-infinite-spa/./src/common/components/app-header/CompanyLogo.vue?889d","webpack://eloomi-infinite-spa/src/admin/billing/components/ChoosePlanButton.vue","webpack://eloomi-infinite-spa/./src/admin/billing/components/ChoosePlanButton.vue?823d","webpack://eloomi-infinite-spa/./src/admin/billing/components/ChoosePlanButton.vue","webpack://eloomi-infinite-spa/./src/admin/billing/components/ChoosePlanButton.vue?dd57","webpack://eloomi-infinite-spa/./src/notifications/components/NotificationMenu.vue?6e32","webpack://eloomi-infinite-spa/src/notifications/components/NotificationPanel.vue","webpack://eloomi-infinite-spa/./src/notifications/components/NotificationPanel.vue?e5b6","webpack://eloomi-infinite-spa/./src/notifications/components/NotificationPanel.vue","webpack://eloomi-infinite-spa/./src/notifications/components/NotificationPanel.vue?cb55","webpack://eloomi-infinite-spa/src/notifications/components/NotificationMenu.vue","webpack://eloomi-infinite-spa/./src/notifications/components/NotificationMenu.vue?fc54","webpack://eloomi-infinite-spa/./src/notifications/components/NotificationMenu.vue","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreMenu.vue?1727","webpack://eloomi-infinite-spa/src/common/components/menu/CoreMenuItem.vue","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreMenuItem.vue?878a","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreMenuItem.vue","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreMenuItem.vue?9a84","webpack://eloomi-infinite-spa/src/common/components/menu/CoreMenu.vue","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreMenu.vue?b6a9","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreMenu.vue","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreUserMenu.vue?8323","webpack://eloomi-infinite-spa/./src/common/mixins/content-loader.ts","webpack://eloomi-infinite-spa/src/common/components/content-loaders/TopNavigationUserProfileContentLoader.vue","webpack://eloomi-infinite-spa/./src/common/components/content-loaders/TopNavigationUserProfileContentLoader.vue?a87a","webpack://eloomi-infinite-spa/./src/common/components/content-loaders/TopNavigationUserProfileContentLoader.vue","webpack://eloomi-infinite-spa/./src/common/components/content-loaders/TopNavigationUserProfileContentLoader.vue?207d","webpack://eloomi-infinite-spa/src/common/components/menu/CoreUserMenu.vue","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreUserMenu.vue?527b","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreUserMenu.vue","webpack://eloomi-infinite-spa/./src/common/components/app-header/useTopNavigation.ts","webpack://eloomi-infinite-spa/src/common/components/app-header/DesktopHeader.vue","webpack://eloomi-infinite-spa/./src/common/components/app-header/DesktopHeader.vue?994c","webpack://eloomi-infinite-spa/./src/common/components/app-header/DesktopHeader.vue","webpack://eloomi-infinite-spa/./src/common/components/app-header/MobileHeader.vue?64be","webpack://eloomi-infinite-spa/src/common/components/app-header/MobileHeader.vue","webpack://eloomi-infinite-spa/./src/common/components/app-header/MobileHeader.vue?6570","webpack://eloomi-infinite-spa/./src/common/components/app-header/MobileHeader.vue","webpack://eloomi-infinite-spa/./src/common/components/buttons/CoreButton.vue?9696","webpack://eloomi-infinite-spa/src/common/components/buttons/CoreButton.vue","webpack://eloomi-infinite-spa/./src/common/components/buttons/CoreButton.vue?28a1","webpack://eloomi-infinite-spa/./src/common/components/buttons/CoreButton.vue","webpack://eloomi-infinite-spa/./src/common/components/controls/checkbox/CoreCheckbox.vue?cace","webpack://eloomi-infinite-spa/src/common/components/controls/checkbox/CoreCheckbox.vue","webpack://eloomi-infinite-spa/./src/common/components/controls/checkbox/CoreCheckbox.vue?2287","webpack://eloomi-infinite-spa/./src/common/components/controls/checkbox/CoreCheckbox.vue","webpack://eloomi-infinite-spa/./src/common/components/elements/media-objects/CorePicture.vue?3e56","webpack://eloomi-infinite-spa/src/common/components/elements/media-objects/CorePicture.vue","webpack://eloomi-infinite-spa/./src/common/components/elements/media-objects/CorePicture.vue?1a84","webpack://eloomi-infinite-spa/./src/common/components/elements/media-objects/CorePicture.vue","webpack://eloomi-infinite-spa/./src/common/components/error/MobileFallback.vue?ce29","webpack://eloomi-infinite-spa/src/common/components/error/ErrorMessage.vue","webpack://eloomi-infinite-spa/./src/common/components/error/ErrorMessage.vue?1f52","webpack://eloomi-infinite-spa/./src/common/components/error/ErrorMessage.vue","webpack://eloomi-infinite-spa/./src/common/components/error/ErrorMessage.vue?f4b0","webpack://eloomi-infinite-spa/./src/common/components/error/SmileyDesktopImage.vue?1983","webpack://eloomi-infinite-spa/src/common/components/error/SmileyDesktopImage.vue","webpack://eloomi-infinite-spa/./src/common/components/error/SmileyDesktopImage.vue?d8ac","webpack://eloomi-infinite-spa/./src/common/components/error/SmileyDesktopImage.vue","webpack://eloomi-infinite-spa/src/common/components/error/MobileFallback.vue","webpack://eloomi-infinite-spa/./src/common/components/error/MobileFallback.vue?9f07","webpack://eloomi-infinite-spa/./src/common/components/error/MobileFallback.vue","webpack://eloomi-infinite-spa/./src/common/components/icon/CoreShapedImage.vue?d2ef","webpack://eloomi-infinite-spa/src/common/components/icon/CoreShapedImage.vue","webpack://eloomi-infinite-spa/./src/common/components/icon/CoreShapedImage.vue?cb04","webpack://eloomi-infinite-spa/./src/common/components/icon/CoreShapedImage.vue","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreActionDropdown/CoreActionDropdown.vue?a63b","webpack://eloomi-infinite-spa/src/common/components/menu/CoreActionDropdown/CoreActionDropdown.vue","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreActionDropdown/CoreActionDropdown.vue?ba2c","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreActionDropdown/CoreActionDropdown.vue","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreActionDropdown/CoreActionMenu.vue?8a1d","webpack://eloomi-infinite-spa/src/common/components/menu/CoreActionDropdown/CoreActionMenu.vue","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreActionDropdown/CoreActionMenu.vue?23cf","webpack://eloomi-infinite-spa/./src/common/components/menu/CoreActionDropdown/CoreActionMenu.vue","webpack://eloomi-infinite-spa/src/common/components/menu/MenuBackButton.vue","webpack://eloomi-infinite-spa/./src/common/components/menu/MenuBackButton.vue?9f3e","webpack://eloomi-infinite-spa/./src/common/components/menu/MenuBackButton.vue","webpack://eloomi-infinite-spa/./src/common/components/menu/MenuBackButton.vue?f4a5","webpack://eloomi-infinite-spa/./src/common/components/modal/CoreMobileBottomDrawer.vue?27cb","webpack://eloomi-infinite-spa/src/common/components/modal/CoreMobileBottomDrawer.vue","webpack://eloomi-infinite-spa/./src/common/components/modal/CoreMobileBottomDrawer.vue?0fbd","webpack://eloomi-infinite-spa/./src/common/components/modal/CoreMobileBottomDrawer.vue","webpack://eloomi-infinite-spa/./src/common/components/progress/CoreCircleProgress.vue?51e4","webpack://eloomi-infinite-spa/src/common/components/progress/CoreCircleProgress.vue","webpack://eloomi-infinite-spa/./src/common/components/progress/CoreCircleProgress.vue?7e52","webpack://eloomi-infinite-spa/./src/common/components/progress/CoreCircleProgress.vue","webpack://eloomi-infinite-spa/./src/common/components/routing/GoBackButton.vue?2d05","webpack://eloomi-infinite-spa/src/common/components/routing/GoBackButton.vue","webpack://eloomi-infinite-spa/./src/common/components/routing/GoBackButton.vue?6b94","webpack://eloomi-infinite-spa/./src/common/components/routing/GoBackButton.vue","webpack://eloomi-infinite-spa/./src/common/components/skeleton/SkeletonLoader.vue?7c10","webpack://eloomi-infinite-spa/src/common/components/skeleton/SkeletonLoader.vue","webpack://eloomi-infinite-spa/./src/common/components/skeleton/SkeletonLoader.vue?6dc1","webpack://eloomi-infinite-spa/./src/common/components/skeleton/SkeletonLoader.vue","webpack://eloomi-infinite-spa/./src/common/components/spinner/Spinner.vue?7b5f","webpack://eloomi-infinite-spa/src/common/components/spinner/Spinner.vue","webpack://eloomi-infinite-spa/./src/common/components/spinner/Spinner.vue?31ab","webpack://eloomi-infinite-spa/./src/common/components/spinner/Spinner.vue","webpack://eloomi-infinite-spa/./src/common/components/toast/ToastNotification.vue?efda","webpack://eloomi-infinite-spa/src/common/components/toast/ToastNotification.vue","webpack://eloomi-infinite-spa/./src/common/components/toast/ToastNotification.vue?5fcd","webpack://eloomi-infinite-spa/./src/common/components/toast/ToastNotification.vue","webpack://eloomi-infinite-spa/./src/common/components/toast/ToastNotificationArea.vue?404b","webpack://eloomi-infinite-spa/src/common/components/toast/ToastNotificationArea.vue","webpack://eloomi-infinite-spa/./src/common/components/toast/ToastNotificationArea.vue?1e0d","webpack://eloomi-infinite-spa/./src/common/components/toast/ToastNotificationArea.vue","webpack://eloomi-infinite-spa/./src/common/components/transitions/FadeTransition.vue?433e","webpack://eloomi-infinite-spa/src/common/components/transitions/FadeTransition.vue","webpack://eloomi-infinite-spa/./src/common/components/transitions/FadeTransition.vue?a08f","webpack://eloomi-infinite-spa/./src/common/components/transitions/FadeTransition.vue","webpack://eloomi-infinite-spa/./src/common/layouts/CoreMainLayout.vue?97cc","webpack://eloomi-infinite-spa/src/common/layouts/CoreMainLayout.vue","webpack://eloomi-infinite-spa/./src/common/layouts/CoreMainLayout.vue?8d7d","webpack://eloomi-infinite-spa/./src/common/layouts/CoreMainLayout.vue","webpack://eloomi-infinite-spa/./src/main/MainThemeProvider.vue?8480","webpack://eloomi-infinite-spa/./src/common/services/splashscreen.ts","webpack://eloomi-infinite-spa/src/common/components/theme-provider/ThemeProvider.vue","webpack://eloomi-infinite-spa/./src/common/components/theme-provider/ThemeProvider.vue?c8b3","webpack://eloomi-infinite-spa/./src/common/components/theme-provider/ThemeProvider.vue","webpack://eloomi-infinite-spa/./src/common/components/theme-provider/ThemeProvider.vue?b5da","webpack://eloomi-infinite-spa/src/main/MainThemeProvider.vue","webpack://eloomi-infinite-spa/./src/main/MainThemeProvider.vue?7808","webpack://eloomi-infinite-spa/./src/main/MainThemeProvider.vue","webpack://eloomi-infinite-spa/./src/notifications/components/Notification.vue?9122","webpack://eloomi-infinite-spa/src/notifications/components/Notification.vue","webpack://eloomi-infinite-spa/./src/notifications/components/Notification.vue?86e7","webpack://eloomi-infinite-spa/./src/notifications/components/Notification.vue","webpack://eloomi-infinite-spa/./src/notifications/components/NotificationTrigger.vue?6d29","webpack://eloomi-infinite-spa/src/notifications/components/NotificationTrigger.vue","webpack://eloomi-infinite-spa/./src/notifications/components/NotificationTrigger.vue?9689","webpack://eloomi-infinite-spa/./src/notifications/components/NotificationTrigger.vue","webpack://eloomi-infinite-spa/./src/ui-kit/buttons/IconButton.vue?bd1f","webpack://eloomi-infinite-spa/src/ui-kit/buttons/IconButton.vue","webpack://eloomi-infinite-spa/./src/ui-kit/buttons/IconButton.vue?03eb","webpack://eloomi-infinite-spa/./src/ui-kit/buttons/IconButton.vue","webpack://eloomi-infinite-spa/./src/ui-kit/calendar/Calendar.vue?3552","webpack://eloomi-infinite-spa/src/ui-kit/calendar/Calendar.vue","webpack://eloomi-infinite-spa/./src/ui-kit/calendar/Calendar.vue?5641","webpack://eloomi-infinite-spa/./src/ui-kit/calendar/Calendar.vue","webpack://eloomi-infinite-spa/./src/ui-kit/dropdown-button/DropdownButton.vue?ef6e","webpack://eloomi-infinite-spa/src/ui-kit/dropdown-button/DropdownButton.vue","webpack://eloomi-infinite-spa/./src/ui-kit/dropdown-button/DropdownButton.vue?b8bb","webpack://eloomi-infinite-spa/./src/ui-kit/dropdown-button/DropdownButton.vue","webpack://eloomi-infinite-spa/./src/ui-kit/dropdown/containers/BasicDropdownContainer.vue?b225","webpack://eloomi-infinite-spa/src/ui-kit/dropdown/containers/BasicDropdownContainer.vue","webpack://eloomi-infinite-spa/./src/ui-kit/dropdown/containers/BasicDropdownContainer.vue?aa3f","webpack://eloomi-infinite-spa/./src/ui-kit/dropdown/containers/BasicDropdownContainer.vue","webpack://eloomi-infinite-spa/./src/ui-kit/dropdown/items/DropdownItem.vue?8fde","webpack://eloomi-infinite-spa/src/ui-kit/dropdown/items/DropdownItem.vue","webpack://eloomi-infinite-spa/./src/ui-kit/dropdown/items/DropdownItem.vue?f402","webpack://eloomi-infinite-spa/./src/ui-kit/dropdown/items/DropdownItem.vue","webpack://eloomi-infinite-spa/./src/ui-kit/form-field/FormField.vue?2f1a","webpack://eloomi-infinite-spa/src/ui-kit/form-field/FormField.vue","webpack://eloomi-infinite-spa/./src/ui-kit/form-field/FormField.vue?4880","webpack://eloomi-infinite-spa/./src/ui-kit/form-field/FormField.vue","webpack://eloomi-infinite-spa/./src/ui-kit/form-field/FormGroup.vue?b590","webpack://eloomi-infinite-spa/src/ui-kit/form-field/FormGroup.vue","webpack://eloomi-infinite-spa/./src/ui-kit/form-field/FormGroup.vue?eb3d","webpack://eloomi-infinite-spa/./src/ui-kit/form-field/FormGroup.vue","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/ModalWindow.vue?6920","webpack://eloomi-infinite-spa/src/ui-kit/modal-window/ModalWindowDialog.vue","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/ModalWindowDialog.vue?5efe","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/ModalWindowDialog.vue","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/ModalWindowDialog.vue?692e","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/modal-stack.composable.ts","webpack://eloomi-infinite-spa/src/ui-kit/modal-window/ModalWindow.vue","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/ModalWindow.vue?a1e3","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/ModalWindow.vue","webpack://eloomi-infinite-spa/src/ui-kit/modal-window/ModalWindowContent.vue","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/ModalWindowContent.vue?6679","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/ModalWindowContent.vue","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/ModalWindowContent.vue?f046","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/ModalWindowFooter.vue?b882","webpack://eloomi-infinite-spa/src/ui-kit/modal-window/ModalWindowFooter.vue","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/ModalWindowFooter.vue?ad6c","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/ModalWindowFooter.vue","webpack://eloomi-infinite-spa/./src/ui-kit/pinned-modal/PinnedModal.vue?b643","webpack://eloomi-infinite-spa/src/ui-kit/pinned-modal/PinnedModal.vue","webpack://eloomi-infinite-spa/./src/ui-kit/pinned-modal/PinnedModal.vue?01ab","webpack://eloomi-infinite-spa/./src/ui-kit/pinned-modal/PinnedModal.vue","webpack://eloomi-infinite-spa/./src/ui-kit/popover/Popover.vue?d998","webpack://eloomi-infinite-spa/./src/ui-kit/composables/on-click-outside.ts","webpack://eloomi-infinite-spa/./src/ui-kit/popover/options.ts","webpack://eloomi-infinite-spa/./src/ui-kit/popover/Popover.vue?9ec2","webpack://eloomi-infinite-spa/src/ui-kit/popover/Popover.vue","webpack://eloomi-infinite-spa/./src/ui-kit/composables/use-popper.ts","webpack://eloomi-infinite-spa/./src/ui-kit/popover/Popover.vue","webpack://eloomi-infinite-spa/./src/ui-kit/progress-bar/ProgressBar.vue?8829","webpack://eloomi-infinite-spa/src/ui-kit/progress-bar/ProgressBar.vue","webpack://eloomi-infinite-spa/./src/ui-kit/progress-bar/ProgressBar.vue?9e55","webpack://eloomi-infinite-spa/./src/ui-kit/progress-bar/ProgressBar.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/BasicSelector.vue?db1d","webpack://eloomi-infinite-spa/src/ui-kit/selector/BasicSelector.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/BasicSelector.vue?de14","webpack://eloomi-infinite-spa/./src/ui-kit/selector/BasicSelector.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/Selector.vue?5acf","webpack://eloomi-infinite-spa/src/ui-kit/selector/Selector.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/Selector.vue?833b","webpack://eloomi-infinite-spa/./src/ui-kit/selector/Selector.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabButton.vue?7498","webpack://eloomi-infinite-spa/src/ui-kit/tabs/TabButton.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabButton.vue?e270","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabButton.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabButtonGroup.vue?3d39","webpack://eloomi-infinite-spa/src/ui-kit/tabs/TabButtonGroup.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabButtonGroup.vue?48e2","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabButtonGroup.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabContent.vue?d09a","webpack://eloomi-infinite-spa/src/ui-kit/tabs/TabSlotWrapper.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabSlotWrapper.vue?2032","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabSlotWrapper.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabSlotWrapper.vue?7b61","webpack://eloomi-infinite-spa/src/ui-kit/tabs/TabContent.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabContent.vue?1ad9","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabContent.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/Tabs.vue?19e5","webpack://eloomi-infinite-spa/src/ui-kit/tabs/TabButtonAnimation.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabButtonAnimation.vue?e022","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabButtonAnimation.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/TabButtonAnimation.vue?6d87","webpack://eloomi-infinite-spa/src/ui-kit/tabs/Tabs.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/Tabs.vue?5105","webpack://eloomi-infinite-spa/./src/ui-kit/tabs/Tabs.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tag/RawTag.vue?fb5d","webpack://eloomi-infinite-spa/src/ui-kit/tag/RawTag.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tag/RawTag.vue?bad4","webpack://eloomi-infinite-spa/./src/ui-kit/tag/RawTag.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tag/Tag.vue?18ed","webpack://eloomi-infinite-spa/src/ui-kit/tag/Tag.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tag/Tag.vue?07b8","webpack://eloomi-infinite-spa/./src/ui-kit/tag/Tag.vue","webpack://eloomi-infinite-spa/./src/ui-kit/text-field/TextField.vue?054f","webpack://eloomi-infinite-spa/src/ui-kit/text-field/TextField.vue","webpack://eloomi-infinite-spa/./src/ui-kit/text-field/TextField.vue?baf4","webpack://eloomi-infinite-spa/./src/ui-kit/text-field/TextField.vue","webpack://eloomi-infinite-spa/./src/admin/api-tokens/routes.ts","webpack://eloomi-infinite-spa/./src/admin/billing/models/entities.enum.ts","webpack://eloomi-infinite-spa/./src/admin/billing/models/index.ts","webpack://eloomi-infinite-spa/./src/admin/billing/providers/card.ts","webpack://eloomi-infinite-spa/./src/admin/billing/providers/subscription.ts","webpack://eloomi-infinite-spa/./src/admin/billing/routes.ts","webpack://eloomi-infinite-spa/./src/common/services/back-button-accessing-page.guard.ts","webpack://eloomi-infinite-spa/./src/admin/billing/providers/account.ts","webpack://eloomi-infinite-spa/./src/admin/billing/store/billing-administration.ts","webpack://eloomi-infinite-spa/./src/admin/billing/store/subscription.ts","webpack://eloomi-infinite-spa/./src/admin/billing/providers/plans.ts","webpack://eloomi-infinite-spa/./src/admin/billing/store/plans.ts","webpack://eloomi-infinite-spa/./src/admin/composables/use-sidebar-navigation.ts","webpack://eloomi-infinite-spa/./src/admin/courses/routes.ts","webpack://eloomi-infinite-spa/./src/admin/events/routes.ts","webpack://eloomi-infinite-spa/./src/admin/groups/models/rules.ts","webpack://eloomi-infinite-spa/./src/admin/groups/providers/groups.ts","webpack://eloomi-infinite-spa/./src/admin/groups/providers/get-users.ts","webpack://eloomi-infinite-spa/./src/admin/groups/providers/unassign-users.ts","webpack://eloomi-infinite-spa/./src/admin/groups/providers/assign-user.ts","webpack://eloomi-infinite-spa/./src/admin/groups/providers/delete-groups-bulk.ts","webpack://eloomi-infinite-spa/./src/admin/groups/providers/users-number.ts","webpack://eloomi-infinite-spa/./src/admin/groups/providers/managers.ts","webpack://eloomi-infinite-spa/./src/admin/groups/providers/rules.ts","webpack://eloomi-infinite-spa/./src/admin/groups/routes.ts","webpack://eloomi-infinite-spa/./src/admin/groups/store/index.ts","webpack://eloomi-infinite-spa/./src/admin/playlists/routes.ts","webpack://eloomi-infinite-spa/./src/admin/settings/providers/custom-fields.ts","webpack://eloomi-infinite-spa/./src/admin/settings/routes.ts","webpack://eloomi-infinite-spa/./src/admin/access-feature.guard.ts","webpack://eloomi-infinite-spa/./src/admin/settings/services/sso.guard.ts","webpack://eloomi-infinite-spa/./src/admin/settings/store/index.ts","webpack://eloomi-infinite-spa/./src/admin/skills/providers/course-skills.ts","webpack://eloomi-infinite-spa/./src/admin/skills/providers/merge-integration.ts","webpack://eloomi-infinite-spa/./src/admin/skills/routes.ts","webpack://eloomi-infinite-spa/./src/admin/skills/store/index.ts","webpack://eloomi-infinite-spa/./src/admin/topics/providers/delete-categories.ts","webpack://eloomi-infinite-spa/./src/admin/topics/providers/create-edit-topic.ts","webpack://eloomi-infinite-spa/./src/admin/topics/providers/delete-topics-bulk.ts","webpack://eloomi-infinite-spa/./src/admin/topics/providers/get-topics.ts","webpack://eloomi-infinite-spa/./src/admin/topics/providers/put-topic.ts","webpack://eloomi-infinite-spa/./src/admin/topics/providers/get-categories.ts","webpack://eloomi-infinite-spa/./src/admin/topics/providers/create-edit-category.ts","webpack://eloomi-infinite-spa/./src/admin/topics/routes.ts","webpack://eloomi-infinite-spa/./src/admin/users/providers/create-user.ts","webpack://eloomi-infinite-spa/./src/admin/users/providers/user-access-roles.ts","webpack://eloomi-infinite-spa/./src/admin/users/routes.ts","webpack://eloomi-infinite-spa/./src/api/adapters/top-nav.adapter.ts","webpack://eloomi-infinite-spa/./src/api/adapters/user.adapter.ts","webpack://eloomi-infinite-spa/./src/api/dev-file-transformers.ts","webpack://eloomi-infinite-spa/./src/api/http-client.ts","webpack://eloomi-infinite-spa/./src/api/providers/admin.provider.ts","webpack://eloomi-infinite-spa/./src/api/providers/core.provider.helpers.ts","webpack://eloomi-infinite-spa/./src/api/providers/course-player.provider.ts","webpack://eloomi-infinite-spa/./src/api/providers/dashboard.provider.ts","webpack://eloomi-infinite-spa/./src/api/providers/files.provider.ts","webpack://eloomi-infinite-spa/./src/api/providers/branding.provider.ts","webpack://eloomi-infinite-spa/./src/api/providers/content.provider.ts","webpack://eloomi-infinite-spa/./src/api/providers/users.provider.ts","webpack://eloomi-infinite-spa/./src/authentication/di-tokens.ts","webpack://eloomi-infinite-spa/./src/authentication/route-definitions.ts","webpack://eloomi-infinite-spa/./src/authentication/services/errors.ts","webpack://eloomi-infinite-spa/./src/authentication/services/authentication.ts","webpack://eloomi-infinite-spa/./src/authentication/services/axios-injector.ts","webpack://eloomi-infinite-spa/./src/authentication/services/transition-guard.ts","webpack://eloomi-infinite-spa/./src/authentication/services/single-sign-on-plugin.ts","webpack://eloomi-infinite-spa/./src/authentication/services/redirection.ts","webpack://eloomi-infinite-spa/./src/authentication/services/forbidden-handler.ts","webpack://eloomi-infinite-spa/./src/authentication/services/forgot-password.ts","webpack://eloomi-infinite-spa/./src/authentication/services/token-manager.ts","webpack://eloomi-infinite-spa/./src/authentication/services/base/platform-service-base.ts","webpack://eloomi-infinite-spa/./src/authentication/services/reset-password.ts","webpack://eloomi-infinite-spa/./src/authentication/services/token-guard.ts","webpack://eloomi-infinite-spa/./src/authentication/services/activate-user.ts","webpack://eloomi-infinite-spa/./src/authentication/services/locations.ts","webpack://eloomi-infinite-spa/./src/authentication/services/login-sso-handler.ts","webpack://eloomi-infinite-spa/./src/authentication/services/parse-token-param-from-route.ts","webpack://eloomi-infinite-spa/./src/authentication/services/payload.ts","webpack://eloomi-infinite-spa/./src/authentication/services/session/session.ts","webpack://eloomi-infinite-spa/./src/authentication/services/session/session-store.ts","webpack://eloomi-infinite-spa/./src/authentication/services/session/session-refresher.ts","webpack://eloomi-infinite-spa/./src/authentication/services/session/session-manager.ts","webpack://eloomi-infinite-spa/./src/authentication/store/index.ts","webpack://eloomi-infinite-spa/./src/authentication/use-cases/login.ts","webpack://eloomi-infinite-spa/./src/authentication/use-cases/login-sso.ts","webpack://eloomi-infinite-spa/./src/authentication/use-cases/logout.ts","webpack://eloomi-infinite-spa/./src/authentication/use-cases/activate-user.ts","webpack://eloomi-infinite-spa/./src/authentication/use-cases/choose-platform.ts","webpack://eloomi-infinite-spa/./src/authentication/use-cases/forgot-password.ts","webpack://eloomi-infinite-spa/./src/authentication/use-cases/reset-password.ts","webpack://eloomi-infinite-spa/./src/common/components/filter/interfaces.ts","webpack://eloomi-infinite-spa/./src/common/components/filter/FiltersDropdown.vue?093b","webpack://eloomi-infinite-spa/src/common/components/filter/FilterOptionsMenu.vue","webpack://eloomi-infinite-spa/./src/common/components/filter/FilterOptionsMenu.vue?1802","webpack://eloomi-infinite-spa/./src/common/components/filter/FilterOptionsMenu.vue","webpack://eloomi-infinite-spa/./src/common/components/filter/FilterOptionsMenu.vue?4d25","webpack://eloomi-infinite-spa/./src/common/components/filter/FilterTypeMenu.vue?0f0c","webpack://eloomi-infinite-spa/src/common/components/filter/FilterTypeMenu.vue","webpack://eloomi-infinite-spa/./src/common/components/filter/FilterTypeMenu.vue?5baa","webpack://eloomi-infinite-spa/./src/common/components/filter/FilterTypeMenu.vue","webpack://eloomi-infinite-spa/./src/admin/courses/providers/authors.ts","webpack://eloomi-infinite-spa/./src/common/components/filter/useFiltersProvider.ts","webpack://eloomi-infinite-spa/src/common/components/filter/FiltersDropdown.vue","webpack://eloomi-infinite-spa/./src/common/components/filter/FiltersDropdown.vue?bc98","webpack://eloomi-infinite-spa/./src/common/components/filter/FiltersDropdown.vue","webpack://eloomi-infinite-spa/./src/common/components/toast/notifications.mixin.ts","webpack://eloomi-infinite-spa/./src/common/components/toast/store/actions.ts","webpack://eloomi-infinite-spa/./src/common/components/toast/store/getters.ts","webpack://eloomi-infinite-spa/./src/common/components/toast/store/mutations.ts","webpack://eloomi-infinite-spa/./src/common/components/toast/store/index.ts","webpack://eloomi-infinite-spa/./src/common/components/toast/store/state.ts","webpack://eloomi-infinite-spa/./src/common/composables/useLaunchDarkly.ts","webpack://eloomi-infinite-spa/./src/common/composables/useMobile.ts","webpack://eloomi-infinite-spa/./src/common/composables/usePlanFeatures.ts","webpack://eloomi-infinite-spa/./src/common/composables/useRoute.ts","webpack://eloomi-infinite-spa/./src/common/composables/useRouter.ts","webpack://eloomi-infinite-spa/./src/common/composables/useTranslation.ts","webpack://eloomi-infinite-spa/./src/common/constants/app-scheme.ts","webpack://eloomi-infinite-spa/./src/common/constants/breakpoints.ts","webpack://eloomi-infinite-spa/./src/common/constants/color-css-variables.ts","webpack://eloomi-infinite-spa/./src/common/mixins/core-theme.mixin.ts","webpack://eloomi-infinite-spa/./src/common/mixins/mobile-mode.mixin.ts","webpack://eloomi-infinite-spa/./src/common/models/entities.enum.ts","webpack://eloomi-infinite-spa/./src/common/models/entities-permission.enum.ts","webpack://eloomi-infinite-spa/./src/common/models/branding.model.ts","webpack://eloomi-infinite-spa/./src/common/models/top-nav-item.model.ts","webpack://eloomi-infinite-spa/./src/common/models/widget-types.enum.ts","webpack://eloomi-infinite-spa/./src/common/models/file-response.model.ts","webpack://eloomi-infinite-spa/./src/common/platform-configuration/global-variables.ts","webpack://eloomi-infinite-spa/./src/common/services/check-is-axios-error.ts","webpack://eloomi-infinite-spa/./src/common/services/convert-url-to-location.ts","webpack://eloomi-infinite-spa/./src/common/constants/base-path.ts","webpack://eloomi-infinite-spa/./src/common/services/core-query.ts","webpack://eloomi-infinite-spa/./src/common/services/date-fns.utils.ts","webpack://eloomi-infinite-spa/./src/common/services/debug-helper.ts","webpack://eloomi-infinite-spa/./src/common/services/dom-operations.ts","webpack://eloomi-infinite-spa/./src/common/services/e2e-feature-flags.ts","webpack://eloomi-infinite-spa/./src/common/services/extractAxiosData.ts","webpack://eloomi-infinite-spa/./src/common/services/get-device-platform.ts","webpack://eloomi-infinite-spa/./src/common/services/IFluentFilterCollection.ts","webpack://eloomi-infinite-spa/./src/common/services/FluentFilterCollection.ts","webpack://eloomi-infinite-spa/./src/common/services/MouseLocationService.ts","webpack://eloomi-infinite-spa/./src/common/services/cached-branding.ts","webpack://eloomi-infinite-spa/./src/common/services/cached-user-details.ts","webpack://eloomi-infinite-spa/./src/common/services/colorsUtils.ts","webpack://eloomi-infinite-spa/./src/common/services/convert-backend-response-model.ts","webpack://eloomi-infinite-spa/./src/common/services/debounce.ts","webpack://eloomi-infinite-spa/./src/common/services/detect-onscreen-keyboard.ts","webpack://eloomi-infinite-spa/./src/common/services/ellipsis.ts","webpack://eloomi-infinite-spa/./src/common/services/force-file-download.ts","webpack://eloomi-infinite-spa/./src/common/services/format-duration.ts","webpack://eloomi-infinite-spa/./src/common/services/format-number.ts","webpack://eloomi-infinite-spa/./src/common/services/formatter.ts","webpack://eloomi-infinite-spa/./src/common/services/get-text-width.ts","webpack://eloomi-infinite-spa/./src/common/services/helpers.ts","webpack://eloomi-infinite-spa/./src/common/services/highlight.ts","webpack://eloomi-infinite-spa/./src/common/services/intercom.ts","webpack://eloomi-infinite-spa/./src/common/services/override-with-branding.ts","webpack://eloomi-infinite-spa/./src/common/services/show-delayed-notification.ts","webpack://eloomi-infinite-spa/./src/common/services/sleep.ts","webpack://eloomi-infinite-spa/./src/common/services/users.ts","webpack://eloomi-infinite-spa/./src/common/services/mobile-fallback/mobile-is-unsupported-flag.ts","webpack://eloomi-infinite-spa/./src/common/services/mobile-fallback/mobile-fallback-guard.ts","webpack://eloomi-infinite-spa/./src/common/services/mobile-fallback/native-back-button-service.ts","webpack://eloomi-infinite-spa/./src/common/services/platform-resolution.ts","webpack://eloomi-infinite-spa/./src/common/services/random-id.ts","webpack://eloomi-infinite-spa/./src/common/services/redirectIf.guard.ts","webpack://eloomi-infinite-spa/./src/api/providers/platform.provider.ts","webpack://eloomi-infinite-spa/./src/common/services/segment.ts","webpack://eloomi-infinite-spa/./src/common/services/transition-common.ts","webpack://eloomi-infinite-spa/./src/common/services/utils.ts","webpack://eloomi-infinite-spa/./src/common/store/branding/store/index.ts","webpack://eloomi-infinite-spa/./src/common/store/http/index.ts","webpack://eloomi-infinite-spa/./src/common/store/mobile-mode/index.ts","webpack://eloomi-infinite-spa/./src/common/store/user-details/store/index.ts","webpack://eloomi-infinite-spa/./src/content-store/constants/index.ts","webpack://eloomi-infinite-spa/./src/content-store/providers/content-store.ts","webpack://eloomi-infinite-spa/./src/content-store/routes.ts","webpack://eloomi-infinite-spa/./src/content-store/store/index.ts","webpack://eloomi-infinite-spa/./src/courses/pages/all-courses-overview/overview-filters.ts","webpack://eloomi-infinite-spa/./src/courses/providers/course-player.ts","webpack://eloomi-infinite-spa/./src/courses/providers/personal-report.ts","webpack://eloomi-infinite-spa/./src/courses/providers/playlist-overview.ts","webpack://eloomi-infinite-spa/./src/courses/providers/user-courses-skills.ts","webpack://eloomi-infinite-spa/./src/courses/providers/user-topics.ts","webpack://eloomi-infinite-spa/./src/courses/route-definitions.ts","webpack://eloomi-infinite-spa/./src/courses/store/course-player/actions.ts","webpack://eloomi-infinite-spa/./src/courses/store/course-player/getters.ts","webpack://eloomi-infinite-spa/./src/courses/store/course-player/mutations.ts","webpack://eloomi-infinite-spa/./src/courses/store/course-player/index.ts","webpack://eloomi-infinite-spa/./src/courses/store/course-player/state.ts","webpack://eloomi-infinite-spa/./src/courses/store/actions.ts","webpack://eloomi-infinite-spa/./src/courses/store/getters.ts","webpack://eloomi-infinite-spa/./src/courses/store/mutations.ts","webpack://eloomi-infinite-spa/./src/courses/store/index.ts","webpack://eloomi-infinite-spa/./src/courses/store/state.ts","webpack://eloomi-infinite-spa/./src/courses/utils.ts","webpack://eloomi-infinite-spa/./src/di/store-factory.ts","webpack://eloomi-infinite-spa/./src/di/tokens.ts","webpack://eloomi-infinite-spa/./src/di/use-injector.ts","webpack://eloomi-infinite-spa/./src/environment.ts","webpack://eloomi-infinite-spa/./src/errorHandler/errorHandler.ts","webpack://eloomi-infinite-spa/./src/errorHandler/throw-not-found-error.ts","webpack://eloomi-infinite-spa/./src/events/routes.ts","webpack://eloomi-infinite-spa/./src/fullstory.ts","webpack://eloomi-infinite-spa/./src/launch-darkly/models/features.launch-darkly.enum.ts","webpack://eloomi-infinite-spa/./src/launch-darkly/services/cached-feature-toggles.ts","webpack://eloomi-infinite-spa/./src/launch-darkly/api/launch-darkly.provider.ts","webpack://eloomi-infinite-spa/./src/launch-darkly/services/predefined-feature-toggles.ts","webpack://eloomi-infinite-spa/./src/launch-darkly/store/index.ts","webpack://eloomi-infinite-spa/./src/ai.ts","webpack://eloomi-infinite-spa/./src/plugins/fullstory.plugin.ts","webpack://eloomi-infinite-spa/./src/common/plugins/styles.ts","webpack://eloomi-infinite-spa/src/common/layouts/CoreCardLayout.vue","webpack://eloomi-infinite-spa/./src/common/layouts/CoreCardLayout.vue?16ed","webpack://eloomi-infinite-spa/./src/common/layouts/CoreCardLayout.vue","webpack://eloomi-infinite-spa/./src/common/layouts/CoreCardLayout.vue?785d","webpack://eloomi-infinite-spa/./src/common/layouts/CoreFlexFullWidthLayout.vue?b2b5","webpack://eloomi-infinite-spa/src/common/layouts/CoreFlexFullWidthLayout.vue","webpack://eloomi-infinite-spa/./src/common/layouts/CoreFlexFullWidthLayout.vue?0526","webpack://eloomi-infinite-spa/./src/common/layouts/CoreFlexFullWidthLayout.vue","webpack://eloomi-infinite-spa/./src/common/plugins/commonLayouts.ts","webpack://eloomi-infinite-spa/./src/common/plugins/index.ts","webpack://eloomi-infinite-spa/./src/plugins/route-stack.plugin.ts","webpack://eloomi-infinite-spa/./src/common/directives/custom-model.ts","webpack://eloomi-infinite-spa/./src/plugins/injector.plugin.ts","webpack://eloomi-infinite-spa/./src/authentication/services/reset-session-data.ts","webpack://eloomi-infinite-spa/./src/permissions/services/vue-router-adapter.ts","webpack://eloomi-infinite-spa/./src/permissions/services/user-profile-provider.ts","webpack://eloomi-infinite-spa/./src/di/base-injector.ts","webpack://eloomi-infinite-spa/./src/di/injector.ts","webpack://eloomi-infinite-spa/./src/authentication/di.ts","webpack://eloomi-infinite-spa/./src/permissions/di.ts","webpack://eloomi-infinite-spa/./src/common/services/correct-view-height.ts","webpack://eloomi-infinite-spa/src/App.vue","webpack://eloomi-infinite-spa/./src/App.vue?02a5","webpack://eloomi-infinite-spa/./src/App.vue","webpack://eloomi-infinite-spa/./src/App.vue?6144","webpack://eloomi-infinite-spa/./src/authentication/page/PlatformNotFoundPage.vue?f087","webpack://eloomi-infinite-spa/src/authentication/page/PlatformNotFoundPage.vue","webpack://eloomi-infinite-spa/./src/authentication/page/PlatformNotFoundPage.vue?fa5e","webpack://eloomi-infinite-spa/./src/authentication/page/PlatformNotFoundPage.vue","webpack://eloomi-infinite-spa/./src/common/services/subscribe-for-deep-link-open.ts","webpack://eloomi-infinite-spa/./src/main.ts","webpack://eloomi-infinite-spa/./src/common/services/capacitor-css.ts","webpack://eloomi-infinite-spa/./src/authentication/controllers/enable-middleware.ts","webpack://eloomi-infinite-spa/./src/api/config.ts","webpack://eloomi-infinite-spa/./src/common/services/detect-browser.ts","webpack://eloomi-infinite-spa/./src/render-app.ts","webpack://eloomi-infinite-spa/./src/admin/routes.ts","webpack://eloomi-infinite-spa/./src/courses/routes.ts","webpack://eloomi-infinite-spa/./src/authentication/services/instant-login-redirection.ts","webpack://eloomi-infinite-spa/./src/authentication/routes.ts","webpack://eloomi-infinite-spa/./src/main/pseudoRoutes.ts","webpack://eloomi-infinite-spa/./src/main/routes.ts","webpack://eloomi-infinite-spa/./src/main/baseRouter.ts","webpack://eloomi-infinite-spa/./src/common/services/sync-document-title-with-route.ts","webpack://eloomi-infinite-spa/./src/main/baseStore.ts","webpack://eloomi-infinite-spa/./src/common/services/create-smart-store.ts","webpack://eloomi-infinite-spa/src/main/pages/MobileFallbackPage.vue","webpack://eloomi-infinite-spa/./src/main/pages/MobileFallbackPage.vue?fe7f","webpack://eloomi-infinite-spa/./src/main/pages/MobileFallbackPage.vue","webpack://eloomi-infinite-spa/./src/main/pages/MobileFallbackPage.vue?056d","webpack://eloomi-infinite-spa/./src/main/errorRoutes.ts","webpack://eloomi-infinite-spa/./src/main/multipleGuardsHandler.ts","webpack://eloomi-infinite-spa/./src/notifications/services/misc.ts","webpack://eloomi-infinite-spa/./src/notifications/services/push-notifications.ts","webpack://eloomi-infinite-spa/./src/notifications/services/notification-tap-handler.ts","webpack://eloomi-infinite-spa/./src/notifications/providers/index.ts","webpack://eloomi-infinite-spa/./src/notifications/store/index.ts","webpack://eloomi-infinite-spa/./src/notifications/use-push-notifications.ts","webpack://eloomi-infinite-spa/./src/open-in-app/store.ts","webpack://eloomi-infinite-spa/./src/permissions/composables/use-permissions.ts","webpack://eloomi-infinite-spa/./src/permissions/controllers.ts","webpack://eloomi-infinite-spa/./src/permissions/di-tokens.ts","webpack://eloomi-infinite-spa/./src/permissions/domain.ts","webpack://eloomi-infinite-spa/./src/permissions/use-cases/check-permissions.ts","webpack://eloomi-infinite-spa/./src/permissions/use-cases/route-guard.ts","webpack://eloomi-infinite-spa/./src/plan-features/plan-features-list.ts","webpack://eloomi-infinite-spa/./src/plan-features/routes/plan-feature.guard.ts","webpack://eloomi-infinite-spa/./src/plan-features/store/index.ts","webpack://eloomi-infinite-spa/./src/profile-settings/components/self-skills-setup/SkillSetupStore.ts","webpack://eloomi-infinite-spa/./src/profile-settings/routes.ts","webpack://eloomi-infinite-spa/./src/reporting/routes.ts","webpack://eloomi-infinite-spa/./src/launch-darkly/routes/launch-darkly.guard.ts","webpack://eloomi-infinite-spa/./src/sentry.ts","webpack://eloomi-infinite-spa/./src/translations/types-generated.ts","webpack://eloomi-infinite-spa/./src/translations/types.ts","webpack://eloomi-infinite-spa/./src/translations/services/getSupportedLanguage.ts","webpack://eloomi-infinite-spa/./src/translations/services/isTranslationKey.ts","webpack://eloomi-infinite-spa/./src/translations/modules/en-GB.ts","webpack://eloomi-infinite-spa/./src/translations/store/translateKey.ts","webpack://eloomi-infinite-spa/./src/translations/store/index.ts","webpack://eloomi-infinite-spa/./src/ui-kit/composables/use-resize-observer.ts","webpack://eloomi-infinite-spa/./src/ui-kit/composables/use-element-size.ts","webpack://eloomi-infinite-spa/src/ui-kit/dropdown/containers/DropdownContainer.vue","webpack://eloomi-infinite-spa/./src/ui-kit/dropdown/containers/DropdownContainer.vue?f56c","webpack://eloomi-infinite-spa/./src/ui-kit/dropdown/containers/DropdownContainer.vue","webpack://eloomi-infinite-spa/./src/ui-kit/dropdown/containers/DropdownContainer.vue?f9ea","webpack://eloomi-infinite-spa/src/ui-kit/selector/inputs/SelectorInput.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/inputs/SelectorInput.vue?c8fd","webpack://eloomi-infinite-spa/./src/ui-kit/selector/inputs/SelectorInput.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/inputs/SelectorInput.vue?bed7","webpack://eloomi-infinite-spa/src/ui-kit/selector/inputs/SelectorSearchInput.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/inputs/SelectorSearchInput.vue?a98e","webpack://eloomi-infinite-spa/./src/ui-kit/selector/inputs/SelectorSearchInput.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/inputs/SelectorSearchInput.vue?3c2e","webpack://eloomi-infinite-spa/./src/ui-kit/selector/SelectorNoResults.vue?2554","webpack://eloomi-infinite-spa/src/ui-kit/selector/SelectorNoResults.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/SelectorNoResults.vue?6963","webpack://eloomi-infinite-spa/./src/ui-kit/selector/SelectorNoResults.vue","webpack://eloomi-infinite-spa/src/ui-kit/selector/SelectorNoOptions.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/SelectorNoOptions.vue?2624","webpack://eloomi-infinite-spa/./src/ui-kit/selector/SelectorNoOptions.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/SelectorNoOptions.vue?0776","webpack://eloomi-infinite-spa/src/ui-kit/selector/MobileSelector.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/MobileSelector.vue?b6aa","webpack://eloomi-infinite-spa/./src/ui-kit/selector/MobileSelector.vue","webpack://eloomi-infinite-spa/./src/ui-kit/selector/MobileSelector.vue?6728","webpack://eloomi-infinite-spa/src/ui-kit/tag/TagButton.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tag/TagButton.vue?7062","webpack://eloomi-infinite-spa/./src/ui-kit/tag/TagButton.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tag/TagButton.vue?982e","webpack://eloomi-infinite-spa/./src/ui-kit/tag/TagWithDropdown.vue?59b2","webpack://eloomi-infinite-spa/src/ui-kit/tag/TagWithDropdown.vue","webpack://eloomi-infinite-spa/./src/ui-kit/tag/TagWithDropdown.vue?a7a7","webpack://eloomi-infinite-spa/./src/ui-kit/tag/TagWithDropdown.vue","webpack://eloomi-infinite-spa/src/ui-kit/overlay-modal/OverlayModal.vue","webpack://eloomi-infinite-spa/./src/ui-kit/overlay-modal/OverlayModal.vue?c4b3","webpack://eloomi-infinite-spa/./src/ui-kit/overlay-modal/OverlayModal.vue","webpack://eloomi-infinite-spa/./src/ui-kit/overlay-modal/OverlayModal.vue?3b76","webpack://eloomi-infinite-spa/src/ui-kit/GroupIcon.vue","webpack://eloomi-infinite-spa/./src/ui-kit/GroupIcon.vue?b1e6","webpack://eloomi-infinite-spa/./src/ui-kit/GroupIcon.vue","webpack://eloomi-infinite-spa/./src/ui-kit/GroupIcon.vue?e961","webpack://eloomi-infinite-spa/src/ui-kit/modal-window-fullscreen-overlay/ModalWindowFullscreenOverlay.vue","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window-fullscreen-overlay/ModalWindowFullscreenOverlay.vue?371e","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window-fullscreen-overlay/ModalWindowFullscreenOverlay.vue","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window-fullscreen-overlay/ModalWindowFullscreenOverlay.vue?f3ad","webpack://eloomi-infinite-spa/src/ui-kit/radio-button/RadioButton.vue","webpack://eloomi-infinite-spa/./src/ui-kit/radio-button/RadioButton.vue?81c5","webpack://eloomi-infinite-spa/./src/ui-kit/radio-button/RadioButton.vue","webpack://eloomi-infinite-spa/./src/ui-kit/radio-button/RadioButton.vue?595c","webpack://eloomi-infinite-spa/./src/ui-kit/condition-field/ConditionField.vue?ac09","webpack://eloomi-infinite-spa/src/ui-kit/condition-field/ConditionField.vue","webpack://eloomi-infinite-spa/./src/ui-kit/condition-field/ConditionField.vue?69cf","webpack://eloomi-infinite-spa/./src/ui-kit/condition-field/ConditionField.vue","webpack://eloomi-infinite-spa/src/ui-kit/location/location-selector.vue","webpack://eloomi-infinite-spa/./src/ui-kit/location/location-selector.vue?b86c","webpack://eloomi-infinite-spa/./src/ui-kit/location/location-selector.vue","webpack://eloomi-infinite-spa/./src/ui-kit/location/location-selector.vue?76ee","webpack://eloomi-infinite-spa/./src/common/services/options-scroller.ts","webpack://eloomi-infinite-spa/src/ui-kit/time-selector/TimeSelector.vue","webpack://eloomi-infinite-spa/./src/ui-kit/time-selector/TimeSelector.vue?dd2a","webpack://eloomi-infinite-spa/./src/ui-kit/time-selector/TimeSelector.vue","webpack://eloomi-infinite-spa/./src/ui-kit/time-selector/TimeSelector.vue?b318","webpack://eloomi-infinite-spa/./src/ui-kit/modal-window/context-keys.ts","webpack://eloomi-infinite-spa/./src/whatsnew/store.ts","webpack://eloomi-infinite-spa/./src/translations/modules/ lazy ^\\.\\/.*\\.ts$ namespace object","webpack://eloomi-infinite-spa/webpack/bootstrap","webpack://eloomi-infinite-spa/webpack/runtime/amd options","webpack://eloomi-infinite-spa/webpack/runtime/compat get default export","webpack://eloomi-infinite-spa/webpack/runtime/define property getters","webpack://eloomi-infinite-spa/webpack/runtime/ensure chunk","webpack://eloomi-infinite-spa/webpack/runtime/get javascript chunk filename","webpack://eloomi-infinite-spa/webpack/runtime/get mini-css chunk filename","webpack://eloomi-infinite-spa/webpack/runtime/global","webpack://eloomi-infinite-spa/webpack/runtime/harmony module decorator","webpack://eloomi-infinite-spa/webpack/runtime/hasOwnProperty shorthand","webpack://eloomi-infinite-spa/webpack/runtime/make namespace object","webpack://eloomi-infinite-spa/webpack/runtime/node module decorator","webpack://eloomi-infinite-spa/webpack/runtime/publicPath","webpack://eloomi-infinite-spa/webpack/runtime/jsonp chunk loading","webpack://eloomi-infinite-spa/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"eloomi-infinite-spa:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var createStylesheet = (chunkId, fullhref, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"202\":1,\"371\":1,\"373\":1,\"397\":1,\"438\":1,\"870\":1,\"1312\":1,\"1395\":1,\"1517\":1,\"1759\":1,\"1843\":1,\"1897\":1,\"2012\":1,\"2107\":1,\"2189\":1,\"2300\":1,\"2397\":1,\"2551\":1,\"2631\":1,\"2680\":1,\"2918\":1,\"3087\":1,\"3106\":1,\"3133\":1,\"3227\":1,\"3314\":1,\"3495\":1,\"4157\":1,\"4587\":1,\"4620\":1,\"4938\":1,\"5635\":1,\"5750\":1,\"6031\":1,\"6461\":1,\"6542\":1,\"6922\":1,\"7004\":1,\"7102\":1,\"7109\":1,\"7122\":1,\"7150\":1,\"7158\":1,\"7240\":1,\"7359\":1,\"7467\":1,\"7549\":1,\"7594\":1,\"7672\":1,\"7778\":1,\"8020\":1,\"8292\":1,\"8326\":1,\"8398\":1,\"8459\":1,\"8886\":1,\"9090\":1,\"9271\":1,\"9770\":1,\"9983\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = () => ([]);\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 84472;\nmodule.exports = webpackEmptyContext;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[\n 'authentication-flow-panel',\n { 'center-vertically': _vm.centerVertically, 'sso-only-login': _vm.isSsoOnlyLoginMode } ]},[_c('div',{staticClass:\"logo\"},[_c('img',{attrs:{\"title\":\"logo\",\"srcset\":_vm.infiniteLogoUrl}})]),_c('form',{staticClass:\"authentication-flow-form\",on:{\"submit\":_vm.handleFormSubmit}},[_c('h1',{class:['title', ' h1-dark', { 'with-back-button': _vm.withBackButton }]},[(_vm.withBackButton)?_c('button',{staticClass:\"back-icon\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.handleBackButtonClick}},[_c('elm-arrows-arrow-left-regular-icon',{attrs:{\"size\":\"20\"}})],1):_vm._e(),_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),(_vm.description)?_c('p',{staticClass:\"paragraph-info instructions\"},[_vm._v(_vm._s(_vm.description))]):_vm._e(),_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n {{ title }}\n \n\n {{ description }}\n\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthenticationFlowPanel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthenticationFlowPanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AuthenticationFlowPanel.vue?vue&type=template&id=68dad97b&scoped=true&\"\nimport script from \"./AuthenticationFlowPanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./AuthenticationFlowPanel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AuthenticationFlowPanel.vue?vue&type=style&index=0&id=68dad97b&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68dad97b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('MainThemeProvider',{staticClass:\"main-container\"},[_c('ToastNotificationArea',{staticClass:\"toast-notifications\",attrs:{\"notifications\":_vm.notifications}}),_c('div',{staticClass:\"authentication-wrapper\"},[(_vm.withBackButton)?_c('button',{staticClass:\"back-button\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.handleBackButtonClick}},[_c('elm-arrows-arrow-left-bold-icon',{attrs:{\"size\":\"medium\"}})],1):_vm._e(),_c('div',{staticClass:\"authentication-section\"},[_vm._t(\"default\")],2),_c('div',{staticClass:\"background-section\",style:(_vm.backgroundStyles)},[(_vm.isFallbackImageUsed)?_c('picture',[_c('source',{attrs:{\"srcset\":_vm.loginImageLarge,\"type\":\"image/png\",\"media\":\"(min-width: 992px)\"}}),_c('source',{attrs:{\"srcset\":_vm.loginImageSmall,\"type\":\"image/png\"}}),_c('img',{staticClass:\"fallback-image\",attrs:{\"alt\":\"\"}})]):_c('video',{ref:\"videoElement\",staticClass:\"motion-graphics\",attrs:{\"playsinline\":\"\",\"autoplay\":\"\",\"muted\":\"\",\"disableRemotePlayback\":\"\"},domProps:{\"muted\":true}},[_c('source',{attrs:{\"src\":_vm.loginVideoH265,\"type\":\"video/mp4; codecs=hvc1\"}}),_c('source',{attrs:{\"src\":_vm.loginVideoVP9,\"type\":\"video/webm; codecs=vp9\"}})])]),_c('portal-target',{staticClass:\"modals\",attrs:{\"name\":\"modal-host\",\"multiple\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoginPageLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoginPageLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginPageLayout.vue?vue&type=template&id=2b38a80b&scoped=true&\"\nimport script from \"./LoginPageLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginPageLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoginPageLayout.vue?vue&type=style&index=0&id=2b38a80b&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b38a80b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\",class:{ active: _vm.isOpen, static: _vm.static }},[_vm._t(\"header\",function(){return [_c('CoreAccordionHeader',{class:(_vm.toggleMode + \"-mode\"),attrs:{\"additionalClasses\":_vm.headerClasses},nativeOn:{\"click\":function($event){return _vm.toggleContentVisibilityOnHeader.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"button\",fn:function(){return [_c('elm-arrows-chevron-up-regular-icon',{staticClass:\"action-icon\",class:_vm.isOpen ? 'up' : 'down',attrs:{\"size\":\"24\"},on:{\"click\":_vm.toggleContentVisibilityOnIcon}})]},proxy:true},{key:\"title\",fn:function(){return [_vm._t(\"title\")]},proxy:true}],null,true)})]},{\"isOpen\":_vm.isOpen}),_c('collapse-transition',{attrs:{\"duration\":200}},[_c('CoreAccordionContent',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOpen),expression:\"isOpen\"}],attrs:{\"additionalClasses\":_vm.contentClasses},scopedSlots:_vm._u([(_vm.$slots.body)?{key:\"body\",fn:function(){return [_vm._t(\"body\")]},proxy:true}:null],null,true)})],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreAccordionHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreAccordionHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreAccordionHeader.vue?vue&type=template&id=0887d236&scoped=true&\"\nimport script from \"./CoreAccordionHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreAccordionHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreAccordionHeader.vue?vue&type=style&index=0&id=0887d236&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0887d236\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header\",class:_vm.additionalClasses},[_vm._t(\"title\"),_vm._t(\"button\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"body\",class:_vm.classes},[_vm._t(\"body\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreAccordionContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreAccordionContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreAccordionContent.vue?vue&type=template&id=eae6c03c&scoped=true&\"\nimport script from \"./CoreAccordionContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreAccordionContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreAccordionContent.vue?vue&type=style&index=0&id=eae6c03c&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eae6c03c\",\n null\n \n)\n\nexport default component.exports","\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreAccordion.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreAccordion.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreAccordion.vue?vue&type=template&id=9320528e&scoped=true&\"\nimport script from \"./CoreAccordion.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreAccordion.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreAccordion.vue?vue&type=style&index=0&id=9320528e&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9320528e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isMobile)?_c('div',[_vm._t(\"mobile\",function(){return [_c('MobileHeader',{attrs:{\"title\":_vm.title,\"withBackButton\":_vm.withBackButton,\"withNotifications\":_vm.withNotifications},scopedSlots:_vm._u([{key:\"left\",fn:function(){return [_vm._t(\"mobile-left\")]},proxy:true},{key:\"right\",fn:function(){return [_vm._t(\"mobile-right\")]},proxy:true}],null,true)})]})],2):_c('div',[_vm._t(\"desktop\",function(){return [_c('DesktopHeader')]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppHeader.vue?vue&type=template&id=caf1e420&\"\nimport script from \"./AppHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"desktop-header\"},[_c('CompanyLogo',{staticClass:\"logo\",attrs:{\"link\":{ path: _vm.topNavigation.logo.route },\"image\":_vm.brandingLogoUrl}}),_c('CoreMenu',{staticClass:\"desktop-menu\",attrs:{\"mode\":\"horizontal\",\"menuItems\":_vm.topNavigation.main}}),_c('div',{staticClass:\"user-actions-block\"},[(_vm.isChoosePlanButtonVisible)?_c('ChoosePlanButton',{staticClass:\"plan-button\",attrs:{\"expirationDate\":_vm.expirationDate}}):_vm._e(),(_vm.isNotificationMenuVisible)?_c('NotificationMenu',{staticClass:\"notification-menu\"}):_vm._e(),_c('CoreUserMenu',{staticClass:\"desktop-user-menu\",attrs:{\"menuItems\":_vm.topNavigation.user}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CompanyLogo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CompanyLogo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CompanyLogo.vue?vue&type=template&id=ae671e7a&scoped=true&\"\nimport script from \"./CompanyLogo.vue?vue&type=script&lang=ts&\"\nexport * from \"./CompanyLogo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CompanyLogo.vue?vue&type=style&index=0&id=ae671e7a&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ae671e7a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',{attrs:{\"to\":_vm.link}},[_c('img',{staticClass:\"logo\",attrs:{\"src\":_vm.image || _vm.eloomiLogoImageUrl,\"alt\":\"\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n {{ topText }}\n \n {{ trans('spa.billing.plan-button.choose') }}\n \n \n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChoosePlanButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChoosePlanButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChoosePlanButton.vue?vue&type=template&id=ab3b11be&scoped=true&\"\nimport script from \"./ChoosePlanButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChoosePlanButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChoosePlanButton.vue?vue&type=style&index=0&id=ab3b11be&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ab3b11be\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"choose-plan\"},[_c('p',{staticClass:\"days-remaining\"},[_vm._v(_vm._s(_vm.topText))]),_c('router-link',{staticClass:\"link\",attrs:{\"to\":_vm.billingPage}},[_vm._v(\" \"+_vm._s(_vm.trans('spa.billing.plan-button.choose'))+\" \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Popover',{ref:\"popover\",attrs:{\"portal\":\"toast-notifications-host\",\"placement\":\"bottom-end\"},on:{\"blur\":_vm.closeNotificationsDrawer},scopedSlots:_vm._u([{key:\"target\",fn:function(ref){\nvar isVisible = ref.isVisible;\nreturn [_c('NotificationTrigger',{attrs:{\"isActive\":isVisible,\"newNotifications\":_vm.newNotificationsCount},nativeOn:{\"click\":function($event){return _vm.toggle.apply(null, arguments)}}})]}},{key:\"content\",fn:function(){return [_c('NotificationPanel',{staticClass:\"panel\",on:{\"endReached\":_vm.loadMore}},[(_vm.notifications && _vm.notifications.length)?_vm._l((_vm.notifications),function(notification){return _c('Notification',{key:notification.id,attrs:{\"text\":_vm.getNotificationText(notification),\"imageUrl\":notification.image_url,\"isRead\":notification.is_read,\"receivedAt\":notification.created_at},on:{\"click\":function($event){return _vm.redirectFromNotification(notification)}}})}):[_c('div',{staticClass:\"notifications-empty\"},[_c('elm-alerts-info-notification-icon',{attrs:{\"size\":\"32\"}}),_c('p',{staticClass:\"notifications-empty-text\"},[_vm._v(_vm._s(_vm.trans('spa.notification.no-notifications')))])],1)]],2)]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n {{ panelTitle }}\n \n \n {{ trans('spa.notification.panel.mark-all-as-read') }}\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotificationPanel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotificationPanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationPanel.vue?vue&type=template&id=3fccace7&scoped=true&\"\nimport script from \"./NotificationPanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationPanel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationPanel.vue?vue&type=style&index=0&id=3fccace7&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fccace7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel\",style:(_vm.style)},[_c('header',{staticClass:\"panel__header\"},[_c('p',{staticClass:\"panel__title\"},[_vm._v(\" \"+_vm._s(_vm.panelTitle)+\" \")]),_c('elm-button',{attrs:{\"disabled\":_vm.newNotificationsCount === 0,\"color\":\"secondary\",\"size\":\"small\"},on:{\"click\":_vm.markAllNotificationsAsRead}},[_vm._v(\" \"+_vm._s(_vm.trans('spa.notification.panel.mark-all-as-read'))+\" \")])],1),_c('div',{staticClass:\"panel__content\"},[_c('div',{staticClass:\"panel__notifications\"},[_vm._t(\"default\"),_c('div',{directives:[{name:\"observe-visibility\",rawName:\"v-observe-visibility\",value:(_vm.triggerVisibilityChanged),expression:\"triggerVisibilityChanged\"}],staticClass:\"panel__trigger\"})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n \n \n \n {{ trans('spa.notification.no-notifications') }}\n \n \n \n \n \n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotificationMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotificationMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationMenu.vue?vue&type=template&id=04a606b2&scoped=true&\"\nimport script from \"./NotificationMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationMenu.vue?vue&type=style&index=0&id=04a606b2&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04a606b2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isMobile)?_c('div',[_c('ul',{staticClass:\"core-menu\"},_vm._l((_vm.filteredMenuItems),function(menuItem){return _c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(menuItem.string !== 'dashboard'),expression:\"menuItem.string !== 'dashboard'\"}],key:menuItem.string,staticClass:\"list-item\",on:{\"mouseenter\":function($event){return _vm.handleItemHovered(true)},\"mouseleave\":function($event){return _vm.handleItemHovered(false)}}},[_c(_vm.el(menuItem),_vm._b({tag:\"component\",staticClass:\"menu-link\"},'component',_vm.props(menuItem),false),[_c('span',[_vm._v(_vm._s(menuItem.name))])]),_c('transition',{attrs:{\"name\":\"menu-item\"}},[(menuItem.subnav && _vm.subnavExists(menuItem.subnav) && _vm.isHovered)?_c('ul',{staticClass:\"core-menu-list\"},_vm._l((menuItem.subnav),function(value,key){return _c('li',{key:key},[_c('CoreMenuItem',{attrs:{\"item\":value}})],1)}),0):_vm._e()])],1)}),0)]):_c('div',{staticClass:\"mobile-wrapper\"},_vm._l((_vm.menu),function(menuItem,index){return _c('CoreAccordion',{directives:[{name:\"show\",rawName:\"v-show\",value:(menuItem.string !== 'dashboard'),expression:\"menuItem.string !== 'dashboard'\"}],key:menuItem.string,attrs:{\"showToggle\":_vm.showToggle(menuItem),\"toggleMode\":\"header\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [(!menuItem.subnav)?_c(_vm.el(menuItem),_vm._b({tag:\"component\",staticClass:\"core-menu-list-title\",on:{\"click\":function($event){return _vm.menuClickHandler($event, menuItem)}}},'component',_vm.props(menuItem),false),[_c('span',[_vm._v(_vm._s(menuItem.name))])]):_c('a',{staticClass:\"core-menu-list-title\",on:{\"click\":function($event){return _vm.menuClickHandler($event, menuItem)}}},[_c('span',[_vm._v(_vm._s(menuItem.name))])])]},proxy:true},{key:\"body\",fn:function(){return [(menuItem.subnav)?_c('ul',{staticClass:\"core-menu-list-mobile\"},_vm._l((_vm.filterMenuItemsDictionary(menuItem.subnav)),function(item){return _c('li',{key:item.string,staticClass:\"sub-item\",class:{ active: _vm.isSubNavActive(item) },on:{\"click\":_vm.menuItemClickHandler}},[(_vm.hideOnMobile(item))?_c('CoreMenuItem',{attrs:{\"item\":item,\"color\":\"light\"}}):_vm._e()],1)}),0):_vm._e()]},proxy:true}],null,true),model:{value:(_vm.mobileItemOpen[index]),callback:function ($$v) {_vm.$set(_vm.mobileItemOpen, index, $$v)},expression:\"mobileItemOpen[index]\"}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n {{ item.name }}\n \n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreMenuItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreMenuItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreMenuItem.vue?vue&type=template&id=3593fafc&scoped=true&\"\nimport script from \"./CoreMenuItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreMenuItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreMenuItem.vue?vue&type=style&index=0&id=3593fafc&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3593fafc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.item.access)?_c(_vm.itemComponent,_vm._b({tag:\"component\",staticClass:\"core-menu-list-item\",on:{\"click\":_vm.handleCLick}},'component',_vm.itemProps,false),[_c(_vm.item.icon,{tag:\"component\",staticClass:\"menu-icon\",attrs:{\"size\":\"18\"}}),_c('span',[_vm._v(_vm._s(_vm.item.name))])],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n {{ menuItem.name }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ menuItem.name }}\n \n \n {{ menuItem.name }}\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreMenu.vue?vue&type=template&id=82b344ce&scoped=true&\"\nimport script from \"./CoreMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreMenu.vue?vue&type=style&index=0&id=82b344ce&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"82b344ce\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.authUserProfile)?_c('div',{staticClass:\"user-desktop-action-menu-container\",on:{\"mouseleave\":function($event){return _vm.userMenuToggleDebounced(false)}}},[(_vm.menuItems && _vm.authUserProfile)?_c('CoreShapedImage',{class:{ 'trigger-active': _vm.userMenuTriggerHovered },attrs:{\"size\":40,\"image\":_vm.imageUrl,\"altText\":_vm.userFullName,\"hasSubstate\":true,\"data-testid\":\"user-avatar\"},nativeOn:{\"mouseover\":function($event){return _vm.userMenuToggleDebounced(true)}}}):_vm._e(),_c('CoreActionMenu',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isUserDropdownContentShown),expression:\"isUserDropdownContentShown\"}],staticClass:\"user-icon-menu\",attrs:{\"title\":_vm.userFullName,\"data-testid\":\"user-actions-menu\"},nativeOn:{\"mouseenter\":function($event){return _vm.enterDropdownContent.apply(null, arguments)},\"mouseleave\":function($event){return _vm.userMenuToggleDebounced(false)}}},_vm._l((_vm.items),function(item){return _c('CoreMenuItem',{key:item.string,staticClass:\"core-user-menu-list-item\",attrs:{\"item\":item},on:{\"click\":function($event){return _vm.handleClick($event, item.onClick)}}})}),1)],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component } from 'vue-property-decorator';\n\n@Component({})\nexport default class ContentLoaderMixin extends Vue {\n public primaryColor: string = 'hsla(var(--before-load-darken), 0.8)';\n public secondaryColor: string = 'hsl(var(--before-load))';\n public animate: boolean = true;\n public speed: number = 2;\n}\n","\n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopNavigationUserProfileContentLoader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopNavigationUserProfileContentLoader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TopNavigationUserProfileContentLoader.vue?vue&type=template&id=75cd5996&scoped=true&\"\nimport script from \"./TopNavigationUserProfileContentLoader.vue?vue&type=script&lang=ts&\"\nexport * from \"./TopNavigationUserProfileContentLoader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TopNavigationUserProfileContentLoader.vue?vue&type=style&index=0&id=75cd5996&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"75cd5996\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"topnav-user-profile-loader\"},[_c('ContentLoader',{style:((\"height: \" + (_vm.radius * 2) + \"px\")),attrs:{\"height\":_vm.radius * 2,\"width\":_vm.radius * 2,\"speed\":_vm.speed,\"primaryColor\":_vm.primaryColor,\"secondaryColor\":_vm.secondaryColor,\"animate\":_vm.animate}},[_c('circle',{attrs:{\"cx\":_vm.radius,\"cy\":_vm.radius,\"r\":_vm.radius}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreUserMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreUserMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreUserMenu.vue?vue&type=template&id=5f1d328e&scoped=true&\"\nimport script from \"./CoreUserMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreUserMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreUserMenu.vue?vue&type=style&index=0&id=5f1d328e&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f1d328e\",\n null\n \n)\n\nexport default component.exports","import { TopNavInterface, TopNavItemInterface, TopNavUserInterface } from '@/common/interfaces';\nimport { Permissions } from '@/permissions';\nimport { useLaunchDarkly, useMobile, useTranslation } from '@/common/composables';\nimport { usePlanFeaturesStore } from '@/plan-features/store';\nimport { computed, ComputedRef } from 'vue';\nimport { usePermissions } from '@/permissions/composables/use-permissions';\nimport { useUserProfileDetailsStore } from '@/common/store/user-details/store';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { useSidebarNavigation } from '@/admin/composables/use-sidebar-navigation';\nimport { useSkillSetupStore } from '@/profile-settings/components/self-skills-setup/SkillSetupStore';\nimport { useInjector } from '@/di/use-injector';\nimport { LogoutUseCase } from '@/authentication/use-cases';\nimport '@eloomi/icons/actions/actions-log-out';\nimport '@eloomi/icons/actions/actions-user';\nimport '@eloomi/icons/actions/actions-users';\nimport '@eloomi/icons/actions/actions-people-performance';\nimport '@eloomi/icons/products-pages/products-and-pages-course';\nimport '@eloomi/icons/products-pages/products-and-pages-billing';\nimport '@eloomi/icons/products-pages/products-and-pages-branding';\nimport '@eloomi/icons/products-pages/products-and-pages-course-builder-chapter';\nimport '@eloomi/icons/products-pages/products-and-pages-segments';\nimport '@eloomi/icons/products-pages/products-and-pages-settings';\nimport '@eloomi/icons/products-pages/products-and-pages-topic';\nimport '@eloomi/icons/miscellaneous/miscellaneous-access-token';\nimport '@eloomi/icons/statistics-hierarchy/statistics-and-hierarchy-integration';\nimport '@eloomi/icons/statistics-hierarchy/statistics-and-hierarchy-organizational-structure';\nimport '@eloomi/icons/products-pages/products-and-pages-skills-regular';\nimport '@eloomi/icons/products-pages/products-and-pages-course-builder-chapter';\n\nfunction useUserNavigation(): ComputedRef {\n const { trans } = useTranslation();\n const userProfileDetailsStore = useUserProfileDetailsStore();\n const authUserProfile = computed(() => userProfileDetailsStore.state.authUserProfile);\n\n const planFeaturesStore = usePlanFeaturesStore();\n const featuresList = planFeaturesStore.state.featuresList;\n const checkIfFeatureEnabled = planFeaturesStore.getters.checkIfFeatureEnabled;\n\n const injector = useInjector();\n const logoutUseCase = injector.injectClass(LogoutUseCase);\n\n function handleSignOutClick() {\n logoutUseCase.logOut().catch(console.error);\n }\n\n const skillSetupStore = useSkillSetupStore();\n\n function showSkillSetupModal() {\n skillSetupStore.mutations.showSkillSetupModal();\n }\n\n return computed(() => {\n return {\n first_name: authUserProfile.value?.firstName,\n last_name: authUserProfile.value?.lastName,\n image_url: authUserProfile.value?.imageUrl,\n subnav: {\n skills: {\n access: checkIfFeatureEnabled(featuresList.SKILLS),\n string: 'my_skills',\n name: trans('spa.navigation.sections.user.my-skills'),\n icon: 'elm-products-and-pages-skills-regular-icon',\n route: null,\n onClick: showSkillSetupModal,\n },\n settings: {\n access: true,\n string: 'spa_settings',\n name: trans('spa.navigation.sections.user.settings'),\n route: '/profile-settings',\n icon: 'elm-products-and-pages-settings-icon',\n vueRoute: true,\n },\n sign_out: {\n access: true,\n string: 'sign_out',\n name: trans('spa.navigation.sections.user.sign-out'),\n route: null,\n icon: 'elm-actions-log-out-icon',\n onClick: handleSignOutClick,\n },\n },\n };\n });\n}\n\nfunction useAdminNavigationItem(): ComputedRef {\n const { trans } = useTranslation();\n const { isMobile } = useMobile();\n\n const { hasPermission, hasAnyPermission, hasEveryPermission } = usePermissions();\n\n const { administrationContent, adminSettingsItem } = useSidebarNavigation();\n\n const planFeaturesStore = usePlanFeaturesStore();\n const featuresList = planFeaturesStore.state.featuresList;\n const checkIfFeatureEnabled = planFeaturesStore.getters.checkIfFeatureEnabled;\n\n const { checkIfLaunchDarklyFeatureEnabled } = useLaunchDarkly();\n\n const canAccessLearningRoutes = computed(() => {\n return (\n (checkIfFeatureEnabled(featuresList.COURSES) ||\n checkIfFeatureEnabled(featuresList.EVENTS) ||\n checkIfFeatureEnabled(featuresList.PLAYLISTS)) &&\n hasAnyPermission(Permissions.AdminCourses, Permissions.AdminEvents, Permissions.AdminPlaylists)\n );\n });\n\n const hasAnyAdminMenuItem = computed(() => {\n return (\n hasAnyPermission(\n Permissions.AdminUsers,\n Permissions.AdminGroups,\n Permissions.AdminSkills,\n Permissions.AdminCategoriesTopics,\n Permissions.AdminBilling,\n Permissions.AdminBranding,\n Permissions.AdminApi\n ) || canAccessLearningRoutes.value\n );\n });\n\n function getSidebarRoutesBasedOnParentName(\n name: 'learning' | 'organization' | 'skills'\n ): string | { name: string } {\n const sidebarItem = administrationContent.value.find(item => item.name === name);\n\n if (sidebarItem && sidebarItem.children) {\n const defaultRoute = sidebarItem.children.find(child => isPageAccessible(child)) || null;\n\n if (defaultRoute && defaultRoute.location) {\n return { name: defaultRoute.location };\n }\n }\n\n return '/';\n }\n\n const firstAvailableSidebarRouteForSettings = computed(() => {\n const children = adminSettingsItem.value.children || [];\n\n const possibleRoutes = children.filter(\n item =>\n (item.featureName ? checkIfFeatureEnabled(item.featureName) : true) &&\n (item.launchDarklyFeatureName ? checkIfLaunchDarklyFeatureEnabled(item.launchDarklyFeatureName) : true)\n );\n\n if (possibleRoutes.length > 0) {\n return `/admin/settings/${possibleRoutes[0].location}`;\n }\n\n return '/';\n });\n\n function isPageAccessible({\n featureName,\n access,\n }: {\n featureName?: PlanFeaturesList | PlanFeaturesList[];\n access?: boolean;\n }) {\n return (!featureName || (featureName && checkIfFeatureEnabled(featureName))) && (access ?? true);\n }\n\n return computed(() => {\n return {\n access: hasAnyAdminMenuItem.value && !isMobile.value,\n name: trans('spa.navigation.sections.main.admin'),\n route: hasPermission(Permissions.AdminUsers) ? '/admin/users' : '/admin/courses',\n vueRoute: true,\n subnav: {\n organization: {\n access: hasAnyPermission(Permissions.AdminUsers, Permissions.AdminGroups),\n name: trans('spa.navigation.sections.admin.organization'),\n route: getSidebarRoutesBasedOnParentName('organization'),\n icon: 'elm-actions-users-icon',\n vueRoute: true,\n },\n learning: {\n access: canAccessLearningRoutes.value,\n name: trans('spa.navigation.sections.admin.learning'),\n route: getSidebarRoutesBasedOnParentName('learning'),\n icon: 'elm-products-and-pages-course-builder-chapter-icon',\n vueRoute: true,\n },\n skills: {\n access: checkIfFeatureEnabled(featuresList.SKILLS) && hasPermission(Permissions.AdminSkills),\n name: trans('spa.navigation.sections.admin.skills'),\n route: getSidebarRoutesBasedOnParentName('skills'),\n icon: 'elm-products-and-pages-skills-regular-icon',\n vueRoute: true,\n },\n categoriesAndTopics: {\n access:\n checkIfFeatureEnabled(featuresList.CATEGORIES_TOPICS) &&\n hasPermission(Permissions.AdminCategoriesTopics),\n name: trans('spa.navigation.sections.admin.categories-and-topics'),\n route: '/admin/topics',\n icon: 'elm-products-and-pages-topic-icon',\n vueRoute: true,\n },\n billing: {\n access: checkIfFeatureEnabled(featuresList.BILLING) && hasPermission(Permissions.AdminBilling),\n name: trans('spa.navigation.sections.admin.billing'),\n route: '/admin/billing',\n icon: 'elm-products-and-pages-billing-icon',\n vueRoute: true,\n },\n integrations: {\n access: checkIfFeatureEnabled(featuresList.API) && hasPermission(Permissions.AdminApi),\n name: trans('spa.navigation.sections.admin.integrations'),\n route: '/admin/integrations',\n icon: 'elm-statistics-and-hierarchy-integration-icon',\n vueRoute: true,\n },\n settings: {\n access:\n checkIfFeatureEnabled(featuresList.CUSTOM_FIELDS) &&\n hasEveryPermission(Permissions.AdminApi, Permissions.AdminBranding),\n name: trans('spa.navigation.sections.admin.settings'),\n route: firstAvailableSidebarRouteForSettings.value,\n icon: 'elm-products-and-pages-settings-icon',\n vueRoute: true,\n },\n },\n };\n });\n}\n\nexport function useTopNavigation(): ComputedRef {\n const { trans } = useTranslation();\n\n const planFeaturesStore = usePlanFeaturesStore();\n const { hasPermission, canAccessGroupReport } = usePermissions();\n const { isMobile } = useMobile();\n\n const userNavigation = useUserNavigation();\n const adminNavigationItem = useAdminNavigationItem();\n\n const featuresList = planFeaturesStore.state.featuresList;\n\n const { checkIfLaunchDarklyFeatureEnabled, launchDarklyFeaturesList } = useLaunchDarkly();\n const checkIfFeatureEnabled = planFeaturesStore.getters.checkIfFeatureEnabled;\n\n const adminUserReportsSubnav = computed>(() => ({\n myLearning: {\n access: true,\n name: trans('spa.navigation.sections.reports.my-learning'),\n route: '/admin/report',\n icon: 'elm-actions-user-icon',\n vueRoute: true,\n },\n courses: {\n access: checkIfFeatureEnabled(featuresList.COURSES) && hasPermission(Permissions.Reporting),\n name: trans('spa.navigation.sections.reports.courses'),\n route: '/admin/report/courses',\n icon: 'elm-products-and-pages-course-icon',\n vueRoute: true,\n },\n users: {\n access: hasPermission(Permissions.Reporting),\n name: trans('spa.navigation.sections.reports.users'),\n route: '/admin/report/users',\n icon: 'elm-actions-users-icon',\n vueRoute: true,\n },\n groups: {\n access:\n checkIfLaunchDarklyFeatureEnabled(launchDarklyFeaturesList.GROUPS_REPORTING_MANAGER) &&\n checkIfFeatureEnabled(featuresList.USER_PERMISSIONS) &&\n checkIfFeatureEnabled(featuresList.GROUPS) &&\n canAccessGroupReport.value,\n name: trans('spa.navigation.sections.reports.groups'),\n route: '/admin/report/group',\n icon: 'elm-statistics-and-hierarchy-organizational-structure-icon',\n vueRoute: true,\n },\n segmentReporting: {\n access: checkIfFeatureEnabled(featuresList.SEGMENT_REPORTING) && hasPermission(Permissions.Reporting),\n name: trans('spa.navigation.sections.reports.segments'),\n route: '/admin/report/segment-overview',\n icon: 'elm-products-and-pages-segments-icon',\n vueRoute: true,\n },\n skillsReport: {\n access: checkIfFeatureEnabled(featuresList.SKILLS) && hasPermission(Permissions.Reporting),\n name: trans('spa.navigation.sections.reports.skills'),\n route: '/admin/report/skills',\n icon: 'elm-products-and-pages-skills-regular-icon',\n vueRoute: true,\n },\n }));\n\n const routes = computed(() => ({\n logo: {\n route: '/courses',\n },\n main: {\n home: {\n access: true,\n name: trans('spa.navigation.sections.main.home'),\n route: '/courses',\n vueRoute: true,\n },\n learn: {\n access: true,\n name: trans('spa.navigation.sections.main.learn'),\n route: '/courses/overview',\n vueRoute: true,\n },\n userReports: {\n access: checkIfFeatureEnabled(featuresList.REPORTING) && !hasPermission(Permissions.Reporting),\n name: trans('spa.navigation.sections.main.reports'),\n route: '/report',\n vueRoute: true,\n subnav:\n checkIfLaunchDarklyFeatureEnabled(launchDarklyFeaturesList.GROUPS_REPORTING_MANAGER) &&\n checkIfFeatureEnabled(featuresList.USER_PERMISSIONS) &&\n canAccessGroupReport.value\n ? {\n myLearning: {\n access: true,\n name: trans('spa.navigation.sections.reports.my-learning'),\n route: '/report',\n icon: 'elm-actions-user-icon',\n vueRoute: true,\n },\n groups: {\n access:\n checkIfLaunchDarklyFeatureEnabled(\n launchDarklyFeaturesList.GROUPS_REPORTING_MANAGER\n ) &&\n checkIfFeatureEnabled(featuresList.USER_PERMISSIONS) &&\n canAccessGroupReport.value,\n name: trans('spa.navigation.sections.reports.groups'),\n route: '/report/group',\n icon: 'elm-statistics-and-hierarchy-organizational-structure-icon',\n vueRoute: true,\n },\n }\n : undefined,\n },\n adminUserReports: {\n access: checkIfFeatureEnabled(featuresList.REPORTING) && hasPermission(Permissions.Reporting),\n name: trans('spa.navigation.sections.main.reports'),\n route: `/admin/report${isMobile.value ? '/mobile' : ''}`,\n vueRoute: true,\n subnav: isMobile.value ? undefined : adminUserReportsSubnav.value,\n },\n admin: adminNavigationItem.value,\n },\n user: userNavigation.value,\n }));\n\n return routes;\n}\n","\n \n \n \n \n \n \n \n \n \n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DesktopHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DesktopHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DesktopHeader.vue?vue&type=template&id=6b329276&scoped=true&\"\nimport script from \"./DesktopHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./DesktopHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DesktopHeader.vue?vue&type=style&index=0&id=6b329276&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b329276\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mobile-header-wrapper\"},[_c('div',{staticClass:\"corner left-corner\"}),_c('div',{staticClass:\"corner right-corner\"}),_c('div',{staticClass:\"mobile-header\"},[_c('div',{staticClass:\"header-item left\"},[_vm._t(\"left\",function(){return [(_vm.withBackButton)?_c('GoBackButton',[_c('elm-arrows-arrow-left-bold-icon',{staticClass:\"header-arrow\",attrs:{\"size\":\"20\"}})],1):_vm._e()]})],2),_c('div',{staticClass:\"center header-item\"},[(_vm.withTitle)?_vm._t(\"center\",function(){return [(_vm.title)?_c('h4',{staticClass:\"header-title\"},[_vm._v(_vm._s(_vm.title))]):_c('router-link',{staticClass:\"logo-link\",attrs:{\"to\":\"/\"}},[_c('img',{staticClass:\"logo\",attrs:{\"alt\":\"logo of the company\",\"src\":_vm.imageUrl}})])]}):_vm._e()],2),_c('div',{staticClass:\"header-item right\"},[_vm._t(\"right\",function(){return [(_vm.withNotifications)?_c('NotificationTrigger',{attrs:{\"newNotifications\":_vm.newNotificationsCount},on:{\"click\":_vm.openNotificationsDrawer}}):_vm._e()]})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ title }}\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MobileHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MobileHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MobileHeader.vue?vue&type=template&id=0d9ede58&scoped=true&\"\nimport script from \"./MobileHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./MobileHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MobileHeader.vue?vue&type=style&index=0&id=0d9ede58&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d9ede58\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"button-container\",class:_vm.additionalClasses,attrs:{\"type\":\"button\",\"disabled\":_vm.disabled},on:{\"click\":_vm.onClick}},[_c('span',{staticClass:\"name\",class:_vm.nameClasses},[(!_vm.loading)?[_vm._t(\"default\",function(){return [_vm._v(\" \"+_vm._s(_vm.title)+\" \")]})]:_c('Spinner')],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n {{ title }}\n \n \n \n \n \n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreButton.vue?vue&type=template&id=3f22d0bc&scoped=true&\"\nimport script from \"./CoreButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreButton.vue?vue&type=style&index=0&id=3f22d0bc&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f22d0bc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"checkbox-wrapper\",class:{ checked: _vm.innerValue, disabled: _vm.disabled, hovered: _vm.hovered },attrs:{\"tabindex\":\"0\"},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.toggle.apply(null, arguments)}}},[_c('input',{attrs:{\"type\":\"checkbox\",\"disabled\":_vm.disabled},domProps:{\"value\":_vm.value}}),_c('span',{staticClass:\"core-checkbox\",style:(_vm.checkboxStyles),on:{\"click\":function($event){$event.stopPropagation();return _vm.toggle.apply(null, arguments)}}},[_vm._t(\"icon\",function(){return [_c('elm-alerts-info-approve-checkmark-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.innerValue === true),expression:\"innerValue === true\"}],staticClass:\"icon\",attrs:{\"size\":\"10\"}})]})],2),_c('span',{class:{ 'checkbox-label': _vm.label },on:{\"click\":function($event){$event.stopPropagation();return _vm.toggle.apply(null, arguments)}}},[_vm._t(\"default\",function(){return [_vm._v(_vm._s(_vm.label))]})],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n\n \n \n \n \n \n\n \n {{ label }}\n \n \n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/swc-loader/src/index.js!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreCheckbox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/swc-loader/src/index.js!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreCheckbox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreCheckbox.vue?vue&type=template&id=50bb03ee&scoped=true&\"\nimport script from \"./CoreCheckbox.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreCheckbox.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreCheckbox.vue?vue&type=style&index=0&id=50bb03ee&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50bb03ee\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"picture-wrapper\",class:_vm.wrapperClasses,style:(_vm.wrapperStyle)},[(_vm.isLoading && _vm.isImageAvailable)?_c('SkeletonLoader',{staticClass:\"picture-skeleton\",attrs:{\"width\":_vm.width,\"height\":_vm.height,\"borderRadius\":\"0\"}}):_vm._e(),(_vm.isImageAvailable)?_c('img',{staticClass:\"picture\",class:_vm.additionalClassesOnPicture,attrs:{\"src\":_vm.src,\"width\":_vm.width,\"height\":_vm.height,\"alt\":_vm.alt},on:{\"load\":_vm.handleImageLoad,\"error\":_vm.handleImageLoadError}}):(_vm.showNoImageIcon)?_c('div',{staticClass:\"icon-offset-fix\"},[_c('elm-products-and-pages-course-builder-image-icon',{staticClass:\"info-color-40\",attrs:{\"size\":_vm.iconSize}})],1):_vm._e(),(_vm.hasSlot)?_c('div',{staticClass:\"content\",class:_vm.invisibleWhileLoadingClass},[_vm._t(\"default\",null,{\"isLoading\":_vm.isLoading && _vm.isImageAvailable})],2):_vm._e(),(_vm.withShadowOverlay && _vm.isImageAvailable)?_c('div',{staticClass:\"shadow-overlay\"}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n\n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/swc-loader/src/index.js!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CorePicture.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/swc-loader/src/index.js!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CorePicture.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CorePicture.vue?vue&type=template&id=dbcbc81c&scoped=true&\"\nimport script from \"./CorePicture.vue?vue&type=script&lang=ts&\"\nexport * from \"./CorePicture.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CorePicture.vue?vue&type=style&index=0&id=dbcbc81c&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dbcbc81c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ErrorMessage',{attrs:{\"title\":_vm.trans('spa.error.content-not-available'),\"message\":_vm.trans('spa.error.use-desktop-not-mobile')}},[_c('SmileyDesktopImage')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n {{ title }}\n {{ message }}\n \n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ErrorMessage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ErrorMessage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ErrorMessage.vue?vue&type=template&id=707b197b&scoped=true&\"\nimport script from \"./ErrorMessage.vue?vue&type=script&lang=ts&\"\nexport * from \"./ErrorMessage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ErrorMessage.vue?vue&type=style&index=0&id=707b197b&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"707b197b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"error-message\"},[(_vm.hasSlot)?_c('div',{staticClass:\"error-message__icon\"},[_vm._t(\"default\")],2):_vm._e(),_c('h1',{staticClass:\"error-message__title\"},[_vm._v(_vm._s(_vm.title))]),_c('p',{staticClass:\"error-message__message\"},[_vm._v(_vm._s(_vm.message))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"width\":\"48\",\"height\":\"48\",\"viewBox\":\"0 0 48 48\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M40.5 0c4.14.004 7.496 3.36 7.5 7.5v24c-.004 4.14-3.36 7.496-7.5 7.5h-8.73l1 6H36c.828 0 1.5.672 1.5 1.5S36.828 48 36 48H12c-.828 0-1.5-.672-1.5-1.5S11.172 45 12 45h3.23l1-6H7.5C3.36 38.996.004 35.64 0 31.5v-24C.004 3.36 3.36.004 7.5 0h33zM28.73 39h-9.46l-1 6h11.46l-1-6zm16.006-6H3.264c.64 1.791 2.334 2.99 4.236 3h33c1.92 0 3.61-1.242 4.236-3zM40.5 3h-33C5.016 3.002 3.002 5.016 3 7.5V30h42V7.5c-.002-2.484-2.016-4.498-4.5-4.5zM17.266 19.892c1.837 1.686 4.239 2.622 6.732 2.626 2.494-.003 4.896-.94 6.734-2.626.396-.363.956-.486 1.467-.324.512.163.898.587 1.012 1.111.114.525-.061 1.07-.459 1.431-2.389 2.19-5.511 3.406-8.752 3.41-3.242-.004-6.365-1.22-8.754-3.412-.416-.356-.605-.91-.494-1.445.112-.536.506-.969 1.03-1.129.522-.16 1.091-.023 1.484.358zM18 9c.828 0 1.5.672 1.5 1.5v3c0 .828-.672 1.5-1.5 1.5s-1.5-.672-1.5-1.5v-3c0-.828.672-1.5 1.5-1.5zm12 0c.828 0 1.5.672 1.5 1.5v3c0 .828-.672 1.5-1.5 1.5s-1.5-.672-1.5-1.5v-3c0-.828.672-1.5 1.5-1.5z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SmileyDesktopImage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SmileyDesktopImage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmileyDesktopImage.vue?vue&type=template&id=f2c48458&\"\nimport script from \"./SmileyDesktopImage.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmileyDesktopImage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n \n \n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MobileFallback.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MobileFallback.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MobileFallback.vue?vue&type=template&id=ac74ace8&\"\nimport script from \"./MobileFallback.vue?vue&type=script&lang=ts&\"\nexport * from \"./MobileFallback.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"shaped-image-wrapper\"},[(_vm.shouldHaveSubstate)?_c('span',{staticClass:\"background-substate\",class:_vm.avatarShape}):_vm._e(),_c('span',{staticClass:\"shaped-image\",class:_vm.avatarShape,style:(_vm.avatarStyleWithBackground)},[(!_vm.isImageAvailable)?_c('span',{staticClass:\"shaped-text-string\",class:_vm.additionalClass,style:(_vm.avatarStringStyle)},[_vm._v(\" \"+_vm._s(_vm.alt)+\" \")]):(_vm.isLazy)?[(_vm.asBackground)?_c('div',{directives:[{name:\"lazy\",rawName:\"v-lazy:background-image\",value:(_vm.image),expression:\"image\",arg:\"background-image\"}],staticClass:\"image-as-background\"}):_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(_vm.image),expression:\"image\"}],staticClass:\"image\",class:_vm.avatarShape,on:{\"error\":_vm.fieldToLoadImage}})]:[(_vm.asBackground)?_c('div',{staticClass:\"image-as-background\",style:({ 'background-image': _vm.image })}):_c('img',{staticClass:\"image\",class:_vm.avatarShape,attrs:{\"src\":_vm.image},on:{\"error\":_vm.fieldToLoadImage}})]],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n {{ alt }}\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreShapedImage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreShapedImage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreShapedImage.vue?vue&type=template&id=6253b748&scoped=true&\"\nimport script from \"./CoreShapedImage.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreShapedImage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreShapedImage.vue?vue&type=style&index=0&id=6253b748&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6253b748\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"menu\",class:{ 'is-open': _vm.open }},[(!_vm.isMobile)?_c('v-popover',{attrs:{\"placement\":_vm.placement,\"trigger\":_vm.triggerType,\"delay\":{ show: 150, hide: 50 },\"popoverBaseClass\":_vm.popoverClass,\"offset\":_vm.offset,\"boundariesElement\":\"'offsetParent'\",\"open\":_vm.open},on:{\"show\":_vm.handleShow,\"hide\":_vm.handleHide},scopedSlots:_vm._u([{key:\"popover\",fn:function(){return [_c('div',{on:{\"mouseover\":function($event){return _vm.handleWhenInteractive(true)},\"mouseleave\":function($event){return _vm.handleWhenInteractive(false)},\"click\":_vm.onContentClick}},[_vm._t(\"default\")],2)]},proxy:true}],null,true)},[_c('div',{staticClass:\"menu-trigger\",class:{ outline: _vm.outline },attrs:{\"data-testid\":\"dropdown-actions-button\"},on:{\"click\":_vm.onTriggerClick}},[_vm._t(\"trigger\",function(){return [_c('CoreButton',{staticClass:\"trigger-button\",class:_vm.buttonSize},[_c('elm-menu-action-icon-icon',{staticClass:\"icon\",class:_vm.iconColor === 'primary' ? 'primary-color' : 'info-color-40',attrs:{\"size\":_vm.triggerIconSize}})],1)]},{\"open\":_vm.open})],2)]):_vm._e(),(_vm.isMobile)?_c('div',{staticClass:\"menu-trigger\",class:{ outline: _vm.outline },on:{\"click\":_vm.onTriggerClick}},[_vm._t(\"trigger\",function(){return [_c('CoreButton',{staticClass:\"trigger-button\",class:_vm.buttonSize},[_c('elm-menu-action-icon-icon',{staticClass:\"icon\",class:_vm.iconColor === 'primary' ? 'primary-color' : 'info-color'})],1)]},{\"open\":_vm.open})],2):_vm._e(),(_vm.open && _vm.isMobile)?_c('div',{staticClass:\"menu-items-wrapper\",on:{\"click\":_vm.closeDropdown}},[_vm._t(\"default\")],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/swc-loader/src/index.js!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreActionDropdown.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/swc-loader/src/index.js!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreActionDropdown.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreActionDropdown.vue?vue&type=template&id=4dedb44c&scoped=true&\"\nimport script from \"./CoreActionDropdown.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreActionDropdown.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreActionDropdown.vue?vue&type=style&index=0&id=4dedb44c&lang=less&scoped=true&\"\nimport style1 from \"./CoreActionDropdown.vue?vue&type=style&index=1&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4dedb44c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"appear\":\"\",\"mode\":\"out-in\",\"name\":\"fade-from-top\"}},[_c('div',{staticClass:\"menu-items\",style:(_vm.actionMenuWidth)},[_c('div',{staticClass:\"close-dropdown\",on:{\"click\":_vm.closeDropdown}},[_c('elm-actions-close-bold-icon',{class:_vm.triggerColor == 'primary' ? 'primary-color' : 'info-color',attrs:{\"size\":\"18\"}})],1),(_vm.title)?_c('h3',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),(_vm.label)?_c('p',{staticClass:\"group-title\"},[_vm._v(\" \"+_vm._s(_vm.label)+\" \")]):_vm._e(),_c('ul',[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n {{ title }}\n\n \n {{ label }}\n \n\n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/swc-loader/src/index.js!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreActionMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/swc-loader/src/index.js!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreActionMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreActionMenu.vue?vue&type=template&id=5e904ae7&scoped=true&\"\nimport script from \"./CoreActionMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreActionMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreActionMenu.vue?vue&type=style&index=0&id=5e904ae7&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e904ae7\",\n null\n \n)\n\nexport default component.exports","\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MenuBackButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MenuBackButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MenuBackButton.vue?vue&type=template&id=87e5ce32&scoped=true&\"\nimport script from \"./MenuBackButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./MenuBackButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MenuBackButton.vue?vue&type=style&index=0&id=87e5ce32&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"87e5ce32\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"back-menu-button\",on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('elm-arrows-arrow-left-bold-icon',{attrs:{\"size\":\"12\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('portal',{attrs:{\"to\":\"modal-host\"}},[_c('Fade',[(_vm.isVisible)?_c('div',{staticClass:\"mobile-drawer-layout\",class:_vm.classes,on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.handleCloseClick.apply(null, arguments)},\"touchend\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.handleCloseClick.apply(null, arguments)},\"touchmove\":_vm.handleTouchMove}},[(_vm.isClosable)?_c('div',{staticClass:\"mobile-drawer-header\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.handleCloseClick.apply(null, arguments)},\"touchend\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.handleCloseClick.apply(null, arguments)}}},[_c('elm-actions-close-bold-icon',{staticClass:\"close-button\",attrs:{\"size\":\"18\"},on:{\"click\":_vm.handleCloseClick}})],1):_vm._e(),_c('transition',{attrs:{\"name\":\"slide-up\"}},[_c('div',{staticClass:\"scrollable-wrapper\",class:{ 'with-bottom-padding': _vm.isKeyboardVisible },on:{\"click\":_vm.onContentClick}},[_vm._t(\"header\"),_c('div',{ref:\"drawer\",staticClass:\"mobile-drawer\",class:{ 'no-footer': !_vm.hasFooter, 'no-padding': _vm.noPadding }},[_vm._t(\"default\"),(_vm.hasFooter)?_c('div',{staticClass:\"mobile-drawer-footer\"},[_vm._t(\"footer\")],2):_vm._e()],2)],2)])],1):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n\n \n \n \n\n \n \n\n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreMobileBottomDrawer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreMobileBottomDrawer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreMobileBottomDrawer.vue?vue&type=template&id=d1b85eb8&scoped=true&\"\nimport script from \"./CoreMobileBottomDrawer.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreMobileBottomDrawer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreMobileBottomDrawer.vue?vue&type=style&index=0&id=d1b85eb8&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d1b85eb8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"progress\",style:(_vm.rootStyle),attrs:{\"width\":_vm.boundingSize,\"height\":_vm.boundingSize,\"viewPort\":(\"0 0 \" + _vm.boundingSize + \" \" + _vm.boundingSize),\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('circle',{staticClass:\"circle bg-circle\",attrs:{\"fill\":\"none\",\"r\":_vm.radius,\"cx\":_vm.centerPoint,\"cy\":_vm.centerPoint,\"stroke-dasharray\":_vm.strokeDashArray}}),_c('circle',{staticClass:\"circle progress-value\",class:_vm.progressClasses,attrs:{\"fill\":\"none\",\"r\":_vm.radius,\"cx\":_vm.centerPoint,\"cy\":_vm.centerPoint,\"stroke-dasharray\":_vm.strokeDashArray,\"stroke-dashoffset\":_vm.strokeDashOffset}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreCircleProgress.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreCircleProgress.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreCircleProgress.vue?vue&type=template&id=13b2f792&scoped=true&\"\nimport script from \"./CoreCircleProgress.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreCircleProgress.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreCircleProgress.vue?vue&type=style&index=0&id=13b2f792&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13b2f792\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"back-button\",class:{ floating: _vm.isFloating },attrs:{\"href\":_vm.route.path,\"data-testid\":\"go-back-button\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.handleBackClick.apply(null, arguments)}}},[_c('div',{staticClass:\"back-button-wrapper\"},[_vm._t(\"default\",function(){return [_c('elm-arrows-arrow-left-bold-icon',{staticClass:\"info-color\",attrs:{\"size\":\"18\"}})]})],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GoBackButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GoBackButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GoBackButton.vue?vue&type=template&id=11d94d58&scoped=true&\"\nimport script from \"./GoBackButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./GoBackButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GoBackButton.vue?vue&type=style&index=0&id=11d94d58&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11d94d58\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('SkeletonTheme',{staticClass:\"skeleton-theme\",style:({ opacity: _vm.opacity }),attrs:{\"color\":_vm.color,\"highlight\":_vm.highlightedColor}},[_c('Skeleton',{staticClass:\"skeleton\",style:({ '--border-radius': _vm.borderRadius }),attrs:{\"width\":_vm.width,\"tag\":_vm.tag,\"count\":_vm.count,\"height\":_vm.height,\"circle\":_vm.isCircle}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SkeletonLoader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SkeletonLoader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SkeletonLoader.vue?vue&type=template&id=b0cb51e4&\"\nimport script from \"./SkeletonLoader.vue?vue&type=script&lang=ts&\"\nexport * from \"./SkeletonLoader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SkeletonLoader.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"spinner\",class:_vm.color},[_c('div',{staticClass:\"bounce1\"}),_c('div',{staticClass:\"bounce2\"}),_c('div',{staticClass:\"bounce3\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Spinner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Spinner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Spinner.vue?vue&type=template&id=e7d5f028&scoped=true&\"\nimport script from \"./Spinner.vue?vue&type=script&lang=ts&\"\nexport * from \"./Spinner.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Spinner.vue?vue&type=style&index=0&id=e7d5f028&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e7d5f028\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toast-notification\",class:_vm.toastClasses},[_c('div',{staticClass:\"toast-notification__icon-area\"},[_c('div',{staticClass:\"toast-notification__icon-outer-circle\",class:_vm.themeClasses}),_c(_vm.icon,{tag:\"component\",staticClass:\"toast-notification__icon\",class:_vm.themeClasses,attrs:{\"size\":\"18\"}})],1),_c('div',{staticClass:\"toast-notification__message\"},[_vm._v(\" \"+_vm._s(_vm.message)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n {{ message }}\n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ToastNotification.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ToastNotification.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ToastNotification.vue?vue&type=template&id=1b945da6&scoped=true&\"\nimport script from \"./ToastNotification.vue?vue&type=script&lang=ts&\"\nexport * from \"./ToastNotification.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ToastNotification.vue?vue&type=style&index=0&id=1b945da6&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b945da6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition-group',{staticClass:\"notification-area\",attrs:{\"name\":\"list\",\"tag\":\"div\"}},_vm._l((_vm.notifications),function(item){return _c('ToastNotification',{key:item.id,staticClass:\"notification-area--item\",style:(_vm.getNotificationItemStyle(item)),attrs:{\"theme\":item.theme,\"message\":item.message,\"isCompact\":item.isCompact}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ToastNotificationArea.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ToastNotificationArea.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ToastNotificationArea.vue?vue&type=template&id=a1f3dfc0&scoped=true&\"\nimport script from \"./ToastNotificationArea.vue?vue&type=script&lang=ts&\"\nexport * from \"./ToastNotificationArea.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ToastNotificationArea.vue?vue&type=style&index=0&id=a1f3dfc0&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a1f3dfc0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',_vm._g(_vm._b({attrs:{\"name\":\"fade\"}},'transition',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FadeTransition.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FadeTransition.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FadeTransition.vue?vue&type=template&id=596b585e&scoped=true&\"\nimport script from \"./FadeTransition.vue?vue&type=script&lang=ts&\"\nexport * from \"./FadeTransition.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FadeTransition.vue?vue&type=style&index=0&id=596b585e&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"596b585e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"core-main-layout\",class:{\n 'has-left-sidebar': _vm.canShowLeftSidebar,\n 'left-sidebar-is-compact': _vm.canShowLeftSidebar && _vm.leftSidebarIsCompact,\n },attrs:{\"id\":\"eloomi-main-layout\"}},[_c('div',{staticClass:\"sticky-header\"},[_c('portal-target',{attrs:{\"name\":\"sticky-header\"}}),_vm._t(\"sticky-header\")],2),_vm._t(\"header\"),_c('div',{staticClass:\"content-slot\"},[(_vm.$scopedSlots['left-sidebar'])?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasLeftSidebar),expression:\"hasLeftSidebar\"}],staticClass:\"left-sidebar-slot\"},[_vm._t(\"left-sidebar\",null,{\"canBeCollapsed\":_vm.canBeCollapsed})],2):_vm._e(),_vm._t(\"content\")],2),_vm._t(\"overlay\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreMainLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreMainLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreMainLayout.vue?vue&type=template&id=6009a4bc&scoped=true&\"\nimport script from \"./CoreMainLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreMainLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreMainLayout.vue?vue&type=style&index=0&id=6009a4bc&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6009a4bc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ThemeProvider',{attrs:{\"theme\":_vm.brandingState}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Capacitor } from '@capacitor/core';\nimport { SplashScreen } from '@capacitor/splash-screen';\n\nlet isSplashScreenVisible = true;\n/** Has effect on native platforms only (ios, android) */\nexport async function hideSplashScreen(delayMs?: number) {\n if (!isSplashScreenVisible) return;\n\n if (Capacitor.isNativePlatform()) {\n return new Promise((resolve, _reject) => {\n setTimeout(async () => {\n await SplashScreen.hide();\n resolve();\n }, delayMs ?? 0);\n\n isSplashScreenVisible = false;\n });\n }\n}\n\n/** Has effect on native platforms only (ios, android) */\nexport async function showSplashScreen() {\n if (isSplashScreenVisible) return;\n\n if (Capacitor.isNativePlatform()) {\n await SplashScreen.show();\n isSplashScreenVisible = true;\n }\n}\n","\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ThemeProvider.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ThemeProvider.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ThemeProvider.vue?vue&type=template&id=16958ae5&scoped=true&\"\nimport script from \"./ThemeProvider.vue?vue&type=script&lang=ts&\"\nexport * from \"./ThemeProvider.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ThemeProvider.vue?vue&type=style&index=0&id=16958ae5&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16958ae5\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"themeProvider\"}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n","import mod from \"-!../../node_modules/swc-loader/src/index.js!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MainThemeProvider.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/swc-loader/src/index.js!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MainThemeProvider.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MainThemeProvider.vue?vue&type=template&id=1e601569&\"\nimport script from \"./MainThemeProvider.vue?vue&type=script&lang=ts&\"\nexport * from \"./MainThemeProvider.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"notification\",class:_vm.isRead && 'notification--read',on:{\"click\":_vm.emitClickEvent}},[_c('div',{staticClass:\"notification__is-read-indicator\"}),_c('div',{staticClass:\"notification__image\"},[_vm._t(\"image\",function(){return [_c('CorePicture',{staticClass:\"image\",attrs:{\"src\":_vm.imageUrl,\"size\":[40, 40],\"borderRadius\":\"small\",\"placeholderSize\":\"small\"}})]})],2),_vm._t(\"default\",function(){return [_c('p',{staticClass:\"notification__text\"},[_vm._v(_vm._s(_vm.text))])]}),(_vm.receivedTimeFormated)?_c('p',{staticClass:\"notification__received-at\"},[_vm._v(_vm._s(_vm.receivedTimeFormated))]):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n {{ text }}\n \n {{ receivedTimeFormated }}\n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Notification.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Notification.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Notification.vue?vue&type=template&id=68976537&scoped=true&\"\nimport script from \"./Notification.vue?vue&type=script&lang=ts&\"\nexport * from \"./Notification.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Notification.vue?vue&type=style&index=0&id=68976537&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68976537\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"trigger\",class:{ 'trigger--active': _vm.isActive },on:{\"click\":function($event){return _vm.$emit('click')}}},[(_vm.newNotifications)?_c('div',{staticClass:\"trigger__new-notifications\"},[_vm._v(_vm._s(_vm.numberOfNewNotifications))]):_vm._e(),_c('elm-alerts-info-notification-bold-icon',{staticClass:\"trigger__icon\",attrs:{\"size\":\"medium\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n {{ numberOfNewNotifications }}\n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotificationTrigger.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotificationTrigger.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationTrigger.vue?vue&type=template&id=341bfbcf&scoped=true&\"\nimport script from \"./NotificationTrigger.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationTrigger.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationTrigger.vue?vue&type=style&index=0&id=341bfbcf&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"341bfbcf\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"flex-center-content button-icon\",class:_vm.classes,attrs:{\"disabled\":_vm.isDisabled},on:{\"click\":_vm.emitClick}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IconButton.vue?vue&type=template&id=3d00828b&scoped=true&\"\nimport script from \"./IconButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./IconButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./IconButton.vue?vue&type=style&index=0&id=3d00828b&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d00828b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DatePicker',{ref:\"datepicker\",staticClass:\"date-picker\",class:_vm.additionalClass,attrs:{\"mode\":\"single\",\"isExpanded\":\"\",\"isRange\":_vm.isRange,\"value\":_vm.value,\"popover\":_vm.popover,\"inputProps\":_vm.inputProps,\"selectAttribute\":{\n highlight: {\n class: 'selected-date-highlight',\n contentClass: 'selected-date-content',\n },\n },\"dragAttribute\":{\n highlight: {\n class: 'selecting-date-highlight',\n contentClass: 'selecting-date-content',\n },\n },\"masks\":_vm.masks},on:{\"input\":_vm.emitInput},scopedSlots:_vm._u([(!_vm.isInline)?{key:\"default\",fn:function(ref){\n var inputValue = ref.inputValue;\n var updateValue = ref.updateValue;\n var showPopover = ref.showPopover;\n var hidePopover = ref.hidePopover;\nreturn [_c('TextField',{ref:\"textFieldRef\",attrs:{\"isInvalid\":_vm.isInvalid,\"isDisabled\":_vm.isDisabled,\"value\":_vm.convertValueToText(inputValue),\"placeholder\":_vm.placeholder,\"size\":\"small\"},on:{\"change\":function($event){return _vm.handleChangeInputEvent(updateValue, $event)},\"focus\":showPopover,\"blur\":hidePopover},scopedSlots:_vm._u([{key:\"left\",fn:function(ref){\n var focus = ref.focus;\nreturn [_vm._t(\"left\"),(_vm.withLeftIcon)?_c('elm-date-time-calendar-icon',{staticClass:\"icon-left\",attrs:{\"size\":\"18\"},on:{\"click\":function($event){return focus()}}}):_vm._e()]}}],null,true)})]}}:null],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Calendar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Calendar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Calendar.vue?vue&type=template&id=ddfe8b82&scoped=true&\"\nimport script from \"./Calendar.vue?vue&type=script&lang=ts&\"\nexport * from \"./Calendar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Calendar.vue?vue&type=style&index=0&id=ddfe8b82&lang=less&scoped=true&\"\nimport style1 from \"./Calendar.vue?vue&type=style&index=1&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ddfe8b82\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Popover',{ref:\"popover\",attrs:{\"placement\":_vm.placement,\"closeOnContentClick\":_vm.closeOnContentClick,\"popoverTestName\":_vm.testName,\"positionStrategy\":_vm.positionStrategyPopover,\"autoMaxHeight\":_vm.autoMaxHeightPopover},on:{\"hide\":_vm.handlePopoverHide},scopedSlots:_vm._u([{key:\"target\",fn:function(ref){\nvar toggle = ref.toggle;\nvar isVisible = ref.isVisible;\nreturn [_c('elm-button',{attrs:{\"active\":isVisible || _vm.isButtonActive,\"size\":_vm.size,\"color\":_vm.color,\"type\":_vm.isCompact ? 'icon' : 'icon-right',\"disabled\":_vm.isDisabled,\"loading\":_vm.isLoading,\"data-testid\":_vm.buttonTestId},on:{\"click\":toggle}},[(!_vm.isCompact)?[_vm._v(\" \"+_vm._s(_vm.title)+\" \"),(isVisible)?_c('elm-arrows-chevron-up-bold-icon',{attrs:{\"slot\":\"icon\",\"size\":_vm.size === 'large' ? '18' : '16'},slot:\"icon\"}):_c('elm-arrows-chevron-down-bold-icon',{attrs:{\"slot\":\"icon\",\"size\":_vm.size === 'large' ? '18' : '16'},slot:\"icon\"})]:_vm._t(\"compact-view\")],2)]}},{key:\"content\",fn:function(){return [_vm._t(\"custom-dropdown-container\",function(){return [_c('BasicDropdownContainer',[_vm._t(\"default\")],2)]})]},proxy:true}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n {{ title }}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DropdownButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DropdownButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropdownButton.vue?vue&type=template&id=2bcdc2bf&\"\nimport script from \"./DropdownButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropdownButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DropdownButton.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"basic-dropdown-container\",class:{ 'overlap-content': _vm.overlapContent }},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BasicDropdownContainer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BasicDropdownContainer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BasicDropdownContainer.vue?vue&type=template&id=31df940c&scoped=true&\"\nimport script from \"./BasicDropdownContainer.vue?vue&type=script&lang=ts&\"\nexport * from \"./BasicDropdownContainer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BasicDropdownContainer.vue?vue&type=style&index=0&id=31df940c&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31df940c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"tippy\",rawName:\"v-tippy\",value:({\n content: _vm.tooltip,\n trigger: _vm.tooltip ? 'mouseenter' : 'manual',\n }),expression:\"{\\n content: tooltip,\\n trigger: tooltip ? 'mouseenter' : 'manual',\\n }\"}],staticClass:\"selector-item\",class:{\n 'is-selected': _vm.isSelected,\n 'is-disabled': _vm.isDisabled,\n 'with-checkbox': _vm.withCheckbox,\n 'is-auto-height': _vm.isAutoHeight,\n danger: _vm.intention === 'danger',\n },attrs:{\"data-testid\":\"dropdown-item\"},on:{\"click\":_vm.onClick}},[(_vm.withCheckbox)?_c('CoreCheckbox',{staticClass:\"selector-item-checkbox\",attrs:{\"round\":_vm.roundCheckbox,\"value\":_vm.isSelected}}):_vm._e(),(!!_vm.$slots.icon)?_c('div',{staticClass:\"selector-item-icon selector-item-icon-wrapper\"},[_vm._t(\"icon\")],2):_vm._e(),(_vm.withAvatar)?_c('CoreShapedImage',{staticClass:\"selector-item-avatar\",attrs:{\"shape\":\"circle\",\"size\":24,\"image\":_vm.avatar,\"altText\":_vm.title}}):_vm._e(),_c('div',{staticClass:\"selector-item-text\"},[_vm._t(\"content\",function(){return [_c('span',{attrs:{\"title\":_vm.title},domProps:{\"innerHTML\":_vm._s(_vm.$options.filters !== undefined && _vm.$options.filters.highlight(_vm.title, _vm.search, _vm.highlightColor))}})]})],2),(_vm.label)?_c('span',{staticClass:\"label\",class:{ 'label-active': _vm.labelActive }},[_vm._v(_vm._s(_vm.label))]):_vm._e(),(_vm.withButton)?_c('span',{staticClass:\"selector-item-button\",on:{\"click\":_vm.onButtonClick}},[_c('elm-arrows-arrow-right-bold-icon',{attrs:{\"size\":\"10\"}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n\n \n\n \n \n \n \n \n \n \n {{ label }}\n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DropdownItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DropdownItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropdownItem.vue?vue&type=template&id=4f67ba49&scoped=true&\"\nimport script from \"./DropdownItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropdownItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DropdownItem.vue?vue&type=style&index=0&id=4f67ba49&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f67ba49\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.containerTag,{tag:\"component\",staticClass:\"formfield\",attrs:{\"for\":_vm.generateLabelFor && !_vm.doNotUseLabel ? _vm.elementId : null}},[_vm._t(\"title\",function(){return [_c('h3',{staticClass:\"formfield--title\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")])]}),_vm._t(\"default\",null,{\"elementId\":_vm.elementId}),_vm._t(\"description\",function(){return [(_vm.messages.length)?_c('ul',{staticClass:\"formfield--description\"},_vm._l((_vm.messages),function(message){return _c('li',{key:message},[_vm._v(\" \"+_vm._s(message)+\" \")])}),0):_vm._e()]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n {{ title }}\n \n \n \n \n \n \n {{ message }}\n \n \n \n \n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormField.vue?vue&type=template&id=435ab5ea&scoped=true&\"\nimport script from \"./FormField.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormField.vue?vue&type=style&index=0&id=435ab5ea&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"435ab5ea\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group\",class:{ spacing: _vm.addSpacingBetweenItems }},[_vm._t(\"default\",null,{\"isValid\":_vm.isValid,\"errors\":_vm.errors})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormGroup.vue?vue&type=template&id=56a5ef0f&scoped=true&\"\nimport script from \"./FormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormGroup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormGroup.vue?vue&type=style&index=0&id=56a5ef0f&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56a5ef0f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('portal',{attrs:{\"to\":\"modal-host\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isModalVisuallyVisible),expression:\"isModalVisuallyVisible\"}],key:_vm.modalKey,ref:\"refModal\",staticClass:\"modal-window-wrapper\",class:_vm.modalClasses,on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.backdropClickHandler.apply(null, arguments)}}},[_c('div',{staticClass:\"modal-window-container\",class:[_vm.additionalClassContainerWrapper],style:(_vm.modalWindowContainerStyles),attrs:{\"data-testid\":_vm.modalTestId},on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.backdropClickHandler.apply(null, arguments)}}},[(_vm.isModalVisuallyVisible)?_c('ModalWindowDialog',{staticClass:\"modal-window\",class:_vm.modalClass,style:(_vm.modalStyles),attrs:{\"role\":\"dialog\"},on:{\"animationEnd\":_vm.handleAnimationEnd}},[(_vm.showHeader)?_c('div',{staticClass:\"header\"},[_vm._t(\"header\",function(){return [_c('h3',{directives:[{name:\"tippy\",rawName:\"v-tippy\",value:(_vm.showTooltipHeader ? { content: _vm.headerText } : null),expression:\"showTooltipHeader ? { content: headerText } : null\"}],staticClass:\"header-title-text\",class:{ 'with-help': _vm.showTooltipHeader }},[_vm._v(\" \"+_vm._s(_vm.headerText)+\" \")])]})],2):_vm._e(),(_vm.showCloseButton)?_c('div',{staticClass:\"close-icon\",on:{\"click\":function($event){return _vm.requestClose('Close button click')}}},[_c('elm-actions-close-regular-icon',{directives:[{name:\"tippy\",rawName:\"v-tippy\",value:({ content: _vm.closeButtonTooltip, onShow: function () { return !!_vm.closeButtonTooltip; } }),expression:\"{ content: closeButtonTooltip, onShow: () => !!closeButtonTooltip }\"}],attrs:{\"size\":\"24\"}})],1):_vm._e(),_c('div',{staticClass:\"content\",class:{\n scrollable: _vm.isScrollable,\n 'no-header': !_vm.showHeader || (!_vm.$slots['header'] && !_vm.headerText),\n 'with-background': _vm.withBackground,\n 'no-footer': !_vm.$slots['footer'],\n },style:(_vm.contentStyles),on:{\"click\":function($event){return _vm.$emit('contentClick')}}},[_vm._t(\"content\")],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$slots['footer']),expression:\"$slots['footer']\"}],staticClass:\"footer\"},[_vm._t(\"footer\")],2)]):_vm._e()],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModalWindowDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModalWindowDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalWindowDialog.vue?vue&type=template&id=076b8176&\"\nimport script from \"./ModalWindowDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModalWindowDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{on:{\"animationend\":_vm.handleAnimationEnd}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed, ref } from 'vue';\n\nconst openedModalIds = ref([]);\n\nexport function useModalStack() {\n const lastOpenedModal = computed(() => {\n return openedModalIds.value[openedModalIds.value.length - 1];\n });\n\n const addLastOpenedModal = (modalId: string) => {\n openedModalIds.value.push(modalId);\n };\n\n const removeLastOpenedModal = () => {\n return openedModalIds.value.pop();\n };\n\n const removeIdFromList = (id: string) => {\n openedModalIds.value = openedModalIds.value.filter(openedId => id !== openedId);\n };\n\n const hasOpenedModals = computed(() => {\n return openedModalIds.value.length > 0;\n });\n\n return {\n addLastOpenedModal,\n removeLastOpenedModal,\n lastOpenedModal,\n removeIdFromList,\n hasOpenedModals,\n };\n}\n","\n \n \n \n \n \n \n \n {{ headerText }}\n \n \n \n\n \n !!closeButtonTooltip }\"\n size=\"24\"\n />\n \n\n \n \n \n\n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModalWindow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModalWindow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalWindow.vue?vue&type=template&id=c72298f0&scoped=true&\"\nimport script from \"./ModalWindow.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModalWindow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ModalWindow.vue?vue&type=style&index=0&id=c72298f0&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c72298f0\",\n null\n \n)\n\nexport default component.exports","\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModalWindowContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModalWindowContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalWindowContent.vue?vue&type=template&id=6fa15bb0&scoped=true&\"\nimport script from \"./ModalWindowContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModalWindowContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ModalWindowContent.vue?vue&type=style&index=0&id=6fa15bb0&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6fa15bb0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-window-content\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-window-footer\",class:_vm.classes},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModalWindowFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModalWindowFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalWindowFooter.vue?vue&type=template&id=3bbd18de&scoped=true&\"\nimport script from \"./ModalWindowFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModalWindowFooter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ModalWindowFooter.vue?vue&type=style&index=0&id=3bbd18de&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3bbd18de\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ModalWindow',{attrs:{\"verticalAlignment\":\"bottom\",\"appearFrom\":\"slide-up\",\"isVisible\":_vm.isVisible,\"withBackground\":_vm.withBackground,\"isScrollable\":true,\"headerText\":_vm.headerText,\"modalWindowClass\":(\"pinned-modal \" + (_vm.modalWindowClass ? _vm.modalWindowClass : '')),\"additionalClassContainerWrapper\":_vm.additionalClassContainerWrapper,\"showHeader\":_vm.showHeader,\"modalWindowWrapperClass\":\"pinned-modal-wrapper\"},on:{\"request-close\":function($event){return _vm.$emit('request-close')},\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._t(\"header\",function(){return [_c('h2',{staticClass:\"header-title-text\"},[_vm._v(\" \"+_vm._s(_vm.headerText)+\" \")])]})]},proxy:true},{key:\"content\",fn:function(){return [_vm._t(\"custom-content\",function(){return [_c('ModalWindowContent',[_vm._t(\"content\")],2)]})]},proxy:true}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n {{ headerText }}\n \n \n \n\n \n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PinnedModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PinnedModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PinnedModal.vue?vue&type=template&id=2cffdb1e&\"\nimport script from \"./PinnedModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./PinnedModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PinnedModal.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"elm-popover\"},[_c('div',{ref:\"targetRef\",class:_vm.targetClasses},[_vm._t(\"target\",null,{\"isVisible\":_vm.isVisible,\"show\":_vm.show,\"hide\":_vm.hide,\"toggle\":_vm.toggle})],2),(_vm.renderToPortal)?[_c('portal',{attrs:{\"to\":_vm.portal}},[(_vm.isMounted)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isContentVisible),expression:\"isContentVisible\"}],ref:\"contentRef\",staticClass:\"content\",class:_vm.contentClass,style:(_vm.popoverStyles),attrs:{\"data-placement\":_vm.actualPlacement},on:{\"click\":_vm.handleContentClick}},[_c('transition',{attrs:{\"name\":\"sliding-fade\"},on:{\"after-leave\":_vm.handleLeaveAnimationEnd}},[(_vm.isVisible)?_c('div',{staticClass:\"animation-wrapper\",attrs:{\"data-testid\":_vm.popoverContentTestId}},[(_vm.isContentVisible)?_vm._t(\"content\",null,{\"hide\":_vm.hide,\"toggle\":_vm.toggle}):_vm._e()],2):_vm._e()])],1):_vm._e()])]:[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isContentVisible),expression:\"isContentVisible\"}],ref:\"contentRef\",staticClass:\"content\",class:_vm.contentClass,style:(_vm.popoverStyles),attrs:{\"data-placement\":_vm.actualPlacement},on:{\"click\":_vm.handleContentClick}},[_c('transition',{attrs:{\"name\":\"sliding-fade\"},on:{\"after-leave\":_vm.handleLeaveAnimationEnd}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isVisible),expression:\"isVisible\"}],staticClass:\"animation-wrapper\",attrs:{\"data-testid\":_vm.popoverContentTestId}},[(_vm.isContentVisible)?_vm._t(\"content\",null,{\"hide\":_vm.hide,\"toggle\":_vm.toggle}):_vm._e()],2)])],1)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import type { Ref } from 'vue';\nimport { useEventListener, tryOnUnmounted, Fn, unrefElement, type MaybeElement } from '@vueuse/core';\n\nconst events = ['click', 'touchstart'] as const;\ntype EventType = WindowEventMap[typeof events[number]];\n\nexport function onClickOutside(targets: Ref[], handler: (evt: EventType) => void, capture = false) {\n const listener = (event: EventType) => {\n const els = targets.map(unrefElement);\n\n if (els.some(el => el && (el === event.target || event.composedPath().includes(el)))) {\n return;\n }\n\n handler(event);\n };\n\n let disposables: Fn[] = events.map(event => useEventListener(window, event, listener, { passive: true, capture }));\n\n const stop = () => {\n disposables.forEach(stop => stop());\n disposables = [];\n };\n\n tryOnUnmounted(stop);\n\n return stop;\n}\n","import { computed, ref, Ref } from 'vue';\nimport { Options, StrictModifiers, Modifier, detectOverflow } from '@popperjs/core';\n\nexport const usePopperOptions = (\n placement: Ref,\n strategy: Ref,\n autoMaxHeight: Ref,\n autoHide: Ref\n) => {\n const isPopperEventListenersEnabled = ref(false);\n const actualPlacement = ref(placement.value);\n\n const syncPlacement = computed>(() => ({\n name: 'syncPlacement',\n enabled: true,\n /** It's intended to place the value somewhere in the DOM later */\n phase: 'write',\n fn: ({ state }) => {\n actualPlacement.value = state.placement;\n },\n }));\n\n const preventOverflowModifier = computed(() => ({\n name: 'preventOverflow',\n options: {\n padding: 8,\n /**\n * Scan reference (target) context for scrollable containers to detect boundary element.\n * By default it scans popper (popover) context which isn't suitable for us since we're using portals.\n */\n altBoundary: true,\n },\n }));\n\n /**\n * Popper modifier which is made by community\n * {@link https://popper.js.org/docs/v2/modifiers/community-modifiers/}\n *\n * Source:\n * {@link https://github.com/atomiks/popper.js/blob/master/src/modifiers/maxSize.js}\n *\n * Docs:\n * {@link https://github.com/atomiks/popper.js/tree/master/packages/popper-max-size-modifier}\n */\n const maxSizeModifier = computed>(() => ({\n name: 'maxSize',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['offset', 'preventOverflow', 'flip'],\n fn({ state, name, options }) {\n const overflow = detectOverflow(state, options);\n const { x, y } = state.modifiersData.preventOverflow || { x: 0, y: 0 };\n const { width, height } = state.rects.popper;\n const [basePlacement] = state.placement.split('-');\n\n const widthProp = basePlacement === 'left' ? 'left' : 'right';\n const heightProp = basePlacement === 'top' ? 'top' : 'bottom';\n\n const offset = 8;\n\n state.modifiersData[name] = {\n width: width - overflow[widthProp] - x - offset,\n height: height - overflow[heightProp] - y - offset,\n };\n },\n }));\n\n /**\n * Docs:\n * {@link https://github.com/atomiks/popper.js/tree/master/packages/popper-max-size-modifier}\n */\n const applyMaxSizeModifier = computed>(() => ({\n name: 'applyMaxSize',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['maxSize'],\n fn({ state }) {\n const { height } = state.modifiersData.maxSize;\n state.styles.popper.maxHeight = `${height}px`;\n },\n }));\n\n const flipModifier = computed(() => ({\n name: 'flip',\n options: {\n /**\n * The same as above.\n */\n altBoundary: true,\n },\n }));\n\n /** Detect if the popover is getting out of a boundary. */\n const hideModifier = computed(() => ({\n name: 'hide',\n enabled: autoHide.value,\n }));\n\n const offsetModifier = computed(() => ({\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n }));\n\n const eventListenersModifier = computed(() => ({\n name: 'eventListeners',\n enabled: isPopperEventListenersEnabled.value,\n }));\n\n const options = computed>(() => ({\n strategy: strategy.value,\n placement: placement.value,\n modifiers: [\n eventListenersModifier.value,\n offsetModifier.value,\n preventOverflowModifier.value,\n flipModifier.value,\n ...(autoMaxHeight.value ? [maxSizeModifier.value, applyMaxSizeModifier.value] : []),\n hideModifier.value,\n syncPlacement.value,\n ],\n }));\n\n return {\n options,\n actualPlacement,\n setListenersEnabled(value: boolean) {\n isPopperEventListenersEnabled.value = value;\n },\n };\n};\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Popover.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Popover.vue?vue&type=script&lang=ts&\"","\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","import { ref, watch, type Ref } from 'vue';\nimport { createPopper, Options } from '@popperjs/core';\nimport { Instance } from '@popperjs/core';\n\nimport { MaybeElement, unrefElement } from '@vueuse/core';\n\nexport function usePopper(options: Ref>) {\n const targetRef: Ref = ref(null);\n const contentRef: Ref = ref(null);\n let popper: Instance | null = null;\n\n watch(\n [targetRef, contentRef],\n ([target, content], _, onInvalidate) => {\n const targetEl = unrefElement(target);\n const popperEl = unrefElement(content);\n\n if (!(targetEl instanceof HTMLElement)) {\n return;\n }\n if (!(popperEl instanceof HTMLElement)) {\n return;\n }\n\n popper = createPopper(targetEl, popperEl, options.value);\n onInvalidate(popper.destroy);\n },\n { immediate: true }\n );\n\n watch(options, options => {\n popper?.setOptions(options);\n });\n\n return {\n targetRef,\n contentRef,\n update() {\n popper?.update();\n },\n };\n}\n","import { render, staticRenderFns } from \"./Popover.vue?vue&type=template&id=5afc5fc5&scoped=true&\"\nimport script from \"./Popover.vue?vue&type=script&lang=ts&\"\nexport * from \"./Popover.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Popover.vue?vue&type=style&index=0&id=5afc5fc5&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5afc5fc5\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress-bar\",class:(\"label-\" + _vm.labelPosition)},[(_vm.withLabel)?_c('div',{staticClass:\"percentage-label\",style:(_vm.computedLabelStyles)},[_vm._v(_vm._s(_vm.formattedValue))]):_vm._e(),_c('div',{staticClass:\"bar-wrapper\"},[_c('div',{staticClass:\"empty\"}),_c('div',{staticClass:\"filled\",style:(_vm.computedStyles)})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n {{ formattedValue }}\n\n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProgressBar.vue?vue&type=template&id=30299a74&scoped=true&\"\nimport script from \"./ProgressBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProgressBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProgressBar.vue?vue&type=style&index=0&id=30299a74&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30299a74\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Selector',{class:{ disabled: _vm.isDisabled, locked: _vm.isLocked },attrs:{\"options\":_vm.options,\"renderToPortal\":false,\"closeOnSelect\":_vm.closeOnSelect,\"popupTestName\":_vm.testName},on:{\"select\":_vm.onSelect},scopedSlots:_vm._u([{key:\"input\",fn:function(ref){\nvar toggle = ref.toggle;\nvar isOpen = ref.isOpen;\nreturn [_c('TextField',{staticClass:\"selector\",attrs:{\"size\":_vm.size,\"value\":_vm.stringValue,\"iconRight\":_vm.getIconRight(isOpen),\"placeholder\":_vm.placeholder,\"isReadOnly\":\"\",\"isSelectable\":false,\"color\":_vm.color,\"isDisabled\":_vm.isDisabled,\"testId\":(\"selector-field-\" + _vm.testName)},nativeOn:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return toggle.apply(null, arguments)}}})]}},{key:\"option\",fn:function(ref){\nvar option = ref.option;\nvar select = ref.select;\nreturn [_c('DropdownItem',{key:option,attrs:{\"isSelected\":option === _vm.value,\"title\":_vm.displayOptionConverter ? _vm.displayOptionConverter(option) : option},on:{\"click\":function($event){return select(option)}}})]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BasicSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BasicSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BasicSelector.vue?vue&type=template&id=0090ea77&scoped=true&\"\nimport script from \"./BasicSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./BasicSelector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BasicSelector.vue?vue&type=style&index=0&id=0090ea77&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0090ea77\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"selector\"},[_c('Popover',{ref:\"dropdown\",attrs:{\"autoMaxHeight\":\"\",\"sameWidth\":\"\",\"isTargetInline\":false,\"renderToPortal\":_vm.renderToPortal,\"portal\":_vm.portal,\"popoverTestName\":_vm.popupTestName},scopedSlots:_vm._u([{key:\"target\",fn:function(ref){\nvar isVisible = ref.isVisible;\nvar hide = ref.hide;\nvar show = ref.show;\nvar toggle = ref.toggle;\nreturn [_vm._t(\"input\",null,{\"searchTerm\":_vm.searchTerm,\"isOpen\":isVisible,\"close\":hide,\"open\":show,\"toggle\":toggle,\"input\":_vm.inputSearchTerm,\"isLoading\":_vm.isLoading})]}},{key:\"content\",fn:function(){return [_c('BasicDropdownContainer',{ref:\"optionsContainer\",style:(_vm.contentStyles),attrs:{\"overlapContent\":true}},[_c('FadeTransition',[(_vm.filteredOptions.length === 0 && _vm.isLoading === false)?[_c('div',[_vm._t(\"no-options\")],2)]:(_vm.isLoading && _vm.showLoaderItem)?[_vm._t(\"loader-element\",function(){return [_c('div',[_c('DropdownItem',{staticClass:\"list-loader\",attrs:{\"icon\":\"reset\",\"title\":_vm.trans('spa.label.selector.loading')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('elm-date-time-reset-icon')]},proxy:true}])})],1)]})]:(_vm.filteredOptions.length)?_c('div',{staticClass:\"items-container\"},[_vm._l((_vm.filteredOptions),function(option,index){return [_vm._t(\"option\",null,{\"searchTerm\":_vm.searchTerm,\"option\":option,\"select\":_vm.select,\"isSelected\":_vm.isSelected(option),\"index\":index,\"isLoading\":_vm.isLoading})]}),_vm._t(\"options\",null,{\"options\":_vm.filteredOptions,\"select\":_vm.select,\"isSelected\":_vm.isSelected,\"searchTerm\":_vm.searchTerm,\"isLoading\":_vm.isLoading}),_c('div',{directives:[{name:\"observe-visibility\",rawName:\"v-observe-visibility\",value:(_vm.onScrolledToBottom),expression:\"onScrolledToBottom\"}]}),(_vm.isLoadingMore)?_vm._t(\"loader-more-element\",function(){return [_c('DropdownItem',{staticClass:\"list-loader\",attrs:{\"icon\":\"reset\",\"title\":_vm.trans('spa.label.selector.loading')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('elm-date-time-reset-icon')]},proxy:true}],null,false,1976678360)})]}):_vm._e()],2):_vm._e()],2)],1)]},proxy:true}],null,true)})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Selector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Selector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Selector.vue?vue&type=template&id=3a0efc2b&scoped=true&\"\nimport script from \"./Selector.vue?vue&type=script&lang=ts&\"\nexport * from \"./Selector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Selector.vue?vue&type=style&index=0&id=3a0efc2b&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a0efc2b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"tab-button\",class:[(\"size-\" + _vm.size), { active: _vm.isActive }],attrs:{\"role\":\"tab\",\"aria-selected\":_vm.isActive,\"title\":_vm.title},on:{\"click\":_vm.handleButtonClick}},[_vm._t(\"default\",function(){return [_vm._v(\" \"+_vm._s(_vm.title)+\" \")]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n {{ title }}\n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TabButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TabButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TabButton.vue?vue&type=template&id=33cd9890&scoped=true&\"\nimport script from \"./TabButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./TabButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TabButton.vue?vue&type=style&index=0&id=33cd9890&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33cd9890\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tab-button-group\",attrs:{\"role\":\"tablist\"}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TabButtonGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TabButtonGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TabButtonGroup.vue?vue&type=template&id=0eada2c2&scoped=true&\"\nimport script from \"./TabButtonGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./TabButtonGroup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TabButtonGroup.vue?vue&type=style&index=0&id=0eada2c2&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0eada2c2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('keep-alive',[_c(_vm.isShown ? 'TabSlotWrapper' : undefined,{tag:\"component\",staticClass:\"tab-content\",attrs:{\"role\":\"tabpanel\"}},[_vm._t(\"default\")],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TabSlotWrapper.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TabSlotWrapper.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TabSlotWrapper.vue?vue&type=template&id=ed998f44&\"\nimport script from \"./TabSlotWrapper.vue?vue&type=script&lang=ts&\"\nexport * from \"./TabSlotWrapper.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TabContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TabContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TabContent.vue?vue&type=template&id=62eeb0c0&\"\nimport script from \"./TabContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./TabContent.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tabs\",attrs:{\"data-testid\":\"tabs\"}},[_c('TabButtonGroup',{staticClass:\"button-group\",class:{ shown: _vm.showButtons }},[(!_vm.hasTabButtonSlot)?_c('TabButtonAnimation',{key:_vm.showButtons,attrs:{\"refs\":_vm.buttonRefs,\"activeTabIndex\":_vm.activeTabIndex},on:{\"end\":_vm.syncVisibleActive}}):_vm._e(),(_vm.hasTabButtonSlot)?[_vm._l((_vm.tabKeys),function(tabKey,index){return _vm._t(\"tabButton\",null,{\"title\":_vm.titles[index],\"tabKey\":tabKey,\"tabIndex\":index,\"setActiveTab\":_vm.setActiveTab,\"isTabActive\":_vm.isTabActive})})]:_vm._l((_vm.titles),function(title,index){return [_c('TabButton',{key:_vm.tabKeys[index],ref:\"buttonRefs\",refInFor:true,attrs:{\"data-testid\":(\"tab-button-\" + (_vm.tabKeys[index])),\"title\":title,\"isActive\":_vm.isTabActiveVisible(_vm.tabKeys[index])},on:{\"click\":function($event){return _vm.handleTabButtonClick(_vm.tabKeys[index], index)}}})]})],2),_vm._t(\"default\",null,{\"activeTab\":_vm.activeTab,\"isTabActive\":_vm.isTabActive})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TabButtonAnimation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TabButtonAnimation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TabButtonAnimation.vue?vue&type=template&id=00ffaa1a&scoped=true&\"\nimport script from \"./TabButtonAnimation.vue?vue&type=script&lang=ts&\"\nexport * from \"./TabButtonAnimation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TabButtonAnimation.vue?vue&type=style&index=0&id=00ffaa1a&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00ffaa1a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"runner\",staticClass:\"tab-runner\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n \n\n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Tabs.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Tabs.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Tabs.vue?vue&type=template&id=0baa7766&scoped=true&\"\nimport script from \"./Tabs.vue?vue&type=script&lang=ts&\"\nexport * from \"./Tabs.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Tabs.vue?vue&type=style&index=0&id=0baa7766&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0baa7766\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"tag\",class:_vm.classes,attrs:{\"title\":_vm.title,\"data-testid\":\"tag\"},on:{\"click\":_vm.onClick}},[_vm._t(\"left-icon\"),_c('span',{staticClass:\"tag-text\",class:_vm.textClasses},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_vm._t(\"right-icon\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n {{ title }}\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawTag.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawTag.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RawTag.vue?vue&type=template&id=3f32cb7e&scoped=true&\"\nimport script from \"./RawTag.vue?vue&type=script&lang=ts&\"\nexport * from \"./RawTag.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RawTag.vue?vue&type=style&index=0&id=3f32cb7e&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f32cb7e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RawTag',_vm._b({class:[_vm.action, { 'action-tag': _vm.action }],on:{\"click\":_vm.onClick},scopedSlots:_vm._u([{key:\"right-icon\",fn:function(){return [_vm._t(\"icon\",function(){return [_c(_vm.icon,{tag:\"component\",attrs:{\"size\":_vm.iconSize}})]})]},proxy:true},{key:\"left-icon\",fn:function(){return [_vm._t(\"left-icon\")]},proxy:true}],null,true)},'RawTag',_vm.$props,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Tag.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Tag.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Tag.vue?vue&type=template&id=72effc43&scoped=true&\"\nimport script from \"./Tag.vue?vue&type=script&lang=ts&\"\nexport * from \"./Tag.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Tag.vue?vue&type=style&index=0&id=72effc43&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"72effc43\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('SkeletonLoader',{staticClass:\"textfield--skeleton\",attrs:{\"height\":_vm.skeletonHeight}}):_c('div',{staticClass:\"textfield\",class:_vm.classes,on:{\"mouseenter\":function($event){_vm.isHovered = true},\"mouseleave\":function($event){_vm.isHovered = false}}},[_vm._t(\"left\",function(){return [(_vm.withAvatar)?_c('CoreShapedImage',{staticClass:\"textfield--avatar\",attrs:{\"shape\":\"circle\",\"size\":24,\"image\":_vm.avatarImage,\"altText\":_vm.avatarAltText}}):_vm._e(),_c(_vm.iconLeft,{tag:\"component\",staticClass:\"textfield--icon textfield--icon-left\",attrs:{\"size\":\"18\"}})]},{\"focus\":_vm.focus}),_c('input',_vm._b({ref:\"input\",staticClass:\"textfield--input\",attrs:{\"type\":_vm.type,\"placeholder\":_vm.placeholder,\"disabled\":_vm.isDisabled,\"readonly\":_vm.isReadOnly,\"data-testid\":_vm.testId},domProps:{\"value\":_vm.value},on:{\"input\":_vm.onInput,\"focus\":_vm.onFocus,\"blur\":_vm.onBlur,\"change\":_vm.onChange,\"keydown\":_vm.onKeyDown}},'input',_vm.$attrs,false)),_vm._t(\"right\",function(){return [_c(_vm.iconRight,{tag:\"component\",staticClass:\"textfield--icon textfield--icon-right\",attrs:{\"size\":\"18\"}}),(_vm.label)?_c('span',{staticClass:\"label\",class:_vm.labelClass},[_vm._v(_vm._s(_vm.label))]):_vm._e(),(_vm.withButton)?_c('IconButton',{staticClass:\"textfield--button\",attrs:{\"size\":\"small\",\"color\":_vm.buttonColor},on:{\"click\":_vm.onButtonClick}},[_c('elm-arrows-arrow-right-bold-icon',{attrs:{\"size\":\"10\"}})],1):_vm._e()]},{\"focus\":_vm.focus})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n {{ label }}\n \n \n \n \n \n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TextField.vue?vue&type=template&id=8f2fd142&scoped=true&\"\nimport script from \"./TextField.vue?vue&type=script&lang=ts&\"\nexport * from \"./TextField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TextField.vue?vue&type=style&index=0&id=8f2fd142&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8f2fd142\",\n null\n \n)\n\nexport default component.exports","import { mobileIsUnsupportedFlag } from '@/common/services/mobile-fallback';\nimport { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\nimport { checkIfRouteAvailableByPlanFeatures } from '@/plan-features/routes';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { Permissions } from '@/permissions';\n\nconst API_OVERVIEW_PAGE = () => import('./pages/APITokensOverviewPage.vue');\n\nexport const enum AdminApiRoutes {\n Integrations = 'integrations',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: `${AdminApiRoutes.Integrations}`,\n name: AdminApiRoutes.Integrations,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Integrations`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n requiredPermissions: [Permissions.AdminApi],\n },\n component: API_OVERVIEW_PAGE,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.API),\n },\n];\n\nexport default routes;\n","export enum EntitiesList {\n BILLING = 'billing',\n PERSONA = 'persona',\n ACCOUNT = 'account',\n SUBSCRIPTION = 'subscription',\n DETAILS = 'details',\n PLANS = 'plans',\n INVOICES = 'invoices',\n RECEIPT = 'receipt',\n CARD = 'card',\n LINK = 'link',\n EDIT = 'edit',\n DIBS_STATUS = 'dibs-status',\n VERIFY_LIMITS = 'verify-limits',\n}\n\nexport enum RestrictionsEntitiesList {\n USERS = 'users',\n PERSONA = 'persona',\n RESTRICTIONS = 'restrictions',\n USERLIMITWARNING = 'user-limit-warning',\n}\n","import { FrequencyInterval } from '@eloomi/eloomi-billing-persona-client/1.0';\n\nexport interface SubscriptionDetails {\n currency: string | CurrencyWithSymbol;\n next_payment_date: Date;\n plan: string;\n price_per_user: number;\n users: number;\n frequency: string;\n color: string;\n total_price: number;\n is_free_plan: boolean;\n}\n\nexport interface Plan {\n name: Plans;\n icon: string;\n color: string;\n active: boolean;\n users_included: number;\n free_courses_included: number;\n free_users_included: number;\n}\nexport type Plans = 'Play' | 'Learn' | 'Engage' | 'Develop';\nexport type PaymentFrequency = 'Monthly' | 'Quarterly' | 'Annually';\nexport type UsersAmount = '50' | '100' | '250' | '500' | '1000' | '2500' | '5000' | '10000';\nexport type Currency = 'DKK' | 'EUR' | 'USD' | 'GBP';\nexport interface CurrencyWithSymbol {\n code: string;\n symbol: string;\n}\nexport interface FrequencyAndDiscount {\n name: FrequencyInterval;\n discount: number;\n}\nexport interface PlansResponse {\n prices: {\n [key in Currency]: {\n // tslint:disable-next-line:no-shadowed-variable\n [key in Plans]: {\n // tslint:disable-next-line:no-shadowed-variable\n [key in UsersAmount]: {\n // tslint:disable-next-line:no-shadowed-variable\n [key in PaymentFrequency]: {\n price_total_per_month: number;\n price_per_user_per_month: number;\n discount_percentage: number;\n price_total_per_billing_cycle: number;\n };\n };\n };\n };\n };\n currencies: CurrencyWithSymbol[];\n has_account: boolean;\n current_plan: Plans;\n current_currency: null | string;\n current_frequency: null | string;\n current_size: null | UsersAmount;\n plans: Plan[];\n}\n\nexport interface AccountDetails {\n company_name: string;\n address: string;\n city: string;\n zip: string;\n country: string;\n state: string | null;\n vat: string;\n recipient_name: string;\n recipient_email: string;\n}\n\nexport interface GetCardLinkPayload {\n return_url: string;\n currency: Currency;\n frequency: PaymentFrequency;\n size: UsersAmount;\n plan: Plans;\n}\n\nexport interface GetCardLinkResponse {\n is_redirect_required: boolean;\n redirect_url: string;\n}\n\nexport interface PutSubscriptionPayload {\n plan: Plans;\n size: UsersAmount;\n frequency: PaymentFrequency;\n currency: Currency;\n schedule_for_next: boolean;\n}\n\nexport interface GetCardLinkEditResponse {\n redirect_url: string;\n is_redirect_required: boolean;\n}\n\nexport interface DowngradeRestriction {\n type: 'general_user_max' | 'general_course_max';\n current_count: number;\n scheduled_count: number;\n}\nexport interface DowngradeRestrictionResponse {\n error?: string;\n reason?: string;\n scheduled_restrictions_details: DowngradeRestriction[];\n}\nexport interface DeleteSubscriptionResponse {\n last_date_of_subscription: string;\n}\n\nexport enum BillingAction {\n ChangeSubscription = 'changeSubscription',\n EditCard = 'editCard',\n}\n","import { EntitiesList } from '@/admin/billing/models/entities.enum';\nimport { CoreQuery } from '@/common/services/core-query';\nimport { httpClientCoreQuery } from '@/api/http-client';\nimport { AxiosPromise } from 'axios';\nimport { GetCardLinkEditResponse } from '@/admin/billing/models';\n\nimport {\n CardPersonaApiFactory,\n Currency,\n FrequencyInterval,\n PlanName,\n PlanSize,\n} from '@eloomi/eloomi-billing-persona-client/1.0';\nimport { authorizeClient } from '@/api/http-client';\n\nconst cardClient = authorizeClient(CardPersonaApiFactory);\n\ntype GetCardLinkPayload = {\n returnUrl: string;\n plan: PlanName;\n size: PlanSize;\n frequency: FrequencyInterval;\n currency: Currency;\n};\n\nexport function getCardLink(GetCardLinkPayload: GetCardLinkPayload) {\n return cardClient.getCards(\n GetCardLinkPayload.returnUrl,\n GetCardLinkPayload.plan,\n GetCardLinkPayload.size,\n GetCardLinkPayload.frequency,\n GetCardLinkPayload.currency\n );\n}\n\nexport function getCardLinkEdit(returnUrl: string): AxiosPromise {\n const q = new CoreQuery()\n .path([\n EntitiesList.BILLING,\n EntitiesList.PERSONA,\n EntitiesList.ACCOUNT,\n EntitiesList.CARD,\n EntitiesList.LINK,\n EntitiesList.EDIT,\n ])\n .param({ return_url: returnUrl });\n return httpClientCoreQuery.get(q);\n}\n\nexport function dibsStatus(payload): AxiosPromise {\n const q = new CoreQuery().path([\n EntitiesList.BILLING,\n EntitiesList.PERSONA,\n EntitiesList.ACCOUNT,\n EntitiesList.CARD,\n EntitiesList.DIBS_STATUS,\n ]);\n return httpClientCoreQuery.post(q, payload);\n}\n","import { EntitiesList } from '@/admin/billing/models/entities.enum';\nimport { CoreQuery } from '@/common/services/core-query';\nimport { httpClientCoreQuery } from '@/api/http-client';\nimport { DowngradeRestriction } from '@/admin/billing/models';\nimport { AxiosPromise } from 'axios';\n\nimport { PutSubscriptionRequest, SubscriptionPersonaApiFactory } from '@eloomi/eloomi-billing-persona-client/1.0';\nimport { authorizeClient } from '@/api/http-client';\n\nconst subscriptionClient = authorizeClient(SubscriptionPersonaApiFactory);\n\nexport function getCurrentPlanDetails() {\n return subscriptionClient.getActiveSubscription();\n}\n\nexport async function deleteSubscription() {\n return subscriptionClient.deleteSubscription();\n}\n\nexport async function putSubscription(payload: PutSubscriptionRequest) {\n return subscriptionClient.putSubscription(payload);\n}\n\nexport function verifyLimits(size?): AxiosPromise {\n const q = new CoreQuery().path([\n EntitiesList.BILLING,\n EntitiesList.PERSONA,\n EntitiesList.ACCOUNT,\n EntitiesList.SUBSCRIPTION,\n EntitiesList.VERIFY_LIMITS,\n ]);\n if (size) {\n q.param('size', size);\n }\n\n return httpClientCoreQuery.get(q);\n}\n","import { mobileIsUnsupportedFlag } from '@/common/services/mobile-fallback';\nimport { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\nimport store, { smartRootModule } from '@/main/baseStore';\nimport { redirectIfGuard } from '@/common/services/redirectIf.guard';\nimport { guards } from '@/main/multipleGuardsHandler';\nimport { isPageEnteredFromBrowserBackForwardButton } from '@/common/services/back-button-accessing-page.guard';\nimport { checkIfRouteAvailableByPlanFeatures } from '@/plan-features/routes';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { Permissions } from '@/permissions';\n\nconst BILLING_CONFIRM_PAGE = () => import('./pages/BillingConfirmationPage.vue');\nconst BILLING_ADMINISTRATION_PAGE = () => import('./pages/BillingAdministrationPage.vue');\nconst BILLING_ROOT_PAGE = () => import('./pages/BillingRootPage.vue');\nconst CHOOSE_BILLING_PAGE = () => import('./pages/ChooseBillingPlanPage.vue');\nconst MODIFY_BILLING_PAGE = () => import('./pages/ModifyBillingConfirmationPage.vue');\n\nexport const enum AdminBillingRoutes {\n BILLING = 'billing',\n CONFIRM = 'confirm',\n BILLING_CONFIRM = 'billing-confirm',\n CHANGE = 'change',\n MODIFY = 'modify',\n}\n\nconst doesUserHasAccount = () => {\n const plansModule = smartRootModule.context(store).modules.plansStore;\n\n return Boolean(plansModule.state.plansResponse?.has_account);\n};\n\nconst routes: RouteConfig[] = [\n {\n path: `${AdminBillingRoutes.BILLING}`,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Billing`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n requiredPermissions: [Permissions.AdminBilling],\n },\n component: BILLING_ROOT_PAGE,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.BILLING),\n children: [\n {\n path: ``,\n name: AdminBillingRoutes.BILLING,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Billing`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n isChoosePlanButtonVisible: false,\n },\n component: BILLING_ADMINISTRATION_PAGE,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.BILLING),\n },\n {\n path: `${AdminBillingRoutes.CHANGE}`,\n name: AdminBillingRoutes.CHANGE,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Billing`,\n ...mobileIsUnsupportedFlag,\n isChoosePlanButtonVisible: false,\n },\n component: CHOOSE_BILLING_PAGE,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.BILLING),\n },\n {\n path: `${AdminBillingRoutes.CHANGE}/${AdminBillingRoutes.CONFIRM}`,\n name: AdminBillingRoutes.BILLING_CONFIRM,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Billing`,\n ...mobileIsUnsupportedFlag,\n defaultBackRoute: AdminBillingRoutes.CHANGE,\n isChoosePlanButtonVisible: false,\n },\n component: BILLING_CONFIRM_PAGE,\n beforeEnter: guards([\n redirectIfGuard(() => doesUserHasAccount(), AdminBillingRoutes.MODIFY),\n isPageEnteredFromBrowserBackForwardButton(AdminBillingRoutes.CHANGE),\n checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.BILLING),\n ]),\n },\n {\n path: `${AdminBillingRoutes.CHANGE}/${AdminBillingRoutes.MODIFY}`,\n name: AdminBillingRoutes.MODIFY,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Billing`,\n ...mobileIsUnsupportedFlag,\n defaultBackRoute: AdminBillingRoutes.CHANGE,\n isChoosePlanButtonVisible: false,\n },\n component: MODIFY_BILLING_PAGE,\n beforeEnter: guards([\n redirectIfGuard(() => !doesUserHasAccount(), AdminBillingRoutes.BILLING_CONFIRM),\n checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.BILLING),\n ]),\n },\n ],\n },\n];\n\nexport default routes;\n","import { NavigationGuardNext, Route } from 'vue-router';\n\nexport function isPageEnteredFromBrowserBackForwardButton(routeName: string) {\n return async (_to: Route, _from: Route, next: NavigationGuardNext) => {\n if (\n window.performance &&\n window.performance.navigation.type == window.performance.navigation.TYPE_BACK_FORWARD\n ) {\n next({ name: routeName });\n } else {\n return;\n }\n };\n}\n","import { authorizeClient } from '@/api/http-client';\nimport { AccountDetails } from '@/admin/billing/models';\nimport { AccountPersonaApiFactory, PutAccountRequest } from '@eloomi/eloomi-billing-persona-client/1.0';\n\nconst accountClient = authorizeClient(AccountPersonaApiFactory);\n\nexport function getAccountDetails(): Promise {\n return accountClient.getAccount().then(({ data }) => data as AccountDetails);\n}\n\nexport function putAccountDetails(accountDetails: AccountDetails) {\n return accountClient.putAccount(accountDetails as PutAccountRequest);\n}\n","import { Module, Mutations, Actions, createMapper, Getters } from 'vuex-smart-module';\nimport { Vue } from 'vue-property-decorator';\nimport { AccountDetails, DowngradeRestriction, DowngradeRestrictionResponse } from '@/admin/billing/models';\nimport { verifyLimits } from '@/admin/billing/providers/subscription';\nimport { getAccountDetails, putAccountDetails } from '@/admin/billing/providers/account';\nimport { checkIsAxiosError } from '@/common/services/check-is-axios-error';\n\ninterface ModalState {\n visible: boolean;\n data: T | null;\n}\n\ninterface DowngradeWarningData {\n type: 'users' | 'plan';\n oldUsersNumber: number | string;\n newUsersNumber: number | string;\n oldPlan: string;\n newPlan: string;\n}\n\nclass State {\n public userLimitReachedModalShown = false;\n public closePlanModalShown = false;\n public billingDetailsModalShown = false;\n public accountDetails: AccountDetails = {\n company_name: '',\n vat: '',\n address: '',\n city: '',\n zip: '',\n state: '',\n country: '',\n recipient_name: '',\n recipient_email: '',\n };\n public cancelPlanModal: ModalState = {\n visible: false,\n data: null,\n };\n public downgradeModal: ModalState = {\n visible: false,\n data: null,\n };\n public downgradeWarningModal: ModalState = {\n visible: false,\n data: null,\n };\n public contactUsModal: ModalState = {\n visible: false,\n data: null,\n };\n}\n\nclass StoreMutations extends Mutations {\n public showLimitReachedModal() {\n this.state.userLimitReachedModalShown = true;\n }\n\n public closeLimitReachedModal() {\n this.state.userLimitReachedModalShown = false;\n }\n\n public showClosePlanModal() {\n this.state.closePlanModalShown = true;\n }\n\n public closeClosePlanModal() {\n this.state.closePlanModalShown = false;\n }\n\n public showCancelPlanModal(data: DowngradeRestrictionResponse) {\n this.state.cancelPlanModal.data = data;\n this.state.cancelPlanModal.visible = true;\n }\n\n public closeCancelPlanModal() {\n this.state.cancelPlanModal.data = null;\n this.state.cancelPlanModal.visible = false;\n }\n\n public setAccountDetails(details: AccountDetails) {\n this.state.accountDetails = details;\n }\n\n public updateAccountDetails(details: Partial) {\n this.state.accountDetails = {\n ...this.state.accountDetails,\n ...(details as AccountDetails),\n };\n }\n\n public showDowngradeModal(data: DowngradeRestriction[]) {\n this.state.downgradeModal.data = data;\n this.state.downgradeModal.visible = true;\n }\n\n public closeDowngradeModal() {\n this.state.downgradeModal.data = null;\n this.state.downgradeModal.visible = false;\n }\n\n public showDowngradeWarningModal(data: DowngradeWarningData) {\n this.state.downgradeWarningModal.data = data;\n this.state.downgradeWarningModal.visible = true;\n }\n\n public closeDowngradeWarningModal() {\n this.state.downgradeWarningModal.data = null;\n this.state.downgradeWarningModal.visible = false;\n }\n\n public showContactUsModal() {\n this.state.contactUsModal.visible = true;\n }\n\n public closeContactUsModal() {\n this.state.contactUsModal.visible = false;\n }\n\n public showBillingDetailsModal() {\n this.state.billingDetailsModalShown = true;\n }\n\n public closeBillingDetailsModal() {\n this.state.billingDetailsModalShown = false;\n }\n}\n\nclass StoreGetters extends Getters {}\n\nclass StoreActions extends Actions {\n public async openCancelPlanModal() {\n const limitsResponse = await verifyLimits();\n const allowedToDowngrade = limitsResponse.data.length === 0;\n\n if (allowedToDowngrade) {\n this.mutations.showClosePlanModal();\n } else {\n this.mutations.showCancelPlanModal({\n scheduled_restrictions_details: limitsResponse.data,\n });\n }\n }\n\n public async loadAccountDetails() {\n try {\n this.mutations.setAccountDetails(await getAccountDetails());\n } catch (e) {\n console.error('Unable to fetch account details');\n }\n }\n\n public async saveAccountDetails() {\n try {\n putAccountDetails(this.state.accountDetails!);\n } catch (e) {\n console.error('Unable to save company details');\n }\n }\n\n public catchSavingError(error) {\n if (checkIsAxiosError(error)) {\n const scheduledRestrictionError = error.response?.data.reason === 'scheduledRestrictions';\n\n if (error.response?.status === 400 && scheduledRestrictionError) {\n this.mutations.showDowngradeModal(error.response.data.scheduled_restrictions_details);\n return;\n }\n }\n }\n}\n\nexport const store = new Module({\n state: State,\n mutations: StoreMutations,\n getters: StoreGetters,\n actions: StoreActions,\n});\n\nexport const billingAdministrationStoreMapper = createMapper(store);\nexport const BillingAdministrationMappedStore = Vue.extend({\n computed: {\n ...billingAdministrationStoreMapper.mapState([\n 'userLimitReachedModalShown',\n 'closePlanModalShown',\n 'billingDetailsModalShown',\n 'accountDetails',\n 'downgradeModal',\n 'downgradeWarningModal',\n 'contactUsModal',\n 'cancelPlanModal',\n ]),\n },\n methods: {\n ...billingAdministrationStoreMapper.mapMutations([\n 'showLimitReachedModal',\n 'closeLimitReachedModal',\n 'showClosePlanModal',\n 'closeClosePlanModal',\n 'showCancelPlanModal',\n 'closeCancelPlanModal',\n 'showBillingDetailsModal',\n 'closeBillingDetailsModal',\n 'updateAccountDetails',\n 'showDowngradeModal',\n 'closeDowngradeModal',\n 'showDowngradeWarningModal',\n 'closeDowngradeWarningModal',\n 'showContactUsModal',\n 'closeContactUsModal',\n ]),\n ...billingAdministrationStoreMapper.mapActions([\n 'openCancelPlanModal',\n 'loadAccountDetails',\n 'saveAccountDetails',\n 'catchSavingError',\n ]),\n },\n});\n","import { Module, Mutations, Actions, createMapper, Getters, createComposable } from 'vuex-smart-module';\nimport { Vue } from 'vue-property-decorator';\n\nimport { GetActiveSubscriptionResponse } from '@eloomi/eloomi-billing-persona-client/1.0';\nimport { getCurrentPlanDetails } from '@/admin/billing/providers/subscription';\nimport { AxiosResponse } from 'axios';\n\nimport { PlanApiFactory } from '@eloomi/eloomi-platforms-persona-client/1.0';\nimport { authorizeClient } from '@/api/http-client';\nimport { AxiosError } from 'axios';\n\nconst platformClient = authorizeClient(PlanApiFactory);\n\nclass State {\n public activeSubscription: GetActiveSubscriptionResponse | null = null;\n public activeSubscriptionResponseStatus?: number;\n public isPlatformFree = false;\n public expirationDate: string | null = null;\n}\n\nclass StoreMutations extends Mutations {\n public setActiveSubscription(subscription: AxiosResponse) {\n this.state.activeSubscription = subscription.data;\n this.state.activeSubscriptionResponseStatus = subscription.status;\n }\n public setIsPlatformFree(isPlatformFree) {\n this.state.isPlatformFree = isPlatformFree;\n }\n public setExpirationDate(expiration_date) {\n this.state.expirationDate = expiration_date;\n }\n}\n\nclass StoreGetters extends Getters {\n public get isFreePlan() {\n return this.state.activeSubscription?.is_free_plan;\n }\n}\n\nclass StoreActions extends Actions {\n public async getActiveSubscription() {\n const activeSubscription = await getCurrentPlanDetails();\n try {\n const planInfo = await platformClient.getCurrentPlan();\n this.mutations.setExpirationDate(planInfo.data.expiration_date);\n this.mutations.setIsPlatformFree(false);\n } catch (error) {\n this.mutations.setIsPlatformFree((error as AxiosError)?.response?.status === 404);\n }\n this.mutations.setActiveSubscription(activeSubscription);\n }\n}\n\nexport const subscriptionStore = new Module({\n state: State,\n mutations: StoreMutations,\n getters: StoreGetters,\n actions: StoreActions,\n});\n\nexport const useSubscriptionStore = createComposable(subscriptionStore);\n\nexport const subscriptionStoreMapper = createMapper(subscriptionStore);\nexport const SubscriptionMappedStore = Vue.extend({\n computed: {\n ...subscriptionStoreMapper.mapState([\n 'activeSubscription',\n 'activeSubscriptionResponseStatus',\n 'isPlatformFree',\n 'expirationDate',\n ]),\n ...subscriptionStoreMapper.mapGetters(['isFreePlan']),\n },\n methods: subscriptionStoreMapper.mapActions(['getActiveSubscription']),\n});\n","import { PlansPersonaApiFactory } from '@eloomi/eloomi-billing-persona-client/1.0';\nimport { authorizeClient } from '@/api/http-client';\n\nconst plansClient = authorizeClient(PlansPersonaApiFactory);\n\nexport function getSubscriptionPlans() {\n return plansClient.getPlans();\n}\n","import { Actions, createMapper, Getters, Module, Mutations } from 'vuex-smart-module';\nimport { Vue } from 'vue-property-decorator';\n\nimport {\n Currency,\n FrequencyInterval,\n GetPlansResponse,\n PlanName,\n PlanSize,\n PriceInfo,\n PutSubscriptionRequest,\n} from '@eloomi/eloomi-billing-persona-client/1.0';\nimport { getSubscriptionPlans } from '@/admin/billing/providers/plans';\nimport { capitalize, pickBy } from 'lodash';\nimport { BillingAction } from '@/admin/billing/models';\nimport { getCardLink } from '@/admin/billing/providers/card';\nimport { putSubscription } from '@/admin/billing/providers/subscription';\n\ntype InitialPlanData = {\n current_currency?: Currency;\n current_frequency?: FrequencyInterval;\n current_plan?: PlanName;\n current_size?: PlanSize;\n};\n\ntype SelectedPlanSettings = {\n current_currency?: Currency;\n current_frequency?: FrequencyInterval;\n current_plan?: PlanName;\n current_size?: PlanSize;\n};\n\nclass State {\n public plansResponse?: GetPlansResponse | null = null;\n public initialPlanData: InitialPlanData | null = null;\n public selectedPlanSettings: SelectedPlanSettings = {\n current_currency: Currency.Dkk,\n current_frequency: FrequencyInterval.Monthly,\n current_plan: PlanName.Play,\n current_size: PlanSize._50,\n };\n}\n\nenum CustomPlanNames {\n Free = 'Free',\n Infinite = 'Infinite',\n}\n\nexport type PlanNamesType = PlanName | CustomPlanNames;\nexport const PlanNames = {\n ...CustomPlanNames,\n ...PlanName,\n};\n\nclass StoreGetters extends Getters {\n public get currentPlan() {\n return this.state.selectedPlanSettings?.current_plan || PlanName.Play;\n }\n public get currentSize() {\n return this.state.selectedPlanSettings?.current_size || PlanSize._50;\n }\n public get hasAccount(): boolean {\n return Boolean(this.state.plansResponse?.has_account);\n }\n public get currentFrequency() {\n return this.state.selectedPlanSettings?.current_frequency || FrequencyInterval.Monthly;\n }\n public get frequencyKey() {\n return capitalize(this.getters.currentFrequency);\n }\n public get currentCurrency() {\n return this.state.selectedPlanSettings?.current_currency || Currency.Dkk;\n }\n public get currencyKey() {\n return this.getters.currentCurrency?.toUpperCase() ?? Currency.Dkk;\n }\n public get currencySymbol() {\n const currentCurrencyWithSymbol = this.state.plansResponse?.currencies?.find(\n item => item.code?.toUpperCase() === this.getters.currencyKey\n );\n return currentCurrencyWithSymbol?.symbol;\n }\n public get currencies() {\n return this.state.plansResponse?.currencies || [];\n }\n public get seatsNumbers() {\n const { currencyKey, currentPlan } = this.getters;\n const options = this.state.plansResponse?.prices?.[currencyKey][currentPlan];\n return options ? Object.keys(options) : [];\n }\n public get paymentPlans() {\n const { currencyKey, currentSize, currentPlan } = this.getters;\n const sizesAndFrequencies = this.state.plansResponse?.prices?.[currencyKey!][currentPlan!][currentSize];\n const availableFrequencies = Object.keys(sizesAndFrequencies);\n return availableFrequencies.map(frequency => ({\n name: frequency,\n discount: sizesAndFrequencies[frequency].discount_percentage,\n }));\n }\n public get currentChoices() {\n return {\n subscription: {\n currency: this.getters.currentCurrency,\n frequency: this.getters.currentFrequency,\n size: this.getters.currentSize,\n plan: this.getters.currentPlan,\n },\n action: BillingAction.ChangeSubscription,\n };\n }\n\n public get encodedCurrentChoices() {\n return btoa(JSON.stringify(this.getters.currentChoices));\n }\n\n public get plans() {\n return this.state.plansResponse?.plans || [];\n }\n\n public get currentPriceInfo(): PriceInfo {\n if (this.state.plansResponse) {\n const { currencyKey, currentSize, currentPlan, frequencyKey } = this.getters;\n\n return this.state.plansResponse!.prices![currencyKey][currentPlan][currentSize][frequencyKey]! as PriceInfo;\n } else {\n return {} as PriceInfo;\n }\n }\n\n public get initialPriceInfo(): PriceInfo {\n try {\n const { current_currency, current_size, current_plan, current_frequency } = this.state.initialPlanData!;\n\n return this.state.plansResponse!.prices![current_currency!.toUpperCase()][current_plan][current_size][\n capitalize(current_frequency)\n ]! as PriceInfo;\n } catch (e) {\n return {} as PriceInfo;\n }\n }\n\n public get pricePerBillingCycle() {\n return this.getters.currentPriceInfo.price_total_per_billing_cycle ?? 0;\n }\n\n public get pricePerMonth() {\n return this.getters.currentPriceInfo.price_total_per_month ?? 0;\n }\n\n public get discount() {\n const discounted =\n (100 -\n (this.getters.currentFrequency === FrequencyInterval.Annually\n ? this.getters.currentPriceInfo.discount_percentage!\n : 0)) /\n 100;\n return this.getters.pricePerBillingCycle / discounted - this.getters.pricePerBillingCycle;\n }\n\n public get initialPricePerBillingCycle() {\n return this.getters.initialPriceInfo.price_total_per_billing_cycle ?? 0;\n }\n\n public get initialDiscount() {\n const discounted =\n (100 -\n (this.getters.initialFrequency === FrequencyInterval.Annually\n ? this.getters.initialPriceInfo.discount_percentage!\n : 0)) /\n 100;\n return this.getters.initialPricePerBillingCycle / discounted - this.getters.initialPricePerBillingCycle;\n }\n\n public get initialFrequency(): FrequencyInterval {\n return this.state.initialPlanData?.current_frequency || FrequencyInterval.Unknown;\n }\n\n public get initialPlan() {\n return this.state.initialPlanData?.current_plan || PlanName.Play;\n }\n\n public get initialSize() {\n return this.state.initialPlanData?.current_size || PlanSize._50;\n }\n\n public get initialCurrency() {\n return this.state.initialPlanData?.current_currency || Currency.Dkk;\n }\n\n public get downgradeWarningType(): 'plan' | 'users' {\n const plans = this.getters.plans.map(plan => plan.name);\n const currentPlan = plans.indexOf(this.state.initialPlanData?.current_plan);\n const selected = plans.indexOf(this.getters.currentPlan);\n\n if (selected < currentPlan) {\n return 'plan';\n }\n\n return 'users';\n }\n\n public get showDowngradeWarning() {\n return (\n this.getters.downgradeWarningType === 'plan' ||\n Number(this.state.initialPlanData?.current_size) > Number(this.getters.currentSize)\n );\n }\n}\n\nclass StoreMutations extends Mutations {\n public setPlans(response: GetPlansResponse) {\n this.state.plansResponse = response;\n }\n public updateSelectedPlan(data: Partial) {\n const choice = pickBy(data);\n this.state.selectedPlanSettings = { ...this.state.selectedPlanSettings, ...choice };\n }\n public setInitialPlanData(initialPlanData: InitialPlanData) {\n this.state.initialPlanData = initialPlanData;\n }\n}\n\nclass StoreActions extends Actions {\n public async getPlans() {\n const plansResponse = await (await getSubscriptionPlans()).data;\n this.mutations.setPlans(plansResponse);\n const firstResponse = {\n current_currency: this.state.plansResponse?.current_currency,\n current_frequency: this.state.plansResponse?.current_frequency,\n current_plan: this.state.plansResponse?.current_plan,\n current_size: this.state.plansResponse?.current_size,\n };\n this.mutations.updateSelectedPlan(firstResponse);\n this.mutations.setInitialPlanData(firstResponse);\n }\n\n public async saveNewPlan(data: {\n status: string | (string | null)[];\n scheduleForNext: boolean;\n redirectUrl: string;\n }) {\n const { status, scheduleForNext, redirectUrl } = data;\n\n if (status === undefined) {\n const getCardLinkResponse = (\n await getCardLink({\n returnUrl: `${window.location.origin}${redirectUrl}?state=${this.getters.encodedCurrentChoices}`,\n plan: this.getters.currentPlan,\n size: this.getters.currentSize,\n frequency: this.getters.currentFrequency,\n currency: this.getters.currentCurrency,\n })\n ).data;\n\n if (getCardLinkResponse.is_redirect_required) {\n window.location.href = getCardLinkResponse.redirect_url!;\n return;\n }\n }\n\n const payload: PutSubscriptionRequest = {\n schedule_for_next: scheduleForNext,\n ...this.getters.currentChoices.subscription,\n };\n\n return putSubscription(payload);\n }\n}\n\nexport const plansStore = new Module({\n state: State,\n getters: StoreGetters,\n mutations: StoreMutations,\n actions: StoreActions,\n});\n\nexport const plansStoreMapper = createMapper(plansStore);\nexport const PlansMappedStore = Vue.extend({\n computed: {\n ...plansStoreMapper.mapState(['plansResponse', 'initialPlanData', 'selectedPlanSettings']),\n ...plansStoreMapper.mapGetters([\n 'currentPlan',\n 'currentSize',\n 'hasAccount',\n 'currentFrequency',\n 'frequencyKey',\n 'currentCurrency',\n 'currencyKey',\n 'currencySymbol',\n 'currencies',\n 'seatsNumbers',\n 'paymentPlans',\n 'currentChoices',\n 'encodedCurrentChoices',\n 'plans',\n 'pricePerBillingCycle',\n 'discount',\n 'currentPriceInfo',\n 'initialPriceInfo',\n 'downgradeWarningType',\n 'showDowngradeWarning',\n 'initialPricePerBillingCycle',\n 'initialDiscount',\n 'initialFrequency',\n 'initialPlan',\n 'initialSize',\n 'initialCurrency',\n 'pricePerMonth',\n ]),\n },\n methods: {\n ...plansStoreMapper.mapActions(['getPlans', 'saveNewPlan']),\n ...plansStoreMapper.mapMutations(['setInitialPlanData', 'updateSelectedPlan']),\n },\n});\n","import { AdminBillingRoutes } from '@/admin/billing/routes';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { AdminCoursesRoutes } from '@/admin/courses/routes';\nimport { AdminEventsRoutes } from '@/admin/events/routes';\nimport { AdminGroupsRoutes } from '@/admin/groups/routes';\nimport { AdminPlaylistsRoutes } from '@/admin/playlists/routes';\nimport { AdminTopicsRoutes } from '@/admin/topics/routes';\nimport { AdminUsersRoutes } from '@/admin/users/routes';\nimport { Names, Paths } from '@/reporting/routes';\nimport { NavigationSidebarItem } from '@/common/components/navigation/sidebar/model';\nimport { useLaunchDarklyFeatureStore } from '@/launch-darkly/store';\nimport { AdminSkillsRoutes } from '@/admin/skills/routes';\nimport { AdminSettingsRoutes } from '@/admin/settings/routes';\nimport { AdminApiRoutes } from '@/admin/api-tokens/routes';\n\nimport { Permissions } from '@/permissions';\nimport { AuthenticationServiceTokens as Tokens } from '@/authentication/di-tokens';\nimport { useInjector } from '@/di/use-injector';\nimport { computed } from 'vue';\nimport { useRoute, useTranslation } from '@/common/composables';\nimport { usePermissions } from '@/permissions/composables/use-permissions';\nimport { useUserProfileDetailsStore } from '@/common/store/user-details/store';\n\nimport '@eloomi/icons/products-pages/products-and-pages-topic';\nimport '@eloomi/icons/products-pages/products-and-pages-billing';\nimport '@eloomi/icons/products-pages/products-and-pages-course';\nimport '@eloomi/icons/products-pages/products-and-pages-segments';\nimport '@eloomi/icons/actions/actions-user';\nimport '@eloomi/icons/actions/actions-users';\n\nexport function useSidebarNavigation() {\n const route = useRoute();\n const injector = useInjector();\n const platformService = injector.resolve(Tokens.PlatformResolutionService);\n const { trans } = useTranslation();\n const { hasPermission, hasAnyPermission, canAccessGroupReport } = usePermissions();\n const launchDarklyFeatureStore = useLaunchDarklyFeatureStore();\n const userProfileDetailsStore = useUserProfileDetailsStore();\n\n const launchDarklyFeaturesList = launchDarklyFeatureStore.state.launchDarklyFeaturesList;\n\n const reportingContent = computed(() => {\n return [\n {\n title: trans('spa.navigation.sections.reports.my-learning'),\n icon: 'elm-actions-user-icon',\n location: hasPermission(Permissions.Reporting) ? Names.MY_ADMIN_REPORT : Names.MY_REPORT,\n order: 1,\n access: true,\n },\n {\n title: trans('spa.navigation.sections.reports.courses'),\n icon: 'elm-products-and-pages-course-icon',\n order: 2,\n location: Names.COURSES_REPORT,\n featureName: PlanFeaturesList.COURSES,\n access: hasPermission(Permissions.Reporting),\n },\n {\n title: trans('spa.navigation.sections.reports.users'),\n icon: 'elm-actions-users-icon',\n order: 3,\n location: Names.USERS_REPORT,\n access: hasPermission(Permissions.Reporting),\n },\n {\n title: trans('spa.navigation.sections.reports.groups'),\n pageTitle: trans('spa.navigation.sections.reports.groups-report'),\n location: hasPermission(Permissions.Reporting) ? Names.GROUPS_REPORT : Names.MY_GROUP_REPORT,\n icon: 'elm-statistics-and-hierarchy-organizational-structure-icon',\n featureName: [PlanFeaturesList.USER_PERMISSIONS, PlanFeaturesList.GROUPS],\n order: 4,\n access: canAccessGroupReport.value,\n launchDarklyFeatureName: launchDarklyFeaturesList.GROUPS_REPORTING_MANAGER,\n },\n {\n title: trans('spa.navigation.sections.reports.segments'),\n icon: 'elm-products-and-pages-segments-icon',\n order: 5,\n location: Names.SEGMENT_OVERVIEW,\n featureName: PlanFeaturesList.SEGMENT_REPORTING,\n access: hasPermission(Permissions.Reporting),\n },\n {\n title: trans('spa.navigation.sections.reports.skills'),\n icon: 'elm-products-and-pages-skills-regular-icon',\n order: 6,\n location: Names.SKILLS_REPORT,\n featureName: PlanFeaturesList.SKILLS,\n access: hasPermission(Permissions.Reporting),\n },\n ];\n });\n\n const adminSettingsItem = computed(() => {\n return {\n name: 'settings',\n title: trans('spa.navigation.sections.admin.settings'),\n icon: 'elm-products-and-pages-settings-icon',\n order: 6,\n access: userProfileDetailsStore.getters.isAuthUserAdmin,\n children: [\n {\n name: 'branding',\n title: trans('spa.navigation.sections.admin.branding'),\n order: 1,\n location: AdminSettingsRoutes.BRANDING,\n featureName: PlanFeaturesList.BRANDING,\n },\n {\n name: 'custom-fields',\n title: trans('spa.navigation.sections.admin.custom-user-fields'),\n order: 3,\n location: AdminSettingsRoutes.CUSTOM_FIELDS,\n featureName: PlanFeaturesList.CUSTOM_FIELDS,\n },\n {\n name: 'sso',\n title: trans('spa.navigation.sections.admin.sso'),\n order: 4,\n location: AdminSettingsRoutes.SSO,\n access: !platformService.isSsoLoginEnabled(),\n },\n ],\n };\n });\n\n const administrationContent = computed(() => {\n return [\n {\n name: 'organization',\n title: trans('spa.navigation.sections.admin.organization'),\n icon: 'elm-actions-people-performance-icon',\n order: 1,\n access: hasAnyPermission(Permissions.AdminGroups, Permissions.AdminUsers),\n children: [\n {\n title: trans('spa.navigation.sections.admin.users'),\n order: 1,\n location: AdminUsersRoutes.USERS,\n fallbackIcon: 'users',\n access: hasPermission(Permissions.AdminUsers),\n },\n {\n title: trans('spa.navigation.sections.admin.groups'),\n order: 2,\n location: AdminGroupsRoutes.GROUPS,\n featureName: PlanFeaturesList.GROUPS,\n access: hasPermission(Permissions.AdminGroups),\n },\n ],\n },\n {\n name: 'learning',\n title: trans('spa.navigation.sections.admin.learning'),\n icon: 'elm-products-and-pages-course-builder-chapter-icon',\n order: 2,\n access: hasAnyPermission(Permissions.AdminCourses, Permissions.AdminEvents, Permissions.AdminPlaylists),\n children: [\n {\n name: 'courses',\n title: trans('spa.navigation.sections.admin.courses'),\n order: 1,\n location: AdminCoursesRoutes.COURSES_ADMINISTRATION,\n featureName: PlanFeaturesList.COURSES,\n access: hasPermission(Permissions.AdminCourses),\n },\n {\n name: 'events',\n title: trans('spa.navigation.sections.admin.events'),\n order: 2,\n location: AdminEventsRoutes.EVENTS_OVERVIEW,\n launchDarklyFeatureName: launchDarklyFeaturesList.EVENTS_MANAGEMENT,\n featureName: PlanFeaturesList.EVENTS,\n access: hasPermission(Permissions.AdminEvents),\n },\n {\n name: 'playlists',\n title: trans('spa.navigation.sections.admin.playlists'),\n order: 3,\n location: AdminPlaylistsRoutes.PLAYLISTS_OVERVIEW,\n featureName: PlanFeaturesList.PLAYLISTS,\n access: hasPermission(Permissions.AdminPlaylists),\n },\n ],\n },\n {\n name: 'skills',\n title: trans('spa.navigation.sections.admin.skills'),\n icon: 'elm-products-and-pages-skills-regular-icon',\n order: 3,\n access: hasPermission(Permissions.AdminSkills),\n children: [\n {\n name: 'business-titles',\n title: trans('spa.navigation.sections.admin.business-titles'),\n order: 1,\n location: AdminSkillsRoutes.BUSINESS_TITLES,\n featureName: PlanFeaturesList.SKILLS,\n },\n {\n name: 'skills-library',\n title: trans('spa.navigation.sections.admin.skills-library'),\n order: 2,\n location: AdminSkillsRoutes.SKILLS_LIBRARY,\n featureName: PlanFeaturesList.SKILLS,\n },\n ],\n },\n {\n title: trans('spa.navigation.sections.admin.categories-and-topics'),\n icon: 'elm-products-and-pages-topic-icon',\n order: 4,\n location: AdminTopicsRoutes.TOPICS,\n featureName: PlanFeaturesList.CATEGORIES_TOPICS,\n access: hasPermission(Permissions.AdminCategoriesTopics),\n },\n {\n title: trans('spa.navigation.sections.admin.billing'),\n icon: 'elm-products-and-pages-billing-icon',\n order: 5,\n location: AdminBillingRoutes.BILLING,\n featureName: PlanFeaturesList.BILLING,\n featureHideContent: true,\n access: hasPermission(Permissions.AdminBilling),\n },\n {\n title: trans('spa.navigation.sections.admin.integrations'),\n icon: 'elm-statistics-and-hierarchy-integration-icon',\n order: 6,\n location: AdminApiRoutes.Integrations,\n featureName: PlanFeaturesList.API,\n featureHideContent: true,\n access: hasPermission(Permissions.AdminApi),\n },\n adminSettingsItem.value,\n ];\n });\n\n const pageType = computed<'report' | 'administration'>(() => {\n return route.path.includes(Paths.REPORT) ? 'report' : 'administration';\n });\n\n const content = computed(() => {\n return pageType.value === 'report' ? reportingContent.value : administrationContent.value;\n });\n\n return { content, administrationContent, adminSettingsItem };\n}\n","import { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\n\nimport { mobileIsUnsupportedFlag, viewportIsUnsupportedFlag } from '@/common/services/mobile-fallback';\nimport { MinWidthViewportBreakpoints } from '@/common/constants/breakpoints';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { checkIfRouteAvailableByPlanFeatures } from '@/plan-features/routes';\nimport { Permissions } from '@/permissions';\nimport createContentStoreRoute from '@/content-store/routes';\n\nconst courseBuilderRootPage = () => import('./pages/CourseBuilderRootPage.vue');\nconst coursesAdministration = () => import('./pages/CoursesAdministration.vue');\n\nexport enum AdminCoursesRoutes {\n COURSE_BUILDER = 'course-builder',\n COURSES_ADMINISTRATION = 'courses-administration',\n COURSES_ADMINISTRATION_CONTENT_STORE = 'courses-administration-content-store',\n COURSES_ADMINISTRATION_CONTENT_STORE_ITEM = 'courses-administration-content-store-item',\n COURSES_COURSE_BUILDER_CONTENT_STORE = 'courses-course-builder-content-store',\n COURSES_COURSE_BUILDER_CONTENT_STORE_ITEM = 'courses-course-builder-content-store-item',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: 'courses',\n name: AdminCoursesRoutes.COURSES_ADMINISTRATION,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Courses Administration`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n requiredPermissions: [Permissions.AdminCourses],\n },\n children: [\n createContentStoreRoute({\n contentStoreRouteName: AdminCoursesRoutes.COURSES_ADMINISTRATION_CONTENT_STORE,\n contentStoreItemRouteName: AdminCoursesRoutes.COURSES_ADMINISTRATION_CONTENT_STORE_ITEM,\n showNavigationSidebar: true,\n }),\n ],\n component: coursesAdministration,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.COURSES),\n },\n {\n path: 'course/builder/:course_id',\n name: AdminCoursesRoutes.COURSE_BUILDER,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Course Builder`,\n ...viewportIsUnsupportedFlag(MinWidthViewportBreakpoints.lg),\n defaultBackRoute: AdminCoursesRoutes.COURSES_ADMINISTRATION,\n requiredPermissions: [Permissions.AdminCourses],\n },\n component: courseBuilderRootPage,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.COURSES),\n children: [\n createContentStoreRoute({\n contentStoreRouteName: AdminCoursesRoutes.COURSES_COURSE_BUILDER_CONTENT_STORE,\n contentStoreItemRouteName: AdminCoursesRoutes.COURSES_COURSE_BUILDER_CONTENT_STORE_ITEM,\n }),\n ],\n },\n];\n\nexport default routes;\n","import { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\n\nimport { mobileIsUnsupportedFlag } from '@/common/services/mobile-fallback';\nimport { checkIfRouteAvailableByPlanFeatures } from '@/plan-features/routes';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { Permissions } from '@/permissions';\n\nconst EVENT_BUILDER_PAGE = () => import('./pages/EventBuilderPage.vue');\nconst EVENTS_OVERVIEW_PAGE = () => import('./pages/EventsOverviewPage.vue');\n\nexport const enum AdminEventsRoutes {\n EVENT_BUILDER_CREATE = 'event-builder-create',\n EVENT_BUILDER = 'event-builder',\n EVENTS_OVERVIEW = 'events-overview',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: 'events',\n name: AdminEventsRoutes.EVENTS_OVERVIEW,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Events Overview`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n requiredPermissions: [Permissions.AdminEvents],\n },\n component: EVENTS_OVERVIEW_PAGE,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.EVENTS),\n },\n {\n path: 'events/create',\n name: AdminEventsRoutes.EVENT_BUILDER_CREATE,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Create event`,\n ...mobileIsUnsupportedFlag,\n defaultBackRoute: AdminEventsRoutes.EVENTS_OVERVIEW,\n requiredPermissions: [Permissions.AdminEvents],\n },\n component: EVENT_BUILDER_PAGE,\n beforeEnter: async (_to, _from, next) => {\n await checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.EVENTS)(_to, _from, next);\n },\n },\n {\n path: 'events/:id(\\\\d+)/edit',\n name: AdminEventsRoutes.EVENT_BUILDER,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Edit event`,\n ...mobileIsUnsupportedFlag,\n defaultBackRoute: AdminEventsRoutes.EVENTS_OVERVIEW,\n requiredPermissions: [Permissions.AdminEvents],\n showNavigationSidebar: false,\n },\n component: EVENT_BUILDER_PAGE,\n beforeEnter: async (_to, _from, next) => {\n await checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.EVENTS)(_to, _from, next);\n },\n },\n];\n\nexport default routes;\n","export interface Rule {\n id: number;\n user_group_id: number;\n user_group_name: string | null;\n order: number;\n definition: RuleDefinition;\n}\n\nexport interface UserGroupRuleParameter {\n key: string | null;\n label: string | null;\n is_dynamic: boolean;\n operators: OperatorPair[];\n values: string[] | null;\n values_source_url: string | null;\n field_id: number | null;\n}\n\nexport interface ValueCondition {\n field: string;\n field_id: number | null;\n operator: ValueOperator;\n value: {\n key: string | null;\n value: string | null;\n };\n}\n\nexport interface RangeCondition {\n field: string;\n field_id: number | null;\n operator: RangeOperator;\n value: {\n key: string | null;\n value: RangeValue | null;\n };\n}\n\nexport type Condition = ValueCondition | RangeCondition;\n\nexport type ConditionValue = RangeValue | string | null;\nexport interface OperatorPair {\n operator: Operator;\n type: InputType;\n}\nexport type ValueOperator = 'equals' | 'notEquals' | 'contains' | 'notContains' | 'lessThan' | 'greaterThan';\nexport type RangeOperator = 'between' | 'notBetween';\nexport type Operator = ValueOperator | RangeOperator;\nexport type Separator = 'and' | 'or';\nexport type InputType = 'staticList' | 'textInput' | 'dateTimeValue' | 'dateTimeRange';\nexport type RangeValue = { start: string; end: string };\n\nexport interface RuleDefinition {\n separator: Separator;\n conditions: Condition[] | null;\n}\n\nexport function isRangeCondition(condition: Condition): condition is RangeCondition {\n return condition.operator == 'between' || condition.operator == 'notBetween';\n}\n\nexport function isValueCondition(condition: Condition): condition is ValueCondition {\n return !isRangeCondition(condition);\n}\n\nexport interface UnmappedParameter {\n field: 'email';\n field_id: null;\n label: string | null;\n operators: OperatorPair[] | null;\n values: Array | null;\n values_source_url?: string | null;\n is_dynamic?: boolean;\n}\n\nexport interface ConditionSelectorValue {\n fieldKey: string | null;\n operator: OperatorPair | null;\n valueKey: RangeValue | string | null;\n fieldId: number | null;\n}\nexport type ViewState = 'select-field' | 'select-value';\nexport type KeyMapper = (value, options?: T, parameter?: OperatorPair) => string;\n\nexport interface GetRuleParametersResponse {\n parameters: UserGroupRuleParameter[] | null;\n}\n\nexport function mapParameters(parameters: UnmappedParameter[]): GetRuleParametersResponse {\n return {\n parameters: parameters.map(parameter => {\n return {\n key: parameter.field ?? null,\n is_dynamic: parameter.is_dynamic ?? false,\n label: parameter.label ?? null,\n operators: parameter.operators ?? [],\n values: parameter.values ?? [],\n values_source_url: parameter.values_source_url ?? null,\n field_id: parameter.field_id ?? null,\n };\n }),\n };\n}\n","import { DataRequestOptions } from '@/common/components/table/v2/interfaces';\nimport { FluentFilterCollection, Operator } from '@/common/services';\n\nimport { authorizeClient } from '@/api/http-client';\n\nimport { UserGroupsApiFactory, UserGroupRequest } from '@eloomi/eloomi-user-groups-persona-client/1.0';\n\nconst userGroupsClient = authorizeClient(UserGroupsApiFactory);\n\nexport function getGroups(\n options: DataRequestOptions,\n groups?: { mode: 'inclusive' | 'exclusive'; selectedIds: (number | string)[] }\n) {\n let filterStr: string | undefined;\n\n if (options.searchQuery || groups?.mode) {\n const filters = new FluentFilterCollection();\n\n if (options.searchQuery) {\n filters.where('Name').filter(Operator.Contains, options.searchQuery);\n }\n\n if (groups?.mode) {\n if (groups.mode === 'inclusive') {\n filters.where('id').filter(Operator.IsEqualTo, groups?.selectedIds.join('|'));\n } else {\n groups.selectedIds.forEach(id => {\n filters.where('id').filter(Operator.IsNotEqualTo, id);\n });\n }\n }\n\n filterStr = filters.build();\n }\n\n return userGroupsClient\n .getUserGroups(filterStr, undefined, options.page, options.pageSize)\n .then(({ data }) => data);\n}\n\nexport function getGroup(groupId: number) {\n return userGroupsClient.getUserGroup(groupId).then(({ data }) => data);\n}\n\nexport function createUpdateGroup(group: UserGroupRequest) {\n return userGroupsClient.createOrUpdateUserGroup(group).then(({ data }) => data);\n}\n","import { CoreQuery } from '@/common/services/core-query';\n\nimport { EntitiesList } from '@/common/models';\n\nimport { authorizeClient, httpClientCoreQuery } from '@/api/http-client';\nimport { DataRequestOptions, TablePaginatedData } from '@/common/components/table/v2/interfaces';\nimport { FluentFilterCollection, isNotEmpty, Operator } from '@/common/services';\nimport { User } from '@/admin/groups/models/GroupUser';\nimport { UserAdminPersonaApiFactory, UsersPaginatedResponse } from '@eloomi/eloomi-users-persona-client/1.0';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\n\nconst userAdminPersonaApi = authorizeClient(UserAdminPersonaApiFactory);\n\nexport function getUsers(options: DataRequestOptions, groupId: number) {\n const filters = isNotEmpty(options.searchQuery)\n ? new FluentFilterCollection().where('full_name').filter(Operator.Contains, options.searchQuery || '')\n : undefined;\n\n const q = new CoreQuery()\n .entity([EntitiesList.USER_GROUPS, EntitiesList.PERSONA, EntitiesList.USER_GROUP, groupId, EntitiesList.USER])\n .filters(filters)\n .param({\n page: options.page,\n page_size: options.pageSize,\n });\n\n return httpClientCoreQuery.get>(q).then(({ data }) => data);\n}\n\nexport function getUsersForSelector(options: DataRequestOptions): Promise {\n const filters = isNotEmpty(options.searchQuery)\n ? new FluentFilterCollection()\n .where('first_name', 'last_name')\n .filter(Operator.Contains, options.searchQuery || '')\n : undefined;\n\n return userAdminPersonaApi\n .getAll(filters?.toQueryStringSearch(), undefined, options.page, options.pageSize)\n .then(extractAxiosData);\n}\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { httpClientCoreQuery } from '@/api/http-client';\n\nexport function unassignUsers(groupID: number, userIds: number[]) {\n const q = new CoreQuery()\n .entity([EntitiesList.USER_GROUPS, EntitiesList.PERSONA, EntitiesList.USER_GROUP, EntitiesList.UNASSIGN])\n .data({\n group_id: groupID,\n user_ids: userIds,\n });\n\n return httpClientCoreQuery.delete(q);\n}\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { httpClientCoreQuery } from '@/api/http-client';\n\nexport function assignUser(payload: { group_id: number; user_ids: number }) {\n const q = new CoreQuery().entity([\n EntitiesList.USER_GROUPS,\n EntitiesList.PERSONA,\n EntitiesList.USER_GROUP,\n EntitiesList.ASSIGN,\n ]);\n\n return httpClientCoreQuery.put(q, payload);\n}\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { httpClientCoreQuery } from '@/api/http-client';\n\nexport function deleteGroupsBulk(ids: number[]) {\n const q = CoreQuery.fromNamespace(EntitiesList.USER_GROUPS).path([\n EntitiesList.PERSONA,\n EntitiesList.USER_GROUP,\n EntitiesList.BULK,\n ]);\n\n return httpClientCoreQuery.post(q, ids);\n}\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { httpClientCoreQuery } from '@/api/http-client';\nimport { FluentFilterCollection, Operator } from '@/common/services';\n\nexport function getUsersNumber(groupId: number) {\n const filters = new FluentFilterCollection().where('id').filter(Operator.IsEqualTo, groupId);\n\n const q = new CoreQuery()\n .entity([EntitiesList.USER_GROUPS, EntitiesList.PERSONA, EntitiesList.USER_GROUP, EntitiesList.USERS_NUMBER])\n .filters(filters);\n\n return httpClientCoreQuery.get(q).then(({ data }) => data);\n}\n","import { UserGroupManagersApiFactory } from '@eloomi/eloomi-user-groups-persona-client/1.0';\nimport { authorizeClient } from '@/api/http-client';\n\nconst userGroupManagersClient = authorizeClient(UserGroupManagersApiFactory);\n\nexport function getUserGroupManagers(groupId: number) {\n return userGroupManagersClient.getUserGroupManagers(groupId).then(({ data }) => data);\n}\n\nexport function addUserGroupManager(groupId: number, userId: number) {\n return userGroupManagersClient.createUserGroupManager(groupId, { user_id: userId }).then(({ data }) => data);\n}\n\nexport function deleteUserGroupManager(groupId: number, userId: number) {\n return userGroupManagersClient.deleteUserGroupManager(groupId, userId).then(({ data }) => data);\n}\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { authorizeClient, httpClientCoreQuery } from '@/api/http-client';\nimport { RuleDefinition, Rule, GetRuleParametersResponse, mapParameters, UnmappedParameter } from '../models';\nimport { FluentFilterCollection, Operator } from '@/common/services';\nimport { PaginatedDataUnmapped } from '@/common/models/paginated-data';\n\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\nimport { RulesApiFactory as RulesApiFactoryV2 } from '@eloomi/eloomi-user-groups-persona-client/2.0';\nimport { AxiosResponse } from 'axios';\n\nconst rulesClientV2 = authorizeClient(RulesApiFactoryV2);\n\nexport function getRuleParameters(): Promise {\n return rulesClientV2\n .getRuleParameters()\n .then(response => extractAxiosData(response as AxiosResponse))\n .then(mapParameters);\n}\n\nexport function putRule(groupId: number, rule: RuleDefinition, ruleId: number | null = null) {\n const q = new CoreQuery().entity([EntitiesList.USER_GROUPS, EntitiesList.PERSONA, EntitiesList.RULE]);\n\n const payload = {\n ...(ruleId !== null ? { id: ruleId } : {}),\n user_group_id: groupId,\n definition: rule,\n };\n\n return httpClientCoreQuery.put(q, payload);\n}\n\nexport function getRuleById(ruleId: number) {\n const q = new CoreQuery().entity([EntitiesList.USER_GROUPS, EntitiesList.PERSONA, EntitiesList.RULE, ruleId]);\n\n return httpClientCoreQuery.get(q).then(({ data }) => data);\n}\n\nexport function getRules(\n options: { page: number; pageSize: number },\n groupId: number\n): Promise> {\n const filters = new FluentFilterCollection().where('user_group_id').filter(Operator.IsEqualTo, groupId);\n\n const q = new CoreQuery()\n .entity([EntitiesList.USER_GROUPS, EntitiesList.PERSONA, EntitiesList.RULE, EntitiesList.GROUP, groupId])\n .filters(filters)\n .param({\n page: options.page,\n page_size: options.pageSize,\n });\n\n return httpClientCoreQuery.get>(q).then(({ data }) => data);\n}\n\nexport function previewUserCount(rule: RuleDefinition) {\n const q = new CoreQuery().entity([\n EntitiesList.USER_GROUPS,\n EntitiesList.PERSONA,\n EntitiesList.RULE,\n EntitiesList.PREVIEW,\n ]);\n\n return httpClientCoreQuery.post(q, rule).then(({ data }) => data);\n}\n\nexport function deleteRules(ruleIds: Array) {\n const q = new CoreQuery()\n .entity([EntitiesList.USER_GROUPS, EntitiesList.PERSONA, EntitiesList.RULE])\n .data({ ids: ruleIds });\n\n return httpClientCoreQuery.delete<''>(q).then(({ data }) => data);\n}\n","import { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\nimport { mobileIsUnsupportedFlag } from '@/common/services/mobile-fallback';\nimport { Permissions } from '@/permissions';\n\nconst groupsAdministrationPage = () => import('./pages/GroupsAdministration.vue');\nconst createEditGroupPage = () => import('./pages/CreateEditGroupPage.vue');\n\nexport const enum AdminGroupsRoutes {\n GROUPS = 'organization-groups',\n GROUP_CREATE = 'group-create',\n GROUP_EDIT = 'group-edit',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: 'groups',\n name: AdminGroupsRoutes.GROUPS,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Groups`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n requiredPermissions: [Permissions.AdminGroups],\n },\n component: groupsAdministrationPage,\n },\n {\n path: 'groups/create',\n name: AdminGroupsRoutes.GROUP_CREATE,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Groups`,\n ...mobileIsUnsupportedFlag,\n defaultBackRoute: AdminGroupsRoutes.GROUPS,\n requiredPermissions: [Permissions.AdminGroups],\n },\n component: createEditGroupPage,\n },\n {\n path: 'groups/:id(\\\\d+)/edit',\n name: AdminGroupsRoutes.GROUP_EDIT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Groups`,\n ...mobileIsUnsupportedFlag,\n defaultBackRoute: AdminGroupsRoutes.GROUPS,\n requiredPermissions: [Permissions.AdminGroups],\n },\n component: createEditGroupPage,\n },\n];\n\nexport default routes;\n","import { Module, Mutations, Actions, createMapper, Getters } from 'vuex-smart-module';\n\nimport { Rule } from '../models';\nimport { getGroup } from '../providers';\nimport { sleep } from '@/common/services';\n\nclass State {\n public isAddRuleModalShown = false;\n public isEditRuleModalShown = false;\n public activeRule: Rule | null = null;\n public hasRuleModifications = false;\n public rulesAreBeingProcessed = false;\n public groupId: number | null = null;\n}\n\nclass StoreMutations extends Mutations {\n public showAddRuleModal() {\n this.state.isAddRuleModalShown = true;\n }\n\n public hideAddRuleModal() {\n this.state.isAddRuleModalShown = false;\n }\n\n public showEditRuleModal(rule: Rule) {\n this.state.isEditRuleModalShown = true;\n this.state.activeRule = rule;\n }\n\n public hideEditRuleModal() {\n this.state.isEditRuleModalShown = false;\n this.state.activeRule = null;\n }\n\n public markRuleModifications(groupId: number) {\n this.state.hasRuleModifications = true;\n this.state.groupId = groupId;\n }\n\n public cleanRuleModificationsMark() {\n this.state.hasRuleModifications = false;\n this.state.groupId = null;\n }\n\n public flagRulesProcessing(value: boolean) {\n this.state.rulesAreBeingProcessed = value;\n }\n}\n\nexport class StoreActions extends Actions, StoreMutations, StoreActions> {\n public static POLLING_PERIOD = 2000;\n\n private scheduleNextStatusRequest = async (groupId: number, immediate = false) => {\n return new Promise((resolve, reject) => {\n setTimeout(\n () => {\n getGroup(groupId)\n .then(group => {\n if (group.all_rules_processed) {\n return resolve();\n }\n resolve(this.scheduleNextStatusRequest(groupId));\n })\n .catch(reject);\n },\n immediate ? 0 : StoreActions.POLLING_PERIOD\n );\n });\n };\n\n public async checkIfRulesAreProcessedOrPoll() {\n if (this.state.hasRuleModifications) {\n await this.dispatch('pollForRuleProcessingStatus', this.state.groupId!);\n this.mutations.cleanRuleModificationsMark();\n return true;\n }\n return false;\n }\n\n public async pollForRuleProcessingStatus(groupId: number) {\n this.mutations.flagRulesProcessing(true);\n try {\n // Wait at least 1 second until notification will hide\n await Promise.all([this.scheduleNextStatusRequest(groupId, true), sleep(1000)]);\n } finally {\n this.mutations.flagRulesProcessing(false);\n }\n }\n}\n\nconst storeModule = new Module({\n state: State,\n mutations: StoreMutations,\n actions: StoreActions,\n});\n\nexport const userGroupStoreMapper = createMapper(storeModule);\nexport default storeModule;\n","import { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\n\nimport { mobileIsUnsupportedFlag } from '@/common/services/mobile-fallback';\nimport { checkIfRouteAvailableByPlanFeatures } from '@/plan-features/routes';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { Permissions } from '@/permissions';\n\nconst PLAYLIST_BUILDER_PAGE = () => import('./pages/PlaylistBuilderPage.vue');\nconst PLAYLISTS_OVERVIEW_PAGE = () => import('./pages/PlaylistsOverviewPage.vue');\n\nexport const enum AdminPlaylistsRoutes {\n PLAYLIST_BUILDER_CREATE = 'playlist-builder-create',\n PLAYLIST_BUILDER = 'playlist-builder',\n PLAYLISTS_OVERVIEW = 'playlists-overview',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: 'playlists',\n name: AdminPlaylistsRoutes.PLAYLISTS_OVERVIEW,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Playlists Overview`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n requiredPermissions: [Permissions.AdminPlaylists],\n },\n component: PLAYLISTS_OVERVIEW_PAGE,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.PLAYLISTS),\n },\n {\n path: 'playlists/create',\n name: AdminPlaylistsRoutes.PLAYLIST_BUILDER_CREATE,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Create playlist`,\n ...mobileIsUnsupportedFlag,\n defaultBackRoute: AdminPlaylistsRoutes.PLAYLISTS_OVERVIEW,\n requiredPermissions: [Permissions.AdminPlaylists],\n },\n component: PLAYLIST_BUILDER_PAGE,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.PLAYLISTS),\n },\n {\n path: 'playlists/:id(\\\\d+)/edit',\n name: AdminPlaylistsRoutes.PLAYLIST_BUILDER,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Edit playlist`,\n ...mobileIsUnsupportedFlag,\n defaultBackRoute: AdminPlaylistsRoutes.PLAYLISTS_OVERVIEW,\n requiredPermissions: [Permissions.AdminPlaylists],\n },\n component: PLAYLIST_BUILDER_PAGE,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.PLAYLISTS),\n },\n];\n\nexport default routes;\n","import { authorizeClient } from '@/api/http-client';\nimport {\n CustomFieldsAdminApiFactory,\n CustomFieldBaseRequest,\n CustomFieldMapItem,\n} from '@eloomi/eloomi-users-persona-client/1.0';\nimport { DataRequestOptions } from '@/common/components/table';\nimport { buildFilter } from '@/common/services';\n\nconst client = authorizeClient(CustomFieldsAdminApiFactory);\nconst customFieldsAdminClient = authorizeClient(CustomFieldsAdminApiFactory);\n\nexport function getCustomFields(options: DataRequestOptions) {\n const filterStr = buildFilter('name', options.searchQuery);\n\n return client.getCustomFields(filterStr, undefined, options.page, options.pageSize).then(({ data }) => data);\n}\n\nexport function getCustomFieldsLite() {\n return client.getCustomFieldsLite().then(({ data }) => data);\n}\n\nexport function getCustomFieldById(id: number) {\n return client.getCustomFieldById(id);\n}\n\nexport function createCustomField(customField: CustomFieldBaseRequest) {\n return client.createCustomField(customField);\n}\n\nexport function updateCustomField(id: number, customField: CustomFieldBaseRequest) {\n return client.updateCustomField(id, customField);\n}\n\nexport function deleteCustomField(id: number) {\n return client.deleteCustomField(id);\n}\n\nexport async function updateCustomUsersFields(fields?: CustomFieldMapItem[]) {\n return customFieldsAdminClient.mapCustomFields(fields);\n}\n","import { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\nimport { mobileIsUnsupportedFlag } from '@/common/services/mobile-fallback';\nimport { guards } from '@/main/multipleGuardsHandler';\nimport { checkIfRouteAvailableByPlanFeatures } from '@/plan-features/routes';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { checkIfRouteAvailableByRole } from '@/admin/access-feature.guard';\nimport { Permissions } from '@/permissions';\nimport { checkIfSsoIsAvailable } from '@/admin/settings/services/sso.guard';\n\nconst CustomFieldsAdministrationPage = () => import('./pages/CustomFieldsAdministrationPage.vue');\nconst brandingAdministrationPage = () => import('@/admin/branding/pages/BrandingAdministrationPage.vue');\nconst ssoAdministrationPage = () => import('@/admin/settings/pages/SsoAdministrationPage.vue');\n\nexport const enum AdminSettingsRoutes {\n CUSTOM_FIELDS = 'custom-fields',\n BRANDING = 'branding',\n SSO = 'sso',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: `settings/${AdminSettingsRoutes.BRANDING}`,\n name: AdminSettingsRoutes.BRANDING,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Branding Administration`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n requiredPermissions: [Permissions.AdminBranding],\n },\n component: brandingAdministrationPage,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.BRANDING),\n },\n {\n path: `settings/${AdminSettingsRoutes.CUSTOM_FIELDS}`,\n name: AdminSettingsRoutes.CUSTOM_FIELDS,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Custom Fields`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n },\n component: CustomFieldsAdministrationPage,\n beforeEnter: guards([\n checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.CUSTOM_FIELDS),\n checkIfRouteAvailableByRole(),\n ]),\n },\n {\n path: `settings/${AdminSettingsRoutes.SSO}`,\n name: AdminSettingsRoutes.SSO,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | SSO`,\n showNavigationSidebar: true,\n requiredPermissions: [Permissions.AdminApi],\n },\n component: ssoAdministrationPage,\n beforeEnter: checkIfSsoIsAvailable(),\n },\n];\n\nexport default routes;\n","import { NavigationGuard, NavigationGuardNext, Route } from 'vue-router';\nimport { handlePageNotFound } from '@/common/services/transition-common';\nimport store, { smartRootModule } from '@/main/baseStore';\nimport { PredefinedAccessUserRoles } from '@/admin/users/providers/user-access-roles';\n\nexport const checkIfRouteAvailableByRole = (): NavigationGuard => {\n return async (_to: Route, _from: Route, next: NavigationGuardNext) => {\n const authUserDetailsModule = smartRootModule.context(store).modules.userProfileDetails;\n const isAuthUserLoaded = authUserDetailsModule.state.authUserProfile;\n\n if (!isAuthUserLoaded) {\n await authUserDetailsModule.actions.loadUserProfile();\n }\n\n const isAuthDetailsAvailable = authUserDetailsModule.getters.userDetails();\n\n if (isAuthDetailsAvailable?.infiniteRoleKey === PredefinedAccessUserRoles.USER) {\n handlePageNotFound(next);\n } else {\n next();\n }\n };\n};\n","import { NavigationGuard, NavigationGuardNext, Route } from 'vue-router';\nimport { handlePageNotFound } from '@/common/services/transition-common';\nimport { PlatformResolutionService } from '@/common/services';\n\nexport const checkIfSsoIsAvailable = (): NavigationGuard => {\n return async (_to: Route, _from: Route, next: NavigationGuardNext) => {\n const statelessPlatformService = new PlatformResolutionService();\n const isPageAvailable = !statelessPlatformService.isSsoLoginEnabled();\n if (!isPageAvailable) {\n handlePageNotFound(next);\n return;\n }\n\n next();\n };\n};\n","import { CustomFieldBaseRequest, CustomFieldBaseResponse } from '@eloomi/eloomi-users-persona-client/1.0';\nimport { Actions, createComposable, createMapper, Getters, Module, Mutations } from 'vuex-smart-module';\nimport {\n createCustomField,\n deleteCustomField,\n getCustomFields,\n getCustomFieldsLite,\n updateCustomField,\n} from '@/admin/settings/providers/custom-fields';\nimport { Vue } from 'vue-property-decorator';\nimport { DataRequestOptions } from '@/common/components/table';\n\nclass State {\n public customFieldsLite: CustomFieldBaseResponse[] | null = null;\n}\n\nclass StoreMutations extends Mutations {\n public setCustomFieldsLite(customFields: CustomFieldBaseResponse[] | null) {\n this.state.customFieldsLite = customFields;\n }\n}\n\nclass StoreActions extends Actions, StoreMutations, StoreActions> {\n public async initCustomFieldsLite() {\n this.mutations.setCustomFieldsLite(await getCustomFieldsLite());\n }\n\n public async createCustomField(customField: CustomFieldBaseRequest) {\n await createCustomField(customField);\n this.mutations.setCustomFieldsLite(null);\n }\n\n public async updateCustomField({ id, customField }: { id: number; customField: CustomFieldBaseRequest }) {\n await updateCustomField(id, customField);\n this.mutations.setCustomFieldsLite(null);\n }\n\n public async deleteCustomField(id: number) {\n await deleteCustomField(id);\n this.mutations.setCustomFieldsLite(null);\n }\n\n public async getCustomFields(options: DataRequestOptions) {\n return getCustomFields(options);\n }\n}\n\nconst storeModule = new Module({\n state: State,\n mutations: StoreMutations,\n actions: StoreActions,\n});\n\nexport const useCustomFieldsStore = createComposable(storeModule);\n\nexport const storeMapper = createMapper(storeModule);\nexport const CustomFieldsMappedStore = Vue.extend({\n computed: {\n ...storeMapper.mapState(['customFieldsLite']),\n },\n methods: {\n ...storeMapper.mapActions([\n 'createCustomField',\n 'deleteCustomField',\n 'getCustomFields',\n 'initCustomFieldsLite',\n 'updateCustomField',\n ]),\n },\n});\n\nexport default storeModule;\n","import { authorizeClient } from '@/api/http-client';\nimport { DataRequestOptions } from '@/common/components/table';\nimport { buildFilter } from '@/common/services';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\nimport {\n CourseSkillApiFactory,\n CourseSkillAdminApiFactory,\n EmsiSkillItem,\n} from '@eloomi/eloomi-learning-persona-client/1.0';\nimport { SkillsApiFactory } from '@eloomi/eloomi-skills-persona-client/1.0';\n\nconst courseSkillClient = authorizeClient(CourseSkillApiFactory);\nconst courseSkillAdminClient = authorizeClient(CourseSkillAdminApiFactory);\nconst skillsAdminClient = authorizeClient(SkillsApiFactory);\n\nexport async function getCourseSkills(courseId: number) {\n return courseSkillClient.getCourseSkills(courseId).then(extractAxiosData);\n}\n\nexport async function addCourseSkills(courseId: number, skills: EmsiSkillItem[]) {\n return courseSkillAdminClient.createCourseSkills(courseId, { skills }).then(({ data }) => data);\n}\n\nexport async function removeSkill(courseId: number, skillId: number) {\n return courseSkillAdminClient.deleteCourseSkill(courseId, skillId);\n}\n\nexport async function getSkillsLite(options: DataRequestOptions = { page: 1, pageSize: 10 }) {\n return skillsAdminClient\n .getSkillsLite(buildFilter('name', options.searchQuery), 'name', options.page, options.pageSize)\n .then(extractAxiosData);\n}\n","import {\n IntegrationMergeApiFactory,\n MergeIntegrationDetailsResponse,\n UserDeletionAndDeactivationStrategy,\n} from '@eloomi/eloomi-platforms-persona-client/1.0';\nimport { MergeIntegrationApiFactory } from '@eloomi/eloomi-users-persona-client/1.0';\n\nimport { authorizeClient } from '@/api/http-client';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\n\nconst integrationMergeClient = authorizeClient(IntegrationMergeApiFactory);\nconst integrationMergeStatusClient = authorizeClient(MergeIntegrationApiFactory);\n\nexport async function getLinkToken(integration_platform: string | null) {\n return integrationMergeClient.getLinkToken({ integration: integration_platform }).then(extractAxiosData);\n}\n\nexport async function completeIntegration(token: string) {\n return integrationMergeClient.completeIntegration({ public_token: token });\n}\n\nexport async function getAllIntegrations() {\n return integrationMergeClient.getSupportedHrisIntegrations().then(extractAxiosData);\n}\n\nexport async function getIntegrationDetails(): Promise {\n return integrationMergeClient.getIntegrationDetails().then(extractAxiosData);\n}\n\nexport async function deleteIntegrationPlatform() {\n return integrationMergeClient.deleteIntegration();\n}\n\nexport async function syncIntegration(is_enabled: boolean) {\n return integrationMergeClient.toggleIntegrationEnabled({ is_enabled: is_enabled });\n}\n\nexport async function deleteDeactivationUsers(action: UserDeletionAndDeactivationStrategy) {\n return integrationMergeClient.putMergeIntegrationSettings({ user_deletion_and_deactivation_strategy: action });\n}\n\nexport async function getStatus() {\n return integrationMergeStatusClient.getCurrentStatus().then(extractAxiosData);\n}\n\nexport async function importMergeUsers(starting_from: string | null = null) {\n return integrationMergeStatusClient.importMergeUsers({ starting_from: starting_from });\n}\n","import { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\nimport { mobileIsUnsupportedFlag } from '@/common/services/mobile-fallback';\nimport { checkIfRouteAvailableByPlanFeatures } from '@/plan-features/routes';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { Permissions } from '@/permissions';\n\nconst skillsLibraryPage = () => import('./pages/SkillsLibraryPage.vue');\nconst businessTitlesPage = () => import('./pages/BusinessTitlesPage.vue');\n\nexport const enum AdminSkillsRoutes {\n BUSINESS_TITLES = 'business-titles',\n SKILLS_LIBRARY = 'skills-library',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: 'business-titles',\n name: AdminSkillsRoutes.BUSINESS_TITLES,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Business Titles`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n requiredPermissions: [Permissions.AdminSkills],\n },\n component: businessTitlesPage,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.SKILLS),\n },\n {\n path: 'skills-library',\n name: AdminSkillsRoutes.SKILLS_LIBRARY,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Skills Library`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n requiredPermissions: [Permissions.AdminSkills],\n },\n component: skillsLibraryPage,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.SKILLS),\n },\n];\n\nexport default routes;\n","import { Module, Mutations, Actions, createMapper, Getters, createComposable } from 'vuex-smart-module';\nimport { getIntegrationDetails } from '@/admin/skills/providers/merge-integration';\nimport { MergeIntegrationDetailsResponse } from '@eloomi/eloomi-platforms-persona-client/1.0';\nimport Vue from 'vue';\n\nclass State {\n public mergeIntegrationDetails: MergeIntegrationDetailsResponse | null = null;\n}\n\nclass StoreMutations extends Mutations {\n public setMergeIntegrationDetails(mergeIntegrationDetails: MergeIntegrationDetailsResponse | null) {\n this.state.mergeIntegrationDetails = mergeIntegrationDetails;\n }\n}\n\nexport class StoreActions extends Actions, StoreMutations, StoreActions> {\n public async getMergeIntegrationDetails() {\n const integrationDetails = await getIntegrationDetails();\n this.mutations.setMergeIntegrationDetails(integrationDetails || null);\n }\n}\n\nconst mergeIntegrationStoreModule = new Module({\n state: State,\n mutations: StoreMutations,\n actions: StoreActions,\n});\n\nexport const useMergeIntegrationStore = createComposable(mergeIntegrationStoreModule);\nexport default mergeIntegrationStoreModule;\n\nexport const MergeIntegrationStoreMapper = createMapper(mergeIntegrationStoreModule);\nexport const MergeIntegrationStoreMixin = Vue.extend({\n computed: MergeIntegrationStoreMapper.mapState(['mergeIntegrationDetails']),\n methods: MergeIntegrationStoreMapper.mapActions(['getMergeIntegrationDetails']),\n});\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { httpClientCoreQuery } from '@/api/http-client';\n\nexport function deleteCategories(categories: number[]) {\n const q = new CoreQuery()\n .entity([EntitiesList.TOPICS, EntitiesList.PERSONA, EntitiesList.CATEGORY])\n .data(categories);\n\n return httpClientCoreQuery.delete(q);\n}\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { httpClientCoreQuery } from '@/api/http-client';\nimport { Topic } from '@/admin/topics/models/topic';\n\nexport function createEditTopic(topic: Topic) {\n const q = new CoreQuery().entity([EntitiesList.TOPICS, EntitiesList.PERSONA, EntitiesList.TOPIC]);\n\n return httpClientCoreQuery.put(q, topic);\n}\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { httpClientCoreQuery } from '@/api/http-client';\n\nexport function deleteTopicsBulk(ids: number[]) {\n const q = new CoreQuery().entity([EntitiesList.TOPICS, EntitiesList.PERSONA, EntitiesList.TOPIC]).data(ids);\n\n return httpClientCoreQuery.delete(q);\n}\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { httpClientCoreQuery } from '@/api/http-client';\nimport { DataRequestOptions, TablePaginatedData } from '@/common/components/table/v2/interfaces';\nimport { Topic } from '@/admin/topics/models/topic';\n\nimport { FluentFilterCollection, isNotEmpty, Operator } from '@/common/services';\nimport { Filter } from '@/reporting/models/segment';\n\nexport interface TopicSearchOptions extends DataRequestOptions {\n category_id?: number;\n topic_ids?: number[];\n filter?: Filter;\n}\n\nexport function getTopics(options: TopicSearchOptions): Promise> {\n const filters = new FluentFilterCollection();\n\n if (isNotEmpty(options.searchQuery)) {\n filters.where('name').filter(Operator.Contains, options.searchQuery!);\n }\n\n if (options.category_id) {\n filters.where('category_id').filter(Operator.Have, options.category_id);\n }\n\n if (options.topic_ids) {\n filters.where('id').filter(Operator.IsEqualTo, options.topic_ids.join('|'));\n }\n\n if (options.filter?.mode) {\n if (options.filter.mode === 'inclusive') {\n filters.where('id').filter(Operator.IsEqualTo, options.filter?.selectedIds.join('|'));\n } else {\n options.filter.selectedIds.forEach(id => {\n filters.where('id').filter(Operator.IsNotEqualTo, id);\n });\n }\n }\n\n const q = new CoreQuery()\n .entity([EntitiesList.TOPICS, EntitiesList.PERSONA, EntitiesList.TOPIC])\n .filters(filters)\n .param({\n page: options.page,\n page_size: options.pageSize,\n sorts: '-id',\n });\n\n return httpClientCoreQuery.get>(q).then(({ data }) => data);\n}\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models/entities.enum';\nimport httpClient from '@/api/http-client';\nimport { Topic } from '@/admin/topics/models/topic';\n\nexport const putTopic = (topic: Topic) => {\n const q = new CoreQuery();\n\n q.path([EntitiesList.TOPICS, EntitiesList.PERSONA, EntitiesList.TOPIC]);\n return httpClient\n .put(q.query, topic, q.axiosConfigParams)\n .then(({ data }) => data)\n .catch(e => {\n throw e.response.data;\n });\n};\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { authorizeClient, httpClientCoreQuery } from '@/api/http-client';\nimport { DataRequestOptions, TablePaginatedData } from '@/common/components/table/v2/interfaces';\n\nimport { FluentFilterCollection, isNotEmpty, Operator } from '@/common/services';\nimport { Category } from '@/admin/topics/models';\nimport { CategoryApiFactory } from '@eloomi/eloomi-topics-persona-client/1.0';\nimport { UserApiFactory } from '@eloomi/eloomi-learning-persona-client/1.0';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\n\nconst userLearningApiFactory = authorizeClient(UserApiFactory);\n// TODO remove and refactor usages\nexport function getCategories(options?: DataRequestOptions) {\n const q = new CoreQuery().entity([EntitiesList.TOPICS, EntitiesList.PERSONA, EntitiesList.CATEGORY]);\n if (options) {\n const filters = isNotEmpty(options.searchQuery)\n ? new FluentFilterCollection().where('name').filter(Operator.Contains, options.searchQuery!)\n : undefined;\n\n q.filters(filters).param({\n page: options.page,\n page_size: options.pageSize,\n });\n }\n return httpClientCoreQuery.get>(q).then(({ data }) => data);\n}\n\nexport function getUserCategories() {\n return userLearningApiFactory.getUserCategories().then(extractAxiosData);\n}\n\n// New version\nconst categoryApiClient = authorizeClient(CategoryApiFactory);\n\nfunction getFilters(options?: DataRequestOptions) {\n if (!options?.searchQuery) return undefined;\n\n const filter = new FluentFilterCollection();\n filter.where('name').filter(Operator.Contains, options.searchQuery);\n\n return filter.build();\n}\n\nexport function getCategoriesNew(options?: DataRequestOptions) {\n const filters = getFilters(options);\n\n return categoryApiClient.get(filters, undefined, options?.page, options?.pageSize).then(extractAxiosData);\n}\n","import { Category } from '@/admin/topics/models';\nimport { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { httpClientCoreQuery } from '@/api/http-client';\n\nexport function createEditCategory(category: Category) {\n const q = new CoreQuery().path([EntitiesList.TOPICS, EntitiesList.PERSONA, EntitiesList.CATEGORY]);\n\n return httpClientCoreQuery.put(q, category).then(({ data }) => data);\n}\n","import { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\nimport { mobileIsUnsupportedFlag } from '@/common/services/mobile-fallback';\nimport { checkIfRouteAvailableByPlanFeatures } from '@/plan-features/routes';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { Permissions } from '@/permissions';\n\nconst topicsAdministrationPage = () => import('./pages/TopicsAdministrationPage.vue');\n\nexport const enum AdminTopicsRoutes {\n TOPICS = 'topics',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: AdminTopicsRoutes.TOPICS,\n name: AdminTopicsRoutes.TOPICS,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Topics Administration`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n requiredPermissions: [Permissions.AdminCategoriesTopics],\n },\n component: topicsAdministrationPage,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.CATEGORIES_TOPICS),\n },\n];\n\nexport default routes;\n","import { authorizeClient } from '@/api/http-client';\nimport { CreateUserRequest, UserAdminPersonaApiFactory } from '@eloomi/eloomi-users-persona-client/1.0';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\nimport { AxiosError } from 'axios';\n\nconst userAdminPersonaApiClient = authorizeClient(UserAdminPersonaApiFactory);\n\nexport interface UserLimitResponse {\n limitExceeded: boolean;\n limitParams?: {\n reason: string;\n return_url: string;\n max_allowed: string;\n };\n}\n\nexport function adminCreateUser(command: CreateUserRequest) {\n return userAdminPersonaApiClient.create(command).then(extractAxiosData);\n}\n\nexport const adminVerifyUserLimit = async () => {\n try {\n await userAdminPersonaApiClient.verifyLimit().then(extractAxiosData);\n } catch (e) {\n const response = (e as AxiosError).response;\n if (response && response.status === 400 && response.data?.error_code === 'platform_quota_exceeded') {\n return {\n limitExceeded: true,\n limitParams: {\n reason: response.data.reason as string,\n return_url: response.data.return_url as string,\n max_allowed: response.data.max_allowed as string,\n },\n };\n } else {\n return { limitExceeded: undefined };\n }\n }\n return { limitExceeded: false };\n};\n","import { InfiniteUserRolesAdminPersonaApiFactory } from '@eloomi/eloomi-users-persona-client/1.0/api';\nimport { authorizeClient } from '@/api/http-client';\nimport { DataRequestOptions } from '@/common/components/table';\nimport { buildFilter } from '@/common/services';\nimport translationsStore from '@/translations/store';\nimport baseStore from '@/main/baseStore';\n\nconst userRolesClient = authorizeClient(InfiniteUserRolesAdminPersonaApiFactory);\n\nexport enum PredefinedAccessUserRoles {\n ADMIN = 'admin',\n USER = 'user',\n}\n\nexport const PageMaxSizeFromApi = 2147483647;\n\n/**\n * Retrieves all available custom user-roles.\n * Roles which can be added by admin to be more restrict what should be visible for specific users.\n * Number of data will not be very large\n */\nexport function getAllAccessUserRoles(options: DataRequestOptions) {\n const trans = translationsStore.context(baseStore).getters.trans;\n const filterStr = buildFilter('Name', options.searchQuery);\n\n return userRolesClient.getAll(filterStr, undefined, options.page, options.pageSize).then(({ data }) => {\n if (data?.data) {\n data.data.forEach(item => {\n if (item.key == PredefinedAccessUserRoles.ADMIN || item.key == PredefinedAccessUserRoles.USER) {\n item.description = trans(\n `spa.admin.users-organization.user-access-roles.user-role.${item.key}.description`\n );\n item.name = trans(`spa.admin.users-organization.user-access-roles.user-role.${item.key}.name`);\n }\n });\n }\n\n return data;\n });\n}\n","import { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\n\nimport { mobileIsUnsupportedFlag } from '@/common/services/mobile-fallback';\nimport { adminVerifyUserLimit } from './providers/create-user';\nimport { AdminBillingRoutes } from '../billing/routes';\n\nconst userIndexPage = () => import('./pages/UserIndexPage.vue');\nconst userCreateEditPage = () => import('./pages/UserCreateEditPage.vue');\nimport { Permissions } from '@/permissions';\n\nconst metaTitle = 'User Administration';\n\nexport const enum AdminUsersRoutes {\n USERS = 'organization-users',\n USER_CREATE = 'organization-user_create',\n USER_EDIT = 'organization-user_edit',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: 'users',\n name: AdminUsersRoutes.USERS,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | ${metaTitle}`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: true,\n requiredPermissions: [Permissions.AdminUsers],\n },\n component: userIndexPage,\n props: {\n user: undefined,\n new: undefined,\n },\n },\n {\n path: 'users/create',\n name: AdminUsersRoutes.USER_CREATE,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | ${metaTitle}`,\n ...mobileIsUnsupportedFlag,\n defaultBackRoute: AdminUsersRoutes.USERS,\n requiredPermissions: [Permissions.AdminUsers],\n },\n beforeEnter: async (_to, _from, next) => {\n const userVerified = await adminVerifyUserLimit();\n if (userVerified.limitExceeded && userVerified.limitParams) {\n next({\n name: AdminBillingRoutes.BILLING,\n query: userVerified.limitParams,\n });\n } else if (userVerified.limitExceeded === false) {\n next();\n } else if (userVerified.limitExceeded === undefined) {\n console.error('Unable to get user limit verification');\n next(false);\n }\n },\n component: userCreateEditPage,\n },\n {\n path: 'users/:id(\\\\d+)/edit',\n name: AdminUsersRoutes.USER_EDIT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | ${metaTitle}`,\n ...mobileIsUnsupportedFlag,\n defaultBackRoute: AdminUsersRoutes.USERS,\n requiredPermissions: [Permissions.AdminUsers],\n },\n component: userCreateEditPage,\n },\n];\n\nexport default routes;\n","import { AdapterInterface } from '@/common/interfaces';\nimport { TopNavItem } from '@/common/models';\n\nexport const topNavAdapter: AdapterInterface = {\n adapt: (data: any) => {\n const arr = Object.values(data);\n return arr.map(\n (item: any): TopNavItem => {\n const { subnav } = item;\n return new TopNavItem({ ...item, subnav: topNavAdapter.adapt(subnav) });\n }\n );\n },\n};\n","import { AdapterInterface } from '@/common/interfaces';\n\nexport const userAdapter: AdapterInterface = {\n adapt: (data: any) => {\n return data;\n },\n};\n","import axios from 'axios';\nimport environment from '../environment';\n\nconst regex = /http[s]?:[/\\\\]+[A-Za-z0-9./\\\\-]+eloomi\\.(com|io)(?:[\\\\/]+platform)?[\\\\/]+files[\\\\/]+([0-9]+)[^\"]*/gm;\nconst envUrl = getEnvUrl();\n\n// NOTE: This is a tool for working on localhost.\n// This shouldn't be used on prod due to security reasons (exposing apikey in URL).\n\nfunction getEnvUrl() {\n if (environment?.apiBaseUrl != null && typeof environment?.apiBaseUrl === 'string')\n return environment.apiBaseUrl.endsWith('/') ? environment.apiBaseUrl : environment.apiBaseUrl + '/';\n return '';\n}\n\nfunction transformFileUrlsInResponse(data) {\n // Rewrites http://...eloomi.com/files/123123\n // to http://...eloomi.com/platform/files/123123?apikey=xxx\n if (typeof data === 'string')\n data = data.replace(regex, (_, __, p1) => {\n const newStr = `${envUrl}platform/files/${p1}?apikey=${environment.apiKey}`;\n return newStr;\n });\n\n if (axios.defaults.transformResponse) {\n if (Array.isArray(axios.defaults.transformResponse)) {\n return axios.defaults.transformResponse.reduce((acc, tr) => tr.call(axios.defaults, acc), data);\n } else if (axios.defaults.transformResponse != null) {\n return axios.defaults.transformResponse(data);\n }\n }\n\n return data;\n}\n\nfunction transformFileUrlsInRequest(data, headers) {\n // Rewrites back http://...eloomi.com/platform/files/123123?apikey=xxx urls to\n // http://...eloomi.com/files/123123\n if (axios.defaults.transformRequest) {\n if (Array.isArray(axios.defaults.transformRequest)) {\n data = axios.defaults.transformRequest.reduce((acc, tr) => tr(acc, headers), data);\n } else if (axios.defaults.transformRequest != null) {\n data = axios.defaults.transformRequest(data);\n }\n }\n\n if (!data) return data;\n\n if (typeof data === 'string') {\n data = data.replace(regex, (_, p1) => {\n const newStr = `https://release.eloomi.com/files/${p1}`;\n return newStr;\n });\n }\n\n return data;\n}\n\nexport default {\n transformResponse: transformFileUrlsInResponse,\n transformRequest: transformFileUrlsInRequest,\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport axios, { AxiosInstance, AxiosRequestConfig } from 'axios';\n\nimport environment, { ApiAuthTypes } from '@/environment';\nimport { CoreQuery } from '@/common/services/core-query';\nimport { JWTLoginSessionManager } from '@/authentication/services/session/session-manager';\n\nimport devFileTransformers from './dev-file-transformers';\nimport { makeWarnLogger } from '@/common/services/debug-helper';\n\nlet axiosConfig: AxiosRequestConfig = {\n baseURL: environment.apiBaseUrl,\n};\n\nif (environment.apiAuthMode === ApiAuthTypes.key && environment.apiKey) {\n axiosConfig = {\n ...axiosConfig,\n headers: {\n apiKey: environment.apiKey,\n },\n ...(process.env.NODE_ENV === 'development' ? devFileTransformers : {}),\n };\n}\n\nconst httpClient = axios.create(axiosConfig);\n\n/** Creates authorized client from generated client factory function. */\nexport function authorizeClient(\n factoryFunction: (configuration?: any, basePath?: string, axios?: AxiosInstance) => T\n) {\n let apiBaseUrl = environment.apiBaseUrl || '';\n\n if (apiBaseUrl.endsWith('/')) {\n apiBaseUrl = apiBaseUrl.slice(0, apiBaseUrl.length - 1);\n }\n\n return factoryFunction(\n {\n apiKey: (keyName: string) => {\n if (keyName === 'apikey') return environment.apiKey;\n return '';\n },\n accessToken: async () => {\n /**\n * Since session manager depends on `authorizeClient` via session refresher\n * we have to call it as late as possible to overcome webpack circular dependency negative effects.\n */\n const warnLog = makeWarnLogger('authorize-client');\n const sessionManager = new JWTLoginSessionManager();\n try {\n return sessionManager.load().getToken();\n } catch {\n warnLog(\"couldn't load token using session manager\");\n }\n },\n },\n environment.apiBaseUrl,\n axios.create()\n );\n}\n\nexport function initClientWithoutAuth(\n factoryFunction: (configuration?: any, basePath?: string, axios?: AxiosInstance) => T\n) {\n let apiBaseUrl = environment.apiBaseUrl || '';\n\n if (apiBaseUrl.endsWith('/')) {\n apiBaseUrl = apiBaseUrl.slice(0, apiBaseUrl.length - 1);\n }\n\n return factoryFunction({}, environment.apiBaseUrl, axios.create());\n}\n\nexport const httpClientCoreQuery = {\n get: (q: CoreQuery) => httpClient.get(q.query, q.axiosConfigParams),\n post: (q: CoreQuery, data?: any) => httpClient.post(q.query, data, q.axiosConfigParams),\n put: (q: CoreQuery, data?: any) => httpClient.put(q.query, data, q.axiosConfigParams),\n patch: (q: CoreQuery, data?: any) => httpClient.patch(q.query, data, q.axiosConfigParams),\n delete: (q: CoreQuery) => httpClient.delete(q.query, q.axiosConfigParams),\n};\n\nexport default httpClient;\n","import httpClient, { authorizeClient, httpClientCoreQuery } from '@/api/http-client';\nimport { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models/entities.enum';\nimport { PaginatedDataUnmapped } from '@/common/models/paginated-data';\nimport { CoreEntitiesFilter } from '@/common/classes';\nimport { BuilderCourse, CoursePage } from '@/admin/courses/store/interfaces';\nimport { FluentFilterCollection, Operator } from '@/common/services';\nimport { IUnmappedAdminCourse } from '@/admin/courses/models/IAdminCourse';\nimport { debounce } from 'lodash-es';\nimport {\n AdminOverviewApiFactory,\n BuilderChapterApiFactory,\n BuilderCourseApiFactory,\n BuilderPageApiFactory,\n CourseType,\n PlayerQuizApiFactory,\n} from '@eloomi/eloomi-learning-persona-client/1.0';\n\nimport { AttachmentContentElement, VideoContentElement } from '@/admin/courses/utils';\nimport { Filter } from '@/reporting/models/segment';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\nimport { UpdateCourseRequest, UpdatePageRequest } from '@eloomi/eloomi-learning-persona-client/1.0/models';\nimport {\n BuilderContentApiFactory,\n PutQuizOpenTextRequest,\n QuizApiFactory,\n PutQuizRatingScaleRequest,\n QuizChoiceQuestionContentBuilderContract,\n StoreQuizAttemptRequest,\n} from '@eloomi/eloomi-content-persona-client/1.0';\nimport {\n ChoiceQuestionContentBuilderContract,\n PutIframeContentRequest,\n} from '@eloomi/eloomi-content-persona-client/1.0/models';\nimport { Filters, FilterType } from '@/common/components/filter';\nimport { DataRequestOptions } from '@/common/components/table';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst adminOverviewApiClient: any = authorizeClient(AdminOverviewApiFactory);\nconst builderCourseApiClient: any = authorizeClient(BuilderCourseApiFactory);\nconst builderChapterApiClient: any = authorizeClient(BuilderChapterApiFactory);\nconst builderPageApiClient: any = authorizeClient(BuilderPageApiFactory);\nconst builderContentApiClient: any = authorizeClient(BuilderContentApiFactory);\nconst quizApiClient = authorizeClient(QuizApiFactory);\nconst playerQuizApiClient = authorizeClient(PlayerQuizApiFactory);\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\ninterface GetAllCoursesOptions {\n courseNameSearchQuery?: string;\n page?: number;\n pageSize?: number;\n filter?: Filter;\n}\n\nexport interface CourseListRequestFilters extends Filters {\n courseTitle?: {\n value: string;\n };\n\n courseId?: {\n value: Array;\n mode: 'inclusive' | 'exclusive';\n };\n}\n\nexport type CourseListRequestOptions = DataRequestOptions;\n\nexport function getCourse(id: number): Promise {\n return builderCourseApiClient\n .getCourseWithStructure(id)\n .then(extractAxiosData)\n .then(data => data as BuilderCourse);\n}\n\nexport function editCourse(id: number, course: UpdateCourseRequest) {\n return builderCourseApiClient.editCourse(id, course).then(extractAxiosData);\n}\n\nexport function createChapter(id, chapter) {\n return builderChapterApiClient.addChapter(id, chapter).then(extractAxiosData);\n}\n\nexport function createPage(courseId, chapterId, page): Promise {\n return builderPageApiClient\n .createPage(courseId, chapterId, page)\n .then(extractAxiosData)\n .then(data => data as CoursePage);\n}\n\nexport function updatePage({\n courseId,\n chapterId,\n pageId,\n page,\n}: {\n courseId: number;\n chapterId: number;\n pageId: number;\n page: CoursePage;\n}) {\n return builderPageApiClient\n .updatePage(courseId, chapterId, pageId, page as UpdatePageRequest)\n .then(extractAxiosData);\n}\n\nexport function getPageWithContent({ courseId, chapterId, pageId }) {\n return builderPageApiClient\n .getPage(courseId, chapterId, pageId)\n .then(extractAxiosData)\n .then(data => data as CoursePage);\n}\n\nexport function deletePage({ courseId, chapterId, pageId }) {\n return builderPageApiClient.deletePage(courseId, chapterId, pageId);\n}\n\nexport function getAllCourses(options: GetAllCoursesOptions = {}) {\n const filters = new FluentFilterCollection();\n\n options.courseNameSearchQuery !== undefined\n ? filters.where('title').filter(Operator.Contains, options.courseNameSearchQuery)\n : undefined;\n\n const pageNumber = options.page ?? 1;\n const pageSize = options.pageSize ?? 10;\n\n if (options.filter?.mode) {\n if (options.filter.mode === 'inclusive') {\n filters.where('id').filter(Operator.IsEqualTo, options.filter?.selectedIds.join('|'));\n } else {\n options.filter.selectedIds.forEach(id => {\n filters.where('id').filter(Operator.IsNotEqualTo, id);\n });\n }\n }\n\n if (options.filter?.doNotShowArchived) {\n filters.where('archived_at').filter(Operator.IsEqualTo, 'null');\n }\n\n const q = new CoreQuery()\n .path([EntitiesList.LEARNING, EntitiesList.PERSONA, EntitiesList.OVERVIEW])\n .filters(filters)\n .param({\n page: pageNumber,\n page_size: pageSize,\n });\n\n return httpClientCoreQuery.get>(q).then(extractAxiosData);\n}\n\nfunction getCourseListFiltersParam(options: CourseListRequestFilters) {\n const filters = new FluentFilterCollection();\n\n if (options.courseTitle && options.courseTitle.value) {\n filters.where('title').filter(Operator.Contains, options.courseTitle.value);\n }\n\n if (options.courseId && options.courseId.value.length > 0) {\n if (options.courseId.mode === 'inclusive') {\n filters.where('id').filter(Operator.IsEqualTo, options.courseId.value.join('|'));\n }\n\n if (options.courseId.mode === 'exclusive') {\n options.courseId.value.forEach(id => {\n filters.where('id').filter(Operator.IsNotEqualTo, id);\n });\n }\n }\n\n if (options[FilterType.Topic]?.value.length) {\n filters.where('topic_id').filter(Operator.Have, options[FilterType.Topic]!.value.join('|'));\n }\n\n if (options[FilterType.Category]?.value.length) {\n filters.where('category_id').filter(Operator.Have, options[FilterType.Category]!.value.join('|'));\n }\n\n if (options[FilterType.Author]?.value.length) {\n filters.where('author_id').filter(Operator.Have, options[FilterType.Author]!.value.join('|'));\n }\n\n if (options[FilterType.CourseType]?.value.length) {\n filters.where('course_type').filter(Operator.IsEqualTo, options[FilterType.CourseType]!.value.join('|'));\n }\n\n if (options[FilterType.Skill]?.value.length) {\n filters.where('skill_ids').filter(Operator.Have, options[FilterType.Skill]!.value.join('|'));\n }\n\n return filters.build();\n}\n\nexport function getAllCoursesNew(options: CourseListRequestOptions) {\n const filters = options.filters ? getCourseListFiltersParam(options.filters) : undefined;\n const pageNumber = options.page ?? 1;\n const pageSize = options.pageSize ?? 10;\n\n return adminOverviewApiClient\n .getListOfCourses(filters, undefined, pageNumber, pageSize)\n .then(extractAxiosData) as Promise>;\n}\n\nexport function createCourse({ courseType }: { courseType: CourseType }) {\n return builderCourseApiClient.postCourse({ course_type: courseType }).then(extractAxiosData);\n}\n\nexport function editIframeElement(guid, data: PutIframeContentRequest) {\n return builderContentApiClient.putIframeContent(guid, data).then(extractAxiosData);\n}\n\nexport function editVideoElement(guid, data: VideoContentElement) {\n return builderContentApiClient\n .putVideoContent(guid, { file_url: data.video_url, filename: data.filename })\n .then(extractAxiosData);\n}\nexport function editQuizChoiceElement(guid, data: QuizChoiceQuestionContentBuilderContract) {\n if (!data.question) data.question = '';\n if (!data.description) data.description = '';\n\n if (data.choice_options) {\n data.choice_options = data.choice_options.filter(x => x.option !== '');\n\n if (!data.multiple_answers && data.choice_options.filter(x => x.is_correct).length > 1) return;\n }\n\n return builderContentApiClient.putQuizChoiceQuestionContent(guid, data).then(extractAxiosData);\n}\n\nexport function editQuizRatingElement(guid: string, data: PutQuizRatingScaleRequest) {\n if (!data.question) {\n return;\n }\n return builderContentApiClient.putQuizRatingScaleContent(guid, data).then(extractAxiosData);\n}\n\nfunction _editChoiceListElement(guid, data: ChoiceQuestionContentBuilderContract) {\n if (!data.question) data.question = '';\n if (!data.description) data.description = '';\n\n if (data.choice_options) {\n data.choice_options = data.choice_options.filter(x => x.option !== '');\n\n if (!data.multiple_answers && data.choice_options.filter(x => x.is_correct).length > 1) return;\n }\n\n return builderContentApiClient.putChoiceQuestionContent(guid, data).then(extractAxiosData);\n}\n\nexport function storeQuizAttempt(attempt: StoreQuizAttemptRequest) {\n return quizApiClient.storeQuizAttempt(attempt);\n}\nexport function getQuizAttempts(attemptId: number) {\n return quizApiClient.getQuizAttempt(attemptId).then(extractAxiosData);\n}\n\ninterface SubmitAttemptPayload {\n courseId: number;\n chapterId: number;\n pageId: number;\n}\n\nexport function submitAttempt({ courseId, chapterId, pageId }: SubmitAttemptPayload) {\n return playerQuizApiClient.submitAttempt(courseId, chapterId, pageId).then(extractAxiosData);\n}\n\ninterface CreateNewAttemptPayload {\n courseId: number;\n chapterId: number;\n pageId: number;\n}\n\nexport function createNewAttempt({ courseId, chapterId, pageId }: CreateNewAttemptPayload) {\n return playerQuizApiClient.createNewAttempt(courseId, chapterId, pageId).then(extractAxiosData);\n}\n\nexport const editChoiceListElement = debounce(_editChoiceListElement, 300);\n\nexport function editQuizOpenTextElement(guid: string, data: PutQuizOpenTextRequest) {\n if (!data.question) {\n return;\n }\n return builderContentApiClient.putQuizOpenTextContent(guid, data).then(extractAxiosData);\n}\nexport function editAttachmentElement(guid, data: AttachmentContentElement) {\n return builderContentApiClient\n .putAttachmentContent(guid, {\n data: data.attachment_content_items!.map(item => {\n return {\n ...item,\n id: item.id!,\n file_size: item.file_size!,\n filename: item.file_name!,\n };\n }),\n })\n .then(extractAxiosData);\n}\n\nexport function deleteCoursesBulk(coursesIds: number[]) {\n return builderCourseApiClient.deleteCourses({\n course_ids: coursesIds,\n });\n}\n\nexport function archiveCoursesBulk(coursesIds: (number | undefined)[]) {\n if (coursesIds.includes(undefined)) {\n return;\n }\n return builderCourseApiClient.archiveCourses({ course_ids: coursesIds });\n}\n\nexport function unArchiveCoursesBulk(coursesIds: (number | undefined)[]) {\n if (coursesIds.includes(undefined)) {\n return;\n }\n return builderCourseApiClient.unArchiveCourses({ course_ids: coursesIds });\n}\n\ninterface SmartSelectionUser {\n first_name: string;\n id: number;\n image_url: string | null;\n job_title: string;\n last_name: string;\n}\n\ninterface GetUsersQueryExclusiveSelection {\n excluded_user_ids: number[];\n}\ninterface GetUsersQueryInclusiveSelection {\n included_user_ids: number[];\n}\n\nexport type GetUsersQuerySmartSelection = GetUsersQueryInclusiveSelection | GetUsersQueryExclusiveSelection;\n\nexport function getUsersBySmartSelection({\n selection,\n page = 1,\n pageSize = 10,\n filters,\n}: {\n selection: GetUsersQuerySmartSelection;\n page: number;\n pageSize: number;\n filters?: CoreEntitiesFilter;\n}) {\n const q = new CoreQuery()\n .path([EntitiesList.LEARNING, EntitiesList.PERSONA, EntitiesList.USER])\n .filters(filters)\n .param({\n page,\n page_size: pageSize,\n });\n\n return httpClientCoreQuery.post>(q, selection).then(({ data }) => data);\n}\n\nexport interface AddAssignmentQueryExclusiveSelection {\n mode: 'exclusive';\n queryArgs: {\n excluded_user_ids: number[];\n };\n}\nexport interface AddAssignmentQueryInclusiveSelection {\n mode: 'inclusive';\n queryArgs: {\n user_ids: number[];\n };\n}\n\nexport type AddAssignmentQuerySelection = AddAssignmentQueryInclusiveSelection | AddAssignmentQueryExclusiveSelection;\n\nexport function getAdminOverviewReport() {\n const q = new CoreQuery().path([\n EntitiesList.LEARNING,\n EntitiesList.PERSONA,\n EntitiesList.OVERVIEW,\n EntitiesList.REPORT,\n ]);\n return httpClient.get(q.query, { ...q.axiosConfigParams, responseType: 'blob' }).then(({ data }) => {\n return data;\n });\n}\n","import { AdapterInterface } from '@/common/interfaces';\nimport { CoreQuery } from '@/common/services/core-query';\nimport http from '../http-client';\n\nexport function getAndAdaptData(q: CoreQuery, adapter: AdapterInterface, ...fields: string[]): any {\n return http\n .get(q.query, q.axiosConfigParams)\n .then(({ data }) => data)\n .then(response => {\n if (Array.isArray(response.data)) {\n const { data = [], total, last_page: lastPage } = response;\n const adaptedData = data.map((member: any) => adapter.adapt(member));\n\n return {\n data: adaptedData,\n total,\n lastPage,\n };\n } else {\n if (Array.isArray(fields) && fields.length > 0) {\n const adapted = fields.reduce((acc, c) => (acc ? acc[c] : acc), response);\n\n return {\n initial: response,\n adapted,\n };\n } else {\n return adapter.adapt(response);\n }\n }\n });\n}\n\nexport function getAndAdaptSingleDatum(q: CoreQuery, adapter: AdapterInterface) {\n return http.get(q.query, q.axiosConfigParams).then(response => {\n return adapter.adapt(response.data);\n });\n}\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { httpClientCoreQuery } from '@/api/http-client';\nimport { ICoursePlayerPage } from '@/courses/models';\n\nfunction generatePlayerPageControllerQuery({ courseId, chapterId }): CoreQuery {\n return new CoreQuery().path([\n EntitiesList.LEARNING,\n EntitiesList.PERSONA,\n EntitiesList.PLAYER,\n EntitiesList.COURSE,\n courseId,\n EntitiesList.CHAPTER,\n chapterId,\n EntitiesList.PAGE,\n ]);\n}\n\nexport function getCoursePlayerPageDetails({ courseId, chapterId, pageId }): Promise {\n const q = generatePlayerPageControllerQuery({ courseId, chapterId }).path(pageId);\n\n return httpClientCoreQuery.get(q).then(({ data }) => data);\n}\n\nexport function getPlayerCourse(id: number | string): Promise {\n const q = new CoreQuery().path([\n EntitiesList.LEARNING,\n EntitiesList.PERSONA,\n EntitiesList.PLAYER,\n EntitiesList.COURSE,\n id,\n ]);\n\n return httpClientCoreQuery.get(q).then(({ data }) => {\n return data;\n });\n}\n\nexport function getLastAttempt(guid: number | string, questionType: QuestionType): Promise {\n const q = new CoreQuery().path([\n EntitiesList.CONTENT,\n EntitiesList.PERSONA,\n EntitiesList.QUESTION,\n questionType,\n EntitiesList.ATTEMPT,\n guid,\n ]);\n\n return httpClientCoreQuery.get(q).then(({ data }) => data);\n}\n\nexport function submitAttempt(\n request: SubmitAttemptRequest,\n questionType: QuestionType\n): Promise {\n const q = new CoreQuery().path([\n EntitiesList.CONTENT,\n EntitiesList.PERSONA,\n EntitiesList.QUESTION,\n questionType,\n EntitiesList.SUBMIT,\n ]);\n\n return httpClientCoreQuery.post(q, request).then(({ data }) => data);\n}\n\nexport type QuestionType = 'choice' | 'unknown';\nexport interface SubmitAttemptRequest {\n question_guid: Guid;\n options: Guid[];\n}\nexport interface QuestionAttemptResult {\n question_guid: Guid;\n passed: boolean;\n options: Guid[];\n}\nexport type Guid = string;\n","import { authorizeClient } from '@/api/http-client';\nimport { CoreEntitiesFilter } from '@/common/classes';\nimport { UnmappedUserCourse } from '@/courses/models';\nimport { DashboardApiFactory } from '@eloomi/eloomi-learning-persona-client/2.0';\nimport { DashboardApiFactory as NewDashboardApiFactory } from '@eloomi/eloomi-learning-persona-client/3.0';\nexport interface CourseOverviewResponse {\n data: UnmappedUserCourse[];\n total: number;\n last_page: number;\n}\nconst dashboardClient = authorizeClient(DashboardApiFactory);\nconst newDashboardClient = authorizeClient(NewDashboardApiFactory);\n\nexport function getAllUserCourses({ page = 1, pageSize = 10 } = {}, filters?: CoreEntitiesFilter) {\n const filterStr = filters?.toQueryStringSearch();\n return dashboardClient.getUserLearningItems(filterStr, '', page, pageSize).then(response => response.data);\n}\n\nexport function getSectionsList() {\n return newDashboardClient.getLiteDashboardSections().then(({ data }) => data);\n}\n\nexport function getDashboardSections(keys: string[], pageSize: number) {\n return newDashboardClient.getDashboardSections(keys, undefined, undefined, 1, pageSize).then(({ data }) => data);\n}\n\nexport function getDashboardSection(key: string, { page = 1, pageSize = 4 } = {}) {\n return newDashboardClient.getDashboardSection(key, undefined, undefined, page, pageSize).then(({ data }) => data);\n}\n\nexport interface DashboardSearchSingleResult {\n id: number;\n image_url: string | null;\n title: string;\n description: string;\n duration: number;\n type: 'topic' | 'course' | 'playlist';\n}\n\nexport const DASHBOARD_PAGE_SIZE = 6;\n\nexport const dashboardSearch = searchTerm => {\n return dashboardClient.search(searchTerm, DASHBOARD_PAGE_SIZE).then(response => response.data);\n};\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models/entities.enum';\nimport httpClient, { authorizeClient } from '@/api/http-client';\nimport {\n VimeoUpload,\n VimeoVideoApiFactory,\n InitVimeoVideoUploadCommand,\n} from '@eloomi/eloomi-content-persona-client/1.0';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\nimport { VideoContent } from '@eloomi/eloomi-content-persona-client/1.0/models/video-content';\n\nconst VimeoClient = authorizeClient(VimeoVideoApiFactory);\n\nexport async function uploadVideo(data: FormData): Promise {\n const q = new CoreQuery();\n q.entity([EntitiesList.VIDEO, EntitiesList.QUEUE]);\n\n const response = await httpClient.post(q.query, data, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n 'X-Eloomi-Video-Destination': 'VIMEO',\n },\n });\n const uploadResult = response.data;\n return {\n part: uploadResult.part,\n row: uploadResult.row,\n };\n}\n\nexport function getUploadVideoContent(rowKey: string) {\n const q = new CoreQuery();\n q.entity([EntitiesList.VIDEO, EntitiesList.EMBED]).param({\n row_key: rowKey,\n });\n\n return httpClient.get(q.query, q.axiosConfigParams).then(({ data }) => {\n return data;\n });\n}\n\nexport async function uploadVimeoVideo(command: InitVimeoVideoUploadCommand): Promise {\n return VimeoClient.initUpload(command).then(extractAxiosData);\n}\n\nexport function getUploadVimeoVideoContent(id: number): Promise {\n return VimeoClient.getVideo(id).then(extractAxiosData);\n}\n\nexport interface VideoUploadResult {\n part: number;\n row: string;\n}\n","import { authorizeClient } from '@/api/http-client';\nimport { BrandingApiFactory, BrandingResponse } from '@eloomi/eloomi-platforms-persona-client/1.0';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\n\nconst brandingApiClient = authorizeClient(BrandingApiFactory);\n\nfunction withDefaultValues(response: BrandingResponse): BrandingResponse {\n return {\n ...response,\n branding_color: response.branding_color ?? '#0030c0',\n primary_color: response.primary_color ?? '#00abed',\n branding_text_color: response.branding_text_color ?? '#ffffff',\n };\n}\n\nexport async function getBranding() {\n const brandingResponse = await brandingApiClient.getBranding().then(extractAxiosData);\n return withDefaultValues(brandingResponse);\n}\n","import { EntitiesList } from '@/common/models';\nimport { CoreQuery } from '@/common/services/core-query';\nimport { httpClientCoreQuery } from '../http-client';\n\nexport function editTextElement(guid, content) {\n const q = new CoreQuery().path([\n EntitiesList.CONTENT,\n EntitiesList.PERSONA,\n EntitiesList.BUILDER,\n EntitiesList.TEXT,\n guid,\n ]);\n\n return httpClientCoreQuery.put(q, content);\n}\n","import { userAdapter } from '../adapters';\nimport { EntitiesFilter } from '@/common/classes';\nimport { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models/entities.enum';\nimport { getAndAdaptData } from '@/api/providers/core.provider.helpers';\nimport {\n EmailNotificationRules,\n UserDetailsResponse,\n UserSelfDetailsResponse,\n UserPersonaApiFactory,\n} from '@eloomi/eloomi-users-persona-client/1.0';\nimport { UsersAdminApiFactory, UsersApiFactory, UserSkillItem } from '@eloomi/eloomi-skills-persona-client/1.0';\nimport { authorizeClient } from '@/api/http-client';\nimport { convertBackendResponseToModel } from '@/common/services';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\nimport { UserProfile } from '@/common/interfaces';\nimport { ManagersApiFactory } from '@eloomi/eloomi-user-groups-persona-client/1.0';\n\nconst usersApiClient = authorizeClient(UserPersonaApiFactory);\nconst usersSkillsApiClient = authorizeClient(UsersApiFactory);\nconst userGroupManagersApiClient = authorizeClient(ManagersApiFactory);\nconst userAdminApiClient = authorizeClient(UsersAdminApiFactory);\n\nfunction convertResponseDetailsToUserProfile(response: UserDetailsResponse | UserSelfDetailsResponse): UserProfile {\n return {\n ...convertBackendResponseToModel(response),\n emailNotificationRules: response.email_notification_rule\n ? (response.email_notification_rule.split(',').map(rule => rule.trim()) as EmailNotificationRules[])\n : [],\n };\n}\n\nexport async function isReportingManager() {\n return (await userGroupManagersApiClient.isCurrentUserManager()).data;\n}\n\nexport async function getUserProfile(id: number) {\n return convertResponseDetailsToUserProfile((await usersApiClient.getDetails(id)).data);\n}\n\nexport async function getSelfUserProfile() {\n return convertResponseDetailsToUserProfile((await usersApiClient.getSelfDetails()).data);\n}\n\nexport function getUsers(filters: EntitiesFilter, page = 1) {\n const q = CoreQuery.fromNamespace(EntitiesList.ORGANIZATION)\n .path(EntitiesList.USERS)\n .filters(filters)\n .sorts(filters)\n .param({\n page,\n });\n\n return getAndAdaptData(q, userAdapter);\n}\n\nexport async function getSelfSkillsInfo() {\n return usersSkillsApiClient.getUserSkills().then(extractAxiosData);\n}\n\nexport async function getUserSkillsInfo(userId: number) {\n return userAdminApiClient.getSpecificUserSkills(userId).then(extractAxiosData);\n}\n\nexport async function setSelfSkillsInfo(skills: UserSkillItem[]) {\n return usersSkillsApiClient.updateUserSkills({ skills });\n}\n\nexport async function completeSkillsSetup() {\n return usersSkillsApiClient.completeUserSetup();\n}\n","export const AuthenticationServiceTokens = Object.freeze({\n AuthenticationService: 'AuthenticationService',\n SessionManager: 'SessionManager',\n RedirectService: 'RedirectService',\n PlatformResolutionService: 'PlatformResolutionService',\n ResetSessionDataService: 'ResetSessionDataService',\n SessionApiClient: 'SessionApiClient',\n ActivateUserService: 'ActivateUserService',\n AuthFlowStoreService: 'AuthFlowStoreService',\n ForgotPasswordService: 'ForgotPasswordService',\n ResetPasswordService: 'ResetPasswordService',\n LogoutUseCase: 'LogoutUseCase',\n} as const);\n","export enum AuthenticationRouteNames {\n LOGIN = 'login',\n RESET_PASSWORD = 'reset-password',\n ACTIVATE_USER = 'activate-user',\n INSTANT_LOGIN = 'instant-login',\n}\n","export class InvalidCredentialsError extends Error {\n constructor() {\n super(`Couldn't log in using provided credentials`);\n\n Object.setPrototypeOf(this, InvalidCredentialsError.prototype);\n }\n}\n\nexport class EmptyCredentialsError extends Error {\n constructor() {\n super(`Couldn't log in using empty credentials`);\n\n Object.setPrototypeOf(this, EmptyCredentialsError.prototype);\n }\n}\n\nexport class InvalidEmailProvided extends Error {\n constructor() {\n super(`The email is incorrect.`);\n\n Object.setPrototypeOf(this, InvalidEmailProvided.prototype);\n }\n}\n\nexport class InvalidPlatformError extends Error {\n constructor() {\n super(`The provided platform id is different to active platform.`);\n\n Object.setPrototypeOf(this, InvalidPlatformError.prototype);\n }\n}\n\nexport class PasswordMismatchError extends Error {\n constructor() {\n super(`Given passwords do not match.`);\n\n Object.setPrototypeOf(this, PasswordMismatchError.prototype);\n }\n}\n\nexport class EmptyPasswordError extends Error {\n constructor() {\n super(`Passwords are empty.`);\n\n Object.setPrototypeOf(this, EmptyPasswordError.prototype);\n }\n}\n\nexport class ValidationPasswordError extends Error {\n constructor() {\n super(`Your password does not meet the criteria.`);\n\n Object.setPrototypeOf(this, ValidationPasswordError.prototype);\n }\n}\n\nexport class EmptyJwtTokenError extends Error {\n constructor() {\n super(`JWT token is empty.`);\n\n Object.setPrototypeOf(this, EmptyJwtTokenError.prototype);\n }\n}\n\nexport class LoginSessionLoadError extends Error {\n constructor() {\n super(LoginSessionLoadError.message);\n Object.setPrototypeOf(this, LoginSessionLoadError.prototype);\n }\n\n static get message() {\n return `Couldn't load a session from local storage: it's undefined.`;\n }\n}\n\nexport class InvalidTokenParamError extends Error {\n constructor() {\n super(`Token parameter is invalid.`);\n\n Object.setPrototypeOf(this, EmptyJwtTokenError.prototype);\n }\n}\n\nexport class EntityNotFoundEndpointError extends Error {\n constructor() {\n super(`Endpoint error entity not found.`);\n\n Object.setPrototypeOf(this, EntityNotFoundEndpointError.prototype);\n }\n}\n\nexport class TooManyLoginAttemptsError extends Error {\n constructor() {\n super(`Too many login attempts.`);\n\n Object.setPrototypeOf(this, TooManyLoginAttemptsError.prototype);\n }\n}\n","import { initClientWithoutAuth } from '@/api/http-client';\nimport { PlatformLoginApiFactory, LoginRequest } from '@eloomi/eloomi-users-external-client/1.0';\nimport axios from 'axios';\n\nimport { InvalidCredentialsError, EmptyCredentialsError, TooManyLoginAttemptsError } from './errors';\nimport { JWT, PlatformResolver } from './interfaces';\nimport { AuthenticationServiceTokens } from '../di-tokens';\n\nconst PlatformLoginApiClient = initClientWithoutAuth(PlatformLoginApiFactory);\n\nexport class JWTAuthenticationService {\n public static inject = [AuthenticationServiceTokens.PlatformResolutionService] as const;\n\n constructor(private platformResolver: PlatformResolver) {}\n\n public async logIn(email: string, password: string) {\n const request: LoginRequest = { email, password };\n const { id } = await this.platformResolver.getPlatformData(true);\n try {\n const token = (await PlatformLoginApiClient.doLogin(id, request)).data as JWT;\n return {\n data: { token },\n };\n } catch (error) {\n if (axios.isAxiosError(error)) {\n if (error.response?.status === 401) {\n throw new InvalidCredentialsError();\n } else if (error.response?.status === 400) {\n throw new EmptyCredentialsError();\n } else if (error.response?.status === 429) {\n throw new TooManyLoginAttemptsError();\n }\n }\n throw error;\n }\n }\n}\n","import { AxiosInstance, AxiosRequestConfig } from 'axios';\n\nimport { JWT } from './interfaces';\nimport { JWTLoginSessionManager } from './session/session-manager';\n\nexport class AxiosSessionInjector {\n constructor(private readonly httpClient: AxiosInstance, private readonly sessionManager: JWTLoginSessionManager) {}\n private requestInterceptorId?: number;\n\n private readonly sessionInjector = async (config: AxiosRequestConfig) => {\n const jwt = await this.getToken();\n\n return {\n ...config,\n headers: {\n ...config.headers,\n Authorization: `Bearer ${jwt}`,\n },\n };\n };\n\n public install() {\n if (this.requestInterceptorId !== undefined) {\n return;\n }\n this.requestInterceptorId = this.httpClient.interceptors.request.use(this.sessionInjector);\n }\n\n public uninstall() {\n if (this.requestInterceptorId === undefined) {\n return;\n }\n this.httpClient.interceptors.request.eject(this.requestInterceptorId);\n this.requestInterceptorId = undefined;\n }\n\n private async getToken(): Promise {\n const session = this.sessionManager.load();\n return session.getToken();\n }\n}\n","import { Route, NavigationGuardNext, RouteRecord } from 'vue-router';\n\nimport type { queryStringWithRedirectParam, RouteRecordWithAuthMeta } from './interfaces';\nimport { TokenValidator } from './token-manager';\nimport { Store } from 'vuex';\nimport { goToDefaultPage } from '@/common/services/transition-common';\nimport { JWTLoginSessionManager } from './session/session-manager';\nimport { showDelayedNotification } from '@/common/services';\nimport { LOGIN_PAGE_LOCATION } from '@/authentication/services/locations';\nimport { parseTokenParamFromRoute } from '@/authentication/services/parse-token-param-from-route';\n\nexport function isAuthRequiredForAnyMatchedRoute(routes: RouteRecord[]) {\n return routes.some(record => (record as RouteRecordWithAuthMeta).meta.requiresAuth);\n}\n\nexport function isAnyMatchedRouteForUnauthorizedOnly(routes: RouteRecord[]) {\n return routes.some(record => (record as RouteRecordWithAuthMeta).meta.onlyUnauthorized);\n}\n\nexport class VueRouteTransitionGuardService {\n public constructor(private readonly routeTo: Route, private readonly goNext: NavigationGuardNext) {}\n\n public isAuthRequiredForTargetRoute(): boolean {\n return isAuthRequiredForAnyMatchedRoute(this.routeTo.matched);\n }\n\n public isTargetRouteForUnauthorizedOnly(): boolean {\n return isAnyMatchedRouteForUnauthorizedOnly(this.routeTo.matched);\n }\n\n public parseTokenParamFromRoute(): string {\n return parseTokenParamFromRoute(this.routeTo);\n }\n\n public changeTransitionToLoginPage(redirectWithQueryParams = true) {\n this.goNext({\n ...LOGIN_PAGE_LOCATION,\n query: redirectWithQueryParams ? ({ redirect: this.routeTo.fullPath } as queryStringWithRedirectParam) : {},\n });\n }\n\n public changeTransitionToDefaultPage() {\n goToDefaultPage(this.goNext);\n }\n\n public changeTransitionToInitialPage() {\n const sessionManager = new JWTLoginSessionManager();\n if (sessionManager.isLoggedIn()) {\n this.changeTransitionToDefaultPage();\n } else {\n this.changeTransitionToLoginPage(false);\n }\n }\n\n public acceptCurrentTransition() {\n this.goNext();\n }\n}\n\nexport class VueRouteTokenTransitionGuardService extends VueRouteTransitionGuardService {\n public async verifyTokenTransition(validator: TokenValidator, baseStore: Store) {\n try {\n const token = this.parseTokenParamFromRoute();\n const tokenValidationResult = await validator(token);\n\n if (tokenValidationResult.isValid) {\n this.acceptCurrentTransition();\n return;\n }\n\n this.changeTransitionToInitialPage();\n\n await showDelayedNotification(baseStore, {\n theme: 'warning',\n message: tokenValidationResult.message,\n duration: 2000,\n });\n } catch (error) {\n console.warn(error);\n this.changeTransitionToInitialPage();\n }\n }\n}\n","import { registerPlugin } from '@capacitor/core';\n\nexport interface SingleSignOnPlugin {\n redirectToIdentityProvider(options: { url: string }): Promise;\n}\n\nexport const SingleSignOn = registerPlugin('SingleSignOn');\n","import VueRouter from 'vue-router';\n\nimport { DEFAULT_PAGE_LOCATION } from '@/authentication/services/locations';\n\nimport { AuthenticationRouteNames } from '../route-definitions';\n\nimport { queryStringWithRedirectParam } from './interfaces';\n\nimport { isAuthRequiredForAnyMatchedRoute } from './transition-guard';\nimport { ServiceTokens } from '@/di/tokens';\nimport environment from '@/environment';\nimport { SingleSignOn } from '@/authentication/services/single-sign-on-plugin';\nimport { Platform } from '@/common/services/get-device-platform';\nimport type { SSOOrigin } from '../use-cases/login-sso';\n\nexport class VueRouterRedirectionService {\n public static inject = [ServiceTokens.VueRouter] as const;\n\n public constructor(private readonly router: VueRouter) {}\n\n public hasRedirectParamInQuery(): boolean {\n const query = this.router.currentRoute.query as queryStringWithRedirectParam;\n return typeof query.redirect === 'string';\n }\n\n public isOnLoginPage() {\n return this.router.currentRoute.name === AuthenticationRouteNames.LOGIN;\n }\n\n public isAuthRequiredForCurrentRoute() {\n return isAuthRequiredForAnyMatchedRoute(this.router.currentRoute.matched);\n }\n\n public async redirectToPagePassedInQuery() {\n const query = this.router.currentRoute.query as queryStringWithRedirectParam;\n await this.router.push({ path: query.redirect });\n }\n\n public async redirectToDefaultPage() {\n await this.router.push(DEFAULT_PAGE_LOCATION);\n }\n\n public async redirectToLoginPage(isHard = false) {\n if (!isHard) {\n await this.router.push({ name: AuthenticationRouteNames.LOGIN });\n } else {\n const route = this.router.resolve({ name: AuthenticationRouteNames.LOGIN });\n window.location.replace(route.href);\n }\n }\n\n public async redirectToLoginSsoPage(platformId: number, origin: SSOOrigin) {\n const { apiBaseUrl } = environment;\n const baseUrl = apiBaseUrl.endsWith('/') ? apiBaseUrl : apiBaseUrl + '/';\n\n let url = environment.isProduction\n ? `${baseUrl}saml2/${platformId}/init`\n : `${baseUrl}users/external/platform-sso/${platformId}/init`;\n\n if ([Platform.Android, Platform.Ios].includes(origin.devicePlatform)) {\n url += '/?is_mobile';\n }\n\n if (origin.devicePlatform === Platform.Android) {\n await SingleSignOn.redirectToIdentityProvider({ url });\n } else {\n window.location.replace(url);\n }\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport { LoginSessionLoadError } from './errors';\n\nexport class AxiosAccessDeniedErrorHandler {\n constructor(private readonly httpClient: AxiosInstance) {}\n private responseInterceptorId?: number;\n\n private isErrorAlreadyHandled = false;\n\n private errorHandler?: () => boolean;\n\n private readonly forbiddenErrorHandler = error => {\n if (axios.isAxiosError(error)) {\n const response = error?.response;\n\n if (response?.status === 403 && this.handleForbiddenError()) {\n return;\n }\n } else if (error instanceof LoginSessionLoadError && this.handleForbiddenError()) {\n return;\n }\n\n throw error;\n };\n\n private handleForbiddenError() {\n if (this.errorHandler !== undefined && !this.isErrorAlreadyHandled) {\n this.isErrorAlreadyHandled = this.errorHandler();\n }\n return this.isErrorAlreadyHandled;\n }\n\n public install(handler: () => boolean) {\n if (this.responseInterceptorId !== undefined) {\n this.httpClient.interceptors.response.eject(this.responseInterceptorId);\n }\n this.errorHandler = handler;\n this.responseInterceptorId = this.httpClient.interceptors.response.use(r => r, this.forbiddenErrorHandler);\n }\n\n public uninstall() {\n if (this.responseInterceptorId === undefined) {\n return;\n }\n this.httpClient.interceptors.response.eject(this.responseInterceptorId);\n this.responseInterceptorId = undefined;\n }\n}\n","import { initClientWithoutAuth } from '@/api/http-client';\nimport { UserForgotPasswordApiFactory, ForgotPasswordRequest } from '@eloomi/eloomi-users-external-client/1.0';\nimport axios from 'axios';\n\nimport { AuthenticationServiceTokens } from '../di-tokens';\n\nimport { InvalidEmailProvided } from './errors';\nimport { PlatformResolver } from './interfaces';\n\nconst PlatformLoginApiClient = initClientWithoutAuth(UserForgotPasswordApiFactory);\n\nexport class ForgotPasswordService {\n public static inject = [AuthenticationServiceTokens.PlatformResolutionService] as const;\n\n constructor(private platformResolver: PlatformResolver) {}\n\n public async requestPasswordReset(email: string) {\n const request: ForgotPasswordRequest = { user_email: email };\n const { id } = await this.platformResolver.getPlatformData();\n try {\n await PlatformLoginApiClient.forgotPassword(id, request);\n } catch (error) {\n if (axios.isAxiosError(error)) {\n if (error.response?.status === 400) {\n throw new InvalidEmailProvided();\n }\n }\n throw error;\n }\n }\n}\n","import type { Route } from 'vue-router';\n\nimport { JWT, queryStringWithTokenParam } from './interfaces';\nimport baseStore from '@/main/baseStore';\nimport translationsStore from '@/translations/store';\n\nexport type TokenValidationResult = {\n isValid: boolean;\n message: string;\n};\n\nexport interface TokenValidator {\n (token: string): Promise;\n}\n\n/**\n * Silently remove token from the query string\n */\nexport function removeParamFromQueryString(key: string) {\n const searchParams = new URLSearchParams(window.location.search);\n searchParams.delete(key);\n\n const loc = window.location;\n const params = searchParams.toString();\n const queryString = params.length > 0 ? `?${params}` : '';\n const newUrl = `${loc.protocol}//${loc.host}${loc.pathname}${queryString}`;\n\n window.history.replaceState({ path: newUrl }, '', newUrl);\n}\n\nexport function popTokenFromQueryString(activeRoute: Route) {\n const { token } = activeRoute.query as queryStringWithTokenParam;\n removeParamFromQueryString('token');\n return token as JWT;\n}\n\n/**\n * Get default error message for query param token when is invalid\n */\nfunction getTokenExpirationMessage(): string {\n const trans = translationsStore.context(baseStore).getters.trans;\n return trans('spa.authentication.login.token-link-expired');\n}\n\nexport function getDefaultTokenValidationResult(isValid: boolean): TokenValidationResult {\n return {\n isValid,\n message: isValid ? '' : getTokenExpirationMessage(),\n };\n}\n","import { AuthenticationServiceTokens } from '../../di-tokens';\nimport { PlatformResolver } from '../interfaces';\nimport { InvalidPlatformError } from '../errors';\n\nexport interface PlatformJWTPayload {\n 'eloomi-platform-id': string;\n}\n\nexport abstract class PlatformServiceBase {\n public static inject = [AuthenticationServiceTokens.PlatformResolutionService] as const;\n\n constructor(private readonly platformResolver: PlatformResolver) {}\n\n protected async validatePlatform(payload: PlatformJWTPayload) {\n let isPlatformValid = false;\n if (this.platformResolver) {\n const { id } = await this.platformResolver.getPlatformData();\n isPlatformValid = id === Number(payload['eloomi-platform-id']);\n }\n\n if (!isPlatformValid) {\n throw new InvalidPlatformError();\n }\n }\n}\n","import axios from 'axios';\nimport { initClientWithoutAuth } from '@/api/http-client';\nimport { UserForgotPasswordApiFactory, ResetUserPasswordRequest } from '@eloomi/eloomi-users-external-client/1.0';\n\nimport { JWT } from './interfaces';\nimport { getJWTPayload } from './payload';\nimport { getDefaultTokenValidationResult, TokenValidationResult } from './token-manager';\nimport { PlatformJWTPayload, PlatformServiceBase } from './base/platform-service-base';\n\nconst PlatformLoginApiClient = initClientWithoutAuth(UserForgotPasswordApiFactory);\n\nexport interface ResetPasswordJWTPayload extends PlatformJWTPayload {\n 'user-id': string;\n 'user-email': string;\n}\n\nexport class ResetPasswordService extends PlatformServiceBase {\n public static getPayload(token: JWT): ResetPasswordJWTPayload {\n return getJWTPayload(token, ['eloomi-platform-id', 'user-id', 'user-email']);\n }\n\n public static async verifyToken(token: string): Promise {\n let isCodeValid: boolean;\n try {\n const validationResult = await PlatformLoginApiClient.verifyPasswordReset(token);\n isCodeValid = validationResult.data.success ?? false;\n } catch (error) {\n isCodeValid = false;\n }\n\n return getDefaultTokenValidationResult(isCodeValid);\n }\n\n public async resetPassword(token: JWT, password: string) {\n const payload = ResetPasswordService.getPayload(token);\n await this.validatePlatform(payload);\n\n const request: ResetUserPasswordRequest = { user_id: Number(payload['user-id']), password };\n\n try {\n await PlatformLoginApiClient.resetPassword(token, request);\n } catch (error) {\n if (axios.isAxiosError(error)) {\n if (error.response?.status === 400) {\n /**\n * Password validation etc should be implemented in the upcoming ticket\n */\n throw new Error('Unknown endpoint error');\n }\n }\n throw error;\n }\n }\n}\n","import type { NavigationGuard, NavigationGuardNext, Route } from 'vue-router';\n\nimport baseStore from '@/main/baseStore';\n\nimport { VueRouteTokenTransitionGuardService } from './transition-guard';\nimport type { TokenValidator } from './token-manager';\n\nfunction makeTokenValidatorGuard(validator: TokenValidator): NavigationGuard {\n return (to: Route, _: Route, next: NavigationGuardNext) => {\n const guardService = new VueRouteTokenTransitionGuardService(to, next);\n guardService.verifyTokenTransition(validator, baseStore);\n };\n}\n\nexport { makeTokenValidatorGuard as makeTokenCheckerGuard };\n","import axios from 'axios';\nimport { initClientWithoutAuth } from '@/api/http-client';\nimport { UserActivationApiFactory, ActivateUserRequest } from '@eloomi/eloomi-users-external-client/1.0';\n\nimport { EmptyJwtTokenError } from './errors';\nimport { JWT } from './interfaces';\nimport { getJWTPayload } from './payload';\nimport { getDefaultTokenValidationResult, TokenValidationResult } from './token-manager';\nimport { PlatformJWTPayload, PlatformServiceBase } from './base/platform-service-base';\n\nconst UserActivationApiClient = initClientWithoutAuth(UserActivationApiFactory);\n\nexport interface ActivateUserJWTPayload extends PlatformJWTPayload {\n 'user-id': string;\n 'user-email': string;\n 'activation-code': string;\n}\n\nexport class ActivateUserService extends PlatformServiceBase {\n public static getPayload(token: JWT): ActivateUserJWTPayload {\n return getJWTPayload(token, [\n 'eloomi-platform-id',\n 'user-id',\n 'user-email',\n 'activation-code',\n ]);\n }\n\n public static async verifyToken(token: string): Promise {\n let isCodeValid: boolean;\n try {\n const validationResult = await UserActivationApiClient.verifyActivation(token);\n isCodeValid = validationResult.data.success ?? false;\n } catch (error) {\n isCodeValid = false;\n }\n\n return getDefaultTokenValidationResult(isCodeValid);\n }\n\n public async activateUser(token: JWT, password: string): Promise {\n const payload = ActivateUserService.getPayload(token);\n await this.validatePlatform(payload);\n\n const request: ActivateUserRequest = { password };\n\n try {\n const response = await UserActivationApiClient.activateUser(token, request);\n const jwtToken = response.data.token;\n\n if (!jwtToken) {\n throw new EmptyJwtTokenError();\n }\n\n return jwtToken as JWT;\n } catch (error) {\n if (axios.isAxiosError(error)) {\n if (error.response?.status === 400) {\n /**\n * Password validation etc should be implemented in the upcoming ticket\n */\n throw new Error('Unknown endpoint error');\n }\n }\n throw error;\n }\n }\n}\n","import { Location } from 'vue-router';\nimport { AuthenticationRouteNames } from '@/authentication/route-definitions';\nimport { CoursesRouteNames } from '@/courses/route-definitions';\n\nexport const DEFAULT_PAGE_LOCATION: Location = {\n name: CoursesRouteNames.COURSES_DASHBOARD,\n};\n\nexport const LOGIN_PAGE_LOCATION: Location = {\n name: AuthenticationRouteNames.LOGIN,\n};\n","import { NavigationGuardNext, Route } from 'vue-router';\nimport { LocationQuery } from '@/authentication/services/interfaces';\nimport notificationStore from '@/common/components/toast/store';\nimport translationsStore from '@/translations/store';\nimport baseStore from '@/main/baseStore';\n\ntype queryStringWithStatusParam = LocationQuery & {\n status?: string;\n};\n\nexport enum StatusCodes {\n BadRequest = '400',\n Unauthorized = '401',\n ToManyLoginAttempts = '429',\n}\n\nexport function getLoginSsoErrorStatus(route?: Route): StatusCodes | null {\n if (!route) {\n return null;\n }\n\n const query = route.query as queryStringWithStatusParam;\n const status = query.status as StatusCodes;\n return status;\n}\n\nexport const verifyLoginSsoStatus = (to: Route, _from: Route, next: NavigationGuardNext) => {\n const trans = translationsStore.context(baseStore).getters.trans;\n const status = getLoginSsoErrorStatus(to);\n let message: string | null = null;\n\n if (status) {\n switch (status) {\n case StatusCodes.Unauthorized:\n message = trans(`spa.authentication.login.sso.unauthorized`);\n break;\n case StatusCodes.BadRequest:\n message = trans(`spa.authentication.login.sso.bad-request`);\n break;\n case StatusCodes.ToManyLoginAttempts:\n message = trans(`spa.authentication.login.sso.to-many-attempts`);\n break;\n }\n }\n\n next();\n\n if (message) {\n notificationStore.context(baseStore).actions.showDelayedNotification({\n theme: 'warning',\n message: message,\n duration: 3000,\n });\n }\n};\n","import { queryStringWithTokenParam } from '@/authentication/services/interfaces';\nimport { InvalidTokenParamError } from '@/authentication/services/errors';\nimport { Route } from 'vue-router';\n\nexport function parseTokenParamFromRoute(route: Route): string {\n const query = route.query as queryStringWithTokenParam;\n const token = query.token;\n\n if (typeof token === 'string' && token.length > 0) {\n return token;\n }\n\n throw new InvalidTokenParamError();\n}\n","import { JWT } from './interfaces';\n\n/**\n * Taken from `jose` internals.\n *\n * @see {@link https://github.com/panva/jose/blob/main/src/runtime/browser/base64url.ts}\n *\n */\nexport const decodeBase64 = input => {\n let encoded = input;\n encoded = encoded.replace(/-/g, '+').replace(/_/g, '/').replace(/\\s/g, '');\n try {\n const textDecoder = new TextDecoder();\n return textDecoder.decode(\n new Uint8Array(\n atob(encoded)\n .split('')\n .map(c => c.charCodeAt(0))\n )\n );\n } catch {\n throw new TypeError('The input to be decoded is not correctly encoded.');\n }\n};\n\nexport function getJWTPayload(jwt: JWT, requiredFields: (keyof PayloadType)[]): PayloadType {\n if (!isJwtToken(jwt)) {\n jwt = decodeBase64Url(jwt) as JWT;\n }\n\n const [_header, payload, _signature] = jwt.split('.');\n\n const data = JSON.parse(decodeBase64(payload));\n if (!requiredFields.every(field => field in data && data[field] != null)) {\n throw new TypeError('Malformed JWT payload detected');\n }\n\n return data as PayloadType;\n}\n\nfunction isJwtToken(token: string) {\n return token.includes('ey') && token.includes('.');\n}\n\nfunction decodeBase64Url(input: string) {\n input = input.replace(/-/g, '+').replace(/_/g, '/');\n\n const pad = input.length % 4;\n if (pad) {\n if (pad === 1) {\n throw new Error('InvalidLengthError: Input base64url string is the wrong length to determine padding');\n }\n input += new Array(5 - pad).join('=');\n }\n\n return decodeBase64(input);\n}\n","import { JWT } from '../interfaces';\nimport { LoginSession } from '../../domain';\nimport { getJWTPayload } from '../payload';\n\nexport interface JWTPayload {\n readonly user_id: string;\n readonly platform_id: string;\n\n /** Not valid before timestamp. */\n readonly nbf: number;\n\n /** Expiration timestamp. */\n readonly exp: number;\n\n /** Issued at timestamp. */\n readonly iat: number;\n\n /** Issuer. */\n readonly iss: string;\n}\n\nexport class LoginSessionJWT implements LoginSession {\n private readonly jwtPayload: JWTPayload;\n\n public constructor(readonly jwt: JWT) {\n this.jwtPayload = getJWTPayload(jwt, ['user_id', 'platform_id', 'nbf', 'exp', 'iat', 'iss']);\n }\n\n /**\n * Return JWT as is.\n */\n public getToken() {\n return this.jwt;\n }\n\n /**\n * Check if session isn't expired and is used in a valid period of time.\n * This doesn't guarantee the validity of session token since it may be **modified** by an attacker.\n */\n public isActual() {\n /** Current timestamp in seconds. */\n const now = Date.now() / 1000;\n // return now < this.jwtPayload.exp && now >= this.jwtPayload.nbf;\n const delta = 5 * 60; // 5 minutes\n return now < this.jwtPayload.exp + delta && now >= this.jwtPayload.nbf - delta;\n }\n\n /**\n * Check if session needs a refresh.\n */\n public isRefreshRequired() {\n throw new Error('Method is not implemented');\n }\n}\n","import { JWT } from '../interfaces';\nimport { LoginSessionLoadError } from '../errors';\n\nexport class JWTLoginSessionStore {\n private readonly STORAGE_KEY = 'INFINITE_JWT';\n\n /**\n * Clean session store.\n */\n public clean(): void {\n localStorage.removeItem(this.STORAGE_KEY);\n }\n\n /**\n * Load current session from the store.\n */\n public read(): JWT {\n const cachedData = localStorage.getItem(this.STORAGE_KEY);\n if (cachedData !== null) {\n return cachedData as JWT;\n }\n throw new LoginSessionLoadError();\n }\n\n /**\n * Save token to the store.\n * It will overwrite previous session token.\n */\n public write(jwt: JWT) {\n localStorage.setItem(this.STORAGE_KEY, jwt);\n }\n}\n","import { JwtApiFactory } from '@eloomi/eloomi-users-persona-client/1.0';\nimport { authorizeClient } from '@/api/http-client';\nimport { makeLogger } from '@/common/services';\nimport { JWT } from '../interfaces';\nimport { JWTLoginSessionStore } from './session-store';\n\nconst jwtApiClient = authorizeClient(JwtApiFactory);\n\nexport class JWTSessionRefresher {\n private readonly STORAGE_KEY = 'INFINITE_JWT_LAST_REFRESH';\n private readonly REFRESH_PERIOD = 1000 * 60 * 60; // 1 hour\n\n private readonly log = makeLogger('session-refresher');\n private readonly store = new JWTLoginSessionStore();\n\n private static instance: JWTSessionRefresher;\n private refreshTimer?: number;\n private failHandler?: () => void;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private constructor() {}\n\n public static getInstance(): JWTSessionRefresher {\n if (!JWTSessionRefresher.instance) {\n JWTSessionRefresher.instance = new JWTSessionRefresher();\n }\n\n return JWTSessionRefresher.instance;\n }\n\n public start(makeRefreshTimeMark = false) {\n this.startRefresher();\n if (makeRefreshTimeMark) {\n this.markLastRefreshTime();\n }\n }\n\n public resume(refreshImmediately = false) {\n this.resumeRefresher(refreshImmediately);\n }\n\n public stop() {\n this.stopRefresher();\n }\n\n public setFailHandler(handler?: () => void) {\n this.failHandler = handler;\n }\n\n private async refreshToken() {\n try {\n const jwt = (await jwtApiClient.getToken()).data as JWT;\n this.store.write(jwt);\n this.markLastRefreshTime();\n\n // Schedule next refresh only if active timer wasn't canceled outside\n // while network request was processed.\n if (this.refreshTimer !== undefined) {\n this.scheduleRefresh();\n }\n } catch (error) {\n this.store.clean();\n this.stopRefresher();\n\n if (this.failHandler !== undefined) {\n this.failHandler();\n }\n }\n }\n\n private scheduleRefresh(timeout = this.REFRESH_PERIOD) {\n this.log('session refresh is scheduled in %o ms', timeout);\n this.refreshTimer = window.setTimeout(async () => {\n await this.refreshToken();\n }, timeout);\n }\n\n private startRefresher() {\n this.stopRefresher();\n this.scheduleRefresh();\n }\n\n private resumeRefresher(immediate = false) {\n if (immediate) {\n this.stopRefresher();\n this.scheduleRefresh(0);\n return;\n }\n\n if (this.refreshTimer !== undefined) {\n return;\n }\n\n const lastRefreshTime = this.getLastRefreshTimeMark();\n if (!lastRefreshTime) {\n this.scheduleRefresh();\n return;\n }\n\n const timeElapsed = Date.now() - lastRefreshTime;\n const timeout = timeElapsed >= this.REFRESH_PERIOD ? 0 : this.REFRESH_PERIOD - timeElapsed;\n\n this.scheduleRefresh(timeout);\n }\n\n private stopRefresher() {\n if (this.refreshTimer !== undefined) {\n window.clearTimeout(this.refreshTimer);\n this.refreshTimer = undefined;\n }\n this.cleanLastRefreshTimeMark();\n }\n\n private getLastRefreshTimeMark() {\n const timeMark = localStorage.getItem(this.STORAGE_KEY);\n if (timeMark !== null) {\n return Number(timeMark);\n }\n return undefined;\n }\n\n private markLastRefreshTime() {\n localStorage.setItem(this.STORAGE_KEY, String(Date.now()));\n }\n\n private cleanLastRefreshTimeMark() {\n localStorage.removeItem(this.STORAGE_KEY);\n }\n}\n","import { JWT } from '../interfaces';\nimport { LoginSessionJWT } from './session';\nimport { JWTSessionRefresher } from './session-refresher';\nimport { JWTLoginSessionStore } from './session-store';\n\nexport class JWTLoginSessionManager {\n private readonly store = new JWTLoginSessionStore();\n private readonly refresher = JWTSessionRefresher.getInstance();\n\n /**\n * Start a new login session.\n * This should be called right after the successful login.\n */\n public start(jwt: JWT) {\n this.store.write(jwt);\n this.refresher.start(true);\n return new LoginSessionJWT(jwt);\n }\n\n /**\n * Stop a current login session.\n * This should be called after logout from the application.\n */\n public clean(): void {\n this.store.clean();\n this.refresher.stop();\n }\n\n /**\n * Enable automatic session refresher.\n */\n public resumeAutoRefresh() {\n this.refresher.resume(false);\n }\n\n public forceSessionRefresh() {\n this.refresher.resume(true);\n }\n\n public setSessionRefreshErrorHandler(errorHandler?: () => void) {\n this.refresher.setFailHandler(errorHandler);\n }\n\n /**\n * Load a session from the local storage.\n */\n public load() {\n const jwt = this.store.read();\n return new LoginSessionJWT(jwt);\n }\n\n public isLoggedIn() {\n try {\n const session = this.load();\n return session.isActual();\n } catch {\n return false;\n }\n }\n}\n","import { Module, Mutations, Actions, createMapper, Getters } from 'vuex-smart-module';\nimport { Vue } from 'vue-property-decorator';\nimport environment from '@/environment';\nimport { createStoreServiceFactory } from '@/di/store-factory';\n\nclass State {\n public loginState: 'login' | 'forgot-password' | 'reset-password' | 'setup-account' | 'choose-platform' =\n environment.platformHostContext ? 'login' : 'choose-platform';\n}\n\nclass StoreGetters extends Getters {\n public get isBackButtonShownOnLoginForm() {\n return !environment.platformHostContext;\n }\n}\n\nclass StoreActions extends Actions {\n public goBack() {\n if (this.state.loginState === 'login' && !environment.platformHostContext) {\n this.mutations.setChoosePlatformState();\n } else {\n this.mutations.setLoginState();\n }\n }\n\n public proceedToLogin() {\n if (this.state.loginState === 'choose-platform') {\n this.mutations.setLoginState();\n }\n }\n\n public goToForgotPassword() {\n if (this.state.loginState === 'login') {\n this.mutations.setForgotPasswordState();\n }\n }\n}\n\nclass StoreMutations extends Mutations {\n public setLoginState() {\n this.state.loginState = 'login';\n }\n\n public setForgotPasswordState() {\n this.state.loginState = 'forgot-password';\n }\n\n public setChoosePlatformState() {\n this.state.loginState = 'choose-platform';\n }\n}\n\nconst store = new Module({\n state: State,\n actions: StoreActions,\n mutations: StoreMutations,\n getters: StoreGetters,\n});\n\nconst authFlowStoreMapper = createMapper(store);\n\nexport const AuthFlowMappedStoreMixin = Vue.extend({\n computed: {\n ...authFlowStoreMapper.mapState(['loginState']),\n ...authFlowStoreMapper.mapGetters(['isBackButtonShownOnLoginForm']),\n },\n methods: {\n ...authFlowStoreMapper.mapActions(['goBack', 'goToForgotPassword', 'proceedToLogin']),\n },\n});\n\nexport const AuthFlowStoreServiceFactory = createStoreServiceFactory({\n ...authFlowStoreMapper.mapState(['loginState']),\n ...authFlowStoreMapper.mapGetters(['isBackButtonShownOnLoginForm']),\n ...authFlowStoreMapper.mapActions(['goBack', 'goToForgotPassword', 'proceedToLogin']),\n});\n\nexport type AuthFlowStoreService = ReturnType;\n\nexport default store;\n","import { AuthenticationServiceTokens as Tokens } from '../di-tokens';\nimport type { JWTAuthenticationService, VueRouterRedirectionService, JWTLoginSessionManager } from '../services';\nimport type { Credentials } from '../domain';\n\n/**\n * User wants to sign in into the application.\n */\nexport class LoginUseCase {\n public static inject = [Tokens.AuthenticationService, Tokens.SessionManager, Tokens.RedirectService] as const;\n\n public constructor(\n private authService: JWTAuthenticationService,\n private sessionManager: JWTLoginSessionManager,\n private redirectService: VueRouterRedirectionService\n ) {}\n\n public async logIn(credentials: Credentials) {\n const authData = await this.authService.logIn(credentials.email, credentials.password);\n this.sessionManager.start(authData.data.token);\n\n if (this.redirectService.hasRedirectParamInQuery()) {\n await this.redirectService.redirectToPagePassedInQuery();\n } else {\n await this.redirectService.redirectToDefaultPage();\n }\n }\n}\n","import { AuthenticationServiceTokens as Tokens } from '../di-tokens';\nimport type { JWTLoginSessionManager, PlatformResolver, VueRouterRedirectionService } from '../services';\nimport { Route } from 'vue-router';\nimport { getLoginSsoErrorStatus } from '@/authentication/services/login-sso-handler';\nimport { getDevicePlatform, Platform } from '@/common/services/get-device-platform';\n\nexport interface SSOOrigin {\n devicePlatform: Platform;\n}\n\n/**\n * User wants to sign in into the application by using sso.\n */\nexport class LoginSsoUseCase {\n public static inject = [Tokens.PlatformResolutionService, Tokens.RedirectService, Tokens.SessionManager] as const;\n\n public constructor(\n private readonly platformService: PlatformResolver,\n private readonly redirectService: VueRouterRedirectionService,\n private readonly sessionManager: JWTLoginSessionManager\n ) {}\n\n public async logIn() {\n const devicePlatform = getDevicePlatform();\n try {\n const { id } = await this.platformService.getPlatformData(true);\n this.redirectService.redirectToLoginSsoPage(id, { devicePlatform });\n } finally {\n if (devicePlatform === Platform.Web) {\n this.platformService.cleanCache(true);\n this.sessionManager.clean();\n }\n }\n }\n\n public isSsoEnabled() {\n return this.platformService.isSsoLoginEnabled();\n }\n\n public isSsoOnlyLoginMode() {\n return this.platformService.isSsoOnlyLoginMode();\n }\n\n public allowSsoAutomaticLogin(route?: Route) {\n const isSsoLoginError = getLoginSsoErrorStatus(route);\n return (\n this.isSsoEnabled() &&\n this.isSsoOnlyLoginMode() &&\n this.platformService.isSsoAutomaticLoginEnabled() &&\n !isSsoLoginError\n );\n }\n}\n","import type { ResetSessionDataService } from '@/authentication/services/reset-session-data';\n\nimport { AuthenticationServiceTokens as Tokens } from '../di-tokens';\nimport type {\n VueRouterRedirectionService,\n JWTLoginSessionManager,\n PlatformResolver,\n SessionApiClient,\n} from '../services';\n\n/**\n * The user wants to exit the application.\n */\nexport class LogoutUseCase {\n public static inject = [\n Tokens.PlatformResolutionService,\n Tokens.SessionManager,\n Tokens.RedirectService,\n Tokens.ResetSessionDataService,\n Tokens.SessionApiClient,\n ] as const;\n\n public constructor(\n private readonly platformResolver: PlatformResolver,\n private readonly sessionManager: JWTLoginSessionManager,\n private readonly redirectService: VueRouterRedirectionService,\n private readonly sessionDataService: ResetSessionDataService,\n private readonly sessionApiClient: SessionApiClient\n ) {}\n\n public async logOut(shouldRedirect = true, withBackend = true) {\n if (withBackend) {\n await this.sessionApiClient.logout();\n }\n\n this.platformResolver.cleanCache();\n this.sessionManager.clean();\n this.sessionDataService.reset();\n\n if (shouldRedirect) {\n await this.redirectService.redirectToLoginPage();\n }\n }\n}\n","import { AuthenticationServiceTokens as Tokens } from '../di-tokens';\nimport type { VueRouterRedirectionService, JWTLoginSessionManager, ActivateUserService, JWT } from '../services';\nimport type { LogoutUseCase } from './logout';\n\n/**\n * User has received an activation email and wants to setup an account.\n */\nexport class ActivateUserUseCase {\n public static inject = [\n Tokens.SessionManager,\n Tokens.RedirectService,\n Tokens.ActivateUserService,\n Tokens.LogoutUseCase,\n ] as const;\n\n public constructor(\n private readonly sessionManager: JWTLoginSessionManager,\n private readonly redirectService: VueRouterRedirectionService,\n private readonly activateUserService: ActivateUserService,\n private readonly logoutUseCase: LogoutUseCase\n ) {}\n\n public async activateUser(token: JWT, password: string) {\n if (this.sessionManager.isLoggedIn()) {\n await this.logoutUseCase.logOut(false).catch(console.error);\n }\n const jwt = await this.activateUserService.activateUser(token, password);\n this.sessionManager.start(jwt);\n await this.redirectService.redirectToDefaultPage();\n }\n}\n","import { getDevicePlatform } from '@/common/services/get-device-platform';\n\nimport { AuthenticationServiceTokens as Tokens } from '../di-tokens';\nimport { PlatformResolver, VueRouterRedirectionService } from '../services';\n\nexport interface LoginPageStateNavigator {\n proceedToLogin(): void;\n}\n\n/**\n * User uses mobile app and just before login screen have to choose a platform first.\n */\nexport class ChoosePlatformUseCase {\n public static inject = [\n Tokens.PlatformResolutionService,\n Tokens.AuthFlowStoreService,\n Tokens.RedirectService,\n ] as const;\n\n public constructor(\n private readonly platformService: PlatformResolver,\n private readonly navigator: LoginPageStateNavigator,\n private redirectService: VueRouterRedirectionService\n ) {}\n\n public async choosePlatform(subDomain: string) {\n await this.platformService.forceSetPlatformDomain(subDomain);\n const platform = await this.platformService.getPlatformData(true);\n\n if (this.platformService.isSsoOnlyLoginMode()) {\n await this.redirectService.redirectToLoginSsoPage(platform.id, { devicePlatform: getDevicePlatform() });\n } else {\n this.navigator.proceedToLogin();\n }\n }\n\n public getPlatformParentDomain() {\n return this.platformService.getPlatformParentDomain();\n }\n}\n","import { AuthenticationServiceTokens as Tokens } from '../di-tokens';\nimport { ForgotPasswordService } from '../services';\n\n/**\n * User wants to request a password reset.\n */\nexport class ForgotPasswordUseCase {\n public static inject = [Tokens.ForgotPasswordService, Tokens.AuthFlowStoreService] as const;\n\n public constructor(\n private readonly authService: ForgotPasswordService,\n private readonly navigator: { goBack(): void }\n ) {}\n\n public async requestPasswordReset(email: string) {\n await this.authService.requestPasswordReset(email);\n this.navigator.goBack();\n }\n}\n","import { AuthenticationServiceTokens as Tokens } from '../di-tokens';\nimport type { JWT, ResetPasswordService, JWTLoginSessionManager } from '../services';\nimport type { LogoutUseCase } from './logout';\n\n/**\n * User has received a password reset email and wants to reset a password.\n */\nexport class ResetPasswordUseCase {\n public static inject = [\n Tokens.SessionManager,\n Tokens.ResetPasswordService,\n Tokens.RedirectService,\n Tokens.LogoutUseCase,\n ] as const;\n\n public constructor(\n private readonly sessionManager: JWTLoginSessionManager,\n private readonly authService: ResetPasswordService,\n private readonly navigator: { redirectToLoginPage() },\n private readonly logoutUseCase: LogoutUseCase\n ) {}\n\n public async resetPasswordAndRedirectToLoginPage(token: JWT, password: string) {\n if (this.sessionManager.isLoggedIn()) {\n await this.logoutUseCase.logOut(false).catch(console.error);\n }\n await this.authService.resetPassword(token, password);\n await this.navigator.redirectToLoginPage();\n }\n}\n","export enum FilterType {\n Author = 'author',\n Category = 'category',\n CourseType = 'course-type',\n Group = 'group',\n Skill = 'skill',\n Topic = 'topic',\n}\n\nexport enum FilterMode {\n Inclusive = 'inclusive',\n Exclusive = 'exclusive',\n}\n\nexport type Filters = Partial; mode?: FilterMode }>>;\n\nexport type Option = {\n value: number | string;\n label: string;\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DropdownButton',{ref:\"dropdownButtonRef\",staticClass:\"filters-dropdown\",attrs:{\"title\":_vm.trans('spa.admin.course-organization.menu.filters'),\"color\":\"secondary\",\"closeOnContentClick\":false,\"isButtonActive\":_vm.isFilterSet,\"isDisabled\":_vm.isDisabled,\"isCompact\":_vm.isCompact,\"positionStrategyPopover\":\"fixed\",\"autoMaxHeightPopover\":true},on:{\"blur\":_vm.backToFilterTypesMenu},scopedSlots:_vm._u([{key:\"compact-view\",fn:function(){return [_c('elm-actions-add-filter-icon',{staticClass:\"display-flex\",attrs:{\"slot\":\"icon\"},slot:\"icon\"})]},proxy:true}])},[(_vm.currentMenu === 'TYPES')?_c('FilterTypeMenu',{attrs:{\"options\":_vm.filterTypeOptions,\"activeFiltersCount\":_vm.activeFiltersCount},on:{\"select\":_vm.handleFilterTypeSelect}}):_c('FilterOptionsMenu',{attrs:{\"options\":_vm.filterOptions,\"appliedValues\":_vm.selectedValues,\"filterType\":_vm.currentMenu},on:{\"back\":_vm.backToFilterTypesMenu,\"confirm\":_vm.handleFilterChangesConfirm}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n {{ menuLabel }}\n \n\n \n \n \n\n \n\n \n\n \n \n \n\n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterOptionsMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterOptionsMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FilterOptionsMenu.vue?vue&type=template&id=7bacf340&scoped=true&\"\nimport script from \"./FilterOptionsMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilterOptionsMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilterOptionsMenu.vue?vue&type=style&index=0&id=7bacf340&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7bacf340\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"options-menu\"},[_c('div',{staticClass:\"menu-title\"},[_c('MenuBackButton',{on:{\"click\":_vm.handleBackButtonClick}}),_c('h5',{staticClass:\"label-uppercase-info\"},[_vm._v(_vm._s(_vm.menuLabel))])],1),(_vm.canSearch)?_c('elm-text-field',{directives:[{name:\"elm-model\",rawName:\"v-elm-model\",value:(_vm.searchQuery),expression:\"searchQuery\"}],staticClass:\"search-field\",attrs:{\"placeholder\":_vm.searchFieldPlaceholder,\"size\":\"small\"}},[_c('elm-actions-search-icon',{attrs:{\"slot\":\"icon-left\",\"size\":\"18\"},slot:\"icon-left\"})],1):_vm._e(),_c('DropdownItem',{staticClass:\"select-all-option\",attrs:{\"withCheckbox\":\"\",\"title\":\"Select all\",\"isSelected\":_vm.areAllOptionsSelected},on:{\"click\":_vm.handleSelectAll}}),_c('div',{staticClass:\"divider\"}),_c('ul',{staticClass:\"options-list\"},_vm._l((_vm.filteredOptions),function(option){return _c('DropdownItem',{key:option.value,attrs:{\"title\":option.label,\"withCheckbox\":\"\",\"isSelected\":_vm.selectedValues.includes(option.value)},on:{\"click\":function($event){return _vm.handleOptionClick(option)}}})}),1),_c('div',{staticClass:\"menu-footer\"},[_c('elm-button',{attrs:{\"size\":\"small\",\"color\":\"primary\"},on:{\"click\":_vm.handleConfirm}},[_vm._v(\" \"+_vm._s(_vm.trans('spa.admin.course-organization.filters-menu.confirm'))+\" \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"menu\"},[_c('span',{staticClass:\"label-uppercase-info menu-label\"},[_vm._v(_vm._s(_vm.menuLabel))]),_vm._l((_vm.options),function(option){return _c('DropdownItem',{key:option.value,attrs:{\"title\":option.label,\"label\":option.selectedValuesCount,\"withButton\":\"\"},on:{\"click\":function($event){return _vm.handleOptionClick(option)}}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n {{ menuLabel }}\n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterTypeMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterTypeMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FilterTypeMenu.vue?vue&type=template&id=14cf9e40&scoped=true&\"\nimport script from \"./FilterTypeMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilterTypeMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilterTypeMenu.vue?vue&type=style&index=0&id=14cf9e40&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14cf9e40\",\n null\n \n)\n\nexport default component.exports","import { authorizeClient } from '@/api/http-client';\nimport { AdminOverviewApiFactory } from '@eloomi/eloomi-learning-persona-client/1.0';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\n\nconst adminOverviewApiClient = authorizeClient(AdminOverviewApiFactory);\n\nexport function getListOfCourseAuthors() {\n return adminOverviewApiClient.getListOfCourseAuthors().then(extractAxiosData);\n}\n","import { CourseType } from '@eloomi/eloomi-learning-persona-client/1.0';\nimport { FilterType, Option } from '@/common/components/filter/interfaces';\nimport { PageMaxSizeFromApi } from '@/admin/users/providers/user-access-roles';\nimport { getCategoriesNew, getTopics } from '@/admin/topics/providers';\nimport { getFullName } from '@/common/services';\nimport { getGroups } from '@/admin/groups/providers';\nimport { getListOfCourseAuthors } from '@/admin/courses/providers/authors';\nimport { getSkillsLite } from '@/admin/skills/providers/course-skills';\nimport { useLaunchDarkly, useTranslation } from '@/common/composables';\n\nexport function useFiltersProvider() {\n const { checkIfLaunchDarklyFeatureEnabled, launchDarklyFeaturesList } = useLaunchDarkly();\n const { trans } = useTranslation();\n\n const getOptionsList = async (type: FilterType) => {\n let options: Option[] = [];\n\n switch (type) {\n case FilterType.Author: {\n const result = await getListOfCourseAuthors();\n options = result.map(author => ({\n value: Number(author.id),\n label: getFullName(author),\n }));\n break;\n }\n case FilterType.Category: {\n const result = await getCategoriesNew({ page: 1, pageSize: PageMaxSizeFromApi });\n options = (result.data || []).map(\n category =>\n ({\n value: category.id!,\n label: category.name || '',\n } as Option)\n );\n break;\n }\n case FilterType.CourseType: {\n options.push(\n {\n value: CourseType.Eloomi,\n label: 'eloomi',\n },\n {\n value: CourseType.Scorm,\n label: 'SCORM',\n }\n );\n if (checkIfLaunchDarklyFeatureEnabled(launchDarklyFeaturesList.CONTENT_STORE_POC)) {\n options.push({\n value: CourseType.Go1Scorm,\n label: trans('spa.admin.course-organization.filters-menu.options.course-type.content-store'),\n });\n }\n break;\n }\n case FilterType.Group: {\n const result = await getGroups({ page: 1, pageSize: PageMaxSizeFromApi });\n options = (result.data || []).map(group => ({\n value: Number(group.id),\n label: group.name || '',\n }));\n break;\n }\n case FilterType.Skill: {\n const result = await getSkillsLite({ page: 1, pageSize: PageMaxSizeFromApi });\n options = (result.data || []).map(skill => ({\n value: skill.id,\n label: skill.name || '',\n }));\n break;\n }\n case FilterType.Topic: {\n const result = await getTopics({ page: 1, pageSize: PageMaxSizeFromApi });\n options = (result.data || []).map(topic => ({\n value: topic.id,\n label: topic.name || '',\n }));\n break;\n }\n }\n return options;\n };\n\n return { getOptionsList };\n}\n","\n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FiltersDropdown.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/swc-loader/src/index.js!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FiltersDropdown.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FiltersDropdown.vue?vue&type=template&id=15c3deca&scoped=true&\"\nimport script from \"./FiltersDropdown.vue?vue&type=script&lang=ts&\"\nexport * from \"./FiltersDropdown.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FiltersDropdown.vue?vue&type=style&index=0&id=15c3deca&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15c3deca\",\n null\n \n)\n\nexport default component.exports","import { Vue } from 'vue-property-decorator';\n\nimport { notificationStoreMapper, useNotificationStore } from './store';\nimport { ToastNotificationActions } from './store/actions';\n\nexport default Vue.extend({\n computed: {\n ...notificationStoreMapper.mapState(['notifications']),\n },\n methods: {\n ...notificationStoreMapper.mapActions(['showNotification', 'showDelayedNotification', 'clearNotifications']),\n },\n});\nexport function useNotifications() {\n const notificationStore = useNotificationStore();\n\n return {\n showNotification: notificationStore.actions.showNotification as InstanceType<\n typeof ToastNotificationActions\n >['showNotification'],\n showDelayedNotification: notificationStore.actions.showDelayedNotification as InstanceType<\n typeof ToastNotificationActions\n >['showDelayedNotification'],\n clearNotifications: notificationStore.actions.clearNotifications as InstanceType<\n typeof ToastNotificationActions\n >['clearNotifications'],\n notifications: notificationStore.state.notifications,\n } as const;\n}\n","import { Actions } from 'vuex-smart-module';\n\nimport { NotificationItem } from '../notification.interface';\n\nimport { ToastNotificationGetters } from './getters';\nimport { ToastNotificationMutations } from './mutations';\nimport { ToastNotificatonState } from './state';\n\ntype NotificationPayload = Omit;\n\nexport interface OptionalNotificationPayload extends Partial {\n message: string;\n waitForPrevious?: boolean;\n}\n\ntype PromiseReject = (reason?: any) => void;\nclass NotificationHandle {\n public constructor(private readonly reject: PromiseReject, private readonly timer: number) {}\n public cancel() {\n this.reject();\n clearTimeout(this.timer);\n }\n}\nlet lastNotificationPromise: Promise | null = null;\nlet activeNotificationHandle: NotificationHandle | null = null;\n\nconst rejectStub = () => Promise.resolve(0);\nconst ANIMATION_DURATION = 500;\n\n// tslint:disable-next-line: max-classes-per-file\nexport class ToastNotificationActions extends Actions<\n ToastNotificatonState,\n ToastNotificationGetters,\n ToastNotificationMutations,\n ToastNotificationActions\n> {\n private _pushNotification = (payload: NotificationPayload): Promise => {\n this.mutations.pushNotification(payload);\n const notificationId = this.state.counter;\n\n return new Promise((resolve, reject) => {\n const timer = window.setTimeout(() => {\n this.mutations.removeNotification(notificationId);\n resolve(notificationId);\n }, payload.duration + ANIMATION_DURATION);\n\n activeNotificationHandle = new NotificationHandle(reject, timer);\n });\n // tslint:disable-next-line: semicolon\n };\n\n public async showNotification(payload: OptionalNotificationPayload) {\n const actualPayload = {\n theme: payload.theme ?? 'info',\n isCompact: payload.isCompact ?? false,\n duration: payload.duration ?? 1000,\n message: payload.message,\n waitForPrevious: payload.waitForPrevious ?? false,\n };\n\n if (actualPayload.waitForPrevious && lastNotificationPromise !== null) {\n lastNotificationPromise = lastNotificationPromise.then(() => this._pushNotification(actualPayload));\n\n return lastNotificationPromise.catch(rejectStub);\n }\n\n lastNotificationPromise = this._pushNotification(actualPayload);\n return lastNotificationPromise.catch(rejectStub);\n }\n\n public async showDelayedNotification(payload: OptionalNotificationPayload, delay = 300) {\n return setTimeout(() => this.dispatch('showNotification', payload), delay);\n }\n\n public clearNotifications() {\n activeNotificationHandle?.cancel();\n lastNotificationPromise = null;\n this.mutations.clearAllNotifications();\n }\n}\n","import { Getters } from 'vuex-smart-module';\n\nimport { NotificationItem } from '../notification.interface';\n\nimport { ToastNotificatonState } from './state';\n\nexport class ToastNotificationGetters extends Getters {\n public get notifications(): Array {\n return this.state.notifications;\n }\n}\n","import { Mutations } from 'vuex-smart-module';\n\nimport { ToastNotificatonState } from './state';\nimport { NotificationItem } from '../notification.interface';\n\ntype NotificationPayload = Omit;\n\nexport class ToastNotificationMutations extends Mutations {\n private incrementCounter = () => {\n this.state.counter = (this.state.counter + 1) % 10000;\n // tslint:disable-next-line: semicolon\n };\n\n public pushNotification(payload: NotificationPayload) {\n this.incrementCounter();\n const notification: NotificationItem = {\n id: this.state.counter,\n ...payload,\n };\n this.state.notifications.push(notification);\n }\n\n public removeNotification(itemId: number) {\n const itemIndex = this.state.notifications.findIndex(({ id }) => id === itemId);\n this.state.notifications.splice(itemIndex, 1);\n }\n\n public clearAllNotifications() {\n this.state.notifications = [];\n }\n}\n","import { Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { ToastNotificationActions } from './actions';\nimport { ToastNotificationGetters } from './getters';\nimport { ToastNotificationMutations } from './mutations';\nimport { ToastNotificatonState } from './state';\n\nconst notificationStore = new Module({\n state: ToastNotificatonState,\n getters: ToastNotificationGetters,\n mutations: ToastNotificationMutations,\n actions: ToastNotificationActions,\n});\n\nexport const useNotificationStore = createComposable(notificationStore);\n\nexport default notificationStore;\nexport const notificationStoreMapper = createMapper(notificationStore);\n","import { NotificationItem } from '../notification.interface';\n\nexport class ToastNotificatonState {\n public notifications: NotificationItem[] = [];\n public counter: number = 0;\n}\n","import { useLaunchDarklyFeatureStore } from '@/launch-darkly/store';\n\nexport function useLaunchDarkly() {\n const store = useLaunchDarklyFeatureStore();\n\n return {\n checkIfLaunchDarklyFeatureEnabled: store.getters.checkIfLaunchDarklyFeatureEnabled,\n launchDarklyFeaturesList: store.state.launchDarklyFeaturesList,\n getLaunchDarklyFeatureData: store.getters.getLaunchDarklyFeatureData,\n };\n}\n\nexport default useLaunchDarkly;\n","import { useMobileModeStore } from '@/common/store/mobile-mode';\nimport { computed, ComputedRef } from 'vue';\n\nexport function useMobile(): { isMobile: ComputedRef; isViewportSmallerOrEqualMd: ComputedRef } {\n const mobileModeStore = useMobileModeStore();\n\n const isMobile = computed(() => mobileModeStore.state.isMobile);\n\n const isViewportSmallerOrEqualMd = computed(() => mobileModeStore.getters.isViewportSmallerOrEqualMd);\n\n return { isMobile, isViewportSmallerOrEqualMd };\n}\n\nexport default useMobile;\n","import { usePlanFeaturesStore } from '@/plan-features/store';\n\nexport function usePlanFeatures() {\n const store = usePlanFeaturesStore();\n\n return {\n checkIfFeatureEnabled: store.getters.checkIfFeatureEnabled,\n featuresList: store.state.featuresList,\n };\n}\n\nexport default usePlanFeatures;\n","import { useRouter } from '@/common/composables/useRouter';\nimport { getCurrentInstance, reactive } from 'vue';\nimport { Route } from 'vue-router';\n\nlet currentRoute: Route;\n\nexport function useRoute() {\n const router = useRouter();\n\n if (!currentRoute) {\n const vm = getCurrentInstance();\n if (!vm) {\n throw new Error('You must use this function within the \"setup()\" method');\n }\n\n currentRoute = reactive({ ...vm.proxy.$route });\n router.afterEach(to => Object.assign(currentRoute, to));\n }\n\n return currentRoute;\n}\n","import { getCurrentInstance } from 'vue';\n\nexport function useRouter() {\n const vm = getCurrentInstance();\n if (!vm) {\n throw new Error('You must use this function within the \"setup()\" method');\n }\n\n return vm.proxy.$router;\n}\n","import { TransFunction, useTranslationsStore } from '@/translations/store';\n\nexport function useTranslation() {\n const store = useTranslationsStore();\n\n return { trans: store.getters.trans as TransFunction, currentLanguage: store.state.currentLanguage };\n}\n\nexport default useTranslation;\n","/**\n * Protocol that's used to communicate between mobile browser and mobile application via deep links.\n */\nexport const APP_SCHEME = 'eloomi://';\n","export const MinWidthViewportBreakpoints = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1224,\n xxl: 1500,\n} as const;\n\nexport type BreakpointCode = keyof typeof MinWidthViewportBreakpoints;\n","export enum MISC_COLORS {\n BLUE = 'var(--color-misc-blue)',\n BLUE_80 = 'var(--color-misc-blue-80)',\n BLUE_60 = 'var(--color-misc-blue-60)',\n BLUE_40 = 'var(--color-misc-blue-40)',\n BLUE_20 = 'var(--color-misc-blue-20)',\n GREEN = 'var(--color-misc-green)',\n GREEN_80 = 'var(--color-misc-green-80)',\n GREEN_60 = 'var(--color-misc-green-60)',\n GREEN_40 = 'var(--color-misc-green-40)',\n GREEN_20 = 'var(--color-misc-green-20)',\n GREY = 'var(--color-misc-grey)',\n GREY_80 = 'var(--color-misc-grey-80)',\n GREY_60 = 'var(--color-misc-grey-60)',\n GREY_40 = 'var(--color-misc-grey-40)',\n GREY_20 = 'var(--color-misc-grey-20)',\n YELLOW = 'var(--color-misc-yellow)',\n YELLOW_80 = 'var(--color-misc-yellow-80)',\n YELLOW_60 = 'var(--color-misc-yellow-60)',\n YELLOW_40 = 'var(--color-misc-yellow-40)',\n YELLOW_20 = 'var(--color-misc-yellow-20)',\n SUCCESS = 'var(--color-success)',\n WARNING = 'var(--color-warning)',\n INFO = 'var(--color-info)',\n INFO_80 = 'var(--color-info-80)',\n INFO_60 = 'var(--color-info-60)',\n INFO_40 = 'var(--color-info-40)',\n INFO_20 = 'var(--color-info-20)',\n INFO_8 = 'var(--color-info-8)',\n ORANGE = 'var(--color-misc-orange)',\n PURPLE = 'var(--color-misc-purple)',\n}\n\nexport enum PRIMARY_COLORS {\n PRIMARY = 'var(--color-primary)',\n}\n","import { Component, Prop, Vue } from 'vue-property-decorator';\nimport { Themes } from '@/common/classes/themes';\n\n@Component({})\nexport default class CoreThemeMixin extends Vue {\n @Prop({ default: '' }) public color!: Themes | '';\n}\n","import { Component, Mixins } from 'vue-property-decorator';\nimport { MobileModeStoreMixin } from '@/common/store/mobile-mode';\nimport { getMaxWidthMedia } from '@/common/services';\nimport { MinWidthViewportBreakpoints, BreakpointCode } from '@/common/constants/breakpoints';\n\ntype MQListener = (e: MediaQueryListEvent) => void;\n\nfunction createMobileMediaQueryList() {\n return window.matchMedia(getMaxWidthMedia(768));\n}\n\nexport function getIsMobile(): boolean {\n const mql = createMobileMediaQueryList();\n return mql.matches;\n}\n\n@Component({})\nexport default class TrackMobileModeMixin extends Mixins(MobileModeStoreMixin) {\n public mql = createMobileMediaQueryList();\n private mediaQueries: { listener: MQListener | null; mql: MediaQueryList }[] = [];\n\n public mounted() {\n this.initMobileViewportListener();\n this.initViewportListeners();\n }\n\n private initMobileViewportListener() {\n if (this.mql.addEventListener) {\n this.mql.addEventListener('change', this.handleMqlChangeEvent);\n }\n this.setIsMobile(this.mql.matches);\n }\n\n private dropMobileViewportListener() {\n if (this.mql.removeEventListener) {\n this.mql.removeEventListener('change', this.handleMqlChangeEvent);\n }\n }\n\n public destroyed() {\n this.dropMobileViewportListener();\n this.dropViewportListeners();\n }\n\n private handleMqlChangeEvent(event: MediaQueryListEvent) {\n this.setIsMobile(event.matches);\n }\n\n private initViewportListeners() {\n this.mediaQueries = Object.entries(MinWidthViewportBreakpoints).map(([code, width]) => {\n const breakpoint = code as BreakpointCode;\n const mql = window.matchMedia(`(min-width: ${width}px)`);\n\n this.setBreakpoint({ breakpoint, state: mql.matches });\n\n let listener: ((event: MediaQueryListEvent) => any) | null = null;\n\n if (mql.addEventListener) {\n listener = (event: MediaQueryListEvent) => {\n this.setBreakpoint({ breakpoint, state: event.matches });\n };\n mql.addEventListener('change', listener);\n }\n\n return { listener, mql };\n });\n }\n\n private dropViewportListeners() {\n while (this.mediaQueries.length > 0) {\n const { mql, listener } = this.mediaQueries.pop()!;\n if (listener) {\n mql.removeEventListener('change', listener);\n }\n }\n }\n}\n","export enum EntitiesList {\n PACKAGE_DOWNLOAD = 'package-download',\n PREVIEW = 'preview',\n ACKNOWLEDGE = 'acknowledge',\n ADMIN = 'admin',\n AGGREGATE = 'aggregate',\n AGGREGATED = 'aggregated',\n ATTACHMENT = 'attachment',\n ATTEMPT = 'attempt',\n BASIC_REPORTING = 'basic-reporting',\n BUILDER = 'builder',\n BULK = 'bulk',\n BULK_DELETE = 'bulk-delete',\n CANCEL = 'cancel',\n CARD = 'card',\n CATEGORY = 'category',\n CHAPTER = 'chapter',\n CHOICE_QUESTION = 'choicequestion',\n COMPLETE = 'complete',\n COURSE = 'course',\n DEACTIVATE = 'deactivate',\n DELETE_BULK = 'delete-bulk',\n DOWNLOAD = 'download',\n EMBED = 'embed',\n EVENTS = 'events',\n EVENT_LISTENER = 'eventlistener',\n FILE = 'file',\n IFRAME = 'iframe',\n IMAGE = 'image',\n IMPORT = 'import',\n INCREMENT = 'increment',\n JOB_TITLE = 'job-title',\n JOB_TITLES = 'job-titles',\n LEARNING = 'learning',\n METRICS = 'metrics',\n NOTIFICATIONS = 'notifications',\n ORGANIZATION = 'organization',\n OVERVIEW = 'overview',\n PAGE = 'page',\n CONTENT = 'content',\n COURSES = 'courses',\n PLAYER = 'player',\n STATE = 'state',\n PARSED_USERS = 'parsed-users',\n PERSONA = 'persona',\n PERSONAL = 'personal',\n PLATFORM = 'platform',\n PODCAST = 'podcast',\n PROGRESS = 'progress',\n QUESTION = 'question',\n QUEUE = 'queue',\n REPORT = 'report',\n REPORTING = 'reporting',\n RESTRICTIONS = 'restrictions',\n SCORM = 'scorm',\n SEND = 'send',\n SPECIFIC = 'specific',\n START = 'start',\n STATS = 'stats',\n STATUS = 'status',\n SUBMIT = 'submit',\n TEXT = 'text',\n TOPIC = 'topic',\n TOPICS = 'topics',\n TOPNAV = 'topnav',\n TRACK = 'track',\n UPLOAD_COMPLETED = 'upload-completed',\n UPLOAD_INITIALIZE = 'upload-initialize',\n USER = 'user',\n USERS = 'users',\n USERS_LEFT = 'users-left',\n USER_COURSE_ENGAGEMENT = 'user-course-engagement',\n USER_GROUP = 'user-group',\n USER_GROUPS = 'user-groups',\n VIDEO = 'video',\n VIEWS = 'views',\n UNASSIGN = 'unassign',\n RULE = 'rule',\n ASSIGN = 'assign',\n SEGMENT = 'segment',\n GROUP = 'group',\n GROUPS = 'groups',\n USERS_NUMBER = 'users-number',\n}\n","export enum EntitiesListPermission {\n ADMIN = 'admin',\n MANAGER = 'manager',\n PEER = 'peer',\n SELF = 'self',\n}\n","import { hexToHSL } from '@/common/services';\nimport { HSLColor } from '@/common/types';\nimport { BrandingResponse } from '@eloomi/eloomi-platforms-persona-client/1.0';\n\nexport interface Branding extends BrandingResponse {\n brandingText?: HSLColor;\n branding?: HSLColor;\n primary?: HSLColor;\n}\n\nexport function createBranding(data: BrandingResponse): Branding {\n return {\n ...data,\n branding: hexToHSL(data.branding_color!, 0),\n brandingText: hexToHSL(data.branding_text_color!, 0),\n primary: hexToHSL(data.primary_color!, 0),\n };\n}\n","export class TopNavItem {\n public name: string;\n public route: string;\n public string: string;\n public access?: boolean;\n public icon?: string;\n public subnav: TopNavItem[];\n\n constructor(item?: TopNavItem) {\n this.name = item && item.name ? item.name : '';\n this.route = item && item.route ? item.route : '';\n this.string = item && item.string ? item.string : '';\n this.access = item && item.access ? item.access : false;\n this.icon = item && item.icon ? item.icon : '';\n this.subnav = item && item.subnav ? item.subnav : [];\n }\n}\n","export enum WidgetTypes {\n INPUT_WIDGET = 'inputWidget',\n SKILLS_WIDGET = 'skillsWidget',\n FEEDBACK_WIDGET = 'feedbackWidget',\n}\n","export class FileResponse {\n public content: Blob;\n public name: string | undefined;\n\n constructor(content: Blob, contentDisposition: string | undefined) {\n this.content = content;\n this.name = this.getFileName(contentDisposition);\n }\n\n private getFileName(contentDisposition: string | undefined) {\n if (!contentDisposition) return undefined;\n\n const fileNames = contentDisposition.match(/filename=(.*);/);\n if (!!fileNames && fileNames.length >= 1) {\n return fileNames[1];\n }\n }\n}\n","export const PREFIX_IN_BROWSER_TAB = 'eloomi';\n","import axios, { AxiosError } from 'axios';\n\nexport function checkIsAxiosError(error: any): error is AxiosError {\n return axios.isAxiosError(error);\n}\n","import { BASE_URL } from '@/common/constants/base-path';\nimport { Location } from 'vue-router';\n\ninterface QueryParams {\n [key: string]: string;\n}\n\nfunction convertSearchParamsToQuery(searchParams: URLSearchParams): QueryParams {\n const params: QueryParams = {};\n\n searchParams.forEach((value, key) => {\n params[key] = value;\n });\n\n return params;\n}\n\n/**\n * Get route location from url\n *\n * Examples:\n * \"https://{platform.Domain}/app/courses/{command.CourseId}/overview\" -> { path: \"/courses/{command.CourseId}/overview\", query: {} }\n * \"https://{platform.Domain}/app/instant-login?token=12345\" -> { path: \"/instant-login\", query: { token: \"12345\" } }\n */\nexport function convertUrlToLocation(absoluteUrl: string): Location | null {\n try {\n const url = new URL(absoluteUrl);\n const path = url.pathname.slice(BASE_URL.length);\n const query = convertSearchParamsToQuery(url.searchParams);\n return { path, query };\n } catch (error) {\n console.error(error);\n return null;\n }\n}\n","/**\n * Since this value is hardcoded on the backend and used without any constants,\n * we can hardcode it on frontend as well\n */\nexport const BASE_URL = '/app';\n","import { isNotNullOrUndefined } from './utils';\nimport axios, { AxiosRequestConfig, CancelTokenSource } from 'axios';\nimport { CoreEntitiesFilter } from '@/common/classes';\n\nexport class CoreQuery {\n private namespace$!: string;\n private relations$!: {\n relation: string;\n id?: string | number;\n };\n private readonly entities$!: Array;\n private params$!: { [key: string]: any };\n private headers$!: { [key: string]: any };\n private data$: any;\n private cancelTokenSource$: CancelTokenSource;\n private axiosConfig: AxiosRequestConfig = {};\n\n constructor(apiVersion = 1) {\n this.entities$ = [];\n this.params$ = {};\n this.headers$ = { 'api-version': apiVersion };\n this.cancelTokenSource$ = axios.CancelToken.source();\n }\n\n public param(paramKey: string, paramValue): CoreQuery;\n public param(param: { [key: string]: any } | Array<{ [key: string]: any }>): CoreQuery;\n public param(param: { [key: string]: any } | Array<{ [key: string]: any }> | string, value?: any): CoreQuery {\n if (typeof param === 'string') {\n this.params$[param] = value;\n } else if (Array.isArray(param)) {\n param.forEach(p => this.param(p));\n } else {\n this.params$ = {\n ...this.params$,\n ...param,\n };\n }\n\n return this;\n }\n\n public headers(headerKey: string, headerValue);\n public headers(headers: { [key: string]: any } | Array<{ [key: string]: any }>);\n public headers(headers: { [key: string]: any } | Array<{ [key: string]: any }> | string, value?: any) {\n if (typeof headers === 'string') {\n this.headers$[headers] = value;\n } else if (Array.isArray(headers)) {\n headers.forEach(h => this.headers(h));\n } else {\n this.headers$ = {\n ...this.headers$,\n ...headers,\n };\n }\n\n return this;\n }\n\n public namespace(namespace: string): CoreQuery {\n this.namespace$ = namespace;\n\n return this;\n }\n\n public cancelTokenSource(token: CancelTokenSource) {\n this.cancelTokenSource$ = token;\n }\n\n public relations(relation: string, id?: string | number): CoreQuery {\n this.relations$ = {\n relation,\n };\n\n if (isNotNullOrUndefined(id)) {\n this.relations$.id = id;\n }\n\n return this;\n }\n\n public entity(entity: string | number | Array): CoreQuery {\n if (Array.isArray(entity)) {\n this.entities$.push(...entity);\n } else {\n this.entities$.push(entity);\n }\n\n return this;\n }\n\n public path(entity: string | number | Array): CoreQuery {\n return this.entity(entity);\n }\n\n public filters(coreFilter?: CoreEntitiesFilter): CoreQuery {\n if (coreFilter) {\n const filters = coreFilter.toQueryStringSearch();\n if (filters) {\n this.param({\n filters,\n });\n }\n }\n\n return this;\n }\n\n public sorts(filters: CoreEntitiesFilter): CoreQuery {\n this.param({\n sorts: filters ? filters.toQueryStringSort() : null,\n });\n\n return this;\n }\n\n public onUploadProgress(callback: (progressValue: number) => any) {\n this.axiosConfig.onUploadProgress = progressEvent => {\n const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);\n callback(percentCompleted);\n };\n }\n\n public data(data: any): CoreQuery {\n this.data$ = data;\n\n return this;\n }\n\n public toString(): string {\n const result: Array = [];\n\n result.push(this.namespace$);\n\n if (isNotNullOrUndefined(this.relations$)) {\n result.push('relations', this.relations$.relation);\n\n if (isNotNullOrUndefined(this.relations$.id)) {\n result.push(this.relations$.id!);\n }\n }\n\n if (this.entities$.length > 0) {\n result.push(...this.entities$);\n }\n\n return result.join('/');\n }\n\n public get stringParams(): string {\n return Object.keys(this.params$)\n .filter(\n p =>\n Object.prototype.hasOwnProperty.call(this.params$, p) &&\n isNotNullOrUndefined(this.params$[p]) &&\n this.params$[p] !== ''\n )\n .map(p => {\n if (Array.isArray(this.params$[p])) {\n return this.params$[p].map(item => `${p}=${item}`).join('&')\n }\n return `${p}=${this.params$[p]}`\n })\n .join('&');\n\n\n }\n\n public getCustomConfig(config: Record) {\n return {\n ...this.axiosConfig,\n headers: this.rawHeaders,\n data: this.data$,\n cancelToken: this.cancelTokenSource$.token,\n ...config,\n };\n }\n\n public get rawParams(): any {\n return this.params$;\n }\n\n public get query(): string {\n return this.toString();\n }\n\n public get rawHeaders(): any {\n return this.headers$;\n }\n\n public get axiosConfigParams(): AxiosRequestConfig {\n return {\n ...this.axiosConfig,\n params: this.rawParams,\n paramsSerializer: () => this.stringParams,\n headers: this.rawHeaders,\n data: this.data$,\n cancelToken: this.cancelTokenSource$.token,\n };\n }\n\n public cancelRequest() {\n if (this.cancelTokenSource$) {\n this.cancelTokenSource$.cancel();\n }\n }\n\n public clone(): CoreQuery {\n const q = new CoreQuery();\n\n q.namespace(this.namespace$);\n if (this.relations$) q.relations(this.relations$.relation, this.relations$.id);\n q.param(this.params$);\n\n q.entities$.push(...this.entities$);\n\n return q;\n }\n\n /*\n Static method to remove the necessity to invoke 'new CoreQuery()' every time\n */\n public static fromNamespace(namespace: string): CoreQuery {\n const q = new CoreQuery();\n q.namespace(namespace);\n\n return q;\n }\n}\n","import * as Locales from 'date-fns/locale';\nimport { Locale } from 'date-fns';\n\nimport { Language } from '@/translations';\nimport { capitalize } from '@/common/services/utils';\n\nexport function getDate(date: Date | string | number | null | undefined) {\n if (date === null || date === undefined) {\n return null;\n }\n\n let dateToFormat = date;\n if (!(dateToFormat instanceof Date)) {\n dateToFormat = new Date(date);\n }\n\n if (isNaN(dateToFormat.getTime())) {\n return null;\n }\n\n return dateToFormat;\n}\n\nexport function formatDateString(\n date: Date | string | number | null | undefined,\n options?: { emptySymbol?: string; locale?: string }\n) {\n const dateToFormat = getDate(date);\n\n if (dateToFormat) {\n return formatDate(dateToFormat, options?.locale);\n } else {\n return options?.emptySymbol ?? '';\n }\n}\n\nexport function extractHoursFromDate(\n date: Date | string | number | null | undefined,\n options?: { emptySymbol?: string; locale?: string }\n) {\n const hoursToFormat = getDate(date);\n if (hoursToFormat) {\n return hoursToFormat.toLocaleTimeString(options?.locale, { hour: '2-digit', minute: '2-digit' });\n } else {\n return options?.emptySymbol ?? '';\n }\n}\n\nexport function formatFullDate(\n date: Date | string | number | null | undefined,\n options?: { emptySymbol?: string; locale?: string }\n) {\n const dateToFormat = getDate(date);\n\n if (dateToFormat) {\n return dateToFormat.toLocaleDateString(options?.locale, {\n day: '2-digit',\n weekday: 'short',\n month: 'short',\n year: 'numeric',\n });\n } else {\n return options?.emptySymbol ?? '';\n }\n}\n\nexport function formatMonthString(\n date: Date | string | number | null | undefined,\n options?: { emptySymbol?: string; locale?: string }\n) {\n const dateToFormat = getDate(date);\n\n if (dateToFormat) {\n return formatMonth(dateToFormat, options?.locale);\n } else {\n return options?.emptySymbol ?? '';\n }\n}\n\n/**\n * Returns date in DD-MM-YY format with provided separators.\n * @param date - Date to be formatted\n * @param locale - Locale to format\n */\nexport function formatDate(date: Date, locale: string = navigator.language): string {\n return date.toLocaleDateString(locale, { day: '2-digit', month: '2-digit', year: '2-digit' });\n}\n\n/**\n * Returns date in MMMM YYYY (i.e. June 2021) format with provided separators.\n * @param date - Date to be formatted\n * @param locale - Locale to format\n */\nexport function formatMonth(date: Date, locale: string = navigator.language): string {\n return capitalize(\n date.toLocaleString(locale, {\n month: 'long',\n year: 'numeric',\n })\n );\n}\n\nexport function currentLanguageToDateFNSLocale(currentLanguage: Language): Locale {\n return Locales[currentLanguage.replace('-', '')] ?? Locales[currentLanguage.substring(0, 2)] ?? Locales.enUS;\n}\n\nconst dayMilliseconds = 24 * 60 * 60 * 1000;\n\nexport function getDayStart(date?: Date | string | number | null | undefined) {\n date = getDate(date) || new Date();\n const tzOffset = date.getTimezoneOffset() * 60 * 1000;\n const ts = date.getTime();\n return new Date(ts - ((ts - tzOffset) % dayMilliseconds));\n}\n\nexport function getDayEnd(date?: Date | string | number | null | undefined) {\n date = getDate(date) || new Date();\n const tzOffset = date.getTimezoneOffset() * 60 * 1000;\n const ts = date.getTime();\n return new Date(ts - ((ts - tzOffset) % dayMilliseconds) + dayMilliseconds - 1);\n}\n\nexport function isMultipleDays(firstDate: Date, lastDate: Date) {\n return (\n firstDate.getFullYear() !== lastDate.getFullYear() ||\n firstDate.getMonth() !== lastDate.getMonth() ||\n firstDate.getDate() !== lastDate.getDate()\n );\n}\n\nexport function dateToString(value: Date, currentLanguage: Language) {\n const date = Intl.DateTimeFormat(currentLanguage, {\n month: 'long',\n year: 'numeric',\n day: 'numeric',\n weekday: 'long',\n }).format(value);\n const time = Intl.DateTimeFormat(currentLanguage, {\n hour: 'numeric',\n minute: 'numeric',\n }).format(value);\n\n return `${date} - ${time}`;\n}\n","import debug from 'debug';\nimport environment from '@/environment';\n\ntype DebugModules =\n | 'app'\n | 'authorize-client'\n | 'billing'\n | 'login-page-layout'\n | 'mobile'\n | 'modal-window'\n | 'notifications'\n | 'permissions-route-guard'\n | 'push-notifications'\n | 'session-refresher'\n | 'user-profile-store-provider-adapter';\n\n/**\n * Here we create initial key for triggering specific module for debug.js\n * In params we are passing names of the modules and subModules.\n * At the end we got a key for for specific modules\n *\n * Example. nameSpace = course_dashboard, args = [playlist, assignments]\n *\n * @method makeLogger('course_dashboard','playlist','assignments')\n * @return {string} => eloomi:course_dashboard:playlist:assignments\n *\n *\n * In order to use debug.js in a browser, complete next steps:\n *\n * 1. Generate a new key for debug.js using makeLogger()\n * 2. Open browser => Web inspector => Console\n * 3. In console tab, type localStorage.debug(${yourGeneratedKey}) => Enter\n * 4. Refresh the page\n * 5. That's it!\n *\n *\n * @param {String} [namespace] Module name.\n * @param {String[]} [args] Submodules names\n */\n\nexport const makeLogger = (namespace: DebugModules, ...args: string[]) => {\n const parts = [namespace, ...args];\n const name = `eloomi:${parts.join(':')}`;\n return debug(name);\n};\n\nexport const makeWarnLogger = (namespace: DebugModules, ...args: string[]) => {\n const logger = makeLogger(namespace, ...args);\n logger.log = console.warn.bind(console);\n return logger;\n};\n\n/**\n * Reference: {@link https://github.com/debug-js/debug#browser-support}\n *\n * Can be useful for debugging some stuff on app startup\n */\nexport function enableDebugForNamespacesFromEnv() {\n if (!environment.debugNamespaces) return;\n\n localStorage.setItem('debug', environment.debugNamespaces);\n}\n","export function bodyOverflowHidden(condition) {\n window.document.body.style.overflow = condition ? 'hidden' : '';\n}\n","export const INTERCOM_DISABLED_KEY = 'is-intercom-disabled';\nexport const WELCOME_POPUPS_DISABLED_KEY = 'is-welcome-popups-disabled';\n\nexport const enum E2EFeatureKeys {\n Intercom = 'is-intercom-disabled-by-e2e',\n WelcomePopups = 'is-any-welcome-popup-disabled-by-e2e',\n}\n\nexport function isFeatureDisabledByE2E(flagKey: E2EFeatureKeys) {\n return localStorage.getItem(flagKey) === 'true';\n}\n","import { AxiosResponse } from 'axios';\n\nexport function extractAxiosData(response: AxiosResponse): T {\n return response.data;\n}\n\nexport function extractAxiosDataAsRequired(response: AxiosResponse): Required {\n return response.data as Required;\n}\n","import { Capacitor } from '@capacitor/core';\nimport { ClientType } from '@eloomi/eloomi-users-persona-client/1.0';\n\nexport enum Platform {\n Web = 'web',\n Android = 'android',\n Ios = 'ios',\n}\n\nexport function getDevicePlatform(): Platform {\n const platform = Capacitor.getPlatform();\n switch (platform) {\n case 'android':\n return Platform.Android;\n case 'ios':\n return Platform.Ios;\n default:\n return Platform.Web;\n }\n}\n\nexport const platform = getDevicePlatform();\n\nexport function isAndroid() {\n return platform === Platform.Android;\n}\n\nexport function isIos() {\n return platform === Platform.Ios;\n}\n\nexport function isWeb() {\n return platform === Platform.Web;\n}\n\nexport function isMobileApp() {\n return isAndroid() || isIos();\n}\n\nexport function getClientType(): ClientType {\n return isMobileApp() ? ClientType.MobileApp : ClientType.Web;\n}\n","export type FilterValue = string | number | Date | boolean;\n\n/** Fluent builder for constructing filters with multiple rules. */\nexport interface IFluentFilterCollection {\n filters: IFilterTerm[];\n build(): string;\n}\n\nexport interface IFilterTerm {\n names: string[];\n values: FilterValue[];\n operator: Operator;\n\n build(): string | null;\n}\n\nexport enum Operator {\n IsEqualTo = '==',\n IsNotEqualTo = '!=',\n GreaterThan = '>',\n GreaterThanOrEqual = '>=',\n LessThan = '<',\n LessThanOrEqual = '<=',\n Contains = '@=*',\n Have = '@=',\n Descend = '-',\n // Add Biarity/Sieve operators as needed\n}\n","import { IFilterTerm, Operator, IFluentFilterCollection, FilterValue } from './IFluentFilterCollection';\nimport { CoreEntitiesFilter } from '../classes/entites-filter';\n\n// tslint:disable:max-classes-per-file\n/** Fluent builder for constructing filters with multiple rules. */\nexport class FluentFilterCollection implements IFluentFilterCollection, CoreEntitiesFilter {\n public toQueryStringSearch() {\n return this.build();\n }\n public toQueryStringSort() {\n return undefined;\n }\n\n public filters: IFilterTerm[] = [];\n\n /** Specify name of the property. When more than one property is specified, OR logic is applied (e.g. if 'prop1' is 1 or 'prop2' is 1) */\n public where(...property: string[]) {\n const self = this;\n\n const saveTerm = (term: IFilterTerm) => {\n self.filters.push(term);\n };\n\n return new FilterTermBuilder(this, saveTerm, ...property);\n }\n\n public static where(...property: string[]) {\n const newCollection = new FluentFilterCollection();\n\n return newCollection.where(...property);\n }\n\n public build(): string {\n return (\n this.filters\n .map(filterTerm => filterTerm.build())\n // tslint:disable-next-line\n .filter(builtString => builtString != null)\n .join(',')\n );\n }\n\n /** Combine multiple builders into one, so single filter string can be generated. */\n public static mergeBuilders(...builders: IFluentFilterCollection[]): IFluentFilterCollection {\n const validBuilders = builders.filter(builder => builder);\n\n if (validBuilders.length === 0) return new FluentFilterCollection(); // in case null builders/empty buidlers were passed\n\n return validBuilders.reduce((acc, x) => {\n acc.filters = acc.filters.concat(x.filters);\n return acc;\n }, new FluentFilterCollection());\n }\n\n /** Serializes filter object to string. It is URL safe. */\n public serialize() {\n if (this.filters.length === 0) return '';\n\n const jsonObj = JSON.stringify(this.filters);\n return encodeURI(jsonObj);\n }\n\n public getFilterTermForProperty(property: string, operator?: Operator) {\n const applicableTerms = this.filters\n .filter(x => x.names.includes(property) && (operator == null || x.operator === operator))\n .map(x => x.values)\n .reduce((acc, x) => [...acc, ...x], []);\n\n return applicableTerms;\n }\n\n public static deserialize(serializedContent: string): FluentFilterCollection {\n const obj = new FluentFilterCollection();\n\n if (serializedContent == null || serializedContent === '') return obj;\n\n try {\n const decoded = decodeURI(serializedContent);\n obj.filters = JSON.parse(decoded);\n return obj;\n } catch (e) {\n console.error('Unable to deserialize filter object.');\n console.error(e);\n\n return new FluentFilterCollection();\n }\n }\n}\n\nclass FilterTermBuilder {\n private parentBuilder: FluentFilterCollection;\n private filterProperties: string[];\n private saveTermFunc: (builtTerm: IFilterTerm) => void;\n\n constructor(\n parentBuilder: FluentFilterCollection,\n saveTermFunc: (builtTerm: IFilterTerm) => void,\n ...filterProperties: string[]\n ) {\n this.parentBuilder = parentBuilder;\n this.filterProperties = filterProperties;\n this.saveTermFunc = saveTermFunc;\n }\n\n /** Specify filter for previous property. When multiple values are provided they are treated as OR operator (or equivalent of SQL value IN (...)) */\n public filter(operator: Operator, ...values: FilterValue[]) {\n const term = new FilterTerm();\n term.operator = operator;\n term.names = this.filterProperties;\n term.values = values;\n\n this.saveTermFunc(term);\n return this.parentBuilder;\n }\n}\n\nclass FilterTerm implements IFilterTerm {\n public names: string[] = [];\n public values: FilterValue[] = [];\n public operator: Operator = Operator.IsEqualTo;\n\n public build(): string | null {\n if (this.names.length === 0) {\n console.warn('FilterTerm does not have any properties specified. Skipping the term.');\n return null;\n }\n\n const leftSide = this.names.length === 1 ? this.names[0] : `(${this.names.join('|')})`;\n\n if (this.values.length === 0) {\n console.warn(\n `No values were specified for ${leftSide} filter. It will be omitted in resulting filter string.`\n );\n return null;\n }\n\n const mappedValues = this.values.map(x => {\n if (x instanceof Date) {\n return x.toISOString();\n }\n\n if (typeof x === 'boolean') return x.toString();\n\n return x;\n });\n\n const rightSide = mappedValues.join('|');\n\n return `${leftSide}${this.operator}${rightSide}`;\n }\n}\n\nexport function buildFilter(fieldName, filter, operator: Operator = Operator.Contains) {\n const builder = new FluentFilterCollection();\n\n return filter ? builder.where(fieldName).filter(operator, filter).build() : undefined;\n}\n\nexport function buildSort(data: unknown | { key: string; ascending: boolean }) {\n if (!data) {\n return;\n }\n const sortData: { key: string; ascending: boolean } = data as { key: string; ascending: boolean };\n if (data) {\n const operator = sortData.ascending === true ? '' : Operator.Descend;\n return `${operator}${sortData.key}`;\n }\n}\n","const lastLocation = { x: 0, y: 0 };\n\nimport { throttle } from 'lodash-es';\n\nexport function getViewportMouseLocation(): { x: number; y: number } {\n return { ...lastLocation };\n}\n\nconst debouncedEventHandler = throttle(e => {\n lastLocation.x = e.clientX;\n lastLocation.y = e.clientY;\n}, 100);\n\ndocument.addEventListener('mousemove', debouncedEventHandler);\n","import { Branding } from '@/common/models';\n\nconst CACHE_KEY = 'branding-data';\n\nexport function getCachedBrandingData() {\n const cachedBrandingColors = localStorage.getItem(CACHE_KEY);\n if (cachedBrandingColors !== null) {\n return JSON.parse(cachedBrandingColors) as Branding;\n }\n return null;\n}\n\nexport function cacheBrandingData(data: Branding) {\n const stringified = JSON.stringify(data);\n return localStorage.setItem(CACHE_KEY, stringified);\n}\n\nexport function clearBrandingDataFromLocalStorage() {\n localStorage.removeItem(CACHE_KEY);\n}\n","import { UserProfile } from '@/common/interfaces/user-profile.interface';\n\nconst CACHE_KEY = 'user-details';\nconst REPORTING_MANAGER_CACHE_KEY = 'user-reporting-manager-status';\n\nexport function getCacheUserDetailsData() {\n const cachedData = localStorage.getItem(CACHE_KEY);\n\n return cachedData !== null ? (JSON.parse(cachedData) as UserProfile) : null;\n}\n\nexport function cacheUserDetailsData(data: UserProfile) {\n const stringify = JSON.stringify(data);\n\n return localStorage.setItem(CACHE_KEY, stringify);\n}\n\nexport function getCacheUserReportingManagerStatus() {\n const cachedData = localStorage.getItem(REPORTING_MANAGER_CACHE_KEY);\n\n return cachedData !== null ? (JSON.parse(cachedData) as boolean) : null;\n}\n\nexport function cacheUserReportingManagerStatus(isReportingManager: boolean) {\n const stringify = JSON.stringify(isReportingManager);\n\n return localStorage.setItem(REPORTING_MANAGER_CACHE_KEY, stringify);\n}\n\nexport function clearUserDetailsDataFromLocalStorage() {\n localStorage.removeItem(CACHE_KEY);\n}\n","import { HSLColor } from '@/common/types';\n\nexport function hexToHSL(hex: string, change: number): HSLColor {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex) || ['00', '00', '00'];\n\n let r = parseInt(result[1], 16);\n let g = parseInt(result[2], 16);\n let b = parseInt(result[3], 16);\n\n (r /= 255), (g /= 255), (b /= 255);\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n let h = (max + min) / 2;\n let s = (max + min) / 2;\n let l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // achromatic\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n s = s * 100;\n s = Math.round(s);\n l = l * 100;\n l = Math.round(l);\n h = Math.round(360 * h);\n\n const colorInHSL = h + ', ' + s + '%, ' + l * (1 + change / 100) + '%';\n\n return colorInHSL as HSLColor;\n}\n","import { snakeToCamel } from './utils';\n\ntype SnakeToCamelCase = S extends `${infer T}_${infer U}`\n ? `${T}${Capitalize>}`\n : S;\n\ntype AsCamel = { [K in keyof InputType as SnakeToCamelCase]: InputType[K] };\n\n/**\n * Convert all the object keys to camelCase and mark all fields as required.\n *\n * It supposes that there is no undefined fields in the backend response.\n * Since such fields are marked as `nullable` and should contain `null`.\n */\nexport function convertBackendResponseToModel(dataObject: T): Required> {\n const newObj: Record = {};\n for (const key of Object.keys(dataObject)) {\n if (dataObject[key] !== undefined) newObj[snakeToCamel(key)] = dataObject[key];\n }\n\n return newObj as Required>;\n}\n","/** Debounce promise returning function. Newest arguments will be used to call function.\n *\n * usage: let debounced = debouncePromise(1000, someFunction);\n */\nexport function debouncePromise Promise>(time: number, func: T): T {\n // TODO: add type guards\n\n let lastArguments;\n let timeoutId;\n let existingPromise;\n let resolvePromise;\n let rejectPromise;\n\n // tslint:disable-next-line\n return function (...args: any[]) {\n if (!existingPromise) {\n existingPromise = new Promise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n }\n\n // tslint:disable-next-line\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n\n lastArguments = args;\n\n timeoutId = setTimeout(() => {\n const resolve = resolvePromise;\n const reject = rejectPromise;\n const lastArgs = lastArguments;\n\n lastArguments = undefined;\n timeoutId = undefined;\n existingPromise = undefined;\n resolvePromise = undefined;\n rejectPromise = undefined;\n\n func(...lastArgs)\n .then((...thenArgs: any[]) => {\n resolve(...thenArgs);\n })\n .catch((...catchArgs: any[]) => {\n reject(...catchArgs);\n });\n }, time);\n\n return existingPromise;\n } as any;\n}\n","import { Capacitor } from '@capacitor/core';\nimport { Keyboard } from '@capacitor/keyboard';\nimport {\n isSupported as onScreenKeyboardIsSupported,\n subscribe as subscribeToKeyboardVisibilityChanged,\n} from 'on-screen-keyboard-detector';\n\nexport type KeyboardVisibilityChangedCallback = (keyboardIsVisible: boolean) => void;\nexport type KeyboardVisibilityChangedCleanup = () => void;\n\nexport function detectOnscreenKeyboard(onKeyboardVisibilityChanged: KeyboardVisibilityChangedCallback) {\n let cleanup: KeyboardVisibilityChangedCleanup | null = null;\n if (Capacitor.getPlatform() === 'web') {\n if (onScreenKeyboardIsSupported()) {\n cleanup = subscribeToKeyboardVisibilityChanged(visibility => {\n onKeyboardVisibilityChanged(visibility === 'visible');\n });\n }\n } else {\n Keyboard.addListener('keyboardDidShow', info => {\n document.body.style.setProperty('--keyboard-height', info.keyboardHeight + 'px');\n onKeyboardVisibilityChanged(true);\n });\n\n Keyboard.addListener('keyboardDidHide', () => {\n onKeyboardVisibilityChanged(false);\n });\n\n cleanup = () => {\n Keyboard.removeAllListeners();\n };\n }\n\n return cleanup;\n}\n","export function truncate(text: string, maxLength: number | false, clamp?: any) {\n if (!text) return;\n if (maxLength === false) {\n return text;\n } else {\n return text.slice(0, maxLength).trim() + (maxLength < text.length ? clamp || '...' : '');\n }\n}\n","export function forceFileDownload(response: any, name: string) {\n const blob = new Blob([response]);\n const a = window.document.createElement('a');\n a.href = window.URL.createObjectURL(blob);\n a.download = name;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n}\n","const f = (val: number) => (Math.floor(val / 10) > 0 ? `${val}` : `0${val}`);\n\nexport function formatDuration(totalSeconds: number) {\n const withoutSeconds = formatDurationWithoutSeconds(totalSeconds);\n const seconds = totalSeconds % 60;\n\n return `${withoutSeconds}:${f(seconds)}`;\n}\n\nexport function formatDurationWithoutSeconds(totalSeconds: number) {\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds - hours * 3600) / 60);\n\n return `${f(hours)}:${f(minutes)}`;\n}\n\nexport function addZeroesToTime(time: number | string) {\n return ('0' + time).slice(-2);\n}\n\nexport function extractMinutes(time: number): number | null {\n return (time && Math.floor((time % 3600) / 60)) || null;\n}\n\nexport function extractHours(time: number): number | null {\n return (time && Math.floor(time / 3600)) || null;\n}\n/**\n * Returns formated time\n * @param time - time in seconds like: 12h 23m\n * @param config - takes arguments for translation\n */\nexport function formatTime(\n time: number,\n config?: { week?: string; day?: string; hour?: string; minute?: string; second?: string }\n) {\n const second = 1;\n const minute = second * 60;\n const hour = minute * 60;\n const day = hour * 24;\n const week = day * 7;\n\n const formattedWeeks = Math.floor(time / week);\n const formattedDays = Math.floor((time % week) / day);\n const formattedHours = Math.floor(((time % week) % day) / hour);\n const formattedMinutes = Math.floor((((time % week) % day) % hour) / minute);\n const formattedSeconds = Math.floor(((((time % week) % day) % hour) % minute) / second);\n\n if (!formattedWeeks && !formattedDays && !formattedHours && !formattedMinutes && !time) {\n return '—';\n }\n\n const w = formattedWeeks ? `${formattedWeeks}${config?.week || 'w'}` : '';\n const d = formattedDays ? `${formattedDays}${config?.day || 'd'}` : '';\n const h = formattedHours ? `${formattedHours}${config?.hour || 'h'}` : '';\n const m = formattedMinutes ? `${formattedMinutes}${config?.minute || 'm'}` : '';\n const s = time ? `${formattedSeconds}${config?.second || 's'}` : '';\n\n return [w, d, h, m, s]\n .filter(x => x)\n .slice(0, 2)\n .join(' ');\n}\n","/**\n * Format decimal number to percent represenation.\n * @param value\n * @returns\n */\nexport function formatToPercent(value: number | null | undefined) {\n if (value === null || value === undefined) {\n return value;\n }\n return Math.round(value * 100);\n}\n","import { Branding } from '@/common/models';\n\nexport function convertSearchResult(result: string): string {\n return result.replace(/\\s+/g, '|');\n}\n\nexport function searchTextToSearchTerms(text?: string): string[] {\n if (!text) return [];\n\n return text.split(/\\s+/).filter(x => x != null && x !== '');\n}\n\nexport function brandingThemeToCssString(theme: Branding) {\n return `:root {\n --color-branding-text: ${theme.brandingText};\n }`;\n}\n\nexport function brandingThemeToVariablesObject(theme: Branding): { [key: string]: string } {\n return {\n '--color-branding-text': theme.brandingText || '',\n };\n}\n","/**\n * Uses canvas.measureText to compute and return the width of the given text of given font in pixels.\n *\n * @param text The text to be rendered.\n * @param {String} font The css font descriptor that text is to be rendered with (e.g. \"14px verdana\").\n *\n * @see http://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393\n * @see http://jsfiddle.net/eNzjZ/70/\n */\n\nfunction getTextWidthDOM(\n text,\n font = \"600 14px 'Proxima Nova', -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica Neue, Helvetica, Arial, sans-serif;\"\n) {\n const span = document.createElement('span');\n span.classList.add('test-text');\n span.style.font = font;\n span.style.float = 'left';\n span.style.whiteSpace = 'nowrap';\n span.style.lineHeight = '20px';\n span.style.letterSpacing = '0.5';\n span.style.textTransform = 'uppercase';\n span.style.fontWeight = '600';\n span.textContent = text;\n\n document.body.appendChild(span);\n\n const width = span.offsetWidth;\n\n document.body.removeChild(span);\n\n return width;\n}\n\nexport function getTextWidth(\n text,\n font = \"600 14px 'Proxima Nova', -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica Neue, Helvetica, Arial, sans-serif;\"\n) {\n return getTextWidthDOM(text, font);\n}\n","import { Dictionary } from '@/translations';\n\nexport function mergeTranslations(...args: Dictionary[]) {\n return args.reduce((acc, x) => mergeTranslationCollections(acc, x), {});\n}\n\nfunction mergeTranslationCollections(collectionA: Dictionary, collectionB: Dictionary) {\n if (process.env.NODE_ENV === 'development') {\n for (const keyA in collectionA)\n for (const keyB in collectionB) {\n if (keyA === keyB) {\n console.error(\n `Translation key '${keyA}' is overriden: '${collectionA[keyA]}' becomes '${collectionB[keyB]}'`\n );\n }\n\n if (!keyA.startsWith('spa')) {\n console.error(`'${keyA}' should be prefixed with 'spa.'`);\n }\n }\n }\n\n return { ...collectionA, ...collectionB };\n}\n","export function highlight(text = '', query = '', color?: string) {\n const pattern = new RegExp('(' + query.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&') + ')', 'gi');\n const replaceWith = '$1';\n\n return text.replace(pattern, replaceWith);\n}\n","import { IntercomApiFactory, IntercomSettingsForUser } from '@eloomi/eloomi-users-persona-client/1.0';\nimport { authorizeClient } from '@/api/http-client';\nimport environment from '@/environment';\nimport { E2EFeatureKeys, isFeatureDisabledByE2E } from '@/common/services/e2e-feature-flags';\n\nconst intercomApi = authorizeClient(IntercomApiFactory);\n\nclass IntercomService {\n isBooted = false;\n isInitialized = false;\n\n static isDisabled() {\n return !environment.useIntercom || isFeatureDisabledByE2E(E2EFeatureKeys.Intercom);\n }\n\n async init() {\n if (IntercomService.isDisabled()) return;\n\n const intercom = await intercomApi.getSelf().then(response => response.data);\n\n if (intercom.enabled && intercom.settings && intercom.settings.app_id) {\n this.injectScript(intercom.settings.app_id);\n this.isInitialized = true;\n this.boot(intercom.settings);\n }\n }\n\n private injectScript(appId: string) {\n if (window.Intercom) return;\n\n /**\n * Reference {@link https://developers.intercom.com/installing-intercom/docs/basic-javascript}\n */\n const INTERCOM_SCRIPT = `(function(){var w=window;var ic=w.Intercom;if(typeof ic===\"function\"){ic('reattach_activator');ic('update',w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/${appId}';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);};if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();`;\n\n const scriptElement = document.createElement('script');\n scriptElement.text = INTERCOM_SCRIPT;\n document.body.appendChild(scriptElement);\n }\n\n private callIntercom(...args: unknown[]) {\n if (!window.Intercom) return;\n window.Intercom(...args);\n }\n\n boot(settings: IntercomSettingsForUser) {\n if (!this.isInitialized) return;\n\n this.callIntercom('boot', settings);\n this.isBooted = true;\n }\n\n showNewMessage() {\n if (!this.isBooted) return;\n this.callIntercom('showNewMessage');\n }\n\n trackEvent(eventName: string, options?: unknown) {\n this.callIntercom('trackEvent', eventName, options);\n }\n\n setVisibility(isVisible: boolean) {\n this.callIntercom('update', {\n hide_default_launcher: !isVisible,\n });\n }\n\n shutdown() {\n if (!this.isBooted) return;\n this.callIntercom('shutdown');\n }\n\n show() {\n const intercomeElement = window.document.getElementById('intercom-container');\n if (intercomeElement) {\n intercomeElement.style.display = '';\n }\n }\n hide() {\n const intercomeElement = window.document.getElementById('intercom-container');\n if (intercomeElement) {\n intercomeElement.style.display = 'none';\n }\n }\n}\n\nexport const intercom = new IntercomService();\n","import { injectBrandedCSSVariables } from '@eloomi/design-tokens';\nimport tokens from '@eloomi/design-tokens/build/colors';\nimport { Branding } from '@/common/models';\n\nexport type SetBrandingCallback = (data: Branding) => void;\n\ntype OverriddenBrandingColors = {\n branding: string;\n primary: string;\n};\n\nexport function mapBrandingToDSColors(brandingData: Branding): OverriddenBrandingColors {\n return {\n branding: brandingData.branding_color!,\n primary: brandingData.primary_color!,\n };\n}\n\nexport function restoreDefaultDesignSystemColorsWithBranding() {\n const colors: OverriddenBrandingColors = {\n branding: tokens.color.branding.value as string,\n primary: tokens.color.primary.value as string,\n };\n injectBrandedCSSVariables(colors);\n}\n\nexport function overrideDesignSystemColorsWithBranding(data: Branding) {\n const colors = mapBrandingToDSColors(data);\n injectBrandedCSSVariables(colors);\n}\n","import notificationStore from '@/common/components/toast/store';\nimport { OptionalNotificationPayload } from '@/common/components/toast/store/actions';\nimport { Store } from 'vuex';\n\nexport async function showDelayedNotification(baseStore: Store, payload: OptionalNotificationPayload) {\n await notificationStore.context(baseStore).actions.showDelayedNotification(payload);\n}\n","/**\n * Wait until timeout expires.\n */\nexport async function sleep(timeout: number) {\n return new Promise(resolve => {\n setTimeout(resolve, timeout);\n });\n}\n","export function getFullName(\n user?: {\n firstName?: string | null;\n lastName?: string | null;\n first_name?: string | null;\n last_name?: string | null;\n } | null\n) {\n return [user?.firstName || user?.first_name, user?.lastName || user?.last_name].filter(el => el).join(' ');\n}\n","import { MinWidthViewportBreakpoints } from '@/common/constants/breakpoints';\n\nexport const MOBILE_UNSUPPORTED_FLAG_NAME = 'mobileIsUnsupported';\nexport const mobileIsUnsupportedFlag = {\n [MOBILE_UNSUPPORTED_FLAG_NAME]: true,\n};\n\nexport const viewportIsUnsupportedFlag = (viewportWidth: number = MinWidthViewportBreakpoints.xl) => {\n return {\n [MOBILE_UNSUPPORTED_FLAG_NAME]: true,\n viewportWidth,\n };\n};\n","import { Capacitor } from '@capacitor/core';\nimport { App as CapacitorApp } from '@capacitor/app';\nimport VueRouter, { Route } from 'vue-router';\n\nimport { MOBILE_UNSUPPORTED_FLAG_NAME } from './mobile-is-unsupported-flag';\nimport { JWTLoginSessionManager } from '@/authentication/services';\nimport { AuthenticationRouteNames } from '@/authentication/route-definitions';\nimport { CoursesRouteNames } from '@/courses/route-definitions';\n\nexport const FALLBACK_ROUTE_NAME = 'mobile-fallback' as const;\nexport const COMFORTABLE_VIEWPORT_WIDTH = 1224;\n\nexport function isPossiblyMobileDeviceWithSmallScreen(viewportWidth = COMFORTABLE_VIEWPORT_WIDTH) {\n const isMobiInUserAgent = /Mobi/i.test(window.navigator.userAgent);\n\n return isMobiInUserAgent && window.innerWidth <= viewportWidth;\n}\n\nfunction isMobileUnsupportedOnRoute(route: Route) {\n return route.meta && route.meta[MOBILE_UNSUPPORTED_FLAG_NAME] === true;\n}\n\nfunction replaceLocationInTheAddressBar(url: string) {\n window.history.replaceState(null, '', url);\n}\n\nfunction getLocationHref(router: VueRouter, url: string) {\n const resolution = router.resolve(url);\n return resolution.resolved.fullPath === url ? resolution.href : undefined;\n}\n\nexport function attachMobileFallbackGuard(router: VueRouter) {\n router.beforeEach((to, from, next) => {\n if (Capacitor.isNativePlatform()) {\n const sessionManager = new JWTLoginSessionManager();\n\n if (\n to.name === AuthenticationRouteNames.LOGIN &&\n from.name === CoursesRouteNames.COURSES_DASHBOARD &&\n sessionManager.isLoggedIn()\n ) {\n CapacitorApp.exitApp();\n }\n }\n\n if (isMobileUnsupportedOnRoute(to) && isPossiblyMobileDeviceWithSmallScreen(to.meta?.viewportWidth)) {\n return next({ name: FALLBACK_ROUTE_NAME, query: { from: to.fullPath }, replace: true });\n } else {\n return next();\n }\n });\n\n router.afterEach(to => {\n const isFromArgAvailable = 'from' in to.query && to.query.from.length > 0;\n\n if (to.name === FALLBACK_ROUTE_NAME && isFromArgAvailable) {\n const fromUrl = to.query.from as string;\n const href = getLocationHref(router, fromUrl);\n\n if (href === undefined) {\n return;\n }\n\n replaceLocationInTheAddressBar(href);\n }\n });\n}\n","import { Capacitor } from \"@capacitor/core\";\nimport { randomId } from \"../random-id\";\n\n/** Keeps track of all actions that should be performed on physical back button press. history.back() will be called only if this stack is empty. */\nclass BackButtonActionStack {\n private actions: ({\n id: string,\n /** Action to be called when back button is pressed. If action returns 'false', it will not be removed from the stack yet. */\n action: (() => boolean | void)\n })[] = [];\n\n /** Push action on the stack. Returns callback that allows for removal of the action even if it is not on the top of the stack. */\n public pushAction(cleanup: () => boolean | void): (() => void) {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!Capacitor.isNativePlatform()) return () => { };\n\n const uuid = randomId();\n this.actions.push({\n id: uuid, \n action: cleanup\n });\n\n return () => {\n this.actions = this.actions.filter(x => x.id != uuid);\n }\n }\n\n /** Executes action and removes it from the stack if action return value !== false */\n public popAction() {\n if (!Capacitor.isNativePlatform()) return;\n\n if (this.actions.length == 0) return;\n\n const data = this.actions[this.actions.length - 1];\n const result = data.action();\n if (result !== false) {\n this.actions = this.actions.filter(x => x.id != data.id);\n }\n } \n\n public isEmpty() {\n return this.actions.length === 0;\n }\n}\n\n/** Native-back button action stack. Overrides HTML navigation. */\nexport const backButtonService = new BackButtonActionStack();","import environment from '@/environment';\nimport { initClientWithoutAuth } from '@/api/http-client';\nimport { PlatformApiFactory, PlatformResponse } from '@eloomi/eloomi-platforms-external-client/1.0';\n\nimport type { PlatformResolver } from '@/authentication/services';\nimport { isAndroid, isWeb } from '@/common/services/get-device-platform';\n\nconst PlatformApiClient = initClientWithoutAuth(PlatformApiFactory);\n\nexport class PlatformResolutionError extends Error {\n constructor(domain: string) {\n super(`Couldn't resolve a platform for domain \"${domain}\"`);\n Object.setPrototypeOf(this, PlatformResolutionError.prototype);\n }\n}\n\nclass PlatformDomainStorage {\n private readonly STORAGE_KEY = 'platformDomain';\n\n public clean(): void {\n localStorage.removeItem(this.STORAGE_KEY);\n }\n\n public load() {\n return localStorage.getItem(this.STORAGE_KEY);\n }\n\n public save(domain: string) {\n localStorage.setItem(this.STORAGE_KEY, domain);\n }\n}\n\ntype PlatformData = Required;\nexport class PlatformResolutionService implements PlatformResolver {\n private platformData?: PlatformData;\n private activePromise?: Promise;\n private allowSsoAutomaticLogin = true;\n private readonly CACHE_KEY = 'platformData';\n private readonly platformParentDomain = environment.platformParentDomain;\n private readonly platformDomainStorage = new PlatformDomainStorage();\n\n private cachePlatformData(data: PlatformData) {\n const stringified = JSON.stringify(data);\n return localStorage.setItem(this.CACHE_KEY, stringified);\n }\n\n private getCachedPlatformData() {\n const cachedData = localStorage.getItem(this.CACHE_KEY);\n if (cachedData !== null) {\n return JSON.parse(cachedData) as PlatformData;\n }\n return null;\n }\n\n public getPlatformDomain(): string {\n return this.getPlatformDomainIfSetForced() ?? (environment.platformDomain || window.document.domain);\n }\n\n private getPlatformDomainIfSetForced() {\n return this.platformDomainStorage.load();\n }\n\n public getPlatformParentDomain() {\n return this.platformParentDomain;\n }\n\n public async forceSetPlatformDomain(subDomain: string) {\n const platformDomain = `${subDomain}${this.getPlatformParentDomain()}`;\n // Validate provided domain\n await this.resolveDomain(platformDomain);\n this.platformDomainStorage.save(platformDomain);\n }\n\n public cleanStoredPlatformDomain() {\n this.platformDomainStorage.clean();\n }\n\n private async resolveDomain(domain: string) {\n return PlatformApiClient.resolveDomain(domain).then(response => {\n if (response.status !== 200) {\n throw new PlatformResolutionError(domain);\n }\n return response.data as PlatformData;\n });\n }\n\n public async getPlatformData(ignoreCache = false): Promise {\n if (this.activePromise !== undefined && this.platformData === undefined) {\n return this.activePromise;\n }\n\n if (!ignoreCache) {\n if (this.platformData !== undefined) {\n return this.platformData;\n }\n\n const cachedData = this.getCachedPlatformData();\n if (cachedData !== null) {\n this.platformData = cachedData;\n return cachedData;\n }\n }\n\n this.activePromise = this.resolveDomain(this.getPlatformDomain());\n this.platformData = await this.activePromise;\n this.cachePlatformData(this.platformData);\n\n return this.platformData;\n }\n\n public async resolvePlatform() {\n try {\n this.platformData = await this.resolveDomain(this.getPlatformDomain());\n this.cachePlatformData(this.platformData);\n return true;\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Which platforms will show the Login with SSO button.\n */\n private isDevicePlatformAllowedForSso() {\n return isWeb() || isAndroid();\n }\n\n public isSsoLoginEnabled(): boolean {\n const data = this.platformData ?? this.getCachedPlatformData();\n return Boolean(data?.sso_enabled) && this.isDevicePlatformAllowedForSso();\n }\n\n public isSsoOnlyLoginMode(): boolean {\n const data = this.platformData ?? this.getCachedPlatformData();\n return Boolean(data?.sso_enabled && data?.sso_only_login) && this.isDevicePlatformAllowedForSso();\n }\n\n public isSsoAutomaticLoginEnabled(): boolean {\n return this.isSsoOnlyLoginMode() && this.allowSsoAutomaticLogin;\n }\n\n public cleanCache(ssoLogin?: boolean) {\n localStorage.removeItem(this.CACHE_KEY);\n this.cleanStoredPlatformDomain();\n this.forceSsoAutomaticLoginEnabled(ssoLogin ?? false);\n }\n\n public forceSsoAutomaticLoginEnabled(enable: boolean) {\n if (!this.isSsoOnlyLoginMode()) {\n return;\n }\n\n this.allowSsoAutomaticLogin = Boolean(enable);\n }\n}\n","export const randomId = (): string =>\n Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n\nexport const getGUID = () => {\n function _p8(s?) {\n const p = (Math.random().toString(16) + '000000000').substr(2, 8);\n return s ? '-' + p.substr(0, 4) + '-' + p.substr(4, 4) : p;\n }\n return _p8() + _p8(true) + _p8(true) + _p8();\n};\n","export function redirectIfGuard(condition: () => boolean, routeName: string) {\n return function (_to, _from, next) {\n if (condition()) {\n next({\n name: routeName,\n });\n } else {\n next();\n }\n };\n}\n","import { extractAxiosData } from '@/common/services/extractAxiosData';\nimport { PlatformApiFactory } from '@eloomi/eloomi-platforms-external-client/1.0';\nimport { initClientWithoutAuth } from '../http-client';\n\nconst PlatformApiClient = initClientWithoutAuth(PlatformApiFactory);\n\nexport async function getPlatformDetails(domain: string) {\n return PlatformApiClient.resolveDomain(domain).then(extractAxiosData);\n}\n","import environment from '@/environment';\nimport VueRouter from 'vue-router';\n\nimport analytics from '@segment/analytics.js-core';\nimport SegmentIntegration from '@segment/analytics.js-integration-segmentio';\nimport { UserProfile } from '../interfaces';\nimport store, { smartRootModule } from '@/main/baseStore';\nimport { getPlatformDetails } from '@/api/providers/platform.provider';\n\nanalytics.use(SegmentIntegration);\n\nconst useAnalytics = Boolean(environment.segmentApiKey);\nconst integrationSettings = {\n 'Segment.io': {\n apiKey: environment.segmentApiKey,\n retryQueue: true,\n addBundledMetadata: true,\n unbundledIntegrations: ['Mixpanel'],\n },\n};\nif (useAnalytics) {\n getPlatformDetails(window.location.host).then(platform => {\n if (!platform.is_internal) analytics.initialize(integrationSettings);\n });\n}\n\nexport const segmentIdentify = (user: UserProfile) => {\n if (!useAnalytics || !user.analyticsEnabled) {\n return;\n }\n analytics.identify(`${user.platformId}:${user.id}`, {\n name: `${user.firstName} ${user.lastName}`,\n });\n};\n\nexport const segmentPage = () => {\n const analyticsEnabled = () =>\n smartRootModule.context(store).modules.userProfileDetails.state.authUserProfile?.analyticsEnabled ?? true;\n\n if (!useAnalytics || !analyticsEnabled()) {\n return;\n }\n analytics.page();\n};\n\nexport const includeSavePageInSegment = (router: VueRouter) => {\n router.beforeEach((_to, _from, next) => {\n segmentPage();\n return next();\n });\n};\n","import { NavigationGuardNext } from 'vue-router';\nimport notificationStore from '@/common/components/toast/store';\nimport translationsStore from '@/translations/store';\nimport baseStore from '@/main/baseStore';\nimport { DEFAULT_PAGE_LOCATION } from '@/authentication/services/locations';\n\nexport const handlePageNotFound = (next: NavigationGuardNext) => {\n const trans = translationsStore.context(baseStore).getters.trans;\n const notFoundMessage = trans('spa.navigation.sections.page-not-found');\n\n goToDefaultPage(next);\n\n notificationStore.context(baseStore).actions.showDelayedNotification({\n theme: 'warning',\n message: notFoundMessage,\n duration: 3000,\n });\n};\n\nexport const goToDefaultPage = (next: NavigationGuardNext) => {\n next(DEFAULT_PAGE_LOCATION);\n};\n","import { cloneDeep } from 'lodash-es';\n\nexport function doesStringHasHtml(value?: string | null) {\n if (!value) {\n return false;\n }\n\n const indexOfOpeningTag = value.indexOf('<');\n const indexOfClosingTag = value.indexOf('>');\n\n return indexOfOpeningTag !== -1 && indexOfClosingTag !== -1 && indexOfOpeningTag < indexOfClosingTag;\n}\n\nexport function getInitials(value: string | number): string {\n if (typeof value === 'string') {\n const textParts = value.split(' ');\n return `${(textParts[0] || '').charAt(0)}${(textParts[1] || '').charAt(0)}`.toUpperCase();\n } else {\n return `${value}`;\n }\n}\n\nexport function isNotNullOrUndefined(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\nexport function isNotEmpty(obj: any): boolean {\n return isNotNullOrUndefined(obj) && JSON.stringify(obj) !== '{}' && JSON.stringify(obj) !== '[]' && obj !== '';\n}\n\nexport function stringIsNotEmpty(s: string) {\n return isNotNullOrUndefined(s) && s !== '';\n}\n\nexport function capitalize(s: string) {\n return s[0].toUpperCase() + s.slice(1);\n}\n\nexport function addHashToLocation(context: any, hash: string) {\n context.$router.push({\n name: context.$route.name,\n hash,\n });\n}\n\nexport function deepCopy(objectToCopy: T): T {\n return cloneDeep(objectToCopy);\n}\n\nexport function convertToJson(jsonString: string) {\n try {\n return JSON.parse(jsonString);\n } catch (e) {\n return null;\n }\n}\n\nexport function convertToJsonAndExtractField(jsonString: string, field: string) {\n const json = convertToJson(jsonString);\n\n if (json) {\n return objectGetFieldByPath(json, field);\n } else {\n return null;\n }\n}\n\nexport function objectGetFieldByPath(object: any, path: string) {\n return path.split('.').reduce((currentObject, currentKey) => {\n if (currentObject && Object.prototype.hasOwnProperty.call(currentObject, currentKey)) {\n return currentObject[currentKey];\n } else {\n return null;\n }\n }, object);\n}\n\nexport function objectToArrayReversed(object) {\n const items = [] as any[];\n\n for (const item in object) {\n items.push(object[item]);\n }\n\n return items.reverse();\n}\n\nexport function objectHasProperty(object: any, path: string) {\n return path.split('.').reduce((currentObject, currentKey) => {\n if (currentObject && Object.prototype.hasOwnProperty.call(currentObject, currentKey)) {\n return currentObject[currentKey];\n } else {\n return null;\n }\n }, object);\n}\n\nexport function getShortList(array: any[], itemCountShow: number) {\n return array.length > itemCountShow ? array.slice(0, -(array.length - itemCountShow)) : array;\n}\n\nexport function getPruningNumber(array: any[], itemCountShow: number) {\n return array.length - itemCountShow + ' +';\n}\n\nexport function getRemainingNumber(total: number, itemCountShow: number) {\n return '+' + (total - itemCountShow);\n}\n\nexport function parseJwt(token) {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map(c => {\n return `%${('00' + c.charCodeAt(0).toString(16)).slice(-2)}`;\n })\n .join('')\n );\n\n return convertToJson(jsonPayload);\n}\n\nexport function isRichTextEmpty(json: any) {\n return Boolean(\n json &&\n isNotEmpty(json) &&\n json.content &&\n isNotEmpty(json.content) &&\n json.content.every(paragraph => !paragraph.content)\n );\n}\n\nexport function isEquivalent(objectA: any, objectB: any) {\n return JSON.stringify(objectA) === JSON.stringify(objectB);\n}\n\nexport function convertAdminDateText(text: string): string {\n return text.split('T')[0].slice(2, text.length).split('-').reverse().join('-').replace(/-/g, '/');\n}\n\nexport function generatePointNeighborhood(point: number, padding: number): number[] {\n return [\n ...Array.from({ length: padding }).map((_, i) => point - padding + i),\n point,\n ...Array.from({ length: padding }).map((_, i) => point + i + 1),\n ];\n}\n\nexport function range(start: number, end: number): readonly number[] {\n return Array.from({ length: end - start + 1 }).map((_, i) => i + start);\n}\n\nexport function restrictRegionOfSequence(\n sequence: number[],\n { startValue, endValue }: { startValue: number; endValue: number }\n): number[] {\n return sequence.filter(sequenceValue => sequenceValue >= startValue && sequenceValue <= endValue);\n}\n\nexport function restrictRegionOfSequenceWithBorders(\n sequence: number[],\n { startValue, endValue }: { startValue: number; endValue: number }\n): number[] {\n const filteredArray = restrictRegionOfSequence(sequence, { startValue, endValue });\n\n if (filteredArray[0] - startValue > 2) {\n filteredArray.splice(0, 0, startValue, Number.NaN);\n }\n\n if (endValue - filteredArray[filteredArray.length - 1] > 2) {\n filteredArray.push(Number.NaN, endValue);\n }\n\n return filteredArray;\n}\n\nexport function filenameEllipsis(filename: string, maxLength: number) {\n if (filename.includes('.')) {\n const pathParts = filename.split('.');\n const extension = pathParts[pathParts.length - 1];\n\n const remainingPath = pathParts.slice(0, pathParts.length - 1).join('.');\n\n if (remainingPath.length > maxLength) {\n const endPart = `[...].${extension}`;\n return remainingPath.substr(0, maxLength - endPart.length) + endPart;\n }\n }\n\n return filename;\n}\n\nexport const hashCode = (s: string): number => {\n let h = 0;\n const l = s.length;\n let i = 0;\n if (l > 0) while (i < l) h = ((h << 5) - h + s.charCodeAt(i++)) | 0;\n return h;\n};\n\nexport const formatBytes = (bytes: number, decimals = 2): string => {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n};\n\nexport const fileName = (text: string): string => {\n return text ? text.slice(0, text.lastIndexOf('.')) : '';\n};\n\nexport const fileExtension = (text: string): string => {\n return text ? text.slice(text.lastIndexOf('.') + 1, text.length) : '';\n};\n\nexport function findLast(array: T[], predicate: (value: T, index: number, obj: T[]) => boolean): T | undefined {\n let index = array.length - 1;\n for (; index >= 0; index--) {\n if (predicate(array[index], index, array)) {\n return array[index];\n }\n }\n}\n\nexport function shuffle(array: any[]) {\n let currentIndex = array.length;\n let temporaryValue;\n let randomIndex;\n\n while (0 !== currentIndex) {\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex -= 1;\n\n temporaryValue = array[currentIndex];\n array[currentIndex] = array[randomIndex];\n array[randomIndex] = temporaryValue;\n }\n\n return array;\n}\n\nexport function getLink(link: string, regex: RegExp, hostingLink: string): string {\n const hitList = link.match(regex);\n\n if (hitList !== null && hitList[1]) {\n const id = hitList[1];\n return hostingLink + id;\n } else {\n return link;\n }\n}\n\nexport function convertYoutubeToEmbed(link: string): string {\n return getLink(\n link,\n /(?:www\\.)?youtu(?:\\.be\\/|be.com\\/\\S*(?:watch|embed)(?:(?:(?=\\/[^&\\s?]+(?!\\S))\\/)|(?:\\S*v=|v\\/)))([^&\\s?]+)/,\n 'https://www.youtube.com/embed/'\n );\n}\n\nexport function convertVimeoToEmbed(link: string): string {\n return getLink(\n link,\n /(?:http|https)?:?\\/?\\/?(?:www\\.|player\\.)?vimeo\\.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/(?:[^/]*)\\/videos\\/|video\\/|)(\\d+)(?:|\\/\\?)/,\n 'https://player.vimeo.com/video/'\n );\n}\n\nexport function isHttpsUrl(link: string): boolean {\n const httpsRegex = /^(https):\\/\\//i;\n\n return httpsRegex.test(link);\n}\n\n/**\n * Set user clipboard content.\n * @param content text content\n */\nexport function setClipboard(content: string) {\n const textArea = document.createElement('textarea');\n textArea.style.opacity = '1';\n\n document.body.appendChild(textArea);\n textArea.value = content;\n\n textArea.select();\n document.execCommand('copy');\n\n document.body.removeChild(textArea);\n}\n\nexport type KebabCase = S extends `${infer C}${infer T}`\n ? KebabCase extends infer U\n ? U extends string\n ? T extends Uncapitalize\n ? `${Uncapitalize}${U}`\n : `${Uncapitalize}-${U}`\n : never\n : never\n : S;\n\n// \"Mozilla Firefox\" -> \"mozilla-firefox\"\n// \"Mac OS\" -> \"mac-os\"\nexport function wordsToKebab(str: string, separator = ' ') {\n return str.replace(separator, '-').toLowerCase();\n}\n\nexport const snakeToCamel = (str: string): string => str.replace(/([-_]\\w)/g, g => g[1].toUpperCase());\nexport const wordsToCamel = (str: string): string =>\n str\n .split(' ')\n .map((oneWord, idx) => (idx > 0 ? capitalize(oneWord.toLowerCase()) : oneWord))\n .join('');\nexport const camelToSnake = (str: string): string => str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);\nexport const camelToKebab = (str: T) =>\n str.replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`) as KebabCase;\n\nconst convertObjectKeys = (obj: any, objectKeyMappingFunction: (key: string) => string): any => {\n const newObj = {};\n for (const key of Object.keys(obj)) {\n if (obj[key] !== undefined) newObj[objectKeyMappingFunction(key)] = obj[key];\n }\n\n return newObj;\n};\n\nexport const objectPropsSnakeToCamel = (obj: any): any => {\n return convertObjectKeys(obj, snakeToCamel);\n};\n\nexport const objectPropsCamelToSnake = (obj: any): any => {\n return convertObjectKeys(obj, camelToSnake);\n};\n\nexport const formatBigNumber = value => {\n if (value >= 1000000) {\n return (value / 1000000).toFixed(1) + 'M';\n }\n if (value >= 1000) {\n return (value / 1000).toFixed(1) + 'k';\n }\n return value;\n};\n\n/**\n * Returns either true or false if item is in range(s)\n * @param value - Value to check\n * @param ranges - Array with boundaries or array with multiple arrays with boundaries\n */\nexport function isNumberInRange(value: number, ranges: number[] | number[][]): boolean {\n if (Array.isArray(ranges[0])) {\n let isInRange = false;\n\n for (let i = 0; i < ranges.length; i++) {\n if (isNumberInRange(value, (ranges as number[][])[i])) {\n isInRange = true;\n }\n }\n\n return isInRange;\n } else {\n return value > ranges[0] && value < ranges[1];\n }\n}\n\nexport function sumArray(arr: number[]) {\n return arr.reduce((sum, value) => sum + value, 0);\n}\n/**\n * Returns closest divisible number\n * @param a - number to check\n * @param b - divisor\n * @param greater - if true then searches for a greater value, if false, then smaller\n */\nexport const closestDivisibleBy = (a: number, b: number, greater = true) => (greater ? a + b - (a % b) : a - (a % b));\n\nexport function isViewportWidthLessThan(width: number): boolean {\n return window.innerWidth < width;\n}\n\nexport function getMaxWidthMedia(maxWidth: number): string {\n return `(max-width: ${maxWidth - 0.02}px)`;\n}\n\nexport type TextCalculationMetrics = {\n width: number;\n};\n\nexport function calculateTextMetrics(\n value: string,\n font: string | null,\n htmlElement: Element | null = null\n): TextCalculationMetrics | null {\n let localFont = '';\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n if (!context) {\n return null;\n }\n\n if (font) {\n localFont = font;\n } else {\n if (!font && htmlElement) {\n const computedMetrics = getComputedStyle(htmlElement);\n localFont = computedMetrics.font;\n }\n }\n\n if (!localFont) {\n return null;\n }\n\n context.font = localFont;\n const textMetrics = context.measureText(value);\n return {\n width: textMetrics.width,\n };\n}\n\n// may look a bit hackish, but read this issue:\n// https://stackoverflow.com/questions/44969852/javascript-number-tolocalestring-currency-without-currency-sign\nexport function formatPriceAndSeparateSymbol(number: number, currencyCode: string) {\n const partsToIgnore = ['literal', 'currency'];\n\n if (Number.isSafeInteger(number)) {\n partsToIgnore.push('fraction');\n partsToIgnore.push('decimal');\n }\n\n let symbol = '';\n const price = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: currencyCode,\n })\n .formatToParts(number)\n .map(p => {\n if (p.type === 'currency') {\n symbol = p.value;\n }\n\n return partsToIgnore.includes(p.type) ? '' : p.value;\n })\n .join('');\n\n return {\n symbol,\n price,\n };\n}\nexport function formatPercentage(\n number: number,\n options: { round?: boolean; precision?: number } = { round: false, precision: 2 }\n) {\n if (options.round) {\n return `${Math.round(number)}%`;\n }\n return `${Number(number.toFixed(options.precision))}%`;\n}\n\nexport function formatNumber(number: number, local: string) {\n return number.toLocaleString(local ? local : 'en-EN');\n}\n\nexport function extractTextFromHTML(html: string | null | undefined) {\n if (!html) {\n return '';\n }\n const span = document.createElement('span');\n span.innerHTML = html;\n return span.textContent || span.innerText;\n}\n","import { Module, Mutations, Actions, createMapper, Getters, createComposable } from 'vuex-smart-module';\nimport { cacheBrandingData, getCachedBrandingData } from '@/common/services';\nimport { Branding, createBranding } from '@/common/models';\nimport { Vue } from 'vue-property-decorator';\nimport { brandingProvider } from '@/api/providers';\n\nclass State {\n public brandingState: Branding | null = null;\n}\n\nclass StoreActions extends Actions, StoreMutations, StoreActions> {\n public async getBranding() {\n const cachedBrandingData = getCachedBrandingData();\n\n if (cachedBrandingData !== null) {\n this.mutations.setBranding(cachedBrandingData);\n }\n\n const brandingResponse = await brandingProvider.getBranding();\n const newBrandingData = createBranding(brandingResponse);\n this.mutations.setBranding(newBrandingData);\n this.dispatch('cacheBranding');\n }\n\n public setBranding(data: Branding) {\n this.mutations.setBranding(data);\n }\n\n public cacheBranding() {\n if (this.state.brandingState !== null) {\n cacheBrandingData(this.state.brandingState);\n }\n }\n}\n\nclass StoreMutations extends Mutations {\n public setBranding(data: Branding) {\n this.state.brandingState = data;\n }\n}\n\nconst brandingStore = new Module({\n state: State,\n actions: StoreActions,\n mutations: StoreMutations,\n});\n\nexport const useBrandingStore = createComposable(brandingStore);\n\nconst brandingStoreMapper = createMapper(brandingStore);\n\nexport const BrandingMappedStoreMixin = Vue.extend({\n computed: {\n ...brandingStoreMapper.mapState(['brandingState']),\n },\n methods: {\n ...brandingStoreMapper.mapActions(['getBranding', 'setBranding', 'cacheBranding']),\n },\n});\n\nexport default brandingStore;\n","import { Module, Mutations, createMapper } from 'vuex-smart-module';\n\nclass State {\n retryingHttpRequest = false;\n lastError: string | null = null;\n}\n\nclass StoreMutations extends Mutations {\n public setLastError(lastError: string | null) {\n if (this.state.retryingHttpRequest) return;\n\n if (this.state.lastError === null || lastError === null) {\n this.state.lastError = lastError;\n }\n }\n\n public setRetryingHttpState(state: boolean) {\n this.state.retryingHttpRequest = state;\n }\n}\n\nconst storeModule = new Module({\n state: State,\n mutations: StoreMutations,\n});\n\nexport const httpStoreMapper = createMapper(storeModule);\nexport default storeModule;\n","import { Module, Mutations, createMapper, Getters, createComposable } from 'vuex-smart-module';\nimport { Vue } from 'vue-property-decorator';\nimport { MinWidthViewportBreakpoints, BreakpointCode } from '@/common/constants/breakpoints';\n\nclass State {\n public isMobile = false;\n public readonly breakpoints = MinWidthViewportBreakpoints;\n public readonly activeBreakpoints: Record = {\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false,\n };\n}\n\nclass StoreGetters extends Getters {\n public isMobile() {\n return this.state.isMobile;\n }\n\n // Min-width viewport detectors\n\n public get isViewportLargerOrEqualSm() {\n return this.state.activeBreakpoints.sm;\n }\n\n public get isViewportLargerOrEqualMd() {\n return this.state.activeBreakpoints.md;\n }\n\n public get isViewportLargerOrEqualLg() {\n return this.state.activeBreakpoints.lg;\n }\n\n public get isViewportLargerOrEqualXl() {\n return this.state.activeBreakpoints.xl;\n }\n\n public get isViewportLargerOrEqualXxl() {\n return this.state.activeBreakpoints.xxl;\n }\n\n // Max-width viewport detectors\n\n public get isViewportSmallerOrEqualSm() {\n return !this.state.activeBreakpoints.md;\n }\n\n public get isViewportSmallerOrEqualMd() {\n return !this.state.activeBreakpoints.lg;\n }\n\n public get isViewportSmallerOrEqualLg() {\n return !this.state.activeBreakpoints.xl;\n }\n\n public get isViewportSmallerOrEqualXl() {\n return !this.state.activeBreakpoints.xxl;\n }\n}\n\nclass StoreMutations extends Mutations {\n public setIsMobile(isMobile: boolean) {\n this.state.isMobile = isMobile;\n }\n\n public setBreakpoint({ breakpoint, state }: { breakpoint: BreakpointCode; state: boolean }) {\n this.state.activeBreakpoints[breakpoint] = state;\n }\n}\n\nconst mobileModeStore = new Module({\n state: State,\n getters: StoreGetters,\n mutations: StoreMutations,\n});\n\nexport const useMobileModeStore = createComposable(mobileModeStore);\n\nconst mobileModeStoreMapper = createMapper(mobileModeStore);\n\nexport const MobileModeStoreMixin = Vue.extend({\n computed: {\n ...mobileModeStoreMapper.mapState(['isMobile', 'breakpoints', 'activeBreakpoints']),\n ...mobileModeStoreMapper.mapGetters([\n 'isViewportLargerOrEqualSm',\n 'isViewportLargerOrEqualMd',\n 'isViewportLargerOrEqualLg',\n 'isViewportLargerOrEqualXl',\n 'isViewportLargerOrEqualXxl',\n 'isViewportSmallerOrEqualSm',\n 'isViewportSmallerOrEqualMd',\n 'isViewportSmallerOrEqualLg',\n 'isViewportSmallerOrEqualXl',\n ]),\n },\n methods: {\n ...mobileModeStoreMapper.mapMutations(['setIsMobile', 'setBreakpoint']),\n },\n});\n\nexport default mobileModeStore;\n","/* eslint-disable vue/one-component-per-file */\nimport { Actions, createComposable, createMapper, Getters, Module, Mutations } from 'vuex-smart-module';\nimport {\n cacheUserDetailsData,\n cacheUserReportingManagerStatus,\n clearUserDetailsDataFromLocalStorage,\n getCacheUserDetailsData,\n getCacheUserReportingManagerStatus,\n} from '@/common/services';\nimport { UserProfile } from '@/common/interfaces';\nimport { segmentIdentify } from '@/common/services/segment';\nimport { Vue } from 'vue-property-decorator';\nimport { usersProvider } from '@/api/providers';\nimport { createStoreServiceFactory } from '@/di/store-factory';\nimport { EmsiSkillItem } from '@eloomi/eloomi-learning-persona-client/1.0';\nimport { SkillOrigin, UserInfoResponse, UserSkillOrigin } from '@eloomi/eloomi-skills-persona-client/1.0';\nimport { xorBy } from 'lodash-es';\nimport { PredefinedAccessUserRoles } from '@/admin/users/providers/user-access-roles';\n\nexport type AssignableSkills = { ownedSkills: EmsiSkillItem[]; wantedSkills: EmsiSkillItem[] };\n\nlet userDetailsPromise: Promise | null = null;\n\nclass State {\n public authUserProfile: UserProfile | null = null;\n public appInsightsPlatformData: {\n userId: number;\n platformId: number;\n } | null = null;\n public ownedSkills: EmsiSkillItem[] | null = null;\n public businessTitleSkills: EmsiSkillItem[] | null = null;\n public wantedSkills: EmsiSkillItem[] | null = null;\n public skillsSetupCompleted: boolean | null = null;\n public isReportingManager = false;\n}\n\nclass StoreGetters extends Getters {\n public userDetails() {\n return this.state.authUserProfile;\n }\n\n public get userSkills() {\n return [...(this.state.ownedSkills || []), ...(this.state.businessTitleSkills || [])];\n }\n\n public get isAuthUserAdmin() {\n const roles = [PredefinedAccessUserRoles.ADMIN.toString()];\n const userRole = this.state.authUserProfile?.infiniteRoleKey;\n return userRole ? roles.includes(userRole) : false;\n }\n}\n\nclass StoreActions extends Actions {\n public async loadUserProfile() {\n const cachedUserDetailsData = getCacheUserDetailsData();\n const cachedUserReportingStatusData = getCacheUserReportingManagerStatus();\n\n if (cachedUserDetailsData !== null && this.state.authUserProfile === null) {\n this.mutations.setUserProfile(cachedUserDetailsData);\n }\n\n this.mutations.setUserReportingManagerStatus(cachedUserReportingStatusData ?? false);\n\n if (userDetailsPromise === null) {\n await this.actions.forceReloadUserProfile();\n }\n\n return userDetailsPromise;\n }\n\n public async forceReloadUserProfile() {\n userDetailsPromise = usersProvider.getSelfUserProfile();\n this.actions.loadUserReportingManagerStatus();\n const authUserData: UserProfile | null = await userDetailsPromise;\n if (authUserData) {\n try {\n segmentIdentify(authUserData);\n } catch (error) {\n console.error(error);\n }\n\n this.mutations.setUserProfile(authUserData);\n this.mutations.setAppInsightData({\n userId: authUserData.id,\n platformId: authUserData.platformId,\n });\n\n cacheUserDetailsData(authUserData);\n }\n }\n\n public clearUserDetails() {\n clearUserDetailsDataFromLocalStorage();\n this.mutations.clearUserDetails();\n userDetailsPromise = null;\n }\n\n public async loadUserSkills() {\n const skills = await usersProvider.getSelfSkillsInfo();\n this.mutations.setUserSkillsInfo(skills);\n }\n\n public async loadUserReportingManagerStatus() {\n const isReportingManager = await usersProvider.isReportingManager();\n this.mutations.setUserReportingManagerStatus(isReportingManager);\n cacheUserReportingManagerStatus(isReportingManager);\n }\n\n public async saveUserSkills(skills: AssignableSkills) {\n if (\n xorBy(this.state.ownedSkills || [], skills.ownedSkills, 'unique_id').length ||\n xorBy(this.state.wantedSkills || [], skills.wantedSkills, 'unique_id').length\n ) {\n await usersProvider.setSelfSkillsInfo([\n ...skills.ownedSkills.map(skill => ({ ...skill, origin: SkillOrigin.OwnedSkills })),\n ...skills.wantedSkills.map(skill => ({ ...skill, origin: SkillOrigin.WantedSkills })),\n ]);\n this.mutations.updateUserSkills(skills);\n }\n\n if (!this.state.skillsSetupCompleted) {\n await usersProvider.completeSkillsSetup();\n this.mutations.setSkillsSetupCompletion(true);\n }\n }\n}\n\nclass StoreMutations extends Mutations {\n public setUserReportingManagerStatus(isReportingManager: boolean) {\n this.state.isReportingManager = isReportingManager;\n }\n\n public setUserProfile(data: UserProfile) {\n this.state.authUserProfile = data;\n }\n\n public setAppInsightData(data: { userId: number; platformId: number }) {\n this.state.appInsightsPlatformData = data;\n }\n\n public clearUserDetails() {\n this.state.authUserProfile = null;\n this.state.ownedSkills = null;\n this.state.businessTitleSkills = null;\n this.state.wantedSkills = null;\n this.state.skillsSetupCompleted = null;\n this.state.appInsightsPlatformData = null;\n }\n\n public setUserSkillsInfo(info: UserInfoResponse) {\n this.state.skillsSetupCompleted = info.setup_completed;\n this.state.ownedSkills = info.skills.filter(skill => skill.origin === UserSkillOrigin.OwnedSkills);\n this.state.businessTitleSkills = info.skills.filter(skill => skill.origin === UserSkillOrigin.BusinessTitle);\n this.state.wantedSkills = info.skills.filter(skill => skill.origin === UserSkillOrigin.WantedSkills);\n }\n\n public updateUserSkills(skills: AssignableSkills) {\n this.state.ownedSkills = [...skills.ownedSkills];\n this.state.wantedSkills = [...skills.wantedSkills];\n }\n\n public setSkillsSetupCompletion(isCompleted: boolean) {\n this.state.skillsSetupCompleted = isCompleted;\n }\n}\n\nconst userStore = new Module({\n state: State,\n getters: StoreGetters,\n actions: StoreActions,\n mutations: StoreMutations,\n});\n\nexport const useUserProfileDetailsStore = createComposable(userStore);\n\nexport const userProfileDetailsStoreMapper = createMapper(userStore);\n\nexport const UserProfileDetailsStoreMixin = Vue.extend({\n computed: {\n ...userProfileDetailsStoreMapper.mapState([\n 'authUserProfile',\n 'appInsightsPlatformData',\n 'skillsSetupCompleted',\n 'isReportingManager',\n ]),\n ...userProfileDetailsStoreMapper.mapGetters(['isAuthUserAdmin']),\n },\n methods: {\n ...userProfileDetailsStoreMapper.mapActions([\n 'loadUserProfile',\n 'forceReloadUserProfile',\n 'clearUserDetails',\n 'loadUserSkills',\n ]),\n },\n});\n\nexport const UserSkillsStoreMixin = Vue.extend({\n computed: {\n ...userProfileDetailsStoreMapper.mapState(['ownedSkills', 'businessTitleSkills', 'wantedSkills']),\n ...userProfileDetailsStoreMapper.mapGetters(['userSkills']),\n },\n});\n\nexport const SelfSkillsStoreMixin = Vue.extend({\n computed: {\n ...userProfileDetailsStoreMapper.mapState(['ownedSkills', 'businessTitleSkills', 'wantedSkills']),\n },\n});\n\nexport const UserDetailsStoreServiceFactory = createStoreServiceFactory({\n ...userProfileDetailsStoreMapper.mapState(['authUserProfile', 'appInsightsPlatformData']),\n ...userProfileDetailsStoreMapper.mapActions(['loadUserProfile', 'forceReloadUserProfile', 'clearUserDetails']),\n});\n\nexport type UserDetailsStoreService = ReturnType;\n\nexport default userStore;\n","import { TranslationKeys } from '@/translations';\n\nexport const IMPORT_TOPICS_STORAGE_KEY = 'import-course-topics';\n\nexport type LanguageInfo = {\n key: string;\n value: TranslationKeys;\n additionalKeys?: string[];\n};\n\nexport const languagesMapped = [\n {\n key: 'ar',\n value: 'spa.courses-admin.content-store.filters.language.arabic',\n },\n {\n key: 'zh',\n value: 'spa.courses-admin.content-store.filters.language.chinese',\n },\n {\n key: 'hr',\n value: 'spa.courses-admin.content-store.filters.language.croatian',\n },\n {\n key: 'cs',\n value: 'spa.courses-admin.content-store.filters.language.czech',\n },\n {\n key: 'da',\n value: 'spa.courses-admin.content-store.filters.language.danish',\n },\n {\n key: 'nl',\n value: 'spa.courses-admin.content-store.filters.language.dutch',\n },\n {\n key: 'en',\n additionalKeys: ['English', 'UK'],\n value: 'spa.courses-admin.content-store.filters.language.english',\n },\n {\n key: 'fi',\n value: 'spa.courses-admin.content-store.filters.language.finnish',\n },\n {\n key: 'fr',\n value: 'spa.courses-admin.content-store.filters.language.french',\n },\n {\n key: 'fr-ca',\n value: 'spa.courses-admin.content-store.filters.language.french-canada',\n },\n {\n key: 'de',\n additionalKeys: ['German', 'De'],\n value: 'spa.courses-admin.content-store.filters.language.german',\n },\n {\n key: 'el',\n value: 'spa.courses-admin.content-store.filters.language.greek',\n },\n {\n key: 'hi',\n value: 'spa.courses-admin.content-store.filters.language.hindi',\n },\n {\n key: 'hu',\n value: 'spa.courses-admin.content-store.filters.language.hungarian',\n },\n {\n key: 'ms',\n value: 'spa.courses-admin.content-store.filters.language.malaysian',\n },\n {\n key: 'nb',\n value: 'spa.courses-admin.content-store.filters.language.norwegian',\n },\n {\n key: 'id',\n value: 'spa.courses-admin.content-store.filters.language.indonesian',\n },\n {\n key: 'it',\n value: 'spa.courses-admin.content-store.filters.language.italian',\n },\n {\n key: 'ja',\n value: 'spa.courses-admin.content-store.filters.language.japanese',\n },\n {\n key: 'ko',\n value: 'spa.courses-admin.content-store.filters.language.korean',\n },\n {\n key: 'pl',\n value: 'spa.courses-admin.content-store.filters.language.polish',\n },\n {\n key: 'pt',\n value: 'spa.courses-admin.content-store.filters.language.portuguese',\n },\n {\n key: 'pt-br',\n value: 'spa.courses-admin.content-store.filters.language.portuguese-brazil',\n },\n {\n key: 'ro',\n value: 'spa.courses-admin.content-store.filters.language.romanian',\n },\n {\n key: 'ru',\n value: 'spa.courses-admin.content-store.filters.language.russian',\n },\n {\n key: 'sk',\n value: 'spa.courses-admin.content-store.filters.language.slovak',\n },\n {\n key: 'es',\n additionalKeys: ['es-es'],\n value: 'spa.courses-admin.content-store.filters.language.spanish',\n },\n {\n key: 'es-do',\n value: 'spa.courses-admin.content-store.filters.language.spanish-dominican-republic',\n },\n {\n key: 'sv',\n value: 'spa.courses-admin.content-store.filters.language.swedish',\n },\n {\n key: 'th',\n value: 'spa.courses-admin.content-store.filters.language.thai',\n },\n {\n key: 'tr',\n value: 'spa.courses-admin.content-store.filters.language.turkish',\n },\n {\n key: 'vi',\n value: 'spa.courses-admin.content-store.filters.language.vietnamese',\n },\n] as LanguageInfo[];\n\ntype SortField = 'created' | 'popularity' | 'relevance' | 'title';\n\ntype SortOption = {\n key: SortField;\n type: 'number' | 'text';\n title: TranslationKeys;\n};\n\nexport type Sorting = {\n key: SortField;\n ascending: boolean;\n};\n\nexport const sortingOptions: SortOption[] = [\n {\n key: 'created',\n type: 'number',\n title: 'spa.courses-admin.content-store.grid.import.modal.content.sorting.created',\n },\n {\n key: 'popularity',\n type: 'number',\n title: 'spa.courses-admin.content-store.grid.import.modal.content.sorting.popularity',\n },\n {\n key: 'relevance',\n type: 'number',\n title: 'spa.courses-admin.content-store.grid.import.modal.content.sorting.relevance',\n },\n {\n key: 'title',\n type: 'text',\n title: 'spa.courses-admin.content-store.grid.import.modal.content.sorting.title',\n },\n];\n","import { authorizeClient } from '@/api/http-client';\nimport {\n Go1FacetType,\n Go1SubscriptionInfo,\n Go1Type,\n LearningObjectsApiFactory,\n PlanApiFactory,\n PremiumLearningObjectsApiFactory,\n} from '@eloomi/eloomi-learning-persona-client/2.0';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\nimport { languagesMapped } from '@/content-store/constants';\n\nexport type { Go1LearningObject, Go1Type } from '@eloomi/eloomi-learning-persona-client/2.0';\n\nconst apiClient = authorizeClient(LearningObjectsApiFactory);\nconst premiumApiClient = authorizeClient(PremiumLearningObjectsApiFactory);\nconst planApiClient = authorizeClient(PlanApiFactory);\n\nexport interface GetLearningObjectsParams {\n page?: number;\n pageSize?: number;\n durationMin?: Array;\n durationMax?: Array;\n type?: Go1Type[];\n topics?: string[];\n keyword?: string;\n language?: string[];\n provider?: string[];\n sort?: { ascending: boolean; key: string } | null;\n}\n\nconst DEFAULT_PARAMS: GetLearningObjectsParams = {\n page: 1,\n pageSize: 12,\n};\n\nexport function getSubscriptionInfo(): Promise {\n return planApiClient.getGo1SubscriptionInfo().then(extractAxiosData);\n}\n\nexport function getLearningObjects(isPremium: boolean | undefined, params: GetLearningObjectsParams = DEFAULT_PARAMS) {\n let maxDuration: number[] | undefined = undefined;\n let minDuration: number[] | undefined = undefined;\n\n if (params.durationMin && params.durationMin.length > 0) {\n minDuration = [Math.min(...params.durationMin)];\n }\n\n if (params.durationMax && params.durationMax[params.durationMax.length - 1] !== undefined) {\n maxDuration = [Math.max(...params.durationMax)];\n }\n\n let sortBy = params.keyword ? 'relevance:desc,popularity:desc' : 'popularity:desc';\n if (params.sort) {\n sortBy = params.sort?.key + (params.sort?.ascending === false ? ':desc' : '');\n }\n\n const apiMethod = isPremium ? premiumApiClient.getLearningObjects : apiClient.getLearningObjects;\n\n const language = params.language\n ?.map(lang => {\n const info = languagesMapped.find(l => l.key === lang);\n if (info?.additionalKeys) {\n return [lang, ...info.additionalKeys];\n }\n return lang;\n })\n .flat();\n\n const provider = params.provider?.join(',');\n\n return apiMethod(\n params.page ?? 1,\n params.pageSize ?? 12,\n undefined,\n undefined,\n minDuration,\n maxDuration,\n undefined,\n undefined,\n undefined,\n [Go1FacetType.Language, Go1FacetType.Topics, Go1FacetType.Instance],\n params.keyword,\n language,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n provider,\n sortBy,\n undefined,\n undefined,\n undefined,\n params.type,\n params.topics\n ).then(extractAxiosData);\n}\n\nexport function importLearningObjects(ids, needToImportTopics: boolean) {\n return premiumApiClient\n .bulkImportLearningObjects(needToImportTopics, { learning_object_ids: ids })\n .then(extractAxiosData);\n}\n\nexport function checkStatus(id: string) {\n return premiumApiClient.learningObjectsImportStatus(id).then(extractAxiosData);\n}\n\nexport async function getLearningObjectDetails(isPremium: boolean | undefined, id: number) {\n const apiMethod = isPremium ? premiumApiClient.getLearningObjectDetails : apiClient.getLearningObjectDetails;\n return await apiMethod(id).then(extractAxiosData);\n}\n\nexport async function importLearningObject(id: number, importTopics = false) {\n return await premiumApiClient.importLearningObject(id, importTopics).then(extractAxiosData);\n}\n\nexport async function getLearningObjectPreview(isPremium: boolean | undefined, id: number) {\n const apiMethod = isPremium ? premiumApiClient.getLearningObjectPreview : apiClient.getLearningObjectPreview;\n return await apiMethod(id).then(extractAxiosData);\n}\n\nexport function getLearningObjectTopics(isPremium: boolean | undefined) {\n const apiMethod = isPremium ? premiumApiClient.getLearningObjectTopics : apiClient.getLearningObjectTopics;\n return apiMethod().then(extractAxiosData);\n}\n\nexport function getLearningObjectProviders(isPremium: boolean | undefined) {\n const apiMethod = isPremium ? premiumApiClient.getLearningObjectProviders : apiClient.getLearningObjectProviders;\n return apiMethod().then(extractAxiosData);\n}\n","import { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\n\nimport { mobileIsUnsupportedFlag } from '@/common/services/mobile-fallback';\nimport { Permissions } from '@/permissions';\n\nimport baseStore from '@/main/baseStore';\n\nconst contentStoreModal = () => import('@/content-store/components/modal/ContentStoreModal.vue');\nconst contentStoreCourseDetailsPage = () => import('@/content-store/pages/ContentStoreCourseDetailsPage.vue');\n\ninterface CreateContentStoreRouteArgs {\n contentStoreRouteName: string;\n contentStoreItemRouteName: string;\n showNavigationSidebar?: boolean;\n}\nexport enum ContentStoreRouteType {\n CONTENT_STORE,\n CONTENT_STORE_ITEM,\n}\nconst createContentStoreRoute = ({\n contentStoreRouteName,\n contentStoreItemRouteName,\n showNavigationSidebar,\n}: CreateContentStoreRouteArgs): RouteConfig => ({\n path: 'content-store',\n name: contentStoreRouteName,\n component: contentStoreModal,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | ContentStore`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: showNavigationSidebar || false,\n requiredPermissions: [Permissions.AdminContentStore],\n type: ContentStoreRouteType.CONTENT_STORE,\n },\n children: [\n {\n path: 'item/:id',\n name: contentStoreItemRouteName,\n component: contentStoreCourseDetailsPage,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | ContentStore Course`,\n ...mobileIsUnsupportedFlag,\n showNavigationSidebar: showNavigationSidebar || false,\n requiredPermissions: [Permissions.AdminCourses],\n type: ContentStoreRouteType.CONTENT_STORE_ITEM,\n },\n },\n ],\n beforeEnter: (_from, _to, next) => {\n baseStore.dispatch('contentStore/getSubscriptionInfo').then(() => next());\n },\n});\n\nexport default createContentStoreRoute;\n","import { Module, Actions, Mutations, Getters, createMapper, createComposable } from 'vuex-smart-module';\nimport { getSubscriptionInfo } from '../providers';\nimport { Vue } from 'vue-property-decorator';\n\nclass State {\n public isPremium: boolean | undefined;\n}\n\nclass StoreMutations extends Mutations {\n public setIsPremium(isPremium: boolean) {\n this.state.isPremium = isPremium;\n }\n}\n\nexport class StoreActions extends Actions, StoreMutations, StoreActions> {\n public async getSubscriptionInfo(): Promise {\n if (this.state.isPremium !== undefined) {\n return this.state.isPremium;\n }\n const subscriptionInfo = await getSubscriptionInfo();\n const isPremium = subscriptionInfo.is_premium ?? false;\n this.mutations.setIsPremium(isPremium);\n\n return isPremium;\n }\n}\n\nconst storeModule = new Module({\n state: State,\n mutations: StoreMutations,\n actions: StoreActions,\n});\n\nexport const useContentStore = createComposable(storeModule);\n\nexport const contentStoreMapper = createMapper(storeModule);\nexport const ContentStoreMappedStore = Vue.extend({\n computed: {\n ...contentStoreMapper.mapState(['isPremium']),\n },\n methods: contentStoreMapper.mapActions(['getSubscriptionInfo']),\n});\n\nexport default storeModule;\n","export enum FilterDropdownMode {\n FilterSelect,\n Duration,\n Skill,\n Type,\n Topic,\n}\n\nexport enum DurationFilterType {\n Any,\n D_0_15,\n D_15_30,\n D_30_plus,\n}\n\nexport enum TypeFilterType {\n ShowAll,\n Deadline,\n Required,\n Completed,\n}\n\nexport interface DurationFilter {\n label: string;\n icon: string;\n type: DurationFilterType;\n from?: number;\n to?: number;\n}\n\nexport interface TypeFilter {\n label: string;\n required?: boolean;\n type: TypeFilterType;\n}\n\nexport const availableDurationFilterTypes: readonly DurationFilter[] = Object.freeze([\n {\n label: 'spa.label.show-all-text',\n icon: 'timer',\n type: DurationFilterType.Any,\n },\n {\n label: 'spa.label.0-15-minutes',\n icon: 'timer',\n type: DurationFilterType.D_0_15,\n from: 0,\n to: 15 * 60,\n },\n {\n label: 'spa.label.15-30-minutes',\n icon: 'timer',\n type: DurationFilterType.D_15_30,\n from: 15 * 60,\n to: 30 * 60,\n },\n {\n label: 'spa.label.more-than-30-minutes',\n icon: 'timer',\n type: DurationFilterType.D_30_plus,\n from: 30 * 60,\n },\n]);\n\nexport const availableTypeFilterTypes: readonly TypeFilter[] = Object.freeze([\n {\n label: 'spa.label.completed',\n type: TypeFilterType.Completed,\n },\n {\n label: 'spa.label.required',\n type: TypeFilterType.Required,\n },\n {\n label: 'spa.label.deadline',\n type: TypeFilterType.Deadline,\n },\n]);\n\nexport enum FilterProperties {\n titleProperty = 'Title',\n descriptionProperty = 'Description',\n durationProperty = 'Duration',\n requiredProperty = 'is_required',\n deadlineProperty = 'deadline_date',\n completedProperty = 'is_completed',\n topicId = 'topic_id',\n skillId = 'skill_ids',\n topicsProperty = 'Topics',\n categoryId = 'category_id',\n}\n","import { CoreQuery } from '@/common/services/core-query';\nimport { EntitiesList } from '@/common/models';\nimport { authorizeClient, httpClientCoreQuery } from '@/api/http-client';\nimport { ICoursePlayerCourse, ICoursePlayerPage } from '@/courses/models';\nimport { DeviceType, PlayerCourseApiFactory } from '@eloomi/eloomi-learning-persona-client/1.0';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\n\nconst playerCourseApi = authorizeClient(PlayerCourseApiFactory);\n\nexport function getPageDetails(query: CoreQuery, { courseId, chapterId, pageId }): Promise {\n const q = query.path([\n EntitiesList.LEARNING,\n EntitiesList.PERSONA,\n EntitiesList.PLAYER,\n EntitiesList.COURSE,\n courseId,\n EntitiesList.CHAPTER,\n chapterId,\n EntitiesList.PAGE,\n pageId,\n ]);\n\n return httpClientCoreQuery.get(q).then(({ data }) => data);\n}\n\nexport function getCourse(courseId: number) {\n return playerCourseApi.getCourseWithStructure(courseId).then(extractAxiosData) as Promise;\n}\n\nexport function completePage(query: CoreQuery, { courseId, chapterId, pageId }): Promise {\n const q = query.path([\n EntitiesList.LEARNING,\n EntitiesList.PERSONA,\n EntitiesList.PLAYER,\n EntitiesList.COURSE,\n courseId,\n EntitiesList.CHAPTER,\n chapterId,\n EntitiesList.PAGE,\n pageId,\n EntitiesList.COMPLETE,\n ]);\n\n return httpClientCoreQuery.post(q).then(({ data }) => data);\n}\n\nexport function incrementCourseViews(\n query: CoreQuery,\n { courseId, userId }: { courseId: number; userId: number }\n): Promise {\n const q = query.path([\n EntitiesList.LEARNING,\n EntitiesList.PERSONA,\n EntitiesList.PLAYER,\n EntitiesList.COURSE,\n courseId,\n EntitiesList.VIEWS,\n EntitiesList.USER,\n userId,\n EntitiesList.INCREMENT,\n ]);\n\n return httpClientCoreQuery.post(q).then(data => data);\n}\n\nexport function trackActivity(payload: {\n courseId: number | string;\n chapterId: number | string;\n pageId: number | string;\n deviceType?: DeviceType | null;\n}): Promise {\n const query = new CoreQuery();\n\n const q = query.path([\n EntitiesList.LEARNING,\n EntitiesList.PERSONA,\n EntitiesList.PLAYER,\n EntitiesList.COURSE,\n payload.courseId,\n EntitiesList.CHAPTER,\n payload.chapterId,\n EntitiesList.PAGE,\n payload.pageId,\n EntitiesList.TRACK,\n ]);\n\n return httpClientCoreQuery\n .post(q, {\n device_type: payload.deviceType,\n })\n .then(data => data);\n}\n","import { authorizeClient } from '@/api/http-client';\nimport { AssignedCourseUserCompletionStatus } from '@/reporting/models';\nimport { UsersReportingApiFactory } from '@eloomi/eloomi-learning-persona-client/1.0';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\n\nconst usersReportingClient = authorizeClient(UsersReportingApiFactory);\n\ninterface PersonalReportOptions {\n userId: number;\n filters?: string;\n sorts?: string;\n page: number;\n pageSize: number;\n}\n\nexport function getPersonalCoursesReport(options: PersonalReportOptions) {\n return usersReportingClient\n .getUserCoursesReport(options.userId, options.filters, options.sorts, options.page, options.pageSize)\n .then(extractAxiosData);\n}\n\nexport interface UserReportCourse {\n title: string;\n image: string;\n duration: number;\n deadline: string | null;\n status: AssignedCourseUserCompletionStatus;\n time_spent: number;\n started_at: string;\n completed_at: string;\n views: number;\n is_required: boolean;\n id: number;\n}\n","import { PlaylistApiFactory, PlaylistStepApiFactory } from '@eloomi/eloomi-learning-persona-client/1.0';\nimport { authorizeClient } from '@/api/http-client';\n\nconst PlaylistApiClient = authorizeClient(PlaylistApiFactory);\nconst PlaylistStepApiClient = authorizeClient(PlaylistStepApiFactory);\n\nexport function getPlaylist(playlistId: number) {\n return PlaylistApiClient.getUserPlaylist(playlistId).then(({ data }) => data);\n}\n\nexport function takePlaylistStep(playlistId: number, playlistStepId: number) {\n return PlaylistStepApiClient.takePlaylistStep(playlistId, playlistStepId).then(({ data }) => data);\n}\n","import { UserApiFactory } from '@eloomi/eloomi-learning-persona-client/1.0';\nimport { authorizeClient } from '@/api/http-client';\nimport { extractAxiosData } from '@/common/services/extractAxiosData';\n\nconst userClient = authorizeClient(UserApiFactory);\n\nexport function getUserCoursesSkills() {\n return userClient.getUserCourseSkills().then(extractAxiosData);\n}\n","import { httpClientCoreQuery } from '@/api/http-client';\nimport { TablePaginatedData } from '@/common/components/table/v2/interfaces';\nimport { EntitiesList } from '@/common/models';\nimport { FluentFilterCollection, Operator } from '@/common/services';\nimport { CoreQuery } from '@/common/services/core-query';\nimport { UserTopic } from '../models';\nimport { FilterProperties } from '../pages/all-courses-overview/overview-filters';\n\n// TODO remove and refactor its usages\nexport function getUserTopics(topicIds?: number[]) {\n const filter = new FluentFilterCollection();\n if (topicIds) {\n const selectedTopicsId = topicIds?.join('|');\n selectedTopicsId && filter.where(FilterProperties.topicId).filter(Operator.IsEqualTo, selectedTopicsId);\n }\n\n const q = new CoreQuery()\n .entity([EntitiesList.LEARNING, EntitiesList.PERSONA, EntitiesList.COURSE, EntitiesList.TOPIC])\n .param({ page_size: 150 })\n .filters(filter);\n\n return httpClientCoreQuery.get>(q).then(({ data }) => data);\n}\n","export const enum CoursesRouteNames {\n ALL_COURSES_OVERVIEW = 'all_courses_overview',\n COURSES_DASHBOARD = 'course_dashboard',\n COURSE_OVERVIEW = 'course_overview',\n COURSE_PLAYER = 'course_player',\n COURSE_SCORM_PLAYER = 'course_scorm_player',\n PLAYLIST_OVERVIEW = 'playlist_overview',\n}\n","import { Actions } from 'vuex-smart-module';\n\nimport { UserCoursesGetters } from './getters';\nimport { UserCoursesMutations } from './mutations';\nimport { CoursePlayerState } from './state';\n\nimport { completePage, getCourse, getPageDetails, incrementCourseViews } from '@/courses/providers';\nimport { getCourseSkills } from '@/admin/skills/providers/course-skills';\nimport { SkillResponse } from '@eloomi/eloomi-learning-persona-client/1.0';\n\nexport class UserCoursesActions extends Actions<\n CoursePlayerState,\n UserCoursesGetters,\n UserCoursesMutations,\n UserCoursesActions\n> {\n public async loadActiveCourse(payload: { courseId: number; getSkills?: boolean }) {\n const emptySkills = Promise.resolve([]);\n\n const requests = [\n getCourse(payload.courseId),\n payload.getSkills ? getCourseSkills(payload.courseId).catch(() => emptySkills) : emptySkills,\n ] as const;\n\n const [course, skills] = await Promise.all(requests);\n\n this.mutations.setCourse(course);\n this.mutations.setCourseSkills(skills);\n }\n\n public async setActivePageAndChapter(payload: {\n chapterId: number | null;\n pageId: number | null;\n courseId?: number;\n }) {\n this.mutations.setActiveChapterId(payload.chapterId);\n this.mutations.setActivePageId(payload.pageId);\n if (payload.pageId && payload.chapterId && (this.state.course || payload.courseId)) {\n this.mutations.setCoursePageLoading(true);\n if (this.state.currentPageDetails?.id !== payload.pageId) {\n this.mutations.setPageDetails(null);\n const pageDetails = await getPageDetails(this.state.query.clone(), {\n courseId: this.state.course?.id || payload.courseId,\n chapterId: payload.chapterId,\n pageId: payload.pageId,\n });\n\n this.mutations.setPageDetails(pageDetails);\n this.mutations.setCoursePageLoading(false);\n }\n }\n }\n\n public async reloadPage() {\n const { pageId, chapterId, course } = this.state;\n const pageDetails = await getPageDetails(this.state.query.clone(), {\n courseId: course?.id,\n chapterId,\n pageId,\n });\n\n this.mutations.setPageDetails(pageDetails);\n }\n\n public resetActiveChapterAndPage() {\n this.mutations.setPageDetails(null);\n this.mutations.setActiveChapterId(null);\n this.mutations.setActivePageId(null);\n }\n\n public async markActivePageAsCompleted() {\n await completePage(this.state.query.clone(), {\n courseId: this.state.course!.id,\n chapterId: this.state.chapterId,\n pageId: this.state.pageId,\n });\n\n return this.mutations.markActivePageAsCompleted();\n }\n\n public async incrementPlayerCourseViews({ courseId, userId }: { courseId: number; userId: number }) {\n await incrementCourseViews(this.state.query.clone(), {\n courseId,\n userId,\n });\n }\n}\n","import { Getters } from 'vuex-smart-module';\n\nimport { CoursePlayerState } from './state';\nimport { ICoursePlayerChapter, ICoursePlayerPage } from '@/courses/models';\n\nexport class UserCoursesGetters extends Getters {\n public get activeChapter(): ICoursePlayerChapter | null {\n return this.getters.getChapter(this.state.chapterId);\n }\n\n public get activePage(): ICoursePlayerPage | null {\n return this.getters.activeChapter?.pages.find(page => page.id === this.state.pageId) || null;\n }\n\n public get isCurrentPageCompleted(): boolean {\n return this.getters.activePage?.is_completed || false;\n }\n\n public get isCoursePageLoaded() {\n return Boolean(this.state.currentPageDetails) && this.state.currentPageDetails?.id === this.state.pageId;\n }\n\n public getChapter(chapterId): ICoursePlayerChapter | null {\n return this.state.course?.chapters.find(chapter => chapter.id === chapterId) || null;\n }\n\n public activeCourseHasChapterWithPage(chapterId, pageId): boolean {\n const chapter = this.getters.getChapter(chapterId);\n\n return chapter?.pages.some(page => page.id === pageId) || false;\n }\n\n public get isOnHomePage() {\n const ids: number | null = this.state.chapterId || this.state.pageId;\n return Number.isNaN(ids) || ids == null;\n }\n\n public get currentPageOrder(): number {\n const activeChapter = this.getters.activeChapter;\n\n if (activeChapter) {\n return activeChapter.pages.findIndex(page => {\n return page.id === this.getters.activePage?.id;\n });\n }\n\n return 0;\n }\n\n public get firstUncompletedPageAndChapter(): { chapter?: ICoursePlayerChapter; page?: ICoursePlayerPage } {\n const notCompletedChapter =\n this.state.course?.chapters.find(chapter => chapter.pages.some(page => !page.is_completed)) ||\n this.state.course?.chapters[0];\n\n const notCompletePage =\n notCompletedChapter?.pages.find(page => !page.is_completed) || notCompletedChapter?.pages[0];\n\n return {\n chapter: notCompletedChapter,\n page: notCompletePage,\n };\n }\n\n public get isEmptyCourse(): boolean {\n if (!this.state.course) {\n return false;\n }\n\n if (this.state.course.course_type === 'scorm' || this.state.course.course_type === 'go1Scorm') return false;\n\n return !this.state.course.chapters.length || !this.state.course.chapters[0].pages.length;\n }\n}\n","import { Mutations } from 'vuex-smart-module';\nimport { CoursePlayerState } from '@/courses/store/course-player/state';\nimport { ICoursePlayerCourse, ICoursePlayerPage } from '@/courses/models';\nimport { CoreQuery } from '@/common/services/core-query';\nimport { SkillResponse } from '@eloomi/eloomi-learning-persona-client/1.0';\n\nexport class UserCoursesMutations extends Mutations {\n public setCourse(course: ICoursePlayerCourse) {\n this.state.course = course;\n }\n\n public setCourseSkills(courseSkills: SkillResponse[]) {\n this.state.courseSkills = courseSkills;\n }\n\n public setPageDetails(pageDetails: ICoursePlayerPage | null) {\n this.state.currentPageDetails = pageDetails;\n }\n\n public setCoursePageLoading(value: boolean) {\n this.state.isCoursePageLoading = value;\n }\n\n public reset() {\n this.state.course = null;\n this.state.currentPageDetails = null;\n this.state.chapterId = null;\n this.state.pageId = null;\n this.state.query = new CoreQuery();\n }\n\n public setActiveChapterId(chapterId: number | null) {\n this.state.chapterId = chapterId;\n }\n\n public setActivePageId(pageId: number | null) {\n this.state.pageId = pageId;\n }\n\n public markActivePageAsCompleted() {\n const activeChapter = this.state.course?.chapters.find(chapter => chapter.id === this.state.chapterId) || null;\n const activePage = activeChapter?.pages.find(page => page.id === this.state.pageId) || null;\n\n if (activePage) {\n activePage.is_completed = true;\n }\n }\n\n public setSidebarOpened(state: boolean) {\n this.state.sidebarOpened = state;\n }\n}\n","import { Module, createMapper } from 'vuex-smart-module';\n\nimport { UserCoursesActions } from './actions';\nimport { UserCoursesGetters } from './getters';\nimport { UserCoursesMutations } from './mutations';\nimport { CoursePlayerState } from './state';\n\nconst CoursePlayerStore = new Module({\n state: CoursePlayerState,\n getters: UserCoursesGetters,\n mutations: UserCoursesMutations,\n actions: UserCoursesActions,\n});\n\nexport const CoursePlayerStoreMapper = createMapper(CoursePlayerStore);\nexport default CoursePlayerStore;\n","import { ICoursePlayerCourse, ICoursePlayerPage } from '@/courses/models';\nimport { CoreQuery } from '@/common/services/core-query';\nimport { SkillResponse } from '@eloomi/eloomi-learning-persona-client/1.0';\n\nexport class CoursePlayerState {\n public query: CoreQuery = new CoreQuery();\n public course: ICoursePlayerCourse | null = null;\n public courseSkills: SkillResponse[] | null = null;\n public chapterId: number | null = null;\n public pageId: number | null = null;\n public currentPageDetails: ICoursePlayerPage | null = null;\n public sidebarOpened = true;\n public isCoursePageLoading = false;\n}\n","import { Actions } from 'vuex-smart-module';\n\nimport { UserCoursesGetters } from './getters';\nimport { UserCoursesMutations } from './mutations';\nimport { UserCoursesState } from './state';\n\nimport { getPlayerCourse } from '@/api/providers/course-player.provider';\n\nexport class UserCoursesActions extends Actions<\n UserCoursesState,\n UserCoursesGetters,\n UserCoursesMutations,\n UserCoursesActions\n> {\n public async loadActiveCourse(payload: { courseId: number }) {\n console.debug('Loading active course');\n const course = await getPlayerCourse(payload.courseId);\n this.mutations.setActiveCourse(course);\n }\n\n public setActivePageAndChapter(payload: { activeChapterId: number; activePageId: number }) {\n this.mutations.setActiveChapterId(payload.activeChapterId);\n this.mutations.setActivePageId(payload.activePageId);\n }\n\n public async markActivePageAsCompleted() {\n return this.mutations.markActivePageAsCompleted();\n }\n}\n","import { Getters } from 'vuex-smart-module';\n\nimport { UserCoursesState } from './state';\n\nexport class UserCoursesGetters extends Getters {\n public get activeChapter() {\n if (this.state.activeCourse !== null) {\n return this.state.activeCourse.chapters.find(chapter => chapter.id === this.state.activeChapterId);\n }\n }\n\n public get activePage() {\n const currentChapter = this.getters.activeChapter;\n if (currentChapter !== undefined) {\n return currentChapter.pages.find(page => page.id === this.state.activePageId);\n }\n }\n\n public get isActivePageCompleted() {\n if (this.getters.activePage !== undefined) {\n return this.getters.activePage.is_completed;\n }\n }\n\n public getChapter(chapterId) {\n if (this.state.activeCourse !== null) {\n return this.state.activeCourse.chapters.find(chapter => chapter.id === chapterId);\n }\n }\n\n public activeCourseHasChapterWithPage(chapterId, pageId) {\n const chapter = this.getters.getChapter(chapterId);\n if (chapter !== undefined) {\n return chapter.pages.some(page => page.id === pageId);\n }\n return false;\n }\n\n public get getSelectedTopics() {\n return this.state.selectedTopics;\n }\n}\n","import { TopicLiteModel } from '@eloomi/eloomi-learning-persona-client/1.0';\nimport { Mutations } from 'vuex-smart-module';\n\nimport { CourseTopic, ICoursePlayerCourse, UserTopic } from '../models';\nimport { UserCoursesState } from './state';\nimport { SkillResponse } from '@eloomi/eloomi-learning-persona-client/1.0/models/skill-response';\n\nexport class UserCoursesMutations extends Mutations {\n public setActiveCourse(course: ICoursePlayerCourse) {\n this.state.activeCourse = course;\n }\n\n public unsetActiveCourse() {\n this.state.activeCourse = null;\n this.state.activeChapterId = null;\n this.state.activePageId = null;\n }\n\n public setActiveChapterId(chapterId: number) {\n this.state.activeChapterId = chapterId;\n }\n\n public setActivePageId(pageId: number) {\n this.state.activePageId = pageId;\n }\n\n public markActivePageAsCompleted() {\n const activeChapter = this.state.activeCourse?.chapters.find(\n chapter => chapter.id === this.state.activeChapterId\n );\n const activePage = activeChapter?.pages.find(page => page.id === this.state.activePageId);\n\n if (activePage !== undefined) {\n activePage.is_completed = true;\n }\n }\n\n public setSelectedCourseTopics(data: UserTopic[] | CourseTopic | TopicLiteModel) {\n if (Array.isArray(data)) {\n this.state.selectedTopics = data;\n } else {\n this.state.selectedTopics.push({\n topic_name: data.name,\n topic_id: data.id,\n assigned_courses_count: 0,\n assigned_playlists_count: 0,\n });\n }\n }\n\n public setSelectedCourseSkills(data: SkillResponse[]) {\n this.state.selectedSkills = data;\n }\n\n public removeTopicFilter(item: UserTopic) {\n this.state.selectedTopics = this.state.selectedTopics.filter(el => {\n return el.topic_id !== item.topic_id;\n });\n }\n\n public removeSkillFilter(item: SkillResponse) {\n this.state.selectedSkills = this.state.selectedSkills.filter(el => {\n return el.id !== item.id;\n });\n }\n\n public clearFilters() {\n this.state.selectedTopics = [];\n this.state.selectedSkills = [];\n }\n}\n","import { Module, createMapper, createComposable } from 'vuex-smart-module';\n\nimport { UserCoursesActions } from './actions';\nimport { UserCoursesGetters } from './getters';\nimport { UserCoursesMutations } from './mutations';\nimport { UserCoursesState } from './state';\n\nconst UserCoursesStore = new Module({\n state: UserCoursesState,\n getters: UserCoursesGetters,\n mutations: UserCoursesMutations,\n actions: UserCoursesActions,\n});\nexport const useUserCoursesStore = createComposable(UserCoursesStore);\nexport const userCoursesMapper = createMapper(UserCoursesStore);\nexport default UserCoursesStore;\n","import { ICoursePlayerCourse, UserTopic } from '../models';\nimport { SkillResponse } from '@eloomi/eloomi-learning-persona-client/1.0/models/skill-response';\n\nexport class UserCoursesState {\n public activeCourse: ICoursePlayerCourse | null = null;\n public activeChapterId: number | null = null;\n public activePageId: number | null = null;\n public selectedTopics: UserTopic[] = [];\n public selectedSkills: SkillResponse[] = [];\n}\n","import { TransFunction } from '@/translations/store';\nimport { UserDashboardCourse } from '@/courses/models';\nimport { PRIMARY_COLORS } from '@/common/constants/color-css-variables';\n\nexport function formatCourseDuration(duration: number, trans: TransFunction) {\n const allMinutes = Math.round(duration / 60);\n\n if (allMinutes >= 60) {\n const hours = Math.floor(allMinutes / 60);\n const minutes = Math.round(allMinutes % 60);\n\n return minutes > 0\n ? trans('spa.courses-card.duration.hours-minutes', {\n hours,\n minutes,\n })\n : trans('spa.courses-card.duration.hours', {\n hours,\n });\n } else {\n return trans('spa.courses-card.duration.minutes', { minutes: allMinutes });\n }\n}\n\nexport function highlightSearchedText(text: string, searchText: string) {\n const regexExpression = new RegExp(searchText, 'ig');\n const match = text.match(regexExpression);\n if (match) {\n const matchedExpression = match[0];\n return text.replace(\n regexExpression,\n `${matchedExpression}`\n );\n } else {\n return text;\n }\n}\n\nexport function highlightTitle(course: UserDashboardCourse, searchText: string) {\n return highlightSearchedText(course?.title, searchText);\n}\n\nexport function highlightDescription(course: UserDashboardCourse, searchText: string) {\n if (!course.description) {\n return;\n }\n const AVAILABLE_CHARS_NUMBER = 40;\n const SEARCH_TEXT_LENGTH = searchText.length;\n const REST_AVAILABLE_SPACE = Math.floor(AVAILABLE_CHARS_NUMBER - SEARCH_TEXT_LENGTH);\n const SEARCH_TEXT_INDEX = course.description.toLocaleLowerCase().indexOf(searchText.toLocaleLowerCase());\n const DESCRIPTION_LENGTH = course?.description.length;\n\n if (SEARCH_TEXT_INDEX < AVAILABLE_CHARS_NUMBER && DESCRIPTION_LENGTH < AVAILABLE_CHARS_NUMBER) {\n return highlightSearchedText(course.description, searchText);\n }\n\n if (SEARCH_TEXT_INDEX < AVAILABLE_CHARS_NUMBER && DESCRIPTION_LENGTH > AVAILABLE_CHARS_NUMBER) {\n return highlightSearchedText(course.description.slice(0, AVAILABLE_CHARS_NUMBER), searchText) + '...';\n }\n if (SEARCH_TEXT_INDEX > DESCRIPTION_LENGTH - AVAILABLE_CHARS_NUMBER) {\n return (\n '...' +\n highlightSearchedText(\n course.description.slice(DESCRIPTION_LENGTH - AVAILABLE_CHARS_NUMBER, DESCRIPTION_LENGTH),\n searchText\n )\n );\n }\n const startIndex =\n SEARCH_TEXT_INDEX - REST_AVAILABLE_SPACE / 2 < 0 ? 0 : SEARCH_TEXT_INDEX - REST_AVAILABLE_SPACE / 2;\n\n const text = course.description.slice(\n startIndex,\n SEARCH_TEXT_INDEX + SEARCH_TEXT_LENGTH + REST_AVAILABLE_SPACE / 2\n );\n return '...' + highlightSearchedText(text, searchText) + '...';\n}\n","import type { Store } from 'vuex';\nimport { ServiceTokens } from './tokens';\n\n/**\n * Create a Factory that will provide access to vuex smart module in a class-based service manner.\n *\n * Actually it relies on a dirty assumption that mapXxxx smart vuex functions\n * are bound to Vue Component instance $store field (and it's true).\n */\nexport function createStoreServiceFactory(\n properties: T\n): {\n (store: Store): T;\n readonly inject: readonly [typeof ServiceTokens['BaseStore']];\n} {\n function factory(store: Store) {\n return {\n $store: store,\n ...properties,\n };\n }\n factory.inject = [ServiceTokens.BaseStore] as const;\n return factory;\n}\n","export const ServiceTokens = Object.freeze({\n VueRouter: 'VueRouter',\n BaseStore: 'BaseStore',\n UserDetailsStoreService: 'UserDetailsStoreService',\n OpenInAppStoreService: 'OpenInAppStoreService',\n MobileModeStoreService: 'MobileModeStoreService',\n PlatformResolutionService: 'PlatformResolutionService',\n} as const);\n","import { getCurrentInstance } from 'vue';\nimport type { MainInjector } from '@/di/injector';\n\nexport function useInjector(): MainInjector {\n const vm = getCurrentInstance();\n if (!vm) {\n throw new Error('You must use this function within the \"setup()\" method');\n }\n\n return vm.proxy.$injector;\n}\n","export enum ApiAuthTypes {\n key = 'apikey',\n token = 'platform-token',\n hash = 'hash',\n}\n\nexport type enviromentType = 'staging' | 'production' | 'local';\n\ninterface Environment {\n isProduction: boolean;\n publicPath: string;\n apiBaseUrl: string;\n apiKey?: string;\n apiAuthMode: ApiAuthTypes;\n appBaseUrl?: string;\n applicationInsightsKey?: string;\n appName: string;\n fullstoryOrgId?: string;\n googleMapsApiKey?: string;\n type: enviromentType;\n segmentApiKey: string;\n chargebeeSite: string;\n sentryDsn: string | undefined;\n sentryOrganisation: string | undefined;\n sentryRelease: string | undefined;\n stagingRemoteUrl?: string;\n learningCdnUrl?: string;\n platformDomain?: string;\n sentryTraceSampleRate: number;\n platformHostContext: boolean;\n platformParentDomain: string;\n useIntercom: boolean;\n clientType?: string;\n clientVersion?: string;\n debugNamespaces?: string;\n}\n\nconst environment: Environment = {\n chargebeeSite: process.env.VUE_APP_CHARGEBEE_SITE ?? 'eloomi-eu',\n clientType: process.env.VUE_APP_CLIENT_TYPE,\n clientVersion: process.env.VUE_APP_CLIENT_VERSION,\n isProduction: process.env.NODE_ENV === 'production',\n publicPath: process.env.VUE_APP_PUBLIC_PATH || '/',\n apiBaseUrl: process.env.VUE_APP_API_URL as string,\n apiKey: process.env.VUE_APP_API_KEY,\n apiAuthMode: (process.env.VUE_APP_API_AUTH_TYPE as ApiAuthTypes) || ApiAuthTypes.key,\n appBaseUrl: process.env.VUE_APP_BASE_URL || process.env.STORYBOOK_BASE_URL,\n applicationInsightsKey: (process.env.VUE_APP_INSIGHTS_KEY as string) || undefined,\n appName: 'eloomi-spa-core',\n fullstoryOrgId: process.env.VUE_APP_FULLSTORY_ORG_ID,\n sentryDsn: process.env.VUE_APP_SENTRY_DSN,\n sentryRelease: process.env.VUE_APP_SENTRY_RELEASE,\n googleMapsApiKey: process.env.VUE_APP_GOOGLE_MAPS_API_KEY || process.env.STORYBOOK_GOOGLE_MAPS_API_KEY,\n type: process.env.VUE_APP_ENVIRONMENT_TYPE || 'local',\n segmentApiKey: process.env.VUE_APP_SEGMENT_API || '',\n stagingRemoteUrl: process.env.VUE_APP_STAGING_URL,\n learningCdnUrl: process.env.VUE_APP_LEARNING_CDN_URL,\n sentryOrganisation: 'eloomi',\n platformDomain: process.env.VUE_APP_PLATFORM_DOMAIN,\n platformHostContext: String(process.env?.VUE_APP_PLATFORM_HOST_CONTEXT).toLowerCase() !== 'false',\n platformParentDomain: process.env.VUE_APP_PLATFORM_PARENT_DOMAIN ?? '.eloomi.io',\n sentryTraceSampleRate: sentryTraceSampleRate(),\n useIntercom: String(process.env?.VUE_APP_INTERCOM_ENABLED).toLowerCase() !== 'false',\n debugNamespaces: process.env.VUE_APP_DEBUG_NAMESPACES || '',\n};\n\nfunction sentryTraceSampleRate() {\n if (!process.env.VUE_APP_SENTRY_TRACE_SAMPLE_RATE) {\n console.warn('SENTRY_TRACE_SAMPLE_RATE is not set but expected. Defaulting to 0.');\n return 0;\n }\n\n return parseFloat(process.env.VUE_APP_SENTRY_TRACE_SAMPLE_RATE);\n}\n\nexport default environment;\n","import Vue from 'vue';\nimport VueRouter from 'vue-router';\nimport { Store } from 'vuex';\nimport notificationStore from '@/common/components/toast/store';\nimport translationsStore from '@/translations/store';\nimport { EntityNotFoundEndpointError } from '@/authentication/services/errors';\nimport { DEFAULT_PAGE_LOCATION } from '@/authentication/services/locations';\n\nexport function handleEndpointError(router: VueRouter, store: Store) {\n Vue.config.errorHandler = async function (err) {\n if (err instanceof EntityNotFoundEndpointError) {\n await router.push(DEFAULT_PAGE_LOCATION);\n notificationStore.context(store).actions.showDelayedNotification({\n theme: 'warning',\n message: translationsStore.context(store).getters.trans('spa.navigation.sections.page-not-found'),\n duration: 3000,\n });\n }\n };\n}\n","import { EntityNotFoundEndpointError } from '@/authentication/services/errors';\n\nexport function throwNotFoundError(): never {\n throw new EntityNotFoundEndpointError();\n}\n","import { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { checkIfRouteAvailableByPlanFeatures } from '@/plan-features/routes';\nimport { CoursesRouteNames } from '@/courses/route-definitions';\n\nconst EVENT_OVERVIEW_PAGE = () => import('./pages/EventOverviewPage.vue');\n\nexport const enum EventsRoutesNames {\n EVENT_OVERVIEW = 'event_overview',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: `events/:event_id(\\\\d+)/overview`,\n name: EventsRoutesNames.EVENT_OVERVIEW,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Event`,\n defaultBackRoute: CoursesRouteNames.COURSES_DASHBOARD,\n },\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.EVENTS),\n component: EVENT_OVERVIEW_PAGE,\n },\n];\n\nexport default routes;\n","import environment from './environment';\nimport * as FullStory from '@fullstory/browser';\n\nlet isInitialized = false;\nexport function initializeFullstory() {\n if (isInitialized) return;\n\n if (environment.fullstoryOrgId) {\n FullStory.init({ orgId: environment.fullstoryOrgId as string });\n }\n\n isInitialized = true;\n}\n","export enum AppFeaturesList {\n API_TOKENS = 'api-tokens',\n BROWSER_NOTIFICATIONS = 'browser-notifications',\n CHARGEBEE_PORTAL = 'chargebee-portal',\n CONTENT_STORE_BANNER = 'content-marketplace-banner',\n CONTENT_STORE_POC = 'content-marketplace-poc',\n EVENTS_MANAGEMENT = 'events-management',\n FREE_TRIAL_NOTIFICATION_LOGIC_REFACTOR = 'free-trial-notification-logic-refactor',\n GROUPS_REPORTING_MANAGER = 'groups-reporting-manager',\n LANGUAGE_SELECTOR = 'language-selector',\n MERGE_INTEGRATION = 'merge-integration',\n NOTIFICATIONS = 'notifications',\n PLATFORM_LOGIN = 'platform-login',\n SSO_ON_ANDROID = 'sso-on-android',\n QUIZ_PAGE_SETTINGS = 'quiz-page-settings',\n MERGE_INTEGRATION_SUPPORTED_PLATFORMS = 'merge-integration-supported-platforms',\n COURSE_BUILDER_REWORK = 'course-builder-rework',\n}\n","import { FeatureTogglesMap } from '@/launch-darkly/models';\n\nconst CACHE_KEY = 'feature-toggles';\n\nexport function getCachedFeaturesToggleData() {\n const cachedData = localStorage.getItem(CACHE_KEY);\n\n return cachedData !== null ? (JSON.parse(cachedData) as FeatureTogglesMap) : null;\n}\n\nexport function cacheFeaturesToggleData(data: FeatureTogglesMap) {\n const stringify = JSON.stringify(data);\n\n return localStorage.setItem(CACHE_KEY, stringify);\n}\n\nexport function clearFeaturesToggleDataFromLocalStorage() {\n localStorage.removeItem(CACHE_KEY);\n}\n","import { UserPermissionsApiFactory } from '@eloomi/eloomi-users-persona-client/1.0';\nimport { authorizeClient } from '@/api/http-client';\nimport environment from '@/environment';\n\nimport { AppFeaturesList, FeatureTogglesMap } from '../models';\nimport { getClientType } from '@/common/services/get-device-platform';\n\nconst userAdminPersonaApiClient = authorizeClient(UserPermissionsApiFactory);\n\nexport function getFeaturesState() {\n const clientType = getClientType();\n const featureList = Object.values(AppFeaturesList);\n\n return userAdminPersonaApiClient\n .getUserPermissions(featureList, environment.clientVersion, clientType)\n .then(({ data: flags }) => {\n const featureMapping = Object.fromEntries(\n featureList.map(key => [\n key,\n {\n value: false,\n data: null,\n },\n ])\n );\n\n flags.forEach(({ feature_name, value, data }) => {\n if (feature_name && featureMapping[feature_name]) {\n featureMapping[feature_name].value = Boolean(value);\n featureMapping[feature_name].data = data;\n }\n });\n return featureMapping as FeatureTogglesMap;\n });\n}\n","import environment from '@/environment';\nimport { FeatureTogglesMap } from '@/launch-darkly/models';\n\ndeclare global {\n interface Window {\n getPredefinedFeatureToggles?(): Promise;\n }\n}\n\nexport const PREDEFINED_FEATURE_TOGGLES_KEY = 'predefined_feature_toggles';\n\nfunction getFeatureTogglesFromLocalStorage(): FeatureTogglesMap {\n try {\n const value = localStorage.getItem(PREDEFINED_FEATURE_TOGGLES_KEY);\n if (!value) return {};\n\n return JSON.parse(value);\n } catch (error) {\n return {};\n }\n}\n\nasync function getFeatureTogglesFromWindow(): Promise {\n return window.getPredefinedFeatureToggles ? window.getPredefinedFeatureToggles() : {};\n}\n\nexport async function getPredefinedFeatureToggles(): Promise {\n if (environment.type === 'production') return {};\n\n const featureTogglesFromStorage = getFeatureTogglesFromLocalStorage();\n const featureTogglesFromWindow = await getFeatureTogglesFromWindow();\n\n return { ...featureTogglesFromStorage, ...featureTogglesFromWindow };\n}\n","import { Actions, createComposable, createMapper, Getters, Module, Mutations } from 'vuex-smart-module';\nimport { withSentry } from '@/sentry';\nimport { cacheFeaturesToggleData, getCachedFeaturesToggleData } from '@/launch-darkly/services';\nimport { launchDarklyProvider } from '@/launch-darkly/api';\nimport { AppFeaturesList, FeatureTogglesMap } from '@/launch-darkly/models';\nimport { Vue } from 'vue-property-decorator';\nimport { getPredefinedFeatureToggles } from '@/launch-darkly/services/predefined-feature-toggles';\n\nclass State {\n public enabledFeatures: FeatureTogglesMap = {};\n public launchDarklyInitialized = false;\n public launchDarklyFeaturesList = AppFeaturesList;\n public initPromise: Promise | null = null;\n}\n\nclass StoreGetters extends Getters {\n public checkIfLaunchDarklyFeatureEnabled(featureName: AppFeaturesList) {\n return Boolean(this.state.enabledFeatures[featureName]?.value);\n }\n\n public getLaunchDarklyFeatureData(featureName: AppFeaturesList) {\n return this.state.enabledFeatures[featureName]?.data || null;\n }\n}\n\nexport class StoreActions extends Actions {\n public async loadAllFeatureAvailable() {\n const cachedData = getCachedFeaturesToggleData();\n\n if (cachedData !== null) {\n this.mutations.setFeatureAvailability(cachedData);\n }\n\n const featuresList = await launchDarklyProvider.getFeaturesState();\n const featuresListOverrides = await getPredefinedFeatureToggles();\n\n const finalFeaturesList = { ...featuresList, ...featuresListOverrides };\n\n this.mutations.setFeatureAvailability(finalFeaturesList);\n\n cacheFeaturesToggleData(finalFeaturesList);\n }\n\n public async initializeLaunchDarkly() {\n if (!this.state.initPromise) {\n this.state.initPromise = this.actions.loadAllFeatureAvailable();\n }\n return this.state.initPromise;\n }\n}\n\nclass StoreMutations extends Mutations {\n public setFeatureAvailability(featureState: FeatureTogglesMap) {\n this.state.enabledFeatures = {\n ...this.state.enabledFeatures,\n ...featureState,\n };\n this.state.launchDarklyInitialized = true;\n withSentry(s => {\n s.setContext('featureAvailability', this.state.enabledFeatures);\n });\n }\n}\n\nconst launchDarklyFeatureStore = new Module({\n state: State,\n mutations: StoreMutations,\n actions: StoreActions,\n getters: StoreGetters,\n});\n\nexport const useLaunchDarklyFeatureStore = createComposable(launchDarklyFeatureStore);\n\nexport default launchDarklyFeatureStore;\nexport const launchDarklyFeatureStoreMapper = createMapper(launchDarklyFeatureStore);\n\nexport const LaunchDarklyFeaturesMappedStore = Vue.extend({\n computed: {\n ...launchDarklyFeatureStoreMapper.mapState(['launchDarklyFeaturesList']),\n ...launchDarklyFeatureStoreMapper.mapGetters(['checkIfLaunchDarklyFeatureEnabled']),\n },\n methods: {\n ...launchDarklyFeatureStoreMapper.mapActions(['initializeLaunchDarkly']),\n },\n});\n","import { ApplicationInsights, DistributedTracingModes, ITelemetryItem } from '@microsoft/applicationinsights-web';\nimport environment from './environment';\nimport httpStore from '@/common/store/http';\nimport baseStore from '@/main/baseStore';\nimport userStore from '@/common/store/user-details/store';\n\nif (environment.applicationInsightsKey) {\n const appInsights = new ApplicationInsights({\n config: {\n instrumentationKey: environment.applicationInsightsKey,\n loggingLevelTelemetry: 2,\n enableAutoRouteTracking: true,\n distributedTracingMode: DistributedTracingModes.AI_AND_W3C,\n disableInstrumentationKeyValidation: true,\n enableCorsCorrelation: true,\n correlationHeaderDomains: ['*.eloomi.com'],\n },\n });\n\n appInsights.loadAppInsights();\n\n const telemetryInitializer = (envelope: ITelemetryItem) => {\n if (envelope?.baseData?.responseCode >= 500) {\n const traceId = envelope?.ext?.trace?.traceID ?? 'unknown';\n httpStore.context(baseStore).mutations.setLastError(traceId);\n }\n\n let dataToSend = {\n ServiceName: environment.appName,\n };\n\n const userDetailsStoreModule = userStore.context(baseStore);\n const userId = userDetailsStoreModule.state.appInsightsPlatformData?.userId;\n const platformId = userDetailsStoreModule.state.appInsightsPlatformData?.platformId;\n\n if (userId !== undefined) {\n dataToSend = {\n ...dataToSend,\n ...{\n UserId: userId,\n },\n };\n }\n\n if (platformId !== undefined) {\n dataToSend = {\n ...dataToSend,\n ...{\n PlatformId: platformId,\n },\n };\n }\n\n envelope.data = { ...dataToSend };\n };\n\n appInsights.addTelemetryInitializer(telemetryInitializer);\n appInsights.trackPageView();\n}\n","import * as FullStory from '@fullstory/browser';\n\nimport environment from '@/environment';\nimport { initializeFullstory } from '@/fullstory';\n\ninterface SnippetOptions {\n orgId: string;\n namespace?: string;\n debug?: boolean;\n host?: string;\n script?: string;\n recordCrossDomainIFrames?: boolean;\n recordOnlyThisIFrame?: boolean; // see README for details\n devMode?: boolean;\n}\n\ninterface UserVars {\n displayName?: string;\n email?: string;\n [key: string]: any;\n}\n\ntype LogLevel = 'log' | 'info' | 'warn' | 'error' | 'debug';\n\ndeclare module 'vue/types/vue' {\n interface Vue {\n $FullStory: {\n anonymize(): void;\n consent(userConsents?: boolean): void;\n event(eventName: string, eventProperties: { [key: string]: any }): void;\n identify(uid: string, customVars?: UserVars): void;\n init(options: SnippetOptions): void;\n log(level: LogLevel, msg: string): void;\n log(msg: string): void;\n restart(): void;\n setUserVars(customVars: UserVars): void;\n shutdown(): void;\n };\n }\n}\n\nexport default {\n install(Vue: any) {\n if (environment.fullstoryOrgId) {\n initializeFullstory();\n Vue.prototype.$FullStory = FullStory;\n }\n },\n};\n","export default {\n install(vue: any) {\n vue.directive('style-background-primary', {\n bind(el: any) {\n el.style.background = 'red';\n },\n });\n\n vue.directive('style-color-primary', {\n bind(el: any) {\n el.style.color = '#40bbea';\n },\n });\n },\n};\n","\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreCardLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreCardLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreCardLayout.vue?vue&type=template&id=41dcaf90&scoped=true&\"\nimport script from \"./CoreCardLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreCardLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreCardLayout.vue?vue&type=style&index=0&id=41dcaf90&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"41dcaf90\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card-wrapper\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex-full-width-layout\",style:({ flexDirection: _vm.direction })},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreFlexFullWidthLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoreFlexFullWidthLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoreFlexFullWidthLayout.vue?vue&type=template&id=569d09f0&scoped=true&\"\nimport script from \"./CoreFlexFullWidthLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoreFlexFullWidthLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CoreFlexFullWidthLayout.vue?vue&type=style&index=0&id=569d09f0&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"569d09f0\",\n null\n \n)\n\nexport default component.exports","import CoreMainLayout from '@/common/layouts/CoreMainLayout.vue';\nimport CoreCardLayout from '@/common/layouts/CoreCardLayout.vue';\nimport CoreFlexFullWidthLayout from '@/common/layouts/CoreFlexFullWidthLayout.vue';\n\nexport default {\n install(vue: any) {\n vue.component('CoreMainLayout', CoreMainLayout);\n vue.component('CoreCardLayout', CoreCardLayout);\n vue.component('CoreFlexFullWidthLayout', CoreFlexFullWidthLayout);\n },\n};\n","import stylesPlugin from '@/common/plugins/styles';\nimport commonLayouts from '@/common/plugins/commonLayouts';\n\nexport default {\n install(vue: any) {\n vue.use(stylesPlugin);\n vue.use(commonLayouts);\n },\n};\n","import { PluginObject } from 'vue';\nimport VueRouter, { RawLocation, Route } from 'vue-router';\n\ninterface RouteEntry {\n key: string;\n route: Route;\n}\n\ninterface HistoryState {\n key: string;\n}\n\nexport interface RouteStack {\n routeEntryList: Array;\n back(fallbackLocation: RawLocation): void;\n getPreviousRoute(): Route | null;\n resolvePreviousLocationHref(fallbackLocation?: RawLocation): Route;\n}\n\nconst RouteStackManager = {\n createPlugin(router: VueRouter): PluginObject {\n return {\n install(Vue) {\n const reactiveRouteStack = Vue.observable({\n routeEntryList: [],\n back(fallbackLocation: RawLocation) {\n const previousRoute = this.getPreviousRoute();\n if (previousRoute) {\n router.back();\n } else {\n reactiveRouteStack.routeEntryList = [];\n router.replace(fallbackLocation);\n }\n },\n getPreviousRoute(): Route | null {\n if (this.routeEntryList.length < 2) return null;\n\n const previousRouteEntry = this.routeEntryList[this.routeEntryList.length - 2];\n return previousRouteEntry ? previousRouteEntry.route : null;\n },\n resolvePreviousLocationHref(fallbackLocation: RawLocation): Route {\n const previousRoute = this.getPreviousRoute();\n return previousRoute ? previousRoute : router.resolve(fallbackLocation).route;\n },\n });\n\n router.afterEach(to => {\n /** Initial route has no state */\n const historyState: HistoryState = history.state || { key: 'initial' };\n\n /** `key` is provided by `vue-router`. It's unique for routes */\n const newEntry: RouteEntry = { key: historyState.key, route: to };\n\n const foundIndex = reactiveRouteStack.routeEntryList.findIndex(\n routeEntry => routeEntry.key === newEntry.key\n );\n\n const isRouteVisitedBefore = foundIndex !== -1;\n\n if (isRouteVisitedBefore) {\n reactiveRouteStack.routeEntryList = reactiveRouteStack.routeEntryList.slice(0, foundIndex);\n }\n\n reactiveRouteStack.routeEntryList.push(newEntry);\n });\n\n Vue.prototype.$routeStack = reactiveRouteStack;\n },\n };\n },\n};\n\nexport default RouteStackManager;\n","import Vue from 'vue';\nimport { TextField } from '@eloomi/components';\n\nVue.directive('elm-model', {\n bind(element, binding, vnode) {\n const inputHandler = (event: Event) => {\n const fieldName = binding.expression;\n\n if (vnode.context && fieldName) {\n vnode.context.$data[fieldName] = (event.target as TextField).value;\n }\n };\n\n if (binding.value) {\n element.setAttribute('value', binding.value);\n } else {\n element.removeAttribute('value');\n }\n\n element.addEventListener('elm-input', inputHandler);\n },\n});\n","import type { PluginObject } from 'vue';\nimport type { Injector } from 'typed-inject';\nimport type { MainInjector } from '@/di/injector';\n\ndeclare module 'vue/types/vue' {\n interface Vue {\n $injector: MainInjector;\n }\n}\n\nexport default {\n install(Vue, injector: Injector) {\n Vue.prototype.$injector = injector;\n },\n} as PluginObject>;\n","import { clearBrandingDataFromLocalStorage, restoreDefaultDesignSystemColorsWithBranding } from '@/common/services';\nimport { clearFeaturesToggleDataFromLocalStorage } from '@/launch-darkly/services';\n\nimport { ServiceTokens } from '@/di/tokens';\n\nexport interface StoreCleaner {\n clearUserDetails(): void;\n}\n\nexport class ResetSessionDataService {\n public static inject = [ServiceTokens.UserDetailsStoreService] as const;\n\n public constructor(private readonly storeCleaner: StoreCleaner) {}\n\n reset() {\n this.resetUserData();\n this.resetFeaturesToggleData();\n this.resetBrandingData();\n }\n\n resetUserData() {\n this.storeCleaner.clearUserDetails();\n }\n\n resetFeaturesToggleData() {\n clearFeaturesToggleDataFromLocalStorage();\n }\n\n resetBrandingData() {\n clearBrandingDataFromLocalStorage();\n restoreDefaultDesignSystemColorsWithBranding();\n }\n}\n","import type VueRouter from 'vue-router';\nimport type { NavigationGuardNext, Route } from 'vue-router';\n\nimport { ErrorRouteNames } from '@/main/errorRoutes';\nimport { ServiceTokens } from '@/di/tokens';\n\nimport type { RouteWithPermissions, Permission } from '../domain';\nimport { Router, RouteHandler } from '../use-cases/ports';\n\nexport function vueRouteToRouteWithPermissions(vueRoute: Route): RouteWithPermissions {\n const permissions = new Set();\n\n const addToPermissions = (permissionArray: string[]) =>\n permissionArray.forEach(permission => permissions.add(permission as Permission));\n\n vueRoute.matched.forEach(vueRouteRecord => {\n if (Array.isArray(vueRouteRecord.meta.requiredPermissions)) {\n addToPermissions(vueRouteRecord.meta.requiredPermissions);\n }\n });\n\n addToPermissions(vueRoute.meta?.requiredPermissions ?? []);\n\n return {\n requiredPermissions: [...permissions],\n };\n}\n\nexport class VueRouterAdapter implements Router {\n public static inject = [ServiceTokens.VueRouter] as const;\n\n public constructor(private readonly router: VueRouter) {}\n\n public addBeforeEachRouteHandler(handler: RouteHandler) {\n this.router.beforeEach((vueRoute, _, goNext) => {\n const route = vueRouteToRouteWithPermissions(vueRoute);\n return handler(route, goNext);\n });\n }\n\n public handle404(goNext: NavigationGuardNext) {\n /**\n * Workaround with `params` for the vur-router error\n * @see https://github.com/vuejs/vue-router/issues/724\n */\n goNext({ name: ErrorRouteNames.NOT_FOUND, params: { '0': '' } });\n }\n}\n","import { ServiceTokens as BaseTokens } from '@/di/tokens';\nimport type { UserDetailsStoreService } from '@/common/store/user-details/store';\nimport type { UserProfile } from '@/common/interfaces';\n\nimport { AnonymousUser, UserWithPermissions } from '../domain';\nimport { UserWithPermissionsProvider } from '../use-cases/ports';\nimport { makeLogger } from '@/common/services';\nimport axios from 'axios';\n\n/**\n * This class provides an access to current user profile via vuex store module service.\n */\nexport class UserProfileStoreProviderAdapter implements UserWithPermissionsProvider {\n public static inject = [BaseTokens.UserDetailsStoreService] as const;\n private log = makeLogger('user-profile-store-provider-adapter');\n\n public constructor(private readonly userProfileStore: UserDetailsStoreService) {}\n\n public async getCurrentUser(): Promise {\n try {\n const user = (await this.userProfileStore.loadUserProfile()) as UserProfile | null;\n return new UserWithPermissions(user?.permissions ?? []);\n } catch (error) {\n if (axios.isAxiosError(error) && error.response?.status === 403) {\n this.log(\n `unable to get authenticated user profile` +\n `, falling back to anonymous since user profile is forbidden`\n );\n return new AnonymousUser();\n }\n throw error;\n }\n }\n}\n","import { createInjector } from 'typed-inject';\nimport baseRouter from '@/main/baseRouter';\nimport baseStore from '@/main/baseStore';\nimport { ServiceTokens } from './tokens';\nimport { UserDetailsStoreServiceFactory } from '@/common/store/user-details/store';\nimport type { GetInjectionContext } from './types';\n\nexport const baseInjector = createInjector()\n .provideValue(ServiceTokens.VueRouter, baseRouter)\n .provideValue(ServiceTokens.BaseStore, baseStore)\n .provideFactory(ServiceTokens.UserDetailsStoreService, UserDetailsStoreServiceFactory);\n\nexport type BaseInjectionContext = GetInjectionContext;\nexport type BaseInjector = typeof baseInjector;\n","import { flow } from 'lodash';\n\nimport { provideAuthenticationServices } from '@/authentication/di';\nimport { providePermissionServices } from '@/permissions/di';\n\nimport { ServiceTokens } from './tokens';\nimport { baseInjector } from './base-injector';\nimport type { GetInjectionContext } from './types';\n\nconst mainInjector = flow(provideAuthenticationServices, providePermissionServices)(baseInjector);\n\nexport type MainInjector = typeof mainInjector;\nexport type MainInjectionContext = GetInjectionContext;\n\nexport { mainInjector, ServiceTokens };\n","import { Injector, Scope } from 'typed-inject';\n\nimport { authorizeClient } from '@/api/http-client';\nimport { JwtApiFactory } from '@eloomi/eloomi-users-persona-client/1.0';\nimport { PlatformResolutionService } from '@/common/services';\nimport type { BaseInjectionContext } from '@/di/base-injector';\n\nimport {\n JWTAuthenticationService,\n VueRouterRedirectionService,\n JWTLoginSessionManager,\n ActivateUserService,\n ForgotPasswordService,\n ResetPasswordService,\n} from './services';\nimport { ResetSessionDataService } from './services/reset-session-data';\n\nimport { AuthenticationServiceTokens as Tokens } from './di-tokens';\nimport { AuthFlowStoreServiceFactory } from './store';\nimport { LogoutUseCase } from './use-cases';\n\nexport function provideAuthenticationServices(baseInjector: Injector) {\n return (\n baseInjector\n .provideClass(Tokens.PlatformResolutionService, PlatformResolutionService)\n .provideClass(Tokens.AuthenticationService, JWTAuthenticationService)\n .provideClass(Tokens.SessionManager, JWTLoginSessionManager)\n .provideClass(Tokens.ResetSessionDataService, ResetSessionDataService)\n .provideClass(Tokens.RedirectService, VueRouterRedirectionService)\n .provideFactory(Tokens.SessionApiClient, () => authorizeClient(JwtApiFactory))\n .provideClass(Tokens.ActivateUserService, ActivateUserService)\n .provideClass(Tokens.ForgotPasswordService, ForgotPasswordService)\n .provideClass(Tokens.ResetPasswordService, ResetPasswordService)\n .provideClass(Tokens.LogoutUseCase, LogoutUseCase)\n\n // Since Auth flow store is a dynamic vuex module it make sense to make scope to be not Singleton\n .provideFactory(Tokens.AuthFlowStoreService, AuthFlowStoreServiceFactory, Scope.Transient)\n );\n}\n\nexport { Tokens as AuthenticationServiceTokens };\n","import { Injector } from 'typed-inject';\n\nimport type { BaseInjectionContext } from '@/di/base-injector';\n\nimport { VueRouterAdapter } from './services/vue-router-adapter';\nimport { UserProfileStoreProviderAdapter } from './services/user-profile-provider';\nimport { PermissionsServiceTokens as Tokens } from './di-tokens';\n\nexport function providePermissionServices(baseInjector: Injector) {\n return baseInjector\n .provideClass(Tokens.RouterAdapter, VueRouterAdapter)\n .provideClass(Tokens.UserProfileProvider, UserProfileStoreProviderAdapter);\n}\n\nexport { Tokens as PermissionsServiceTokens };\n","import { round } from 'lodash-es';\n\n/**\n * Inspired by {@link https://css-tricks.com/the-trick-to-viewport-units-on-mobile/}\n */\n\nclass ViewHeightCorrector {\n private prevVh = 0;\n\n public init() {\n this.updateVhProperty();\n\n window.addEventListener('resize', () => this.updateVhProperty());\n }\n\n private updateVhProperty() {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const vh = round(document.documentElement.clientHeight * 0.01, 2);\n if (this.prevVh !== vh) {\n this.prevVh = vh;\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n }\n });\n });\n }\n}\n\nexport const viewHeightCorrector = new ViewHeightCorrector();\n","\n \n\n\n\n","import mod from \"-!../node_modules/swc-loader/src/index.js!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/swc-loader/src/index.js!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=77689561&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('LoginPageLayout',[_c('AuthenticationFlowPanel',{attrs:{\"title\":_vm.trans('spa.authentication.platform-not-found.title'),\"description\":_vm.trans('spa.authentication.platform-not-found.description', { domain: _vm.platformDomain }),\"centerVertically\":true}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PlatformNotFoundPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PlatformNotFoundPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlatformNotFoundPage.vue?vue&type=template&id=ee499b86&\"\nimport script from \"./PlatformNotFoundPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlatformNotFoundPage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { App } from '@capacitor/app';\nimport type VueRouter from 'vue-router';\nimport { convertUrlToLocation } from '@/common/services/convert-url-to-location';\nimport type { PlatformResolutionService } from '@/common/services/platform-resolution';\nimport { makeLogger } from '@/common/services';\nimport { APP_SCHEME } from '@/common/constants/app-scheme';\n\nconst log = makeLogger('mobile', 'deep-link');\n\nfunction getDomainFromUrl(url: string) {\n try {\n return new URL(url).hostname;\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Since URL() constructor doesn't support custom schemes well we have to put in something more suitable.\n */\nfunction prepareUrl(url: string) {\n return url.replace(APP_SCHEME, 'https://');\n}\n\nexport function subscribeForDeepLinkOpen(router: VueRouter, platformResolutionService: PlatformResolutionService) {\n App.addListener('appUrlOpen', function deepLinkCallback(event) {\n log('appUrlOpen fired', event);\n\n const url = prepareUrl(event.url);\n const openUrlDomain = getDomainFromUrl(url);\n const location = convertUrlToLocation(url);\n\n if (location && openUrlDomain !== null) {\n platformResolutionService.forceSetPlatformDomain(openUrlDomain);\n router.push(location);\n log('going to set platform and push location', openUrlDomain, location);\n }\n });\n}\n","import './ai';\n\nimport 'focus-visible';\nimport 'billboard.js/dist/billboard.css';\nimport 'billboard.js/dist/theme/graph.css';\nimport '../styles/static.less';\nimport 'swiper/css/bundle';\nimport 'billboard.js/dist/theme/graph.min.css';\nimport '@eloomi/design-tokens/build/base.css';\nimport '@eloomi/design-tokens/build/colors.css';\nimport '@eloomi/design-tokens/build/spacings.css';\nimport '@eloomi/design-tokens/build/text-styles.css';\nimport '@eloomi/design-tokens/build/border-radius.css';\nimport '@eloomi/components/button';\n\nimport FullStory from './plugins/fullstory.plugin';\nimport InfiniteLoading from 'vue-infinite-loading';\nimport PortalVue from 'portal-vue';\nimport VCalendar from 'v-calendar';\nimport VTooltip from 'v-tooltip';\nimport Vue from 'vue';\nimport VueLazyload from 'vue-lazyload';\nimport VueTippy from 'vue-tippy';\nimport commonPlugin from './common/plugins';\nimport router from './main/baseRouter';\nimport store from './main/baseStore';\nimport RouteStackManager from '@/plugins/route-stack.plugin';\nimport { enableHttpRetryMechanism } from '@/api/config';\nimport httpClient from '@/api/http-client';\nimport { enableInfiniteAuthMiddleware } from '@/authentication/controllers';\nimport environment, { ApiAuthTypes } from '@/environment';\nimport { handleEndpointError } from '@/errorHandler';\nimport { initializeSentry } from '@/sentry';\nimport '@/common/directives/custom-model';\nimport { assignCapacitorPlatformDataAttribute } from '@/common/services/capacitor-css';\nimport detectBrowser from '@/common/services/detect-browser';\nimport DependencyInjectorPlugin from './plugins/injector.plugin';\nimport { mainInjector } from '@/di/injector';\nimport { viewHeightCorrector } from '@/common/services/correct-view-height';\nimport { installPermissionsRouteGuard } from './permissions/controllers';\nimport { AuthenticationServiceTokens } from '@/authentication/di-tokens';\nimport { renderApp } from '@/render-app';\nimport { initPushNotifications } from '@/notifications/services/push-notifications';\nimport { enableDebugForNamespacesFromEnv } from '@/common/services';\nimport { subscribeForDeepLinkOpen } from '@/common/services/subscribe-for-deep-link-open';\n\nenableDebugForNamespacesFromEnv();\n\nVue.config.productionTip = false;\n\n/**\n * Assign platform data attribute to body tag\n */\nassignCapacitorPlatformDataAttribute();\n\n/**\n * Configure a JWT token injection, HTTP 403 error handling & route transition checks\n */\nif (environment.apiAuthMode === ApiAuthTypes.token) {\n enableInfiniteAuthMiddleware(httpClient, router, mainInjector);\n}\n\n/**\n * Install user permissions route guard\n */\ninstallPermissionsRouteGuard(mainInjector);\n\nVue.use(DependencyInjectorPlugin, mainInjector);\nVue.use(commonPlugin);\nVue.use(FullStory);\nVue.use(VueTippy, {\n directive: 'tippy',\n theme: 'eloomi',\n placement: 'bottom',\n onShow: options => Boolean(options.props.content),\n});\n\nVue.use(VTooltip);\nVue.use(VueLazyload);\n\nVue.use(InfiniteLoading, {\n slots: {\n noMore: '',\n noResults: '',\n error: '',\n },\n system: {\n throttle: 200,\n },\n});\nVue.use(VCalendar, {\n componentPrefix: 'vc',\n});\nVue.use(PortalVue);\nVue.use(RouteStackManager.createPlugin(router));\n\ninitializeSentry(router);\n\nviewHeightCorrector.init();\n\nenableHttpRetryMechanism(httpClient);\nhandleEndpointError(router, store);\ndetectBrowser();\n\nconst platformResolutionService = mainInjector.resolve(AuthenticationServiceTokens.PlatformResolutionService);\n\nplatformResolutionService.resolvePlatform().then(isPlatformFound => {\n renderApp({ isPlatformFound });\n});\n\nsubscribeForDeepLinkOpen(router, platformResolutionService);\ninitPushNotifications(router);\n","import { Capacitor } from '@capacitor/core';\n\n/**\n * Assign Capacitor platform data attribute to body tag.\n *\n * Possible cases are:\n * - data-platform=\"ios\"\n * - data-platform=\"android\"\n * - data-platform=\"web\"\n */\nexport function assignCapacitorPlatformDataAttribute() {\n document.body.dataset.platform = Capacitor.getPlatform();\n}\n","import { AxiosInstance } from 'axios';\nimport VueRouter from 'vue-router';\n\nimport {\n JWTLoginSessionManager,\n AxiosSessionInjector,\n VueRouteTransitionGuardService,\n VueRouterRedirectionService,\n AxiosAccessDeniedErrorHandler,\n} from '../services';\n\nimport { Route, NavigationGuardNext } from 'vue-router';\nimport { MainInjector } from '@/di/injector';\nimport { AuthenticationServiceTokens } from '@/authentication/di-tokens';\n\nexport function enableInfiniteAuthMiddleware(httpClient: AxiosInstance, router: VueRouter, injector: MainInjector) {\n const platformService = injector.resolve(AuthenticationServiceTokens.PlatformResolutionService);\n const sessionManager = new JWTLoginSessionManager();\n const sessionInjector = new AxiosSessionInjector(httpClient, sessionManager);\n const redirectService = new VueRouterRedirectionService(router);\n const accessDeniedErrorHandler = new AxiosAccessDeniedErrorHandler(httpClient);\n\n sessionInjector.install();\n\n /**\n * For each of the application pages that requires authorization\n * we want to check if a user is allowed to visit it.\n */\n router.beforeEach((to, _from, next) => {\n checkIfNavigationAllowed(to, next);\n });\n\n /**\n * Enable automatic session refresher.\n * If it can't refresh a session it will call a dedicated error handler callback.\n *\n * And it also works as an active session validator\n */\n sessionManager.setSessionRefreshErrorHandler(() => {\n // We may appear somewhere in route transition like\n // / → /app/courses\n // or /app/courses → /app/login\n // or whatever...\n // so current route may be updated later and we have to ensure that no transition will happen anymore...\n router.onReady(() => {\n if (redirectService.isAuthRequiredForCurrentRoute()) {\n platformService.forceSsoAutomaticLoginEnabled(false);\n redirectService.redirectToLoginPage(true);\n }\n });\n });\n sessionManager.resumeAutoRefresh();\n\n accessDeniedErrorHandler.install(() => {\n // It is mandatory as we changed user deletion and deactivation process (e.g. kong jwt and/or consumers removal, session revoking)\n sessionManager.forceSessionRefresh();\n return true;\n });\n}\n\n/**\n * For each of the application pages that requires authorization\n * we want to check if a user is allowed to visit it.\n */\nfunction checkIfNavigationAllowed(routeTo: Route, goNext: NavigationGuardNext) {\n const sessionManager = new JWTLoginSessionManager();\n const guardService = new VueRouteTransitionGuardService(routeTo, goNext);\n\n if (guardService.isAuthRequiredForTargetRoute() && !sessionManager.isLoggedIn()) {\n guardService.changeTransitionToLoginPage();\n return;\n }\n\n if (guardService.isTargetRouteForUnauthorizedOnly() && sessionManager.isLoggedIn()) {\n guardService.changeTransitionToDefaultPage();\n return;\n }\n\n guardService.acceptCurrentTransition();\n}\n","import { AxiosInstance } from 'axios';\nimport * as axiosRetry from 'retry-axios';\n\nimport httpStore from '@/common/store/http';\nimport baseStore from '@/main/baseStore';\n\nconst RETRIES_COUNT = 3;\n\nexport function enableHttpRetryMechanism(httpClient: AxiosInstance) {\n httpClient.defaults.raxConfig = {\n instance: httpClient,\n retry: RETRIES_COUNT,\n retryDelay: 1000,\n httpMethodsToRetry: ['GET'],\n statusCodesToRetry: [[500, 599]],\n onRetryAttempt: err => {\n const { currentRetryAttempt } = axiosRetry.getConfig(err) ?? { currentRetryAttempt: 0 };\n\n httpStore\n .context(baseStore)\n .mutations.setRetryingHttpState(\n Boolean(currentRetryAttempt && currentRetryAttempt > 0 && currentRetryAttempt < RETRIES_COUNT)\n );\n },\n };\n axiosRetry.attach(httpClient);\n}\n","import { UAParser } from 'ua-parser-js';\nimport { wordsToKebab } from '@/common/services/utils';\n\nexport default function () {\n const parser = new UAParser();\n const os = parser.getOS();\n const browser = parser.getBrowser();\n\n if (browser.name && !document.body.dataset.browser) {\n document.body.dataset.browser = wordsToKebab(browser.name);\n }\n if (os.name && !document.body.dataset.os) {\n document.body.dataset.os = wordsToKebab(os.name);\n }\n}\n","import Vue from 'vue';\nimport router from '@/main/baseRouter';\nimport store from '@/main/baseStore';\nimport App from '@/App.vue';\nimport PlatformNotFoundPage from '@/authentication/page/PlatformNotFoundPage.vue';\n\nexport function renderApp(params: { isPlatformFound: boolean }) {\n const elementSelector = '#app';\n\n if (params.isPlatformFound) {\n new Vue({\n router,\n store,\n render: create => create(App),\n }).$mount(elementSelector);\n } else {\n new Vue({\n store,\n render: create => create(PlatformNotFoundPage),\n }).$mount(elementSelector);\n }\n}\n","import { RouteConfig } from 'vue-router';\n\nconst adminRootPage = () => import('./pages/AdminRootPage.vue');\n\nimport AdministrationCourseRoutes from '@/admin/courses/routes';\nimport AdministrationBillingRoutes from '@/admin/billing/routes';\nimport AdministrationEventRoutes from '@/admin/events/routes';\nimport AdministrationUsersRoutes from '@/admin/users/routes';\nimport { adminReportRoutes } from '@/reporting/routes';\nimport topicsAdminRoutes from '@/admin/topics/routes';\nimport groupsAdminRoutes from '@/admin/groups/routes';\nimport playlistsAdminRoutes from '@/admin/playlists/routes';\nimport AdminSkillsRoutes from '@/admin/skills/routes';\nimport AdministrationSettingsRoutes from '@/admin/settings/routes';\nimport AdministrationApiRoutes from '@/admin/api-tokens/routes';\n\nexport const enum AdminRoutes {\n ROOT_ADMIN = 'root_admin',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: 'admin',\n name: AdminRoutes.ROOT_ADMIN,\n component: adminRootPage,\n children: [\n ...AdministrationCourseRoutes,\n ...AdministrationUsersRoutes,\n ...AdministrationBillingRoutes,\n ...AdministrationEventRoutes,\n ...adminReportRoutes,\n ...topicsAdminRoutes,\n ...groupsAdminRoutes,\n ...playlistsAdminRoutes,\n ...AdminSkillsRoutes,\n ...AdministrationSettingsRoutes,\n ...AdministrationApiRoutes,\n ],\n },\n];\n\nexport default routes;\n","import { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport store, { smartRootModule } from '@/main/baseStore';\nimport { Route, RouteConfig } from 'vue-router';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { checkIfRouteAvailableByPlanFeatures } from '@/plan-features/routes';\nimport { CoursesRouteNames } from '@/courses/route-definitions';\n\nconst COURSES_DASHBOARD_PAGE = () => import('./pages/CourseDashboardPage.vue');\nconst COURSE_PLAYER_ROOT = () => import('./pages/CoursePlayerRootPage.vue');\nconst COURSE_OVERVIEW_PAGE = () => import('./pages/CourseOverviewPage.vue');\nconst COURSE_PLAYER_PAGE = () => import('./pages/CoursePlayerPage.vue');\nconst COURSE_SCORM_PLAYER_ROOT = () => import('./pages/CourseScormPlayerPage.vue');\nconst ALL_COURSES_OVERVIEW_PAGE = () => import('./pages/all-courses-overview/AllCoursesOverviewPage.vue');\nconst PLAYLIST_OVERVIEW_PAGE = () => import('./pages/PlaylistOverviewPage.vue');\n\nconst isMobile = () => {\n return smartRootModule.context(store).modules.mobileMode.state.isMobile;\n};\n\nconst getBackRouteFromPlayer = (currentRoute: Route) => {\n if (isMobile()) {\n return {\n name: CoursesRouteNames.ALL_COURSES_OVERVIEW,\n };\n } else {\n return {\n name: CoursesRouteNames.COURSE_OVERVIEW,\n params: {\n course_id: currentRoute.params.course_id,\n },\n query: currentRoute.query,\n };\n }\n};\n\nconst routes: RouteConfig[] = [\n {\n path: `courses/overview`,\n name: CoursesRouteNames.ALL_COURSES_OVERVIEW,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Courses`,\n },\n component: ALL_COURSES_OVERVIEW_PAGE,\n },\n {\n path: `courses/:course_id(\\\\d+)`,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Course`,\n defaultBackRoute: CoursesRouteNames.ALL_COURSES_OVERVIEW,\n },\n component: COURSE_PLAYER_ROOT,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.COURSES),\n children: [\n {\n path: `overview`,\n name: CoursesRouteNames.COURSE_OVERVIEW,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Course`,\n defaultBackRoute: (currentRoute: Route) =>\n currentRoute.query.playlist_id\n ? {\n name: CoursesRouteNames.PLAYLIST_OVERVIEW,\n params: {\n playlist_id: currentRoute.query.playlist_id,\n },\n }\n : {\n name: CoursesRouteNames.ALL_COURSES_OVERVIEW,\n },\n },\n alias: '',\n component: COURSE_OVERVIEW_PAGE,\n },\n {\n path: `chapter/:chapter_id(\\\\d+)/page/:page_id(\\\\d+)`,\n name: CoursesRouteNames.COURSE_PLAYER,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Page`,\n defaultBackRoute: getBackRouteFromPlayer,\n },\n component: COURSE_PLAYER_PAGE,\n },\n {\n path: `player`,\n name: CoursesRouteNames.COURSE_SCORM_PLAYER,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Course`,\n defaultBackRoute: getBackRouteFromPlayer,\n },\n component: COURSE_SCORM_PLAYER_ROOT,\n },\n ],\n },\n {\n path: `playlists/:playlist_id(\\\\d+)/overview`,\n name: CoursesRouteNames.PLAYLIST_OVERVIEW,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Playlist`,\n defaultBackRoute: CoursesRouteNames.ALL_COURSES_OVERVIEW,\n },\n component: PLAYLIST_OVERVIEW_PAGE,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.PLAYLISTS),\n },\n {\n path: `courses`,\n name: CoursesRouteNames.COURSES_DASHBOARD,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Courses`,\n },\n component: COURSES_DASHBOARD_PAGE,\n },\n];\n\nexport default routes;\n","import { Route, Location } from 'vue-router';\nimport { JWTLoginSessionManager } from '@/authentication/services/session/session-manager';\nimport { parseTokenParamFromRoute } from '@/authentication/services/parse-token-param-from-route';\nimport { JWT } from '@/authentication/services/interfaces';\nimport { DEFAULT_PAGE_LOCATION, LOGIN_PAGE_LOCATION } from '@/authentication/services/locations';\nimport { ServiceTokens } from '@/di/tokens';\nimport type { Store } from 'vuex';\n\nexport class InstantLoginRedirectionService {\n public static inject = [ServiceTokens.BaseStore] as const;\n // @ts-ignore\n constructor(private store: Store) {}\n\n redirect(currentRoute: Route): Location {\n const sessionManager = new JWTLoginSessionManager();\n // const openInAppStoreService = OpenInAppStoreServiceFactory(this.store);\n\n try {\n const token = parseTokenParamFromRoute(currentRoute);\n sessionManager.start(token as JWT);\n\n // Uncomment to enable SSO on a mobile device\n // if (isWeb() && getIsMobile()) {\n // openInAppStoreService.showNotification();\n // }\n\n return { ...DEFAULT_PAGE_LOCATION, query: {} };\n } catch (error) {\n console.error(error);\n return { ...LOGIN_PAGE_LOCATION, query: {} };\n }\n }\n}\n","import { RouteConfig } from 'vue-router';\n\nimport { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\n\nconst authenticationPage = () => import('./page/AuthenticationPage.vue');\nconst resetPasswordPage = () => import('./page/ResetPasswordPage.vue');\nconst activateUserPage = () => import('./page/ActivateUserPage.vue');\n\nimport { makeTokenCheckerGuard, AuthRouteMeta, ResetPasswordService, ActivateUserService } from './services';\nimport { AuthenticationRouteNames } from './route-definitions';\nimport { InstantLoginRedirectionService } from '@/authentication/services/instant-login-redirection';\nimport { verifyLoginSsoStatus } from '@/authentication/services/login-sso-handler';\nimport store from '@/main/baseStore';\n\nconst checkIfCorrectActivateTokenPassed = makeTokenCheckerGuard(ActivateUserService.verifyToken);\nconst checkIfCorrectResetTokenPassed = makeTokenCheckerGuard(ResetPasswordService.verifyToken);\n\nconst routes: RouteConfig[] = [\n {\n name: AuthenticationRouteNames.LOGIN,\n path: '/login',\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Login`,\n onlyUnauthorized: true,\n } as AuthRouteMeta,\n component: authenticationPage,\n beforeEnter: verifyLoginSsoStatus,\n },\n {\n name: AuthenticationRouteNames.RESET_PASSWORD,\n path: '/reset-password',\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Reset password`,\n },\n component: resetPasswordPage,\n beforeEnter: checkIfCorrectResetTokenPassed,\n },\n {\n name: AuthenticationRouteNames.ACTIVATE_USER,\n path: '/activate-user',\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Setup account`,\n },\n component: activateUserPage,\n beforeEnter: checkIfCorrectActivateTokenPassed,\n },\n {\n name: AuthenticationRouteNames.INSTANT_LOGIN,\n path: '/instant-login',\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Login`,\n },\n redirect: route => {\n const instantLoginService = new InstantLoginRedirectionService(store);\n return instantLoginService.redirect(route);\n },\n },\n];\n\nexport default routes;\n","import { RouteConfig } from 'vue-router';\nimport store, { smartRootModule } from './baseStore';\n\nconst context = smartRootModule.context(store);\n\nexport const enum Paths {\n WHATS_NEW = 'whats-new',\n}\n\nexport const enum Names {\n WHATS_NEW = 'whats-new',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: Paths.WHATS_NEW,\n name: Names.WHATS_NEW,\n beforeEnter: (_to, _from, next) => {\n context.modules.whatsnew.mutations.showModal();\n next(false);\n },\n },\n];\n\nexport default routes;\n","import { RouteConfig } from 'vue-router';\n\nimport AdministrationRoutes from '@/admin/routes';\nimport CoursesRoutes from '@/courses/routes';\nimport { CoursesRouteNames } from '@/courses/route-definitions';\nimport EventRoutes from '@/events/routes';\nimport ReportingRoutes from '@/reporting/routes';\nimport ProfileSettingsRoutes from '@/profile-settings/routes';\nimport AuthenticationRoutes from '@/authentication/routes';\nimport ErrorRoutes, { ErrorRouteNames } from './errorRoutes';\nimport pseudoRoutes from './pseudoRoutes';\n\nimport type { AuthRouteMeta } from '@/authentication/services';\nimport { handlePageNotFound } from '@/common/services/transition-common';\n\nconst entryPage = () => import('./pages/EntryPage.vue');\n\nconst DEFAULT_ROUTE = CoursesRouteNames.COURSES_DASHBOARD;\n\n/**\n * A basic set of application routes.\n * In most cases you may need to add new routes here.\n */\nconst APP_ROUTES: RouteConfig[] = [\n {\n path: '',\n component: entryPage,\n children: [\n ...pseudoRoutes,\n ...AdministrationRoutes,\n ...CoursesRoutes,\n ...EventRoutes,\n ...ReportingRoutes,\n ...ErrorRoutes,\n ...ProfileSettingsRoutes,\n {\n path: '',\n redirect: { name: DEFAULT_ROUTE },\n },\n ],\n meta: {\n requiresAuth: true,\n } as AuthRouteMeta,\n },\n];\n\nexport const routes: RouteConfig[] = [\n ...AuthenticationRoutes,\n {\n path: '',\n redirect: { name: DEFAULT_ROUTE },\n },\n {\n path: '*',\n name: ErrorRouteNames.NOT_FOUND,\n beforeEnter(_from, _to, next) {\n handlePageNotFound(next);\n },\n },\n ...APP_ROUTES,\n];\n","import Vue from 'vue';\nimport VueRouter from 'vue-router';\nimport { App as CapacitorApp } from '@capacitor/app';\nimport { Capacitor } from '@capacitor/core';\n\nimport environment from '@/environment';\nimport { attachMobileFallbackGuard } from '@/common/services/mobile-fallback';\nimport { includeSavePageInSegment } from '@/common/services/segment';\n\nimport { routes } from './routes';\nimport { backButtonService } from '@/common/services/mobile-fallback/native-back-button-service';\nimport { AuthenticationRouteNames } from '@/authentication/route-definitions';\nimport { syncPageTitleWithRouteTitle } from '@/common/services/sync-document-title-with-route';\n\nVue.use(VueRouter);\n\nconst router = new VueRouter({\n mode: 'history',\n base: environment.appBaseUrl,\n routes,\n});\n\nattachMobileFallbackGuard(router);\nincludeSavePageInSegment(router);\nsyncPageTitleWithRouteTitle(router);\n\nif (Capacitor.isNativePlatform()) {\n CapacitorApp.addListener('backButton', ({ canGoBack }) => {\n if (!backButtonService.isEmpty()) {\n backButtonService.popAction();\n return;\n }\n\n if (!canGoBack) {\n CapacitorApp.exitApp();\n }\n\n if (router.currentRoute.name === AuthenticationRouteNames.LOGIN) {\n CapacitorApp.exitApp();\n }\n\n window.history.back();\n });\n}\n\nexport default router;\n","import VueRouter from 'vue-router';\n\nexport function syncPageTitleWithRouteTitle(router: VueRouter) {\n router.beforeEach((to, _from, next) => {\n document.title = to.meta?.title;\n\n return next();\n });\n}\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport { Module } from 'vuex-smart-module';\n\nimport { createSmartStore } from '@/common/services/create-smart-store';\nimport environment from '../environment';\nimport UserCoursesStore from '@/courses/store';\nimport whatsNewStore from '@/whatsnew/store';\n\nimport toastNotifications from '@/common/components/toast/store';\nimport CoursePlayerStore from '@/courses/store/course-player';\nimport userGroupStore from '@/admin/groups/store';\nimport launchDarklyFeatures from '@/launch-darkly/store';\nimport userProfileDetails from '@/common/store/user-details/store';\nimport httpStore from '@/common/store/http';\nimport mobileModeStore from '@/common/store/mobile-mode';\nimport planFeaturesStore from '@/plan-features/store';\nimport translationsStore from '@/translations/store';\nimport { subscriptionStore, plansStore } from '@/admin/billing/store';\nimport brandingStore from '@/common/store/branding/store';\nimport notificationsStore from '@/notifications/store';\nimport { skillSetupStore } from '@/profile-settings/components/self-skills-setup/SkillSetupStore';\nimport customFieldsStore from '@/admin/settings/store';\nimport contentStore from '@/content-store/store';\nimport openInAppStore from '@/open-in-app/store';\nimport mergeIntegrationStoreModule from '@/admin/skills/store';\n\nVue.use(Vuex);\n\nexport const smartRootModule = new Module({\n modules: {\n courses: UserCoursesStore,\n coursePlayer: CoursePlayerStore,\n whatsnew: whatsNewStore,\n userGroup: userGroupStore,\n toastNotifications,\n launchDarklyFeatureStore: launchDarklyFeatures,\n userProfileDetails,\n httpStore,\n mobileMode: mobileModeStore,\n planFeatures: planFeaturesStore,\n subscriptionStore,\n translationsStore,\n plansStore,\n brandingStore,\n notificationsStore,\n skillSetupStore,\n customFieldsStore,\n contentStore,\n openInAppStore,\n mergeIntegrationStoreModule,\n },\n});\n\nconst store = createSmartStore(smartRootModule, {\n strict: !environment.isProduction,\n});\n\nexport default store;\n","import { StoreOptions } from 'vuex';\nimport { Module, Getters, Mutations, Actions, createStore } from 'vuex-smart-module';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Modules = Record>;\n\nexport function createSmartStore(\n rootModule: Module, Mutations, Actions, Modules>,\n options: StoreOptions = {}\n) {\n return createStore(rootModule, {\n ...options,\n });\n}\n","\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MobileFallbackPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/swc-loader/src/index.js!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MobileFallbackPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MobileFallbackPage.vue?vue&type=template&id=6186cc10&scoped=true&\"\nimport script from \"./MobileFallbackPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./MobileFallbackPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MobileFallbackPage.vue?vue&type=style&index=0&id=6186cc10&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6186cc10\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('MainThemeProvider',[_c('CoreMainLayout',{scopedSlots:_vm._u([{key:\"sticky-header\",fn:function(){return [_c('AppHeader',{attrs:{\"withNotifications\":\"\",\"withBackButton\":\"\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('MobileFallback',{staticClass:\"mobile-fallback-page__fallback\"})]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { RouteConfig } from 'vue-router';\n\nimport { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { FALLBACK_ROUTE_NAME } from '@/common/services/mobile-fallback';\n\nimport MobileFallbackPage from './pages/MobileFallbackPage.vue';\n\nexport const ErrorRouteNames = Object.freeze({\n NOT_FOUND: 'not-found',\n MOBILE_FALLBACK: FALLBACK_ROUTE_NAME,\n} as const);\n\nconst routes: RouteConfig[] = [\n {\n path: 'unsupported-mobile',\n name: ErrorRouteNames.MOBILE_FALLBACK,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Content not available`,\n },\n component: MobileFallbackPage,\n },\n];\n\nexport default routes;\n","// allows using multiple guards for routes\nexport function guards(guards) {\n return async (to, from, next) => {\n // a flag to discard remaining guards\n let changed = false;\n\n // handle next for multiple guards\n const mNext = value => {\n // prevent calling next after it is already resolved with a value\n if (changed) {\n return;\n }\n\n // if we have 'value' resolve next with the value and set changed flag\n if (typeof value !== 'undefined') {\n changed = true;\n next(value);\n }\n };\n\n // call guards\n for (let i = 0; i < guards.length; i++) {\n if (changed) break;\n await guards[i](to, from, mNext);\n }\n\n // move on if none of guards resolved next with a value\n if (!changed) next();\n };\n}\n","import { NotificationResponse, TemplateKey } from '@eloomi/eloomi-notifications-persona-client/1.0';\nimport translationsStore from '@/translations/store';\nimport baseStore from '@/main/baseStore';\nimport { CoursesRouteNames } from '@/courses/route-definitions';\nimport { EventsRoutesNames } from '@/events/routes';\nimport { RawLocation } from 'vue-router';\n\nexport function getNotificationText(notification: NotificationResponse) {\n const trans = translationsStore.context(baseStore).getters.trans;\n switch (notification.template_key) {\n case TemplateKey.CourseAssigned:\n if (notification.template_data?.course_title) {\n return trans('spa.notification.type.course-assigned', {\n course_title: notification.template_data.course_title,\n });\n } else {\n return trans('spa.notification.type.course-assigned.untitled');\n }\n case TemplateKey.CourseAssignedWithDeadline:\n if (notification.template_data?.course_title) {\n return trans('spa.notification.type.course-assigned-withdeadline', {\n course_title: notification.template_data.course_title,\n });\n } else {\n return trans('spa.notification.type.course-assigned-withdeadline.untitled');\n }\n case TemplateKey.EventAssigned:\n if (notification.template_data?.event_title) {\n return trans('spa.notification.type.event-assigned', {\n event_title: notification.template_data.event_title,\n });\n } else {\n return trans('spa.notification.type.event-assigned.untitled');\n }\n default:\n break;\n }\n}\n\nexport function getNotificationRoute(notification: NotificationResponse): RawLocation | null {\n switch (notification.template_key) {\n case TemplateKey.CourseAssigned:\n case TemplateKey.CourseAssignedWithDeadline:\n if (notification.template_data?.course_id) {\n return {\n name: CoursesRouteNames.COURSE_OVERVIEW,\n params: { course_id: notification.template_data.course_id },\n };\n }\n break;\n case TemplateKey.EventAssigned:\n if (notification.template_data?.event_id) {\n return {\n name: EventsRoutesNames.EVENT_OVERVIEW,\n params: { event_id: notification.template_data.event_id },\n };\n }\n break;\n }\n return null;\n}\n","import { PushNotifications } from '@capacitor/push-notifications';\nimport {\n DeviceType,\n NotificationsApiFactory,\n RegisterDeviceRequest,\n} from '@eloomi/eloomi-notifications-persona-client/1.0';\nimport { makeLogger } from '@/common/services';\nimport { authorizeClient } from '@/api/http-client';\nimport { Storage } from '@capacitor/storage';\nimport { Capacitor } from '@capacitor/core';\nimport { nanoid } from 'nanoid';\nimport type VueRouter from 'vue-router';\n\nimport { getTapHandler } from './notification-tap-handler';\n\nconst notificationsApi = authorizeClient(NotificationsApiFactory);\n\nexport class PermissionDeniedError extends Error {\n constructor() {\n super(`User denied permissions for notifications.`);\n\n Object.setPrototypeOf(this, PermissionDeniedError.prototype);\n }\n}\n\ninterface NotificationData {\n action_url: string | null;\n template_key:\n | 'mobile_course_assigned'\n | 'mobile_course_assigned_with_deadline'\n | 'mobile_course_deadline_reminder'\n | 'mobile_course_deadline_missed'\n | 'mobile_playlist_assigned'\n | 'mobile_playlist_assigned_with_deadline';\n}\n\nexport interface TapHandler {\n (event: NotificationData): void;\n}\n\ninterface RegistrationStatus {\n success: boolean;\n}\n\nclass PushNotificationsService {\n private installationIdKey = 'installation-id';\n private installationId = '';\n private tapHandlers: Array = [];\n\n /**\n * On iOS it contains the APNS token.\n * On Android it contains the FCM token.\n */\n private registrationToken = '';\n private registrationPromise: Promise = Promise.resolve({ success: false });\n\n private isInitialized = false;\n\n private log = makeLogger('push-notifications');\n\n public async init() {\n if (!Capacitor.isNativePlatform() || this.isInitialized) return;\n\n this.log('Initialization...');\n\n this.isInitialized = true;\n\n this.installationId = await this.initInstallationId();\n\n this.log('Installation id: ', this.installationId);\n\n await this.addListeners();\n this.registrationPromise = this.registerOnPNS();\n }\n\n public subscribe() {\n return this.registerOnBackend();\n }\n\n private async registerOnBackend() {\n const registrationStatus = await this.registrationPromise;\n\n if (!registrationStatus.success) return;\n\n const body: RegisterDeviceRequest = {\n handle: this.registrationToken,\n device_type: Capacitor.getPlatform() === 'ios' ? DeviceType.IOs : DeviceType.Android,\n installation_id: this.installationId,\n iana_timezone: this.getTimeZone(),\n };\n\n try {\n await notificationsApi.register(body);\n this.log('Registration on backend: Successful');\n } catch (error) {\n this.log('Registration on backend: Failed', error);\n }\n }\n\n private async initInstallationId() {\n let installationId = await this.getInstallationId();\n\n if (!installationId) {\n installationId = nanoid();\n await this.setInstallationId(installationId);\n }\n\n return installationId;\n }\n\n private async getInstallationId() {\n const installationId = await Storage.get({ key: this.installationIdKey });\n return installationId.value;\n }\n\n private setInstallationId(installationId: string) {\n return Storage.set({ key: this.installationIdKey, value: installationId });\n }\n\n private async addListeners() {\n await PushNotifications.addListener('pushNotificationReceived', notification => {\n this.log('Push notification received: ', notification);\n });\n\n await PushNotifications.addListener('pushNotificationActionPerformed', event => {\n this.log('Push notification action performed', event);\n\n if (event.actionId === 'tap') {\n const data = event.notification.data as NotificationData;\n\n this.tapHandlers.forEach(handler => handler(data));\n }\n });\n }\n\n private async getPermissionStatus() {\n const status = await PushNotifications.checkPermissions();\n\n if (status.receive === 'prompt') {\n return PushNotifications.requestPermissions();\n }\n\n return status;\n }\n\n private getTimeZone() {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch (e) {\n console.warn(`Unable to read user timezone.`);\n return null;\n }\n }\n\n private registerOnPNS() {\n return new Promise(resolve => {\n PushNotifications.addListener('registration', token => {\n this.log('Registration token: ', token.value);\n this.registrationToken = token.value;\n resolve({ success: true });\n });\n\n PushNotifications.addListener('registrationError', err => {\n this.log('Registration error: ', err.error);\n resolve({ success: false });\n });\n\n this.getPermissionStatus()\n .then(permissionStatus => {\n this.log('Permissions status: ', permissionStatus.receive);\n\n if (permissionStatus.receive !== 'granted') {\n throw new PermissionDeniedError();\n }\n\n return PushNotifications.register();\n })\n .catch(() => resolve({ success: false }));\n });\n }\n\n public addTapHandler(handler: TapHandler) {\n this.tapHandlers.push(handler);\n }\n}\n\nexport const pushNotificationsService = new PushNotificationsService();\n\nexport function initPushNotifications(router: VueRouter) {\n pushNotificationsService.addTapHandler(getTapHandler(router));\n\n return pushNotificationsService.init();\n}\n","import type VueRouter from 'vue-router';\nimport { TapHandler } from '@/notifications/services/push-notifications';\nimport { convertUrlToLocation } from '@/common/services/convert-url-to-location';\n\nexport function getTapHandler(router: VueRouter): TapHandler {\n return function handleTap(event) {\n if (!event.action_url) return;\n\n const location = convertUrlToLocation(event.action_url);\n\n if (location) {\n router.push(location);\n }\n };\n}\n","import { NotificationsApiFactory } from '@eloomi/eloomi-notifications-persona-client/1.0';\nimport { authorizeClient } from '@/api/http-client';\n\nexport const notificationsClient = authorizeClient(NotificationsApiFactory);\n","/* eslint-disable vue/one-component-per-file */\nimport { Vue } from 'vue-property-decorator';\nimport { Module, Mutations, Actions, Getters, createMapper, createComposable } from 'vuex-smart-module';\nimport { notificationsClient } from '../providers';\nimport { NotificationResponse } from '@eloomi/eloomi-notifications-persona-client/1.0';\nimport translationsStore from '@/translations/store';\nimport baseStore from '@/main/baseStore';\nimport brandingStore from '@/common/store/branding/store';\nimport defaultFaviconImageUrl from '@/assets/img/eloomi-favicon.png';\nimport launchDarklyFeatureStore from '@/launch-darkly/store';\nimport { makeLogger } from '@/common/services';\nimport { getNotificationRoute, getNotificationText } from '@/notifications/services/misc';\n\nlet logger = {\n log: _msg => {\n // not available in storybook\n },\n};\n\ntry {\n logger = makeLogger('notifications');\n} catch (e) {\n console.error('makeLogger is not available');\n}\n\nconst browserSupportsNotificationAPI = 'Notification' in window;\n\nclass State {\n public notifications: NotificationResponse[] = [];\n public newNotifications = 0;\n public currentPage = 1;\n public lastPage: number | null = null;\n public pageSize = 10;\n public promisePending = false;\n public notificationsInitialized = false;\n public notificationsInterval: NodeJS.Timer | null = null;\n public notificationsDrawerVisible = false;\n}\n\nclass StoreGetters extends Getters {\n public get notifications() {\n return this.state.notifications;\n }\n public get newNotificationsCount() {\n return this.state.newNotifications;\n }\n public get isBrowserNotificationsEnabled() {\n const launchDarklyContext = launchDarklyFeatureStore.context(baseStore);\n return launchDarklyContext.getters.checkIfLaunchDarklyFeatureEnabled(\n launchDarklyContext.state.launchDarklyFeaturesList.BROWSER_NOTIFICATIONS\n );\n }\n}\n\nclass StoreMutations extends Mutations {\n public openNotificationsDrawer() {\n this.state.notificationsDrawerVisible = true;\n }\n public closeNotificationsDrawer() {\n this.state.notificationsDrawerVisible = false;\n }\n public setNotificationAsRead(id: number) {\n const notificationToMartAsRead = this.state.notifications.find(n => n.id === id);\n notificationToMartAsRead && (notificationToMartAsRead.is_read = true);\n }\n public setAllNotificationAsRead() {\n this.state.notifications.forEach(ntf => (ntf.is_read = true));\n }\n public setNewNotificationsCount(count) {\n this.state.newNotifications = count;\n }\n public loadNotifications(notifications) {\n this.state.notifications = [...this.state.notifications, ...notifications];\n }\n public setNotifications(notifications: NotificationResponse[]) {\n this.state.notifications = notifications;\n }\n public nextPage() {\n this.state.currentPage += 1;\n }\n public setLastPage(page) {\n this.state.lastPage = page;\n }\n public setPromisePending(isPending) {\n this.state.promisePending = isPending;\n }\n public resetState() {\n this.state.currentPage = 1;\n this.state.lastPage = null;\n }\n public setNotificationsInitialized(notificationsInitialized) {\n this.state.notificationsInitialized = notificationsInitialized;\n }\n public setInterval(interval) {\n this.state.notificationsInterval = interval;\n }\n}\n\nclass StoreActions extends Actions {\n private async fetchNotifications() {\n return await (\n await notificationsClient.getUsersNotifications(\n undefined,\n '-created_at',\n this.state.currentPage,\n this.state.pageSize\n )\n ).data;\n }\n\n public async markAllNotificationsAsRead() {\n try {\n await notificationsClient.updateNotificationAllRead();\n this.mutations.setNewNotificationsCount(0);\n this.mutations.setAllNotificationAsRead();\n } catch (error) {\n logger.log('En error occurred when marking all notifications as read.');\n }\n }\n\n public async getNewNotificationsCount() {\n try {\n const newNotificationsCount = await notificationsClient.getUsersNotificationsNumber();\n this.mutations.setNewNotificationsCount(newNotificationsCount.data);\n } catch (error) {\n console.error(error);\n }\n }\n\n public async getNotifications() {\n const shouldLoadNotifications = this.state.lastPage === null || this.state.currentPage <= this.state.lastPage;\n if (shouldLoadNotifications && this.state.promisePending === false) {\n this.mutations.setPromisePending(true);\n const notifications = await this.actions.fetchNotifications();\n this.mutations.setPromisePending(false);\n this.mutations.nextPage();\n this.mutations.setLastPage(notifications.last_page);\n if (notifications.data) {\n this.mutations.loadNotifications([...notifications.data]);\n }\n }\n }\n\n public async resetAndGetNotifications() {\n this.mutations.resetState();\n this.mutations.setPromisePending(true);\n const notifications = await this.actions.fetchNotifications();\n if (notifications.data) {\n this.mutations.setNotifications(notifications.data);\n this.mutations.nextPage();\n }\n this.mutations.setPromisePending(false);\n }\n\n public async setNotificationAsRead(notification: NotificationResponse) {\n if (notification.id && notification.is_read === false) {\n await notificationsClient.updateNotificationRead(notification.id, true);\n await this.actions.getNewNotificationsCount();\n this.mutations.setNotificationAsRead(notification.id);\n }\n }\n public async initializeNotificationFeature() {\n if (this.state.notificationsInitialized === false) {\n if (\n browserSupportsNotificationAPI &&\n Notification.permission !== 'granted' &&\n this.getters.isBrowserNotificationsEnabled\n ) {\n Notification.requestPermission();\n }\n this.mutations.setNotificationsInitialized(true);\n await this.actions.getNewNotificationsCount();\n await this.actions.getNotifications();\n this.mutations.setInterval(setInterval(this.actions.checkForNewNotifications, 180000));\n }\n }\n\n public notifyUser(newNotificationsCount) {\n if (browserSupportsNotificationAPI === false) {\n return;\n }\n const trans = translationsStore.context(baseStore).getters.trans;\n if (Notification.permission === 'granted') {\n const notificationText =\n newNotificationsCount > 1\n ? trans('spa.notification.new-notifications', { num: newNotificationsCount })\n : getNotificationText(this.state.notifications[0]);\n const browserNotification = new Notification(trans('spa.notification.message-from-eloomi'), {\n icon: brandingStore.context(baseStore).state.brandingState?.favicon_url || defaultFaviconImageUrl,\n body: notificationText,\n });\n const notification = this.state.notifications[0];\n const { mutations } = this;\n browserNotification.onclick = async function () {\n window.focus();\n if (newNotificationsCount === 1) {\n const route = getNotificationRoute(notification);\n if (route) {\n const router = await import('@/main/baseRouter');\n router.default.push(route);\n }\n } else {\n mutations.openNotificationsDrawer();\n }\n };\n }\n }\n\n public async checkForNewNotifications() {\n try {\n const notificationsNumberResponse = await notificationsClient.getUsersNotificationsNumber();\n const newNotificationsCount = notificationsNumberResponse.data;\n const newNotificationsCountDiff = newNotificationsCount - this.getters.newNotificationsCount;\n\n if (newNotificationsCount !== this.getters.newNotificationsCount) {\n await this.mutations.setNewNotificationsCount(newNotificationsCount);\n await this.actions.resetAndGetNotifications();\n }\n if (this.getters.isBrowserNotificationsEnabled && newNotificationsCountDiff > 0 && document.hidden) {\n this.actions.notifyUser(newNotificationsCountDiff);\n }\n } catch (error) {\n console.error(error);\n }\n }\n}\n\nconst notificationsStore = new Module({\n state: State,\n mutations: StoreMutations,\n getters: StoreGetters,\n actions: StoreActions,\n});\n\nexport default notificationsStore;\n\nexport const notificationsStoreMapper = createMapper(notificationsStore);\nexport const NotificationsMappedStore = Vue.extend({\n computed: {\n ...notificationsStoreMapper.mapState(['notificationsInitialized', 'notificationsDrawerVisible']),\n ...notificationsStoreMapper.mapGetters(['notifications', 'newNotificationsCount']),\n },\n methods: {\n ...notificationsStoreMapper.mapActions([\n 'getNewNotificationsCount',\n 'getNotifications',\n 'setNotificationAsRead',\n 'resetAndGetNotifications',\n 'initializeNotificationFeature',\n 'markAllNotificationsAsRead',\n ]),\n ...notificationsStoreMapper.mapMutations([\n 'setNewNotificationsCount',\n 'setNotificationsInitialized',\n 'openNotificationsDrawer',\n 'closeNotificationsDrawer',\n ]),\n },\n});\n\nexport const NotificationsFeatureInitializer = Vue.extend({\n methods: {\n ...notificationsStoreMapper.mapActions(['initializeNotificationFeature']),\n },\n});\n\nexport const usePushNotificationStore = createComposable(notificationsStore);\n","import { NotificationResponse } from '@eloomi/eloomi-notifications-persona-client/1.0';\nimport { computed } from 'vue';\nimport { debounce } from 'lodash-es';\nimport { getNotificationText, getNotificationRoute } from '@/notifications/services/misc';\nimport { usePushNotificationStore } from './store';\nimport { useRouter } from '@/common/composables';\n\nexport function usePushNotifications() {\n const store = usePushNotificationStore();\n const router = useRouter();\n\n const loadMore = debounce(store.actions.getNotifications, 200);\n\n const redirectFromNotification = (notification: NotificationResponse) => {\n store.actions.setNotificationAsRead(notification);\n const route = getNotificationRoute(notification);\n if (route) {\n router.push(route);\n }\n\n store.mutations.closeNotificationsDrawer();\n };\n\n const notifications = computed(() => store.getters.notifications);\n const newNotificationsCount = computed(() => store.getters.newNotificationsCount);\n const { markAllNotificationsAsRead } = store.actions;\n const { closeNotificationsDrawer, openNotificationsDrawer } = store.mutations;\n\n return {\n closeNotificationsDrawer,\n getNotificationText,\n loadMore,\n markAllNotificationsAsRead,\n newNotificationsCount,\n notifications,\n openNotificationsDrawer,\n redirectFromNotification,\n store,\n };\n}\n","/* eslint-disable vue/one-component-per-file */\nimport { createComposable, createMapper, Module, Mutations } from 'vuex-smart-module';\nimport { createStoreServiceFactory } from '@/di/store-factory';\n\nclass State {\n isOpenInAppNotificationShown = false;\n}\n\nclass StoreMutations extends Mutations {\n public showNotification() {\n this.state.isOpenInAppNotificationShown = true;\n }\n\n public hideNotification() {\n this.state.isOpenInAppNotificationShown = false;\n }\n}\n\nconst store = new Module({\n state: State,\n mutations: StoreMutations,\n});\n\nexport const useOpenInAppStore = createComposable(store);\nexport const openInAppStoreMapper = createMapper(store);\n\nexport const OpenInAppStoreServiceFactory = createStoreServiceFactory({\n ...openInAppStoreMapper.mapState(['isOpenInAppNotificationShown']),\n ...openInAppStoreMapper.mapMutations(['showNotification', 'hideNotification']),\n});\n\nexport type OpenInAppStoreService = ReturnType;\n\nexport default store;\n","import { makeCurrentUserPermissionChecker, Permission, PermissionChecker, Permissions } from '@/permissions';\nimport { computed, ref } from 'vue';\nimport { useInjector } from '@/di/use-injector';\nimport { useUserProfileDetailsStore } from '@/common/store/user-details/store';\n\nexport function usePermissions() {\n const userProfileDetails = useUserProfileDetailsStore();\n const injector = useInjector();\n const makePermissionChecker = injector.injectFunction(makeCurrentUserPermissionChecker);\n\n const checker = ref(null);\n\n makePermissionChecker().then(permissionChecker => {\n checker.value = permissionChecker;\n });\n\n function hasPermission(permission: Permission) {\n return Boolean(checker.value?.hasPermission(permission));\n }\n\n function hasAnyPermission(...permissions: Permission[]) {\n return Boolean(checker.value?.hasAnyPermission(...permissions));\n }\n\n function hasEveryPermission(...permissions: Permission[]) {\n return Boolean(checker.value?.hasEveryPermission(...permissions));\n }\n\n const canAccessGroupReport = computed(() => {\n return hasPermission(Permissions.Reporting) || userProfileDetails.state.isReportingManager;\n });\n\n return { hasPermission, hasAnyPermission, hasEveryPermission, canAccessGroupReport };\n}\n","import type { MainInjector } from '@/di/injector';\n\nimport { PermissionsRouteGuard } from './use-cases/route-guard';\n\nexport function installPermissionsRouteGuard(injector: MainInjector) {\n const routeGuard = injector.injectClass(PermissionsRouteGuard);\n routeGuard.install();\n}\n","export const PermissionsServiceTokens = Object.freeze({\n RouterAdapter: 'RouterAdapter',\n UserProfileProvider: 'UserProfileProvider',\n} as const);\n","export const Permissions = Object.freeze({\n Unknown: 'unknown',\n Reporting: 'reporting',\n AdminUsers: 'admin-users',\n AdminGroups: 'admin-groups',\n AdminCourses: 'admin-courses',\n AdminEvents: 'admin-events',\n AdminPlaylists: 'admin-playlists',\n AdminSkills: 'admin-skills',\n AdminCategoriesTopics: 'admin-categories-topics',\n AdminBilling: 'admin-billing',\n AdminBranding: 'admin-branding',\n AdminApi: 'admin-api',\n AdminContentStore: 'admin-content-store',\n} as const);\n\nexport type Permission = typeof Permissions[keyof typeof Permissions];\n\nexport interface RouteWithPermissions {\n requiredPermissions?: Permission[];\n}\n\nexport function isAnyPermissionRequiredForRoute(route: RouteWithPermissions): route is Required {\n if (route.requiredPermissions === undefined || route.requiredPermissions.length === 0) {\n return false;\n }\n return true;\n}\n\nexport class UserWithPermissions {\n private readonly permissions: Set;\n\n public constructor(permissions: Permission[]) {\n this.permissions = new Set(permissions);\n }\n\n public hasPermission(permission: Permission) {\n return this.permissions.has(permission);\n }\n\n public hasAccessToRoute(route: RouteWithPermissions) {\n if (isAnyPermissionRequiredForRoute(route)) {\n return route.requiredPermissions.every(permission => this.hasPermission(permission));\n } else {\n return true;\n }\n }\n\n public get isAnonymous() {\n return false;\n }\n}\n\nexport class AnonymousUser extends UserWithPermissions {\n public constructor() {\n super([]);\n }\n\n public get isAnonymous() {\n return true;\n }\n}\n","import { PermissionsServiceTokens as Tokens } from '../di-tokens';\nimport type { Permission } from '../domain';\nimport type { UserWithPermissionsProvider } from './ports';\n\n/**\n * Check if current user has a permission.\n *\n * @example\n * import { makeCurrentUserPermissionChecker } from '..';\n * const makePermissionChecker = injector.injectFunction(makeCurrentUserPermissionChecker);\n * const checker = await makePermissionChecker();\n * const result = checker.hasPermission(Permissions.AdminApi);\n */\nexport function makeCurrentUserPermissionChecker(userProfileProvider: UserWithPermissionsProvider) {\n return async () => {\n const user = await userProfileProvider.getCurrentUser();\n return {\n hasPermission(permission: Permission) {\n return user.hasPermission(permission);\n },\n\n hasAnyPermission(...permissions: Permission[]) {\n return permissions.some(permission => user.hasPermission(permission));\n },\n\n hasEveryPermission(...permissions: Permission[]) {\n return permissions.every(permission => user.hasPermission(permission));\n },\n };\n };\n}\n\nexport type PermissionChecker = Awaited>>;\n\nmakeCurrentUserPermissionChecker.inject = [Tokens.UserProfileProvider] as const;\n","import { type RouteWithPermissions, isAnyPermissionRequiredForRoute } from '../domain';\nimport type { Router, UserWithPermissionsProvider } from './ports';\n\nimport { PermissionsServiceTokens as Tokens } from '../di-tokens';\nimport { makeLogger, makeWarnLogger } from '@/common/services';\n\n/**\n * It installs route handler and checks if a user has enough permissions to an ongoing route transition.\n * If there is no permissions it's trying to call 404 route handler.\n */\n\nexport class PermissionsRouteGuard {\n public static inject = [Tokens.RouterAdapter, Tokens.UserProfileProvider] as const;\n\n private readonly log = makeLogger('permissions-route-guard');\n private readonly warnLog = makeWarnLogger('permissions-route-guard');\n\n public constructor(private readonly router: Router, private readonly userProvider: UserWithPermissionsProvider) {}\n\n public install() {\n this.router.addBeforeEachRouteHandler(this.checkIfUserHasPermissionsForRoute.bind(this));\n }\n\n private async checkIfUserHasPermissionsForRoute(route: RouteWithPermissions, goNext) {\n if (!isAnyPermissionRequiredForRoute(route)) {\n this.log('passing, since no permissions required for the route');\n return goNext();\n }\n\n const user = await this.userProvider.getCurrentUser();\n\n /**\n * By default it shouldn't happen since if user is anonymous it should be intercepted\n * by authentication middleware.\n *\n * If route isn't marked with \"requiresAuth\" but it has \"requiredPermissions\"\n * then this may happen if user isn't authenticated.\n */\n if (user.isAnonymous) {\n this.warnLog('anonymous user detected, that is weird, please mark route with \"requiresAuth\"');\n }\n\n if (!user.hasAccessToRoute(route)) {\n this.warnLog('restricting the route visit since lack of permissions detected');\n return this.router.handle404(goNext);\n }\n\n this.log('passing the route by successful permission check');\n goNext();\n }\n}\n","enum PlanFeaturesList {\n API = 'api',\n BILLING = 'billing',\n BRANDING = 'branding',\n CATEGORIES_TOPICS = 'categories-topics',\n COURSES = 'courses',\n CUSTOM_FIELDS = 'custom-fields',\n DEADLINES = 'deadlines',\n EVENTS = 'events',\n GROUPS = 'groups',\n PLAYLISTS = 'playlists',\n REPORTING = 'reporting',\n SCORM = 'scorm',\n SEGMENT_REPORTING = 'segment-reporting',\n SKILLS = 'skills',\n USER_PERMISSIONS = 'user-permissions',\n NATIVE_INTEGRATION = 'native-integration',\n}\n\nexport default PlanFeaturesList;\n","import PlanFeaturesList from '@/plan-features/plan-features-list';\nimport store, { smartRootModule } from '@/main/baseStore';\nimport { NavigationGuard, NavigationGuardNext, Route } from 'vue-router';\nimport { handlePageNotFound } from '@/common/services/transition-common';\n\nexport const checkIfRouteAvailableByPlanFeatures = (featureEntity: PlanFeaturesList): NavigationGuard => {\n return async (_to: Route, _from: Route, next: NavigationGuardNext) => {\n const planFeaturesModule = smartRootModule.context(store).modules.planFeatures;\n const isPlanFeaturesInitialized = planFeaturesModule.state.initialized;\n\n if (!isPlanFeaturesInitialized) {\n await planFeaturesModule.actions.initializeAllFeatures();\n }\n\n const isPageAvailable = planFeaturesModule.getters.checkIfFeatureEnabled(featureEntity);\n\n if (!isPageAvailable) {\n handlePageNotFound(next);\n } else {\n next();\n }\n };\n};\n","import { Module, Mutations, Actions, createMapper, Getters, createComposable } from 'vuex-smart-module';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { Vue } from 'vue-property-decorator';\nimport { authorizeClient } from '@/api/http-client';\nimport { FeatureApiFactory } from '@eloomi/eloomi-platforms-persona-client/1.0/api/feature-api';\n\nconst platformFeaturesClient = authorizeClient(FeatureApiFactory);\n\nclass State {\n public features: Record | {} = {\n [PlanFeaturesList.SCORM]: true,\n [PlanFeaturesList.COURSES]: true,\n [PlanFeaturesList.PLAYLISTS]: true,\n [PlanFeaturesList.CATEGORIES_TOPICS]: true,\n [PlanFeaturesList.CUSTOM_FIELDS]: true,\n [PlanFeaturesList.GROUPS]: true,\n [PlanFeaturesList.REPORTING]: true,\n [PlanFeaturesList.BRANDING]: true,\n [PlanFeaturesList.SEGMENT_REPORTING]: true,\n [PlanFeaturesList.USER_PERMISSIONS]: true,\n [PlanFeaturesList.BILLING]: true,\n [PlanFeaturesList.SKILLS]: true,\n [PlanFeaturesList.NATIVE_INTEGRATION]: true,\n };\n public initialized = false;\n public initializeRequestPromise: Promise | null = null;\n public featuresList = PlanFeaturesList;\n}\n\nclass StoreGetters extends Getters {\n public checkIfFeatureEnabled(featureName: PlanFeaturesList | PlanFeaturesList[]) {\n const featureNameArray = Array.isArray(featureName) ? featureName : [featureName];\n return featureNameArray.every(feature => this.state.features[feature]);\n }\n}\n\nexport class StoreActions extends Actions {\n public async initializeAllFeatures() {\n if (this.state.initializeRequestPromise === null) {\n this.mutations.setInitializePromise(\n platformFeaturesClient.getPlatformFeatureSettings().then(response => {\n this.mutations.setFeatureState(response.data as Record);\n })\n );\n }\n\n await this.state.initializeRequestPromise!;\n }\n}\n\nclass StoreMutations extends Mutations {\n public setFeatureState(featureState: Record) {\n this.state.features = {\n ...this.state.features,\n ...featureState,\n };\n\n this.state.initialized = true;\n this.state.initializeRequestPromise = null;\n }\n\n public setInitializePromise(promise: Promise) {\n this.state.initializeRequestPromise = promise;\n }\n}\n\nconst planFeaturesStore = new Module({\n state: State,\n mutations: StoreMutations,\n actions: StoreActions,\n getters: StoreGetters,\n});\n\nexport const usePlanFeaturesStore = createComposable(planFeaturesStore);\n\nexport default planFeaturesStore;\nexport const planFeaturesStoreMapper = createMapper(planFeaturesStore);\nexport const PlanFeaturesMappedStore = Vue.extend({\n computed: {\n ...planFeaturesStoreMapper.mapState(['features', 'initialized', 'featuresList']),\n ...planFeaturesStoreMapper.mapGetters(['checkIfFeatureEnabled']),\n },\n methods: planFeaturesStoreMapper.mapActions(['initializeAllFeatures']),\n});\n","import { Module, Mutations, createMapper, createComposable } from 'vuex-smart-module';\nimport { Vue } from 'vue-property-decorator';\n\nclass State {\n public isSkillSetupModalVisible = false;\n}\n\nclass StoreMutations extends Mutations {\n public showSkillSetupModal() {\n this.state.isSkillSetupModalVisible = true;\n }\n\n public hideSkillSetupModal() {\n this.state.isSkillSetupModalVisible = false;\n }\n}\n\nexport const skillSetupStore = new Module({\n state: State,\n mutations: StoreMutations,\n});\n\nexport const skillSetupStoreMapper = createMapper(skillSetupStore);\n\nexport const useSkillSetupStore = createComposable(skillSetupStore);\n\nexport const SkillSetupStoreMixin = Vue.extend({\n computed: {\n ...skillSetupStoreMapper.mapState(['isSkillSetupModalVisible']),\n },\n methods: {\n ...skillSetupStoreMapper.mapMutations(['showSkillSetupModal', 'hideSkillSetupModal']),\n },\n});\n\nexport default skillSetupStoreMapper;\n","import { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { RouteConfig } from 'vue-router';\nimport { CoursesRouteNames } from '@/courses/route-definitions';\n\nconst profileSettingsPage = () => import('./pages/ProfileSettingsPage.vue');\n\nexport const enum ProfileSettingsRoutes {\n PROFILE_SETTINGS = 'profile-settings',\n}\n\nconst routes: RouteConfig[] = [\n {\n path: `${ProfileSettingsRoutes.PROFILE_SETTINGS}`,\n name: ProfileSettingsRoutes.PROFILE_SETTINGS,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Profile Settings`,\n defaultBackRoute: CoursesRouteNames.COURSES_DASHBOARD,\n },\n component: profileSettingsPage,\n },\n];\n\nexport default routes;\n","import { RouteConfig } from 'vue-router';\n\nimport { PREFIX_IN_BROWSER_TAB } from '@/common/platform-configuration/global-variables';\nimport { guards } from '@/main/multipleGuardsHandler';\nimport { checkIfAvailableByLaunchDarkly } from '@/launch-darkly/routes/launch-darkly.guard';\nimport PlanFeaturesList from '@/plan-features/plan-features-list';\nimport { checkIfRouteAvailableByPlanFeatures } from '@/plan-features/routes';\nimport { AppFeaturesList } from '@/launch-darkly/models';\nimport { redirectIfGuard } from '@/common/services/redirectIf.guard';\nimport store, { smartRootModule } from '@/main/baseStore';\nimport { Permissions } from '@/permissions';\n\nexport const enum Paths {\n REPORTING = 'reporting',\n COURSE = 'course',\n USER = 'user',\n REPORT = 'report',\n ADMIN_REPORT = 'admin-report',\n ALL_COURSES = 'courses',\n ALL_USERS = 'users',\n SEGMENTS = 'segments',\n GROUP = 'group',\n SEGMENT_OVERVIEW = 'segment-overview',\n TOPIC = 'topic',\n MOBILE = 'mobile',\n SKILLS = 'skills',\n}\n\nexport enum Names {\n ROOT_REPORT = 'root-report',\n COURSE_REPORT = 'course-report',\n USER_REPORT = 'user-report',\n MY_REPORT = 'my-report',\n ROOT_ADMIN_REPORT = 'admin-report-root',\n MY_ADMIN_REPORT = 'my-admin-report',\n USERS_REPORT = 'admin-users-report',\n COURSES_REPORT = 'admin-courses-report',\n SEGMENT_GROUP_REPORT = 'segment-group-report',\n SEGMENT_OVERVIEW = 'segment-overview',\n SEGMENT_TOPIC_REPORT = 'admin-topic-report',\n GROUPS_REPORT = 'group-report',\n MY_GROUP_REPORT = 'my-group-report',\n MOBILE_ROOT = 'mobile-reporting',\n REPORT_MANAGER_MOBILE_ROOT = 'report-manager-mobile-reporting',\n SKILLS_REPORT = 'skills-report',\n SKILL_REPORT = 'skill-report',\n}\n\nconst COURSE_REPORT_PAGE = () => import('./pages/CourseReportPage.vue');\nconst USER_REPORT_PAGE = () => import('./pages/UserReportPage.vue');\nconst MY_REPORT = () => import('./components/MyReport.vue');\nconst ALL_COURSES_REPORT_PAGE = () => import('./pages/AllCoursesReportPage.vue');\nconst ALL_USERS_REPORT_PAGE = () => import('./pages/AllUsersReportPage.vue');\nconst SEGMENT_GROUP_REPORT_PAGE = () => import('./pages/SegmentGroupReportPage.vue');\nconst SEGMENT_OVERVIEW_PAGE = () => import('./pages/SegmentOverviewPage.vue');\nconst SEGMENT_TOPIC_REPORT_PAGE = () => import('./pages/SegmentTopicReportPage.vue');\nconst GROUP_REPORT_PAGE = () => import('./pages/GroupReportPage.vue');\nconst ADMIN_ROOT_PAGE = () => import('@/admin/pages/AdminRootPage.vue');\nconst MOBILE_ROOT_PAGE = () => import('@/reporting/pages/ReportingRootPage.vue');\nconst SKILLS_REPORT_PAGE = () => import('@/reporting/pages/SkillsReportPage.vue');\nconst SKILL_REPORT_PAGE = () => import('@/reporting/pages/SkillReportPage.vue');\n\nconst segmentReportingGuard = guards([\n checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.SEGMENT_REPORTING),\n checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.REPORTING),\n]);\n\nconst routes: RouteConfig[] = [\n {\n path: `${Paths.REPORT}`,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Report`,\n showNavigationSidebar: true,\n leftSidebarIsCompact: true,\n },\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.REPORTING),\n children: [\n {\n path: ``,\n name: Names.MY_REPORT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Report`,\n showNavigationSidebar: true,\n leftSidebarIsCompact: true,\n titleTranslationKey: 'spa.navigation.sections.reports.my-learning',\n },\n component: MY_REPORT,\n },\n {\n path: `${Paths.GROUP}`,\n name: Names.MY_GROUP_REPORT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Report`,\n showNavigationSidebar: true,\n leftSidebarIsCompact: true,\n titleTranslationKey: 'spa.navigation.sections.reports.groups-report',\n },\n component: GROUP_REPORT_PAGE,\n },\n {\n path: `${Paths.MOBILE}`,\n name: Names.REPORT_MANAGER_MOBILE_ROOT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Reporting`,\n titleTranslationKey: 'spa.navigation.sections.main.reports',\n },\n component: MOBILE_ROOT_PAGE,\n beforeEnter: guards([redirectIfGuard(() => isDesktop(), Names.MY_REPORT)]),\n },\n ],\n component: ADMIN_ROOT_PAGE,\n },\n {\n path: `${Paths.REPORTING}/${Paths.COURSE}/:course_id(\\\\d+)`,\n name: Names.COURSE_REPORT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Reporting`,\n defaultBackRoute: Names.COURSES_REPORT,\n requiredPermissions: [Permissions.Reporting],\n },\n component: COURSE_REPORT_PAGE,\n },\n {\n path: `${Paths.REPORTING}/${Paths.USER}/:user_id(\\\\d+)`,\n name: Names.USER_REPORT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Reporting`,\n defaultBackRoute: Names.USERS_REPORT,\n requiredPermissions: [],\n },\n component: USER_REPORT_PAGE,\n },\n {\n path: `${Paths.REPORTING}/${Paths.SEGMENTS}/${Paths.GROUP}/:id`,\n name: Names.SEGMENT_GROUP_REPORT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Segment Group Report`,\n defaultBackRoute: Names.SEGMENT_OVERVIEW,\n requiredPermissions: [],\n },\n beforeEnter: segmentReportingGuard,\n component: SEGMENT_GROUP_REPORT_PAGE,\n },\n {\n path: `${Paths.REPORTING}/${Paths.SEGMENTS}/${Paths.TOPIC}/:id`,\n name: Names.SEGMENT_TOPIC_REPORT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Segment Topic Report`,\n defaultBackRoute: Names.SEGMENT_OVERVIEW,\n requiredPermissions: [Permissions.Reporting],\n },\n beforeEnter: segmentReportingGuard,\n component: SEGMENT_TOPIC_REPORT_PAGE,\n },\n {\n path: `${Paths.REPORTING}/${Paths.SKILLS}/:id`,\n name: Names.SKILL_REPORT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Skill Report`,\n defaultBackRoute: Names.SKILLS_REPORT,\n requiredPermissions: [Permissions.Reporting, Permissions.AdminSkills],\n },\n beforeEnter: guards([checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.SKILLS)]),\n component: SKILL_REPORT_PAGE,\n },\n];\n\nexport const adminReportRoutes: RouteConfig[] = [\n {\n path: `${Paths.REPORT}/`,\n name: Names.MY_ADMIN_REPORT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Report`,\n showNavigationSidebar: true,\n leftSidebarIsCompact: true,\n titleTranslationKey: 'spa.navigation.sections.reports.my-learning',\n requiredPermissions: [Permissions.Reporting],\n },\n component: MY_REPORT,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.REPORTING),\n },\n {\n path: `${Paths.REPORT}/${Paths.ALL_COURSES}/`,\n name: Names.COURSES_REPORT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Courses Report`,\n showNavigationSidebar: true,\n leftSidebarIsCompact: true,\n titleTranslationKey: 'spa.navigation.sections.reports.courses',\n requiredPermissions: [Permissions.Reporting],\n },\n component: ALL_COURSES_REPORT_PAGE,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.REPORTING),\n },\n {\n path: `${Paths.REPORT}/${Paths.ALL_USERS}/`,\n name: Names.USERS_REPORT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Users Report`,\n showNavigationSidebar: true,\n leftSidebarIsCompact: true,\n titleTranslationKey: 'spa.navigation.sections.reports.users',\n requiredPermissions: [Permissions.Reporting],\n },\n component: ALL_USERS_REPORT_PAGE,\n beforeEnter: checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.REPORTING),\n },\n {\n path: `${Paths.REPORT}/${Paths.SEGMENT_OVERVIEW}/`,\n name: Names.SEGMENT_OVERVIEW,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Users Report`,\n showNavigationSidebar: true,\n leftSidebarIsCompact: true,\n titleTranslationKey: 'spa.navigation.sections.reports.segments',\n requiredPermissions: [Permissions.Reporting],\n },\n component: SEGMENT_OVERVIEW_PAGE,\n beforeEnter: segmentReportingGuard,\n },\n {\n path: `${Paths.REPORT}/${Paths.GROUP}/`,\n name: Names.GROUPS_REPORT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Groups Report`,\n showNavigationSidebar: true,\n leftSidebarIsCompact: true,\n titleTranslationKey: 'spa.navigation.sections.reports.groups',\n requiredPermissions: [Permissions.Reporting],\n },\n component: GROUP_REPORT_PAGE,\n beforeEnter: guards([\n checkIfAvailableByLaunchDarkly(AppFeaturesList.GROUPS_REPORTING_MANAGER),\n checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.USER_PERMISSIONS),\n checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.REPORTING),\n ]),\n },\n {\n path: `${Paths.REPORT}/${Paths.SKILLS}/`,\n name: Names.SKILLS_REPORT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Skills Report`,\n showNavigationSidebar: true,\n leftSidebarIsCompact: true,\n titleTranslationKey: 'spa.navigation.sections.reports.skills',\n requiredPermissions: [Permissions.Reporting],\n },\n component: SKILLS_REPORT_PAGE,\n beforeEnter: guards([checkIfRouteAvailableByPlanFeatures(PlanFeaturesList.SKILLS)]),\n },\n {\n path: `${Paths.REPORT}/${Paths.MOBILE}`,\n name: Names.MOBILE_ROOT,\n meta: {\n title: `${PREFIX_IN_BROWSER_TAB} | Reporting`,\n titleTranslationKey: 'spa.navigation.sections.main.reports',\n requiredPermissions: [Permissions.Reporting],\n },\n component: MOBILE_ROOT_PAGE,\n beforeEnter: guards([redirectIfGuard(() => isDesktop(), Names.MY_ADMIN_REPORT)]),\n },\n];\n\nconst isDesktop = () => {\n const module = smartRootModule.context(store).modules.mobileMode;\n\n return Boolean(!module.getters.isMobile());\n};\n\nexport default routes;\n","import store, { smartRootModule } from '@/main/baseStore';\nimport { NavigationGuardNext, Route } from 'vue-router';\nimport { handlePageNotFound } from '@/common/services/transition-common';\nimport { AppFeaturesList } from '../models';\n\nexport const checkIfAvailableByLaunchDarkly = (launchDarklyFeature: AppFeaturesList) => {\n return async (_to: Route, _from: Route, next: NavigationGuardNext) => {\n const launchDarklyFeaturesStore = smartRootModule.context(store).modules.launchDarklyFeatureStore;\n const isLaunchDarklyFeaturesInitialized = launchDarklyFeaturesStore.state.launchDarklyInitialized;\n\n if (!isLaunchDarklyFeaturesInitialized) {\n await launchDarklyFeaturesStore.actions.initializeLaunchDarkly();\n }\n\n const isPageAvailable =\n launchDarklyFeaturesStore.getters.checkIfLaunchDarklyFeatureEnabled(launchDarklyFeature);\n\n if (!isPageAvailable) {\n handlePageNotFound(next);\n } else {\n next();\n }\n };\n};\n","import Vue from 'vue';\nimport * as Sentry from '@sentry/vue';\nimport { Integrations as TracingIntegrations } from '@sentry/tracing';\nimport environment from './environment';\nimport SentryFullStory from '@sentry/fullstory';\nimport { initializeFullstory } from './fullstory';\nimport { Integration } from '@sentry/types';\nimport VueRouter from 'vue-router';\nimport { LoginSessionLoadError } from '@/authentication/services/errors';\n\ninitializeFullstory();\n\nexport function initializeSentry(router: VueRouter) {\n if (environment.sentryDsn && environment.sentryOrganisation) {\n const tracingOrigins = [\n 'api-staging.eloomi.com',\n 'api.eloomi.com',\n 'persona-api.staging.eloomi.io',\n 'persona-api.eloomi.io',\n ];\n\n if (environment.clientType === 'mobileApp') {\n tracingOrigins.push('localhost');\n }\n\n const integrations: Array = [\n new TracingIntegrations.BrowserTracing({\n routingInstrumentation: Sentry.vueRouterInstrumentation(router),\n traceFetch: true,\n traceXHR: true,\n startTransactionOnPageLoad: true,\n startTransactionOnLocationChange: true,\n tracingOrigins: tracingOrigins,\n markBackgroundTransactions: false,\n }),\n ];\n\n if (environment.fullstoryOrgId) {\n integrations.push(new SentryFullStory(environment.sentryOrganisation));\n }\n\n Sentry.init({\n Vue,\n dsn: environment.sentryDsn,\n release: environment.sentryRelease,\n integrations: integrations,\n tracesSampleRate: environment.sentryTraceSampleRate,\n environment: environment.type,\n attachStacktrace: true,\n ignoreErrors: [\n 'ResizeObserver loop',\n 'Redirected when going from',\n new RegExp(LoginSessionLoadError.message),\n ],\n });\n }\n}\n\n/** Get initialized sentry instance. In case sentry is disabled this is noop. */\nexport function withSentry(func: (sentry: typeof Sentry) => void) {\n const instance = Sentry.getCurrentHub().getClient();\n\n if (!instance) return;\n\n func(Sentry);\n}\n","// This file is auto-generated by update-translation-configuration script.\n// Don't edit it manually, instead run `npm run update-translation-configuration`.\n\nexport enum Language {\n 'da-DK' = 'da-DK',\n 'de-DE' = 'de-DE',\n 'en-GB' = 'en-GB',\n 'es-ES' = 'es-ES',\n 'fr-FR' = 'fr-FR',\n 'is-IS' = 'is-IS',\n 'no-NO' = 'no-NO',\n 'pt-PT' = 'pt-PT',\n 'ru-RU' = 'ru-RU',\n 'zh-CN' = 'zh-CN',\n}\n\nexport const languages = [\n Language['da-DK'],\n Language['de-DE'],\n Language['en-GB'],\n Language['es-ES'],\n Language['fr-FR'],\n Language['is-IS'],\n Language['no-NO'],\n Language['pt-PT'],\n Language['ru-RU'],\n Language['zh-CN'],\n];\nexport const defaultLanguage = Language['en-GB'];\n\nexport { default as defaultDictionary } from '@/translations/modules/en-GB';\n\nimport adminApiTokensTranslations from '@/admin/api-tokens/i18n/translations.en-GB.json';\nimport adminBillingTranslations from '@/admin/billing/i18n/translations.en-GB.json';\nimport adminBrandingTranslations from '@/admin/branding/i18n/translations.en-GB.json';\nimport adminCategoriesTranslations from '@/admin/categories/i18n/translations.en-GB.json';\nimport adminCoursesTranslations from '@/admin/courses/i18n/translations.en-GB.json';\nimport adminEventsTranslations from '@/admin/events/i18n/translations.en-GB.json';\nimport adminGroupsTranslations from '@/admin/groups/i18n/translations.en-GB.json';\nimport adminTranslations from '@/admin/i18n/translations.en-GB.json';\nimport adminPlaylistsTranslations from '@/admin/playlists/i18n/translations.en-GB.json';\nimport adminSettingsTranslations from '@/admin/settings/i18n/translations.en-GB.json';\nimport adminSkillsTranslations from '@/admin/skills/i18n/translations.en-GB.json';\nimport adminTopicsTranslations from '@/admin/topics/i18n/translations.en-GB.json';\nimport adminUsersTranslations from '@/admin/users/i18n/translations.en-GB.json';\nimport authenticationTranslations from '@/authentication/i18n/translations.en-GB.json';\nimport commonComponentsTranslations from '@/common/components/i18n/translations.en-GB.json';\nimport commonTranslations from '@/common/i18n/translations.en-GB.json';\nimport contentStoreTranslations from '@/content-store/i18n/translations.en-GB.json';\nimport coursesTranslations from '@/courses/i18n/translations.en-GB.json';\nimport eventsTranslations from '@/events/i18n/translations.en-GB.json';\nimport notificationsTranslations from '@/notifications/i18n/translations.en-GB.json';\nimport openInAppTranslations from '@/open-in-app/i18n/translations.en-GB.json';\nimport profileSettingsTranslations from '@/profile-settings/i18n/translations.en-GB.json';\nimport reportingCommonTranslations from '@/reporting/i18n/common/translations.en-GB.json';\nimport reportingCourseReportTranslations from '@/reporting/i18n/course-report/translations.en-GB.json';\nimport reportingSegmentsTranslations from '@/reporting/i18n/segments/translations.en-GB.json';\nimport reportingSkillsReportTranslations from '@/reporting/i18n/skills-report/translations.en-GB.json';\nimport reportingUserGroupsReportTranslations from '@/reporting/i18n/user-groups-report/translations.en-GB.json';\nimport reportingUserReportTranslations from '@/reporting/i18n/user-report/translations.en-GB.json';\n\nexport type AdminApiTokensTranslationsKeys = keyof typeof adminApiTokensTranslations;\nexport type AdminBillingTranslationsKeys = keyof typeof adminBillingTranslations;\nexport type AdminBrandingTranslationsKeys = keyof typeof adminBrandingTranslations;\nexport type AdminCategoriesTranslationsKeys = keyof typeof adminCategoriesTranslations;\nexport type AdminCoursesTranslationsKeys = keyof typeof adminCoursesTranslations;\nexport type AdminEventsTranslationsKeys = keyof typeof adminEventsTranslations;\nexport type AdminGroupsTranslationsKeys = keyof typeof adminGroupsTranslations;\nexport type AdminTranslationsKeys = keyof typeof adminTranslations;\nexport type AdminPlaylistsTranslationsKeys = keyof typeof adminPlaylistsTranslations;\nexport type AdminSettingsTranslationsKeys = keyof typeof adminSettingsTranslations;\nexport type AdminSkillsTranslationsKeys = keyof typeof adminSkillsTranslations;\nexport type AdminTopicsTranslationsKeys = keyof typeof adminTopicsTranslations;\nexport type AdminUsersTranslationsKeys = keyof typeof adminUsersTranslations;\nexport type AuthenticationTranslationsKeys = keyof typeof authenticationTranslations;\nexport type CommonComponentsTranslationsKeys = keyof typeof commonComponentsTranslations;\nexport type CommonTranslationsKeys = keyof typeof commonTranslations;\nexport type ContentStoreTranslationsKeys = keyof typeof contentStoreTranslations;\nexport type CoursesTranslationsKeys = keyof typeof coursesTranslations;\nexport type EventsTranslationsKeys = keyof typeof eventsTranslations;\nexport type NotificationsTranslationsKeys = keyof typeof notificationsTranslations;\nexport type OpenInAppTranslationsKeys = keyof typeof openInAppTranslations;\nexport type ProfileSettingsTranslationsKeys = keyof typeof profileSettingsTranslations;\nexport type ReportingCommonTranslationsKeys = keyof typeof reportingCommonTranslations;\nexport type ReportingCourseReportTranslationsKeys = keyof typeof reportingCourseReportTranslations;\nexport type ReportingSegmentsTranslationsKeys = keyof typeof reportingSegmentsTranslations;\nexport type ReportingSkillsReportTranslationsKeys = keyof typeof reportingSkillsReportTranslations;\nexport type ReportingUserGroupsReportTranslationsKeys = keyof typeof reportingUserGroupsReportTranslations;\nexport type ReportingUserReportTranslationsKeys = keyof typeof reportingUserReportTranslations;\n\nexport type TranslationKeys =\n | AdminApiTokensTranslationsKeys\n | AdminBillingTranslationsKeys\n | AdminBrandingTranslationsKeys\n | AdminCategoriesTranslationsKeys\n | AdminCoursesTranslationsKeys\n | AdminEventsTranslationsKeys\n | AdminGroupsTranslationsKeys\n | AdminTranslationsKeys\n | AdminPlaylistsTranslationsKeys\n | AdminSettingsTranslationsKeys\n | AdminSkillsTranslationsKeys\n | AdminTopicsTranslationsKeys\n | AdminUsersTranslationsKeys\n | AuthenticationTranslationsKeys\n | CommonComponentsTranslationsKeys\n | CommonTranslationsKeys\n | ContentStoreTranslationsKeys\n | CoursesTranslationsKeys\n | EventsTranslationsKeys\n | NotificationsTranslationsKeys\n | OpenInAppTranslationsKeys\n | ProfileSettingsTranslationsKeys\n | ReportingCommonTranslationsKeys\n | ReportingCourseReportTranslationsKeys\n | ReportingSegmentsTranslationsKeys\n | ReportingSkillsReportTranslationsKeys\n | ReportingUserGroupsReportTranslationsKeys\n | ReportingUserReportTranslationsKeys;\n","export type PluralKey = Partial>;\n\nexport type Dictionary = Record
{{ description }}
{{ topText }}
\n {{ panelTitle }}\n
{{ trans('spa.notification.no-notifications') }}
{{ message }}
\n {{ label }}\n
{{ text }}
{{ receivedTimeFormated }}