{"version":3,"file":"js/main-legacy.8654a5da.js","mappings":"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,GACT6R,EAAWC,EAAc9R,EAC3B,GAEF4W,QAAS,CACPkjD,QAAO,SAAAjvD,EAAaosD,GAAM,IAAhBpgD,EAAMhM,EAANgM,OACRA,EAAO,UAAWogD,EACpB,EACA1gD,WAAU,SAAAO,GAAa,IAAVD,EAAMC,EAAND,OACXA,EAAO,aACT,I,yXCQJjY,EAAAA,WAAIwL,IAAI2vD,EAAAA,IAERC,EAAAA,GAAAA,IAAYC,EAAAA,IAEZ,IAAMC,GAAW,IAAIF,EAAAA,GAAAA,SAErBE,GAASC,SAASnwC,EAAAA,GAClBkwC,GAASC,SAAStsC,EAAAA,GAClBqsC,GAASC,SAASnsC,EAAAA,GAClBksC,GAASC,SAASlsC,EAAAA,GAClBisC,GAASC,SAASngB,EAAAA,GAClBkgB,GAASC,SAASne,EAAAA,GAClBke,GAASC,SAAS70C,EAAAA,GAClB40C,GAASC,SAASryC,EAAAA,GAClBoyC,GAASC,SAASjxC,EAAAA,GAClBgxC,GAASC,SAASrd,EAAAA,GAClBod,GAASC,SAASC,EAAAA,GAClBF,GAASC,SAASv4B,EAAAA,IAClBs4B,GAASC,SAAS/uC,EAAAA,GAClB8uC,GAASC,SAAS7c,EAAAA,GAClB4c,GAASC,SAASja,EAAAA,GAClBga,GAASC,SAAS39B,EAAAA,GAClB09B,GAASC,SAAS3qB,EAAAA,GAClB0qB,GAASC,SAASlnC,EAAAA,GAClBinC,GAASC,SAAS17B,EAAAA,GAClBy7B,GAASC,SAASl8B,EAAAA,GAClBi8B,GAASC,SAASzrC,EAAAA,GAClBwrC,GAASC,SAASjjC,EAAAA,GAClBgjC,GAASC,SAASnhE,EAAAA,GAClBkhE,GAASC,SAAS1jC,EAAAA,GAClByjC,GAASC,SAASnhC,EAAAA,GAClBkhC,GAASC,SAASvhC,EAAAA,GAClBshC,GAASC,SAASlW,EAAAA,IAClBiW,GAASC,SAAS1/B,EAAAA,GAClBy/B,GAASC,SAAS/e,GAAAA,GAClB8e,GAASC,SAASziC,GAAAA,GAClBwiC,GAASC,SAAS1lC,GAAAA,GAClBylC,GAASC,SAASlkC,GAAAA,GAClBikC,G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AAU,WAAa,CAAC,GAAK,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,W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","sources":["webpack://mindmaze/./src/components/layout/common/Stack.vue","webpack://mindmaze/src/components/layout/common/Stack.vue","webpack://mindmaze/./src/components/layout/common/Stack.vue?2c12","webpack://mindmaze/./src/components/layout/common/Stack.vue?3994","webpack://mindmaze/./src/components/login/LoginForm.vue","webpack://mindmaze/./src/components/ui/InputError.vue","webpack://mindmaze/src/components/ui/InputError.vue","webpack://mindmaze/./src/components/ui/InputError.vue?3a74","webpack://mindmaze/./src/components/ui/InputError.vue?de88","webpack://mindmaze/src/components/login/LoginForm.vue","webpack://mindmaze/./src/components/login/LoginForm.vue?1b0d","webpack://mindmaze/./src/components/login/LoginForm.vue?65be","webpack://mindmaze/./src/components/login/LoginModal.vue","webpack://mindmaze/src/components/login/LoginModal.vue","webpack://mindmaze/./src/components/login/LoginModal.vue?304d","webpack://mindmaze/./src/components/login/LoginModal.vue?bd9b","webpack://mindmaze/./src/components/ui/BaseButton.vue","webpack://mindmaze/src/components/ui/BaseButton.vue","webpack://mindmaze/./src/components/ui/BaseButton.vue?b05e","webpack://mindmaze/./src/components/ui/BaseButton.vue?9a03","webpack://mindmaze/./src/components/ui/BaseCheckbox.vue","webpack://mindmaze/src/components/ui/BaseCheckbox.vue","webpack://mindmaze/./src/components/ui/BaseCheckbox.vue?4428","webpack://mindmaze/./src/components/ui/BaseCheckbox.vue?c447","webpack://mindmaze/./src/components/ui/BaseInput.vue","webpack://mindmaze/src/components/ui/BaseInput.vue","webpack://mindmaze/./src/components/ui/BaseInput.vue?0493","webpack://mindmaze/./src/components/ui/BaseInput.vue?df2b","webpack://mindmaze/./src/components/ui/BaseLabel.vue","webpack://mindmaze/src/components/ui/BaseLabel.vue","webpack://mindmaze/./src/components/ui/BaseLabel.vue?60bc","webpack://mindmaze/./src/components/ui/BaseLabel.vue?8279","webpack://mindmaze/./src/components/ui/BaseModal.vue","webpack://mindmaze/src/components/ui/BaseModal.vue","webpack://mindmaze/./src/components/ui/BaseModal.vue?c85c","webpack://mindmaze/./src/components/ui/BaseModal.vue?a39e","webpack://mindmaze/./src/components/ui/LoadingIcon.vue","webpack://mindmaze/src/components/ui/LoadingIcon.vue","webpack://mindmaze/./src/components/ui/LoadingIcon.vue?b140","webpack://mindmaze/./src/components/ui/LoadingIcon.vue?ee03","webpack://mindmaze/./src/components/ui/NewFeatureBadge.vue","webpack://mindmaze/src/components/ui/NewFeatureBadge.vue","webpack://mindmaze/./src/components/ui/NewFeatureBadge.vue?8abb","webpack://mindmaze/./src/components/ui/NewFeatureBadge.vue?f6cc","webpack://mindmaze/./src/components/ui/PasswordInput.vue","webpack://mindmaze/src/components/ui/PasswordInput.vue","webpack://mindmaze/./src/components/ui/PasswordInput.vue?9eb5","webpack://mindmaze/./src/components/ui/PasswordInput.vue?1ac5","webpack://mindmaze/./src/components/ui/VuelidateErrorTemplate.vue","webpack://mindmaze/src/components/ui/VuelidateErrorTemplate.vue","webpack://mindmaze/./src/components/ui/VuelidateErrorTemplate.vue?d21e","webpack://mindmaze/./src/components/ui/VuelidateErrorTemplate.vue?d272","webpack://mindmaze/./src/components/ui/WarningBox.vue","webpack://mindmaze/src/components/ui/WarningBox.vue","webpack://mindmaze/./src/components/ui/WarningBox.vue?60a0","webpack://mindmaze/./src/components/ui/WarningBox.vue?2171","webpack://mindmaze/./src/components/ui/display-fields/BaseReadOnlyField.vue","webpack://mindmaze/src/components/ui/display-fields/BaseReadOnlyField.vue","webpack://mindmaze/./src/components/ui/display-fields/BaseReadOnlyField.vue?c092","webpack://mindmaze/./src/components/ui/display-fields/BaseReadOnlyField.vue?4d62","webpack://mindmaze/./src/config/entityRules.js","webpack://mindmaze/./src/config/ability.js","webpack://mindmaze/./src/i18n.js","webpack://mindmaze/./src/App.vue","webpack://mindmaze/./src/components/layout/AppLayout.vue","webpack://mindmaze/./src/components/ui/Toast.vue","webpack://mindmaze/src/components/ui/Toast.vue","webpack://mindmaze/./src/components/ui/Toast.vue?1adf","webpack://mindmaze/./src/components/ui/Toast.vue?dfc1","webpack://mindmaze/./src/components/application/CookieBar.vue","webpack://mindmaze/src/components/application/CookieBar.vue","webpack://mindmaze/./src/components/application/CookieBar.vue?8526","webpack://mindmaze/./src/components/application/CookieBar.vue?66a1","webpack://mindmaze/src/components/layout/AppLayout.vue","webpack://mindmaze/./src/components/layout/AppLayout.vue?3499","webpack://mindmaze/./src/components/layout/AppLayout.vue?7367","webpack://mindmaze/src/App.vue","webpack://mindmaze/./src/App.vue?c036","webpack://mindmaze/./src/App.vue?0e40","webpack://mindmaze/./src/components/ui/SvgIcon.vue","webpack://mindmaze/src/components/ui/SvgIcon.vue","webpack://mindmaze/./src/components/ui/SvgIcon.vue?8e16","webpack://mindmaze/./src/components/ui/SvgIcon.vue?2fa6","webpack://mindmaze/./src/components/ui/LoadingLayout.vue","webpack://mindmaze/src/components/ui/LoadingLayout.vue","webpack://mindmaze/./src/components/ui/LoadingLayout.vue?ad28","webpack://mindmaze/./src/components/ui/LoadingLayout.vue?032c","webpack://mindmaze/./src/components/application/Breadcrumbs.vue","webpack://mindmaze/src/components/application/Breadcrumbs.vue","webpack://mindmaze/./src/components/application/Breadcrumbs.vue?1125","webpack://mindmaze/./src/components/application/Breadcrumbs.vue?b532","webpack://mindmaze/./src/components.js","webpack://mindmaze/./src/plugins/tooltip.js","webpack://mindmaze/./src/plugins/vuePortal.js","webpack://mindmaze/./src/plugins/notifications.js","webpack://mindmaze/./src/components/ui/ConfirmDialog.vue","webpack://mindmaze/src/components/ui/ConfirmDialog.vue","webpack://mindmaze/./src/components/ui/ConfirmDialog.vue?1739","webpack://mindmaze/./src/components/ui/ConfirmDialog.vue?1d61","webpack://mindmaze/./src/plugins/confirmationDialog.js","webpack://mindmaze/./src/plugins/casl.js","webpack://mindmaze/./src/plugins/vuelidate.js","webpack://mindmaze/./src/plugins/vuelidate-error-extractor.js","webpack://mindmaze/./src/plugins/vcalendar.js","webpack://mindmaze/./src/plugins/vue-ctk-date-time-picker.js","webpack://mindmaze/./src/plugins/vueTelInput/vueTelInput.js","webpack://mindmaze/./src/plugins/loadScript.js","webpack://mindmaze/./src/plugins/vueClipboard.js","webpack://mindmaze/./src/plugins/vidyo/vidyo-store.js","webpack://mindmaze/./src/plugins/vidyo/conference.js","webpack://mindmaze/./src/plugins/vidyo/injector.js","webpack://mindmaze/./src/plugins/vidyo/index.js","webpack://mindmaze/./src/plugins/vidyo-plugin.js","webpack://mindmaze/./src/plugins/vueMultiSelect.js","webpack://mindmaze/./src/plugins/v-wave.js","webpack://mindmaze/./src/plugins/vueMq.js","webpack://mindmaze/./src/main.js","webpack://mindmaze/./src/models/ActivityDescription.model.js","webpack://mindmaze/./src/models/ActivityPatientUsage.model.js","webpack://mindmaze/./src/models/Asset.model.js","webpack://mindmaze/./src/models/AuditLog.model.js","webpack://mindmaze/./src/models/AuthOptions.model.js","webpack://mindmaze/./src/models/Customer.model.js","webpack://mindmaze/./src/models/CustomerNotification.model.js","webpack://mindmaze/./src/models/DateTimeOffset.model.js","webpack://mindmaze/./src/models/DayTrainingSummary.model.js","webpack://mindmaze/./src/models/FeedbackReport.model.js","webpack://mindmaze/./src/models/FeedbackReportAttachment.model.js","webpack://mindmaze/./src/models/Group.model.js","webpack://mindmaze/./src/models/InstructionsForUse.model.js","webpack://mindmaze/./src/models/LevelRecommendation.model.js","webpack://mindmaze/./src/models/License.model.js","webpack://mindmaze/./src/models/OptionalFeatureActivation.model.js","webpack://mindmaze/./src/models/OptionalFeatureDefinition.model.js","webpack://mindmaze/./src/models/PasswordOptions.model.js","webpack://mindmaze/./src/models/PatientLicense.model.js","webpack://mindmaze/./src/models/PatientSessionSummary.model.js","webpack://mindmaze/./src/models/PerformanceActivityPlanningAndTraining.model.js","webpack://mindmaze/./src/models/PerformanceActivityResult.model.js","webpack://mindmaze/./src/models/PersonalAccessToken.model.js","webpack://mindmaze/./src/models/PersonalSettings.model.js","webpack://mindmaze/./src/models/Profile.model.js","webpack://mindmaze/./src/models/ProgramNote.model.js","webpack://mindmaze/./src/models/Program.model.js","webpack://mindmaze/./src/models/ProgramActivity.model.js","webpack://mindmaze/./src/models/ProgramPreset.model.js","webpack://mindmaze/./src/models/SoapData.model.js","webpack://mindmaze/./src/utils/textBuilder.js","webpack://mindmaze/./src/models/SessionReport.model.js","webpack://mindmaze/./src/models/SiteParameters.model.js","webpack://mindmaze/./src/models/Site.model.js","webpack://mindmaze/./src/models/SiteUnit.model.js","webpack://mindmaze/./src/models/TherapeuticGoal.model.js","webpack://mindmaze/./src/models/Timezone.model.js","webpack://mindmaze/./src/models/UserSession.model.js","webpack://mindmaze/./src/models/VideoMeeting.model.js","webpack://mindmaze/./src/models/VideoMeetingRequest.model.js","webpack://mindmaze/./src/models/WeeklyActiveTrainingTimeGoal.model.js","webpack://mindmaze/./src/models/WeeklyActiveTrainingTimeGoalAndCompletion.model.js","webpack://mindmaze/./src/models/CompensationFeedbackResult.model.js","webpack://mindmaze/./src/models/activity-result/ActivityResult.model.js","webpack://mindmaze/./src/models/activity-result/BaseActivityResult.model.js","webpack://mindmaze/./src/models/training-material/TrainingMaterialAttachment.model.js","webpack://mindmaze/./src/models/training-material/TrainingMaterial.model.js","webpack://mindmaze/./src/models/utils.js","webpack://mindmaze/./src/plugins/vidyo/constants.js","webpack://mindmaze/./src/plugins/vueApplicationInsights.js","webpack://mindmaze/./src/router/supportRoutes.js","webpack://mindmaze/./src/router/users/patientRoutes.js","webpack://mindmaze/./src/router/profileRoutes.js","webpack://mindmaze/./src/router/oAuthRoutes.js","webpack://mindmaze/./src/router/users/therapistRoutes.js","webpack://mindmaze/./src/router/entities/customer.js","webpack://mindmaze/./src/router/entities/site.js","webpack://mindmaze/./src/router/entities/siteManagement.js","webpack://mindmaze/./src/router/entities/license.js","webpack://mindmaze/./src/router/entities/patientLicense.js","webpack://mindmaze/./src/router/entities/asset.js","webpack://mindmaze/./src/router/entities/siteManager.js","webpack://mindmaze/./src/router/entities/therapist.js","webpack://mindmaze/./src/router/entities/administrator.js","webpack://mindmaze/./src/router/dataExportRoutes.js","webpack://mindmaze/./src/router/entities/optionalFeatureActivation.js","webpack://mindmaze/./src/router/entities/feedbackReport.js","webpack://mindmaze/./src/router/entities/archivedUsers.js","webpack://mindmaze/./src/router/users/adminRoutes.js","webpack://mindmaze/./src/router/entities/user-session.js","webpack://mindmaze/./src/router/entities/dpoadmin.js","webpack://mindmaze/./src/router/entities/patient.js","webpack://mindmaze/./src/router/entities/customerNotification.js","webpack://mindmaze/./src/router/entities/optionalFeatureDefinition.js","webpack://mindmaze/./src/router/users/superadminRoutes.js","webpack://mindmaze/./src/router/entities/siteUnit.js","webpack://mindmaze/./src/router/users/siteManagerRoutes.js","webpack://mindmaze/./src/router/onboardingRoutes.js","webpack://mindmaze/./src/router/forgotPasswordRoutes.js","webpack://mindmaze/./src/router/entities/audit.js","webpack://mindmaze/./src/router/users/DPORoutes.js","webpack://mindmaze/./src/router/requestSAMLSiteRoutes.js","webpack://mindmaze/./src/router/referenceRoutes.js","webpack://mindmaze/./src/router/footerRoutes.js","webpack://mindmaze/./src/router/zoomRoutes.js","webpack://mindmaze/./src/router/navigate.js","webpack://mindmaze/./src/router/routes.js","webpack://mindmaze/./src/router/index.js","webpack://mindmaze/./src/services/api.js","webpack://mindmaze/./src/services/auth.js","webpack://mindmaze/./src/services/configJson.js","webpack://mindmaze/./src/services/enums.js","webpack://mindmaze/./src/services/users.js","webpack://mindmaze/./src/store/utils.js","webpack://mindmaze/./src/store/Auth.js","webpack://mindmaze/./src/store/Language.js","webpack://mindmaze/./src/store/Onboarding.js","webpack://mindmaze/./src/store/ZoomAccess.js","webpack://mindmaze/./src/store/Profile.js","webpack://mindmaze/./src/store/index.js","webpack://mindmaze/./src/store/localStorage.js","webpack://mindmaze/./src/store/sessionStorage.js","webpack://mindmaze/./src/utils/activeSide.js","webpack://mindmaze/./src/utils/cookies.js","webpack://mindmaze/./src/utils/date.js","webpack://mindmaze/./src/utils/dropdown.js","webpack://mindmaze/./src/utils/duration.js","webpack://mindmaze/./src/utils/extractLocale.js","webpack://mindmaze/./src/utils/filters.js","webpack://mindmaze/./src/utils/icon.js","webpack://mindmaze/./src/utils/locales.js","webpack://mindmaze/./src/utils/math.js","webpack://mindmaze/./src/utils/notification.js","webpack://mindmaze/./src/utils/performance.js","webpack://mindmaze/./src/utils/profile.js","webpack://mindmaze/./src/utils/signedDocuments.js","webpack://mindmaze/./src/utils/translation.js","webpack://mindmaze/./tailwind.config.js","webpack://mindmaze/./src/assets/icons/activity-details.svg","webpack://mindmaze/./src/assets/icons/activity-flag.svg","webpack://mindmaze/./src/assets/icons/add-patient-success.svg","webpack://mindmaze/./src/assets/icons/add-patient.svg","webpack://mindmaze/./src/assets/icons/admin.svg","webpack://mindmaze/./src/assets/icons/administration.svg","webpack://mindmaze/./src/assets/icons/archived-users-directory.svg","webpack://mindmaze/./src/assets/icons/arrow-simple-left.svg","webpack://mindmaze/./src/assets/icons/arrow-simple-right.svg","webpack://mindmaze/./src/assets/icons/assets.svg","webpack://mindmaze/./src/assets/icons/att-current.svg","webpack://mindmaze/./src/assets/icons/att-history.svg","webpack://mindmaze/./src/assets/icons/audit-trail-logs.svg","webpack://mindmaze/./src/assets/icons/body.svg","webpack://mindmaze/./src/assets/icons/button-icon-save.svg","webpack://mindmaze/./src/assets/icons/calendar.svg","webpack://mindmaze/./src/assets/icons/calibration-off.svg","webpack://mindmaze/./src/assets/icons/calibration-on.svg","webpack://mindmaze/./src/assets/icons/callout-down.svg","webpack://mindmaze/./src/assets/icons/callout.svg","webpack://mindmaze/./src/assets/icons/ce_logo.svg","webpack://mindmaze/./src/assets/icons/chevron-carousel-left.svg","webpack://mindmaze/./src/assets/icons/chevron-carousel-right.svg","webpack://mindmaze/./src/assets/icons/chevron-down.svg","webpack://mindmaze/./src/assets/icons/chevron-left.svg","webpack://mindmaze/./src/assets/icons/chevron-right.svg","webpack://mindmaze/./src/assets/icons/chevron-up.svg","webpack://mindmaze/./src/assets/icons/circle-warning.svg","webpack://mindmaze/./src/assets/icons/close.svg","webpack://mindmaze/./src/assets/icons/cog-hollow.svg","webpack://mindmaze/./src/assets/icons/companion-logo.svg","webpack://mindmaze/./src/assets/icons/compensation/bodyweighttransfer-left.svg","webpack://mindmaze/./src/assets/icons/compensation/bodyweighttransfer-right.svg","webpack://mindmaze/./src/assets/icons/compensation/leftkneeextension-up.svg","webpack://mindmaze/./src/assets/icons/compensation/leftshoulderabductionadduction-left.svg","webpack://mindmaze/./src/assets/icons/compensation/leftshoulderabductionadduction-right.svg","webpack://mindmaze/./src/assets/icons/compensation/leftshoulderflexionextension-backward.svg","webpack://mindmaze/./src/assets/icons/compensation/leftshoulderflexionextension-forward.svg","webpack://mindmaze/./src/assets/icons/compensation/rightkneeextension-up.svg","webpack://mindmaze/./src/assets/icons/compensation/rightshoulderabductionadduction-left.svg","webpack://mindmaze/./src/assets/icons/compensation/rightshoulderabductionadduction-right.svg","webpack://mindmaze/./src/assets/icons/compensation/rightshoulderflexionextension-backward.svg","webpack://mindmaze/./src/assets/icons/compensation/rightshoulderflexionextension-forward.svg","webpack://mindmaze/./src/assets/icons/compensation/trunkflexion-backward.svg","webpack://mindmaze/./src/assets/icons/compensation/trunkflexion-forward.svg","webpack://mindmaze/./src/assets/icons/compensation/trunkflexion-left.svg","webpack://mindmaze/./src/assets/icons/compensation/trunkflexion-right.svg","webpack://mindmaze/./src/assets/icons/compensation_flag_icons/elbow-left.svg","webpack://mindmaze/./src/assets/icons/compensation_flag_icons/elbow-right.svg","webpack://mindmaze/./src/assets/icons/compensation_flag_icons/head-center.svg","webpack://mindmaze/./src/assets/icons/compensation_flag_icons/head-left.svg","webpack://mindmaze/./src/assets/icons/compensation_flag_icons/head-right.svg","webpack://mindmaze/./src/assets/icons/compensation_flag_icons/leg-left.svg","webpack://mindmaze/./src/assets/icons/compensation_flag_icons/leg-right.svg","webpack://mindmaze/./src/assets/icons/compensation_flag_icons/shoulder-left.svg","webpack://mindmaze/./src/assets/icons/compensation_flag_icons/shoulder-right.svg","webpack://mindmaze/./src/assets/icons/compensation_flag_icons/torso.svg","webpack://mindmaze/./src/assets/icons/compensation_flag_icons/wrist-left.svg","webpack://mindmaze/./src/assets/icons/compensation_flag_icons/wrist-right.svg","webpack://mindmaze/./src/assets/icons/compensation_groups/bodyweighttransfer.svg","webpack://mindmaze/./src/assets/icons/compensation_groups/leftkneeextension.svg","webpack://mindmaze/./src/assets/icons/compensation_groups/leftshoulder.svg","webpack://mindmaze/./src/assets/icons/compensation_groups/rightkneeextension.svg","webpack://mindmaze/./src/assets/icons/compensation_groups/rightshoulder.svg","webpack://mindmaze/./src/assets/icons/compensation_groups/trunkflexion.svg","webpack://mindmaze/./src/assets/icons/consent.svg","webpack://mindmaze/./src/assets/icons/contact-us.svg","webpack://mindmaze/./src/assets/icons/copy.svg","webpack://mindmaze/./src/assets/icons/create_program.svg","webpack://mindmaze/./src/assets/icons/create_template.svg","webpack://mindmaze/./src/assets/icons/credentials.svg","webpack://mindmaze/./src/assets/icons/data-export.svg","webpack://mindmaze/./src/assets/icons/day-period-afternoon.svg","webpack://mindmaze/./src/assets/icons/day-period-morning.svg","webpack://mindmaze/./src/assets/icons/demo-patient.svg","webpack://mindmaze/./src/assets/icons/done-half.svg","webpack://mindmaze/./src/assets/icons/done-invert-colors.svg","webpack://mindmaze/./src/assets/icons/done-not-training.svg","webpack://mindmaze/./src/assets/icons/done-not.svg","webpack://mindmaze/./src/assets/icons/done-notassigned.svg","webpack://mindmaze/./src/assets/icons/done-partially.svg","webpack://mindmaze/./src/assets/icons/done-password-criteria.svg","webpack://mindmaze/./src/assets/icons/done-rounded-circle-fill.svg","webpack://mindmaze/./src/assets/icons/done-rounded-circle.svg","webpack://mindmaze/./src/assets/icons/done.svg","webpack://mindmaze/./src/assets/icons/dpo-admin.svg","webpack://mindmaze/./src/assets/icons/drag-handle.svg","webpack://mindmaze/./src/assets/icons/duplicate.svg","webpack://mindmaze/./src/assets/icons/edit.svg","webpack://mindmaze/./src/assets/icons/email.svg","webpack://mindmaze/./src/assets/icons/epro-patients.svg","webpack://mindmaze/./src/assets/icons/european-representative.svg","webpack://mindmaze/./src/assets/icons/export.svg","webpack://mindmaze/./src/assets/icons/external.svg","webpack://mindmaze/./src/assets/icons/faq.svg","webpack://mindmaze/./src/assets/icons/feedback.svg","webpack://mindmaze/./src/assets/icons/filter.svg","webpack://mindmaze/./src/assets/icons/flags/ar-SA.svg","webpack://mindmaze/./src/assets/icons/flags/de.svg","webpack://mindmaze/./src/assets/icons/flags/es.svg","webpack://mindmaze/./src/assets/icons/flags/fr.svg","webpack://mindmaze/./src/assets/icons/flags/gb.svg","webpack://mindmaze/./src/assets/icons/flags/it.svg","webpack://mindmaze/./src/assets/icons/flags/ro.svg","webpack://mindmaze/./src/assets/icons/flags/us.svg","webpack://mindmaze/./src/assets/icons/general-details.svg","webpack://mindmaze/./src/assets/icons/geolocalization.svg","webpack://mindmaze/./src/assets/icons/globe.svg","webpack://mindmaze/./src/assets/icons/hamburger.svg","webpack://mindmaze/./src/assets/icons/hand.svg","webpack://mindmaze/./src/assets/icons/help.svg","webpack://mindmaze/./src/assets/icons/ifu.svg","webpack://mindmaze/./src/assets/icons/import.svg","webpack://mindmaze/./src/assets/icons/import_mm_template.svg","webpack://mindmaze/./src/assets/icons/import_my_template.svg","webpack://mindmaze/./src/assets/icons/info-circle.svg","webpack://mindmaze/./src/assets/icons/level.svg","webpack://mindmaze/./src/assets/icons/levels.svg","webpack://mindmaze/./src/assets/icons/license.svg","webpack://mindmaze/./src/assets/icons/loading.svg","webpack://mindmaze/./src/assets/icons/logout.svg","webpack://mindmaze/./src/assets/icons/manufacturer.svg","webpack://mindmaze/./src/assets/icons/medical-details.svg","webpack://mindmaze/./src/assets/icons/menu.svg","webpack://mindmaze/./src/assets/icons/mindmotion-logo.svg","webpack://mindmaze/./src/assets/icons/mini-cam.svg","webpack://mindmaze/./src/assets/icons/mini-mic.svg","webpack://mindmaze/./src/assets/icons/mini-sound.svg","webpack://mindmaze/./src/assets/icons/more-menu.svg","webpack://mindmaze/./src/assets/icons/movement/ArmReaching.svg","webpack://mindmaze/./src/assets/icons/movement/ArmReachingAndPalmarGrasping.svg","webpack://mindmaze/./src/assets/icons/movement/ArmsPumping.svg","webpack://mindmaze/./src/assets/icons/movement/BilateralStep.svg","webpack://mindmaze/./src/assets/icons/movement/FingersPinch.svg","webpack://mindmaze/./src/assets/icons/movement/ForearmPronationSupination.svg","webpack://mindmaze/./src/assets/icons/movement/ForwardBackwardSteps.svg","webpack://mindmaze/./src/assets/icons/movement/FreeSqueeze.svg","webpack://mindmaze/./src/assets/icons/movement/FreeSqueezeAndFreeWristMovement.svg","webpack://mindmaze/./src/assets/icons/movement/FreeSteps.svg","webpack://mindmaze/./src/assets/icons/movement/FreeWristMovement.svg","webpack://mindmaze/./src/assets/icons/movement/GripFlexionExtension.svg","webpack://mindmaze/./src/assets/icons/movement/GripPronationSupination.svg","webpack://mindmaze/./src/assets/icons/movement/GripRadialUlnarDeviation.svg","webpack://mindmaze/./src/assets/icons/movement/HandGraspRelease.svg","webpack://mindmaze/./src/assets/icons/movement/HorizontalArmReaching.svg","webpack://mindmaze/./src/assets/icons/movement/HorizontalShoulderAbductionAdduction.svg","webpack://mindmaze/./src/assets/icons/movement/LateralBodyWeightTransfer.svg","webpack://mindmaze/./src/assets/icons/movement/LateralStep.svg","webpack://mindmaze/./src/assets/icons/movement/PalmarGrasp.svg","webpack://mindmaze/./src/assets/icons/movement/PincerGrasp.svg","webpack://mindmaze/./src/assets/icons/movement/ShoulderAbduction.svg","webpack://mindmaze/./src/assets/icons/movement/ShoulderAbductionAdduction.svg","webpack://mindmaze/./src/assets/icons/movement/ShoulderFlexion.svg","webpack://mindmaze/./src/assets/icons/movement/ShoulderFlexionExtension.svg","webpack://mindmaze/./src/assets/icons/movement/Squat.svg","webpack://mindmaze/./src/assets/icons/movement/SteeringWheel.svg","webpack://mindmaze/./src/assets/icons/movement/SteeringWheelAndArmsPumping.svg","webpack://mindmaze/./src/assets/icons/movement/TrunkAxialRotation.svg","webpack://mindmaze/./src/assets/icons/movement/TrunkForwardBackwardFlexion.svg","webpack://mindmaze/./src/assets/icons/movement/TrunkForwardBackwardLateralFlexion.svg","webpack://mindmaze/./src/assets/icons/movement/TrunkLateralFlexion.svg","webpack://mindmaze/./src/assets/icons/movement/UnilateralShoulderAbductionAdduction.svg","webpack://mindmaze/./src/assets/icons/movement/UnilateralStep.svg","webpack://mindmaze/./src/assets/icons/movement/UpperLimbFlexionExtension.svg","webpack://mindmaze/./src/assets/icons/movement/UpperLimbFlexionExtensionAndTrunkLateralFlexion.svg","webpack://mindmaze/./src/assets/icons/movement/VerticalHandsReaching.svg","webpack://mindmaze/./src/assets/icons/movement/WorldFootsteps.svg","webpack://mindmaze/./src/assets/icons/movement/WristFlexionExtension.svg","webpack://mindmaze/./src/assets/icons/movement/WristRadialUlnarDeviation.svg","webpack://mindmaze/./src/assets/icons/my-patients.svg","webpack://mindmaze/./src/assets/icons/notifications.svg","webpack://mindmaze/./src/assets/icons/optional-features-def.svg","webpack://mindmaze/./src/assets/icons/optional-features.svg","webpack://mindmaze/./src/assets/icons/patient-details.svg","webpack://mindmaze/./src/assets/icons/patient-recent.svg","webpack://mindmaze/./src/assets/icons/patient.svg","webpack://mindmaze/./src/assets/icons/patient_state/borg/borg-0.svg","webpack://mindmaze/./src/assets/icons/patient_state/borg/borg-1.svg","webpack://mindmaze/./src/assets/icons/patient_state/borg/borg-10.svg","webpack://mindmaze/./src/assets/icons/patient_state/borg/borg-2.svg","webpack://mindmaze/./src/assets/icons/patient_state/borg/borg-3.svg","webpack://mindmaze/./src/assets/icons/patient_state/borg/borg-4.svg","webpack://mindmaze/./src/assets/icons/patient_state/borg/borg-5.svg","webpack://mindmaze/./src/assets/icons/patient_state/borg/borg-6.svg","webpack://mindmaze/./src/assets/icons/patient_state/borg/borg-7.svg","webpack://mindmaze/./src/assets/icons/patient_state/borg/borg-8.svg","webpack://mindmaze/./src/assets/icons/patient_state/borg/borg-9.svg","webpack://mindmaze/./src/assets/icons/patient_state/mood/bad.svg","webpack://mindmaze/./src/assets/icons/patient_state/mood/good.svg","webpack://mindmaze/./src/assets/icons/patient_state/mood/okay.svg","webpack://mindmaze/./src/assets/icons/patient_state/mood/veryBad.svg","webpack://mindmaze/./src/assets/icons/patient_state/mood/veryGood.svg","webpack://mindmaze/./src/assets/icons/patient_state/skipped.svg","webpack://mindmaze/./src/assets/icons/patients.svg","webpack://mindmaze/./src/assets/icons/peripherals/Kinect.svg","webpack://mindmaze/./src/assets/icons/peripherals/LeapMotion.svg","webpack://mindmaze/./src/assets/icons/peripherals/MMB_1x.svg","webpack://mindmaze/./src/assets/icons/peripherals/MMB_2x.svg","webpack://mindmaze/./src/assets/icons/planner-calendar.svg","webpack://mindmaze/./src/assets/icons/planner-calibrate.svg","webpack://mindmaze/./src/assets/icons/planner-download.svg","webpack://mindmaze/./src/assets/icons/planner-dropper.svg","webpack://mindmaze/./src/assets/icons/planner-file.svg","webpack://mindmaze/./src/assets/icons/planner-log.svg","webpack://mindmaze/./src/assets/icons/planner-minus.svg","webpack://mindmaze/./src/assets/icons/planner-options.svg","webpack://mindmaze/./src/assets/icons/planner-plus.svg","webpack://mindmaze/./src/assets/icons/planner-results.svg","webpack://mindmaze/./src/assets/icons/planner-settings.svg","webpack://mindmaze/./src/assets/icons/planner-trash.svg","webpack://mindmaze/./src/assets/icons/play.svg","webpack://mindmaze/./src/assets/icons/posture-seat.svg","webpack://mindmaze/./src/assets/icons/posture-stand.svg","webpack://mindmaze/./src/assets/icons/profile-admin.svg","webpack://mindmaze/./src/assets/icons/profile-patient.svg","webpack://mindmaze/./src/assets/icons/profile-patient_full.svg","webpack://mindmaze/./src/assets/icons/profile-physician.svg","webpack://mindmaze/./src/assets/icons/profile-sitemanager.svg","webpack://mindmaze/./src/assets/icons/profile-sitemanager_full.svg","webpack://mindmaze/./src/assets/icons/profile-support.svg","webpack://mindmaze/./src/assets/icons/profile-therapist.svg","webpack://mindmaze/./src/assets/icons/profile-therapist_full.svg","webpack://mindmaze/./src/assets/icons/reload.svg","webpack://mindmaze/./src/assets/icons/save_as_template.svg","webpack://mindmaze/./src/assets/icons/search.svg","webpack://mindmaze/./src/assets/icons/session-scheduled.svg","webpack://mindmaze/./src/assets/icons/settings-light.svg","webpack://mindmaze/./src/assets/icons/settings.svg","webpack://mindmaze/./src/assets/icons/sidebar-close.svg","webpack://mindmaze/./src/assets/icons/sidebar-open.svg","webpack://mindmaze/./src/assets/icons/site-management.svg","webpack://mindmaze/./src/assets/icons/site-managers.svg","webpack://mindmaze/./src/assets/icons/sort.svg","webpack://mindmaze/./src/assets/icons/sort_asc.svg","webpack://mindmaze/./src/assets/icons/sort_desc.svg","webpack://mindmaze/./src/assets/icons/stop.svg","webpack://mindmaze/./src/assets/icons/teleconsultation.svg","webpack://mindmaze/./src/assets/icons/templates-directory.svg","webpack://mindmaze/./src/assets/icons/templates-editor.svg","webpack://mindmaze/./src/assets/icons/therapeutic-goal.svg","webpack://mindmaze/./src/assets/icons/therapist-details.svg","webpack://mindmaze/./src/assets/icons/therapists.svg","webpack://mindmaze/./src/assets/icons/tick.svg","webpack://mindmaze/./src/assets/icons/time-zone.svg","webpack://mindmaze/./src/assets/icons/timeline-session-extra-training.svg","webpack://mindmaze/./src/assets/icons/timeline-session-missed.svg","webpack://mindmaze/./src/assets/icons/timeline-session-supervised.svg","webpack://mindmaze/./src/assets/icons/timeline-session-unsupervised.svg","webpack://mindmaze/./src/assets/icons/top-menu-live-meeting-down.svg","webpack://mindmaze/./src/assets/icons/top-menu-live-meeting-up.svg","webpack://mindmaze/./src/assets/icons/top-menu-patients-directory-down.svg","webpack://mindmaze/./src/assets/icons/top-menu-patients-directory-up.svg","webpack://mindmaze/./src/assets/icons/top-menu-telerehab-down.svg","webpack://mindmaze/./src/assets/icons/top-menu-telerehab-up.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionAll.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionHandBilateral.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionHandLeft.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionHandRight.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionLowerLimbBilateral.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionLowerLimbLeft.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionLowerLimbRight.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionNone.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionTrunkBilateral.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionTrunkLeft.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionTrunkRight.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionUpperLimbBilateral.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionUpperLimbLeft.svg","webpack://mindmaze/./src/assets/icons/trained_functions/FunctionUpperLimbRight.svg","webpack://mindmaze/./src/assets/icons/training-plan.svg","webpack://mindmaze/./src/assets/icons/training_materials/next.svg","webpack://mindmaze/./src/assets/icons/training_materials/previous.svg","webpack://mindmaze/./src/assets/icons/training_materials/tm-completed-video.svg","webpack://mindmaze/./src/assets/icons/training_materials/tm-new-video.svg","webpack://mindmaze/./src/assets/icons/training_materials/training-material.svg","webpack://mindmaze/./src/assets/icons/undo.svg","webpack://mindmaze/./src/assets/icons/unknown.svg","webpack://mindmaze/./src/assets/icons/unsupervised-training.svg","webpack://mindmaze/./src/assets/icons/user-sessions.svg","webpack://mindmaze/./src/assets/icons/videomeeting-mic-off.svg","webpack://mindmaze/./src/assets/icons/videomeeting-mic-on.svg","webpack://mindmaze/./src/assets/icons/videomeeting-sound-off.svg","webpack://mindmaze/./src/assets/icons/videomeeting-sound-on.svg","webpack://mindmaze/./src/assets/icons/videomeeting-video-off.svg","webpack://mindmaze/./src/assets/icons/videomeeting-video-on.svg","webpack://mindmaze/./src/assets/icons/visibility-hide.svg","webpack://mindmaze/./src/assets/icons/visibility-show.svg","webpack://mindmaze/./src/assets/icons/warning-circle.svg","webpack://mindmaze/./src/assets/icons/warning.svg","webpack://mindmaze/./src/assets/games_icons/ sync ^\\.\\/.*\\.png$","webpack://mindmaze/./src/assets/icons/ sync ^\\.\\/.*\\.svg$","webpack://mindmaze/external promise \"new Promise(resolve => {\\n const remoteUrl = window.location.origin + '/epro/remoteEntry.js'\\n const script = document.createElement('script')\\n script.src = remoteUrl\\n script.onload = () => {\\n // the injected script has loaded and is available on window\\n // we can now resolve this Promise\\n const proxy = {\\n get: (request) => window.epro.get(request),\\n init: (arg) => {\\n try {\\n return window.epro.init(arg)\\n } catch(e) {\\n console.log('remote container already initialized')\\n }\\n }\\n }\\n resolve(proxy)\\n }\\n // inject this script with the src set to the versioned remoteEntry.js\\n document.head.appendChild(script);\\n })\\n \"","webpack://mindmaze/webpack/bootstrap","webpack://mindmaze/webpack/runtime/chunk loaded","webpack://mindmaze/webpack/runtime/compat get default export","webpack://mindmaze/webpack/runtime/create fake namespace object","webpack://mindmaze/webpack/runtime/define property getters","webpack://mindmaze/webpack/runtime/ensure chunk","webpack://mindmaze/webpack/runtime/get javascript chunk filename","webpack://mindmaze/webpack/runtime/get mini-css chunk filename","webpack://mindmaze/webpack/runtime/global","webpack://mindmaze/webpack/runtime/hasOwnProperty shorthand","webpack://mindmaze/webpack/runtime/load script","webpack://mindmaze/webpack/runtime/make namespace object","webpack://mindmaze/webpack/runtime/node module decorator","webpack://mindmaze/webpack/runtime/remotes loading","webpack://mindmaze/webpack/runtime/sharing","webpack://mindmaze/webpack/runtime/publicPath","webpack://mindmaze/webpack/runtime/consumes","webpack://mindmaze/webpack/runtime/css loading","webpack://mindmaze/webpack/runtime/jsonp chunk loading","webpack://mindmaze/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"flex flex-col h-full overflow-y-auto\"},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Stack.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Stack.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Stack.vue?vue&type=template&id=1882ada3\"\nimport script from \"./Stack.vue?vue&type=script&lang=js\"\nexport * from \"./Stack.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../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 render(){var _vm=this,_c=_vm._self._c;return _c('form',{staticClass:\"companion-login-form form-group\",attrs:{\"autocomplete\":\"on\"}},[_c('div',{staticClass:\"mx-12\"},[_c('base-input',{staticClass:\"companion-login-input\",attrs:{\"label\":_vm.$t('LoginPage.loginLabel'),\"placeholder\":_vm.$t('LoginPage.loginPlaceholder'),\"any-error\":_vm.loginErrors.length > 0},on:{\"animationstart\":_vm.loginAnimationStart,\"focusout\":_vm.updateLoginInputErrors,\"input\":_vm.resetLoginInputErrors},model:{value:(_vm.$v.login.$model),callback:function ($$v) {_vm.$set(_vm.$v.login, \"$model\", $$v)},expression:\"$v.login.$model\"}}),_c('input-error',{attrs:{\"errors\":_vm.loginErrors}}),_c('password-input',{staticClass:\"companion-password-input\",attrs:{\"label\":_vm.$t('LoginPage.password'),\"placeholder\":_vm.$t('LoginPage.passwordPlaceholder')},on:{\"animationstart\":_vm.passwordAnimationStart},model:{value:(_vm.$v.password.$model),callback:function ($$v) {_vm.$set(_vm.$v.password, \"$model\", $$v)},expression:\"$v.password.$model\"}}),_c('base-checkbox',{attrs:{\"check-box-classes\":\"border-gray-300\",\"value\":_vm.stayLoggedIn,\"disabled\":!_vm.cookiesAccepted},on:{\"change\":_vm.onChangeStayLoggedIn}},[_c('span',{staticClass:\"form-input-label\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"LoginPage.keepMeLoggedIn\"))+\" \")]),_c('svg-icon',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.keepMeLoggedInTooltip),expression:\"keepMeLoggedInTooltip\"}],staticClass:\"icon-sm text-gray-500 ms-2\",attrs:{\"name\":\"info-circle\"}})],1),_c('base-button',{staticClass:\"mx-16 mt-6 flex items-center justify-center\",attrs:{\"isButtonType\":false}},[_c('input',{staticClass:\"btn btn-primary text-white bg-blue-500 h-full w-full\",attrs:{\"type\":\"submit\",\"disabled\":_vm.isLoginButtonDisabled},domProps:{\"value\":_vm.$t('LoginPage.loginButton')},on:{\"click\":function($event){$event.preventDefault();return _vm.doLogin.apply(null, arguments)}}})])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',_vm._l((_vm.errors),function(error){return _c('p',{key:error,staticClass:\"py-1 text-red-500\"},[_vm._v(\" \"+_vm._s(error)+\" \")])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InputError.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InputError.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InputError.vue?vue&type=template&id=3ac7a5da\"\nimport script from \"./InputError.vue?vue&type=script&lang=js\"\nexport * from \"./InputError.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LoginForm.vue?vue&type=template&id=24bc0772\"\nimport script from \"./LoginForm.vue?vue&type=script&lang=js\"\nexport * from \"./LoginForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./LoginForm.vue?vue&type=style&index=0&id=24bc0772&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return _c('base-modal',{attrs:{\"show-modal\":_vm.showModal,\"backdrop-class\":\"z-login-modal\",\"trigger-class-modal\":\"modal-sm pb-2\",\"close-button\":true,\"blur-modal-layout\":\"\"},on:{\"close\":_vm.goBackToLogin},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('span',{staticClass:\"text-h3\"},[_vm._v(_vm._s(_vm.$t(\"App.LoginModal.sessionExpired\")))])]},proxy:true}])},[(_vm.hasError)?_c('warning-box',{attrs:{\"type\":\"error\",\"is-content-centered\":\"\"}},[_c('div',{staticClass:\"flex flex-col\"},[_vm._l((_vm.errorMessages),function(message,id){return _c('span',{key:id},[_vm._v(\" \"+_vm._s(message)+\" \")])}),(_vm.lockoutWarningMessage)?_c('div',[_vm._v(\" \"+_vm._s(_vm.lockoutWarningMessage)+\" \")]):_vm._e()],2)]):_vm._e(),_c('login-form',{staticClass:\"mb-2\",on:{\"logged\":_vm.onLoginSuccess,\"loginError\":_vm.displayLoginError}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoginModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoginModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LoginModal.vue?vue&type=template&id=076e5be1\"\nimport script from \"./LoginModal.vue?vue&type=script&lang=js\"\nexport * from \"./LoginModal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return (!_vm.isButtonType)?_c('div',{directives:[{name:\"wave\",rawName:\"v-wave\"}],class:{ 'cursor-not-allowed': _vm.disabled },attrs:{\"disabled\":_vm.disabled},on:{\"click\":_vm.onClick}},[_vm._t(\"default\")],2):_c('button',{directives:[{name:\"wave\",rawName:\"v-wave\"}],attrs:{\"disabled\":_vm.disabled},on:{\"click\":_vm.onClick}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BaseButton.vue?vue&type=template&id=461c05b4\"\nimport script from \"./BaseButton.vue?vue&type=script&lang=js\"\nexport * from \"./BaseButton.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return _c('label',{staticClass:\"inline-flex items-start\",class:{ 'text-disabled': _vm.disabled }},[_c('input',{ref:\"indeterminate\",staticClass:\"form-checkbox me-3\",class:_vm.checkBoxClasses,attrs:{\"type\":\"checkbox\",\"disabled\":_vm.disabled || _vm.isReadOnly},domProps:{\"checked\":_vm.value},on:{\"change\":_vm.change}}),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseCheckbox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseCheckbox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BaseCheckbox.vue?vue&type=template&id=5d0a70d3\"\nimport script from \"./BaseCheckbox.vue?vue&type=script&lang=js\"\nexport * from \"./BaseCheckbox.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"relative block\"},[_vm._t(\"before\"),_c('base-label',{attrs:{\"label\":_vm.label,\"labelClasses\":_vm.labelClasses,\"disabled\":_vm.disabled,\"required\":_vm.required,\"tooltip\":_vm.tooltip}}),(_vm.isReadOnly)?_c('base-read-only-field',{attrs:{\"value\":_vm.localValue,\"tooltip\":_vm.readOnlyTooltip,\"read-only-classes\":_vm.readOnlyClasses}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.localValue),expression:\"localValue\",modifiers:{\"trim\":true}}],ref:\"base-input\",class:[\n 'form-input block min-w-48 w-full',\n _vm.inputClasses,\n _vm.anyError ? 'form-input-error' : '',\n ],style:(_vm.inputStyle),attrs:{\"type\":_vm.type,\"placeholder\":_vm.disabled ? '' : _vm.placeholder,\"disabled\":_vm.disabled,\"maxlength\":_vm.maxLength},domProps:{\"value\":(_vm.localValue)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.localValue=$event.target.value.trim()},_vm.onInput],\"change\":_vm.onChange,\"focus\":_vm.onFocus,\"blur\":[_vm.onBlur,function($event){return _vm.$forceUpdate()}],\"animationstart\":_vm.animationStart,\"animationend\":_vm.animationEnd,\"focusout\":_vm.focusout}}),_vm._t(\"bubble\"),_vm._t(\"after\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseInput.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BaseInput.vue?vue&type=template&id=799b28e3\"\nimport script from \"./BaseInput.vue?vue&type=script&lang=js\"\nexport * from \"./BaseInput.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return (_vm.label.length)?_c('label',{staticClass:\"flex\"},[_c('span',{staticClass:\"form-input-label\",class:_vm.disabled ? 'disabled' : _vm.labelClasses},[_vm._v(\" \"+_vm._s(_vm.label)+\" \")]),(_vm.required)?_c('span',{staticClass:\"form-required ps-1 text-base\"},[_vm._v(\"*\")]):_vm._e(),(_vm.tooltip)?_c('svg-icon',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.bottom\",value:(_vm.tooltip),expression:\"tooltip\",modifiers:{\"bottom\":true}}],staticClass:\"form-input-label inline icon-sm ms-2 mt-1\",class:_vm.disabled ? 'disabled' : '',attrs:{\"name\":\"info-circle\"}}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseLabel.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseLabel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BaseLabel.vue?vue&type=template&id=34ff3bed\"\nimport script from \"./BaseLabel.vue?vue&type=script&lang=js\"\nexport * from \"./BaseLabel.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return (_vm.showModal)?_c('portal',{attrs:{\"to\":\"modal\"}},[_c('transition',{attrs:{\"name\":\"modal-fade\"}},[(_vm.showModal)?_c('div',_vm._g({staticClass:\"modal flex flex-col fixed inset-0 items-center sm:justify-center\",class:_vm.backdropClasses},_vm.closeOutOfFocus ? { click: _vm.onClose } : {}),[_c('div',{staticClass:\"flex flex-col modal bg-white rounded opacity-100 justify-between border-t-6 border-solid border-blue-500 min-w-160\",class:_vm.triggerClassModal,on:{\"click\":function($event){$event.stopPropagation();}}},[(_vm.showHeader)?_c('div',{staticClass:\"flex justify-between items-start py-4 px-8\",class:_vm.triggerClassHeader},[_vm._t(\"header\",function(){return [_vm._v(\" \")]}),(_vm.closeButton)?_c('div',{staticClass:\"-me-4\"},[_c('base-button',{staticClass:\"btn-icon ms-auto\",on:{\"click\":_vm.onClose}},[_c('svg-icon',{staticClass:\"icon-md text-blue-800\",attrs:{\"name\":\"close\"}})],1)],1):_vm._e()],2):_vm._e(),_c('div',{staticClass:\"scrollbar me-1 modal-content flex-grow\",class:_vm.triggerClassContent},[_vm._t(\"default\")],2),_c('div',{staticClass:\"modal-footer\",class:_vm.triggerClassFooter},[_vm._t(\"footer\")],2)])]):_vm._e()])],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BaseModal.vue?vue&type=template&id=300db374&scoped=true\"\nimport script from \"./BaseModal.vue?vue&type=script&lang=js\"\nexport * from \"./BaseModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./BaseModal.vue?vue&type=style&index=0&id=300db374&prod&lang=postcss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"300db374\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('svg-icon',{staticClass:\"loading-icon\",class:_vm.iconClass,attrs:{\"name\":\"loading\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoadingIcon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoadingIcon.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LoadingIcon.vue?vue&type=template&id=a0ddfeb0&scoped=true\"\nimport script from \"./LoadingIcon.vue?vue&type=script&lang=js\"\nexport * from \"./LoadingIcon.vue?vue&type=script&lang=js\"\nimport style0 from \"./LoadingIcon.vue?vue&type=style&index=0&id=a0ddfeb0&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a0ddfeb0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isNewBadgeVisible)?_c('div',[_c('span',{staticClass:\"new-badge\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Common.System.newLabel\"))+\" \")])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NewFeatureBadge.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NewFeatureBadge.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NewFeatureBadge.vue?vue&type=template&id=5336c93c\"\nimport script from \"./NewFeatureBadge.vue?vue&type=script&lang=js\"\nexport * from \"./NewFeatureBadge.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"relative\"},[_c('div',[_c('base-label',{attrs:{\"label\":_vm.label,\"labelClasses\":_vm.labelClasses,\"disabled\":_vm.disabled,\"required\":_vm.required}}),_c('input',{class:[\n 'form-input pe-12 ' + _vm.inputClasses,\n _vm.anyError ? 'form-input-error' : '',\n ],attrs:{\"type\":_vm.passwordType,\"placeholder\":_vm.disabled ? '' : _vm.placeholder,\"autocomplete\":_vm.newPassword ? 'new-password' : 'password',\"disabled\":_vm.disabled,\"readonly\":_vm.isReadOnly},domProps:{\"value\":_vm.localValue},on:{\"input\":_vm.onInput,\"change\":_vm.onChange,\"focus\":_vm.onFocus,\"blur\":_vm.onBlur,\"animationstart\":_vm.animationStart,\"animationend\":_vm.animationEnd}})],1),_c('base-button',{staticClass:\"absolute bottom-0 border-0 end-0\",attrs:{\"type\":\"button\",\"tabindex\":\"-1\",\"disabled\":_vm.disabled},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleShowPassword.apply(null, arguments)}}},[(_vm.passwordShown)?_c('svg-icon',{attrs:{\"name\":\"visibility-show\"}}):_c('svg-icon',{attrs:{\"name\":\"visibility-hide\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PasswordInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PasswordInput.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PasswordInput.vue?vue&type=template&id=2ccfb032\"\nimport script from \"./PasswordInput.vue?vue&type=script&lang=js\"\nexport * from \"./PasswordInput.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:{ error: _vm.hasErrors }},[_vm._t(\"default\"),(_vm.hasErrors)?_c('div',{staticClass:\"errors\"},_vm._l((_vm.activeErrorMessages),function(error){return _c('div',{key:error,staticClass:\"error form-required\"},[_vm._v(\" \"+_vm._s(_vm.$t(`${error}`))+\" \")])}),0):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VuelidateErrorTemplate.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VuelidateErrorTemplate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VuelidateErrorTemplate.vue?vue&type=template&id=28dcc82f\"\nimport script from \"./VuelidateErrorTemplate.vue?vue&type=script&lang=js\"\nexport * from \"./VuelidateErrorTemplate.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"flex items-center py-3 justify-between border rounded\",class:[_vm.warningClasses, _vm.lowPadding ? 'px-3' : 'px-6'],on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('div',{staticClass:\"flex items-center\",class:[\n { 'pe-8': _vm.showRightSlot },\n { 'flex-grow justify-center': _vm.isContentCentered },\n ]},[(_vm.showIcon)?_vm._t(\"icon\",function(){return [(_vm.icon)?_c('svg-icon',{staticClass:\"me-4 flex-shrink-0\",class:_vm.iconClasses,attrs:{\"name\":_vm.icon}}):_vm._e()]}):_vm._e(),_vm._t(\"default\")],2),(_vm.showRightSlot)?_c('div',{staticClass:\"flex flex-wrap justify-end items-center\"},[_vm._t(\"rightPart\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WarningBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WarningBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./WarningBox.vue?vue&type=template&id=5edeb7c8\"\nimport script from \"./WarningBox.vue?vue&type=script&lang=js\"\nexport * from \"./WarningBox.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"flex items-center break-words\"},[(_vm.icon)?_c('svg-icon',{staticClass:\"icon-2xl me-2\",attrs:{\"name\":_vm.icon}}):_vm._e(),_c('div',{class:_vm.valueClasses},[_vm._v(_vm._s(_vm.localValue))]),(_vm.tooltip)?_c('svg-icon',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.bottom\",value:(_vm.tooltip),expression:\"tooltip\",modifiers:{\"bottom\":true}}],staticClass:\"inline icon-sm -mt-1 mx-1 flex-shrink-0\",attrs:{\"name\":\"info-circle\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseReadOnlyField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseReadOnlyField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BaseReadOnlyField.vue?vue&type=template&id=1552ca4b\"\nimport script from \"./BaseReadOnlyField.vue?vue&type=script&lang=js\"\nexport * from \"./BaseReadOnlyField.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../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","// Wrapper used to easily set entity rules using casl management rules.\n\n// The right types existing in Casl\nconst RightTypes = Object.freeze({\n Manage: \"manage\",\n Create: \"create\",\n Read: \"read\",\n Edit: \"edit\",\n Delete: \"delete\",\n});\n// Casl based ruleset usable as a bitmask\nconst Rights = Object.freeze({\n CanDoNothing: 0x00000,\n CanManage: 0x00001,\n CanCreate: 0x00010,\n CanRead: 0x00100,\n CanEdit: 0x01000,\n CanDelete: 0x10000,\n CanDoEverything: 0x11111,\n});\nlet permissions = {};\n\n/**\n * @param abilityBuilder {AbilityBuilder} // Casl AbilityBuilder()\n * @param entity {string} // Database or Vuex-orm entity\n * @param access {Number} // Rights enum bitmask value\n */\nconst addEntityRules = (abilityBuilder, entity, access) => {\n // Initialize with Rights.CanDoNothing if the entity has no access yet\n permissions[entity] = permissions[entity] || Rights.CanDoNothing;\n // Add access for the entity\n permissions[entity] |= access;\n\n const entityRuleSet = {\n // ruleName: true or false,\n [RightTypes.Manage]: !!(permissions[entity] & Rights.CanManage),\n [RightTypes.Create]: !!(permissions[entity] & Rights.CanCreate),\n [RightTypes.Read]: !!(permissions[entity] & Rights.CanRead),\n [RightTypes.Edit]: !!(permissions[entity] & Rights.CanEdit),\n [RightTypes.Delete]: !!(permissions[entity] & Rights.CanDelete),\n };\n\n for (const accessType in entityRuleSet) {\n let isAccessTypeGranted = entityRuleSet[accessType];\n\n if (isAccessTypeGranted) {\n abilityBuilder.can(accessType, entity);\n } else {\n abilityBuilder.cannot(accessType, entity);\n }\n }\n};\nconst resetEntitiesAccess = () => {\n permissions = {};\n};\n\nexport { addEntityRules, resetEntitiesAccess, RightTypes, Rights };\n","import { AbilityBuilder, Ability } from \"@casl/ability\";\nimport {\n addEntityRules,\n resetEntitiesAccess,\n Rights,\n} from \"@/config/entityRules.js\";\nimport Store from \"@/store\";\n\nfunction processRules() {\n const abilityBuilder = new AbilityBuilder();\n resetEntitiesAccess();\n\n if (Store.getters[\"Auth/isSuperAdmin\"]) {\n addEntityRules(\n abilityBuilder,\n \"Customer\",\n Rights.CanManage | Rights.CanRead | Rights.CanCreate | Rights.CanEdit\n );\n addEntityRules(\n abilityBuilder,\n \"Site\",\n Rights.CanManage | Rights.CanRead | Rights.CanCreate | Rights.CanEdit\n );\n\n addEntityRules(abilityBuilder, \"SiteUnit\", Rights.CanDoEverything);\n addEntityRules(\n abilityBuilder,\n \"SiteUnitAssignment\",\n Rights.CanDoEverything\n );\n addEntityRules(abilityBuilder, \"License\", Rights.CanDoEverything);\n addEntityRules(abilityBuilder, \"PatientLicense\", Rights.CanDoEverything);\n addEntityRules(abilityBuilder, \"Asset\", Rights.CanDoEverything);\n addEntityRules(abilityBuilder, \"UserSession\", Rights.CanRead);\n addEntityRules(\n abilityBuilder,\n \"SiteManagerProfile\",\n Rights.CanDoEverything\n );\n addEntityRules(abilityBuilder, \"TherapistProfile\", Rights.CanDoEverything);\n addEntityRules(abilityBuilder, \"AdminProfile\", Rights.CanDoEverything);\n addEntityRules(abilityBuilder, \"DpoProfile\", Rights.CanDoEverything);\n addEntityRules(abilityBuilder, \"PatientProfile\", Rights.CanRead);\n abilityBuilder.can(\"edit\", \"PatientProfile\", [\n \"isArchived\",\n \"isAccountDeactivated\",\n ]);\n addEntityRules(\n abilityBuilder,\n \"CustomerNotification\",\n Rights.CanDoEverything\n );\n addEntityRules(\n abilityBuilder,\n \"OptionalFeatureDefinition\",\n Rights.CanDoEverything\n );\n addEntityRules(\n abilityBuilder,\n \"OptionalFeatureActivation\",\n Rights.CanDoEverything\n );\n addEntityRules(\n abilityBuilder,\n \"FeedbackReport\",\n Rights.CanRead | Rights.CanCreate\n );\n addEntityRules(abilityBuilder, \"FeedbackReportAttachment\", Rights.CanRead);\n } else if (Store.getters[\"Auth/isAdmin\"]) {\n // Default Admin without any specific competency\n addEntityRules(abilityBuilder, \"Customer\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"Site\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"SiteUnit\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"SiteUnitAssignment\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"License\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"PatientLicense\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"Asset\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"SiteManagerProfile\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"TherapistProfile\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"AdminProfile\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"DpoProfile\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"OptionalFeatureDefinition\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"OptionalFeatureActivation\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"FeedbackReport\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"FeedbackReportAttachment\", Rights.CanRead);\n\n // Admin account manager competency\n if (Store.getters[\"Auth/isAdminManagerAdmin\"]) {\n addEntityRules(abilityBuilder, \"SiteManagerProfile\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"TherapistProfile\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"AdminProfile\", Rights.CanDoEverything);\n addEntityRules(abilityBuilder, \"DpoProfile\", Rights.CanDoEverything);\n }\n\n // Account executive admin\n if (Store.getters[\"Auth/isAccountExecutiveAdmin\"]) {\n addEntityRules(abilityBuilder, \"Site\", Rights.CanDoEverything);\n addEntityRules(abilityBuilder, \"SiteUnit\", Rights.CanDoEverything);\n addEntityRules(\n abilityBuilder,\n \"SiteUnitAssignment\",\n Rights.CanDoEverything\n );\n addEntityRules(abilityBuilder, \"Asset\", Rights.CanDoEverything);\n addEntityRules(\n abilityBuilder,\n \"SiteManagerProfile\",\n Rights.CanDoEverything\n );\n addEntityRules(\n abilityBuilder,\n \"TherapistProfile\",\n Rights.CanDoEverything\n );\n addEntityRules(abilityBuilder, \"AdminProfile\", Rights.CanDoEverything);\n addEntityRules(abilityBuilder, \"DpoProfile\", Rights.CanDoEverything);\n }\n\n // Data scientist\n if (Store.getters[\"Auth/isDataScientistAdmin\"]) {\n abilityBuilder.can(\"edit\", \"Site\", [\"kind\"]);\n }\n\n // Publisher\n if (Store.getters[\"Auth/isPublisherAdmin\"]) {\n // right now can't do anything more than default admin\n }\n\n // Data export manager\n if (Store.getters[\"Auth/isDataExportManagerAdmin\"]) {\n // right now can't do anything more than default admin\n }\n if (Store.getters[\"Auth/isOptionalFeatureManagerAdmin\"]) {\n addEntityRules(\n abilityBuilder,\n \"OptionalFeatureActivation\",\n Rights.CanDoEverything\n );\n }\n } else if (Store.getters[\"Auth/isDPO\"]) {\n // DPO admin\n addEntityRules(abilityBuilder, \"AuditLog\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"Site\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"SiteUnit\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"SiteUnitAssignment\", Rights.CanRead);\n addEntityRules(\n abilityBuilder,\n \"SiteManagerProfile\",\n Rights.CanManage | Rights.CanRead | Rights.CanDelete\n );\n addEntityRules(\n abilityBuilder,\n \"TherapistProfile\",\n Rights.CanManage | Rights.CanRead | Rights.CanDelete\n );\n abilityBuilder.can(\"edit\", \"TherapistProfile\", [\"userName\", \"password\"]);\n addEntityRules(abilityBuilder, \"AdminProfile\", Rights.CanDoEverything);\n addEntityRules(abilityBuilder, \"AdminProfile\", Rights.CanEdit);\n abilityBuilder.cannot(\"edit\", \"AdminProfile\", [\"email\"]);\n addEntityRules(\n abilityBuilder,\n \"DpoProfile\",\n Rights.CanManage | Rights.CanRead | Rights.CanCreate | Rights.CanDelete\n );\n addEntityRules(\n abilityBuilder,\n \"PatientProfile\",\n Rights.CanManage | Rights.CanRead | Rights.CanDelete\n );\n abilityBuilder.can(\"edit\", \"PatientProfile\", [\n \"isArchived\",\n \"isAccountDeactivated\",\n \"password\",\n ]);\n addEntityRules(abilityBuilder, \"OptionalFeatureDefinition\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"OptionalFeatureActivation\", Rights.CanRead);\n } else if (Store.getters[\"Auth/isSiteManager\"]) {\n // Site manager\n addEntityRules(abilityBuilder, \"Site\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"SiteUnit\", Rights.CanDoEverything);\n addEntityRules(\n abilityBuilder,\n \"SiteUnitAssignment\",\n Rights.CanDoEverything\n );\n abilityBuilder.can(\"edit\", \"Site\", [\"passwordParameters\"]);\n abilityBuilder.can(\"edit\", \"Site\", [\"timeZoneId\"]);\n abilityBuilder.can(\"edit\", \"Site\", [\"samlParameters\"]);\n\n addEntityRules(\n abilityBuilder,\n \"SiteManagerProfile\",\n Rights.CanRead | Rights.CanEdit\n );\n addEntityRules(\n abilityBuilder,\n \"TherapistProfile\",\n Rights.CanRead | Rights.CanEdit\n );\n } else if (Store.getters[\"Auth/isTherapist\"]) {\n // Therapist\n addEntityRules(\n abilityBuilder,\n \"PatientProfile\",\n Rights.CanCreate | Rights.CanRead | Rights.CanEdit\n );\n addEntityRules(abilityBuilder, \"Site\", Rights.CanRead);\n addEntityRules(\n abilityBuilder,\n \"VideoMeeting\",\n Rights.CanRead | Rights.CanCreate | Rights.CanEdit | Rights.CanDelete\n );\n addEntityRules(abilityBuilder, \"SiteUnit\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"SiteUnitAssignment\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"UserSession\", Rights.CanCreate);\n abilityBuilder.cannot(\"edit\", \"PatientProfile\", [\n \"isArchived\",\n \"isAccountDeactivated\",\n ]);\n\n // Super therapist\n if (Store.getters[\"Auth/isSuperTherapist\"]) {\n addEntityRules(\n abilityBuilder,\n \"SiteManagerProfile\",\n Rights.CanRead | Rights.CanEdit\n );\n addEntityRules(\n abilityBuilder,\n \"TherapistProfile\",\n Rights.CanRead | Rights.CanEdit\n );\n\n addEntityRules(\n abilityBuilder,\n \"SiteUnit\",\n Rights.CanRead | Rights.CanEdit\n );\n addEntityRules(\n abilityBuilder,\n \"SiteUnitAssignment\",\n Rights.CanDoEverything\n );\n abilityBuilder.cannot(\"edit\", \"Site\", [\"passwordParameters\"]);\n abilityBuilder.can(\"edit\", \"Site\", [\"timeZoneId\"]);\n // N.B: SAML Parameters edition depends also on the site.samlParameters.canSupertherapistAdministerSAML setting.\n abilityBuilder.can(\"edit\", \"Site\", [\"samlParameters\"]);\n\n // Can archive patients\n abilityBuilder.can(\"edit\", \"PatientProfile\", [\n \"isArchived\",\n \"isAccountDeactivated\",\n ]);\n }\n } else if (Store.getters[\"Auth/isPatient\"]) {\n // Patient\n addEntityRules(abilityBuilder, \"VideoMeeting\", Rights.CanRead);\n addEntityRules(abilityBuilder, \"UserSession\", Rights.CanCreate);\n }\n\n return abilityBuilder.rules;\n}\n\nlet ability = new Ability();\n\nconst updateUserAccessRights = () => {\n if (ability) {\n ability.update(processRules());\n }\n};\n\nexport { ability, updateUserAccessRights };\n","import Vue from \"vue\";\nimport I18NextVue from \"i18next-vue\";\nimport i18next from \"i18next\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nimport { defaultLanguage } from \"@/utils/locales\";\n// translation files\nimport de from \"@/locales/de.json\";\nimport en from \"@/locales/en.json\";\nimport es from \"@/locales/es.json\";\nimport fr from \"@/locales/fr.json\";\nimport it from \"@/locales/it.json\";\nimport ro from \"@/locales/ro.json\";\nimport ar from \"@/locales/ar.json\";\n\nexport const translationResources = {\n en: {\n translation: en,\n },\n fr: {\n translation: fr,\n },\n es: {\n translation: es,\n },\n ro: {\n translation: ro,\n },\n it: {\n translation: it,\n },\n de: {\n translation: de,\n },\n ar: {\n translation: ar,\n },\n};\n\nconst isProduction = process.env.NODE_ENV === \"production\";\n\nlet i18nextPromise = i18next\n // detect user language\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(LanguageDetector)\n // init i18next\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n debug: false,\n fallbackLng: defaultLanguage,\n resources: translationResources,\n });\n\nexport function useI18Next(app) {\n i18nextPromise;\n Vue.use(I18NextVue, { i18next });\n return app;\n}\n\nexport default i18next;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('app-layout',[_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"h-full min-h-screen overflow-y-auto\",attrs:{\"id\":\"app\"}},[_c('toast'),_c('login-modal'),_c('stack',[_vm._t(\"default\")],2),_c('cookie-bar'),_c('portal-target',{attrs:{\"name\":\"modal\",\"tag\":\"div\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('notifications',{staticClass:\"min-w-128\",attrs:{\"group\":_vm.toastOptions.group,\"position\":_vm.toastOptions.position,\"max\":_vm.toastOptions.max,\"duration\":_vm.toastOptions.duration,\"closeOnClick\":_vm.toastOptions.closeOnClick,\"ignoreDuplicates\":_vm.toastOptions.ignoreDuplicates},scopedSlots:_vm._u([{key:\"body\",fn:function({ item, close }){return [_c('warning-box',{staticClass:\"mt-3\",class:{ 'cursor-pointer': item.data?.showCloseButton || false },attrs:{\"type\":item.type,\"show-right-slot\":\"\"},on:{\"click\":close},scopedSlots:_vm._u([(item.data?.showCloseButton)?{key:\"rightPart\",fn:function(){return [_c('svg-icon',{staticClass:\"icon-xs\",attrs:{\"name\":\"close\"},on:{\"click\":close}})]},proxy:true}:null],null,true)},[_c('div',{staticClass:\"flex flex-col\"},[(item.title)?_c('div',{staticClass:\"font-bold\"},[_vm._v(\" \"+_vm._s(item.title)+\" \")]):_vm._e(),_c('div',{staticClass:\"w-full\"},[(Array.isArray(item.text))?_c('div',{staticClass:\"flex flex-col\"},_vm._l((item.text),function(text,key){return _c('div',{key:key},[_c('li',{staticClass:\"list-inside\"},[_vm._v(_vm._s(text))])])}),0):_c('span',[_vm._v(_vm._s(item.text))])])])])]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Toast.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Toast.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Toast.vue?vue&type=template&id=afdbaa58\"\nimport script from \"./Toast.vue?vue&type=script&lang=js\"\nexport * from \"./Toast.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"appear\":\"\",\"name\":\"slideFromBottom\"}},[(_vm.isOpen)?_c('div',{staticClass:\"grid grid-cols-2 gap-4 lg:grid-cols-7 items-center cookie-bar-position z-cookie-bar w-9/10 p-8 shadow-lg bg-gray-100 rounded\"},[_c('div',{staticClass:\"col-span-5\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"App.CookieBar.cookieMessage\"))+\" \")]),_c('button',{staticClass:\"text-white bg-blue-500 hover:text-white hover:bg-blue-750\",on:{\"click\":_vm.accept}},[_vm._v(\" \"+_vm._s(_vm.$t(\"App.CookieBar.acceptText\"))+\" \")]),_c('button',{staticClass:\"text-white bg-blue-500 hover:text-white hover:bg-blue-750\",on:{\"click\":_vm.decline}},[_vm._v(\" \"+_vm._s(_vm.$t(\"App.CookieBar.declineText\"))+\" \")])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CookieBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CookieBar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CookieBar.vue?vue&type=template&id=ec94a9e0&scoped=true\"\nimport script from \"./CookieBar.vue?vue&type=script&lang=js\"\nexport * from \"./CookieBar.vue?vue&type=script&lang=js\"\nimport style0 from \"./CookieBar.vue?vue&type=style&index=0&id=ec94a9e0&prod&scoped=true&lang=postcss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ec94a9e0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppLayout.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppLayout.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AppLayout.vue?vue&type=template&id=cdee50bc\"\nimport script from \"./AppLayout.vue?vue&type=script&lang=js\"\nexport * from \"./AppLayout.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=47398fc1\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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 render(){var _vm=this,_c=_vm._self._c;return _c('svg',{class:_vm.className,attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('use',{attrs:{\"xlink:href\":_vm.iconPath,\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SvgIcon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SvgIcon.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SvgIcon.vue?vue&type=template&id=1080e5a2\"\nimport script from \"./SvgIcon.vue?vue&type=script&lang=js\"\nexport * from \"./SvgIcon.vue?vue&type=script&lang=js\"\nimport style0 from \"./SvgIcon.vue?vue&type=style&index=0&id=1080e5a2&prod&lang=postcss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return _c('stack',{staticClass:\"w-full min-h-32 justify-center items-center align-middle text-center bg-white\"},[_vm._t(\"text\",function(){return [_c('span',{staticClass:\"font-semibold mb-2\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Common.System.loading\"))+\" \")])]}),_vm._t(\"icon\",function(){return [_c('loading-icon',{attrs:{\"icon-class\":\"icon-6xl\"}})]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoadingLayout.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoadingLayout.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LoadingLayout.vue?vue&type=template&id=0c5de2a1\"\nimport script from \"./LoadingLayout.vue?vue&type=script&lang=js\"\nexport * from \"./LoadingLayout.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"flex items-center\"},[_c('span',{staticClass:\"text-h3 title-ellipsis\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),(_vm.title && _vm.subTitle.length)?_c('svg-icon',{staticClass:\"icon-md mx-3 flip-icon-if-rtl\",attrs:{\"name\":\"chevron-right\"}}):_vm._e(),(_vm.title && _vm.subTitle.length)?_c('span',{staticClass:\"text-h3 truncate\"},[_vm._v(\" \"+_vm._s(_vm.subTitle)+\" \")]):_vm._e(),(_vm.showNewBadge)?_c('new-feature-badge',{staticClass:\"ms-4\"}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Breadcrumbs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Breadcrumbs.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Breadcrumbs.vue?vue&type=template&id=6edefd82\"\nimport script from \"./Breadcrumbs.vue?vue&type=script&lang=js\"\nexport * from \"./Breadcrumbs.vue?vue&type=script&lang=js\"\nimport style0 from \"./Breadcrumbs.vue?vue&type=style&index=0&id=6edefd82&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 Vue from \"vue\";\nimport SvgIcon from \"@/components/ui/SvgIcon.vue\";\nimport BaseButton from \"@/components/ui/BaseButton.vue\";\nimport LoadingLayout from \"@/components/ui/LoadingLayout.vue\";\nimport Breadcrumbs from \"@/components/application/Breadcrumbs.vue\";\n\nVue.component(\"svg-icon\", SvgIcon);\nVue.component(\"base-button\", BaseButton);\nVue.component(\"breadcrumbs\", Breadcrumbs);\nVue.component(\"loading-layout\", LoadingLayout);\n","import Vue from \"vue\";\n\nimport VTooltip from \"v-tooltip\";\n\n/**\n * To make the tooltip visible outside of a container using \"overflow:auto\",\n * we need to set the following option\n * See https://github.com/Akryum/v-tooltip/issues/192#issuecomment-514328339\n */\nVue.use(VTooltip, {\n defaultBoundariesElement: \"window\",\n});\n","import Vue from \"vue\";\nimport PortalVue from \"portal-vue\";\n\nVue.use(PortalVue);\n","import Vue from \"vue\";\nimport Notifications from \"vue-notification\";\n\nVue.use(Notifications);\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"border-t-6 opacity-100 rounded p-8\",class:[_vm.containerAccentClasses]},[(_vm.messageHasTitle)?[(_vm.options.html)?_c('h2',{staticClass:\"dg-title\",domProps:{\"innerHTML\":_vm._s(_vm.messageTitle)}}):_c('h2',{staticClass:\"dg-title\"},[_vm._v(_vm._s(_vm.messageTitle))])]:_vm._e(),_c('div',{staticClass:\"mb-4 mt-4\",class:{ 'mt-8': _vm.messageHasTitle }},[(_vm.options.html)?_c('div',{staticClass:\"dg-content\",domProps:{\"innerHTML\":_vm._s(_vm.messageBody)}}):_c('div',{staticClass:\"dg-content\"},[_vm._v(_vm._s(_vm.messageBody))])]),_c('br'),_c('div',{staticClass:\"flex flex-row justify-between\"},[(_vm.options.showCancelText)?_c('base-button',{staticClass:\"btn-secondary min-w-42\",on:{\"click\":_vm.handleDismiss}},[_vm._v(\" \"+_vm._s(_vm.cancelText)+\" \")]):_c('div'),_c('base-button',{staticClass:\"ms-4 px-8 min-w-42\",class:[_vm.buttonAccentClasses],on:{\"click\":_vm.handleProceed}},[_vm._v(\" \"+_vm._s(_vm.okText)+\" \")])],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConfirmDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConfirmDialog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ConfirmDialog.vue?vue&type=template&id=15100234\"\nimport script from \"./ConfirmDialog.vue?vue&type=script&lang=js\"\nexport * from \"./ConfirmDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./ConfirmDialog.vue?vue&type=style&index=0&id=15100234&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../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 Vue from \"vue\";\nimport VuejsDialog from \"vuejs-dialog\";\nimport i18n from \"./../i18n\";\n\n// include the default style\nimport \"vuejs-dialog/dist/vuejs-dialog.min.css\";\n\nimport ConfirmDialog from \"@/components/ui/ConfirmDialog.vue\";\n\n// Tell Vue to install the plugin.\nVue.use(VuejsDialog, {\n view: \"confirm-dialog\",\n okText: \"\", // Empty to trigger default translations at the component display time only\n cancelText: \"\",\n showCancelText: true,\n customClass: \"confirm-modal\",\n html: false,\n});\n\nVue.dialog.registerComponent(\"confirm-dialog\", ConfirmDialog);\n","import Vue from \"vue\";\nimport { ability } from \"@/config/ability\";\nimport { abilitiesPlugin } from \"@casl/vue\";\n\nVue.use(abilitiesPlugin, ability);\n","import Vue from \"vue\";\nimport Vuelidate from \"vuelidate\";\n\nVue.use(Vuelidate);\n","import Vue from \"vue\";\nimport vuelidateErrorExtractor from \"vuelidate-error-extractor\";\n\nimport VuelidateErrorTemplate from \"@/components/ui/VuelidateErrorTemplate.vue\";\n\nVue.use(vuelidateErrorExtractor, {\n messages: {\n required: \"Common.Validators.Fields.{attribute}.required\",\n minLength: \"Common.Validators.Fields.{attribute}.minLength\",\n email: \"Common.Validators.Fields.{attribute}.email\",\n minValue: \"Common.Validators.Fields.{attribute}.minValue\",\n mustBeUnique: \"Common.Validators.Fields.{attribute}.mustBeUnique\",\n sameAs: \"Common.Validators.Fields.{attribute}.sameAs\",\n emailMustExist: \"Common.Validators.Fields.{attribute}.emailMustExist\",\n },\n template: VuelidateErrorTemplate,\n});\n","import Vue from \"vue\";\nimport VCalendar from \"v-calendar\";\n\nVue.use(VCalendar, {\n masks: {\n input: \"DD MMM YYYY\",\n },\n});\n","import Vue from \"vue\";\nimport VueCtkDateTimePicker from \"vue-ctk-date-time-picker\";\nimport \"vue-ctk-date-time-picker/dist/vue-ctk-date-time-picker.css\";\n\nVue.component(\"VueCtkDateTimePicker\", VueCtkDateTimePicker);\n","import Vue from \"vue\";\nimport VueTelInput from \"vue-tel-input\";\nimport \"vue-tel-input/dist/vue-tel-input.css\";\n\nVue.use(VueTelInput);\n","import Vue from \"vue\";\nimport LoadScript from \"vue-plugin-load-script\";\n\nVue.use(LoadScript);\n","import Vue from \"vue\";\nimport VueClipboard from \"vue-clipboard2\";\n\nVue.use(VueClipboard);\n\n// From: https://www.npmjs.com/package/vue-clipboard2\n// Let vue-clipboard2 set container to current element, needed to copy elements to clipboard\nVueClipboard.config.autoSetContainer = true;\n","import { connectionStatus, libraryStates } from \"@/plugins/vidyo/constants\";\n\nconst resetState = (initialState, state) => {\n const newState = initialState();\n Object.keys(newState).forEach((key) => {\n state[key] = newState[key];\n });\n};\n\nconst initialState = () => {\n return {\n libLoading: true,\n libStatus: null,\n connectionMessage: \"\",\n connectionState: connectionStatus.disconnected,\n version: \"\",\n cameraState: true,\n speakerState: true,\n microphoneState: true,\n cameras: [],\n microphones: [],\n speakers: [],\n selectedCamera: null,\n selectedMicrophone: null,\n selectedSpeaker: null,\n remoteParticipants: [],\n isSharingWindow: false,\n isLoadingShareWindow: false,\n };\n};\n\nfunction areEqualRemoteParticipants(p1, p2) {\n return p1.id == p2.id;\n}\n\nexport default {\n namespaced: true,\n\n state: initialState,\n getters: {\n IsCameraOn(state) {\n return state.cameraState;\n },\n IsSpeakerOn(state) {\n return state.speakerState;\n },\n IsMicrophoneOn(state) {\n return state.microphoneState;\n },\n IsConnected(state) {\n return state.connectionState == connectionStatus.connected;\n },\n IsSharingWindow(state) {\n return state.isSharingWindow;\n },\n libraryState(state) {\n if (state.libStatus == null) {\n return libraryStates.notLoaded;\n }\n\n return state.libStatus.state;\n },\n Participants(state) {\n let names = state.remoteParticipants.map((p) => p.name);\n return [...new Set(names)];\n },\n },\n mutations: {\n setLoading(state, loading) {\n state.libLoading = loading;\n },\n setLibStatus(state, libStatus) {\n state.libStatus = libStatus;\n },\n setVersion(state, version) {\n state.version = version;\n },\n setCameraState(state, cameraState) {\n state.cameraState = cameraState;\n },\n setSpeakerState(state, speakerState) {\n state.speakerState = speakerState;\n },\n setMicrophoneState(state, microphoneState) {\n state.microphoneState = microphoneState;\n },\n setConnectionState(state, connectionState, connectionMessage) {\n state.connectionState = connectionState;\n state.connectionMessage = connectionMessage;\n },\n addRemoteParticipant(state, participant) {\n if (\n state.remoteParticipants.find((p) =>\n areEqualRemoteParticipants(p, participant)\n )\n ) {\n // Found the same connection id, so we remove the old participant first.\n let index = state.remoteParticipants.findIndex((p) =>\n areEqualRemoteParticipants(p, participant)\n );\n if (index != -1) {\n state.remoteParticipants.splice(index, 1);\n }\n }\n state.remoteParticipants.push(participant);\n },\n removeRemoteParticipant(state, participant) {\n let index = state.remoteParticipants.findIndex((p) =>\n areEqualRemoteParticipants(p, participant)\n );\n if (index != -1) {\n state.remoteParticipants.splice(index, 1);\n }\n },\n addCamera(state, camera) {\n if (state.cameras.find((c) => c.id == camera.id)) {\n this.removeCamera(state, camera);\n }\n\n state.cameras.push(camera);\n },\n removeCamera(state, camera) {\n let index = state.cameras.findIndex((c) => c.id == camera.id);\n state.cameras.splice(index, 1);\n },\n setSelectedCamera(state, camera) {\n state.selectedCamera = camera;\n },\n addMicrophone(state, microphone) {\n state.microphones.push(microphone);\n },\n removeMicrophone(state, microphone) {\n let index = state.microphones.findIndex((m) => m.id == microphone.id);\n state.microphones.splice(index, 1);\n },\n setSelectedMicrophone(state, microphone) {\n state.selectedMicrophone = microphone;\n },\n addSpeaker(state, speaker) {\n state.speakers.push(speaker);\n },\n removeSpeaker(state, speaker) {\n let index = state.speakers.findIndex((s) => s.id == speaker.id);\n state.speakers.splice(index, 1);\n },\n setSelectedSpeaker(state, speaker) {\n state.selectedSpeaker = speaker;\n },\n clearStore(state) {\n resetState(initialState, state);\n },\n clearParticipants(state) {\n state.remoteParticipants = [];\n state.localParticipantUsername = null;\n },\n shareWindow(state, isSharingWindow) {\n state.isSharingWindow = isSharingWindow;\n },\n loadShareWindow(state, loading) {\n state.isLoadingShareWindow = loading;\n },\n },\n actions: {\n setLoading({ commit }, loading) {\n commit(\"setLoading\", loading);\n },\n setLibStatus({ commit }, libStatus) {\n commit(\"setLibStatus\", libStatus);\n },\n setVersion({ commit }, version) {\n commit(\"setVersion\", version);\n },\n setCameraState({ commit }, cameraState) {\n commit(\"setCameraState\", cameraState);\n },\n setSpeakerState({ commit }, speakerState) {\n commit(\"setSpeakerState\", speakerState);\n },\n setMicrophoneState({ commit }, microphoneState) {\n commit(\"setMicrophoneState\", microphoneState);\n },\n setConnectionState({ commit }, connectionState, connectionMessage) {\n commit(\"setConnectionState\", connectionState, connectionMessage);\n },\n addRemoteParticipant({ commit }, participant) {\n commit(\"addRemoteParticipant\", participant);\n },\n removeRemoteParticipant({ commit }, participant) {\n commit(\"removeRemoteParticipant\", participant);\n },\n addCamera({ commit }, camera) {\n commit(\"addCamera\", camera);\n },\n removeCamera({ commit }, camera) {\n commit(\"removeCamera\", camera);\n },\n setSelectedCamera({ commit }, camera) {\n commit(\"setSelectedCamera\", camera);\n },\n addMicrophone({ commit }, microphone) {\n commit(\"addMicrophone\", microphone);\n },\n removeMicrophone({ commit }, microphone) {\n commit(\"removeMicrophone\", microphone);\n },\n setSelectedMicrophone({ commit }, microphone) {\n commit(\"setSelectedMicrophone\", microphone);\n },\n addSpeaker({ commit }, speaker) {\n commit(\"addSpeaker\", speaker);\n },\n removeSpeaker({ commit }, speaker) {\n commit(\"removeSpeaker\", speaker);\n },\n setSelectedSpeaker({ commit }, speaker) {\n commit(\"setSelectedSpeaker\", speaker);\n },\n clearParticipants({ commit }) {\n commit(\"clearParticipants\");\n },\n clearStore({ commit }) {\n commit(\"clearStore\");\n },\n shareWindow({ commit }, isSharingWindow) {\n commit(\"shareWindow\", isSharingWindow);\n },\n loadShareWindow({ commit }, loading) {\n commit(\"loadShareWindow\", loading);\n },\n },\n};\n","/**\n * Script allowing to start conference and managing its events. This is the core script for conferencing though vidyo\n *\n */\n\nimport { tr } from \"@/utils/translation\";\n\nexport {\n StartVidyoConnector,\n connectorDisconnected,\n join,\n leave,\n setCamera,\n setMicrophone,\n setSpeaker,\n selectSharing,\n};\nexport { vidyoConnector };\nimport { storeName, videoMaxes } from \"@/plugins/vidyo/constants\";\n\nvar Store = null;\nvar vidyoConnector = null;\n\n// Variable for screen sharing\nvar windowShare;\nvar isSharingWindow = false;\n\n// Run StartVidyoConnector when the VidyoClient is successfully loaded\nfunction StartVidyoConnector(VC, store, platformInfo, callbacks) {\n Store = store;\n window.onresize = function () {\n if (vidyoConnector) {\n HideLabel(vidyoConnector);\n }\n };\n\n window.onbeforeunload = function () {\n vidyoConnector.Destruct();\n };\n\n VC.CreateVidyoConnector({\n viewId: \"vidyo-renderer\", // Div ID where the composited video will be rendered\n viewStyle: \"VIDYO_CONNECTORVIEWSTYLE_Default\", // Visual style of the composited renderer\n remoteParticipants: 2, // Maximum number of participants to render\n logFileFilter: \"warning info@VidyoClient info@VidyoConnector\",\n logFileName: \"\",\n userData: \"\",\n })\n .then(function (vc) {\n vidyoConnector = vc;\n HideLabel(vidyoConnector);\n registerDeviceListeners(vidyoConnector);\n handleParticipantChange(vidyoConnector, callbacks.participantsChangeCb);\n handleSharing(vidyoConnector);\n //handleChat(vidyoConnector); //THIS IS DISABLED BUT STILL PRESENT UNTIL FURTHER NOTICE\n\n // Populate the connectionStatus with the client version\n vidyoConnector\n .GetVersion()\n .then(function (version) {\n console.log(\"version\", version);\n Store.dispatch(`${storeName}/setVersion`, version);\n })\n .catch(function () {\n Store.dispatch(`${storeName}/setVersion`, \"--\");\n });\n\n // If running on Internet Explorer, set the default certificate authority list.\n // This is necessary when IE's Protected Mode is enabled.\n if (platformInfo.isIE) {\n vidyoConnector\n .SetCertificateAuthorityList({ certificateAuthorityList: \"default\" })\n .then(function () {\n console.log(\"SetCertificateAuthorityList success\");\n })\n .catch(function () {\n console.error(\"SetCertificateAuthorityList failed\");\n });\n }\n if (callbacks.vidyoReadyCb) {\n callbacks.vidyoReadyCb();\n }\n })\n .catch(function (err) {\n console.error(\"CreateVidyoConnector Failed \" + err);\n });\n}\n\nasync function leave() {\n return vidyoConnector.Disconnect();\n}\n\n/**\n * HANDLERS\n *\n */\n\n/// CALLED BY INIT\nfunction HideLabel(vidyoConnector) {\n var rndr = document.getElementById(\"vidyo-renderer\");\n if (rndr != null) {\n vidyoConnector.ShowViewLabel({\n viewId: \"vidyo-renderer\",\n showLabel: false, // Hide 'Preview' label\n });\n }\n}\n\n// Permits to count devices on addition\nlet cameraNumber = 0;\nlet microphoneNumber = 0;\n\n/// CALLED BY INIT\nfunction registerDeviceListeners(vidyoConnector) {\n // Handle appearance and disappearance of camera devices in the system\n vidyoConnector\n .RegisterLocalCameraEventListener({\n onAdded: function (localCamera) {\n localCamera.SetMaxConstraint({\n width: videoMaxes.width,\n height: videoMaxes.height,\n });\n\n // Creates a getter so that the displayed value makes sense\n // when the camera name is not available, as seen on Firefox\n // or when blocking camera access on Chrome.\n // To be noted that the camera name is not available\n // at the time this method is run, hence the usage of a getter.\n const deviceNumber = ++cameraNumber;\n localCamera.displayName = () => {\n // Checking for falsy here doesn't work because it is a simple string object\n if (localCamera.name !== \"\") {\n return localCamera.name;\n }\n\n return tr(\"ConferencePage.Video.Settings.cameraNumber\", {\n deviceNumber: deviceNumber,\n });\n };\n\n Store.dispatch(`${storeName}/addCamera`, localCamera);\n\n if (localCamera.name.includes(\"Default\")) {\n setCamera(localCamera);\n }\n\n if (localCamera.name.includes(\"Kinect\")) {\n setCamera(localCamera);\n }\n },\n onRemoved: function (localCamera) {\n // Existing camera became unavailable\n Store.dispatch(`${storeName}/removeCamera`, localCamera);\n },\n onSelected: function (localCamera) {\n // Camera was selected/unselected by you or automatically\n if (localCamera) {\n Store.dispatch(`${storeName}/setSelectedCamera`, localCamera);\n }\n },\n onStateUpdated: function (localCamera, state) {\n // Camera state was updated\n },\n })\n .then(function () {\n console.log(\"RegisterLocalCameraEventListener Success\");\n })\n .catch(function () {\n console.error(\"RegisterLocalCameraEventListener Failed\");\n });\n\n // Handle appearance and disappearance of microphone devices in the system\n vidyoConnector\n .RegisterLocalMicrophoneEventListener({\n onAdded: function (localMicrophone) {\n // Creates a getter so that the displayed value makes sense\n // when the microphone name is not available, as seen on Firefox\n // or when blocking microphone access on Chrome.\n // To be noted that this name is not available\n // at the time this method is run, hence the usage of a getter.\n const deviceNumber = ++microphoneNumber;\n localMicrophone.displayName = () => {\n // Checking for falsy here doesn't work because it is a simple string object\n if (localMicrophone.name !== \"\") {\n return localMicrophone.name;\n }\n\n return tr(\"ConferencePage.Video.Settings.microphoneNumber\", {\n deviceNumber: deviceNumber,\n });\n };\n\n Store.dispatch(`${storeName}/addMicrophone`, localMicrophone);\n if (localMicrophone.name.includes(\"Default\")) {\n setMicrophone(localMicrophone);\n }\n },\n onRemoved: function (localMicrophone) {\n Store.dispatch(`${storeName}/removeMicrophone`, localMicrophone);\n },\n onSelected: function (localMicrophone) {\n Store.dispatch(`${storeName}/setSelectedMicrophone`, localMicrophone);\n },\n onStateUpdated: function (localMicrophone, state) {\n // Microphone state was updated\n },\n })\n .then(function () {\n console.log(\"RegisterLocalMicrophoneEventListener Success\");\n })\n .catch(function () {\n console.error(\"RegisterLocalMicrophoneEventListener Failed\");\n });\n\n // Handle appearance and disappearance of speaker devices in the system\n vidyoConnector\n .RegisterLocalSpeakerEventListener({\n onAdded: function (localSpeaker) {\n Store.dispatch(`${storeName}/addSpeaker`, localSpeaker);\n if (localSpeaker.name.includes(\"Default\")) {\n setSpeaker(localSpeaker);\n }\n },\n onRemoved: function (localSpeaker) {\n Store.dispatch(`${storeName}/removeSpeaker`, localSpeaker);\n },\n onSelected: function (localSpeaker) {\n Store.dispatch(`${storeName}/setSelectedSpeaker`, localSpeaker);\n },\n onStateUpdated: function (localSpeaker, state) {\n // Speaker state was updated\n },\n })\n .then(function () {\n console.log(\"RegisterLocalSpeakerEventListener Success\");\n })\n .catch(function () {\n console.error(\"RegisterLocalSpeakerEventListener Failed\");\n });\n}\n\nlet setCamera = async (camera) => {\n return vidyoConnector\n .SelectLocalCamera({\n localCamera: camera,\n })\n .then(function () {});\n};\n\nlet setMicrophone = async (microphone) => {\n return vidyoConnector\n .SelectLocalMicrophone({\n localMicrophone: microphone,\n })\n .then(function () {});\n};\n\nlet setSpeaker = async (speaker) => {\n return vidyoConnector\n .SelectLocalSpeaker({\n localSpeaker: speaker,\n })\n .then(function () {});\n};\n\n/// CALLED BY INIT\nfunction handleSharing(vidyoConnector) {\n // Register for window share status updates, which operates differently in plugin vs webrtc:\n // plugin: onAdded and onRemoved callbacks are received for each available window\n // webrtc: onAdded callback received for a single item, which when clicked will yield a popup to select a share.\n vidyoConnector\n .RegisterLocalWindowShareEventListener({\n onAdded: function (localWindowShare) {\n windowShare = localWindowShare;\n },\n onRemoved: function (localWindowShare) {\n /* Existing window is no longer available for sharing */\n },\n onSelected: function (localWindowShare) {\n if (localWindowShare) {\n isSharingWindow = true;\n console.log(\"Window share selected : \" + localWindowShare.name);\n } else {\n isSharingWindow = false;\n console.log(\"Stop sharing window\");\n }\n Store.dispatch(`${storeName}/shareWindow`, isSharingWindow);\n Store.dispatch(`${storeName}/loadShareWindow`, false);\n },\n onStateUpdated: function (localWindowShare, state) {\n /* Window share state has been updated */\n },\n })\n .then(function () {\n console.log(\"RegisterLocalWindowShareEventListener Success\");\n })\n .catch(function () {\n console.error(\"RegisterLocalWindowShareEventListener Failed\");\n });\n}\n\nlet selectSharing = async () => {\n if (!isSharingWindow) {\n return vidyoConnector.SelectLocalWindowShare({\n localWindowShare: windowShare,\n });\n } else {\n return vidyoConnector.SelectLocalWindowShare({\n localWindowShare: null,\n });\n }\n};\n\n/// CALLED BY INIT\nfunction handleParticipantChange(vidyoConnector, userChangeCb) {\n // Report local participant in RegisterParticipantEventListener.\n vidyoConnector.ReportLocalParticipantOnJoined({\n reportLocalParticipant: true,\n });\n\n vidyoConnector\n .RegisterParticipantEventListener({\n onJoined: function (participant) {\n if (participant.name.length > 64) {\n participant.name = participant.name.substring(1); // remove apostrophe in front of username introduced by vidyo when Companion Username starts with special character\n }\n Store.dispatch(`${storeName}/addRemoteParticipant`, participant).then(\n () => {\n userChangeCb();\n }\n );\n },\n onLeft: function (participant) {\n Store.dispatch(\n `${storeName}/removeRemoteParticipant`,\n participant\n ).then(() => {\n userChangeCb();\n });\n },\n onDynamicChanged: function (participants) {\n // Order of participants changed\n },\n onLoudestChanged: function (participant, audioOnly) {},\n })\n .then(function () {\n console.log(\"RegisterParticipantEventListener Success\");\n })\n .catch(function () {\n console.err(\"RegisterParticipantEventListener Failed\");\n });\n}\n\n// Attempt to connect to the conference\n// We will also handle connection failures\n// and network or server-initiated disconnects.\nasync function join(\n vidyoConnector,\n host,\n roomKey,\n roomPin,\n displayName,\n resourceId,\n onSuccess,\n onFailure,\n onDisconnect\n) {\n return vidyoConnector\n .ConnectToRoomAsGuest({\n host: host,\n displayName: displayName,\n roomKey: roomKey,\n roomPin: `${roomPin}`,\n\n onSuccess: function () {\n onSuccess();\n HideLabel(vidyoConnector);\n },\n onFailure: function (reason) {\n onFailure(reason);\n console.error(\n \"VidyoConnector.ConnectToRoomAsGuest : onFailure callback received\"\n );\n HideLabel(vidyoConnector);\n },\n onDisconnected: function (reason) {\n onDisconnect(reason);\n HideLabel(vidyoConnector);\n },\n })\n .then(function (status) {\n if (!status) {\n throw Error(status);\n }\n })\n .catch(function () {\n console.error(\"ConnectToRoomAsGuest Failed\");\n });\n}\n\n// Connector either fails to connect or a disconnect completed, update UI elements\nfunction connectorDisconnected(vidyoConnector) {\n // Release devices from the vidyo connector and then destruct it.\n vidyoConnector.SelectLocalCamera({ localCamera: null });\n vidyoConnector.SelectLocalMicrophone({ localMicrophone: null });\n vidyoConnector.SelectLocalSpeaker({ localSpeaker: null });\n vidyoConnector.Destruct();\n}\n","/**\n * This script is in charge of loading and unloading the external library.\n *\n */\n\nimport Vue from \"vue\";\nimport { vidyoScript } from \"@/plugins/vidyo/constants\";\n\n/**\n * Function to inject the external library for vidyo\n * @returns {Promise}\n */\nconst injectVidyoLib = async function () {\n return Vue.loadScript(`${vidyoScript}`);\n};\n\nconst unloadVidyoLib = async () => {\n return Vue.unloadScript(`${vidyoScript}`)\n .then(() => {\n console.log(\"Unloaded vidyo external script\");\n })\n .catch((error) => {\n console.log(\"Failed to unload vidyo conf\");\n })\n .finally(() => {\n return;\n });\n};\n\nexport { injectVidyoLib, unloadVidyoLib };\n","/**\n * Root script of the plugin, in charge of being loaded inside vue and handling the interface between the functionalities and the components\n * Later on this might contain references to the components as well\n *\n */\n\nimport VidyoStore from \"./vidyo-store\";\n\nimport { injectVidyoLib, unloadVidyoLib } from \"@/plugins/vidyo/injector\";\nimport {\n StartVidyoConnector,\n join,\n leave,\n connectorDisconnected,\n vidyoConnector,\n setSpeaker,\n setMicrophone,\n setCamera,\n selectSharing,\n} from \"@/plugins/vidyo/conference\";\nimport {\n storeName,\n connectionStatus,\n libraryStates,\n} from \"@/plugins/vidyo/constants\";\n\nconst Vidyo = {\n storeName: storeName,\n install: function (Vue, options) {\n if (!options.store) {\n console.log(\"Vidyo plugin requires a reference to the store\");\n return;\n }\n\n const Store = options.store;\n Store.registerModule(storeName, VidyoStore);\n let Vidyo = {\n connected: false,\n /*\n * Conference call control functions\n * */\n async setMicrophoneState(state) {\n if (!vidyoConnector) {\n return;\n }\n return vidyoConnector\n .SetMicrophonePrivacy({\n privacy: !state,\n })\n .then(() => {\n Store.dispatch(`${storeName}/setMicrophoneState`, state);\n });\n },\n async setSpeakerState(state) {\n if (!vidyoConnector) {\n return;\n }\n return vidyoConnector\n .SetSpeakerPrivacy({\n privacy: !state,\n })\n .then(() => {\n Store.dispatch(`${storeName}/setSpeakerState`, state);\n });\n },\n async setCameraState(state) {\n if (!vidyoConnector) {\n return;\n }\n return vidyoConnector\n .SetCameraPrivacy({\n privacy: !state,\n })\n .then(() => {\n Store.dispatch(`${storeName}/setCameraState`, state);\n });\n },\n async setCamera(camera) {\n if (camera == null) {\n return this.setCameraState(false);\n }\n this.setCameraState(true);\n return setCamera(camera);\n },\n async setMicrophone(microphone) {\n if (microphone == null) {\n return this.setMicrophoneState(false);\n }\n this.setMicrophoneState(true);\n\n return setMicrophone(microphone);\n },\n async setSpeaker(speaker) {\n if (speaker == null) {\n return this.setSpeakerState(false);\n }\n this.setSpeakerState(true);\n return setSpeaker(speaker);\n },\n async selectSharing() {\n return selectSharing();\n },\n async enableDebug() {\n vidyoConnector\n .EnableDebug({\n port: 7776,\n logFilter: \"warning info@VidyoClient info@VidyoConnector\",\n })\n .then(function () {\n console.log(\"EnableDebug success\");\n })\n .catch(function () {\n console.error(\"EnableDebug failed\");\n });\n },\n async join(host, roomKey, roomPin, displayName, resourceId, onFailure) {\n Store.dispatch(\n `${storeName}/setConnectionState`,\n connectionStatus.connecting,\n \"\"\n );\n Store.dispatch(`${storeName}/clearParticipants`);\n return join(\n vidyoConnector,\n host,\n roomKey,\n roomPin,\n displayName,\n resourceId,\n () => {\n Store.dispatch(\n `${storeName}/setConnectionState`,\n connectionStatus.connected,\n \"\"\n );\n },\n (reason) => {\n Store.dispatch(\n `${storeName}/setConnectionState`,\n connectionStatus.failed,\n reason\n );\n onFailure();\n },\n (reason) => {\n Store.dispatch(\n `${storeName}/setConnectionState`,\n connectionStatus.disconnected,\n reason\n );\n }\n );\n },\n async leave() {\n Store.dispatch(\n `${storeName}/setConnectionState`,\n connectionStatus.disconnecting,\n \"\"\n );\n return leave();\n },\n };\n\n let platformInfo = {};\n let webrtcInitializeAttempts = 0;\n let participantsChangeCb = null;\n let vidyoReadyCb = null;\n Vidyo.initVidyo = async function (\n vidyoReadyCallback,\n participantsChangeCallback\n ) {\n Store.dispatch(`${storeName}/setLoading`, true);\n platformInfo = loadPlatformInfo();\n vidyoReadyCb = vidyoReadyCallback;\n participantsChangeCb = participantsChangeCallback;\n return injectVidyoLib().then(() => {\n return window.onVidyoClientLoaded({\n state: \"READY\",\n description: \"Native SCIP + WebRTC\",\n });\n return;\n });\n };\n\n Vidyo.unload = () => {\n connectorDisconnected(vidyoConnector);\n unloadVidyoLib().then(() => {\n Store.dispatch(`${storeName}/clearStore`);\n });\n };\n\n Vue.Vidyo = Vue.prototype.$Vidyo = Vidyo;\n\n // Injects the callback function to handle vidyo loading\n window.onVidyoClientLoaded = (status) => {\n console.log(\n \"Status: \" + status.state + \" / Description: \" + status.description\n );\n Store.dispatch(`${storeName}/setLibStatus`, status);\n switch (status.state) {\n case libraryStates.ready: // The library is operating normally\n Store.dispatch(`${storeName}/setLoading`, false);\n window.VC = new window.VidyoClientLib.VidyoClient(\"\", () => {\n // After the VidyoClient is successfully initialized a global VC object will become available\n // All of the VidyoConnector gui and logic is implemented in VidyoConnector.js\n StartVidyoConnector(VC, Store, platformInfo, {\n vidyoReadyCb: vidyoReadyCb,\n participantsChangeCb: participantsChangeCb,\n });\n });\n break;\n case libraryStates.retrying: // The library operating is temporarily paused\n break;\n case libraryStates.failed: // The library operating has stopped\n // If WebRTC initialization failed, try again up to 3 times.\n if (\n status.description.indexOf(\n \"Could not initialize WebRTC transport\"\n ) > -1 &&\n webrtcInitializeAttempts < 3\n ) {\n ++webrtcInitializeAttempts;\n } else {\n Store.dispatch(`${storeName}/setLoading`, false);\n console.log(\"Failed to load the library\");\n }\n break;\n case libraryStates.failedVersion: // The library operating has stopped\n console.log(\"We should show a link to download a new version\");\n console.log(\"Failed because of version\");\n Store.dispatch(`${storeName}/setLoading`, false);\n break;\n case libraryStates.notAvailable: // The library is not available\n console.log(\"Show that the library is not available\");\n Store.dispatch(`${storeName}/setLoading`, false);\n break;\n case libraryStates.timedout: // Transcoding Inactivity Timeout\n console.log(\"Show that there was a timeout\");\n Store.dispatch(`${storeName}/setLoading`, false);\n break;\n }\n return true; // Return true to reload the plugins if not available\n };\n },\n};\n\nfunction loadPlatformInfo() {\n let platformInfo = {};\n let userAgent = navigator.userAgent || navigator.vendor || window.opera;\n // Opera 8.0+\n platformInfo.isOpera =\n userAgent.indexOf(\"Opera\") != -1 || userAgent.indexOf(\"OPR\") != -1;\n // Firefox\n platformInfo.isFirefox =\n userAgent.indexOf(\"Firefox\") != -1 || userAgent.indexOf(\"FxiOS\") != -1;\n // Chrome 1+\n platformInfo.isChrome =\n userAgent.indexOf(\"Chrome\") != -1 || userAgent.indexOf(\"CriOS\") != -1;\n // Safari\n platformInfo.isSafari =\n !platformInfo.isFirefox &&\n !platformInfo.isChrome &&\n userAgent.indexOf(\"Safari\") != -1;\n // AppleWebKit\n platformInfo.isAppleWebKit =\n !platformInfo.isSafari &&\n !platformInfo.isFirefox &&\n !platformInfo.isChrome &&\n userAgent.indexOf(\"AppleWebKit\") != -1;\n // Internet Explorer 6-11\n platformInfo.isIE =\n userAgent.indexOf(\"MSIE\") != -1 || !!document.documentMode == true;\n // Edge 20+\n platformInfo.isEdge = !platformInfo.isIE && !!window.StyleMedia;\n // Check if Mac\n platformInfo.isMac = navigator.platform.indexOf(\"Mac\") > -1;\n // Check if Windows\n platformInfo.isWin = navigator.platform.indexOf(\"Win\") > -1;\n // Check if Linux\n platformInfo.isLinux = navigator.platform.indexOf(\"Linux\") > -1;\n // Check if iOS\n platformInfo.isiOS =\n userAgent.indexOf(\"iPad\") != -1 || userAgent.indexOf(\"iPhone\") != -1;\n // Check if Android\n platformInfo.isAndroid = userAgent.indexOf(\"android\") > -1;\n // Check if Electron\n platformInfo.isElectron =\n typeof process === \"object\" &&\n process.versions &&\n process.versions.electron !== undefined;\n // Check if WebRTC is available\n platformInfo.isWebRTCAvailable =\n navigator.getUserMedia ||\n navigator.webkitGetUserMedia ||\n navigator.mozGetUserMedia ||\n (navigator.mediaDevices ? navigator.mediaDevices.getUserMedia : undefined)\n ? true\n : false;\n // Check if 64bit\n platformInfo.is64bit =\n navigator.userAgent.indexOf(\"WOW64\") > -1 ||\n navigator.userAgent.indexOf(\"Win64\") > -1 ||\n window.navigator.platform == \"Win64\";\n return platformInfo;\n}\n\nexport default Vidyo;\n","import Vue from \"vue\";\nimport Vidyo from \"@/plugins/vidyo\";\nimport store from \"@/store/index\";\n\nVue.use(Vidyo, { store });\n","import Vue from \"vue\";\nimport Multiselect from \"vue-multiselect\";\nimport \"vue-multiselect/dist/vue-multiselect.min.css\";\n\nVue.component(\"multiselect\", Multiselect);\n","import Vue from \"vue\";\nimport VWave from \"v-wave\";\n\nVue.use(VWave);\n","import Vue from \"vue\";\nimport VueMq from \"vue-mq\";\nimport tailwindConfig from \"@/../tailwind.config.js\";\n\n/**\n * Use the tailwind breakpoints in vueMq\n * Need to remove the \"px\" from the value and cast it as a Number\n */\nVue.use(VueMq, {\n breakpoints: {\n sm: Number(tailwindConfig.theme.screens.sm.replace(\"px\", \"\", 10)),\n md: Number(tailwindConfig.theme.screens.md.replace(\"px\", \"\", 10)),\n lg: Number(tailwindConfig.theme.screens.lg.replace(\"px\", \"\", 10)),\n xl: Number(tailwindConfig.theme.screens.xl.replace(\"px\", \"\", 10)),\n \"2xl\": Number(tailwindConfig.theme.screens[\"2xl\"].replace(\"px\", \"\", 10)),\n \"3xl\": Number(tailwindConfig.theme.screens[\"3xl\"].replace(\"px\", \"\", 10)),\n },\n defaultBreakpoint: \"sm\", // customize this for SSR\n});\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\n\nimport router from \"@/router/\";\nimport store from \"@/store/index\";\n\nimport \"@/assets/css/main.postcss\";\nimport \"@/components\";\nimport \"@/plugins/index\";\n\nimport { useI18Next } from \"./i18n\";\n\nVue.config.productionTip = false;\n\nuseI18Next(\n new Vue({\n router,\n store,\n render: (h) => h(App),\n })\n).$mount(\"#app\");\n","import { Model } from \"@vuex-orm/core\";\nimport { extractLocale } from \"@/utils/extractLocale\";\nimport ActivityPatientUsage from \"@/models/ActivityPatientUsage.model\";\nimport {\n isEntityContainsAllTerms,\n isEntityContainsOneTerm,\n tidySearchTerm,\n} from \"@/utils/filters\";\nimport { tr } from \"@/utils/translation\";\nimport { lowerFirst } from \"lodash\";\n\nexport default class ActivityDescription extends Model {\n static entity = \"activities\";\n\n static fields() {\n return {\n id: this.attr(null), // Primary key\n name: this.attr(null),\n description: this.attr(null),\n icon: this.attr(null),\n globalMovementId: this.attr(\"\"),\n detailedMovements: this.attr([]),\n tutorialVideoUrl: this.attr(null),\n movementName: this.attr(null),\n movementIcon: this.attr(null),\n movementDescription: this.attr(null),\n therapeuticDescription: this.attr(null),\n isBodyTrackerNeeded: this.attr(null),\n isHandsTrackerNeeded: this.attr(null),\n isIzarTrackerNeeded: this.attr(null),\n isActivityMovementSetupNeeded: this.attr(null),\n tags: this.attr([]),\n trainedFunctions: this.attr([]),\n compensationMovements: this.attr([]),\n gestureProviders: this.attr([]),\n activityOptions: this.attr([]),\n compensatoryDetectionDescription: this.attr({}),\n levelProgressionDescription: this.attr({}),\n isLicensedForUser: this.attr(false),\n // Foreign data\n patientUsage: this.hasOne(ActivityPatientUsage, \"id\"),\n };\n }\n\n //\n // Metadata getters\n\n get Name() {\n return extractLocale(this.name);\n }\n\n get MovementName() {\n return extractLocale(this.movementName);\n }\n\n get Description() {\n return extractLocale(this.description);\n }\n\n get MovementDescription() {\n return this.getTranslatedMultilineText(this.movementDescription);\n }\n\n /**\n * Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n let fields = [];\n if (this.Name) {\n fields.push(tidySearchTerm(this.Name));\n }\n if (this.MovementName) {\n fields.push(tidySearchTerm(this.MovementName));\n }\n fields.push(\n this.trainedFunctions\n .map((trainedFunction) =>\n tr(\"Common.Activity.TrainedFunctions.\" + lowerFirst(trainedFunction))\n )\n .join(\"\")\n );\n return fields;\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingToAll(searchTerms) {\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n\n /**\n * Return true iff one term corresponds to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n return isEntityContainsOneTerm(this.entityFieldsToSearchInto, searchTerms);\n }\n\n get CompensatoryDetectionDescription() {\n return this.getTranslatedMultilineText(\n this.compensatoryDetectionDescription\n );\n }\n\n get TherapeuticDescription() {\n return this.getTranslatedMultilineText(this.therapeuticDescription);\n }\n\n get LevelDescription() {\n return this.getTranslatedMultilineText(this.levelProgressionDescription);\n }\n\n get Icon() {\n try {\n const image = require(`@/assets/games_icons/${this.icon}.png`);\n return image;\n } catch {\n const image = require(`@/assets/games_icons/Default_GameIcon.png`);\n return image;\n }\n }\n\n /**\n * Activity ids that should have the \"NEW\" badge\n */\n get IsNew() {\n return false;\n }\n\n /**\n * Returns a specific text, replacing new lines by '
' for later html parsing.\n * @param textArray\n * @return {string}\n */\n getTranslatedMultilineText(textArray) {\n const value = extractLocale(textArray);\n if (!value) {\n return \"\";\n }\n // N.B.: Using regex, as the standard expression only replaces the first occurrence.\n return value.replace(/\\n/g, \"
\");\n }\n\n //\n // Network methods\n\n // Returns the list of all activities WITHOUT information\n // on whether the activity is licensed for the given user.\n static fetchAllActivityInformation() {\n return this.api().get(\"/activity\", { dataKey: \"result\" });\n }\n\n /**\n * Returns the list of all activities but with information\n * on whether the activity is licensed for the given user.\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static fetchLicensedActivityInformation(signal) {\n return this.api().get(\"/activity/licensed\", {\n dataKey: \"result\",\n signal,\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\n\nexport default class ActivityPatientUsage extends Model {\n static entity = \"activityPatientUsage\";\n\n static fields() {\n return {\n id: this.attr(null), // Corresponds to the app id\n username: this.attr(null),\n icon: this.attr(null),\n gestureProviders: this.attr([]),\n isSideChoiceEnabled: this.attr(false), // used for calibration custom computation\n calibrationDatePerSide: this.attr(null),\n lastPlayedDate: this.attr(null),\n playedCount: this.attr(null),\n };\n }\n\n //\n // Metadata getters\n\n // @summary Returns the most recent calibration date for the given activity data.\n get CalibrationDate() {\n const datePerSide = this.calibrationDatePerSide || [];\n let mostRecentDate = new Date(1970, 1, 1);\n\n for (let sideDate in datePerSide) {\n // Skip loop if the property is from prototype\n if (!datePerSide.hasOwnProperty(sideDate)) {\n continue;\n }\n let date = new Date(datePerSide[sideDate]);\n if (date > mostRecentDate) {\n mostRecentDate = date;\n }\n }\n // Check whether the date is not the default one.\n if (mostRecentDate.getFullYear() > 1970) {\n return mostRecentDate;\n }\n return null;\n }\n\n get CanCalibrate() {\n return (\n this.calibrationDatePerSide &&\n !(this.calibrationDatePerSide instanceof Array)\n );\n }\n\n /**\n * Returns whether the activity has valid calibration data.\n * @param side\n * @param isSideChoiceEnabled is activity side choice enabled\n * @return {boolean}\n */\n hasValidCalibration = (side = \"\") => {\n // First, let's discard the activities that do not require a calibration\n // - GardenRage_WorldFootsteps_1p\n // - Mind4_HorizReach_1p\n if (!this.CanCalibrate) {\n return true;\n }\n\n // Then, we check the activities that have a Side Choice\n // - Airplane_ForearmProSup_1p\n // - CarRacer_ShoulderAbdAdd_1p\n // - CrossTheRoad_ForwardBackwardSteps_1p\n // - CrossTheRoad_WristFlexionExtension_1p\n // - FlyingCar_ShouldersFlexExt_1p\n // - FlyingCar_WristFlexExt_1p\n // - Hovercraft_UnilateralShoulderAbdAdd_1p\n // - LineRoller_ForearmProSup_1p\n // - LineRoller_UniLateralFootStep_1p\n // - SkiLiner_WristRadialUlnarDeviation_1p\n // - TowerBuilder_FingersPinch_1p\n // - TowerBuilder_HandGraspRelease_1p // Note: movement has changed to HandOpenCloseMcpa\n // - WitcherDefense_ForearmProSup_1p\n // - Cauldron Chronicles\n if (this.isSideChoiceEnabled) {\n return this.calibrationDatePerSide.hasOwnProperty(\n this.convertSideAbbreviation(side)\n );\n }\n\n // Remains only the activities that are not Sided. They can be split in two groups:\n // - the ones that have only non-sided gesture calibrator (1 or 2 of them)\n // * Airplane_TrunkLatFlex_1p (1)\n // * CarRacer_FakeSteeringWheel_1p (2)\n // * CarRacer_TrunkAxialRotation_1p (1)\n // * MineCart_FwdPumpTrunkLatFlex_1p (2)\n // * Octopulse_Squat_1p (1)\n // * SkiLiner_LateralBodyWeightTransfer_1p (1)\n // * a667e5e3-5328-4844-b0b9-028eb8e680c6 -> japanese garden (2)\n if (\n this.id === \"Airplane_TrunkLatFlex_1p\" ||\n this.id === \"CarRacer_FakeSteeringWheel_1p\" ||\n this.id === \"CarRacer_TrunkAxialRotation_1p\" ||\n this.id === \"MineCart_FwdPumpTrunkLatFlex_1p\" ||\n this.id === \"Octopulse_Squat_1p\" ||\n this.id === \"SkiLiner_LateralBodyWeightTransfer_1p\" ||\n this.id === \"a667e5e3-5328-4844-b0b9-028eb8e680c6\"\n ) {\n return (\n this.calibrationDatePerSide.hasOwnProperty(\"Right\") ||\n this.calibrationDatePerSide.hasOwnProperty(\"NotApplicable\")\n );\n } else {\n // The activities that use Sided Gesture Provider and that require 2 of them\n // - Climbing_VerticalHandsReaching_1p\n // - Hovercraft_BilateralShouldersAbdAdd_1p\n // - LineRoller_BiLateralFootStep_1p\n // - CrossTheRoad_FreeSteps_1p\n return (\n this.calibrationDatePerSide.hasOwnProperty(\"Left\") &&\n this.calibrationDatePerSide.hasOwnProperty(\"Right\")\n );\n }\n };\n\n convertSideAbbreviation(sideLetter) {\n switch (sideLetter) {\n case \"L\":\n return \"Left\";\n case \"R\":\n return \"Right\";\n default:\n return \"\";\n }\n }\n\n // Network methods\n\n /**\n * Fetch patient activity usage\n * @param {string} username username of the patient\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static fetchPatientActivityUsageData(username, signal) {\n return this.api().get(`activity/therapist/patient/${username}`, {\n dataKey: \"result\",\n signal,\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport Customer from \"@/models/Customer.model\";\nimport { formatISO9075, parseISO } from \"date-fns\";\nimport { getDropdownEntries } from \"@/utils/dropdown\";\nimport { isEntityContainsAllTerms, tidySearchTerm } from \"@/utils/filters\";\n\nexport default class Asset extends Model {\n static entity = \"assets\";\n\n static fields() {\n return {\n id: this.attr(null),\n addedAtUtc: this.attr(null),\n version: this.attr(null),\n sfdcAssetId: this.attr(null),\n customerId: this.attr(null),\n deviceId: this.attr(null),\n serialNumber: this.attr(null),\n deviceMode: this.attr(assetMode[0]),\n customer: this.belongsTo(Customer, \"customerId\"),\n };\n }\n\n get AddedAtUtc() {\n return this.addedAtUtc ? parseISO(this.addedAtUtc) : null;\n }\n set AddedAtUtc(value) {\n this.addedAtUtc = formatISO9075(value);\n }\n\n set Customer(value) {\n this.customer = value;\n this.customerId = value.id;\n }\n\n get Customer() {\n return this.customer;\n }\n\n static get() {\n return this.api().get(\"/asset\", { dataKey: \"result\" });\n }\n\n static async post(newAsset) {\n return this.api().post(\"/asset\", newAsset, { dataKey: \"result\" });\n }\n\n static async remove(asset) {\n return this.api().delete(\"/asset/\" + asset.id, {\n delete: asset.id,\n dataKey: \"result\",\n });\n }\n\n static async put(updatedAsset) {\n // Let's strip the customer data\n var updatedAssetCopy = JSON.parse(JSON.stringify(updatedAsset));\n updatedAssetCopy.customer = null;\n return this.api().put(\"/asset/\" + updatedAssetCopy.id, updatedAssetCopy, {\n dataKey: \"result\",\n });\n }\n\n static getAssetModeList() {\n return getDropdownEntries(assetMode, \"AdminPages.Asset.Mode\");\n }\n\n /**\n * Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n let fields = [this.id, this.deviceId, this.serialNumber, this.sfdcAssetId];\n if (this.customer?.fullName) {\n fields.push(tidySearchTerm(this.customer.fullName));\n }\n\n return fields;\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n if (!this.entityFieldsToSearchInto.length) {\n return false;\n }\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n}\n\nexport const assetMode = [\"Public\", \"Private\"];\n","import { Model } from \"@vuex-orm/core\";\nimport { formatISO9075, parseISO } from \"date-fns\";\nimport Profile from \"@/models/Profile.model\";\nimport { getDropdownEntries } from \"@/utils/dropdown\";\nimport { addDays } from \"date-fns\";\n\nexport const auditLogCategory = Object.freeze({\n All: \"all\",\n SignedDocuments: \"signedDocuments\",\n Emails: \"emails\",\n});\n\nexport default class AuditLog extends Model {\n static entity = \"auditLogs\";\n\n static fields() {\n return {\n id: this.attr(null),\n timestamp: this.attr(null),\n subjectUsername: this.attr(null),\n action: this.attr(null),\n objectType: this.attr(null),\n objectUsernames: this.attr([]),\n objectDetail: this.attr(null),\n detail: this.attr(null),\n subjectUser: this.belongsTo(Profile, \"subjectUsername\", \"userName\"),\n targetUsers: this.hasManyBy(Profile, \"objectUsernames\", \"userName\"),\n };\n }\n\n /**\n * Fetches the audit log data for the given date range\n * @param from {Date}\n * @param to {Date}\n * @return {Promise}\n */\n static async get(from, to) {\n if (!(from instanceof Date) || !(to instanceof Date)) {\n // Prevents an error on loading with empty dates\n from = new Date();\n to = new Date();\n }\n const fromDate = formatISO9075(from, { representation: \"date\" });\n const toDate = formatISO9075(addDays(to, 1), { representation: \"date\" }); // add 1 day to be compliant with the backend behavior\n\n return this.api().get(`/audit-log?fromDate=${fromDate}&toDate=${toDate}`, {\n dataKey: \"result\",\n });\n }\n\n get Timestamp() {\n return this.timestamp ? parseISO(this.timestamp) : null;\n }\n\n static getAuditLogCategoryList() {\n return getDropdownEntries(auditLogCategory, \"AdminPages.AuditLog.Category\");\n }\n}\n","import { Model } from \"@vuex-orm/core\";\n\nexport default class AuthOptions extends Model {\n static entity = \"authOptions\";\n\n static fields() {\n return {\n lockout: this.attr({}, (value) => new LockoutOptions(value)),\n };\n }\n\n static get() {\n return this.api().get(\"/account/auth-options\");\n }\n}\n\nexport class LockoutOptions {\n constructor(options) {\n this.enabled = options.enabled || false;\n this.maxFailedAccessAttempts = options.maxFailedAccessAttempts || 5;\n this.defaultLockoutTimeSpan = options.defaultLockoutTimeSpan || 5;\n }\n\n timeStringToMinutes(timeString) {\n return timeString.split(\":\").reduce((acc, time) => 60 * acc + +time) / 60;\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport License from \"@/models/License.model\";\nimport PatientLicense from \"@/models/PatientLicense.model\";\nimport Site from \"@/models/Site.model\";\nimport Asset from \"@/models/Asset.model\";\nimport { defaultLocale, getLanguageCodeFrom } from \"@/utils/locales\";\nimport { getDropdownEntries } from \"@/utils/dropdown\";\nimport { isEntityContainsAllTerms, tidySearchTerm } from \"@/utils/filters\";\n\nexport const customerKinds = Object.freeze({\n siteAdminCustomer: \"SiteAdminCustomer\",\n therapistCustomer: \"TherapistCustomer\",\n patientCustomer: \"PatientCustomer\",\n});\n\nexport default class Customer extends Model {\n static entity = \"customers\";\n\n static fields() {\n return {\n id: this.attr(null),\n salesForceAccountId: this.attr(\"\"),\n salesForceAccountName: this.attr(\"\"),\n salesForceContactID: this.attr(\"\"),\n userName: this.attr(null),\n firstname: this.attr(null),\n name: this.attr(null),\n email: this.attr(null),\n phone: this.attr(null),\n kind: this.attr(customerKinds[0]),\n siteId: this.attr(null),\n language: this.attr(defaultLocale),\n license: this.hasOne(License, \"customerId\"),\n patientLicense: this.hasMany(PatientLicense, \"customerId\"),\n site: this.belongsTo(Site, \"siteId\"),\n assets: this.hasMany(Asset, \"customerId\"),\n };\n }\n\n static mutators() {\n return {\n // handle deprecated language values\n language(value) {\n return getLanguageCodeFrom(value);\n },\n };\n }\n\n get fullName() {\n if (this.firstname && this.name) {\n return this.firstname + \" \" + this.name;\n }\n if (this.firstname) {\n return this.firstname;\n }\n return this.name;\n }\n\n get fullNameHtml() {\n if (this.fullName) {\n return this.firstname + \" \" + this.name + \"\";\n } else if (this.email) {\n return this.email;\n } else {\n return \"--\";\n }\n }\n\n // use in entity-search\n get displayName() {\n if (this.fullName) {\n return this.fullName;\n }\n return this.email;\n }\n\n static get() {\n return this.api().get(\"/customer\", { dataKey: \"result\" });\n }\n\n static async post(newCustomer, entity) {\n const url = entity === \"Customer\" ? \"/customer/mindmotion\" : \"/customer\";\n return this.api()\n .post(url, newCustomer, { dataKey: \"result\" })\n .then((response) => {\n response.entities.customers.forEach(async (entity) => {\n await Site.getById(entity.siteId);\n });\n });\n }\n\n static async remove(customer) {\n return this.api().delete(\"/customer/\" + customer.id, {\n delete: customer.id,\n dataKey: \"result\",\n });\n }\n\n static async put(updatedCustomer) {\n return this.api().put(\"/customer/\" + updatedCustomer.id, updatedCustomer, {\n dataKey: \"result\",\n });\n }\n\n static getCustomerKindList() {\n return getDropdownEntries(customerKinds, \"AdminPages.Customer.Kind\");\n }\n\n /**\n * Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n let fields = [this.email, this.id];\n if (this.fullName) {\n fields.push(tidySearchTerm(this.fullName));\n }\n if (this.userName) {\n fields.push(tidySearchTerm(this.userName));\n }\n if (this.site?.name) {\n fields.push(tidySearchTerm(this.site.name));\n }\n return fields;\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport { formatISO9075, parseISO } from \"date-fns\";\nimport { getDropdownOptionsFromObjectArray } from \"@/utils/dropdown\";\nimport { isEntityContainsAllTerms } from \"@/utils/filters\";\n\nexport default class CustomerNotification extends Model {\n static entity = \"customerNotification\";\n\n static fields() {\n return {\n id: this.attr(\"00000000-0000-0000-0000-000000000000\"),\n subject: this.attr(null),\n semanticVersion: this.attr(null),\n publishDate: this.attr(null),\n content: this.attr({}),\n contentType: this.attr(null),\n useDefaultLanguage: this.attr(true),\n };\n }\n\n isValidForLocale(locale) {\n return this.IsValid && !!this.content[locale];\n }\n\n get IsValid() {\n return (\n this.semanticVersion !== null &&\n this.semanticVersion !== \"\" &&\n this.content !== {} &&\n this.publishDate !== null\n );\n }\n\n get PublishDate() {\n return this.publishDate ? parseISO(this.publishDate) : null;\n }\n\n set PublishDate(value) {\n this.publishDate = formatISO9075(value);\n }\n\n static get() {\n return this.api().get(\"/customer-notification\", { dataKey: \"result\" });\n }\n\n /**\n * Returns the customer notification following the one with the provided semantic version.\n * @param notificationVersion\n */\n static async getNextFromVersion(notificationVersion) {\n return this.api().get(\n `/customer-notification/next/${notificationVersion}`,\n {\n dataTransformer: (response) => {\n return response && response.data\n ? response.data.result\n : new CustomerNotification();\n },\n }\n );\n }\n\n static async post(newCustomerNotification) {\n return this.api().post(\"/customer-notification\", newCustomerNotification, {\n dataKey: \"result\",\n });\n }\n\n static async remove(customerNotification) {\n return this.api().delete(\n \"/customer-notification/\" + customerNotification.id,\n {\n delete: customerNotification.id,\n dataKey: \"result\",\n }\n );\n }\n\n static async put(updatedCustomerNotification) {\n return this.api().put(\n `/customer-notification/${updatedCustomerNotification.id}`,\n updatedCustomerNotification,\n {\n dataKey: \"result\",\n }\n );\n }\n\n static getContentTypeList() {\n const entriesTranslated = Object.values(contentTypes).map((id) => ({\n id: id,\n name: id,\n }));\n return getDropdownOptionsFromObjectArray(entriesTranslated);\n }\n\n /**\n * Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n return [this.id, this.semanticVersion, this.subject];\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n}\n\nexport const contentTypes = [\"text/markdown\"];\n","import {\n formatToDDMMMYYYY as formatToDDMMMYYYYFns,\n formatToDDMMMYYYYHmm as formatToDDMMMYYYYHmmFns,\n formatToHmm as formatToHmmFns,\n formatToHHmm as formatToHHmmFns,\n format as formatFns,\n} from \"@/utils/date\";\nimport { parseISO } from \"date-fns\";\nimport i18n from \"@/i18n\";\n\nexport default class DateTimeOffset {\n // Private variables\n isoString;\n fullDate;\n fullTime;\n timeOffset;\n displayedOffset;\n offsetInMinutes;\n rawDateTime;\n localeDateObject;\n\n /**\n * Constructor for the DateTimeOffset\n * @param value {String | Date | Number} ISO format of the date to create\n */\n constructor(value = null) {\n // When null, use date.now in locale timezone\n if (!value) {\n this.parseNumber(Date.now());\n return;\n }\n\n // Generate the date from number in locale timezone\n if (\n typeof value == \"number\" ||\n value instanceof Number ||\n Object.prototype.toString.call(value) === \"[object Number]\"\n ) {\n this.parseNumber(value);\n return;\n }\n\n // Generate the date in locale timezone\n if (\n value instanceof Date ||\n Object.prototype.toString.call(value) === \"[object Date]\"\n ) {\n this.parseDate(value);\n return;\n }\n\n // Generate the date from the string\n if (\n typeof value == \"string\" ||\n value instanceof String ||\n Object.prototype.toString.call(value) === \"[object String]\"\n ) {\n this.parseString(value);\n return;\n }\n\n throw \"Parameter type is not valid\";\n }\n\n /**\n * Method to parse a Number into a DateTimeOffset\n * @param value {Number} offset will correspond to the locale timezone\n * @returns {DateTimeOffset} the object with the date parsed\n */\n parseNumber(value) {\n return this.parseDate(new Date(value));\n }\n\n /**\n * Method to parse a Date into a DateTimeOffset\n * @param value {Date} offset will correspond to the locale timezone\n * @returns {DateTimeOffset} the object with the date parsed\n */\n parseDate(value) {\n this.fullDate = formatFns(value, \"yyyy-MM-dd\", {\n locale: \"en-US\",\n });\n this.fullTime = formatFns(value, \"HH:mm:ss.SSS\", {\n locale: \"en-US\",\n });\n this.offsetInMinutes = value.getTimezoneOffset();\n this._formatOffsets(this.offsetInMinutes);\n this.isoString = this.fullDate + \"T\" + this.fullTime + this.timeOffset;\n this.rawDateTime = parseISO(this.fullDate + \"T\" + this.fullTime);\n this.localeDateObject = parseISO(this.isoString);\n return this;\n }\n\n /**\n * Method to parse a string into a DateTimeOffset\n * @param value {String} format must be yyyy-MM-ddTHH:mm:ss.SSSZZZ\n * @returns {DateTimeOffset} the object with the date parsed\n */\n parseString(value) {\n // Create the date object in the locale timezone\n this.localeDateObject = parseISO(value);\n\n // Extract date, time and offset from initial value\n let [fullDate, time] = value.split(\"T\");\n this.fullDate = fullDate;\n\n // Force time to be midnight if not given\n if (time === undefined) {\n time = \"00:00:00.000\";\n }\n\n // Extract time and offset from the time string part\n [this.fullTime, this.timeOffset] = time.split(/(?=[+-])/);\n\n // Special case when timezone is UTC, offset is not in hh:mm but ends by Z\n let regexEndByZ = new RegExp(\"Z$\", \"gi\");\n if (regexEndByZ.test(this.fullTime)) {\n this.timeOffset = \"+00:00\";\n this.fullTime = this.fullTime.slice(0, -1);\n } else if (this.timeOffset === undefined) {\n this.timeOffset = \"+00:00\";\n }\n\n // Define date time without offset\n this.rawDateTime = parseISO(this.fullDate + \"T\" + this.fullTime);\n\n // Split offset in hour and minutes\n let [hoursOfOffset, minutesOfOffset] = this.timeOffset.split(\":\");\n\n // Compute offset in minutes as Javascript computes it (sign is reversed)\n // Javascript offset for UTC+10:00 is -600 minutes\n if (minutesOfOffset === undefined) {\n minutesOfOffset = \"00\";\n }\n let signOffset = hoursOfOffset.startsWith(\"-\") ? 1 : -1;\n // Remove the sign at the beginning\n hoursOfOffset = hoursOfOffset.slice(1);\n this.offsetInMinutes =\n signOffset * (parseInt(hoursOfOffset) * 60 + parseInt(minutesOfOffset));\n\n this._formatOffsets(this.offsetInMinutes);\n this.isoString = this.fullDate + \"T\" + this.fullTime + this.timeOffset;\n return this;\n }\n\n /**\n * Private method used by the constructor.\n * Format the given offset to displayedOffset and timeOffset\n * e.g. 5.75 => +5:45 and +05:45\n * -14.0 => -14 and -14:00\n * @param offsetInMinutes {Number} offset in minute\n */\n _formatOffsets(offsetInMinutes) {\n if (offsetInMinutes === 0) {\n this.timeOffset = \"+00:00\";\n this.displayedOffset = \"\";\n return;\n }\n\n let offsetSign = offsetInMinutes < 0 ? \"+\" : \"-\"; // Note: Javascript has negative offset for positive timezones (Europe/bern => -60 min)\n let offsetHours = Math.floor(Math.abs(offsetInMinutes / 60));\n let offsetMinutes = Math.abs(offsetInMinutes % 60);\n\n this.displayedOffset =\n offsetSign +\n offsetHours +\n (offsetMinutes !== 0\n ? `:${offsetMinutes < 10 ? \"0\" : \"\"}${offsetMinutes}`\n : \"\");\n\n this.timeOffset =\n offsetSign +\n (offsetHours < 10 ? \"0\" : \"\") +\n offsetHours +\n \":\" +\n (offsetMinutes < 10 ? \"0\" : \"\") +\n offsetMinutes;\n }\n\n /**\n * Append offset to value when it does not correspond to locale offset\n * Winter time offset is compared to winter time offset in locale timezone\n * As well as for summer offset\n * @param value {String} will be append at the beginning of the result\n * @param forceAddingOffset {Boolean} true to append UTC offset\n * @returns {String} the value appended by the offset\n */\n formatToZ(value, forceAddingOffset = false) {\n if (!value) {\n return \"\";\n }\n\n if (!forceAddingOffset) {\n forceAddingOffset = !this.isOffsetSameAsLocale;\n }\n\n return forceAddingOffset\n ? `${value} (${i18n.t(\"Common.Timezone.utc\", {\n offset: this.displayedOffset,\n })})`\n : value;\n }\n\n /**\n * Returns a Date object of the DateTime without info ot the offset\n * @returns {Date} date without the offset\n */\n get dateTime() {\n return this.rawDateTime;\n }\n\n /**\n * Returns a Date object of the DateTime without info ot the offset\n * e.g. For the date 2022-02-01 13:25:12.586 +02:00\n * Where locale timezone is -04:00\n * Returns 2022-02-01 09:25:12.586\n * @returns {Date} date offsetted to locale timezone\n */\n get localeDateTime() {\n return this.localeDateObject;\n }\n\n /**\n * Returns the offset in minutes as Javascript computes it\n * Javascript offset for UTC+10:00 is -600 minutes\n * @returns {Number} offset in minutes\n */\n getTimezoneOffset() {\n return this.offsetInMinutes;\n }\n\n /**\n * Returns the date formatted as 01 Jun 2022\n * @returns {String} formatted day, without time\n */\n get formatToDDMMMYYYY() {\n return formatToDDMMMYYYYFns(this.rawDateTime);\n }\n\n /**\n * Returns the time formatted as 1:05\n * @returns {String} formatted time only - hours may have one number\n */\n get formatToHmm() {\n return formatToHmmFns(this.rawDateTime);\n }\n\n get formatToDDMMMYYYYHmm() {\n return formatToDDMMMYYYYHmmFns(this.rawDateTime);\n }\n\n /**\n * Returns the time formatted as 01:05\n * @returns {String} formatted time only - hours has always 2 numbers\n */\n get formatToHHmm() {\n return formatToHHmmFns(this.rawDateTime);\n }\n\n /**\n * Returns the time formatted as 1:05 (UTC+05:45)\n * Offset is displayed only when it differs from locale timezone\n * @param forceAddingOffset {Boolean} true to always display the offset\n * @returns {String} formatted time only with the offset - hours may have one number\n */\n formatToHmmZ(forceAddingOffset = false) {\n return this.formatToZ(this.formatToHmm, forceAddingOffset);\n }\n\n /**\n * Returns the time formatted as 01:05 (UTC+05:45)\n * Offset is displayed only when it differs from locale timezone\n * @param forceAddingOffset {Boolean} true to always display the offset\n * @returns {String} formatted time only with the offset - hours has always 2 numbers\n */\n formatToHHmmZ(forceAddingOffset = false) {\n return this.formatToZ(this.formatToHHmm, forceAddingOffset);\n }\n\n /**\n * Return the offset formatted as +05:45\n * @returns {String} formatted offset - hours has always 2 numbers\n */\n get formatOffsetToHHmm() {\n return this.timeOffset;\n }\n\n /**\n * Return the offset formatted as +5:45 or an empty string if 0\n * @returns {String} formatted offset - hours may have 2 numbers\n */\n get formatOffsetToHmm() {\n return this.displayedOffset;\n }\n\n /**\n * Return an ISO string representation with the given offset\n * e.g. For the date 2022-02-01 13:25:12.586 +02:00\n * Whatever is the locale timezone\n * Returns 2022-02-01T13:25:12.586+02:00\n * @returns {String} DateTime formatted in ISO standard\n */\n get localeISOString() {\n return this.isoString;\n }\n\n /**\n * Compare the offset of the DateTimeOffset to the locale timezone by taken care of the period of the year\n * In winter, it takes into account the winter offset\n * As in summer, if there is a time change, it takes the summer offset otherwise the timezone base offset\n * @returns {Boolean} True if offset are the same as locale\n */\n get isOffsetSameAsLocale() {\n if (this.rawDateTime === undefined) {\n return false;\n }\n\n return this.rawDateTime.getTimezoneOffset() === this.offsetInMinutes;\n }\n\n /**\n * Used to serialized in JSON the object\n * Result can be parsed in C#\n * @returns {String} time with offset in ISO format\n */\n toJSON() {\n return this.isoString;\n }\n\n /**\n * Returns a string representation of an object.\n * @returns {String} time with offset in ISO format\n */\n toString() {\n return this.isoString;\n }\n\n /**\n * Returns a string representation of an object.\n * @returns {String} time with offset in ISO format\n */\n toLocaleString() {\n return this.isoString;\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport { parseISO, differenceInDays } from \"date-fns\";\nimport { format } from \"@/utils/date\";\n\nexport default class DayTrainingSummary extends Model {\n static entity = \"dayTrainingSummary\";\n static primaryKey = [\"date\", \"patientUsername\"];\n\n static fields() {\n return {\n date: this.attr(null),\n patientUsername: this.attr(null),\n hasPlan: this.attr(null),\n hasMissedPlan: this.attr(null),\n hasUnsupervisedSession: this.attr(null),\n hasSupervisedSession: this.attr(null),\n hasSessionSupervisedByCaller: this.attr(null),\n };\n }\n\n get Date() {\n return this.date ? parseISO(this.date) : null;\n }\n\n static async fetch(patientUsername, dateStart, dateEnd) {\n return this.api().get(\n `patient-performance/${patientUsername}/summary?from=${dateStart}&to=${dateEnd}`,\n { dataKey: \"result\" }\n );\n }\n\n /**\n * Fetches the patient training summary data for the requested date range\n * Used to display the training data in the performance timeline.\n * @param patientUsername\n * @param startDate\n * @param endDate\n * @return [DayTrainingSummary]\n */\n static async fetchForRange(patientUsername, startDate, endDate) {\n const startingDay = format(startDate, \"yyyy-MM-dd\");\n const endingDay = format(endDate, \"yyyy-MM-dd\");\n\n return this.fetch(patientUsername, startingDay, endingDay);\n }\n\n /**\n * Returns the stored training summaries for the given range and patient\n * @param patientUsername\n * @param startDate\n * @param endDate\n * @return [DayTrainingSummary]\n */\n static async getForRange(patientUsername, startDate, endDate) {\n return DayTrainingSummary.query()\n .where(\"patientUsername\", patientUsername)\n .where((record) => startDate <= record.Date && record.Date <= endDate)\n .get();\n }\n\n /**\n * Gets the data for the given range but fetches the data from startDate if not available\n * This is used by both the timeline and the calendar selector for the performance report.\n */\n static getForRangeAndFetchIfNeeded(patientUsername, startDate, endDate) {\n return this.getForRange(patientUsername, startDate, endDate).then(\n (entries) => {\n if (\n !entries?.length ||\n entries?.length < differenceInDays(endDate, startDate)\n ) {\n return this.fetchForRange(patientUsername, startDate, endDate).then(\n () => {\n return this.getForRange(patientUsername, startDate, endDate);\n }\n );\n }\n return entries;\n }\n );\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport DateTimeOffset from \"@/models/DateTimeOffset.model\";\nimport Profile from \"@/models/Profile.model\";\nimport { isEntityContainsAllTerms, tidySearchTerm } from \"@/utils/filters\";\n\nexport default class FeedbackReport extends Model {\n static entity = \"feedbackReport\";\n\n static salesForceGenericUrl;\n\n static fields() {\n return {\n id: this.attr(null),\n createdAtUtc: this.attr(null),\n version: this.attr(null),\n username: this.attr(null),\n reporterName: this.attr(null),\n email: this.attr(null),\n title: this.attr(null),\n description: this.attr(null),\n type: this.attr(null),\n productName: this.attr(null),\n productVersion: this.attr(null),\n details: this.attr(null),\n salesforceSupportCaseId: this.attr(null),\n userProfile: this.belongsTo(Profile, \"username\", \"userName\"),\n };\n }\n\n get ProductInfo() {\n if (this.productName && this.productVersion) {\n return `${this.productName} ${this.productVersion}`;\n }\n\n if (this.productName) {\n return this.productName;\n }\n\n if (this.productVersion) {\n return this.productVersion;\n }\n\n return \"\";\n }\n\n get ReporterInfo() {\n if (this.reporterName && this.email) {\n return `${this.reporterName} ${this.email}`;\n }\n\n if (this.reporterName) {\n return this.reporterName;\n }\n\n if (this.email) {\n return this.email;\n }\n\n return \"\";\n }\n\n get CreatedDateAtUtc() {\n return new DateTimeOffset(this.createdAtUtc);\n }\n\n get DetailsSerialized() {\n return JSON.stringify(this.details, null, 2);\n }\n\n get salesforceSupportCaseUrl() {\n if (FeedbackReport.salesForceGenericUrl && this.salesforceSupportCaseId) {\n return FeedbackReport.salesForceGenericUrl.replace(\n \"{0}\",\n this.salesforceSupportCaseId\n );\n } else {\n return \"\";\n }\n }\n\n /**\n * Get Salesforce generic URL.\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async fetchSalesforceGenericUrl(signal) {\n return await this.api()\n .get(\"/feedbackreport/sfdc-url\", { signal })\n .then((response) => {\n return (FeedbackReport.salesForceGenericUrl = response.response.data);\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Fetch all feedback report from companion.\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async fetchAllFeedbackReports(signal) {\n return await this.api()\n .get(\"/feedbackreport\", { dataKey: \"result\", signal })\n .then(() => {\n return FeedbackReport.query().all();\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Returns the feedback report from the store or fetch it from companion.\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async getAllFeedbackReports(signal) {\n let reports = FeedbackReport.query().all();\n if (reports && reports.length > 0) {\n return reports;\n } else {\n return await this.fetchAllFeedbackReports(signal);\n }\n }\n\n /**\n * Create feedback report on Salesforce.\n * @param {FeedbackReport} feedbackReport Permits request cancellation support\n */\n static async postFeedbackReportOnSalesforce(feedbackReport) {\n return await this.api()\n .post(\"/feedbackreport/\" + feedbackReport.id + \"/salesforce\", undefined, {\n dataKey: \"result\",\n })\n .then(() => {\n return FeedbackReport.query().find(feedbackReport.id);\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Test connection between Companion and Salesforce\n */\n static async testSalesforceConnection() {\n return await this.api()\n .get(\"/feedbackreport/sfdc/healthz\")\n .then((result) => {\n return result.response.data;\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n let fields = [this.type, this.id];\n if (this.ReporterInfo) {\n fields.push(tidySearchTerm(this.ReporterInfo));\n }\n if (this.ProductInfo) {\n fields.push(tidySearchTerm(this.ProductInfo));\n }\n if (this.title) {\n fields.push(tidySearchTerm(this.title));\n }\n if (this.salesforceSupportCaseId) {\n fields.push(this.salesforceSupportCaseId);\n }\n return fields;\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport FeedbackReport from \"@/models/FeedbackReport.model\";\nimport { isEntityContainsAllTerms, tidySearchTerm } from \"@/utils/filters\";\n\nexport default class FeedbackReportAttachment extends Model {\n static entity = \"feedbackReportAttachment\";\n\n static fields() {\n return {\n id: this.attr(null),\n feedbackReportId: this.attr(null),\n name: this.attr(null),\n type: this.attr(null),\n data: this.attr(null),\n feedbackReport: this.belongsTo(FeedbackReport, \"feedbackReportId\", \"id\"),\n };\n }\n\n /**\n * Fetch all feedback report attachments for a feedback report Id.\n * @param {string} feedbackReportId id of the related feedback report\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async fetchAllFeedbackReportAttachments(feedbackReportId, signal) {\n return await this.api()\n .get(\"/feedbackreport/\" + feedbackReportId + \"/attachment\", {\n signal,\n })\n .then((response) => {\n return response.response.data.result.map(\n (attachment) => new FeedbackReportAttachment(attachment)\n );\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Returns the feedback report attachments from the store or fetch it from companion.\n * @param {string} feedbackReportId id of the related feedback report\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async getAllFeedbackReportAttachments(feedbackReportId, signal) {\n let attachments = FeedbackReportAttachment.all().find(\n (attachment) => attachment.feedbackReportId === feedbackReportId\n );\n if (attachments && attachments.length > 0) {\n return attachments;\n } else {\n return await this.fetchAllFeedbackReportAttachments(\n feedbackReportId,\n signal\n );\n }\n }\n\n /**\n * Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n let fields = [this.type];\n if (this.name) {\n fields.push(tidySearchTerm(this.name));\n }\n return fields;\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n}\n","import { Model } from \"@vuex-orm/core\";\n\n/**\n * This model represents a patient group\n */\nexport default class Group extends Model {\n static entity = \"groups\";\n\n static fields() {\n return {\n id: this.attr(null),\n siteId: this.attr(null),\n patientGroupName: this.attr(\"\"),\n patientsInGroup: this.attr([]),\n addedAt: this.attr(null),\n isNew: this.attr(false),\n isEditing: this.attr(false),\n };\n }\n\n /**\n * Fetch all groups\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async fetchAllGroups(signal) {\n return await this.api().get(\"group/patientgroups\", {\n dataKey: \"result\",\n signal,\n });\n }\n\n /**\n * Add group\n * @param {object} group The group\n */\n static async post(group) {\n return await this.api().post(\"group/patientgroup\", group, {\n dataKey: \"result\",\n });\n }\n\n /**\n * Update group\n * @param {object} group The group\n */\n static async put(group) {\n return await this.api().put(\"group/patientgroup\", group, {\n dataKey: \"result\",\n });\n }\n\n /**\n * Delete group\n * @param {string} groupId The groupid\n */\n static async remove(groupId) {\n return await this.api().delete(`group/patientgroup/${groupId}`, {\n delete: groupId,\n dataKey: \"result\",\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport { notifyError } from \"@/services/api\";\n\nexport default class InstructionsForUse extends Model {\n static entity = \"allInstructionsForUse\";\n\n static fields() {\n return {\n id: this.attr(null),\n addedAtUtc: this.attr(null),\n name: this.attr(null),\n productName: this.attr(null),\n productVersion: this.attr(null),\n kind: this.attr(null),\n language: this.attr(null),\n documentVersion: this.attr(null),\n checksum: this.attr(null),\n size: this.attr(-1),\n uri: this.attr(null),\n };\n }\n\n static async getLatest() {\n return this.api()\n .get(\"/ifu/search?latestOnly=true\", { dataKey: \"result\" })\n .catch((error) => {\n notifyError(error);\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport { notifyError } from \"@/services/api\";\n\nexport default class LevelRecommendation extends Model {\n static entity = \"levelRecommendation\";\n\n static fields() {\n return {\n activityId: this.attr(null),\n activeSide: this.attr(null),\n recommendedLevel: this.attr(null),\n addedAtUtc: this.attr(null),\n };\n }\n\n static async getLatestLevelRecommendationsForPatient(\n patientUsername,\n signal\n ) {\n return this.api()\n .get(`/level-recommendation/patient/${patientUsername}`, {\n dataKey: \"result\",\n signal,\n })\n .catch((error) => {\n notifyError(error);\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport Customer from \"@/models/Customer.model\";\nimport { parseISO, formatISO9075 } from \"date-fns\";\nimport ActivityDescription from \"@/models/ActivityDescription.model\";\nimport { isEntityContainsAllTerms, tidySearchTerm } from \"@/utils/filters\";\n\nexport default class License extends Model {\n static entity = \"licenses\";\n\n static fields() {\n return {\n id: this.attr(null),\n addedAtUtc: this.attr(null),\n version: this.attr(null),\n sfdcLicenseID: this.attr(null),\n customerId: this.attr(null),\n licenseCount: this.attr(0),\n validUntil: this.attr(null),\n isActive: this.attr(false),\n licensedActivities: this.attr([]),\n customer: this.belongsTo(Customer, \"customerId\"),\n activities: this.hasManyBy(\n ActivityDescription,\n \"licensedActivities\",\n \"id\"\n ),\n };\n }\n\n setActivities(values) {\n this.activities = values;\n let newLicensedActivities = [];\n values.forEach((value) => {\n newLicensedActivities.push(value.id);\n });\n this.licensedActivities = newLicensedActivities;\n }\n\n set Customer(value) {\n this.customer = value;\n this.customerId = value.id;\n }\n\n get Customer() {\n return this.customer;\n }\n\n get CustomerFullHtmlName() {\n return this.customer?.fullName?.length > 0\n ? this.customer.fullNameHtml\n : \"\";\n }\n\n get IsCustomerValid() {\n return !!this.customer;\n }\n\n get ValidUntil() {\n return this.validUntil ? parseISO(this.validUntil) : null;\n }\n set ValidUntil(value) {\n this.validUntil = formatISO9075(value);\n }\n\n get AddedAtUtc() {\n return this.addedAtUtc ? parseISO(this.addedAtUtc) : null;\n }\n set AddedAtUtc(value) {\n this.addedAtUtc = formatISO9075(value);\n }\n\n static get() {\n return this.api().get(\"/license\", { dataKey: \"result\" });\n }\n\n static async post(newLicense) {\n return this.api().post(\"/license\", newLicense, { dataKey: \"result\" });\n }\n\n static async remove(license) {\n return this.api().delete(\"/license/\" + license.id, {\n delete: license.id,\n dataKey: \"result\",\n });\n }\n\n static async put(updatedLicense) {\n // Let's strip the customer data\n let updatedLicenseCopy = JSON.parse(JSON.stringify(updatedLicense));\n updatedLicenseCopy.customer = null;\n return this.api().put(\n \"/license/\" + updatedLicenseCopy.id,\n updatedLicenseCopy,\n {\n dataKey: \"result\",\n }\n );\n }\n\n /**\n * Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n let fields = [this.sfdcLicenseID, this.id];\n if (this.customer?.fullName) {\n fields.push(tidySearchTerm(this.customer.fullName));\n }\n return fields;\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport Site from \"@/models/Site.model\";\nimport OptionalFeatureDefinition from \"@/models/OptionalFeatureDefinition.model\";\nimport { parseISO } from \"date-fns\";\nimport { cloneDeep } from \"lodash\";\nimport { tr } from \"@/utils/translation\";\n\nexport default class OptionalFeatureActivation extends Model {\n static entity = \"optionalFeatureActivations\";\n\n static fields() {\n return {\n id: this.attr(null),\n addedAtUtc: this.attr(null),\n featureKeyName: this.attr(null),\n featureVersion: this.attr(null),\n siteId: this.attr(null),\n site: this.hasOne(Site, \"id\", \"siteId\"),\n // One to many relation to easily catch potential matching definitions\n definitions: this.hasMany(\n OptionalFeatureDefinition,\n \"featureKeyName\",\n \"featureKeyName\"\n ),\n };\n }\n\n get AddedAtUtc() {\n return this.addedAtUtc ? parseISO(this.addedAtUtc) : null;\n }\n\n // Network methods\n\n // Wrapper to easily get the feature version for a given feature key name as a promise\n // for regular users: (therapist, patient, site manager)\n static getOwnSiteFeatureVersionFor(featureKeyName) {\n function returnVersion() {\n let featureActivationForKeyName = OptionalFeatureActivation.query()\n .where((f) => f.featureKeyName === featureKeyName)\n .first();\n return featureActivationForKeyName\n ? featureActivationForKeyName.featureVersion\n : null;\n }\n\n return new Promise((resolve, reject) => {\n let featureActivationList = OptionalFeatureActivation.query().all();\n // Refreshes the list if it wasn't fetched yet\n if (!featureActivationList || !featureActivationList.length) {\n OptionalFeatureActivation.getOwnSiteFeatureActivationList()\n .then(() => {\n resolve(returnVersion());\n })\n .catch((error) => {\n reject(error);\n });\n } else {\n resolve(returnVersion());\n }\n });\n }\n\n // As a regular user (therapist, patient, site manager)\n static getOwnSiteFeatureActivationList() {\n return this.api().get(\"/optional-feature-activation/site/own\", {\n dataKey: \"result\",\n });\n }\n\n // Returns the list of all optional feature definition\n static get() {\n return this.api().get(\"/optional-feature-activation\", {\n dataKey: \"result\",\n });\n }\n\n static async post(newFeatureActivation) {\n return this.api().post(\n \"/optional-feature-activation\",\n newFeatureActivation,\n { dataKey: \"result\" }\n );\n }\n\n static async put(updatedFeature) {\n let featureClone = cloneDeep(updatedFeature);\n return OptionalFeatureActivation.remove(updatedFeature).then(() => {\n return OptionalFeatureActivation.post(featureClone);\n });\n }\n\n static async remove(feature) {\n return this.api().delete(`/optional-feature-activation/${feature.id}`, {\n delete: feature.id,\n dataKey: \"result\",\n });\n }\n\n static getFeatureAvailableVersions(featureDefinitionsForKeyName) {\n // Add default entry\n let availableVersions = {\n unset: {\n id: \"unset\",\n name: tr(\"AdminPages.OptionalFeatureActivation.noVersionActivated\"),\n },\n };\n for (let definition of featureDefinitionsForKeyName) {\n availableVersions[definition.featureVersion] = {\n id: definition.featureVersion,\n name: definition.featureVersion,\n };\n }\n return availableVersions;\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport { extractLocale } from \"@/utils/extractLocale\";\nimport { parseISO } from \"date-fns\";\nimport { isEntityContainsAllTerms, tidySearchTerm } from \"@/utils/filters\";\n\nexport default class OptionalFeatureDefinition extends Model {\n static entity = \"optionalFeatureDefinitions\";\n\n static fields() {\n return {\n id: this.attr(null),\n addedAtUtc: this.attr(null),\n version: this.attr(null),\n featureKeyName: this.attr(null),\n featureVersion: this.attr(null),\n name: this.attr(null),\n description: this.attr(null),\n };\n }\n\n get AddedAtUtc() {\n return this.addedAtUtc ? parseISO(this.addedAtUtc) : null;\n }\n\n get Name() {\n let translatedName = extractLocale(this.name);\n return translatedName || this.featureKeyName;\n }\n\n get Description() {\n return extractLocale(this.description);\n }\n\n /**\n * Returns how many times a given feature definition is used.\n * @param featureActivationList\n */\n static getDefinitionTimesUsed(definition, featureActivationList) {\n return featureActivationList.reduce((previousValue, currentActivation) => {\n if (\n currentActivation.featureKeyName === definition.featureKeyName &&\n currentActivation.featureVersion === definition.featureVersion\n ) {\n return ++previousValue;\n }\n return previousValue;\n }, 0);\n }\n\n // Network methods\n\n // Returns the list of all optional feature definition\n static get() {\n return this.api().get(\"/optional-feature-definition\", {\n dataKey: \"result\",\n });\n }\n\n static async post(newFeatureDefinition) {\n // Post the items as a list of one.\n return this.api().post(\n \"/optional-feature-definition\",\n [newFeatureDefinition],\n { dataKey: \"result\" }\n );\n }\n\n static async put(updatedFeature) {\n return this.api().put(\n `/optional-feature-definition/${updatedFeature.id}`,\n updatedFeature,\n { dataKey: \"result\" }\n );\n }\n\n static async remove(feature) {\n return this.api().delete(`/optional-feature-definition/${feature.id}`, {\n delete: feature.id,\n dataKey: \"result\",\n });\n }\n\n /**\n * Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n return [\n this.id,\n this.featureKeyName,\n this.featureVersion,\n this.Name,\n this.Description,\n ];\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n}\n","import { Model } from \"@vuex-orm/core\";\n\nexport default class PasswordOptions extends Model {\n static entity = \"password-options\";\n\n static fields() {\n return {\n requiredLength: this.attr(0),\n requiredUpperCase: this.attr(false),\n requiredLowerCase: this.attr(false),\n requiredDigits: this.attr(0),\n };\n }\n\n hasMinimalLength(password) {\n const lengthRegExp = new RegExp(`^.{${this.requiredLength},}$`);\n return !!password.match(lengthRegExp);\n }\n\n hasNumberOfUpperCase(password) {\n const alphaCapRegExp = new RegExp(\n `[A-Z\\u0621-\\u064A]{${this.requiredUpperCase}}` //Regex for A-Z and arabic characters\n );\n return !!password.match(alphaCapRegExp);\n }\n\n hasNumberOfLowerCase(password) {\n const alphaLowRegExp = new RegExp(\n `[a-z\\u0621-\\u064A]{${this.requiredLowerCase}}` //Regex for a-z and arabic characters\n );\n return !!password.match(alphaLowRegExp);\n }\n\n hasNumberOfDigits(password) {\n const numericRegExp = new RegExp(\n `[0-9\\u0660-\\u0669\\u06F0-\\u06F9]{${this.requiredDigits}}` //Regex for latin and arabic numbers\n );\n return !!password.match(numericRegExp);\n }\n\n isPasswordValid(password) {\n return (\n this.hasMinimalLength(password) &&\n this.hasNumberOfUpperCase(password) &&\n this.hasNumberOfLowerCase(password) &&\n this.hasNumberOfDigits(password)\n );\n }\n\n /**\n * Returns the password options\n * @returns {Promise}\n */\n static async getCurrentPasswordOptions() {\n let passwordOptions = PasswordOptions.query().first();\n\n if (!passwordOptions) {\n await PasswordOptions.fetchPasswordOptions().then(() => {\n passwordOptions = PasswordOptions.query().first();\n });\n }\n\n return passwordOptions;\n }\n\n /**\n * Refreshes the password options data from back-end\n */\n static async fetchPasswordOptions() {\n return await this.api().get(\"/account/password-options\", {\n dataKey: \"result\",\n persistBy: \"create\",\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport Customer from \"@/models/Customer.model\";\nimport { parseISO, formatISO9075 } from \"date-fns\";\nimport { isEntityContainsAllTerms, tidySearchTerm } from \"@/utils/filters\";\n\nexport default class PatientLicense extends Model {\n static entity = \"patientLicenses\";\n\n static fields() {\n return {\n id: this.attr(null),\n addedAtUtc: this.attr(null),\n version: this.attr(null),\n sfdcLicenseID: this.attr(null),\n customerId: this.attr(null),\n validUntil: this.attr(null),\n isActive: this.attr(false),\n canFallbackOnSiteLicense: this.attr(false),\n customer: this.belongsTo(Customer, \"customerId\"),\n };\n }\n\n set Customer(value) {\n this.customer = value;\n this.customerId = value.id;\n }\n\n get Customer() {\n return this.customer;\n }\n\n get CustomerFullHtmlName() {\n return this.customer?.fullName?.length > 0\n ? this.customer.fullNameHtml\n : \"\";\n }\n\n get IsCustomerValid() {\n return !!this.customer;\n }\n\n get ValidUntil() {\n return this.validUntil ? parseISO(this.validUntil) : null;\n }\n set ValidUntil(value) {\n this.validUntil = value ? formatISO9075(value) : null;\n }\n\n get AddedAtUtc() {\n return this.addedAtUtc ? parseISO(this.addedAtUtc) : null;\n }\n set AddedAtUtc(value) {\n this.addedAtUtc = value ? formatISO9075(value) : null;\n }\n\n static get() {\n return this.api().get(\"/patient-license\", { dataKey: \"result\" });\n }\n\n static async post(newLicense) {\n return this.api().post(\"/patient-license\", newLicense, {\n dataKey: \"result\",\n });\n }\n\n static async remove(license) {\n return this.api().delete(\"/patient-license/\" + license.id, {\n delete: license.id,\n dataKey: \"result\",\n });\n }\n\n static async put(updatedLicense) {\n // Let's strip the customer data\n let updatedLicenseCopy = JSON.parse(JSON.stringify(updatedLicense));\n updatedLicenseCopy.customer = null;\n return this.api().put(\n \"/patient-license/\" + updatedLicenseCopy.id,\n updatedLicenseCopy,\n {\n dataKey: \"result\",\n }\n );\n }\n\n /**\n * Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n let fields = [this.sfdcLicenseID, this.id];\n if (this.customer?.fullName) {\n fields.push(tidySearchTerm(this.customer.fullName));\n }\n return fields;\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport Profile from \"@/models/Profile.model\";\nimport { isEntityContainsAllTerms } from \"@/utils/filters\";\nimport { formatToMMIDWithDashes } from \"@/utils/profile\";\nimport { parseISO, isWithinInterval, startOfDay, endOfDay } from \"date-fns\";\n\nclass WeeklyATTimeGoal {\n constructor(other) {\n this.validFromDate = other?.validFromDate || new Date();\n this.validToDate = other?.validToDate || new Date();\n this.patientUsername = other?.patientUsername || \"\";\n this.totalActiveTrainingTime = other?.totalActiveTrainingTime || 0;\n this.supervisedActiveTrainingTime =\n other?.supervisedActiveTrainingTime || 0;\n this.unsupervisedActiveTrainingTime =\n other?.unsupervisedActiveTrainingTime || 0;\n this.weeklyActiveTrainingTimeGoal =\n other?.weeklyActiveTrainingTimeGoal || 0;\n this.isGoalSet = other?.isGoalSet || false;\n this.daysTrained = other?.daysTrained || 0;\n }\n}\n\nexport default class PatientSessionSummary extends Model {\n static entity = \"patientsessionsummaries\";\n static primaryKey = \"userName\";\n\n static fields() {\n return {\n id: this.attr(null),\n userName: this.attr(null),\n firstName: this.attr(null),\n lastName: this.attr(null),\n therapistId: this.attr(null),\n isArchived: this.attr(false),\n isAccountDeactivated: this.attr(false),\n lastSessionDate: this.attr(null),\n email: this.attr(\"email\"),\n MMID: this.attr(null),\n patientSiteId: this.attr(null),\n referenceId: this.attr(null),\n lastWeekActiveTrainingTime: this.attr(null),\n adherence: this.attr(null),\n quality: this.attr(null),\n quantity: this.attr(null),\n weeklyActiveTrainingTimeGoals: this.attr([]),\n therapist: this.belongsTo(Profile, \"therapistId\"),\n patient: this.belongsTo(Profile, \"userName\", \"userName\"),\n };\n }\n\n // Return the weekly ATT goal to display among the weeklyActiveTrainingTimeGoals,\n // according to the current \"browser\" date\n get currentGoal() {\n return (\n this.weeklyActiveTrainingTimeGoals?.find((g) =>\n isWithinInterval(new Date(), {\n start: startOfDay(parseISO(g.validFromDate)),\n end: endOfDay(parseISO(g.validToDate)),\n })\n ) || new WeeklyATTimeGoal()\n );\n }\n\n get fullName() {\n if (!this.firstName && !this.lastName) {\n return null;\n }\n if (!this.firstName) {\n return this.lastName;\n }\n if (!this.lastName) {\n return this.firstName;\n }\n return this.firstName + \" \" + this.lastName;\n }\n\n /**\n * Obtains patient summary data\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static get(signal) {\n return this.api().get(\"/session/concise\", {\n dataKey: \"result\",\n signal,\n });\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n const entityFieldsToSearchInto = [\n this.firstName,\n this.lastName,\n this.patientSiteId,\n this.MMID,\n formatToMMIDWithDashes(this.MMID),\n this.email,\n ];\n\n return isEntityContainsAllTerms(entityFieldsToSearchInto, searchTerms);\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport { parseISO } from \"date-fns\";\nimport { getFormattedActiveSide } from \"@/utils/activeSide\";\n\nexport default class PerformanceActivityPlanningAndTraining extends Model {\n static entity = \"performanceactivityplanningandtrainings\";\n\n static fields() {\n return {\n appId: this.attr(null),\n date: this.attr(null),\n level: this.attr(null),\n activeSide: this.attr(null),\n trainedFunctions: this.attr([]),\n plannedSeconds: this.attr(null),\n activeTrainingTime: this.attr(null),\n extraTrainingTime: this.attr(null),\n trainingTimeAccordingToPlan: this.attr(null),\n };\n }\n\n get Date() {\n return this.date ? parseISO(this.date) : null;\n }\n\n get ActiveSide() {\n return getFormattedActiveSide(this.activeSide);\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport { parseISO } from \"date-fns\";\nimport { getFormattedActiveSide } from \"@/utils/activeSide\";\nimport { SessionSupervisionTypeKeys } from \"@/utils/performance\";\nimport Store from \"@/store\";\nimport ActivityDescription from \"@/models/ActivityDescription.model\";\nimport gestureProviderIdToMovementId from \"@/models/utils\";\nimport DateTimeOffset from \"@/models/DateTimeOffset.model\";\nimport { SessionSupervisionMode } from \"@/models/SessionReport.model\";\nexport default class PerformanceActivityResult extends Model {\n static entity = \"performanceactivityresults\";\n static primaryKey = \"cloudId\"; // Sets the primary key\n\n static fields() {\n return {\n cloudId: this.attr(null), // Primary key\n id: this.attr(null),\n appId: this.attr(null),\n score: this.attr(null),\n date: this.attr(null),\n started: this.attr(null),\n startOffset: this.attr(null),\n ended: this.attr(null),\n endOffset: this.attr(null),\n activeTrainingTime: this.attr(null),\n compensationDuration: this.attr(null),\n compensationFeedbackResults: this.attr(null),\n gestureProviderResults: this.attr([]),\n level: this.attr(null),\n duration: this.attr(null),\n activeSide: this.attr(null),\n activityName: this.attr(null),\n supervisionMode: this.attr(null),\n therapistUsername: this.attr(null),\n trainedFunctions: this.attr([]),\n // Relation to other data,\n // See ActivityDescription() for what is used as a lazy loader of this data\n activityDescription: this.hasOne(ActivityDescription, \"appId\"),\n };\n }\n\n get Date() {\n return this.date ? parseISO(this.date) : null;\n }\n\n get Started() {\n return this.started ? parseISO(this.started) : null;\n }\n\n get Ended() {\n return this.ended ? parseISO(this.ended) : null;\n }\n\n get StartOffset() {\n return this.startOffset ? new DateTimeOffset(this.startOffset) : null;\n }\n\n get EndOffset() {\n return this.endOffset ? new DateTimeOffset(this.endOffset) : null;\n }\n\n get SessionType() {\n let username = Store.getters[\"Auth/username\"];\n if (username && this.therapistUsername === username) {\n return this.supervisionMode === SessionSupervisionMode.Unsupervised\n ? SessionSupervisionTypeKeys.Unsupervised\n : SessionSupervisionTypeKeys.SupervisedBySelf;\n }\n\n return this.supervisionMode === SessionSupervisionMode.Unsupervised\n ? SessionSupervisionTypeKeys.Unsupervised\n : SessionSupervisionTypeKeys.Supervised;\n }\n\n get ActiveSide() {\n return getFormattedActiveSide(this.activeSide);\n }\n\n /**\n * Used to lazy load the activity description only if needed.\n */\n get ActivityDescription() {\n // Cache the data for performance efficiency purposes\n if (!this.activityDescription) {\n this.activityDescription = ActivityDescription.query().find(this.appId);\n }\n return this.activityDescription;\n }\n\n /**\n * Provides gesture provider results and build the minimum data set if nothing available\n * This permits to get data for activity with some missing results.\n */\n fixupGestureProviderResults() {\n if (\n this.gestureProviderResults !== null &&\n this.gestureProviderResults.length > 0\n ) {\n return this.gestureProviderResults;\n }\n // Constructs minimal dataset for quantity parsing\n let minimalResults = [];\n for (let movementId of this.MovementIds) {\n minimalResults.push({\n gestureProviderId: movementId,\n side: this.ActiveSide,\n normalizedMovement: 0,\n });\n }\n this.gestureProviderResults = minimalResults;\n\n return this.gestureProviderResults;\n }\n\n /**\n * Provides the overall movement sides found in the gesture provider results\n */\n get AllMovementSides() {\n // NOTICE: We, for now, don't follow the gesture provider side\n // but the activity trained side\n // Hence the code has been adapted to consider the available sides\n // to only be the activity trained side.\n return [this.ActiveSide];\n\n if (\n this.gestureProviderResults === null ||\n this.gestureProviderResults.length === 0\n ) {\n return [];\n }\n\n return this.gestureProviderResults.reduce((acc, value) => {\n let movementSide = getFormattedActiveSide(value.side);\n if (!acc.some((e) => e === movementSide)) {\n acc.push(movementSide);\n }\n return acc;\n }, []);\n }\n\n /**\n * Provides the movement sides for the given movementId, found in activity's detailed movements (without duplicates)\n * N.B.: This is side of the movement, not the training side of the activity\n * @return {*[]}\n */\n getMovementSides(movementId) {\n if (!this.ActivityDescription) {\n return [];\n }\n\n return this.ActivityDescription.detailedMovements.reduce((acc, value) => {\n //get trained sides from trained activity detailed movements.\n let movementSide = this.ActiveSide;\n if (\n value &&\n (movementId === \"All\" || movementId === value) &&\n !acc.some((e) => e === movementSide)\n ) {\n acc.push(movementSide);\n }\n return acc;\n }, []);\n }\n\n /**\n * Provides the detailed movement ids array if available,\n * and then on the global movement id as a fallback.\n */\n get MovementIds() {\n if (this.DetailedMovementIds.length > 0) {\n return this.DetailedMovementIds;\n }\n\n if (this.GlobalMovementId) {\n return [this.GlobalMovementId];\n }\n\n return [];\n }\n\n /**\n * Provides the activity global movement Id\n */\n get GlobalMovementId() {\n return this.ActivityDescription?.globalMovementId || \"\";\n }\n\n /**\n * Returns the detailed movement ids from the activity\n */\n get DetailedMovementIds() {\n return this.ActivityDescription?.detailedMovements || [];\n }\n\n /**\n * Returns the normalized movement for the given movement type\n * @param movementId\n * @return {number|*}\n */\n getStandardizedMovementUnits(movementId, movementSide) {\n if (\n !this.gestureProviderResults ||\n this.gestureProviderResults.length === 0 ||\n !movementId\n ) {\n return 0;\n }\n\n return this.gestureProviderResults.reduce((acc, value) => {\n let currentMovementId = gestureProviderIdToMovementId(\n value.gestureProviderId\n );\n\n // NOTICE: We, for now, don't follow the gesture provider side\n // but the activity trained side\n // Hence the code has been adapted to consider the available sides\n // to only be the activity trained side.\n let currentSide = this.ActiveSide;\n movementSide = \"All\"; // The side is forcefully the one from the activity for now\n\n if (\n (currentMovementId !== movementId && movementId !== \"All\") ||\n (currentSide !== movementSide && movementSide !== \"All\") ||\n value.normalizedMovement == null\n ) {\n return acc;\n }\n return acc + parseFloat(value.normalizedMovement.toFixed(2));\n }, 0);\n }\n\n get TotalStandardizedMovementUnits() {\n if (\n this.gestureProviderResults !== null &&\n this.gestureProviderResults.length > 0\n ) {\n return this.gestureProviderResults.reduce((acc, value) => {\n if (value.normalizedMovement == null) {\n return acc;\n }\n return acc + value.normalizedMovement;\n }, 0);\n }\n return 0;\n }\n\n /**\n * Indicates whether the activity results has some valid compensation details.\n * It also returns false when the compensation feedback result is 'Legacy'\n * @return {boolean}\n */\n get HasCompensationDetails() {\n if (this.compensationDuration === null) {\n return false;\n }\n\n if (this.compensationFeedbackResults === null) {\n return false;\n }\n\n // Do not consider legacy feedback results\n if (\n this.compensationFeedbackResults.some((result) => result.id === \"Legacy\")\n ) {\n return false;\n }\n\n // Returns then whether some details are provided\n return this.compensationFeedbackResults.some((result) => {\n if (result.details === null || result.details.length === 0) {\n return false;\n }\n\n return result.details.some((detail) => detail.duration !== null);\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport { isAfter, parseISO } from \"date-fns\";\nimport Profile from \"@/models/Profile.model\";\nimport { notifyError } from \"@/services/api\";\n\nexport const PersonalAccessTokenStatuses = Object.freeze({\n Active: \"active\",\n Revoked: \"revoked\",\n Expired: \"expired\",\n});\n\nexport default class PersonalAccessToken extends Model {\n static entity = \"personalAccessToken\";\n\n static fields() {\n return {\n id: this.attr(null),\n name: this.attr(null),\n secretToken: this.attr(null),\n addedAtUtc: this.attr(null),\n expiryDate: this.attr(null),\n revocationDate: this.attr(null),\n userName: this.hasOne(Profile, \"userName\"),\n };\n }\n\n get Status() {\n return this.revocationDate\n ? PersonalAccessTokenStatuses.Revoked\n : isAfter(parseISO(this.expiryDate), new Date())\n ? PersonalAccessTokenStatuses.Active\n : PersonalAccessTokenStatuses.Expired;\n }\n\n // Network functions\n\n static get(signal) {\n return this.api().get(\"/personal-access-token\", {\n dataKey: \"result\",\n signal,\n });\n }\n\n static async post(newPersonalAccessToken) {\n return await this.api()\n .post(\"/personal-access-token\", newPersonalAccessToken, {\n dataKey: \"result\",\n })\n .then((result) => result.response.data.result);\n }\n\n static async revoke(patId) {\n return await this.api().post(`/personal-access-token/revoke/${patId}`, {\n dataKey: \"result\",\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\n\nexport const RECENT_PATIENTS = \"recentPatients\"; // key for personal settings\nexport const MAX_RECENT_PATIENTS = 6; // Max number of recent patients, add 1 to the desired number\n\nexport default class PersonalSettings extends Model {\n static entity = \"personalSettings\";\n static primaryKey = \"key\";\n\n static fields() {\n return {\n key: this.attr(null),\n settings: this.attr({}),\n };\n }\n\n /**\n * Get personal settings by key\n * @param {string} key personal settings key (ex: PatientList)\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async getPersonalSettings(key, signal) {\n return await this.api().get(`personal-settings/${key}`, {\n dataKey: \"result\",\n signal,\n });\n }\n\n /**\n * Update the given personal setting\n * @param {string} key personal settings key (ex: PatientList)\n * @param {object} settings the settings\n */\n static async updatePersonalSettings(key, settings) {\n let personalSettings = {\n key: key,\n settings: settings,\n };\n return await this.api().put(`personal-settings`, personalSettings, {\n dataKey: \"result\",\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport Site from \"@/models/Site.model\";\nimport store from \"@/store\";\nimport { buildNameFromFirstAndLastName } from \"@/utils/profile\";\nimport { deserializeConsent } from \"@/utils/signedDocuments\";\nimport { isEntityContainsAllTerms, tidySearchTerm } from \"@/utils/filters\";\nimport { defaultLocale } from \"@/utils/locales\";\nimport {\n THERAPIST_ROLE,\n SITEMANAGER_ROLE,\n ADMIN_ROLE,\n DPO_ROLE,\n PATIENT_ROLE,\n} from \"@/services/auth.js\";\nimport { tr } from \"@/utils/translation\";\n\nfunction queryableEndpoints() {\n const isAdmin = store.getters[\"Auth/isAdmin\"];\n const isSuperAdmin = store.getters[\"Auth/isSuperAdmin\"];\n const isDPO = store.getters[\"Auth/isDPO\"];\n const isAdminManagerAdmin = store.getters[\"Auth/isAdminManagerAdmin\"];\n const isSiteManager = store.getters[\"Auth/isSiteManager\"];\n const isSuperTherapist = store.getters[\"Auth/isSuperTherapist\"];\n const isTherapist = store.getters[\"Auth/isTherapist\"];\n\n let endpoints = [];\n if (isSuperAdmin || isDPO || isAdminManagerAdmin) {\n endpoints.push(\"/profile/admin\");\n }\n if (isSuperAdmin || isDPO) {\n endpoints.push(\"/profile/dpoadmin\");\n }\n if (isDPO || isAdmin || isSuperAdmin || isSiteManager || isSuperTherapist) {\n endpoints.push(\"/profile/sitemanager\");\n }\n if (isDPO || isAdmin || isSuperAdmin || isTherapist || isSiteManager) {\n endpoints.push(\"/profile/therapist\");\n }\n if (isSuperAdmin || isDPO || isTherapist) {\n endpoints.push(\"/profile/patient\");\n }\n return endpoints;\n}\n\nexport default class Profile extends Model {\n static entity = \"profiles\";\n static primaryKey = \"userName\";\n\n static fields() {\n return {\n id: this.attr(null),\n userName: this.attr(null),\n firstName: this.attr(null),\n lastName: this.attr(null),\n email: this.attr(null),\n roles: this.attr([]),\n competences: this.attr([]),\n isSuperTherapist: this.attr(false),\n phoneNumber: this.attr(null),\n gender: this.attr(null),\n birthDate: this.attr(null),\n therapistId: this.attr(null),\n patientSiteId: this.attr(null),\n archivedAtUtc: this.attr(null),\n isArchived: this.attr(false),\n isAccountDeactivated: this.attr(false),\n passwordChangeRequired: this.attr(null),\n MMID: this.attr(null),\n emailConfirmed: this.attr(false),\n isAMindMotionPatient: this.attr(false),\n siteId: this.attr(null),\n referenceId: this.attr(null),\n condition: this.attr(null),\n leftHandImpairment: this.attr(null),\n rightHandImpairment: this.attr(null),\n additionalConditionInformation: this.attr(null),\n language: this.attr(defaultLocale),\n isEULASignatureRequired: this.attr(false),\n isPrivacyPolicySignatureRequired: this.attr(false),\n isConsentFormSignatureRequired: this.attr(false),\n enforceSAMLLogin: this.attr(false),\n samlLoginId: this.attr(null),\n signedDocuments: this.attr([]),\n site: this.belongsTo(Site, \"sideId\"),\n therapist: this.belongsTo(Profile, \"therapistId\"),\n lastDismissedCustomerNotificationVersion: this.attr(\"0.0.0\"),\n timeZoneId: this.attr(null),\n };\n }\n\n static mutators() {\n return {\n // Handle depreciated DB values by ensuring the key to start with lowercase letter\n condition(value) {\n let key = null;\n if (value) {\n key =\n value.trim().charAt(0).toLowerCase() + value.trim().substring(1);\n if (key.includes(\"parkinson\")) {\n key = \"parkinsonDisease\";\n }\n }\n return key;\n },\n };\n }\n\n /**\n * Displays a proper displayed name depending on the available profile data\n */\n get displayedName() {\n if (this.fullName?.length) {\n return this.fullName;\n } else if (this.isPatient && this.patientSiteId?.trim().length) {\n return this.patientSiteId;\n } else if (this.email) {\n return this.email;\n } else {\n // Gives the role\n return tr(\"Common.Profile.Roles.\" + this.roles[0]);\n }\n }\n\n /**\n * Displays name with initial of firstname and then lastname (with fallback on displayedName)\n * ex: F. Lastname\n */\n get shortName() {\n if (this.firstName?.trim().length && this.lastName?.trim().length) {\n return this.initialOfFirstNameAndLastName;\n }\n return this.displayedName;\n }\n\n /**\n * @returns email if exists, otherwise returns username\n * this is needed for authentication sorting\n */\n get authenticationName() {\n return this.email ? this.email : this.userName;\n }\n\n get fullName() {\n return buildNameFromFirstAndLastName(this.firstName, this.lastName);\n }\n\n get fullNameHtml() {\n return buildNameFromFirstAndLastName(this.firstName, this.lastName, true);\n }\n\n get initialOfFirstNameAndLastName() {\n if (!this.firstName?.trim().length || !this.lastName?.trim().length) {\n return null;\n }\n return `${this.firstName[0]}. ${this.lastName}`;\n }\n\n get use12HourTimeFormat() {\n return this.language === defaultLocale;\n }\n\n get consents() {\n return deserializeConsent(this.signedDocuments);\n }\n\n get role() {\n return this.roles?.[0] || \"\";\n }\n\n // Fetch API\n static get() {\n return Promise.all(\n queryableEndpoints().map(\n async (endpoint) =>\n await this.api().get(endpoint, { dataKey: \"result\" })\n )\n );\n }\n\n static getById(id) {\n return this.api().get(\"/profile/id/\" + id, { dataKey: \"result\" });\n }\n\n /**\n * Fetch my profile from companion.\n */\n static async fetchMyProfile() {\n return await this.api().get(\"/profile\", { dataKey: \"result\" });\n }\n\n /**\n * Returns all patient profiles from the current user site\n * @param {AbortSignal} signal Permits request cancellation support\n * @param {boolean} showOnlyUnarchived Optionally returns only unarchived users (true by default)\n * @param {boolean} showOnlyArchived Optionally returns only archived users (false by default)\n * @param {boolean} saveResponse Whether to store the response in the store\n * See: https://vuex-orm.github.io/plugin-axios/guide/configurations.html#available-options\n */\n static async getPatients(\n signal = null,\n showOnlyUnarchived = true,\n showOnlyArchived = false,\n saveResponse = true\n ) {\n const url = `profile/patient?showOnlyUnarchived=${showOnlyUnarchived}&showOnlyArchived=${showOnlyArchived}`;\n return await this.api().get(url, {\n dataKey: \"result\",\n save: saveResponse,\n signal,\n });\n }\n\n /**\n * Returns all therapist profiles from the current user site\n * @param {AbortSignal} signal Permits request cancellation support\n * @param {boolean} showOnlyUnarchived Optionally returns only unarchived users (true by default)\n * @param {boolean} showOnlyArchived Optionally returns only archived users (false by default)\n */\n static async getTherapists(\n signal = null,\n showOnlyUnarchived = true,\n showOnlyArchived = false\n ) {\n const url = `profile/therapist?showOnlyUnarchived=${showOnlyUnarchived}&showOnlyArchived=${showOnlyArchived}`;\n return await this.api().get(url, {\n dataKey: \"result\",\n signal,\n });\n }\n\n /**\n * Returns all site manager profiles from the current user site\n * @param {AbortSignal} signal Permits request cancellation support\n * @param {boolean} showOnlyUnarchived Optionally returns only unarchived users (true by default)\n * @param {boolean} showOnlyArchived Optionally returns only archived users (false by default)\n */\n static async getSiteManagers(\n signal,\n showOnlyUnarchived = true,\n showOnlyArchived = false\n ) {\n const url = `profile/sitemanager?showOnlyUnarchived=${showOnlyUnarchived}&showOnlyArchived=${showOnlyArchived}`;\n return await this.api().get(url, {\n dataKey: \"result\",\n signal,\n });\n }\n\n static async post(newProfile) {\n return this.api().post(roleCreationMap[newProfile.roles[0]], newProfile, {\n dataKey: \"result\",\n });\n }\n\n static async remove(profile) {\n return this.api().delete(roleDeleteMap[profile.roles[0]] + profile.id, {\n delete: profile.userName,\n dataKey: \"result\",\n });\n }\n\n /**\n * Bulk update a profile property\n * Only supports 'isAccountDeactivated', 'isArchived'\n * @param profileUsernames {Array} Array of profile usernames\n * @param propertyToUpdate {string}\n * @param newValue {boolean}\n */\n static async bulkUpdateProfiles(\n profileUsernames,\n propertyToUpdate,\n newValue\n ) {\n const url = `profile/bulk-edit-property/${propertyToUpdate}/${newValue}`;\n\n try {\n const response = await this.api().post(url, profileUsernames, {\n dataKey: \"result\",\n persistBy: \"insert\", // More performant than 'update' or default 'insertOrUpdate'\n });\n return Promise.resolve(response);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n static async put(updatedProfile) {\n return this.api().put(\n roleEditMap[updatedProfile.roles[0]],\n updatedProfile,\n {\n dataKey: \"result\",\n }\n );\n }\n\n // Returns all patients for a given therapist id.\n static async getPatientCountByTherapistId(therapistId, signal) {\n return await this.api()\n .get(`profile/therapist/${therapistId}/patient/count`, {\n signal,\n })\n .then((result) => result.response.data.result);\n }\n\n static async transferAllPatientsFromTherapistToAnother(\n fromTherapistId,\n toTherapistId\n ) {\n return this.api().request({\n method: \"post\",\n url: `profile/transfer/patients-to-therapist/?fromTherapistId=${fromTherapistId}&toTherapistId=${toTherapistId}`,\n });\n }\n\n static async promote(profile) {\n return this.api().request({\n method: \"post\",\n url: `profile/sitemanager/promote/${profile.userName}`,\n dataKey: \"result\",\n });\n }\n\n /*\n * Service methods extracted\n */\n\n static async addTherapist(therapist) {\n return this.parseSingleProfileFromRequest(\n this.api().post(\"account/therapist\", therapist, {\n dataKey: \"result\",\n })\n );\n }\n\n static async addSiteManager(siteManager) {\n return this.parseSingleProfileFromRequest(\n this.api().post(\"account/sitemanager\", siteManager, {\n dataKey: \"result\",\n })\n );\n }\n\n /**\n * Update a therapist\n * @param {object} data The therapist data\n */\n static async updateTherapist(therapist) {\n return this.parseSingleProfileFromRequest(\n this.api().put(\"profile/therapist\", therapist, {\n dataKey: \"result\",\n })\n );\n }\n\n /**\n * Update a sitemanager\n * @param {object} data The sitemanager data\n */\n static async updateSiteManager(siteManager) {\n return this.parseSingleProfileFromRequest(\n this.api().put(\"profile/sitemanager\", siteManager, {\n dataKey: \"result\",\n })\n );\n }\n\n /**\n * Update current user\n * @param {object} data the new data of the current user\n */\n static async updateSelf(profile) {\n return this.parseSingleProfileFromRequest(\n this.api().put(\"profile\", profile, { dataKey: \"result\" })\n );\n }\n\n /**\n * Add a patient\n * @param {object} data The patient data\n */\n static async addPatient(profile, sendPasswordEmail = true) {\n return this.parseSingleProfileFromRequest(\n this.api().post(\n `account/patient?sendPasswordEmail=${sendPasswordEmail}`,\n profile,\n { dataKey: \"result\" }\n )\n );\n }\n\n /**\n * Update a patient\n * @param {object} data The patient data\n */\n static async updatePatient(profile) {\n return this.parseSingleProfileFromRequest(\n this.api().put(\"profile/patient\", profile, { dataKey: \"result\" })\n );\n }\n\n /**\n * Get the userprofile from the username\n * @param {string} username The username\n */\n static async getProfileFromUsername(username, signal) {\n return await this.parseSingleProfileFromRequest(\n this.api().get(`profile/${username}`, {\n dataKey: \"result\",\n signal,\n })\n );\n }\n\n /**\n * Get therapist from patient username\n * @param {string} userName The patient username\n */\n static async getTherapistFromPatient(userName) {\n return this.parseSingleProfileFromRequest(\n this.api().get(`profile/patient/${userName}/therapist`, {\n dataKey: \"result\",\n })\n );\n }\n\n /**\n * Get the userprofile from a therapy by username\n * @param {string} userName The username\n */\n static async getTherapistProfileFromUserName(userName) {\n return this.parseSingleProfileFromRequest(\n this.api().get(`profile/therapist/${userName}`, {\n dataKey: \"result\",\n })\n );\n }\n\n /**\n * Set the access for a patient\n * @param {string} userName The username from the patient\n * @param {string} email The new email\n * @param {string} password The new password\n */\n static async addAccessToPatient(username, email, password) {\n return this.parseSingleProfileFromRequest(\n this.api().post(\n `account/patient/add-access`,\n {\n userName: username,\n email: email,\n password: password,\n },\n {\n dataKey: \"result\",\n }\n )\n );\n }\n\n static async parseSingleProfileFromRequest(apiRequest) {\n return apiRequest.then((result) => {\n const profile = result.entities.profiles[0];\n return profile;\n });\n }\n\n isAdministrator() {\n return this.roles.includes(ADMIN_ROLE);\n }\n isPatient() {\n return this.roles.includes(PATIENT_ROLE);\n }\n isTherapist() {\n return this.roles.includes(THERAPIST_ROLE);\n }\n isDpo() {\n return this.roles.includes(DPO_ROLE);\n }\n isSiteManager() {\n return this.roles.includes(SITEMANAGER_ROLE);\n }\n isTherapistAdmin() {\n return this.isTherapist() && this.isSuperTherapist;\n }\n isMindMotionUser() {\n return this.isTherapist() || this.isSiteManager() || this.isPatient();\n }\n\n /**\n * Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n return [\n tidySearchTerm(this.fullName),\n this.patientSiteId,\n this.MMID,\n this.email,\n this.therapistId,\n this.userName,\n ];\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n}\n\nconst roleCreationMap = {\n site: \"account/sitemanager\",\n therapist: \"account/therapist\",\n admin: \"account/admin\",\n dpoadmin: \"account/dpoadmin\",\n patient: \"account/patient\",\n};\n\nconst roleEditMap = {\n site: \"profile/sitemanager/\",\n therapist: \"profile/therapist/\",\n admin: \"profile/admin/\",\n dpoadmin: \"profile/dpoadmin/\",\n patient: \"profile/patient/\",\n};\n\nconst roleDeleteMap = {\n site: \"account/sitemanager/\",\n therapist: \"account/therapist/\",\n admin: \"account/admin/\",\n dpoadmin: \"account/dpoadmin/\",\n patient: \"account/patient/\",\n};\n","import { parseISO } from \"date-fns\";\n\nexport default class ProgramNote {\n constructor(note) {\n if (note) {\n this.text = note.text;\n this.lastEditDate = note.lastEditDate;\n this.firstname = note.firstname;\n this.lastname = note.lastname;\n } else {\n this.text = \"\";\n this.lastEditDate = null;\n this.firstname = null;\n this.lastname = null;\n }\n }\n\n get LastEditDate() {\n return parseISO(this.lastEditDate);\n }\n}\n","import ProgramNote from \"@/models/ProgramNote.model\";\nimport ProgramActivity from \"@/models/ProgramActivity.model\";\nimport { getAdaptiveTranslatedTimeFromSeconds } from \"@/utils/duration\";\nimport { generateUUID } from \"@/utils/profile\";\nimport ActivityDescription from \"@/models/ActivityDescription.model\";\n\nexport default class Program {\n constructor(program) {\n this.id = program.id || generateUUID();\n this.label = program.label || null;\n this.description = program.description || null;\n this.patientUserName = program.patientUserName;\n this.notes = new ProgramNote(program.notes);\n this.suitableForGroupTherapy = program.suitableForGroupTherapy || false;\n this.suitableForRemoteTherapy = program.suitableForRemoteTherapy || false;\n this.suitableForFreeplay = program.suitableForFreeplay || false;\n this.fromPresetId = program.fromPresetId || null;\n this.activities = program.activities\n ? program.activities.map(\n (activity) =>\n new ProgramActivity(\n activity,\n this.getActivityDescription(activity.activityId)\n )\n )\n : [];\n this.displayedColor = program.displayedColor || [\"\", \"\"]; // Default program color classes, updated by the therapy plan\n }\n\n getActivityDescription(activityId) {\n return ActivityDescription.query().find(activityId);\n }\n\n setProgramMetadata(programMetadata) {\n this.label = programMetadata.label;\n this.description = programMetadata.description;\n this.suitableForGroupTherapy = programMetadata.suitableForGroupTherapy;\n this.suitableForRemoteTherapy = programMetadata.suitableForRemoteTherapy;\n this.suitableForFreeplay = programMetadata.suitableForFreeplay;\n this.notes = new ProgramNote(programMetadata.notes);\n }\n\n /**\n * Getters\n */\n\n isCalibrationMissing(allActivities) {\n return this.activities.some((activity) => {\n return activity.isCalibrationMissing(allActivities);\n });\n }\n\n activityCount(allActivities) {\n let activitiesToCount = [];\n // Count only licensed activity if activity info is provided.\n if (allActivities?.length > 0) {\n activitiesToCount = this.activities.filter((act) => {\n const activityInfo = allActivities.find((a) => act.activityId === a.id);\n return activityInfo && activityInfo.isLicensedForUser;\n });\n }\n\n return activitiesToCount.length || 0;\n }\n\n // Returns the unlicensed activities from the activity list, default to returning none\n unlicensedActivities(activityDescription) {\n let unlicensedActivities = [];\n if (!activityDescription || !activityDescription.length) {\n return unlicensedActivities;\n }\n unlicensedActivities = this.activities.filter((act) => {\n let activityInfo = activityDescription.find(\n (a) => act.activityId === a.id\n );\n return activityInfo?.isLicensedForUser === false || false;\n });\n return unlicensedActivities;\n }\n\n programDuration(allActivities) {\n let total = this.activities.reduce((accumulator, activity) => {\n let countActivity = true;\n // Count only licensed activity if the information is available.\n if (allActivities.length) {\n let activityInfo = allActivities.find(\n (a) => activity.activityId === a.id\n );\n countActivity = activityInfo && activityInfo.isLicensedForUser;\n }\n return countActivity\n ? accumulator + activity.activitySettings.duration\n : accumulator;\n }, 0);\n return getAdaptiveTranslatedTimeFromSeconds(total, true);\n }\n\n containsActivitiesWithEstimatedDuration() {\n return this.activities.some((a) => a.hasEstimatedDuration);\n }\n\n get HasDisplayedColorsSet() {\n return (\n Array.isArray(this.displayedColor) &&\n this.displayedColor.length === 2 &&\n this.displayedColor[0] !== \"\"\n );\n }\n\n get ProgramBgColor() {\n return `bg-${this.displayedColor[0]}`;\n }\n\n get ProgramHoverColor() {\n return `bg-${this.displayedColor[1]}`;\n }\n\n get ProgramBorderColor() {\n return `border-${this.displayedColor[0]}`;\n }\n}\n","import { cloneDeep } from \"lodash\";\nimport { generateUUID } from \"@/utils/profile\";\n\n/**\n * Activity supported dosage kinds\n */\nconst DosageKinds = Object.freeze({\n Duration: \"Duration\",\n Logic: \"Logic\",\n});\n\nexport const ActivitySideShort = Object.freeze({\n Left: \"L\",\n Right: \"R\",\n});\n\n/**\n * Default activity values, used as fallback\n */\nconst defaultProgramActivityValues = {\n // Estimated duration for logic based activities.\n defaultEstimatedDuration: 120,\n defaultActivitySettings: {\n level: 1,\n duration: 30,\n side: ActivitySideShort.Left,\n allowSelfCalibration: false,\n useAutoLevel: false,\n },\n};\n\nexport default class ProgramActivity {\n /**\n * Creates a new program activity from provided data.\n * @param programActivity\n * @param activityDescription Used to setup certain parameters\n * with better default if provided\n */\n constructor(programActivity, activityDescription = undefined) {\n if (!programActivity) {\n programActivity = {};\n }\n\n this.uuid = programActivity.uuid || generateUUID();\n this.activityId = programActivity.activityId || \"\";\n this.activitySettings = programActivity.activitySettings\n ? cloneDeep(programActivity.activitySettings)\n : cloneDeep(defaultProgramActivityValues.defaultActivitySettings);\n this.hasEstimatedDuration = programActivity.hasEstimatedDuration || false;\n\n if (activityDescription) {\n // Fixup the logic based program activity duration if description is provided\n let activityDosageKind =\n activityDescription.activityOptions?.dosage?.kind;\n if (activityDosageKind === DosageKinds.Logic) {\n // Set the newly created activity duration to the estimated one when provided\n let estimatedDuration =\n activityDescription.activityOptions.dosage.estimatedDuration ||\n defaultProgramActivityValues.defaultEstimatedDuration;\n this.activitySettings.duration = estimatedDuration;\n this.hasEstimatedDuration = true;\n }\n }\n }\n\n static fromActivityDescription(activityDescription) {\n let activitySettings = cloneDeep(\n defaultProgramActivityValues.defaultActivitySettings\n );\n\n let activityDosageKind = activityDescription?.activityOptions?.dosage?.kind;\n if (activityDosageKind === DosageKinds.Duration) {\n // Set the newly created activity duration to the minimum specified in description.\n let duration = activityDescription?.activityOptions?.dosage?.min;\n if (duration > 0) {\n activitySettings.duration = duration;\n }\n }\n\n const programActivityData = {\n activityId: activityDescription.id,\n activitySettings: activitySettings,\n };\n return new ProgramActivity(programActivityData, activityDescription);\n }\n\n isCalibrationMissing(activityDescriptionList) {\n let activityDescription = activityDescriptionList.find(\n (a) => a.id === this.activityId\n );\n if (\n activityDescription &&\n activityDescription.gestureProviders.length > 0 &&\n activityDescription.patientUsage\n ) {\n return (\n !activityDescription.patientUsage.hasValidCalibration(\n this.activitySettings.side\n ) && !this.activitySettings.allowSelfCalibration\n );\n } else {\n return false;\n }\n }\n\n hasActivityDescription(activityDescriptionList) {\n return (\n activityDescriptionList.findIndex((a) => a.id === this.activityId) !== -1\n );\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport { userRootLocale } from \"@/models/utils\";\nimport Program from \"@/models/Program.model\";\nimport Store from \"@/store\";\nimport { parseISO } from \"date-fns\";\nimport { defaultLanguage } from \"@/utils/locales\";\n\nexport class ProgramPreset extends Model {\n static entity = \"programpresets\";\n\n static fields() {\n return {\n id: this.attr(null),\n program: this.attr(null, (value) => new Program(value)),\n metadata: this.attr(null, (value) => new ProgramPresetMetadata(value)),\n username: this.attr(\"\"),\n createdBy: this.attr(\"\"),\n modifiedBy: this.attr(\"\"),\n createdAtUTC: this.attr(null),\n modifiedAtUTC: this.attr(null),\n positionIndex: this.attr(0),\n };\n }\n\n get ModifiedAtUTC() {\n return this.modifiedAtUTC ? parseISO(this.modifiedAtUTC) : null;\n }\n\n get IsTherapistPreset() {\n let currentUsername = Store.getters[\"Auth/username\"];\n return this.username === currentUsername;\n }\n\n static fromConvertToPresetData(presetData) {\n let currentUsername = Store.getters[\"Auth/username\"];\n let preset = {\n username: currentUsername,\n createdBy: currentUsername,\n modifiedBy: currentUsername,\n program: new Program(presetData.program),\n metadata: new ProgramPresetMetadata({}),\n };\n\n let language = userRootLocale() || defaultLanguage;\n preset.metadata.title[language] = presetData.title;\n preset.metadata.title[defaultLanguage] = presetData.title;\n preset.metadata.importedTitle[language] = presetData.title;\n preset.metadata.importedTitle[defaultLanguage] = presetData.title;\n preset.metadata.description[language] = presetData.description;\n preset.metadata.description[defaultLanguage] = presetData.description;\n\n return preset;\n }\n\n static fromProgramData(programData) {\n let presetData = {};\n presetData.username = Store.getters[\"Auth/username\"];\n presetData.program = programData;\n presetData.metadata = {};\n presetData.title = programData.label;\n presetData.importedTitle = programData.label;\n presetData.description = programData.description;\n return ProgramPreset.fromConvertToPresetData(presetData);\n }\n\n /**\n * Get MindMotion presets\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async getMindMotionPresets(signal) {\n return await this.api().get(\"/programpreset\", {\n dataKey: \"result\",\n signal,\n });\n }\n\n /**\n * Get Therapist presets\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async getTherapistPresets(signal) {\n return await this.api().get(\"/programpreset/therapist\", {\n dataKey: \"result\",\n signal,\n });\n }\n\n static createTherapistPreset(programPreset) {\n return this.api().post(\"/programpreset/custom\", programPreset, {\n dataKey: \"result\",\n });\n }\n\n static updateTherapistPreset(programPreset) {\n return this.api().put(`/programpreset/${programPreset.id}`, programPreset, {\n dataKey: \"result\",\n });\n }\n\n /**\n * Delete a preset from the database\n * @param programPresetId\n * @returns {*}\n */\n static deleteTherapistPreset(programPresetId) {\n return this.api().delete(`/programpreset/id/${programPresetId}`, {\n dataKey: \"result\",\n // Also delete from the store\n // See: https://vuex-orm.github.io/plugin-axios/guide/usage.html#delete-requests\n delete: programPresetId,\n });\n }\n}\n\n// This data is only valid for MindMotion presets\nexport class ProgramPresetMetadata {\n constructor(programPresetMetaData) {\n this.title = programPresetMetaData.title || {};\n this.description = programPresetMetaData.description || {};\n this.severity =\n programPresetMetaData.severity || this.defaultSeverityOptions();\n this.function =\n programPresetMetaData.function || this.defaultFunctionOptions();\n this.importedTitle = programPresetMetaData.importedTitle || {};\n }\n\n defaultSeverityOptions() {\n return {\n key: \"\",\n text: {},\n };\n }\n\n defaultFunctionOptions() {\n return {\n key: \"\",\n text: {},\n };\n }\n\n get Title() {\n if (!this.title[userRootLocale()]) {\n return this.title[defaultLanguage];\n }\n return this.title[userRootLocale()];\n }\n\n set Title(title) {\n this.title = {};\n this.title[userRootLocale()] = title;\n this.title[defaultLanguage] = title;\n }\n\n get Description() {\n if (!this.description[userRootLocale()]) {\n return this.description[defaultLanguage];\n }\n return this.description[userRootLocale()];\n }\n\n set Description(description) {\n this.description = {};\n this.description[userRootLocale()] = description;\n this.description[defaultLanguage] = description;\n }\n\n get Severity() {\n return {\n key: this.severity.key,\n text: this.severity.text[userRootLocale()],\n };\n }\n\n get Function() {\n return {\n key: this.function.key,\n text: this.function.text ? this.function.text[userRootLocale()] : \"\",\n };\n }\n\n get ImportedTitle() {\n if (!this.importedTitle[userRootLocale()]) {\n return this.importedTitle[defaultLanguage];\n }\n return this.importedTitle[userRootLocale()];\n }\n\n set ImportedTitle(importedTitle) {\n this.importedTitle[userRootLocale()] = importedTitle;\n this.importedTitle[defaultLanguage] = importedTitle;\n }\n}\n","import { formatToDDMMMYYYYHmm } from \"@/utils/date\";\nimport { getYear, parseISO } from \"date-fns\";\nimport { tr } from \"@/utils/translation\";\nimport { buildNameFromFirstAndLastName } from \"@/utils/profile\";\n\n// The structure of an empty soap text object\nconst emptySoapText = {\n username: \"\",\n firstname: \"\",\n lastname: \"\",\n text: \"\",\n};\n\n// All soap text names for the session report\nconst soapTextNames = [\"subjective\", \"assessment\", \"plan\"];\n\n/**\n * This class is like an array for soaptexts.\n * It has the same structure as the soapdata in the backend\n * A soapData object has some SoapText objects these text objects represents the real data.\n */\nexport default class SoapData {\n /**\n * Generate the objects if they are not existing otherwise add them to the class\n * @param {object} soapData The soapdata object from the backend\n */\n constructor(soapData) {\n // If soapdata is null generate all necessary soaptext objects\n if (!soapData) {\n this.generateAll();\n return;\n }\n\n // Loop through all soaptext names\n soapTextNames.forEach((soapTextName) => {\n // If the soaptext object is not null add it to this soapdata instance otherwise generate the empty object and add it\n if (soapData[soapTextName]) {\n this[soapTextName] = soapData[soapTextName];\n // Handle empty date from backend (It is 01.01.01 instead of null)\n if (getYear(parseISO(this[soapTextName].lastEditDate)) > 1970) {\n this[soapTextName].lastEditDate = this[soapTextName].lastEditDate;\n } else {\n this[soapTextName].lastEditDate = undefined;\n }\n } else {\n this.generate(soapTextName);\n }\n\n // Add convenience getters\n this[soapTextName].translatedLatestEdit = () => {\n return this.translatedLatestEdit(soapTextName);\n };\n });\n }\n\n /**\n * Generate empty soaptext object for all soaptextnames\n */\n generateAll() {\n soapTextNames.forEach((soapTextName) => this.generate(soapTextName));\n }\n\n /**\n * Generate empty soaptext object for the given soaptextname\n * @param {string} name The soaptextname\n */\n generate(name) {\n this[name] = Object.assign({}, emptySoapText);\n }\n\n /**\n * Returns the formatted latest edit information string when the information is available.\n * @param soapName\n * @return {string}\n */\n translatedLatestEdit(soapName) {\n let author = this.textAuthor(soapName);\n if (this[soapName].lastEditDate && author.trim() !== \"\") {\n return tr(\"TherapistPatientManagementPage.ReviewPage.lastedited\", {\n date: formatToDDMMMYYYYHmm(this[soapName].lastEditDate),\n name: author,\n });\n }\n return \"\";\n }\n\n /**\n * Returns the soap text author name.\n * @param soapName\n * @return {string}\n */\n textAuthor(soapName) {\n return buildNameFromFirstAndLastName(\n this[soapName].firstname,\n this[soapName].lastname\n );\n }\n}\n","/**\n * A simple text builder class helper to create slightly formatted text easily.\n */\nexport default class TextBuilder {\n constructor() {\n this.text = \"\";\n this.eol = this.getEol();\n }\n\n /**\n * Adds a line (with a new line)\n * @param text\n */\n addLine(text) {\n this.text += text + this.eol;\n }\n\n /**\n * Appends text to the current state\n * @param text\n */\n append(text) {\n this.text += text;\n }\n\n /**\n * Adds a result formatted line\n * e.g.: resultNameresultValue\n * @param resultName\n * @param resultValue\n */\n addResult(resultName, resultValue) {\n this.text += \"\\t\" + resultName + \"\\t\\t\\t\" + resultValue + this.eol;\n }\n\n /**\n * Adds a title formatted line\n * @param title\n */\n addTitle(title) {\n this.text += this.eol + title + this.eol;\n }\n\n /**\n * Adds a subtitle formatted line\n * @param subtitle\n */\n addSubTitle(subtitle) {\n this.text += subtitle + this.eol;\n }\n\n /**\n * Returns the right end of line character depending on the platform\n * @return {string}\n */\n getEol() {\n let myPlatform = navigator.platform.toLowerCase();\n if (myPlatform.indexOf(\"win\") != -1) {\n // Windows\n return \"\\r\\n\";\n } else if (myPlatform.indexOf(\"mac\") != -1) {\n // OSX\n return \"\\r\";\n }\n return \"\\n\"; // The rest\n }\n}\n","import SoapData from \"@/models/SoapData.model\";\nimport ActivityResult from \"@/models/activity-result/ActivityResult.model\";\nimport DateTimeOffset from \"@/models/DateTimeOffset.model\";\nimport Profile from \"@/models/Profile.model\";\nimport {\n getMinutesAndSecondsFromSeconds,\n getMinutesFromSeconds,\n getAdaptiveTranslatedTimeFromSeconds,\n} from \"@/utils/duration\";\nimport {\n formatToDDMMMYYYY,\n formatToDDMMMYYYYHmm,\n formatToHmm,\n} from \"@/utils/date\";\nimport { tr } from \"@/utils/translation\";\nimport TextBuilder from \"@/utils/textBuilder\";\nimport Store from \"@/store/\";\nimport { groupBy, lowerFirst } from \"lodash\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { activityApi } from \"@/services/api\";\nimport { DosageKind } from \"@/services/enums\";\n\nexport const SessionSupervisionMode = Object.freeze({\n Supervised: \"Supervised\",\n RemotelySupervised: \"RemotelySupervised\",\n Unsupervised: \"Unsupervised\",\n});\n\nexport default class SessionReport {\n constructor(sessionReport) {\n this.id = sessionReport.id;\n this.addedAtUtc = sessionReport.addedAtUtc;\n this.addedAt = formatToDDMMMYYYYHmm(sessionReport.addedAtUtc);\n this.startDate = sessionReport.startDate;\n this.startDateOffset = new DateTimeOffset(sessionReport.startDateOffset);\n this.endDate = sessionReport.endDate;\n this.endDateOffset = new DateTimeOffset(sessionReport.endDateOffset);\n this.totalDuration = getMinutesFromSeconds(sessionReport.totalDurationSec);\n this.userName = sessionReport.userName;\n this.completed = sessionReport.completed;\n this.completionCount = sessionReport.completionCount;\n this.deviceMode = sessionReport.deviceMode || \"\";\n this.supervisionMode = sessionReport.supervisionMode;\n\n this.soapData = new SoapData(sessionReport.soapData);\n\n this.results = sessionReport.results.map(\n (result) => new ActivityResult(result)\n );\n\n this.therapistUsername = sessionReport.therapistUsername;\n }\n\n /**\n * Loads the therapist profile if there is a therapist username\n */\n get therapistProfile() {\n if (this.therapistUsername) {\n return Profile.query().find(this.therapistUsername);\n }\n\n // Use the current loaded profile when no profile is provided\n let currentUsername = Store.getters[\"Auth/username\"];\n if (currentUsername) {\n return Profile.query().find(currentUsername);\n }\n\n return null;\n }\n\n /**\n * Loads the patient profile if there is a patient username\n */\n get patientProfile() {\n if (this.userName) {\n return Profile.query().find(this.userName);\n }\n return null;\n }\n\n async save() {\n return await SessionReport.saveSessionReport(this.serialize());\n }\n\n /**\n * Serialize the session report for the backend\n */\n serialize() {\n const copy = cloneDeep(this);\n // Convert minutes to seconds\n copy.totalDurationSec = copy.totalDuration / 60;\n // Deleting properties that are not for the backend\n delete copy.therapistProfile;\n delete copy.totalDuration;\n delete copy.addedAt;\n\n return copy;\n }\n\n /**\n * Returns the session duration.\n */\n duration() {\n let startDate = new Date(this.startDate);\n let endDate = new Date(this.endDate);\n // drop milliseconds to make consistent with backend\n let duration = Math.floor((endDate.getTime() - startDate.getTime()) / 1000);\n const [minutes, seconds] = getMinutesAndSecondsFromSeconds(duration);\n return tr(\"Common.DurationWithValues.minutesSecondsDisplayWithLegends\", {\n minutes: minutes,\n seconds: seconds,\n });\n }\n\n /**\n * Returns the activity results grouped by the activityname\n */\n getGroupedActivityResults() {\n const groupedResults = groupBy(this.results, \"activityId\");\n // Filter and map the object (We want to have an array)\n // Reduce is used to map and filter the object\n return Object.values(groupedResults).reduce(function (\n result,\n activityResults\n ) {\n // Get the first result\n const firstResult = activityResults[Object.keys(activityResults)[0]];\n\n // Remove all skipped activities from the results array\n activityResults = activityResults.filter(\n (activityResult) => !activityResult.skipped\n );\n\n // Only add this object if there is at least one activity (We dont want to show activities with skipped sessions)\n if (activityResults.length > 0) {\n result.push({\n activityId: firstResult.activityId,\n activityName: firstResult.activityName,\n movementName: firstResult.movementName,\n activityResults: activityResults,\n });\n }\n\n return result;\n },\n []);\n }\n\n /**\n * Returns the activities count\n */\n getActivitiesCount() {\n return this.results.length;\n }\n\n /**\n * Returns the not skipped sessions count\n */\n getNotSkippedSessionsCount() {\n return this.results.filter((result) => !result.skipped).length;\n }\n\n /**\n * Returns the total active training time (Sum up of all active training times)\n */\n getTotalActiveTrainingTime() {\n const totalActiveTrainingTimeSeconds = this.results.reduce(\n (prev, current) => prev + current.activeTrainingTimeSeconds,\n 0\n );\n return getAdaptiveTranslatedTimeFromSeconds(totalActiveTrainingTimeSeconds);\n }\n\n /**\n * Returns the total duration (Sum up of all durations)\n */\n getTotalDuration() {\n const totalDurationSeconds = this.results.reduce((prev, current) => {\n let currentValue =\n current.dosageKind === DosageKind.LOGIC // For logic dosage kind activities (Mind4 and Stardust), the duration is set to the active training time\n ? current.activeTrainingTimeSeconds\n : current.durationSeconds;\n return prev + currentValue;\n }, 0);\n return getAdaptiveTranslatedTimeFromSeconds(totalDurationSeconds);\n }\n\n /**\n * Returns the completed activities percentage (adherence)\n */\n getCompletedActivities() {\n const totalCount = this.results.length;\n\n const completedCount = this.completionCount;\n\n if (!completedCount) {\n return 0;\n }\n\n return Math.floor((completedCount / totalCount) * 100);\n }\n\n /**\n * Returns the translated supervised session type\n */\n translatedSupervisedSessionType() {\n let sessionType = lowerFirst(this.supervisionMode);\n return tr(`Common.Session.SessionTypes.${sessionType}`);\n }\n\n isSessionUnsupervised() {\n return this.supervisionMode === SessionSupervisionMode.Unsupervised;\n }\n\n isPrivateDeviceMode() {\n return this.deviceMode.toLowerCase() === \"private\";\n }\n\n showPatientStateInfo(sessionReview) {\n return (\n sessionReview.PreMoodAnswer ||\n sessionReview.PostMoodAnswer ||\n sessionReview.BorgAnswer\n );\n }\n\n /**\n * Provides soap report data as formatted text.\n */\n getSoapReportAsText(sessionReview) {\n let tb = new TextBuilder();\n\n // General\n // Create title\n let reportTitle = `${tr(\n \"TherapistPatientManagementPage.ReviewPage.sessionReport\"\n )}\\t${this.startDateOffset.formatToDDMMMYYYY} - ${\n this.startDateOffset.formatToHmm\n }-${this.endDateOffset.formatToHmmZ(true)}`;\n if (!this.endDateOffset.isOffsetSameAsLocale) {\n reportTitle = `${reportTitle}\\n\\t\\t\\t${formatToDDMMMYYYY(\n this.startDateOffset.localeDateTime\n )} - ${formatToHmm(this.startDateOffset.localeDateTime)}-${formatToHmm(\n this.endDateOffset.localeDateTime\n )} (${tr(\"Common.Timezone.Profile.yourTime\")})`;\n }\n tb.addTitle(reportTitle);\n\n if (this.patientProfile != null) {\n tb.addResult(\n tr(\"Common.Profile.fullName\"),\n this.patientProfile.displayedName\n );\n }\n tb.addResult(\n tr(\"TherapistPatientManagementPage.ReviewPage.duration\"),\n this.duration()\n );\n if (this.therapistProfile != null) {\n tb.addResult(\n tr(\"TherapistPatientManagementPage.ReviewPage.SessionReport.therapist\"),\n this.therapistProfile.displayedName\n );\n }\n tb.addResult(\n tr(\"TherapistPatientManagementPage.ReviewPage.sessionType\"),\n this.translatedSupervisedSessionType()\n );\n\n // Subjective\n if (\n this.soapData.subjective.text ||\n this.showPatientStateInfo(sessionReview)\n ) {\n tb.addTitle(tr(\"TherapistPatientManagementPage.ReviewPage.subjective\"));\n if (this.showPatientStateInfo(sessionReview)) {\n tb.addSubTitle(\n tr(\n \"TherapistPatientManagementPage.ReviewPage.selfReportedPatientState\"\n ) + \"*\"\n );\n tb.addResult(\n tr(\"Common.PatientState.preProgramMood\"),\n sessionReview.PreMoodAnswer == null\n ? \"--\"\n : sessionReview.PreMoodAnswer.skipped\n ? tr(`Common.PatientState.skipped`)\n : sessionReview.PreMoodAnswer.value.answer +\n \" / 5 (\" +\n tr(\n `Common.PatientState.Mood.${sessionReview.PreMoodAnswer.value.MoodValue}`\n ) +\n \")\"\n );\n tb.addResult(\n tr(\"Common.PatientState.postProgramMood\"),\n sessionReview.PostMoodAnswer == null\n ? \"--\"\n : sessionReview.PostMoodAnswer.skipped\n ? tr(`Common.PatientState.skipped`)\n : sessionReview.PostMoodAnswer.value.answer +\n \" / 5 (\" +\n tr(\n `Common.PatientState.Mood.${sessionReview.PostMoodAnswer.value.MoodValue}`\n ) +\n \")\"\n );\n tb.addResult(\n tr(\"Common.PatientState.borgRpe\"),\n sessionReview.BorgAnswer == null\n ? \"--\"\n : sessionReview.BorgAnswer.skipped\n ? tr(`Common.PatientState.skipped`)\n : sessionReview.BorgAnswer.value.answer +\n \" / 10 (\" +\n tr(\n `Common.PatientState.Borg.${sessionReview.BorgAnswer.value.BorgValue}`\n ) +\n \")\"\n );\n }\n\n if (this.soapData.subjective.text) {\n tb.addSubTitle(tr(\"Common.therapistNote\"));\n tb.addLine(this.soapData.subjective.text);\n tb.addLine(this.soapData.subjective.translatedLatestEdit());\n }\n }\n\n // Objective\n tb.addTitle(tr(\"TherapistPatientManagementPage.ReviewPage.objective\"));\n if (this.isSessionUnsupervised()) {\n // Unsupervised session\n const activitiesPerformed =\n this.getActivitiesCount() > 0 ? this.getNotSkippedSessionsCount() : 0;\n tb.addResult(\n tr(\"TherapistPatientManagementPage.ReviewPage.activitiesOverPlanned\"),\n `${activitiesPerformed} / ${this.getActivitiesCount()}`\n );\n tb.addResult(\n tr(\n \"TherapistPatientManagementPage.ReviewPage.totalActiveTrainingTimeOverPlanned\"\n ),\n `${this.getTotalActiveTrainingTime()} / ${this.getTotalDuration()}`\n );\n } else {\n // (Remotely) supervised session\n const activitiesPerformed =\n this.getActivitiesCount() > 0 ? this.getNotSkippedSessionsCount() : 0;\n tb.addResult(\n tr(\"TherapistPatientManagementPage.ReviewPage.activities\"),\n activitiesPerformed\n );\n tb.addResult(\n tr(\"TherapistPatientManagementPage.ReviewPage.totalActiveTrainingTime\"),\n this.getTotalActiveTrainingTime()\n );\n }\n\n tb.addLine(\"\");\n for (let activity of this.getGroupedActivityResults()) {\n tb.addResult(activity.activityName, activity.movementName);\n for (let result of activity.activityResults) {\n tb.addResult(\n result.startOffset.formatToHHmmZ(),\n tr(\"TherapistPatientManagementPage.ReviewPage.ActivityReport.level\", {\n level: result.level,\n })\n );\n tb.addResult(\n tr(\"TherapistPatientManagementPage.ReviewPage.activeTrainingTime\"),\n result.getActiveTrainingTime()\n );\n tb.addResult(\n tr(\"TherapistPatientManagementPage.ReviewPage.scheduledTrainingTime\"),\n result.getDuration()\n );\n tb.addResult(\n tr(\"TherapistPatientManagementPage.ReviewPage.activeSide\"),\n result.translatedActiveSide()\n );\n if (result.showScore) {\n tb.addResult(\n tr(\"TherapistPatientManagementPage.ReviewPage.score\"),\n tr(\"Common.Units.percentageDisplay\", { percentage: result.score })\n );\n }\n\n // Add compensation percentage and duration if provided\n let compensationResult = result.compensationPercentage();\n if (\n result.compensationMovements.length > 0 ||\n result.compensationDuration > 0 ||\n result.hasCompensationDetails()\n ) {\n tb.addResult(tr(\"Common.Activity.compensation\"), compensationResult);\n }\n if (result.hasCompensationDetails()) {\n for (let compResult of result.compensationFeedbackResults) {\n for (let detail of compResult.details) {\n if (detail.duration > 0) {\n tb.addResult(\n tr(\n `TherapistPatientManagementPage.ReviewPage.ActivityReportResult.Compensators.${compResult.id}.${detail.name}`\n ),\n detail.translatedDetailDuration()\n );\n }\n }\n }\n }\n\n if (result.assists && result.assists !== \"none\") {\n tb.addResult(\n tr(\n \"TherapistPatientManagementPage.TherapyPlanPage.TherapyPlan.Activity.assists\"\n ),\n result.translatedAssists()\n );\n }\n if (result.challenges && result.challenges !== \"none\") {\n tb.addResult(\n tr(\n \"TherapistPatientManagementPage.TherapyPlanPage.TherapyPlan.Activity.challenges\"\n ),\n result.translatedChallenges()\n );\n }\n\n tb.addLine(\"\");\n }\n }\n\n // Assessment\n if (this.soapData.assessment.text) {\n tb.addTitle(tr(\"TherapistPatientManagementPage.ReviewPage.assessments\"));\n tb.addLine(this.soapData.assessment.text);\n tb.addLine(this.soapData.assessment.translatedLatestEdit());\n }\n\n // Plan\n if (this.soapData.plan.text) {\n tb.addTitle(tr(\"TherapistPatientManagementPage.ReviewPage.plan\"));\n tb.addLine(this.soapData.plan.text);\n tb.addLine(this.soapData.plan.translatedLatestEdit());\n }\n\n // N.B. for patient state\n if (this.showPatientStateInfo(sessionReview)) {\n tb.addLine(\n \"\\n\\n* \" +\n tr(\n \"TherapistPatientManagementPage.ReviewPage.selfReportedPatientStateExplanation1\"\n )\n );\n tb.addLine(\n tr(\n \"TherapistPatientManagementPage.ReviewPage.selfReportedPatientStateExplanation2\"\n )\n );\n tb.addLine(\n tr(\n \"TherapistPatientManagementPage.ReviewPage.selfReportedPatientStateExplanation3\"\n )\n );\n tb.addLine(\n tr(\n \"TherapistPatientManagementPage.ReviewPage.selfReportedPatientStateExplanation4\"\n )\n );\n tb.addLine(\n tr(\n \"TherapistPatientManagementPage.ReviewPage.selfReportedPatientStateExplanation5\"\n )\n );\n }\n\n return tb.text;\n }\n\n // Network functions\n\n /**\n * Get session report for a specific session id\n * @param {string} sessionId The session id\n */\n static async getSessionReport(sessionId) {\n return await activityApi.get(`session/id/${sessionId}`).then((response) => {\n return new SessionReport(response.data.result);\n });\n }\n\n static async saveSessionReport(sessionReport) {\n return await activityApi\n .put(`session/id/${sessionReport.id}`, sessionReport)\n .then((response) => {\n return new SessionReport(response.data.result);\n });\n }\n}\n","export class SiteSAMLParameters {\n constructor(other) {\n if (other) {\n this.isEnabled = other.isEnabled || false;\n this.customPortalURLSuffix = other.customPortalURLSuffix || \"\";\n this.additionalCustomPortalURLSuffix =\n other.additionalCustomPortalURLSuffix || [];\n this.customServiceProviderName = other.customServiceProviderName || \"\";\n this.idpRedirectionURL = other.idpRedirectionURL || \"\";\n this.logoutURL = other.logoutURL || \"\";\n this.identityProviderCertificate =\n other.identityProviderCertificate || \"\";\n this.canSupertherapistAdministerSAML =\n other.canSupertherapistAdministerSAML || false;\n this.enforceSAMLByDefault = other.enforceSAMLByDefault || false;\n } else {\n this.isEnabled = false;\n this.customServiceProviderName = \"\";\n this.customPortalURLSuffix = \"\";\n this.additionalCustomPortalURLSuffix = [];\n this.idpRedirectionURL = \"\";\n this.logoutURL = \"\";\n this.identityProviderCertificate = \"\";\n this.canSupertherapistAdministerSAML = false;\n this.enforceSAMLByDefault = false;\n }\n }\n}\n\nexport class SitePasswordParameters {\n constructor(params) {\n if (params) {\n this.isExpirationEnabled = params.isExpirationEnabled || false;\n this.expirationInDays = params.expirationInDays || 365;\n this.notificationBeforeExpirationInDays =\n params.notificationBeforeExpirationInDays || 30;\n } else {\n this.isExpirationEnabled = false;\n this.expirationInDays = 365;\n this.notificationBeforeExpirationInDays = 30;\n }\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport Customer, { customerKinds } from \"@/models/Customer.model\";\nimport Profile from \"@/models/Profile.model\";\nimport SiteUnit from \"@/models/SiteUnit.model\";\nimport {\n SiteSAMLParameters,\n SitePasswordParameters,\n} from \"@/models/SiteParameters.model\";\nimport { defaultTimezoneId } from \"@/models/Timezone.model\";\nimport { getDropdownEntries } from \"@/utils/dropdown\";\nimport { isEntityContainsAllTerms, tidySearchTerm } from \"@/utils/filters\";\nimport { userApi, notifyError } from \"@/services/api\";\n\nexport const siteKinds = Object.freeze({\n payingCustomer: \"PayingCustomer\",\n household: \"Household\",\n productEvaluation: \"ProductEvaluation\",\n demo: \"Demo\",\n fake: \"Fake\",\n});\n\nexport default class Site extends Model {\n static entity = \"sites\";\n\n static fields() {\n return {\n id: this.attr(null), // Primary key\n name: this.attr(null),\n kind: this.attr(null),\n samlParameters: this.attr(new SiteSAMLParameters()),\n passwordParameters: this.attr(new SitePasswordParameters()),\n customers: this.hasMany(Customer, \"siteId\"),\n profiles: this.hasMany(Profile, \"siteId\"),\n siteUnits: this.hasMany(SiteUnit, \"siteId\"),\n timeZoneId: this.attr(null),\n };\n }\n\n /**\n * Returns the timezone used for the Site.\n * If no timezone is set, fallback on UTC\n * @returns {string|*}\n */\n get validTimezone() {\n return this.timeZoneId ?? defaultTimezoneId;\n }\n\n get PatientCustomers() {\n return this.customers.filter(\n (c) => c.kind === customerKinds.patientCustomer\n );\n }\n // customer kind other than patientCustomer\n get OtherCustomers() {\n return this.customers.filter(\n (c) => c.kind !== customerKinds.patientCustomer\n );\n }\n\n // Network functions\n\n static get(signal) {\n return this.api().get(\"/site\", { dataKey: \"result\", signal });\n }\n\n static async getById(id) {\n return await this.api().get(\"/site/id/\" + id, { dataKey: \"result\" });\n }\n\n static async post(newSite) {\n return this.api().post(\"/site\", newSite, { dataKey: \"result\" });\n }\n\n static async remove(site) {\n return this.api().delete(\"/site/\" + site.id, {\n delete: site.id,\n dataKey: \"result\",\n });\n }\n\n static async put(updatedSite) {\n // Let's strip the customer and profiles data\n let updatedSiteCopy = JSON.parse(JSON.stringify(updatedSite));\n updatedSiteCopy.customer = null;\n updatedSiteCopy.profiles = [];\n updatedSiteCopy.siteUnits = [];\n return this.api().put(\"/site/\" + updatedSiteCopy.id, updatedSiteCopy, {\n dataKey: \"result\",\n });\n }\n\n /**\n * Get list of users that are not in any site unit\n * @param siteId\n * @returns the list of users that are not in any site unit\n */\n static async getUnassignedUsers(siteId, signal) {\n return await userApi\n .get(`site-unit-assignment/site/${siteId}/unassigned-users`, { signal })\n .then((response) => {\n return response.data.result || [];\n })\n .catch((error) => {\n notifyError(error);\n return [];\n });\n }\n\n /**\n * Update SAML parameters as Site manager or therapist\n * @param updatedSAMLParameters\n * Updates site data as a response and update the local storage accordingly.\n */\n static async updateSAMLParameters(updatedSAMLParameters) {\n return this.api().put(\"/site/saml-parameters\", updatedSAMLParameters, {\n dataKey: \"result\",\n });\n }\n\n static async updatePasswordParameters(updatedParameters) {\n return this.api().put(\"/site/password-parameters\", updatedParameters, {\n dataKey: \"result\",\n });\n }\n\n static getSiteKindList() {\n return getDropdownEntries(siteKinds, \"AdminPages.Site.Kind\");\n }\n\n /**\n * Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n let fields = [this.kind];\n if (this.name) {\n fields.push(tidySearchTerm(this.name));\n }\n if (this.id) {\n fields.push(this.id);\n }\n return fields;\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport Site from \"@/models/Site.model\";\nimport { isEntityContainsAllTerms } from \"@/utils/filters\";\n\nexport default class SiteUnit extends Model {\n static entity = \"siteUnits\";\n\n static fields() {\n return {\n id: this.attr(null),\n site: this.belongsTo(Site, \"siteId\"),\n siteId: this.attr(null),\n name: this.attr(null),\n timeZoneId: this.attr(null),\n hasCurrentUserEditRights: this.attr(false),\n userCount: this.attr(0),\n };\n }\n\n // Network functions\n static async get() {\n return await this.api().get(\"/site-unit\", { dataKey: \"result\" });\n }\n\n static async post(newSiteUnit) {\n return await this.api().post(\"/site-unit\", newSiteUnit, {\n dataKey: \"result\",\n });\n }\n\n static async put(updatedUnit) {\n return await this.api().put(`/site-unit/${updatedUnit.id}`, updatedUnit, {\n dataKey: \"result\",\n });\n }\n\n static async remove(siteUnit) {\n return await this.api().delete(\"/site-unit/\" + siteUnit.id, {\n delete: siteUnit.id,\n dataKey: \"result\",\n });\n }\n\n /**\n * Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n let fields = [this.name];\n return fields;\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n if (!this.entityFieldsToSearchInto.length) {\n return false;\n }\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n}\n","import { Model } from \"@vuex-orm/core\";\n\nexport const therapeuticGoalMaxLength = 1000;\n\nexport default class TherapeuticGoal extends Model {\n static entity = \"therapeuticGoal\";\n static primaryKey = \"patientUsername\";\n\n static fields() {\n return {\n therapistUsername: this.attr(null),\n patientUsername: this.attr(null),\n goal: this.attr(null),\n addedAtUtc: this.attr(null),\n };\n }\n\n /**\n * Fetch therapeutic goal from companion for a given patient.\n * @param {string} username The username\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async fetchTherapeuticGoalForPatient(username, signal) {\n return await this.api()\n .get(`therapeutic-goal/patient/${username}`, {\n dataTransformer: (response) => {\n return response?.data?.result || {};\n },\n signal,\n })\n .then(() => {\n return TherapeuticGoal.query().find(username) ?? null;\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Returns the therapeutic goal for the given patient from the store or fetch it from companion.\n * @param {string} username The username\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async getTherapeuticGoalForPatient(username, signal) {\n const tg = TherapeuticGoal.query().find(username);\n if (tg) {\n return tg;\n } else {\n return await this.fetchTherapeuticGoalForPatient(username, signal);\n }\n }\n\n /**\n * Post a new therapeutic goal for a patient.\n * @param {TherapeuticGoal} newTherapeuticGoal The therapeutic goal object to add\n */\n static async postTherapeuticGoalForPatient(newTherapeuticGoal) {\n return this.api()\n .post(\"therapeutic-goal\", newTherapeuticGoal, {\n dataKey: \"result\",\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport i18n from \"@/i18n\";\nimport store from \"@/store\";\nimport { isEntityContainsAllTerms, tidySearchTerm } from \"@/utils/filters\";\n\nexport const defaultTimezoneId = \"UTC\";\n\nexport default class Timezone extends Model {\n static entity = \"timezones\";\n // Uses one single fetching instance for timezones\n static fetchingInstance = null;\n\n static fields() {\n return {\n id: this.attr(null),\n displayName: this.attr(null),\n baseUtcOffset: this.attr(null),\n supportsDaylightSavingTime: this.attr(null),\n };\n }\n\n /**\n * @return The displayName or the id if display name is empty.\n */\n get name() {\n return this.displayName || this.id;\n }\n\n /**\n * @return Entity fields to search into\n */\n get entityFieldsToSearchInto() {\n return [tidySearchTerm(this.id), tidySearchTerm(this.displayName)];\n }\n\n /**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\n isEntityCorrespondingTo(searchTerms) {\n return isEntityContainsAllTerms(this.entityFieldsToSearchInto, searchTerms);\n }\n\n /**\n * Fetches timezones from the server.\n * @param {AbortSignal} signal\n * @returns axios response schema with data: { result: [timezones] }\n */\n static async fetchTimezonesAsync(signal) {\n const currentLanguage = store.getters[\"Language/language\"];\n if (this.fetchingInstance !== null) {\n return await this.fetchingInstance;\n }\n this.fetchingInstance = this.api()\n .get(\"/timezone\", { dataKey: \"result\", signal })\n .finally(() => {\n this.fetchingInstance = null;\n });\n return await this.fetchingInstance;\n }\n\n /**\n * Returns timezones from the store and fetches them if they're not there.\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async getAllTimezones(signal) {\n let timezones = Timezone.all();\n\n // Verify if the last time we fetched data, it was in the same language\n // Also sometimes it has 1 or 2 time zones only, then force to fetch them all.\n if (timezones.length < 10) {\n return await this.fetchTimezonesAsync(signal).then(() => {\n return Timezone.all();\n });\n }\n\n return timezones;\n }\n\n /**\n * Returns timezones as objects from the store or fetches them if they're not there.\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async getTimezonesList(signal) {\n return await Timezone.getAllTimezones(signal).then((timezones) => {\n let entries = {};\n // Adds not set value\n entries[\"undefined\"] = new Timezone({\n id: \"\",\n displayName: i18n.t(\"Common.notSet\"),\n });\n\n // Appends all the timezones\n timezones.forEach((tz) => {\n entries[tz.id] = tz;\n });\n\n return entries;\n });\n }\n\n /**\n * Returns a valid timezone info for a profiles.\n * @param {string} username The username\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async getTimeZoneInfoFromUsername(username, signal) {\n return await this.api()\n .get(`profile/${username}/timezone`, {\n dataKey: \"result\",\n signal,\n })\n .then((response) => {\n return response.response.data.result;\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport { parseISO } from \"date-fns\";\nimport Asset from \"@/models/Asset.model\";\nexport default class UserSession extends Model {\n static entity = \"usersessions\";\n\n static fields() {\n return {\n id: this.attr(null),\n mmid: this.attr(null),\n startDate: this.attr(null),\n endDate: this.attr(null),\n hasBeenPerformedOffline: this.attr(null),\n deviceId: this.attr(null),\n deviceSoftwareVersion: this.attr(null),\n productKind: this.attr(null),\n asset: this.hasOne(Asset, \"deviceId\", \"deviceId\"),\n };\n }\n\n get StartDate() {\n return this.startDate ? parseISO(this.startDate) : null;\n }\n get EndDate() {\n return this.endDate ? parseISO(this.endDate) : null;\n }\n\n static get(fromDate, toDate) {\n return this.api().get(\"/usersession\", {\n dataKey: \"result\",\n params: {\n fromDate: fromDate,\n toDate: toDate,\n },\n });\n }\n\n static post(newUserSession) {\n return this.api().post(\"/usersession\", newUserSession, {\n dataKey: \"result\",\n });\n }\n}\n","import i18n from \"@/i18n\";\nimport { Model } from \"@vuex-orm/core\";\nimport Site from \"@/models/Site.model\";\nimport Profile from \"@/models/Profile.model\";\nimport { formatISO9075, parseISO, isSameDay } from \"date-fns\";\nimport {\n formatToDDMMM,\n formatToDDMMMYYYYHmm,\n formatToHHmm,\n} from \"@/utils/date\";\nimport { getMinutesAndSecondsFromSeconds } from \"@/utils/duration\";\nimport { notifyError, userApi } from \"@/services/api\";\n\nexport const VideoProvider = Object.freeze({\n Zoom: \"Zoom\",\n Vidyo: \"Vidyo\",\n});\n\nexport default class VideoMeeting extends Model {\n static entity = \"videomeetings\";\n\n static fields() {\n return {\n id: this.attr(\"\"), // Primary key\n therapistUsername: this.attr(null),\n therapistDisplayName: this.attr(null),\n patientUsername: this.attr(null),\n siteId: this.attr(null),\n site: this.belongsTo(Site, \"siteId\"),\n videoProvider: this.attr(VideoProvider.Zoom),\n videoConferencingLink: this.attr(null),\n startDateTimeUTC: this.attr(null),\n endDateTimeUTC: this.attr(null),\n hasBeenAcceptedByPatient: this.attr(false),\n hasBeenDeclinedByPatient: this.attr(false),\n lastPatientUpdateUTC: this.attr(null),\n hasBeenCancelledByTherapist: this.attr(false),\n hasBeenClosedByTherapist: this.attr(false),\n cancellationDateUTC: this.attr(null),\n fromMeetingRequestId: this.attr(null),\n mutualParticipationSeconds: this.attr(null),\n therapist: this.belongsTo(Profile, \"therapistUsername\", \"userName\"),\n patient: this.belongsTo(Profile, \"patientUsername\", \"userName\"),\n };\n }\n\n get IsJoinable() {\n return !this.hasBeenDeclinedByPatient && !this.hasBeenCancelledByTherapist;\n }\n\n get StartDateTimeUTC() {\n return this.startDateTimeUTC ? parseISO(this.startDateTimeUTC) : null;\n }\n set StartDateTimeUTC(value) {\n this.startDateTimeUTC = value.toISOString();\n }\n\n get EndDateTimeUTC() {\n return this.endDateTimeUTC ? parseISO(this.endDateTimeUTC) : null;\n }\n set EndDateTimeUTC(value) {\n this.endDateTimeUTC = value.toISOString();\n }\n\n get LastPatientUpdateUTC() {\n return this.lastPatientUpdateUTC\n ? parseISO(this.lastPatientUpdateUTC)\n : null;\n }\n set LastPatientUpdateUTC(value) {\n this.lastPatientUpdateUTC = formatISO9075(value);\n }\n\n get CancellationDateUTC() {\n return this.cancellationDateUTC ? parseISO(this.cancellationDateUTC) : null;\n }\n set CancellationDateUTC(value) {\n this.cancellationDateUTC = formatISO9075(value);\n }\n\n get MeetingAttendanceStatus() {\n if (\n this.mutualParticipationSeconds == null ||\n this.mutualParticipationSeconds < 0.1\n ) {\n return i18n.t(\"TherapistTeleRehabPage.Meeting.didNotOccur\");\n }\n\n const [minutes, seconds] = getMinutesAndSecondsFromSeconds(\n this.mutualParticipationSeconds\n );\n\n return i18n.t(\"TherapistTeleRehabPage.Meeting.didOccur\", {\n minutes: minutes,\n seconds: seconds,\n });\n }\n\n get MeetingStatus() {\n // We first check whether the meeting is canceled.\n if (this.hasBeenCancelledByTherapist) {\n if (this.CancellationDateUTC) {\n return i18n.t(\"ConferencePage.Video.Meeting.therapistCancelledAt\", {\n date: formatToDDMMMYYYYHmm(this.CancellationDateUTC),\n });\n }\n return i18n.t(\"ConferencePage.Video.Meeting.therapistCancelled\");\n }\n\n if (this.hasBeenDeclinedByPatient) {\n if (this.LastPatientUpdateUTC) {\n return i18n.t(\"ConferencePage.Video.Meeting.patientDeclinedAt\", {\n date: formatToDDMMMYYYYHmm(this.LastPatientUpdateUTC),\n });\n }\n return i18n.t(\"ConferencePage.Video.Meeting.patientDeclined\");\n }\n\n return \"\";\n }\n\n get DidOccur() {\n return (\n !this.hasBeenDeclinedByPatient &&\n !this.hasBeenCancelledByTherapist &&\n this.mutualParticipationSeconds >= 0.1\n );\n }\n\n get DidNotOccur() {\n return (\n this.hasBeenDeclinedByPatient ||\n this.hasBeenCancelledByTherapist ||\n this.mutualParticipationSeconds < 0.1\n );\n }\n\n /**\n * Returns the formatted meeting duration in the user locale.\n * E.g.: 12:00 - 13:00\n * Indicates the end date if not on the same day (can happen when the meeting was created in another timezone)\n * E.g. of a meeting on the 13 oct: 23:00 - 2:00 (14 oct.)\n * @return {string}\n */\n get durationString() {\n // Indicates the end day if the date is not the same than the beginning date's\n let endDate = isSameDay(this.StartDateTimeUTC, this.EndDateTimeUTC)\n ? \"\"\n : ` (${formatToDDMMM(this.EndDateTimeUTC)})`;\n return `${formatToHHmm(this.StartDateTimeUTC)} - ${formatToHHmm(\n this.EndDateTimeUTC\n )}${endDate}`;\n }\n\n /*\n * Methods\n */\n AreParticipantsPresent = (participants) => {\n return (\n participants.includes(this.therapistUsername) &&\n participants.includes(this.patientUsername)\n );\n };\n\n /*\n * Basic CRUD ORM methods\n */\n\n /**\n * Get video meetings for current user site\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async getAndRefreshForCurrentUserSite(signal) {\n return await this.api().get(`/videomeeting/site`, {\n dataKey: \"result\",\n persistBy: \"create\",\n signal,\n });\n }\n\n static async getForCurrentUser() {\n return await this.api().get(`/videomeeting/`, {\n dataKey: \"result\",\n });\n }\n\n static async getForTherapist(therapistUsername) {\n return await this.api().get(\n `/videomeeting/therapist/${therapistUsername}`,\n {\n dataKey: \"result\",\n }\n );\n }\n\n static async getForPatient(patientUsername) {\n return await this.api().get(`/videomeeting/patient/${patientUsername}`, {\n dataKey: \"result\",\n });\n }\n\n static async post(newVideoMeeting) {\n return await this.api().post(\"/videomeeting\", newVideoMeeting, {\n dataKey: \"result\",\n });\n }\n\n static async put(updatedVideoMeeting) {\n return await this.api().put(\n `/videomeeting/${updatedVideoMeeting.id}`,\n updatedVideoMeeting,\n {\n dataKey: \"result\",\n }\n );\n }\n\n static async remove(videoMeeting) {\n return await this.api().delete(`/videomeeting/${videoMeeting.id}`, {\n delete: videoMeeting.id,\n dataKey: \"result\",\n });\n }\n\n // Specific operations\n static async cancelVideoMeeting(videoMeeting) {\n return await this.api().post(\n `/videomeeting/${videoMeeting.id}/cancel`,\n null,\n {\n dataKey: \"result\",\n }\n );\n }\n\n static async rescheduleVideoMeeting(videoMeeting) {\n return await this.api().post(\n `/videomeeting/${videoMeeting.id}/reschedule`,\n videoMeeting,\n { dataKey: \"result\" }\n );\n }\n\n static async getMeetingJoiningInfo(meetingId) {\n return userApi\n .get(`videomeeting/${meetingId}/join-info`)\n .then((response) => {\n return response.data.result;\n })\n .catch((error) => {\n notifyError(error);\n return Promise.reject(error);\n });\n }\n\n static async logParticipantsChange(meetingId, usernamesList) {\n return userApi\n .post(`videomeeting/${meetingId}/participants`, usernamesList)\n .then((response) => {\n return response.data.result;\n })\n .catch((error) => {\n notifyError(error);\n return Promise.reject(error);\n });\n }\n\n static async closeMeeting(meetingId) {\n return userApi\n .post(`videomeeting/${meetingId}/close`)\n .then((response) => {\n return response.data.result;\n })\n .catch((error) => {\n notifyError(error);\n return Promise.reject(error);\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport Profile from \"@/models/Profile.model\";\nimport { parseISO } from \"date-fns\";\n\nexport default class VideoMeetingRequest extends Model {\n static entity = \"videomeetingrequests\";\n\n static fields() {\n return {\n id: this.attr(\"\"),\n patientUsername: this.attr(null),\n addedAtUTC: this.attr(null),\n resolutionState: this.attr(null),\n resolvedAtUTC: this.attr(null),\n message: this.attr(\"\"),\n patient: this.belongsTo(Profile, \"patientUsername\", \"userName\"),\n };\n }\n\n get IsUnresolved() {\n return this.resolutionState == \"Unresolved\";\n }\n\n get AddedAtUTC() {\n return this.addedAtUTC ? parseISO(this.addedAtUTC) : null;\n }\n\n get ResolvedAtUTC() {\n return this.resolvedAtUTC ? parseISO(this.resolvedAtUTC) : null;\n }\n\n /**\n * Get video meeting requests\n * @param {object} options\n * @param {AbortSignal} signal Permits request cancellation support\n */\n static async getAndRefreshAll(options, signal) {\n if (!options) {\n options = {};\n }\n if (options.onlyUnresolved === undefined) {\n options.onlyUnresolved = false;\n }\n\n return await this.api().get(\n `videomeeting-request?onlyUnresolved=${options.onlyUnresolved}`,\n {\n dataKey: \"result\",\n persistBy: \"create\",\n signal,\n }\n );\n }\n\n static async ignore(videoMeetingRequest) {\n return await this.api().post(\n `/videomeeting-request/${videoMeetingRequest.id}/ignore`,\n {},\n {\n dataKey: \"result\",\n }\n );\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport Profile from \"@/models/Profile.model\";\nimport { parseISO } from \"date-fns\";\n\nexport default class WeeklyActiveTrainingTimeGoal extends Model {\n static entity = \"weeklyActiveTrainingTimeGoal\";\n\n static fields() {\n return {\n id: this.attr(null),\n addedAtUtc: this.attr(null),\n validFromDate: this.attr(null),\n patientUsername: this.attr(null),\n therapistUsername: this.attr(null),\n goalInSeconds: this.attr(null),\n };\n }\n\n get AddedAtUtc() {\n return this.addedAtUtc ? new Date(this.addedAtUtc) : null;\n }\n\n get ValidFromDate() {\n return this.validFromDate ? parseISO(this.validFromDate) : null;\n }\n\n get TherapistDisplayName() {\n return Profile.query().find(this.therapistUsername)?.displayedName || \"\";\n }\n\n get GoalInMinutes() {\n return parseInt(this.goalInSeconds / 60);\n }\n\n /**\n * Get weekly ATT goal history for the current patient\n * @param {string} username Patient username\n * @param {AbortSignal} signal\n */\n static async getWeeklyActiveTrainingTimeHistoryAsync(\n username,\n signal = null\n ) {\n return await this.api().get(`/weekly-att/${username}/history`, {\n dataKey: \"result\",\n signal,\n });\n }\n\n /**\n * Get a weekly ATT goal for the current patient\n * Does not save the response to the store\n * @param {string} username Patient username\n * @param {AbortSignal} signal\n */\n static async getNonPersistentWeeklyActiveTrainingTimeGoalAsync(\n username,\n signal = null\n ) {\n return await this.api().get(`weekly-att/${username}`, {\n signal,\n save: false,\n });\n }\n\n /**\n * Post a new weekly activity time goal for the given patient\n * @param patientUsername\n * @param goalInSeconds\n * @param validFromDate\n * @param signal\n */\n static async postWeeklyActivityTimeGoalForPatient(\n patientUsername,\n goalInSeconds,\n validFromDate,\n signal = null\n ) {\n const payload = {\n patientUsername,\n goalInSeconds,\n validFromDate,\n };\n return await this.api().post(`/weekly-att`, payload, {\n dataKey: \"result\",\n signal,\n });\n }\n}\n","import { Model } from \"@vuex-orm/core\";\nimport { format } from \"@/utils/date\";\nimport { parseISO } from \"date-fns\";\n\nexport default class WeeklyActiveTrainingTimeGoalAndCompletion extends Model {\n static entity = \"weeklyActiveTrainingTimeGoalAndCompletion\";\n\n static fields() {\n return {\n validFromDate: this.attr(null),\n validToDate: this.attr(null),\n patientUsername: this.attr(null),\n totalActiveTrainingTime: this.attr(0),\n supervisedActiveTrainingTime: this.attr(0),\n unsupervisedActiveTrainingTime: this.attr(0),\n weeklyActiveTrainingTimeGoal: this.attr(0),\n isGoalSet: this.attr(null),\n daysTrained: this.attr(null),\n };\n }\n\n get FromDate() {\n // N.B.: validFromDate is a Date Only, using parseISO() returns a local date\n // with the day unchanged\n return this.validFromDate ? parseISO(this.validFromDate) : null;\n }\n\n get ToDate() {\n // N.B.: validToDate is a Date Only, using parseISO() returns a local date\n // with the day unchanged\n return this.validToDate ? parseISO(this.validToDate) : null;\n }\n\n /**\n * Fetches computed weekly ATT data for the current patient\n * @param {string} username Patient username\n * @param {Date} from From date\n * @param {Date} to To date\n * @param {boolean} saveData Whether to save the data into the store\n * @param {AbortSignal} signal\n */\n static async fetchComputedWeeklyActiveTrainingTimeForDatesAsync(\n username,\n from,\n to,\n signal = null,\n saveData = true\n ) {\n const fromDate = format(from, \"yyyy-MM-dd\");\n const toDate = format(to, \"yyyy-MM-dd\");\n return await this.api().get(\n `/weekly-att/${username}/compute-sessions?fromDate=${fromDate}&toDate=${toDate}`,\n {\n dataKey: \"result\",\n persistBy: \"create\",\n save: saveData,\n signal,\n }\n );\n }\n}\n","import { getMinutesAndSecondsFromSeconds } from \"@/utils/duration\";\nimport { tr } from \"@/utils/translation\";\n\nexport class CompensationFeedbackResult {\n constructor(result) {\n this.id = result.id;\n this.compensatedDuration = result.compensatedDuration;\n this.details =\n result.details != null\n ? result.details.map((detail) => new CompensationDetails(detail))\n : [];\n }\n\n /**\n * Returns the formatted duration.\n * @return {string}\n */\n translatedDuration() {\n const [minutes, seconds] = getMinutesAndSecondsFromSeconds(\n this.compensatedDuration\n );\n return tr(\"Common.DurationWithValues.minutesSecondsDisplayWithLegends\", {\n minutes: minutes,\n seconds: seconds,\n });\n }\n\n /**\n * Returns whether the compensation details are valid:\n * - at least one details name has a duration > 0\n * @return {boolean}\n */\n hasDetails() {\n if (this.details === null || this.details.length === 0) {\n return false;\n }\n\n return this.details.some(\n (detail) => detail.duration !== null && detail.duration > 0\n );\n }\n}\n\nexport class CompensationDetails {\n constructor(details) {\n this.name = details.name || null;\n this.duration = details.duration || null;\n this.average = details.average || null;\n this.min = details.min || null; // double value, can be \"-Infinity\".\n this.max = details.max || null; // double value, can be \"Infinity\".\n }\n\n /**\n * Returns the formatted duration.\n * @return {string}\n */\n translatedDetailDuration() {\n const clampedDuration = Math.max(1.0, this.duration); // E.g.: Consider 0.3 seconds as 1.0 to display even small values;\n const [minutes, seconds] = getMinutesAndSecondsFromSeconds(\n Math.round(clampedDuration)\n );\n return tr(\"Common.DurationWithValues.minutesSecondsDisplayWithLegends\", {\n minutes: minutes,\n seconds: seconds,\n });\n }\n}\n","import {\n getAdaptiveTranslatedTimeFromSeconds,\n getMinutesFromSeconds,\n} from \"@/utils/duration\";\nimport { clamp } from \"@/utils/math\";\nimport { getDropdownEntries, groupDropdownEntries } from \"@/utils/dropdown\";\nimport { tr } from \"@/utils/translation\";\nimport { CompensationFeedbackResult } from \"@/models/CompensationFeedbackResult.model\";\nimport ActivityDescription from \"@/models/ActivityDescription.model\";\nimport DateTimeOffset from \"@/models/DateTimeOffset.model\";\nimport { DosageKind } from \"@/services/enums\";\nimport BaseActivityResult from \"@/models/activity-result/BaseActivityResult.model\";\n\nexport const assistVariants = [\n \"none\",\n \"sitting\",\n \"sitting-stool\",\n \"sitting-plinth\",\n \"sitting-chair\",\n \"standingFrame\",\n \"parallelBars\",\n \"walkingStick\",\n \"assistanceOfTherapy\",\n \"antiGravityArmSupport\",\n \"therapyRing\",\n \"many\",\n \"selfAssisted\",\n];\n\nexport const challengeVariants = [\n \"none\",\n \"standing\",\n \"wobbleCushionStanding\",\n \"wobbleCushionSitting\",\n \"gymBall\",\n \"therapyStep\",\n \"therapyBand\",\n \"therapyBand-yellow\",\n \"therapyBand-red\",\n \"therapyBand-green\",\n \"therapyBand-blue\",\n \"therapyBand-black\",\n \"weights\",\n \"weight-free\",\n \"weight-wristAnkle\",\n \"weight-bar\",\n \"weight-vest\",\n \"weight-other\",\n \"weightSizes-one\",\n \"weightSizes-two\",\n \"weightSizes-three\",\n \"many\",\n];\n\nexport default class ActivityResult extends BaseActivityResult {\n constructor(activityResult) {\n super(activityResult);\n this.cloudId = activityResult.cloudId;\n this.activityId = activityResult.appId;\n this.ended = activityResult.ended;\n this.endOffset = new DateTimeOffset(activityResult.endOffset);\n this.activeTrainingTimeSeconds =\n activityResult.activeTrainingTime != null\n ? activityResult.activeTrainingTime\n : activityResult.duration;\n this.activeTrainingTime = getMinutesFromSeconds(\n this.activeTrainingTimeSeconds\n );\n this.duration = getMinutesFromSeconds(activityResult.duration);\n this.durationSeconds = activityResult.duration;\n this.activeSide = activityResult.activeSide;\n this.completed = activityResult.completed;\n this.skipped = activityResult.skipped;\n\n this.compensationFeedbackResults =\n activityResult.compensationFeedbackResults != null\n ? activityResult.compensationFeedbackResults.map(\n (result) => new CompensationFeedbackResult(result)\n )\n : [];\n\n let activityDescription = ActivityDescription.query().find(this.activityId);\n // Boolean to display or not the score according to the dosage kind\n this.showScore = activityDescription?.activityOptions?.hasScore;\n // Adds the compensation movement data for session report use.\n this.compensationMovements = activityDescription\n ? activityDescription.compensationMovements\n : [];\n this.activityName = activityDescription ? activityDescription.Name : \"\";\n this.movementName = activityDescription\n ? activityDescription.MovementName\n : \"\";\n this.dosageKind =\n activityDescription?.activityOptions?.dosage?.kind || DosageKind.DURATION;\n }\n\n translatedActiveSide() {\n if (!this.activeSide) {\n return \"--\";\n }\n return tr(`Common.Activity.Sides.${this.activeSide.toLowerCase()}`);\n }\n\n static getAssistsVariantList() {\n const dropdownOptions = getDropdownEntries(\n assistVariants,\n \"Common.Activity.Assists\"\n );\n return groupDropdownEntries(dropdownOptions);\n }\n\n static getChallengesVariantList() {\n const dropdownOptions = getDropdownEntries(\n challengeVariants,\n \"Common.Activity.Challenges\"\n );\n return groupDropdownEntries(dropdownOptions);\n }\n\n /**\n * Returns the formatted active training time.\n * @return {string}\n */\n getActiveTrainingTime() {\n return getAdaptiveTranslatedTimeFromSeconds(this.activeTrainingTimeSeconds);\n }\n\n /**\n * Returns the formatted duration.\n * @return {string}\n */\n getDuration() {\n // For logic dosage kind activities (Mind4 and Stardust), the duration is set to the active training time\n if (this.dosageKind === DosageKind.LOGIC) {\n return getAdaptiveTranslatedTimeFromSeconds(\n this.activeTrainingTimeSeconds\n );\n }\n return getAdaptiveTranslatedTimeFromSeconds(this.durationSeconds);\n }\n\n /**\n * Returns the calculated compensation percentage\n * (compensationduration / activeTrainingTimeSeconds * 100)\n */\n compensationPercentage() {\n let compensationPercent =\n this.activeTrainingTimeSeconds > 0.0\n ? (this.compensationDuration / this.activeTrainingTimeSeconds) * 100.0\n : 0.0;\n let percentageDisplayedResult = clamp(\n Math.round(compensationPercent),\n 0.0,\n 100.0\n );\n\n if (compensationPercent > 0.0 && compensationPercent < 1.0) {\n percentageDisplayedResult = \"<1\";\n }\n\n return tr(\"Common.Units.percentageDisplay\", {\n percentage: percentageDisplayedResult,\n // Fixes the \"<1\" display to not be '<1'\n interpolation: { escapeValue: false },\n });\n }\n\n /**\n * Indicates whether the activity results has some valid compensation details.\n * It also returns false when the compensation feedback result is 'Legacy'\n * @return {boolean}\n */\n hasCompensationDetails() {\n if (this.compensationFeedbackResults == null) {\n return false;\n }\n\n // Do not consider legacy feedback results\n if (\n this.compensationFeedbackResults.some((result) => result.id === \"Legacy\")\n ) {\n return false;\n }\n\n return this.compensationFeedbackResults.some((result) =>\n result.hasDetails()\n );\n }\n}\n","import { tr } from \"@/utils/translation\";\nimport DateTimeOffset from \"@/models/DateTimeOffset.model\";\nimport { parseISO } from \"date-fns\";\nimport { clamp, evenRound } from \"@/utils/math\";\n\nexport default class BaseActivityResult {\n constructor(result) {\n this.id = result.id;\n this.sessionId = result.sessionId || null;\n this.started = result.started || null;\n this.startOffset = new DateTimeOffset(result.startOffset);\n // We mimic c# default rounding behavior and round the midpoint to the closest even number\n this.score =\n Math.round(evenRound(clamp(result.score, 0.0, 1.0), 2) * 100) || 0.0;\n this.level = result.level || 0;\n this.compensationDuration = result.compensationDuration || 0.0;\n this.assists = result.assists || \"none\"; // Permits to get/set an empty value\n this.challenges = result.challenges || \"none\";\n }\n\n /**\n * Returns the translated assist\n */\n translatedAssists() {\n if (!this.assists) {\n return tr(\"Common.Activity.Assists.none\");\n }\n return tr(`Common.Activity.Assists.${this.assists}`);\n }\n\n /**\n * Returns the translated challenge\n */\n translatedChallenges() {\n if (!this.challenges) {\n return tr(\"Common.Activity.Challenges.none\");\n }\n return tr(`Common.Activity.Challenges.${this.challenges}`);\n }\n\n get StartedDate() {\n return this.started ? parseISO(this.started) : null;\n }\n}\n","/**\n * Training material attachment metadata\n */\nexport default class TrainingMaterialAttachment {\n constructor(attachment) {\n this.url = attachment?.url || \"\";\n this.type = attachment?.type;\n this.size = attachment?.size || 0.0;\n this.checksum = attachment?.checksum;\n }\n}\n","import TrainingMaterialAttachment from \"@/models/training-material/TrainingMaterialAttachment.model\";\nimport router from \"@/router/\";\nimport { Model } from \"@vuex-orm/core\";\n\n/**\n * The supported training material kinds, used to build playlists.\n */\nexport const TrainingMaterialKind = Object.freeze({\n OfficeHours: \"OfficeHoursEpisode\",\n ClinicalTips: \"ClinicalTip\",\n MindMotionKeyConcepts: \"MindMotionKeyConcepts\",\n Unsupported: \"Unsupported\", // hidden playlist for unsupported kinds\n});\n\n/**\n * The supported states of a training material\n */\nexport const TrainingMaterialState = Object.freeze({\n New: \"New\",\n Displayed: \"Displayed\",\n Started: \"Started\",\n Viewed: \"Viewed\",\n});\n\n/**\n * The attachment types\n */\nexport const TrainingMaterialAttachmentType = Object.freeze({\n Video: \"Video\",\n PDF: \"PDF\",\n});\n\n/**\n * Therapist training material (mainly videos)\n */\nexport default class TrainingMaterial extends Model {\n static entity = \"trainingMaterial\";\n\n static fields() {\n return {\n id: this.attr(null), // index\n // Can be equal for the same video in different languages\n trainingMaterialId: this.attr(\"\"),\n language: this.attr(\"\"),\n productName: this.attr(\"\"),\n productVersion: this.attr(-1),\n kind: this.attr(TrainingMaterialKind.Unsupported),\n // Order in the playlist\n rank: this.attr(-1),\n title: this.attr(\"\"),\n summary: this.attr(\"\"),\n attachment: this.attr(\n null,\n (element) => new TrainingMaterialAttachment(element)\n ),\n state: this.attr(TrainingMaterialState.New),\n vignetteUrl: this.attr(\"\"),\n tags: this.attr([]),\n };\n }\n\n static goToMaterialByRank(playlistId, rank) {\n router\n .push({\n path: `/training/playlists/${playlistId}/${rank}`,\n })\n .catch(() => {});\n }\n\n /**\n * Returns the list of all training material\n */\n static async fetchAllTrainingMaterials() {\n return this.api().get(\"/training-material\", { dataKey: \"result\" });\n }\n}\n","import Store from \"@/store/\";\nimport { getLanguageCodeFrom } from \"@/utils/locales\";\n\nexport const userRootLocale = () => {\n return getLanguageCodeFrom(Store.getters[\"Language/language\"]);\n};\n\n/**\n * Maps gesture provider messy ids into usable movement ids\n * This should ideally one day be streamlined in the activity definition.\n * @param gestureProviderId\n * @return {string|*}\n */\nexport default function gestureProviderIdToMovementId(gestureProviderId) {\n if (!gestureProviderId) {\n return \"\";\n }\n\n let movementId = gestureProviderId.replace(\"GestureProvider\", \"\");\n\n // Map the \"exceptions\"\n const staticMap = {\n HandsObjectsGrasping: \"HorizontalArmReaching\",\n FakeSteeringWheel: \"SteeringWheel\",\n HandsCoronal: \"VerticalHandsReaching\",\n ShouldersLateralAbdAdd: \"ShoulderAbductionAdduction\",\n ShouldersHorizontalAbdAdd: \"HorizontalShoulderAbductionAdduction\",\n ShouldersFlexionExtension: \"ShoulderFlexionExtension\",\n HandOpenCloseMcpa: \"HandGraspRelease\",\n HandPronationSupination: \"ForearmPronationSupination\",\n IndexThumbPinch: \"FingersPinch\",\n BodyWeightTransfer: \"LateralBodyWeightTransfer\",\n FootStepLateral: \"LateralStep\",\n FootStepForwardBackward: \"ForwardBackwardSteps\",\n TrunkLateralFlexionBodyCentric: \"TrunkLateralFlexion\",\n // Old gesture providers that must be ignored\n // Reference: https://intranet.mindmaze.ch/confluence/pages/viewpage.action?spaceKey=DHT&title=Normalized+distance+traveled\n ArmsUpDown: \"\",\n HandsUp: \"\",\n ShouldersToHandsLateral: \"\",\n FingersFlexionExtension: \"\",\n HandGrabbing: \"\",\n TrunkForwardFlexion: \"\", // Not to confuse with TrunkBackwardForwardFlexion\n KneesFlexionExtension: \"\",\n };\n if (staticMap[movementId] !== undefined) {\n movementId = staticMap[movementId];\n }\n\n return movementId;\n}\n","const storeName = \"_vidyoStore\";\nconst vidyoScript = \"../../../static/VidyoClient.js\";\n\nconst videoMaxes = {\n width: 768,\n height: 432,\n};\n\nconst connectionStatus = {\n disconnected: \"DISCONNECTED\",\n connecting: \"CONNECTING\",\n disconnecting: \"DISCONNECTING\",\n connected: \"CONNECTED\",\n failed: \"FAILED\",\n};\n\nconst libraryStates = {\n notLoaded: \"\",\n ready: \"READY\",\n retrying: \"RETRYING\",\n failed: \"FAILED\",\n failedVersion: \"FAILEDVERSION\",\n notAvailable: \"NOTAVAILABLE\",\n timedout: \"TIMEDOUT\",\n};\n\nexport { storeName, vidyoScript, connectionStatus, libraryStates, videoMaxes };\n","import Store from \"@/store\";\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\nimport {\n getAppInsightCookie,\n removeAppInsightCookie,\n setAppInsightCookie,\n} from \"@/utils/cookies\";\nimport loadConfigData from \"@/services/configJson\";\n\n// See options in: https://github.com/microsoft/ApplicationInsights-JS\nlet appInsights = new ApplicationInsights({\n config: {\n enableAutoRouteTracking: false,\n disableFetchTracking: true,\n disableAjaxTracking: true,\n autoTrackPageVisitTime: true,\n // See: https://github.com/microsoft/ApplicationInsights-JS#ICookieMgrConfig\n cookieCfg: {\n setCookie: (name, value) => {\n setAppInsightCookie(name, value);\n },\n getCookie: (name) => {\n return getAppInsightCookie(name);\n },\n delCookie: (name) => {\n removeAppInsightCookie(name);\n },\n },\n },\n});\n\nloadConfigData().then((configData) => {\n appInsights.config.instrumentationKey =\n configData.AppInsightInstrumentationKey;\n appInsights.loadAppInsights();\n anonymizeInsightsData();\n});\n\nexport function getAppinsightInstance() {\n return appInsights;\n}\n\n/**\n * See: node_modules\\@microsoft\\applicationinsights-core-js\\src\\JavaScriptSDK.Interfaces\\ITelemetryItem.ts\n * for more information on the format.\n * @param name {string} Unique name of the event.\n */\nexport function trackEvent(name) {\n // Send user site id if available\n const siteId = getAuthUserSiteId();\n const customProperties = siteId ? { siteId: siteId } : undefined;\n\n getAppinsightInstance().trackEvent(\n {\n name: name,\n },\n customProperties\n );\n}\n\n/**\n * See: node_modules\\@microsoft\\applicationinsights-common\\src\\Interfaces\\IPageViewTelemetry.ts\n * for more information on the format.\n * @param name {string} Unique name of the page view\n */\nexport function trackPageView(name) {\n let pageViewData = {\n name: name,\n };\n\n // Send user site id if available\n const siteId = getAuthUserSiteId();\n if (siteId) {\n pageViewData.properties = {\n siteId: siteId,\n };\n }\n\n getAppinsightInstance().trackPageView(pageViewData);\n}\n\nfunction getAuthUserSiteId() {\n const siteId = Store.getters[\"Auth/siteId\"];\n\n // Do not return null data or empty guids\n if (!siteId || siteId === \"00000000-0000-0000-0000-000000000000\") {\n return \"\";\n }\n\n return siteId;\n}\n\nfunction anonymizeInsightsData() {\n // Since url contains patient ID, we remove every reference\n appInsights.addTelemetryInitializer((envelope) => {\n if (envelope) {\n if (envelope.baseData) {\n envelope.baseData.refUri = \"\";\n envelope.baseData.uri = \"\";\n envelope.baseData.url = \"\";\n envelope.baseData.PageUrl = \"\";\n }\n if (envelope.data) {\n envelope.data.PageUrl = \"\";\n }\n if (envelope.tags) {\n envelope.tags[\"ai.operation.name\"] = \"\";\n }\n if (envelope.ext && envelope.ext.trace) {\n envelope.ext.trace.name = \"\";\n }\n }\n });\n}\n","/**\n * Return the support routes with the provided route prefix.\n * E.g: /superadmin -> /superadmin/support/contact.\n * This permits to have common components displayed in different layouts\n * without breaking route paths.\n * @param routePrefix {string}\n * @return {[*]}\n */\nexport function getSupportRoutes(routePrefix) {\n return [\n {\n path: `${routePrefix}/support/contact-us`,\n component: () => import(\"@/pages/CommonPages/SupportPage/ContactUs.vue\"),\n meta: {\n requiresAuth: true,\n },\n },\n {\n path: `${routePrefix}/support/faq`,\n component: () =>\n import(\"@/pages/CommonPages/SupportPage/FrequentlyAskedQuestions.vue\"),\n meta: {\n requiresAuth: true,\n },\n },\n {\n path: `${routePrefix}/support/ifu`,\n component: () =>\n import(\"@/pages/CommonPages/SupportPage/InstructionsForUse.vue\"),\n meta: {\n requiresAuth: true,\n },\n },\n\n {\n path: `${routePrefix}/support/privacy-policy`,\n component: () =>\n import(\"@/pages/CommonPages/SupportPage/PrivacyPolicyView.vue\"),\n meta: {\n requiresAuth: true,\n },\n },\n ];\n}\n","import { getSupportRoutes } from \"@/router/supportRoutes\";\n\nconst routePrefix = \"/patient\";\n\nexport default [\n {\n path: routePrefix,\n component: () => import(\"@/pages/PatientPages/PatientHomePage\"),\n meta: {\n requiresPatient: true,\n },\n children: [\n ...getSupportRoutes(routePrefix),\n {\n path: \"\",\n name: \"Patient/Home\",\n redirect: \"/patient/profile\",\n component: () => import(\"@/pages/PatientPages/PatientHomePage/index\"),\n },\n {\n path: \"/patient/profile\",\n name: \"patient-profile\",\n component: () =>\n import(\"@/pages/PatientPages/PatientHomePage/PatientProfile\"),\n },\n ],\n },\n // Teleconsultation part\n {\n path: \"/my-meetings/:meetingId\",\n name: \"Patient/Meeting\",\n component: () => import(\"@/pages/PatientPages/PatientConferencePage\"),\n props: (route) => ({ meetingId: route.params.meetingId }),\n meta: {\n requiresPatient: true,\n },\n },\n];\n","/**\n * Return the profile routes with the provided route prefix.\n * E.g: /superadmin -> /superadmin/profile.\n * This permits to have common components displayed in different layouts\n * without breaking route paths.\n * @param routePrefix {string}\n * @return {[*]}\n */\nexport function getProfileRoutes(routePrefix) {\n return [\n {\n path: `${routePrefix}/profile`,\n component: () => import(\"@/pages/CommonPages/ProfilePage/index.vue\"),\n meta: {\n requiresAuth: true,\n },\n },\n ];\n}\n","export default [\n {\n path: \"/oauth/redirect\",\n name: \"oauth_redirect\",\n component: () => import(\"@/pages/CommonPages/OAuthPages/OAuthRedirect.vue\"),\n props: (route) => ({\n code: route.query.code,\n state: route.query.state,\n }),\n meta: {\n requiresTherapist: true,\n },\n },\n];\n","import { getProfileRoutes } from \"@/router/profileRoutes\";\nimport { getSupportRoutes } from \"@/router/supportRoutes\";\nimport { clearSelectedPatientStoreData } from \"@/store\";\nimport { THERAPIST_ROLE, SITEMANAGER_ROLE } from \"@/services/auth.js\";\nimport oAuthRoutes from \"@/router/oAuthRoutes\";\n\nconst routePrefix = \"/therapist\";\n\nexport default [\n // Default therapist layout\n {\n path: \"/\",\n component: () => import(\"@/pages/TherapistPages/TherapistHomePage\"),\n meta: {\n requiresTherapist: true,\n },\n children: [\n ...getSupportRoutes(routePrefix),\n ...getProfileRoutes(routePrefix),\n {\n path: \"/patient-list\",\n name: \"Therapist/Home\",\n component: () =>\n import(\"@/pages/TherapistPages/TherapistPatientListPage\"),\n beforeEnter: (to, from, next) => {\n // Clears potentially previous patient data present from the stores\n clearSelectedPatientStoreData();\n next();\n },\n props: (route) => ({\n showSuccessModal: route.params.showSuccessModal,\n patientSiteId: route.params.patientSiteId,\n isCreatedUserPasswordSet: route.params.isCreatedUserPasswordSet,\n }),\n },\n {\n path: \"/patient/:username\",\n name: \"Therapist/Patient\",\n redirect: \"/patient/:username/dashboard\",\n component: () =>\n import(\"@/pages/TherapistPages/TherapistPatientManagementPages\"),\n meta: {\n requiresTherapist: true,\n },\n props: (route) => ({\n patientUsername: route.params.username,\n }),\n children: [\n {\n path: \"dashboard\",\n name: \"Therapist/Patient/Dashboard\",\n component: () =>\n import(\n \"@/pages/TherapistPages/TherapistPatientManagementPages/DashboardPage\"\n ),\n props: (route) => ({\n currentUsername: route.params.username,\n openAttGoalModal: route.params.openAttGoalModal,\n }),\n },\n {\n path: \"plan\",\n name: \"Therapist/Patient/Plan\",\n component: () =>\n import(\n \"@/pages/TherapistPages/TherapistPatientManagementPages/TherapyPlanPage\"\n ),\n props: (route) => ({\n currentUsername: route.params.username,\n }),\n },\n {\n path: \"teleconsultation\",\n name: \"Therapist/Patient/Teleconsultation\",\n component: () =>\n import(\n \"@/pages/TherapistPages/TherapistPatientManagementPages/TeleRehabPage/PatientTeleRehab\"\n ),\n props: (route) => ({\n currentUsername: route.params.username,\n }),\n },\n {\n path: \"monitor\",\n name: \"Therapist/Patient/Monitor\",\n component: () =>\n import(\n \"@/pages/TherapistPages/TherapistPatientManagementPages/MonitorPage\"\n ),\n props: (route) => ({\n currentUsername: route.params.username,\n }),\n },\n {\n path: \"review\",\n name: \"Therapist/Patient/Review\",\n component: () =>\n import(\n \"@/pages/TherapistPages/TherapistPatientManagementPages/ReviewPage\"\n ),\n props: (route) => ({\n currentUsername: route.params.username,\n expandSessionList: route.params.expandSessionList,\n }),\n },\n {\n path: \"assessment\",\n name: \"Therapist/Patient/Assessment\",\n component: () =>\n import(\n \"@/pages/TherapistPages/TherapistPatientManagementPages/AssessmentPage\"\n ),\n props: (route) => ({\n currentUsername: route.params.username,\n }),\n },\n {\n path: \"epro\",\n name: \"Therapist/Patient/EPRO\",\n component: () =>\n import(\n \"@/pages/TherapistPages/TherapistPatientManagementPages/EPROPage\"\n ),\n props: (route) => ({\n currentUsername: route.params.username,\n }),\n },\n {\n path: \"profile\",\n name: \"Therapist/Patient/Profile\",\n component: () =>\n import(\n \"@/pages/TherapistPages/TherapistPatientManagementPages/ProfilePage\"\n ),\n props: (route) => ({\n currentUsername: route.params.username,\n }),\n },\n ],\n },\n {\n path: \"/new-patient\",\n name: \"Therapist/AddPatient\",\n component: () =>\n import(\"@/pages/TherapistPages/TherapistAddPatientPage\"),\n props: (route) => ({\n patientSiteId: route.query.patientSiteId,\n nextRoute: route.query.nextRoute,\n }),\n meta: {\n requiresTherapist: true,\n },\n },\n {\n path: \"therapist-admin/site-units/assigned/:siteUnitId/patients/new\",\n component: () =>\n import(\"@/pages/TherapistPages/TherapistAddPatientPage\"),\n props: (route) => ({\n siteUnitId: route.params.siteUnitId,\n }),\n meta: {\n requiresTherapist: true,\n },\n },\n {\n path: \"/epro-patients\",\n name: \"Therapist/EPROPatientList\",\n component: () => import(\"@/pages/TherapistPages/EPROPatientListPage\"),\n meta: {\n requiresTherapist: true,\n },\n },\n {\n path: \"/meetings\",\n name: \"Therapist/Meetings\",\n component: () =>\n import(\"@/pages/TherapistPages/TherapistTeleRehabPage\"),\n meta: {\n requiresTherapist: true,\n },\n beforeEnter: (to, from, next) => {\n // Clears potentially previous patient data present from the stores\n clearSelectedPatientStoreData();\n next();\n },\n },\n {\n path: \"training\",\n name: \"Therapist/TrainingMaterial\",\n component: () =>\n import(\"@/pages/TherapistPages/TherapistTrainingMaterialPages\"),\n meta: {\n requiresTherapist: true,\n },\n redirect: \"/training/playlists\",\n children: [\n {\n path: \"playlists\",\n name: \"Therapist/TrainingMaterial/PlayLists\",\n component: () =>\n import(\n \"@/pages/TherapistPages/TherapistTrainingMaterialPages/TrainingMaterialPlayListPage\"\n ),\n meta: {\n requiresTherapist: true,\n },\n },\n {\n path: \"playlists/:playlistId/:rank\",\n name: \"Therapist/TrainingMaterial/PlayList\",\n component: () =>\n import(\n \"@/pages/TherapistPages/TherapistTrainingMaterialPages/TrainingMaterialViewerPage\"\n ),\n meta: {\n requiresTherapist: true,\n },\n props: (route) => ({\n playlistId: route.params.playlistId,\n rank: route.params.rank,\n }),\n },\n ],\n },\n {\n path: \"templates\",\n name: \"Therapist/Templates\",\n component: () =>\n import(\"@/pages/TherapistPages/TherapistTemplatesPage\"),\n meta: {\n requiresTherapist: true,\n },\n },\n\n // Therapist admin routes\n {\n path: \"therapist-admin/therapists\",\n name: \"TherapistAdmin/Therapists\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/UserListPage\"),\n props: {\n \"user-type\": \"therapist\",\n },\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/therapists/new\",\n name: \"TherapistAdmin/CreateTherapist\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/AddUser\"),\n props: {\n \"user-type\": \"therapist\",\n },\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/therapists/:username\",\n name: \"TherapistAdmin/EditTherapist\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/EditUser\"),\n props: (route) => ({\n username: route.params.username,\n }),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/site-managers\",\n name: \"TherapistAdmin/SiteManagers\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/UserListPage\"),\n props: {\n \"user-type\": \"site\",\n },\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/site-managers/new\",\n name: \"TherapistAdmin/CreateSiteManager\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/AddUser\"),\n props: {\n \"user-type\": \"site\",\n },\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/site-managers/:username\",\n name: \"TherapistAdmin/EditSiteManager\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/EditUser\"),\n props: (route) => ({\n username: route.params.username,\n }),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/archived-users\",\n name: \"TherapistAdmin/ArchivedUsers\",\n component: () =>\n import(\n \"@/pages/SiteManagerPages/SiteManagerHomePage/ArchivedUsersPage.vue\"\n ),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/archived-users/:username\",\n name: \"TherapistAdmin/EditArchivedUser\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/EditUser\"),\n props: (route) => ({\n username: route.params.username,\n }),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/license\",\n name: \"TherapistAdmin/License\",\n component: () =>\n import(\n \"@/pages/SiteManagerPages/SiteManagerHomePage/LicenseOverview\"\n ),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/site-parameters\",\n name: \"TherapistAdmin/SiteManagement/SiteParameters\",\n component: () => import(\"@/pages/SiteManagerPages/SiteParameters\"),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/patient-training-data\",\n name: \"TherapistAdmin/ExportTrainingData\",\n component: () =>\n import(\"@/pages/TherapistPages/AdminPages/PatientTrainingData\"),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/personal-access-token\",\n name: \"TherapistAdmin/SiteManagement/PersonalAccessToken\",\n component: () => import(\"@/pages/SiteManagerPages/PersonalAccessToken\"),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/personal-access-token/new\",\n name: \"TherapistAdmin/SiteManagement/CreatePersonalAccessToken\",\n component: () =>\n import(\n \"@/pages/SiteManagerPages/PersonalAccessToken/AddPersonalAccessToken\"\n ),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n // Site Units\n {\n path: \"therapist-admin/site-units\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteUnitManagementPages/SiteUnitListPage\"\n ),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/site-units/new\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteUnit/AddSiteUnit\"),\n props: (route) => ({ siteId: route.params.siteId }),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/site-units/assigned/:siteUnitId/:tab\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteUnit/EditSiteUnit\"),\n props: (route) => ({\n siteUnitId: route.params.siteUnitId,\n tab: route.params.tab,\n }),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/site-units/assigned/:siteUnitId/:tab/new\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/AddUser\"),\n props: (route) => ({\n \"user-type\":\n route.params.tab === \"therapists\"\n ? THERAPIST_ROLE\n : SITEMANAGER_ROLE,\n siteUnitId: route.params.siteUnitId,\n tab: route.params.tab,\n }),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/site-units/assigned/:siteUnitId/patients/:username\",\n component: () =>\n import(\n \"@/pages/TherapistPages/TherapistPatientManagementPages/ProfilePage\"\n ),\n props: (route) => ({\n siteUnitId: route.params.siteUnitId,\n currentUsername: route.params.username,\n }),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/site-units/assigned/:siteUnitId/:tab/:username\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/EditUser\"),\n props: (route) => ({\n siteUnitId: route.params.siteUnitId,\n tab: route.params.tab,\n username: route.params.username,\n }),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n {\n path: \"therapist-admin/site-units/unassigned/:tab\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteUnit/UnassignedUsersPage\"),\n props: (route) => ({\n tab: route.params.tab,\n unassignedUserIds: route.params.unassignedUserIds,\n }),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n // Site managers, therapists\n {\n path: \"therapist-admin/site-units/unassigned/:tab/:username\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/EditUser\"),\n props: (route) => ({\n tab: route.params.tab,\n username: route.params.username,\n }),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n // Patients\n {\n path: \"therapist-admin/site-units/unassigned/:tab/:username/profile\",\n component: () =>\n import(\n \"@/pages/TherapistPages/TherapistPatientManagementPages/ProfilePage\"\n ),\n props: (route) => ({\n currentUsername: route.params.username,\n }),\n meta: {\n requiresSuperTherapist: true,\n },\n },\n ],\n },\n // Teleconsultation meeting page\n {\n path: \"/meetings/:meetingId\",\n name: \"Therapist/LiveMeeting\",\n component: () => import(\"@/pages/TherapistPages/TherapistConferencePage\"),\n meta: {\n requiresTherapist: true,\n },\n props: (route) => ({\n meetingId: route.params.meetingId,\n }),\n },\n // OAuth Zoom authentication\n ...oAuthRoutes,\n];\n","export default [\n {\n path: \"customers\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/CustomerManagementPages/CustomerListPage\"\n ),\n },\n {\n path: \"customers/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/CustomerManagementPages/CustomerCreatePage\"\n ),\n props: (route) => ({\n entityIdentifier: route.query.entityIdentifier,\n siteId: route.query.siteId,\n }),\n },\n {\n path: \"customers/:customerId\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/CustomerManagementPages/CustomerDetailsPage\"\n ),\n props: (route) => ({ customerId: route.params.customerId }),\n },\n];\n","import customerRoutes from \"@/router/entities/customer\";\n\nexport default [\n {\n path: \"site-management\",\n component: () =>\n import(\"@/pages/EntityManagementPages/SiteManagementPages/SiteListPage\"),\n },\n {\n path: \"site-management/:siteId/:tab\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteManagementPages/SiteDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n tab: route.params.tab,\n }),\n children: [...customerRoutes],\n },\n];\n","export default [\n /**\n * Patients management routes (DPO)\n */\n {\n path: \"site-management/:siteId/patients/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/PatientManagementPages/PatientDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n username: route.params.username,\n }),\n },\n /**\n * Therapists management routes\n */\n {\n path: \"site-management/:siteId/therapists/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/TherapistManagementPages/TherapistCreationPage\"\n ),\n props: (route) => ({ siteId: route.params.siteId }),\n },\n {\n path: \"site-management/:siteId/therapists/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/TherapistManagementPages/TherapistDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n username: route.params.username,\n }),\n },\n /**\n * Site managers management routes\n */\n {\n path: \"site-management/:siteId/site-managers/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteManagerManagementPages/SiteManagerCreationPage\"\n ),\n props: (route) => ({ siteId: route.params.siteId }),\n },\n {\n path: \"site-management/:siteId/site-managers/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteManagerManagementPages/SiteManagerDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n username: route.params.username,\n }),\n },\n /**\n * Customers management routes\n */\n {\n path: \"site-management/:siteId/customers/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/CustomerManagementPages/CustomerCreatePage\"\n ),\n props: (route) => ({\n entityIdentifier: route.query.entityIdentifier,\n siteId: route.params.siteId,\n }),\n },\n {\n path: \"site-management/:siteId/customers/:customerId\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/CustomerManagementPages/CustomerDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n customerId: route.params.customerId,\n }),\n },\n /**\n * Licenses management routes\n */\n {\n path: \"site-management/:siteId/licences/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/LicenseManagementPages/LicenseCreatePage\"\n ),\n props: (route) => ({ siteId: route.params.siteId }),\n },\n {\n path: \"site-management/:siteId/licences/:licenseId\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/LicenseManagementPages/LicenseDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n licenseId: route.params.licenseId,\n }),\n },\n /**\n * Patient licenses management routes\n */\n {\n path: \"site-management/:siteId/licences/patient-license/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/PatientLicenseManagementPages/PatientLicenseCreatePage\"\n ),\n props: (route) => ({ siteId: route.params.siteId }),\n },\n {\n path: \"site-management/:siteId/licences/patient-license/:licenseId\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/PatientLicenseManagementPages/PatientLicenseDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n licenseId: route.params.licenseId,\n }),\n },\n /**\n * Assets management routes\n */\n {\n path: \"site-management/:siteId/assets/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/AssetManagementPages/AssetCreatePage\"\n ),\n props: (route) => ({ siteId: route.params.siteId }),\n },\n {\n path: \"site-management/:siteId/assets/:assetId\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/AssetManagementPages/AssetDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n assetId: route.params.assetId,\n }),\n },\n /**\n * Site units management routes\n */\n {\n path: \"site-management/:siteId/site-units/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteUnitManagementPages/SiteUnitCreatePage\"\n ),\n props: (route) => ({ siteId: route.params.siteId }),\n },\n {\n path: \"site-management/:siteId/site-units/assigned/:siteUnitId/:tab\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteUnitManagementPages/SiteUnitDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n siteUnitId: route.params.siteUnitId,\n tab: route.params.tab,\n }),\n },\n {\n path: \"site-management/:siteId/site-units/assigned/:siteUnitId/site-managers/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteManagerManagementPages/SiteManagerCreationPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n siteUnitId: route.params.siteUnitId,\n }),\n },\n {\n path: \"site-management/:siteId/site-units/assigned/:siteUnitId/site-managers/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteManagerManagementPages/SiteManagerDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n siteUnitId: route.params.siteUnitId,\n username: route.params.username,\n }),\n },\n {\n path: \"site-management/:siteId/site-units/assigned/:siteUnitId/therapists/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/TherapistManagementPages/TherapistCreationPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n siteUnitId: route.params.siteUnitId,\n }),\n },\n {\n path: \"site-management/:siteId/site-units/assigned/:siteUnitId/therapists/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/TherapistManagementPages/TherapistDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n siteUnitId: route.params.siteUnitId,\n username: route.params.username,\n }),\n },\n {\n path: \"site-management/:siteId/site-units/assigned/:siteUnitId/patients/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/PatientManagementPages/PatientDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n siteUnitId: route.params.siteUnitId,\n username: route.params.username,\n }),\n },\n {\n path: \"site-management/:siteId/site-units/unassigned/:tab\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteUnit/UnassignedUsersPage\"),\n props: (route) => ({\n tab: route.params.tab,\n unassignedUserIds: route.params.unassignedUserIds,\n siteId: route.params.siteId,\n }),\n },\n {\n path: \"site-management/:siteId/site-units/unassigned/therapists/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/TherapistManagementPages/TherapistDetailsPage\"\n ),\n props: (route) => ({\n username: route.params.username,\n siteId: route.params.siteId,\n }),\n },\n {\n path: \"site-management/:siteId/site-units/unassigned/site-managers/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteManagerManagementPages/SiteManagerDetailsPage\"\n ),\n props: (route) => ({\n username: route.params.username,\n siteId: route.params.siteId,\n }),\n },\n // For DPO\n {\n path: \"site-management/:siteId/site-units/unassigned/patients/:username/profile\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/PatientManagementPages/PatientDetailsPage\"\n ),\n props: (route) => ({\n siteId: route.params.siteId,\n username: route.params.username,\n unassignedUser: true,\n }),\n },\n];\n","export default [\n {\n path: \"license\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/LicenseManagementPages/LicenseListPage\"\n ),\n },\n {\n path: \"license/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/LicenseManagementPages/LicenseCreatePage\"\n ),\n },\n {\n path: \"license/:licenseId\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/LicenseManagementPages/LicenseDetailsPage\"\n ),\n props: (route) => ({ licenseId: route.params.licenseId }),\n },\n];\n","export default [\n {\n path: \"patient-license\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/PatientLicenseManagementPages/PatientLicenseListPage\"\n ),\n },\n {\n path: \"patient-license/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/PatientLicenseManagementPages/PatientLicenseCreatePage\"\n ),\n },\n {\n path: \"patient-license/:licenseId\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/PatientLicenseManagementPages/PatientLicenseDetailsPage\"\n ),\n props: (route) => ({ licenseId: route.params.licenseId }),\n },\n];\n","export default [\n {\n path: \"asset\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/AssetManagementPages/AssetListPage\"\n ),\n },\n {\n path: \"asset/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/AssetManagementPages/AssetCreatePage\"\n ),\n },\n {\n path: \"asset/:assetId\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/AssetManagementPages/AssetDetailsPage\"\n ),\n props: (route) => ({ assetId: route.params.assetId }),\n },\n];\n","export default [\n {\n path: \"site-manager\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteManagerManagementPages/SiteManagerListPage\"\n ),\n },\n {\n path: \"site-manager/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteManagerManagementPages/SiteManagerCreationPage\"\n ),\n props: (route) => ({\n siteId: route.query.siteId,\n }),\n },\n {\n path: \"site-manager/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteManagerManagementPages/SiteManagerDetailsPage\"\n ),\n props: true,\n },\n];\n","export default [\n {\n path: \"therapist\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/TherapistManagementPages/TherapistListPage\"\n ),\n },\n {\n path: \"therapist/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/TherapistManagementPages/TherapistCreationPage\"\n ),\n props: (route) => ({\n siteId: route.query.siteId,\n }),\n },\n {\n path: \"therapist/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/TherapistManagementPages/TherapistDetailsPage\"\n ),\n props: true,\n },\n];\n","export default [\n {\n path: \"administrator\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/AdministratorManagementPages/AdministratorListPage\"\n ),\n },\n {\n path: \"administrator/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/AdministratorManagementPages/AdministratorCreatePage\"\n ),\n },\n {\n path: \"administrator/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/AdministratorManagementPages/AdministratorDetailsPage\"\n ),\n props: (route) => ({ username: route.params.username }),\n },\n {\n path: \"patient-management\",\n component: () => import(\"@/pages/AdminPages/PatientManagementPage\"),\n props: true,\n },\n];\n","export default [\n {\n path: \"data-export\",\n component: () => import(\"@/pages/AdminPages/DataExportPage\"),\n },\n];\n","export default [\n {\n path: \"optional-feature-activation\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/OptionalFeatureManagementPages/FeatureActivationListPage\"\n ),\n },\n {\n path: \"optional-feature-activation/:featureKeyName\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/OptionalFeatureManagementPages/FeatureActivationDetailsPage\"\n ),\n props: (route) => ({ featureKeyName: route.params.featureKeyName }),\n },\n];\n","export default [\n {\n path: \"feedbackReport\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/FeedbackReportManagementPages/FeedbackReportListPage\"\n ),\n },\n {\n path: \"feedbackReport/:feedbackReportId\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/FeedbackReportManagementPages/FeedbackReportDetailsPage\"\n ),\n props: true,\n },\n];\n","export default [\n {\n path: \"archived-users\",\n component: () =>\n import(\"@/pages/EntityManagementPages/ArchivedUsersManagementPages\"),\n },\n {\n path: \"archived-users/patient/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/PatientManagementPages/PatientDetailsPage\"\n ),\n props: true,\n },\n {\n path: \"archived-users/therapist/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/TherapistManagementPages/TherapistDetailsPage\"\n ),\n props: true,\n },\n {\n path: \"archived-users/site-manager/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteManagerManagementPages/SiteManagerDetailsPage\"\n ),\n props: true,\n },\n {\n path: \"archived-users/dpoadmin/:username\",\n component: () =>\n import(\"@/pages/EntityManagementPages/DPOManagementPages/DPODetailsPage\"),\n props: true,\n },\n {\n path: \"archived-users/administrator/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/AdministratorManagementPages/AdministratorDetailsPage\"\n ),\n props: true,\n },\n];\n","import customerRoutes from \"@/router/entities/customer\";\nimport siteRoutes from \"@/router/entities/site\";\nimport siteManagementRoutes from \"@/router/entities/siteManagement\";\nimport licenseRoutes from \"@/router/entities/license\";\nimport patientLicenseRoutes from \"@/router/entities/patientLicense\";\nimport assetRoutes from \"@/router/entities/asset\";\nimport siteManagerRoutes from \"@/router/entities/siteManager\";\nimport therapistRoutes from \"@/router/entities/therapist\";\nimport administratorRoutes from \"@/router/entities/administrator\";\nimport dataExportRoutes from \"@/router/dataExportRoutes\";\nimport optionalFeatureActivationRoutes from \"@/router/entities/optionalFeatureActivation\";\nimport feedbackReportRoutes from \"@/router/entities/feedbackReport\";\nimport archivedUsersRoutes from \"@/router/entities/archivedUsers\";\nimport { getSupportRoutes } from \"@/router/supportRoutes\";\nimport { getProfileRoutes } from \"@/router/profileRoutes\";\n\nconst routePrefix = \"/admin\";\n\nexport default [\n {\n path: routePrefix,\n component: () => import(\"@/pages/AdminPages/AdminHomePage\"),\n meta: {\n requiresAdmin: true,\n },\n children: [\n ...getSupportRoutes(routePrefix),\n ...getProfileRoutes(routePrefix),\n ...customerRoutes,\n ...siteRoutes,\n ...licenseRoutes,\n ...patientLicenseRoutes,\n ...assetRoutes,\n ...siteManagerRoutes,\n ...siteManagementRoutes,\n ...therapistRoutes,\n ...administratorRoutes,\n ...dataExportRoutes,\n ...optionalFeatureActivationRoutes,\n ...feedbackReportRoutes,\n ...archivedUsersRoutes,\n {\n path: \"\",\n name: \"Admin/Home\",\n component: () => import(\"@/pages/AdminPages/AdminHomePage/Dashboard\"),\n },\n ],\n },\n];\n","export default [\n {\n path: \"user-session\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/UserSessionManagementPages/UserSessionListPage\"\n ),\n },\n];\n","export default [\n {\n path: \"dpoadmin\",\n component: () =>\n import(\"@/pages/EntityManagementPages/DPOManagementPages/DPOListPage\"),\n },\n {\n path: \"dpoadmin/new\",\n component: () =>\n import(\"@/pages/EntityManagementPages/DPOManagementPages/DPOCreatePage\"),\n },\n {\n path: \"dpoadmin/:username\",\n component: () =>\n import(\"@/pages/EntityManagementPages/DPOManagementPages/DPODetailsPage\"),\n props: (route) => ({ username: route.params.username }),\n },\n];\n","export default [\n {\n path: \"patient\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/PatientManagementPages/PatientListPage\"\n ),\n },\n {\n path: \"patient/:username\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/PatientManagementPages/PatientDetailsPage\"\n ),\n props: true,\n },\n];\n","export default [\n {\n path: \"customer-notification\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/CustomerNotificationManagementPages/CustomerNotificationListPage\"\n ),\n },\n {\n path: \"customer-notification/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/CustomerNotificationManagementPages/CustomerNotificationCreatePage\"\n ),\n },\n {\n path: \"customer-notification/:customerNotificationId\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/CustomerNotificationManagementPages/CustomerNotificationDetailsPage\"\n ),\n props: (route) => ({\n customerNotificationId: route.params.customerNotificationId,\n }),\n },\n];\n","export default [\n {\n path: \"optional-feature-definition\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/OptionalFeatureManagementPages/FeatureDefinitionListPage\"\n ),\n },\n {\n path: \"optional-feature-definition/new\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/OptionalFeatureManagementPages/FeatureDefinitionCreatePage\"\n ),\n },\n {\n path: \"optional-feature-definition/:featureId\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/OptionalFeatureManagementPages/FeatureDefinitionDetailsPage\"\n ),\n props: (route) => ({ featureId: route.params.featureId }),\n },\n];\n","import customerRoutes from \"@/router/entities/customer\";\nimport siteRoutes from \"@/router/entities/site\";\nimport siteManagementRoutes from \"@/router/entities/siteManagement\";\nimport licenseRoutes from \"@/router/entities/license\";\nimport patientLicenseRoutes from \"@/router/entities/patientLicense\";\nimport userSessionRoutes from \"@/router/entities/user-session\";\nimport assetRoutes from \"@/router/entities/asset\";\nimport administratorRoutes from \"@/router/entities/administrator\";\nimport dpoRoutes from \"@/router/entities/dpoadmin\";\nimport therapistRoutes from \"@/router/entities/therapist\";\nimport patientRoutes from \"@/router/entities/patient\";\nimport siteManagerRoutes from \"@/router/entities/siteManager\";\nimport customerNotificationRoutes from \"@/router/entities/customerNotification\";\nimport dataExportRoutes from \"@/router/dataExportRoutes\";\nimport optionalFeatureDefinitionRoutes from \"@/router/entities/optionalFeatureDefinition\";\nimport optionalFeatureActivationRoutes from \"@/router/entities/optionalFeatureActivation\";\nimport feedbackReportRoutes from \"@/router/entities/feedbackReport\";\nimport archivedUsersRoutes from \"@/router/entities/archivedUsers\";\nimport { getSupportRoutes } from \"@/router/supportRoutes\";\nimport { getProfileRoutes } from \"@/router/profileRoutes\";\n\nconst routePrefix = \"/superadmin\";\n\nexport default [\n {\n path: routePrefix,\n component: () => import(\"@/pages/AdminPages/SuperAdminHomePage\"),\n meta: {\n requiresSuperAdmin: true,\n },\n children: [\n ...getSupportRoutes(routePrefix),\n ...getProfileRoutes(routePrefix),\n ...customerRoutes,\n ...siteRoutes,\n ...siteManagementRoutes,\n ...licenseRoutes,\n ...patientLicenseRoutes,\n ...assetRoutes,\n ...userSessionRoutes,\n ...administratorRoutes,\n ...dpoRoutes,\n ...therapistRoutes,\n ...patientRoutes,\n ...siteManagerRoutes,\n ...customerNotificationRoutes,\n ...dataExportRoutes,\n ...optionalFeatureDefinitionRoutes,\n ...optionalFeatureActivationRoutes,\n ...feedbackReportRoutes,\n ...archivedUsersRoutes,\n {\n path: \"emails\",\n name: \"emailTest\",\n component: () =>\n import(\"@/pages/AdminPages/SuperAdminHomePage/EmailTestPage.vue\"),\n },\n {\n path: \"activity-definition\",\n name: \"activityDefinition\",\n component: () =>\n import(\n \"@/pages/ReferencePages/ActivityDefinitionPage/ActivityDefinitionPage.vue\"\n ),\n },\n {\n path: \"\",\n name: \"SuperAdmin/Home\",\n component: () =>\n import(\"@/pages/AdminPages/SuperAdminHomePage/Dashboard\"),\n },\n ],\n },\n];\n","import { THERAPIST_ROLE, SITEMANAGER_ROLE } from \"@/services/auth.js\";\n\nexport default [\n {\n path: \"site-units\",\n component: () =>\n import(\n \"@/pages/EntityManagementPages/SiteUnitManagementPages/SiteUnitListPage\"\n ),\n },\n {\n path: \"site-units/new\",\n component: () => import(\"@/pages/SiteManagerPages/SiteUnit/AddSiteUnit\"),\n props: (route) => ({ siteId: route.params.siteId }),\n },\n {\n path: \"site-units/assigned/:siteUnitId/:tab\",\n component: () => import(\"@/pages/SiteManagerPages/SiteUnit/EditSiteUnit\"),\n props: (route) => ({\n siteUnitId: route.params.siteUnitId,\n tab: route.params.tab,\n }),\n },\n {\n path: \"site-units/assigned/:siteUnitId/:tab/new\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/AddUser\"),\n props: (route) => ({\n siteUnitId: route.params.siteUnitId,\n tab: route.params.tab,\n \"user-type\":\n route.params.tab === \"therapists\" ? THERAPIST_ROLE : SITEMANAGER_ROLE,\n }),\n },\n {\n path: \"site-units/assigned/:siteUnitId/:tab/:username\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/EditUser\"),\n props: (route) => ({\n siteUnitId: route.params.siteUnitId,\n tab: route.params.tab,\n username: route.params.username,\n }),\n },\n {\n path: \"site-units/unassigned/:tab/:username\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/EditUser\"),\n props: (route) => ({\n tab: route.params.tab,\n username: route.params.username,\n }),\n },\n {\n path: \"site-units/unassigned/:tab\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteUnit/UnassignedUsersPage\"),\n props: (route) => ({\n tab: route.params.tab,\n unassignedUserIds: route.params.unassignedUserIds,\n }),\n },\n];\n","import { getSupportRoutes } from \"@/router/supportRoutes\";\nimport { getProfileRoutes } from \"@/router/profileRoutes\";\nimport siteUnitRoutes from \"@/router/entities/siteUnit\";\n\nconst routePrefix = \"/site-manager\";\n\nexport default [\n {\n path: \"/\",\n redirect: \"therapists\",\n name: \"SiteManager/Home\",\n component: () => import(\"@/pages/SiteManagerPages/SiteManagerHomePage\"),\n meta: {\n requiresSiteManager: true,\n },\n children: [\n ...getSupportRoutes(routePrefix),\n ...getProfileRoutes(routePrefix),\n ...siteUnitRoutes,\n {\n path: \"therapists\",\n name: \"SiteManager/Therapists\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/UserListPage\"),\n props: {\n \"user-type\": \"therapist\",\n },\n },\n {\n path: \"therapists/new\",\n name: \"SiteManager/CreateTherapist\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/AddUser\"),\n props: (route) => ({\n \"user-type\": \"therapist\",\n siteUnitId: route.params.siteUnitId,\n }),\n },\n {\n path: \"therapists/:username\",\n name: \"SiteManager/EditTherapist\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/EditUser\"),\n props: (route) => ({\n username: route.params.username,\n }),\n },\n {\n path: \"site-managers\",\n name: \"SiteManager/SiteManagers\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/UserListPage\"),\n props: {\n \"user-type\": \"site\",\n },\n },\n {\n path: \"site-managers/new\",\n name: \"SiteManager/CreateSiteManager\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/AddUser\"),\n props: {\n \"user-type\": \"site\",\n },\n },\n {\n path: \"site-managers/:username\",\n name: \"SiteManager/EditSiteManager\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/EditUser\"),\n props: (route) => ({\n username: route.params.username,\n }),\n },\n {\n path: \"archived-users\",\n name: \"SiteManager/ArchivedUsers\",\n component: () =>\n import(\n \"@/pages/SiteManagerPages/SiteManagerHomePage/ArchivedUsersPage.vue\"\n ),\n },\n {\n path: \"archived-users/:username\",\n name: \"SiteManager/EditArchivedUser\",\n component: () =>\n import(\"@/pages/SiteManagerPages/SiteManagerHomePage/EditUser\"),\n props: (route) => ({\n username: route.params.username,\n }),\n },\n {\n path: \"license\",\n name: \"SiteManager/License\",\n component: () =>\n import(\n \"@/pages/SiteManagerPages/SiteManagerHomePage/LicenseOverview\"\n ),\n },\n {\n path: \"site-parameters\",\n name: \"SiteManager/SiteManagement/SiteParameters\",\n component: () => import(\"@/pages/SiteManagerPages/SiteParameters\"),\n },\n {\n path: \"personal-access-token\",\n name: \"SiteManager/SiteManagement/PersonalAccessToken\",\n component: () => import(\"@/pages/SiteManagerPages/PersonalAccessToken\"),\n },\n {\n path: \"personal-access-token/new\",\n name: \"SiteManager/SiteManagement/CreatePersonalAccessToken\",\n component: () =>\n import(\n \"@/pages/SiteManagerPages/PersonalAccessToken/AddPersonalAccessToken\"\n ),\n },\n ],\n },\n];\n","export default [\n {\n path: \"/onboarding/privacy-policy\",\n name: \"onboarding/privacy-policy\",\n component: () =>\n import(\"@/pages/CommonPages/OnboardingPages/PrivacyAcceptPage\"),\n meta: {\n requiresAuth: true,\n },\n },\n {\n path: \"/onboarding/set-password\",\n name: \"onboarding/set-password\",\n component: () =>\n import(\"@/pages/CommonPages/OnboardingPages/SetPasswordPage\"),\n props: (route) => ({\n userId: route.query.id,\n token: route.query.token,\n emailLanguage: route.query.culture,\n }),\n },\n {\n path: \"/onboarding/verify-email\",\n name: \"onboarding/verify-email\",\n component: () =>\n import(\"@/pages/CommonPages/OnboardingPages/VerifyEmailPage\"),\n props: (route) => ({\n userId: route.query.id,\n token: route.query.token,\n emailLanguage: route.query.culture,\n }),\n },\n {\n path: \"/onboarding/change-email\",\n name: \"onboarding/change-email\",\n component: () =>\n import(\"@/pages/CommonPages/OnboardingPages/ChangeEmailPage\"),\n props: (route) => ({\n userId: route.query.id,\n newEmail: route.query.newEmail,\n token: route.query.token,\n emailLanguage: route.query.culture,\n }),\n },\n {\n path: \"/onboarding/consent-form\",\n name: \"onboarding/consent-form\",\n component: () => import(\"@/pages/CommonPages/OnboardingPages/ConsentPage\"),\n props: (route) => ({ userId: route.query.id, token: route.query.token }),\n meta: {\n requiresAuth: true,\n },\n },\n {\n path: \"/onboarding/token-expired\",\n name: \"onboarding/token-expired\",\n component: () =>\n import(\"@/pages/CommonPages/OnboardingPages/TokenExpiredPage\"),\n },\n {\n path: \"/onboarding/change-email-token-expired\",\n name: \"onboarding/change-email-token-expired\",\n component: () =>\n import(\"@/pages/CommonPages/OnboardingPages/ChangeEmailTokenExpiredPage\"),\n },\n {\n path: \"/onboarding/requestlink\",\n name: \"requestLink\",\n component: () =>\n import(\"@/pages/CommonPages/OnboardingPages/RequestActivationLinkPage\"),\n },\n];\n","export default [\n {\n path: \"/reset-password/request\",\n name: \"forgotPassword\",\n component: () => import(\"@/pages/CommonPages/ForgotPasswordPage\"),\n },\n {\n path: \"/reset-password/reset\",\n name: \"resetPassword\",\n component: () => import(\"@/pages/CommonPages/ResetPasswordPage\"),\n props: (route) => ({\n userId: route.query.id,\n token: route.query.token,\n title: route.params.title,\n userEmail: route.params.email,\n }),\n },\n {\n path: \"/reset-password/expired\",\n name: \"ResetPasswordExpired\",\n component: () =>\n import(\"@/pages/CommonPages/PasswordResetTokenExpiredPage\"),\n props: (route) => ({ autoCloseWindow: route.params.autoCloseWindow }),\n },\n {\n path: \"/reset-password/confirmation\",\n name: \"confirmation\",\n component: () =>\n import(\"@/pages/CommonPages/ResetPasswordPage/ConfirmationPage\"),\n props: (route) => ({ autoCloseWindow: route.params.autoCloseWindow }),\n },\n];\n","export default [\n {\n path: \"audit\",\n component: () => import(\"@/pages/DPOPages/AuditTrailListPage\"),\n },\n];\n","import auditRoutes from \"@/router/entities/audit\";\nimport siteRoutes from \"@/router/entities/site\";\nimport therapistRoutes from \"@/router/entities/therapist\";\nimport siteManagerRoutes from \"@/router/entities/siteManager\";\nimport siteManagementRoutes from \"@/router/entities/siteManagement\";\nimport patientRoutes from \"@/router/entities/patient\";\nimport administratorRoutes from \"@/router/entities/administrator\";\nimport dataExportRoutes from \"@/router/dataExportRoutes\";\nimport { getSupportRoutes } from \"@/router/supportRoutes\";\nimport { getProfileRoutes } from \"@/router/profileRoutes\";\nimport archivedUsersRoutes from \"@/router/entities/archivedUsers\";\n\nconst routePrefix = \"/dpo\";\n\nexport default [\n {\n path: routePrefix,\n component: () => import(\"@/pages/DPOPages/DPOHomePage\"),\n meta: {\n requiresDPO: true,\n },\n children: [\n ...getSupportRoutes(routePrefix),\n ...getProfileRoutes(routePrefix),\n ...auditRoutes,\n ...siteRoutes,\n ...siteManagementRoutes,\n ...therapistRoutes,\n ...siteManagerRoutes,\n ...patientRoutes,\n ...administratorRoutes,\n ...dataExportRoutes,\n ...archivedUsersRoutes,\n {\n path: \"\",\n name: \"DPO/Home\",\n component: () => import(\"@/pages/DPOPages/DPOHomePage/Dashboard\"),\n },\n ],\n },\n];\n","export default [\n {\n path: \"/request-SAML-site\",\n name: \"requestSAMLSite\",\n component: () => import(\"@/pages/CommonPages/RequestSAMLSitePage\"),\n },\n];\n","export default [\n {\n path: \"/reference\",\n name: \"reference\",\n component: () => import(\"@/pages/ReferencePages/index.vue\"),\n meta: {\n requiresMindMazeAuth: true,\n },\n children: [\n {\n path: \"activity-definition\",\n component: () =>\n import(\n \"@/pages/ReferencePages/ActivityDefinitionPage/ActivityDefinitionPage.vue\"\n ),\n },\n {\n path: \"theme/colors\",\n component: () => import(\"@/pages/ReferencePages/theme/ThemeColors\"),\n },\n {\n path: \"theme/icons\",\n component: () => import(\"@/pages/ReferencePages/theme/ThemeIcons\"),\n },\n {\n path: \"theme/typography\",\n component: () => import(\"@/pages/ReferencePages/theme/ThemeTypography\"),\n },\n {\n path: \"components/elements-summary\",\n component: () =>\n import(\"@/pages/ReferencePages/components/ElementsSummary\"),\n },\n {\n path: \"components/components-summary\",\n component: () =>\n import(\"@/pages/ReferencePages/components/ComponentsSummary\"),\n },\n {\n path: \"development/scrollable/simple\",\n component: () =>\n import(\n \"@/pages/ReferencePages/development/InnerScrollablePageTestSimple\"\n ),\n },\n {\n path: \"development/scrollable/better\",\n component: () =>\n import(\"@/pages/ReferencePages/development/InnerScrollablePageTest\"),\n },\n {\n path: \"development/component-view\",\n component: () =>\n import(\"@/pages/ReferencePages/development/ComponentTestView\"),\n },\n ],\n },\n];\n","export default [\n {\n path: \"/privacy-policy\",\n name: \"privacy-policy\",\n component: () =>\n import(\"@/pages/CommonPages/LegalPages/PrivacyPolicyViewPage.vue\"),\n },\n];\n","export default [\n {\n path: \"/zoom/activate\",\n name: \"ZoomActivate\",\n component: () => import(\"@/pages/CommonPages/ZoomPages/ZoomActivate.vue\"),\n },\n {\n path: \"/zoom/documentation\",\n name: \"ZoomDocumentation\",\n component: () =>\n import(\"@/pages/CommonPages/ZoomPages/ZoomDocumentation.vue\"),\n },\n // Zoom external URL previously handled by another service\n {\n path: \"/zoomverify/documentation\",\n name: \"ZoomVerifyDocumentation\",\n redirect: \"/zoom/documentation\",\n },\n {\n path: \"/zoomverify/privacy-policy-eu\",\n name: \"ZoomVerifyPrivacyPolicy\",\n redirect: \"/privacy-policy\",\n },\n {\n path: \"/zoomverify/support\",\n name: \"ZoomVerifySupport\",\n beforeEnter(to, from, next) {\n window.location.replace(\"https://mindmaze.com/contact/\");\n },\n },\n {\n path: \"/zoomverify/terms-of-use\",\n name: \"ZoomVerifyTermsOfUse\",\n beforeEnter(to, from, next) {\n window.location.replace(\n \"https://mindmaze.com/wp-content/uploads/2023/10/EULA-General-20230517_EN.pdf\"\n );\n },\n },\n];\n","import Profile from \"@/models/Profile.model.js\";\nimport {\n setSessionStorageDisableTeleconsultation,\n setSessionStorageDisableSideBar,\n} from \"@/store/sessionStorage.js\";\nimport Store from \"@/store\";\nimport { userApi, getErrorKeysFrom } from \"@/services/api\";\nimport { hideCookieBar } from \"@/utils/cookies\";\n\n/**\n * Handles navigation using a common redirection route:\n * Example: /navigate?samlSiteName=mindmaze&patientSiteId=augustina&context=dashboard&disableSidebar=true\n * --> /patient//dashboard (without sidebar)\n */\n\n/// Patient convenience route map for therapists\nconst defaultRouteMap = \"Therapist/Patient\";\nconst PatientRouteMap = Object.freeze({\n dashboard: \"Therapist/Patient/Dashboard\",\n plan: \"Therapist/Patient/Plan\",\n teleconsultation: \"Therapist/Patient/Teleconsultation\",\n monitor: \"Therapist/Patient/Monitor\",\n review: \"Therapist/Patient/Review\",\n assessment: \"Therapist/Patient/Assessment\",\n epro: \"Therapist/Patient/EPRO\",\n profile: \"Therapist/Patient/Profile\",\n});\n\n/**\n * Stores the current navigation route for after the authentication process\n * @param {Route} to current route\n */\nfunction rememberNavigationRoute(to) {\n const query = JSON.stringify(to.query || {});\n try {\n window.sessionStorage.setItem(\"mm_navigate_query\", query);\n } catch {\n // Can happen when testing repeatedly in private mode and when refusing cookies\n // At least, the user gets some information about it\n console.error(\n \"Cannot write previous navigation query. The navigation redirection will not work after login\"\n );\n }\n}\n\n/**\n * Retreives the current navigation route after the authentication process if any\n */\nexport function popPreviousNavigationRoute() {\n const queryStr = window.sessionStorage.getItem(\"mm_navigate_query\");\n\n // Forget it once obtained\n window.sessionStorage.removeItem(\"mm_navigate_query\");\n\n const route = { name: \"Navigation\", query: {} };\n try {\n const query = JSON.parse(queryStr);\n if (query) {\n route.query = query;\n return route;\n } else {\n return {}; // invalid route\n }\n } catch {\n return {}; // invalid route\n }\n}\n\n/**\n * Redirect the user to the SAML idP authentication page\n * corresponding to the given saml site name\n * @param {Route} to current route\n * @param {NavigationGuardNext<*>} next route redirection callback\n * @returns callback with actual redirection in case of error.\n * Will overwrite the URL to go to the idP if all goes well\n */\nasync function samlAuth(to, next) {\n const query = to.query || {};\n\n // Don't process an autologin when errors are happening\n const errorKey = query.errorKey;\n const technicalErrorCode = query.technicalErrorCode;\n if (errorKey || technicalErrorCode) {\n // Forward to an error page, keeping the query parameters\n return next({ name: \"loginsaml\" });\n }\n\n // Get the idp url and attempt to go there\n const samlSiteName = query.samlSiteName;\n await userApi\n .get(`auth/saml/${samlSiteName}`)\n .then((response) => {\n if (response.status == \"200\") {\n const idpURL = response.data?.result?.redirectionURL || \"\";\n if (idpURL) {\n // Go to the idP URL in the same window\n window.location = idpURL;\n } else {\n // Should never happen\n to.query.errorKey = \"errors.site.emptyName\";\n return next({ name: \"loginsaml\" });\n }\n } else {\n to.query.errorKey = \"errors.site.noMatchingSite\";\n to.query.technicalErrorCode = response.status;\n return next({ name: \"loginsaml\" });\n }\n })\n .catch((error) => {\n to.query.errorKey = getErrorKeysFrom(error)[0] || \"\";\n return next({ name: \"loginsaml\" });\n });\n}\n\n/**\n * Handle navigate parameters to return the route\n * corresponding to the given patient site id in the route\n * @param {Route} to current route\n * @param {NavigationGuardNext<*>} next route redirection callback\n * @returns callback with actual redirection\n */\nasync function computePatientManagementPageRoute(to, next) {\n // The default route (\"home\"), without any query parameters\n const defaultPage = { name: \"home\", query: {} };\n\n const query = to.query || {};\n // Handle redirection to the patient page\n const routeName = PatientRouteMap[query.context] || defaultRouteMap;\n\n if (routeName === \"home\") {\n return next(defaultPage);\n }\n\n const patientSiteId = query.patientSiteId || \"\";\n const disableSidebar = query.disableSidebar;\n const disableTeleconsultation = query.disableTeleconsultation;\n\n const redirection = {\n name: routeName,\n query: {}, // clean query when redirecting\n };\n\n // Handle parameters\n if (disableSidebar != undefined) {\n setSessionStorageDisableSideBar(disableSidebar);\n }\n if (disableTeleconsultation != undefined) {\n setSessionStorageDisableTeleconsultation(disableTeleconsultation);\n }\n\n if (patientSiteId) {\n // The redirection is valid, we are about to go there\n const patientRequest = await Profile.getPatients(null, true, false, false);\n const patients = patientRequest?.response?.data?.result || [];\n\n // N.B.: Case insensitive comparison based on characters\n const patient = patients.find(\n (p) =>\n p?.patientSiteId.localeCompare(patientSiteId, undefined, {\n sensitivity: \"base\",\n }) === 0 || false\n );\n\n if (patient) {\n const patientUsername = patient.userName;\n redirection.params = { username: patientUsername };\n return next(redirection);\n } else {\n // The patient doesn't exist, redirect to the patient not found page\n return next({\n name: \"Therapist/AddPatient\",\n query: { patientSiteId: patientSiteId, nextRoute: routeName },\n });\n }\n }\n\n // Redirecting to the default route (\"home\")\n return next(defaultPage);\n}\n\nexport default [\n {\n path: \"/navigate\",\n name: \"Navigation\",\n // N.B.: redirect() doesn't support async according to:\n // https://github.com/vuejs/vue-router/issues/2729 and others\n // therefore we use beforeEnter()\n beforeEnter: async (to, from, next) => {\n // Hide the cookie bar in the navigate mode for the current session/page if needed\n hideCookieBar();\n await Store.dispatch(\"Auth/setHideCookieBar\", true);\n\n if (Store.getters[\"Auth/hasAccessToken\"]) {\n // If everything is setup, compute the route to the patient page\n return await computePatientManagementPageRoute(to, next);\n } else {\n rememberNavigationRoute(to);\n\n // Determine if the authentication process can use SAML\n const query = to.query || {};\n if (query.samlSiteName) {\n // SAML auth\n return await samlAuth(to, next);\n } else {\n // Basic AUTH\n return next({ name: \"login\", query: {} });\n }\n }\n },\n },\n];\n","import Store from \"@/store\";\n\nimport patientRoutes from \"@/router/users/patientRoutes\";\nimport therapistRoutes from \"@/router/users/therapistRoutes\";\nimport adminRoutes from \"@/router/users/adminRoutes\";\nimport superadminRoutes from \"@/router/users/superadminRoutes\";\nimport siteManagerRoutes from \"@/router/users/siteManagerRoutes\";\nimport onboardingRoutes from \"@/router/onboardingRoutes\";\nimport forgotPasswordRoutes from \"@/router/forgotPasswordRoutes\";\nimport dpoRoutes from \"@/router/users/DPORoutes\";\nimport requestSAMLSiteRoutes from \"@/router/requestSAMLSiteRoutes\";\nimport referenceRoutes from \"@/router/referenceRoutes.js\";\nimport footerRoutes from \"@/router/footerRoutes.js\";\nimport zoomRoutes from \"@/router/zoomRoutes.js\";\nimport navigateRoute, {\n popPreviousNavigationRoute,\n} from \"@/router/navigate.js\";\n\nexport default [\n {\n path: \"/\",\n name: \"home\",\n redirect: () => {\n // Redirect to the previous naviagte request if valid\n const previousNavigationRoute = popPreviousNavigationRoute();\n if (previousNavigationRoute.name && previousNavigationRoute.query) {\n return previousNavigationRoute;\n }\n\n if (Store.getters[\"Auth/isPatient\"]) {\n return { name: \"Patient/Home\" };\n }\n\n if (Store.getters[\"Auth/isTherapist\"]) {\n return {\n name: \"Therapist/Home\",\n };\n }\n\n if (Store.getters[\"Auth/isAdmin\"]) {\n return { name: \"Admin/Home\" };\n }\n\n if (Store.getters[\"Auth/isSuperAdmin\"]) {\n return { name: \"SuperAdmin/Home\" };\n }\n\n if (Store.getters[\"Auth/isDPO\"]) {\n return { name: \"DPO/Home\" };\n }\n\n if (Store.getters[\"Auth/isSiteManager\"]) {\n return { name: \"SiteManager/Home\" };\n }\n return { name: \"login\" };\n },\n },\n {\n path: \"/login\",\n name: \"login\",\n component: () => import(\"@/pages/CommonPages/LoginPage/index.vue\"),\n beforeEnter: (to, from, next) => {\n if (Store.getters[\"Auth/hasAccessToken\"]) {\n next({ name: \"home\" });\n } else {\n next();\n }\n },\n },\n {\n path: \"/login/saml/:samlSiteName\",\n name: \"loginsaml\",\n component: () => import(\"@/pages/CommonPages/LoginSAMLPage/index.vue\"),\n props: (route) => ({\n samlSiteName: route.params.samlSiteName,\n errorKey: route.query.errorKey,\n technicalErrorCode: route.query.technicalErrorCode,\n }),\n beforeEnter: (to, from, next) => {\n if (Store.getters[\"Auth/hasAccessToken\"]) {\n next({ name: \"home\" });\n } else {\n next();\n }\n },\n },\n {\n path: \"/logout\",\n name: \"logout\",\n component: () => import(\"@/pages/CommonPages/LogoutPage\"),\n meta: {\n requiresAuth: true,\n },\n },\n {\n path: \"/login-two-factor\",\n name: \"login-two-factor\",\n component: () => import(\"@/pages/CommonPages/LoginPage/LoginTwoFactor.vue\"),\n beforeEnter: (to, from, next) => {\n if (\n Store.getters[\"Auth/hasAccessToken\"] ||\n !to.params.password ||\n !to.params.email\n ) {\n next({ name: \"home\" });\n } else {\n next();\n }\n },\n props: (route) => ({\n email: route.params.email,\n password: route.params.password,\n }),\n },\n ...patientRoutes,\n ...therapistRoutes,\n ...adminRoutes,\n ...superadminRoutes,\n ...siteManagerRoutes,\n ...onboardingRoutes,\n ...forgotPasswordRoutes,\n ...dpoRoutes,\n ...requestSAMLSiteRoutes,\n ...zoomRoutes,\n ...referenceRoutes,\n ...footerRoutes,\n ...navigateRoute,\n\n // and finally the default route, when none of the above matches:\n {\n path: \"*\",\n name: \"404\",\n redirect: () => {\n return { name: \"login\" };\n },\n },\n];\n","import Vue from \"vue\";\nimport Router from \"vue-router\";\n\nimport Store from \"@/store/\";\n\nimport routes from \"./routes.js\";\n\nimport { trackPageView } from \"@/plugins/vueApplicationInsights\";\nimport { getAccessTokenCookie } from \"@/utils/cookies\";\nimport { demoPatientUsername } from \"@/services/users.js\";\nimport {\n attemptAutoLogin,\n setUserInformationAndRights,\n} from \"@/services/auth.js\";\nimport { userApi } from \"@/services/api.js\";\n\nVue.use(Router);\n\nconst router = new Router({\n mode: \"history\",\n base: process.env.BASE_URL,\n routes,\n});\n\n/**\n * Check the permissions of a user and route\n * @param {object} to The route to navigate to\n */\nconst checkPermissions = (to) => {\n if (\n to.matched.some((m) => m.meta.requiresAuth) &&\n !Store.getters[\"Auth/hasAccessToken\"]\n ) {\n return false;\n }\n\n if (\n to.matched.some((m) => m.meta.requiresPatient) &&\n !Store.getters[\"Auth/isPatient\"]\n ) {\n return false;\n }\n\n if (\n to.matched.some((m) => m.meta.requiresTherapist) &&\n !Store.getters[\"Auth/isTherapist\"]\n ) {\n return false;\n }\n\n if (\n to.matched.some((m) => m.meta.requiresAdmin) &&\n !Store.getters[\"Auth/isAdmin\"]\n ) {\n return false;\n }\n\n if (\n to.matched.some((m) => m.meta.requiresDPO) &&\n !Store.getters[\"Auth/isDPO\"]\n ) {\n return false;\n }\n\n if (\n to.matched.some((m) => m.meta.requiresSuperAdmin) &&\n !Store.getters[\"Auth/isSuperAdmin\"]\n ) {\n return false;\n }\n\n if (\n to.matched.some((m) => m.meta.requiresSuperTherapist) &&\n !Store.getters[\"Auth/isSuperTherapist\"]\n ) {\n return false;\n }\n\n if (\n to.matched.some((m) => m.meta.requiresSiteManager) &&\n !Store.getters[\"Auth/isSiteManager\"]\n ) {\n return false;\n }\n\n if (\n to.matched.some((m) => m.meta.requiresMindMazeAuth) &&\n !Store.getters[\"Auth/isSuperAdmin\"] &&\n !Store.getters[\"Auth/isAdmin\"]\n ) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Check the access token and reloads it from the cookies if available.\n * @returns {boolean} Whether the user has an access token\n */\nconst checkLogin = async () => {\n // If we have at least a token,\n // and we are considered not logged in,\n // let's check if our token is valid\n const CookieAccessToken = getAccessTokenCookie();\n if (CookieAccessToken && !Store.getters[\"Auth/hasAccessToken\"]) {\n await Store.dispatch(\"Auth/setAccessToken\", CookieAccessToken);\n\n return await userApi\n .get(\"profile\")\n .then((response) => {\n return setUserInformationAndRights(response.data.result).then(() => {\n return true;\n });\n })\n .catch(() => {\n Store.dispatch(\"Auth/clearAll\").finally(() => {\n return false;\n });\n });\n }\n\n // By default, we just return the state of the store\n return Store.getters[\"Auth/hasAccessToken\"];\n};\n\nconst privacyPolicyIsRequired = () => {\n return Store.getters[\"Auth/isPrivacyPolicySignatureRequired\"];\n};\n\nconst consentIsRequired = () => {\n return Store.getters[\"Auth/isConsentFormSignatureRequired\"];\n};\n\n/**\n * Moves the user to the logout page,\n * which then manages a standard logout action sequence\n */\nconst goToLogout = () => {\n return router.push({ name: \"logout\" }).catch();\n};\n\n/**\n * Move directly the user back to the login screen after clearing user data\n * (without going to the logout page first)\n * @param to the current path the user wanted to display\n * @param next the next route handler\n */\nconst goToLogin = (to, next) => {\n Store.commit(\"Auth/clearAll\");\n\n // Add the previous path to the query so that we go back to it once logged back in.\n let query = to.query;\n query.previousPath = to.path;\n\n next({ name: \"login\", query: query });\n};\n\nrouter.beforeEach(async (to, from, next) => {\n // track routes into insights\n if (to.name === \"loginsaml\") {\n trackPageView(`LoginPage.LoginSAML`);\n }\n /**\n * Use route name for patients pages\n * Except for demopatient which is identified by the path\n */\n if (!to.path.includes(demoPatientUsername)) {\n switch (to.name) {\n case \"Navigation\":\n trackPageView(`Navigation`);\n break;\n case \"Therapist/Patient/Plan\":\n trackPageView(`PatientManagement.Plan`);\n break;\n case \"Therapist/Patient/Teleconsultation\":\n trackPageView(`PatientManagement.Teleconsultation`);\n break;\n case \"Therapist/Patient/Monitor\":\n trackPageView(`PatientManagement.Monitor`);\n break;\n case \"Therapist/Patient/Review\":\n trackPageView(`PatientManagement.Review`);\n break;\n case \"Therapist/Patient/Assessment\":\n trackPageView(`PatientManagement.Assessment`);\n break;\n case \"Therapist/Patient/Profile\":\n trackPageView(`PatientManagement.Profile`);\n break;\n case \"Therapist/Patient/Dashboard\":\n trackPageView(`PatientManagement.Dashboard`);\n break;\n case \"Therapist/Patient/EPRO\":\n trackPageView(`PatientManagement.EPRO`);\n break;\n default:\n break;\n }\n }\n switch (to.path) {\n case \"/patient-list\":\n trackPageView(`PatientList`);\n break;\n case \"/meetings\":\n trackPageView(`Meetings`);\n break;\n case \"/new-patient\":\n trackPageView(`NewPatient`);\n break;\n case \"/templates\":\n trackPageView(`Templates`);\n break;\n case \"/training/playlists\":\n trackPageView(`TrainingMaterial`);\n break;\n case \"/logout\":\n trackPageView(`LoginPage.Logout`);\n break;\n case \"/login\":\n trackPageView(`LoginPage.Login`);\n break;\n case \"/reset-password/request\":\n trackPageView(`LoginPage.ForgotPassword`);\n break;\n case \"/request-SAML-site\":\n trackPageView(`LoginPage.ForgotSAMLSite`);\n break;\n case \"/epro-patients\":\n trackPageView(`EPROPatientList`);\n break;\n /* Therapist, administration pages */\n case \"/therapist-admin/therapists\":\n trackPageView(`User.AdministrationPage.TherapistList`);\n break;\n case \"/therapist-admin/site-managers\":\n trackPageView(`User.AdministrationPage.SiteManagerList`);\n break;\n case \"/therapist-admin/license\":\n trackPageView(`User.AdministrationPage.License`);\n break;\n case \"/therapist-admin/site-parameters\":\n trackPageView(`User.AdministrationPage.SiteManagement`);\n break;\n case \"/therapist-admin/site-units\":\n trackPageView(`User.AdministrationPage.SiteUnitList`);\n break;\n case \"/therapist-admin/patient-training-data\":\n trackPageView(`User.AdministrationPage.ExportTrainingData`);\n break;\n case \"/therapist-admin/personal-access-token\":\n trackPageView(`User.AdministrationPage.PersonalAccessToken`);\n break;\n case \"/therapist-admin/personal-access-token/new\":\n trackPageView(`User.AdministrationPage.PersonalAccessToken.create`);\n break;\n /* Demo patient */\n case \"/patient/demopatient/plan\":\n trackPageView(`DemoPatient.Plan`);\n break;\n case \"/patient/demopatient/teleconsultation\":\n trackPageView(`DemoPatient.Teleconsultation`);\n break;\n case \"/patient/demopatient/monitor\":\n trackPageView(`DemoPatient.Monitor`);\n break;\n case \"/patient/demopatient/review\":\n trackPageView(`DemoPatient.Review`);\n break;\n case \"/patient/demopatient/assessment\":\n trackPageView(`DemoPatient.Assessment`);\n break;\n case \"/patient/demopatient/profile\":\n trackPageView(`DemoPatient.Profile`);\n break;\n case \"/patient/demopatient/epro\":\n trackPageView(`DemoPatient.EPRO`);\n break;\n /* Admin */\n case \"/admin/administrator\":\n trackPageView(`Admin.AdministrationPage.AdminManagement`);\n break;\n case \"/admin/site-management\":\n trackPageView(`Admin.AdministrationPage.SiteManagement`);\n break;\n case \"/admin/site-manager\":\n trackPageView(`Admin.AdministrationPage.SiteManager`);\n break;\n case \"/admin/therapist\":\n trackPageView(`Admin.AdministrationPage.Therapist`);\n break;\n case \"/admin/patient-management\":\n trackPageView(`Admin.AdministrationPage.PatientManagement`);\n break;\n case \"/admin/archived-users\":\n trackPageView(`Admin.AdministrationPage.ArchivedUsers`);\n break;\n case \"/admin/customers\":\n trackPageView(`Admin.AdministrationPage.Customers`);\n break;\n case \"/admin/license\":\n trackPageView(`Admin.AdministrationPage.Licenses`);\n break;\n case \"/admin/patient-license\":\n trackPageView(`Admin.AdministrationPage.PatientLicenses`);\n break;\n case \"/admin/optional-feature-activation\":\n trackPageView(`Admin.AdministrationPage.OptionalFeatures`);\n break;\n case \"/admin/data-export\":\n trackPageView(`Admin.AdministrationPage.DataUserExport`);\n break;\n case \"/admin/feedbackReport\":\n trackPageView(`Admin.AdministrationPage.FeedbackReports`);\n break;\n case \"/admin/asset\":\n trackPageView(`Admin.AdministrationPage.Assets`);\n break;\n case \"/admin/asset/new\":\n trackPageView(`Admin.AdministrationPage.Assets.CreateAsset`);\n break;\n /* Site manager */\n case \"/therapists\":\n trackPageView(`SiteManager.TherapistList`);\n break;\n case \"/site-managers\":\n trackPageView(`SiteManager.SiteManagerList`);\n break;\n case \"/license\":\n trackPageView(`SiteManager.License`);\n break;\n case \"/site-parameters\":\n trackPageView(`SiteManager.SiteManagement`);\n break;\n case \"/site-units\":\n trackPageView(`SiteManager.SiteUnitList`);\n break;\n case \"/personal-access-token\":\n trackPageView(`SiteManager.PersonalAccessToken`);\n break;\n default:\n break;\n }\n\n // Training Materials\n if (to.path.includes(\"/training/playlists/office-hours\")) {\n trackPageView(`TrainingMaterial.OfficeHours`);\n } else if (to.path.includes(\"/training/playlists/clinical-tips\")) {\n trackPageView(`TrainingMaterial.ClinicalTips`);\n } else if (to.path.includes(\"/training/playlists/mindmotion-key-concepts\")) {\n trackPageView(`TrainingMaterial.MindMotionKeyConcepts`);\n }\n\n // Profile pages\n if (to.path.includes(\"profile\")) {\n trackPageView(`Profile`);\n }\n\n // Support pages\n if (to.path.includes(\"support/contact-us\")) {\n trackPageView(`SupportPage.ContactUs`);\n }\n if (to.path.includes(\"support/faq\")) {\n trackPageView(`SupportPage.FrequentlyAskedQuestions`);\n }\n if (to.path.includes(\"support/ifu\")) {\n trackPageView(`SupportPage.InstructionsForUse`);\n }\n\n // Check here we are not trying to auto-login first.\n if (\n to.params.pathMatch !== undefined &&\n to.params.pathMatch.includes(\"autologin\") &&\n to.query !== undefined &&\n to.query.token !== undefined\n ) {\n // Provide token only and check for token existence first\n await attemptAutoLogin(to.query.token)\n .then((_) => {\n // Remove the one time token as it is now useless and would only clutter the url.\n delete to.query.token;\n })\n .catch((_) => {\n // Remove the token as it is not a good one.\n delete to.query.token;\n goToLogin(to, next);\n return;\n });\n }\n\n await checkLogin()\n .then((isLogged) => {\n // First check whether we have the right to go to the desired destination\n if (!checkPermissions(to)) {\n // Console error for development builds\n if (process.env.NODE_ENV === \"development\") {\n console.error(`Permission error while trying to navigate to:`, to);\n }\n if (isLogged && !to.name?.includes(\"home\")) {\n // Then check whether we can go to the default destination\n // and invalidate the previous path\n delete to.query.previousPath;\n next({ name: \"home\", query: to.query });\n return;\n } else {\n // If everything fails, go back to login\n goToLogin(to, next);\n return;\n }\n }\n\n if (isLogged) {\n if (privacyPolicyIsRequired()) {\n if (!to.path.includes(\"onboarding/privacy-policy\")) {\n // Re-route to privacy but keep the potential query parameters and former path\n next({ name: \"onboarding/privacy-policy\", query: to.query });\n return;\n } else {\n next();\n return;\n }\n }\n if (consentIsRequired()) {\n if (!to.path.includes(\"onboarding/consent-form\")) {\n // Re-route to consent but keep the potential query parameters\n next({ name: \"onboarding/consent-form\", query: to.query });\n return;\n } else {\n next();\n return;\n }\n }\n }\n\n // Handles the requested redirection once logged in and the legal documents are signed\n // Also don't redirect when attempting to go to login as it is already handled.\n if (\n to.query !== undefined &&\n to.query.redirect !== undefined &&\n !to.query.redirect.includes(\"login\")\n ) {\n next({ path: to.query.redirect });\n return;\n }\n\n // Otherwise simply follow the next route\n next();\n })\n .catch((error) => {\n if (process.env.NODE_ENV === \"development\") {\n console.log(error);\n }\n });\n});\n\nrouter.onError((error) => {\n if (/ChunkLoadError./i.test(error.message)) {\n window.location.reload();\n }\n});\n\nexport { router as default, goToLogout };\n","import axios from \"axios\";\nimport store from \"@/store\";\nimport { openLoginModal } from \"@/components/login/LoginModal\";\nimport { notify } from \"@/utils/notification\";\nimport { tr } from \"@/utils/translation\";\nimport Customer from \"@/models/Customer.model\";\nimport License from \"@/models/License.model\";\nimport PatientLicense from \"@/models/PatientLicense.model\";\nimport Site from \"@/models/Site.model\";\nimport SiteUnit from \"@/models/SiteUnit.model\";\nimport Timezone from \"@/models/Timezone.model\";\nimport ActivityDescription from \"@/models/ActivityDescription.model\";\nimport Asset from \"@/models/Asset.model\";\nimport UserSession from \"@/models/UserSession.model\";\nimport Profile from \"@/models/Profile.model\";\nimport PersonalSettings from \"@/models/PersonalSettings.model\";\nimport Group from \"@/models/Group.model\";\nimport AuditLog from \"@/models/AuditLog.model\";\nimport VideoMeeting from \"@/models/VideoMeeting.model\";\nimport VideoMeetingRequest from \"@/models/VideoMeetingRequest.model\";\nimport PatientSessionSummary from \"@/models/PatientSessionSummary.model\";\nimport { ProgramPreset } from \"@/models/ProgramPreset.model\";\nimport DayTrainingSummary from \"@/models/DayTrainingSummary.model\";\nimport CustomerNotification from \"@/models/CustomerNotification.model\";\nimport InstructionsForUse from \"@/models/InstructionsForUse.model\";\nimport AuthOptions from \"@/models/AuthOptions.model\";\nimport PasswordOptions from \"@/models/PasswordOptions.model\";\nimport ActivityPatientUsage from \"@/models/ActivityPatientUsage.model\";\nimport OptionalFeatureDefinition from \"@/models/OptionalFeatureDefinition.model\";\nimport OptionalFeatureActivation from \"@/models/OptionalFeatureActivation.model\";\nimport TrainingMaterial from \"@/models/training-material/TrainingMaterial.model\";\nimport TherapeuticGoal from \"@/models/TherapeuticGoal.model\";\nimport LevelRecommendation from \"@/models/LevelRecommendation.model\";\nimport FeedbackReport from \"@/models/FeedbackReport.model\";\nimport FeedbackReportAttachment from \"@/models/FeedbackReportAttachment.model\";\nimport WeeklyActiveTrainingTimeGoalAndCompletion from \"@/models/WeeklyActiveTrainingTimeGoalAndCompletion.model\";\nimport WeeklyActiveTrainingTimeGoal from \"@/models/WeeklyActiveTrainingTimeGoal.model\";\nimport PersonalAccessToken from \"@/models/PersonalAccessToken.model\";\nimport { updateUserAccessRights } from \"@/config/ability\";\nimport { requestNewAuthToken } from \"@/services/auth\";\nimport { getAccessTokenCookie, removeAccessTokenCookie } from \"@/utils/cookies\";\nimport {\n getLocalStorageDeviceId,\n getLocalStorageRefreshToken,\n removeLocalStorageRefreshToken,\n} from \"@/store/localStorage.js\";\nimport { goToLogout } from \"@/router\";\n\nconst loginInterceptor = (config) => {\n const token = store.state.Auth.token || getAccessTokenCookie();\n if (token) {\n config.headers.common[\"Authorization\"] = `Bearer ${token}`;\n }\n return config;\n};\n\n// Common promise used to refresh the auth token using the refresh token\nlet refreshTokenPromise = null; // null | Promise\n\n/**\n * Rejected request interceptor, used to trigger a refresh token call when needed.\n * And display the login modal otherwise\n * @param error\n * @param axiosInstance\n * @returns The response or a promise waiting for the refresh before the response\n */\nconst unauthorizedInterceptor = async (error, axiosInstance) => {\n const response = error.response;\n\n // Unauthorized interception\n if (response && response.status === 401) {\n // The request has already been retried,\n // the user is using an invalid access token even after refreshing it\n if (error.config._retry) {\n return goToLogout();\n }\n\n // Mark the request as retried to make it fail on any second attempt\n error.config._retry = true;\n\n // Don't refresh on a refresh attempt failure\n if (response.config?.url === \"/auth/refresh\") {\n return displayLoginModal(error);\n }\n\n // Check the data is there to request a new token\n const token = store.state.Auth.token || getAccessTokenCookie();\n const refreshToken =\n store.state.Auth.refreshToken || getLocalStorageRefreshToken();\n const deviceId = store.state.Auth.deviceId || getLocalStorageDeviceId();\n\n // If any data is missing, the request cannot be fulfilled anyway\n if (!token || !refreshToken || !deviceId) {\n return displayLoginModal(error);\n }\n\n if (!refreshTokenPromise) {\n refreshTokenPromise = requestNewAuthToken(token, refreshToken, deviceId)\n .catch((error) => {\n // Empty the refresh token data as it is invalid\n refreshTokenPromise = null;\n\n // Clear out token related data\n store.dispatch(\"Auth/setAccessToken\", \"\");\n removeAccessTokenCookie();\n store.dispatch(\"Auth/setRefreshToken\", \"\");\n removeLocalStorageRefreshToken();\n\n // Forward the error\n return Promise.reject(error);\n })\n .then((response) => {\n // Update refresh token promise and date\n refreshTokenPromise = null;\n\n const result = response?.data?.result || {};\n const newToken = result.token;\n const newRefreshToken = result.refreshToken;\n\n return Promise.allSettled([\n store.dispatch(\"Auth/setAccessToken\", newToken),\n store.dispatch(\"Auth/setRefreshToken\", newRefreshToken),\n ]).then(() => {\n return newToken;\n });\n });\n }\n\n return refreshTokenPromise.then((token) => {\n response.config.headers[\"Authorization\"] = `Bearer ${token}`;\n return axiosInstance.request(response.config);\n });\n }\n\n // Notify of a back-end system error\n if (!error || !error.response || error.response.status >= 500) {\n notifyError(error);\n }\n\n return Promise.reject(error);\n};\n\n/**\n * Display the login modal (or stay on the login screen) in an attempt to restore the login credentials\n * @param error Request rejected error\n * @returns The promise returning the login modal response\n */\nconst displayLoginModal = (error) => {\n // Update user right due to token expiration\n updateUserAccessRights();\n\n // If already on the login screen, don't do anything else\n // than checking the error\n if (error?.config.url.includes(\"auth/token\")) {\n return Promise.reject(error);\n }\n\n return openLoginModal().then((token) => {\n error.response.config.headers[\"Authorization\"] = `Bearer ${token}`;\n return axios.request(error.config);\n });\n};\n\n// We use this api to avoid having the error interceptor when persisting login\nconst userLoginApi = axios.create({\n baseURL: `${process.env.VUE_APP_API_URL}${process.env.VUE_APP_USER_API}`,\n});\n\n// We use a specific service for token refresh to avoid looping on interceptors\nconst userRefreshTokenApi = axios.create({\n baseURL: `${process.env.VUE_APP_API_URL}${process.env.VUE_APP_USER_API}`,\n});\n\n// Standard rest api services\n\nconst userApi = axios.create({\n baseURL: `${process.env.VUE_APP_API_URL}${process.env.VUE_APP_USER_API}`,\n});\n\nuserApi.interceptors.request.use(loginInterceptor);\nuserApi.interceptors.response.use(\n (response) => response,\n (error) => unauthorizedInterceptor(error, userApi)\n);\n\nconst activityApi = axios.create({\n baseURL: `${process.env.VUE_APP_API_URL}${process.env.VUE_APP_ACTIVITY_API}`,\n});\n\nactivityApi.interceptors.request.use(loginInterceptor);\nactivityApi.interceptors.response.use(\n (response) => response,\n (error) => unauthorizedInterceptor(error, activityApi)\n);\n\nconst licenseApi = axios.create({\n baseURL: `${process.env.VUE_APP_API_URL}${process.env.VUE_APP_LICENSE_API}`,\n});\n\nlicenseApi.interceptors.request.use(loginInterceptor);\nlicenseApi.interceptors.response.use(\n (response) => response,\n (error) => unauthorizedInterceptor(error, licenseApi)\n);\n\nconst notificationApi = axios.create({\n baseURL: `${process.env.VUE_APP_API_URL}${process.env.VUE_APP_NOTIFICATION_API}`,\n});\n\nnotificationApi.interceptors.request.use(loginInterceptor);\nnotificationApi.interceptors.response.use(\n (response) => response,\n (error) => unauthorizedInterceptor(error, notificationApi)\n);\n\nconst auditApi = axios.create({\n baseURL: `${process.env.VUE_APP_API_URL}${process.env.VUE_APP_AUDIT_API}`,\n});\n\nauditApi.interceptors.request.use(loginInterceptor);\nauditApi.interceptors.response.use(\n (response) => response,\n (error) => unauthorizedInterceptor(error, auditApi)\n);\n\nconst eproApi = axios.create({\n baseURL: `${process.env.VUE_APP_API_URL}${process.env.VUE_APP_EPRO_API}`,\n});\n\neproApi.interceptors.request.use(loginInterceptor);\neproApi.interceptors.response.use(\n (response) => response,\n (error) => unauthorizedInterceptor(error, eproApi)\n);\n\nconst eproWebApi = axios.create({\n baseURL: `${process.env.VUE_APP_API_URL}${process.env.VUE_APP_EPROWEB_API}`,\n});\n\neproWebApi.interceptors.request.use(loginInterceptor);\neproWebApi.interceptors.response.use(\n (response) => response,\n (error) => unauthorizedInterceptor(error, eproWebApi)\n);\n\n/**\n * @description Notify the translated response first message from the provided axios response.\n * If the message translation corresponding is not found, it triggers a default success translation.\n * @param {object} response The axios response object, typically used on then()\n */\nconst notifySuccess = (response) => {\n // Set a default message in case none is found.\n let message = \"\";\n\n if (\n response.data &&\n response.data.messages &&\n response.data.messages.length > 0\n ) {\n // The request was made and the server responded with a status code\n // that falls out of the range of 2xx\n\n // Set a specific message when found\n let firstValue = tr(response.data.messages[0]);\n message = firstValue ? firstValue : message;\n } else if (\n response.data &&\n response.data.errors &&\n response.data.errors.length > 0\n ) {\n // Show response.data.errors as warnings for development builds\n if (process.env.NODE_ENV === \"development\") {\n message = response.data.errors;\n }\n }\n // Show it to the user if any message to show\n if (message) {\n notify(\"success\", message);\n }\n};\n\n/**\n * @description Notify about the errors from the axios response.\n * @param {object} response The axios response object, typically used on then()\n */\nconst notifyWarning = (response) => {\n if (\n response.data &&\n response.data.errors &&\n response.data.errors.length > 0\n ) {\n for (let error of response.data.errors) {\n notify(\"warning\", tr(error));\n }\n }\n};\n\n/**\n * Extract a error message from the provided axios error and return it.\n * Depending on the error state, the correct error inner data is used.\n * If the error translation corresponding to inner data is not found, it uses the provided defaultMessage.\n * @param {object} error The axios error object, typically created on catch()\n * @param {String} defaultMessage The default message to fallback in case no error message is found\n * @param {Boolean} returnOnlyFirst If true, only the first error message is returned, otherwise all of them are concatenated\n * @returns {String} The error message to show to the user\n */\nconst getErrorMessageFrom = (\n error,\n defaultMessage = \"\",\n returnOnlyFirst = false\n) => {\n // Set a default message in case none is found and no fallback message provided.\n let message =\n defaultMessage === \"\" ? tr(\"errors.unknownError\") : defaultMessage;\n\n if (error && !error.response) {\n // Network error\n message = tr(\"errors.system.networkError\");\n } else if (error.response) {\n // The request was made and the server responded with a status code\n // that falls out of the range of 2xx\n\n if (error.response.status === 403) {\n // Access denied error\n message = tr(\"errors.system.accessDenied\");\n }\n\n // Set a specific message when found and attempt to translate it\n // Concatenate every error messages\n if (error.response.data && error.response.data.errors) {\n const translatedErrors = [];\n const untranslatedErrors = [];\n error.response.data.errors.forEach((error) => {\n // translate falling back to default language and then to empty string\n const translatedError = tr([error, \"\"]);\n if (translatedError) {\n translatedErrors.push(translatedError);\n } else {\n untranslatedErrors.push(error);\n }\n });\n // if there is at least one translated error, we show only first one or all of them\n // otherwise we show the first untranslated one or all of them\n if (translatedErrors.length > 0) {\n message = returnOnlyFirst\n ? translatedErrors[0]\n : translatedErrors.join(\"\\n\");\n } else if (untranslatedErrors.length > 0) {\n message = returnOnlyFirst\n ? untranslatedErrors[0]\n : untranslatedErrors.join(\"\\n\");\n }\n // Add information for development builds\n if (process.env.NODE_ENV === \"development\") {\n console.log(\"translated errors\", translatedErrors);\n console.log(\"untranslated errors\", untranslatedErrors);\n }\n }\n\n // Add information for development builds\n if (process.env.NODE_ENV === \"development\") {\n console.log(\"Errors: \", error.response);\n }\n } else if (error.request) {\n // The request was made but no response was received\n // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\n // http.ClientRequest in node.js\n\n // Add information for 4xx and 5xx responses for development builds\n if (process.env.NODE_ENV === \"development\") {\n console.log(\n \"The request was made but something went wrong: \",\n error.request\n );\n }\n } else {\n // Something happened in setting up the request that triggered an Error\n // Add information for 4xx and 5xx responses for development builds\n if (process.env.NODE_ENV === \"development\") {\n console.log(\"An error occurred when setting up the request: \", error);\n }\n }\n\n // Handle password specific errors\n // See: Dragonix.User\\Identity\\MindMazePasswordValidator.cs\n // For the password specific keywords\n const PasswordKeyWords = {\n NotEnoughLetters: \"errors.system.invalidInput\", // Password requirements are displayed\n NotEnoughNumbers: \"errors.system.invalidInput\",\n PasswordTooShort: \"errors.system.invalidInput\",\n NotEnoughUpper: \"errors.system.invalidInput\",\n NotEnoughLower: \"errors.system.invalidInput\",\n NotEnoughSpecial: \"errors.system.invalidInput\",\n SamePassword: \"errors.login.samePassword\",\n };\n if (Object.keys(PasswordKeyWords).includes(message)) {\n message = tr(PasswordKeyWords[message]);\n }\n\n // Handle MMGO specific keyword errors\n // See: Dragonix.User\\Helpers\\ResponseKeys.cs\n // For MMGO specific keywords\n const MMGOKeyWords = {\n ReservedUsername: \"errors.user.reservedUsername\",\n MissingEmail: \"errors.user.emailNotFound\",\n DuplicateEmail: \"errors.email.duplicateEmail\",\n notURLSafeUsername: \"errors.username.notURLSafeUsername\",\n UnknownCreator: \"errors.unknownError\", // Shouldn't happen in the webapp\n UnknownSite: \"errors.user.siteNotFound\",\n NotSiteAdmin: \"errors.user.invalidUserRole\",\n CallerUnassignedInSiteUnits: \"errors.siteManager.invalidSiteManager\",\n MissingEmailOrPatientSiteId: \"errors.patient.missingEmailorPatientSiteId\",\n DuplicatePatientSiteId: \"errors.username.duplicateUsername\",\n };\n if (Object.keys(MMGOKeyWords).includes(message)) {\n message = tr(MMGOKeyWords[message]);\n }\n\n // Show it to the user\n return message;\n};\n\nconst getErrorKeysFrom = (error) => {\n const errors = error.response.data?.errors || [];\n if (Array.isArray(errors)) {\n return errors;\n } else {\n // Handle certain errors returned as an object, e.g.: when the json provided doesn't fit the data format.\n const errorsFromObject = Object.keys(errors);\n // Translate them into true error fields.\n const errorKeys = [];\n errorsFromObject.forEach((e) =>\n errorKeys.push(e.includes(\"errors.\") ? e : `errors.${e}`)\n );\n return errorKeys;\n }\n};\n\n/**\n * @description Notify the translated error message from the provided axios error, if not of Cancel type.\n * @param {object} error The axios error object, typically created on catch()\n */\nconst notifyError = (error) => {\n if (!axios.isCancel(error)) {\n notify(\"error\", getErrorMessageFrom(error));\n }\n};\n\n/**\n * Provides the request result when available, and use the error to notify the UI in case of error, rejecting the promise.\n * This is the typical behavior of the Companion backend requests and should only be used for those.\n * @param promise\n * @returns {Promise<*>} when successful\n */\nconst processRequestResult = async (promise, notifyOnSuccess = false) => {\n return await promise.then(\n (response) => {\n if (notifyOnSuccess) {\n notifySuccess(response);\n }\n return response.data.result;\n },\n (error) => {\n notifyError(error);\n return Promise.reject(error);\n }\n );\n};\n\nLicense.setAxios(licenseApi);\nPatientLicense.setAxios(licenseApi);\nSite.setAxios(userApi);\nSiteUnit.setAxios(userApi);\nTimezone.setAxios(userApi);\nActivityDescription.setAxios(activityApi);\nActivityPatientUsage.setAxios(activityApi);\nAsset.setAxios(licenseApi);\nUserSession.setAxios(userApi);\nCustomer.setAxios(licenseApi);\nProfile.setAxios(userApi);\nPersonalSettings.setAxios(userApi);\nAuditLog.setAxios(auditApi);\nVideoMeeting.setAxios(userApi);\nVideoMeetingRequest.setAxios(userApi);\nPatientSessionSummary.setAxios(activityApi);\nProgramPreset.setAxios(activityApi);\nDayTrainingSummary.setAxios(activityApi);\nCustomerNotification.setAxios(userApi);\nInstructionsForUse.setAxios(licenseApi);\nAuthOptions.setAxios(userApi);\nPasswordOptions.setAxios(userApi);\nGroup.setAxios(userApi);\nOptionalFeatureDefinition.setAxios(licenseApi);\nOptionalFeatureActivation.setAxios(licenseApi);\nTrainingMaterial.setAxios(licenseApi);\nTherapeuticGoal.setAxios(activityApi);\nLevelRecommendation.setAxios(activityApi);\nFeedbackReport.setAxios(userApi);\nFeedbackReportAttachment.setAxios(userApi);\nWeeklyActiveTrainingTimeGoalAndCompletion.setAxios(activityApi);\nWeeklyActiveTrainingTimeGoal.setAxios(activityApi);\nPersonalAccessToken.setAxios(userApi);\n\nexport {\n userApi,\n activityApi,\n licenseApi,\n notificationApi,\n auditApi,\n eproApi,\n eproWebApi,\n userLoginApi,\n userRefreshTokenApi,\n getErrorMessageFrom,\n getErrorKeysFrom,\n notifyError,\n notifySuccess,\n notifyWarning,\n processRequestResult,\n};\n","import {\n userLoginApi,\n userRefreshTokenApi,\n notifyWarning,\n} from \"@/services/api\";\nimport Profile from \"@/models/Profile.model\";\nimport UserSession from \"@/models/UserSession.model\";\nimport Store from \"@/store\";\nimport { updateUserAccessRights } from \"@/config/ability\";\nimport { defaultLocale } from \"@/utils/locales\";\nimport router from \"@/router\";\nimport { generateUUID } from \"@/utils/profile\";\nimport { getLocalStorageDeviceId } from \"@/store/localStorage\";\nimport { ability } from \"@/config/ability\";\n\nexport const PATIENT_ROLE = \"patient\";\nexport const THERAPIST_ROLE = \"therapist\";\nexport const SITEMANAGER_ROLE = \"site\";\nexport const ADMIN_ROLE = \"admin\";\nconst SUPERADMIN_ROLE = \"superadmin\";\nexport const DPO_ROLE = \"dpoadmin\";\nconst SALESPERSON_ROLE = \"salesforcedc\";\n\nconst DATA_SCIENTIST = \"data_scientist\";\nconst ACCOUNT_EXECUTIVE = \"account_executive\";\nconst PUBLISHER = \"publisher\";\nconst ADMIN_MANAGER = \"admin_manager\";\nconst DATA_EXPORT_MANAGER = \"data_export_manager\";\nconst OPTIONAL_FEATURE_MANAGER = \"optional_feature_manager\";\n\nconst roles = [\n PATIENT_ROLE,\n THERAPIST_ROLE,\n ADMIN_ROLE,\n SUPERADMIN_ROLE,\n DPO_ROLE,\n SALESPERSON_ROLE,\n SITEMANAGER_ROLE,\n];\n\n/**\n * Competences of administrators\n */\nconst competences = [\n DATA_SCIENTIST,\n ACCOUNT_EXECUTIVE,\n PUBLISHER,\n ADMIN_MANAGER,\n DATA_EXPORT_MANAGER,\n OPTIONAL_FEATURE_MANAGER,\n];\n\n/**\n * Perform a login using username and password\n */\nconst login = async (username, password) =>\n authenticate(username, password, null, \"auth/token\");\n\n/**\n * Perform a login using username, password and second factor verification code\n */\nconst loginTwoFactor = async (username, password, secondFactor) =>\n authenticate(username, password, secondFactor, \"auth/token-2fa\");\n\nconst authenticate = async (\n username,\n password,\n secondFactor,\n loginEndpoint\n) => {\n const deviceId = await getDeviceId();\n\n return await userLoginApi\n .post(loginEndpoint, {\n userName: username,\n password: password,\n device: deviceId,\n secondFactor: secondFactor,\n })\n .then((response) => {\n notifyWarning(response);\n return response;\n })\n .then((response) => {\n const result = response.data.result;\n // Forces auth data to be ready before taking any other requests\n return Promise.allSettled([\n Store.dispatch(\"Auth/setAccessToken\", result.token),\n Store.dispatch(\"Auth/setRefreshToken\", result.refreshToken),\n ]).then(() => {\n return setUserInformationAndRights(result.userProfile).then(() => {\n return startCurrentUserSession();\n });\n });\n })\n .catch((error) => {\n // Clear access rights\n updateUserAccessRights();\n\n return handleLoginRedirection(error);\n });\n};\n\n/**\n * Get the application unique device Id if existing and generate it if not\n * This is later used to match with the refresh token\n */\nconst getDeviceId = async () => {\n let deviceId = Store.state.Auth.deviceId || getLocalStorageDeviceId();\n if (!deviceId) {\n deviceId = `webapp-${generateUUID()}`;\n // Ensure the data is stored for later calls\n await Store.dispatch(\"Auth/setDeviceId\", deviceId);\n }\n return deviceId;\n};\n\nconst startCurrentUserSession = async () => {\n if (ability.can(\"create\", \"UserSession\")) {\n const deviceId = await getDeviceId();\n const newUserSession = new UserSession({\n startDate: new Date().toISOString(),\n endDate: null,\n hasBeenPerformedOffline: false,\n deviceId: deviceId,\n deviceSoftwareVersion: navigator.userAgent,\n productKind: \"WebApp\",\n });\n return await UserSession.post(newUserSession).catch((error) => {\n if (process.env.NODE_ENV === \"development\") {\n console.error(error);\n }\n return Promise.reject(error);\n });\n } else {\n return Promise.resolve();\n }\n};\n\nconst attemptAutoLogin = async (autoLoginToken) => {\n return await userLoginApi\n .post(`auth/autologin?token=${autoLoginToken}`)\n .then((response) => {\n const { token, refreshToken, userProfile } = response.data.result;\n return Promise.allSettled([\n Store.dispatch(\"Auth/setAccessToken\", token),\n Store.dispatch(\"Auth/setRefreshToken\", refreshToken),\n ]).then(() => {\n return setUserInformationAndRights(userProfile).then(() => {\n return startCurrentUserSession();\n });\n });\n })\n .catch(() => {\n // Clears stores and token data\n Store.commit(\"Auth/clearAll\");\n // Clear access rights\n updateUserAccessRights();\n\n return false;\n });\n};\n\nconst handleLoginRedirection = (error) => {\n if (!error?.response?.data?.errors.length > 0) {\n return Promise.reject(error);\n }\n let postBody = JSON.parse(error.config.data);\n let username = postBody[\"userName\"] || null;\n let password = postBody[\"password\"] || null;\n\n // redirect if use saml error\n const samlErrorKey = \"errors.login.mustUseSAML\";\n\n if (error.response.data.errors.includes(samlErrorKey)) {\n return router\n .push({\n name: \"loginsaml\",\n params: { samlSiteName: error.response.data.samlSitePortal[0] },\n query: { errorKey: samlErrorKey },\n })\n .catch(() => {});\n }\n\n // redirect if password expired error\n const passExpiredErrorKey = \"errors.login.passwordExpired\";\n const passChangeRequiredErrorKey = \"errors.login.passwordResetRequired\";\n if (\n error.response.data.errors.includes(passExpiredErrorKey) ||\n error.response.data.errors.includes(passChangeRequiredErrorKey)\n ) {\n return router.push({\n name: `resetPassword`,\n query: {\n id: error.response.data.userId,\n token: error.response.data.passwordResetToken,\n },\n params: { title: passChangeRequiredErrorKey, email: username },\n });\n }\n\n // redirect if two-factor required\n const twoFactorRequiredError = \"errors.login.twoFactorRequired\";\n if (error.response.data.errors.includes(twoFactorRequiredError)) {\n return router\n .push({\n name: \"login-two-factor\",\n params: { email: username, password: password },\n })\n .catch(() => {});\n }\n\n return Promise.reject(error);\n};\n\n/***\n * Set current user system information in store\n * and reload access rights\n * @param userProfile\n * @returns {Promise}\n */\nconst setUserInformationAndRights = async (userProfile) => {\n let promises = [\n Store.dispatch(\"Auth/setRoles\", userProfile.roles),\n Store.dispatch(\"Auth/setCompetences\", userProfile.competences),\n Store.dispatch(\"Auth/setUserObject\", new Profile(userProfile)),\n Store.dispatch(\"Auth/saveConsent\", userProfile),\n ];\n\n // some users don't have one\n if (userProfile.language) {\n promises.push(Store.dispatch(\"Language/setLanguage\", userProfile.language));\n } else {\n promises.push(Store.dispatch(\"Language/setLanguage\", defaultLocale));\n }\n\n await Promise.all(promises);\n\n updateUserAccessRights();\n};\n\nconst requestPasswordReset = async (email) => {\n return await userLoginApi.post(\"/account/reset-password/request\", {\n email: email,\n });\n\n // we don't return anything here, because we don't want to communicate to the\n // user if an email really exists\n};\n\nconst requestNewAuthToken = async (token, refreshToken, deviceId) => {\n return await userRefreshTokenApi.post(\"/auth/refresh\", {\n accessToken: token,\n refreshToken: refreshToken,\n device: deviceId,\n });\n};\n\n/**\n * Whether the user is a patient\n * @param {array} roles User roles\n */\nconst isPatient = (roles) => {\n return roles.indexOf(PATIENT_ROLE) !== -1;\n};\n\n/**\n * Whether the user is a therapist\n * @param {array} roles User roles\n */\nconst isTherapist = (roles) => {\n return roles.indexOf(THERAPIST_ROLE) !== -1;\n};\n\n/**\n * Whether the user is an admin\n */\nconst isAdmin = (roles) => {\n return roles.indexOf(ADMIN_ROLE) !== -1;\n};\n\n/**\n * Whether the user is a super admin\n */\nconst isSuperAdmin = (roles) => {\n return roles.indexOf(SUPERADMIN_ROLE) !== -1;\n};\n\n/**\n * Whether the user is a dpo\n */\nconst isDPO = (roles) => {\n return roles.indexOf(DPO_ROLE) !== -1;\n};\n\n/**\n * Whether the user is a site manager\n */\nconst isSiteManager = (roles) => {\n return roles.indexOf(SITEMANAGER_ROLE) !== -1;\n};\n\n/**\n * Check the competences of admins\n */\nconst isDataScientist = (competences) => {\n return competences.indexOf(DATA_SCIENTIST) !== -1;\n};\nconst isPublisher = (competences) => {\n return competences.indexOf(PUBLISHER) !== -1;\n};\nconst isAccountExecutive = (competences) => {\n return competences.indexOf(ACCOUNT_EXECUTIVE) !== -1;\n};\nconst isAdminManager = (competences) => {\n return competences.indexOf(ADMIN_MANAGER) !== -1;\n};\nconst isDataExportManager = (competences) => {\n return competences.indexOf(DATA_EXPORT_MANAGER) !== -1;\n};\nconst isOptionalFeatureManager = (competences) => {\n return competences.indexOf(OPTIONAL_FEATURE_MANAGER) !== -1;\n};\n\n/**\n * Get the ability profile based on the role\n * @param {string} role The role\n * @return {string} The ability profile\n */\nconst abilityProfile = (role) => {\n switch (role) {\n case THERAPIST_ROLE:\n return \"TherapistProfile\";\n case PATIENT_ROLE:\n return \"PatientProfile\";\n case SITEMANAGER_ROLE:\n return \"SiteManagerProfile\";\n case DPO_ROLE:\n return \"DpoProfile\";\n case ADMIN_ROLE:\n return \"AdminProfile\";\n default:\n return \"\";\n }\n};\n\nexport {\n login,\n loginTwoFactor,\n attemptAutoLogin,\n requestPasswordReset,\n requestNewAuthToken,\n isPatient,\n isTherapist,\n isAdmin,\n isSuperAdmin,\n isDPO,\n isSiteManager,\n setUserInformationAndRights,\n roles,\n isDataScientist,\n isPublisher,\n isAccountExecutive,\n isAdminManager,\n isDataExportManager,\n isOptionalFeatureManager,\n competences,\n abilityProfile,\n};\n","// Service to fetch the dist/config.json file state\n// This file is used to store environment specific data\n// It is also overridden by the Companion.WebApp web server .Net project.\n\nimport axios from \"axios\";\nimport { generateUUID } from \"@/utils/profile\";\n\nconst environmentConfig = {\n fetchedDate: null,\n AppInsightInstrumentationKey: \"\",\n BuildVersion: \"\",\n ProductVersion: \"\",\n Regions: [],\n NewBadgeExpirationDate: \"\",\n};\n\nasync function loadConfigData() {\n if (!environmentConfig.fetchedDate) {\n return await axios\n .get(\"/config.json?v=\" + generateUUID())\n .then((response) => {\n const configData = response?.data || {};\n\n const setValue = (configKey) => {\n if (configData[configKey]) {\n environmentConfig[configKey] = configData[configKey];\n }\n };\n\n // Attempt to set each key if provided\n for (const key of Object.keys(environmentConfig)) {\n setValue(key);\n }\n\n // Memoize it\n environmentConfig.fetchedDate = new Date();\n return environmentConfig;\n })\n .catch(() => {});\n } else {\n return environmentConfig;\n }\n}\n\nexport default loadConfigData;\n","export const DosageKind = Object.freeze({\n DURATION: \"Duration\", // Triggered by Time (mostly Go)\n REPETITION: \"Repetition\", //Triggered by Repetition (mostly Pro)\n LOGIC: \"Logic\", // Triggered by Game Logic (example : Mind4, Stardust)\n});\n","import { processRequestResult, userApi } from \"@/services/api\";\n\nconst demoPatientUsername = \"demopatient\";\n\n/**\n * Check whether a patient username (site id) exists in the site\n * @param {string} patientSiteId The patient site id\n */\nconst checkIfPatientSiteIdExists = async (patientSiteId) => {\n return await userApi\n .get(`/site/own/contains/patientsiteid/${patientSiteId}`)\n .then((response) => {\n return response.data.result;\n })\n .catch(() => {\n return false;\n });\n};\n\n/**\n * Check whether a username exists\n * @param {string} username The username\n */\nconst checkIfUsernameExists = async (username) => {\n return await userApi\n .get(`profile/username/exists/${username}`)\n .then((response) => {\n return response.data.result;\n })\n .catch(() => {\n return false;\n });\n};\n\n/**\n * Check if an email exists\n * @param {string} email The email\n */\nconst checkIfEmailExists = async (email) => {\n return await userApi\n .get(`profile/email/exists/${email}`)\n .then((response) => {\n return response.data.result;\n })\n .catch(() => {\n return false;\n });\n};\n\n/**\n * Check if an SAMLLoginId exists\n * @param {string} SAMLLoginId The SAMLLoginId\n */\nconst checkIfSAMLLoginIdExists = async (SAMLLoginId, siteId) => {\n return await userApi\n .get(`profile/site/${siteId}/contains/saml-login-id/${SAMLLoginId}`)\n .then((response) => {\n return response.data.result;\n })\n .catch(() => {\n return false;\n });\n};\n\n/**\n * Returns the email delivery activity based on SendGrid information.\n * @param {string} username The username to check the email activity from\n */\nconst getEmailDeliveryActivity = async (username) => {\n return await userApi\n .get(`account/email-activity/${username}`)\n .then((response) => {\n return response.data.result;\n });\n};\n\nexport {\n checkIfPatientSiteIdExists,\n checkIfUsernameExists,\n checkIfEmailExists,\n checkIfSAMLLoginIdExists,\n getEmailDeliveryActivity,\n demoPatientUsername,\n};\n","/**\n * Function used to ensure the variable of the state are changed and not the reference\n * This is required because vuex will watch a reference and changing the reference breaks it\n * @param initialState\n * @param state\n */\nexport const resetState = (initialState, state) => {\n const newState = initialState();\n Object.keys(newState).forEach((key) => {\n state[key] = newState[key];\n });\n};\n","import {\n isPatient,\n isTherapist,\n isAdmin,\n isSuperAdmin,\n isDPO,\n isSiteManager,\n roles,\n isDataScientist,\n isPublisher,\n isAccountExecutive,\n isAdminManager,\n isDataExportManager,\n isOptionalFeatureManager,\n competences,\n} from \"@/services/auth.js\";\nimport {\n deserializeConsent,\n isLatestPossiblePrivacyPolicySigned,\n MaxConsents,\n} from \"@/utils/signedDocuments.js\";\nimport { resetState } from \"@/store/utils\";\nimport { clearStores } from \"@/store\";\nimport {\n areCookiesAccepted,\n removeAccessTokenCookie,\n setAccessTokenCookie,\n} from \"@/utils/cookies.js\";\nimport {\n removeLocalStorageRefreshToken,\n removeLocalStorageStayLoggedIn,\n setLocalStorageDeviceId,\n setLocalStorageRefreshToken,\n setLocalStorageStayLoggedIn,\n} from \"@/store/localStorage.js\";\n\nconst initialState = () => {\n return {\n /**\n * JWT token\n */\n token: null,\n\n /**\n * Refresh token\n */\n refreshToken: null,\n\n /**\n * Unique device id matching the refresh token\n */\n deviceId: null,\n\n /**\n * Whether the cookies are accepted. It is used to broadcast the value\n * across components\n */\n cookiesAccepted: false,\n\n /**\n * Whether to hide the cookie bar. It is used to broadcast the value\n * across components\n */\n hideCookieBar: false,\n\n /**\n * Whether to use the refresh token system and stay logged in\n */\n stayLoggedIn: false,\n\n /**\n * The roles the user has\n *\n * The API sends us a list, so let's save it as a list too, regardless of\n * the fact that for now in our code, you can only have one role\n */\n roles: [],\n\n /**\n * The competences the admin user has\n */\n competences: [],\n\n /**\n * The user profile of the logged-in user\n */\n user: null,\n\n /**\n * Which of the consents were accepted by the user\n */\n consents: Object.assign({}, Array(MaxConsents).fill(false)),\n };\n};\n\nexport default {\n namespaced: true,\n\n state: initialState,\n mutations: {\n /**\n * Reset the store state\n * @param {object} state Module state\n */\n clearStore(state) {\n resetState(initialState, state);\n },\n\n /**\n * Reset all states including this one\n * @param {object} state Module state\n */\n clearAll(state) {\n resetState(initialState, state);\n\n clearStores();\n removeAccessTokenCookie();\n removeLocalStorageRefreshToken();\n removeLocalStorageStayLoggedIn();\n },\n\n /**\n * Set the JWT access token\n * @param {object} state Vuex state\n * @param {string} token token\n */\n setAccessToken(state, token) {\n state.token = token;\n if (areCookiesAccepted()) {\n // Store the cookie as a session cookie\n // if we're not supposed to stay logged in\n const isSessionCookie = !state.stayLoggedIn;\n setAccessTokenCookie(token, isSessionCookie);\n }\n },\n\n /**\n * Set the JWT refresh token\n * only when:\n * - the stay logged in option is checked\n * - and cookies usage is accepted\n * @param {object} state Vuex state\n * @param {string} refreshToken refresh token\n */\n setRefreshToken(state, refreshToken) {\n if (areCookiesAccepted() && state.stayLoggedIn) {\n state.refreshToken = refreshToken;\n setLocalStorageRefreshToken(refreshToken);\n }\n },\n\n /**\n * Set the device id\n * @param {object} state Vuex state\n * @param {string} deviceId device Id\n */\n setDeviceId(state, deviceId) {\n state.deviceId = deviceId;\n setLocalStorageDeviceId(deviceId);\n },\n\n /**\n * Set whether the user should stay logged in using the refresh token\n * @param {object} state Vuex state\n * @param {boolean} stayLoggedIn Whether to stay logged in\n */\n setStayLoggedIn(state, stayLoggedIn) {\n state.stayLoggedIn = !!stayLoggedIn;\n setLocalStorageStayLoggedIn(!!stayLoggedIn);\n },\n\n /**\n * Set whether the user accepted cookies\n * This is set by the cookies bar\n * @param {object} state Vuex state\n * @param {boolean} cookiesAccepted Whether the cookies were accepted\n */\n setCookiesAccepted(state, cookiesAccepted) {\n state.cookiesAccepted = !!cookiesAccepted;\n },\n\n /**\n * Hides the cookie bar\n * @param {object} state Vuex state\n * @param {boolean} hideCookieBar Whether the cookie bar should be hidden\n */\n setHideCookieBar(state, hideCookieBar) {\n state.hideCookieBar = !!hideCookieBar;\n },\n\n /**\n * Set the roles of the user\n * Do some validation of the role strings sent by the API\n * @param {object} state Vuex state\n * @param {array} roles List of roles\n */\n setRoles(state, roles) {\n state.roles = roles;\n },\n\n /**\n * Set the competences of the user\n * @param {object} state Vuex state\n * @param {array} competences List of roles\n */\n setCompetences(state, competences) {\n state.competences = competences;\n },\n\n /**\n * Set the user object\n * @param {object} user The user object\n */\n setUserObject(state, user) {\n state.user = user;\n },\n\n /**\n * Expecting a object like in the state above\n */\n setConsents(state, consents) {\n state.consents = consents;\n },\n\n updatePrivacyPolicy(state, newDocument) {\n if (!state.user.signedDocuments) {\n state.user.signedDocuments = [];\n }\n state.user.signedDocuments.push(newDocument);\n },\n\n setConsentFormSignatureRequired(state, newState) {\n state.user.isConsentFormSignatureRequired = newState;\n },\n },\n\n actions: {\n setAccessToken({ commit }, token) {\n // Prevents storing undefined or null as a string\n if (!token) {\n token = \"\";\n }\n\n commit(\"setAccessToken\", token);\n },\n\n setRefreshToken({ commit }, refreshToken) {\n // Prevents storing undefined or null as a string\n if (!refreshToken) {\n refreshToken = \"\";\n }\n\n commit(\"setRefreshToken\", refreshToken);\n },\n\n setDeviceId({ commit }, deviceId) {\n // Prevents storing undefined or null as a string\n if (!deviceId) {\n deviceId = \"\";\n }\n\n commit(\"setDeviceId\", deviceId);\n },\n\n setStayLoggedIn({ commit }, stayLoggedIn) {\n commit(\"setStayLoggedIn\", !!stayLoggedIn);\n },\n\n setCookiesAccepted({ commit }, cookiesAccepted) {\n commit(\"setCookiesAccepted\", !!cookiesAccepted);\n },\n\n setHideCookieBar({ commit }, hideCookieBar) {\n commit(\"setHideCookieBar\", !!hideCookieBar);\n },\n\n setRoles({ commit }, newState) {\n if (!newState) {\n throw `invalid roles given: ${newState}`;\n }\n\n for (const role of newState) {\n if (roles.indexOf(role) === -1) {\n // something has gone wrong: the API sent us a role we don't understand\n throw `invalid Role found: ${role}`;\n }\n }\n commit(\"setRoles\", newState);\n },\n\n setCompetences({ commit }, newState) {\n if (!newState) {\n return;\n }\n\n for (const competence of newState) {\n if (competences.indexOf(competence) === -1) {\n // something has gone wrong: the API sent us a competence we don't\n // understand;\n throw `invalid Competence found: ${competence}`;\n }\n }\n commit(\"setCompetences\", newState);\n },\n\n /**\n * Deletes all user related data, including authentication tokens\n */\n clearAll({ commit }) {\n commit(\"clearAll\");\n },\n\n setUserObject({ commit, dispatch }, newState) {\n commit(\"setUserObject\", newState);\n dispatch(\"Language/setLanguage\", newState.language, { root: true });\n },\n updatePrivacyPolicy({ commit }, newDocument) {\n commit(\"updatePrivacyPolicy\", newDocument);\n },\n setConsentFormSignatureRequired({ commit }, newState) {\n commit(\"setConsentFormSignatureRequired\", newState);\n },\n\n /**\n * I'm not happy with this solution. We already have all the data\n * in state.userProfile, and we repeatedly do something with the\n * returned data from the API here. Should somehow be re-written.\n * Same applies for the roles: we save them outside of the user object,\n * but in the user object too. Feels very WET\n */\n saveConsent({ commit }, userProfile) {\n if (!isPatient(userProfile.roles)) {\n // only for patient\n return;\n }\n\n const consents = deserializeConsent(userProfile.signedDocuments);\n commit(\"setConsents\", consents);\n },\n\n setConsents({ commit }, consents) {\n commit(\"setConsents\", consents);\n },\n clearStore({ commit }) {\n commit(\"clearStore\");\n },\n },\n getters: {\n /**\n * Whether the user has an access token\n * @param {object} state Module state\n */\n hasAccessToken(state) {\n return state.token !== null;\n },\n\n /**\n * Whether the user needs to sign the privacy policy\n * @param state\n */\n isPrivacyPolicySignatureRequired(state) {\n // Don't check the privacy policy when the current user is not defined\n // or when the backend doesn't think this is needed.\n // (e.g. admins, already up to date, ...)\n if (!state.user || !state.user.isPrivacyPolicySignatureRequired) {\n return false;\n }\n\n // Otherwise check the current user document status\n return !isLatestPossiblePrivacyPolicySigned(\n state.user?.signedDocuments || []\n );\n },\n /**\n * Whether the user needs to sign the consent form\n * @param state\n */\n isConsentFormSignatureRequired(state) {\n if (state.user != null) {\n return state.user.isConsentFormSignatureRequired;\n }\n return false;\n },\n\n /**\n * Whether the user is a MindMotion user (Therapist, Patient or SiteManager)\n * @param {object} state Module state\n */\n isMindMotionUser(state) {\n return (\n isPatient(state.roles) ||\n isTherapist(state.roles) ||\n isSiteManager(state.roles)\n );\n },\n\n isPatient(state) {\n return isPatient(state.roles);\n },\n\n isTherapist(state) {\n return isTherapist(state.roles);\n },\n\n isAdmin(state) {\n return isAdmin(state.roles);\n },\n\n isSuperAdmin(state) {\n return isSuperAdmin(state.roles);\n },\n\n isDPO(state) {\n return isDPO(state.roles);\n },\n\n isSiteManager(state) {\n return isSiteManager(state.roles);\n },\n\n isSuperTherapist(state) {\n if (!state.user) {\n return false;\n }\n return state.user.isSuperTherapist && isTherapist(state.roles);\n },\n\n username(state) {\n if (!state.user) {\n return null;\n }\n return state.user.userName;\n },\n\n siteId(state) {\n if (!state.user) {\n return null;\n }\n return state.user.siteId;\n },\n\n /**\n * Check the competences of admins\n */\n isDataScientistAdmin(state) {\n return isAdmin(state.roles) && isDataScientist(state.competences);\n },\n isPublisherAdmin(state) {\n return isAdmin(state.roles) && isPublisher(state.competences);\n },\n isAccountExecutiveAdmin(state) {\n return isAdmin(state.roles) && isAccountExecutive(state.competences);\n },\n isAdminManagerAdmin(state) {\n return isAdmin(state.roles) && isAdminManager(state.competences);\n },\n isDataExportManagerAdmin(state) {\n return isAdmin(state.roles) && isDataExportManager(state.competences);\n },\n isOptionalFeatureManagerAdmin(state) {\n return (\n isAdmin(state.roles) && isOptionalFeatureManager(state.competences)\n );\n },\n },\n};\n","import i18n from \"@/i18n\";\nimport { getLanguageCodeFrom, defaultLocale } from \"@/utils/locales\";\nimport { getLanguage, setLanguage } from \"@/store/localStorage\";\n\nexport default {\n namespaced: true,\n\n state: {\n /**\n * Stores the actual language.\n * Initializes it from the localStorage.\n * If there's none, we fall back to 'en-US'.\n */\n language: getLanguage() || defaultLocale,\n },\n\n mutations: {\n /**\n * Set language\n * @param {object} state Vuex state\n * @param {string} language\n */\n setLanguage(state, language) {\n state.language = language;\n },\n },\n actions: {\n setLanguage({ commit, getters }, language) {\n commit(\"setLanguage\", language);\n setLanguage(language);\n const locale = getLanguageCodeFrom(language);\n i18n.changeLanguage(locale);\n },\n refreshLanguage({ getters }) {\n const locale = getLanguageCodeFrom(getters.language);\n i18n.changeLanguage(locale);\n },\n },\n getters: {\n language(state) {\n return state.language;\n },\n isRTLLanguage(state) {\n return !!state.language?.startsWith(\"ar\");\n },\n languageDirection(state, getters) {\n return getters.isRTLLanguage ? \"rtl\" : \"ltr\";\n },\n },\n};\n","import { resetState } from \"@/store/utils\";\nimport { defaultLocale } from \"@/utils/locales\";\n\nconst initialState = () => {\n return {\n email: null,\n username: null,\n language: defaultLocale,\n };\n};\n\n/**\n * Store used in the add patient process\n */\nexport default {\n namespaced: true,\n\n state: initialState,\n mutations: {\n /**\n * Set email\n * @param {object} state Vuex state\n * @param {string} token Email\n */\n setEmail(state, email) {\n state.email = email;\n },\n /**\n * Set username\n * @param {object} state Vuex state\n * @param {string} username Username\n */\n setUsername(state, username) {\n state.username = username;\n },\n /**\n * Set username\n * @param {object} state Vuex state\n * @param {string} username Username\n */\n setLanguage(state, language) {\n state.language = language;\n },\n /**\n * Clear all state variables\n * @param {object} state Vuex state\n */\n clearStore(state) {\n resetState(initialState, state);\n },\n },\n actions: {\n setEmail({ commit }, newState) {\n commit(\"setEmail\", newState);\n },\n setUsername({ commit }, newState) {\n commit(\"setUsername\", newState);\n },\n setLanguage({ commit }, newState) {\n commit(\"setLanguage\", newState);\n },\n clearStore({ commit }) {\n commit(\"clearStore\");\n },\n },\n};\n","import { resetState } from \"@/store/utils\";\n\nconst initialState = () => {\n return {\n /**\n * The user profile of the logged-in user\n */\n user: null,\n /**\n * Whether the current user Zoom access granted to manage their Zoom meetings\n */\n accessGranted: null,\n /**\n * The current user Zoom account type\n */\n accountType: null,\n /**\n * Whenever the zoom feature is activated for user\n */\n zoomFeatureActivated: null,\n };\n};\n\nexport default {\n namespaced: true,\n\n state: initialState,\n\n mutations: {\n setZoomAccess(state, isAccessGranted) {\n state.accessGranted = isAccessGranted;\n },\n setAccountType(state, accountType) {\n state.accountType = accountType;\n },\n setZoomFeatureActivation(state, status) {\n state.zoomFeatureActivated = status;\n },\n clearStore(state) {\n resetState(initialState, state);\n },\n },\n actions: {\n setZoomAccess({ commit }, accessGranted) {\n commit(\"setZoomAccess\", accessGranted);\n },\n setAccountType({ commit }, accountType) {\n commit(\"setAccountType\", accountType);\n },\n setZoomFeatureActivation({ commit }, status) {\n commit(\"setZoomFeatureActivation\", status);\n },\n clearStore({ commit }) {\n commit(\"clearStore\");\n },\n },\n getters: {\n accessGranted(state) {\n return state.accessGranted;\n },\n accountType(state) {\n return state.accountType;\n },\n zoomFeatureActivated(state) {\n return state.zoomFeatureActivated;\n },\n },\n};\n","import cloneDeep from \"lodash/cloneDeep\";\nimport { resetState } from \"@/store/utils\";\n\nconst initialState = () => {\n return {\n user: null,\n };\n};\n\n/**\n * Store used to set patient profile data at the end of account creation\n * or for profile modification purposes.\n * See Onboarding store for the data used during the patient account creation process.\n */\nexport default {\n namespaced: true,\n\n state: initialState,\n\n mutations: {\n setUser(state, user) {\n state.user = cloneDeep(user);\n // Set user gender if not set by the back-end\n if (state.user != null && !state.user.gender) {\n state.user.gender = \"Undefined\";\n }\n },\n clearStore(state) {\n resetState(initialState, state);\n },\n },\n actions: {\n setUser({ commit }, user) {\n commit(\"setUser\", user);\n },\n clearStore({ commit }) {\n commit(\"clearStore\");\n },\n },\n};\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\nimport VuexORM from \"@vuex-orm/core\";\nimport VuexORMAxios from \"@vuex-orm/plugin-axios\";\nimport Auth from \"@/store/Auth.js\";\nimport Language from \"@/store/Language.js\";\nimport Onboarding from \"@/store/Onboarding.js\";\nimport ZoomAccess from \"@/store/ZoomAccess.js\";\nimport Group from \"@/models/Group.model\";\nimport Profile from \"@/store/Profile\";\nimport ProfileModel from \"@/models/Profile.model\";\nimport PersonalSettings from \"@/models/PersonalSettings.model\";\nimport Customer from \"@/models/Customer.model\";\nimport License from \"@/models/License.model\";\nimport PatientLicense from \"@/models/PatientLicense.model\";\nimport Site from \"@/models/Site.model\";\nimport SiteUnit from \"@/models/SiteUnit.model\";\nimport Timezone from \"@/models/Timezone.model\";\nimport ActivityDescription from \"@/models/ActivityDescription.model\";\nimport Asset from \"@/models/Asset.model\";\nimport UserSession from \"@/models/UserSession.model\";\nimport AuditLog from \"@/models/AuditLog.model\";\nimport VideoMeeting from \"@/models/VideoMeeting.model\";\nimport VideoMeetingRequest from \"@/models/VideoMeetingRequest.model\";\nimport PatientSessionSummary from \"@/models/PatientSessionSummary.model\";\nimport { ProgramPreset } from \"@/models/ProgramPreset.model\";\nimport DayTrainingSummary from \"@/models/DayTrainingSummary.model\";\nimport PerformanceActivityResult from \"@/models/PerformanceActivityResult.model\";\nimport PerformanceActivityPlanningAndTraining from \"@/models/PerformanceActivityPlanningAndTraining.model\";\nimport CustomerNotification from \"@/models/CustomerNotification.model\";\nimport InstructionsForUse from \"@/models/InstructionsForUse.model\";\nimport AuthOptions from \"@/models/AuthOptions.model\";\nimport PasswordOptions from \"@/models/PasswordOptions.model\";\nimport ActivityPatientUsage from \"@/models/ActivityPatientUsage.model\";\nimport OptionalFeatureDefinition from \"@/models/OptionalFeatureDefinition.model\";\nimport OptionalFeatureActivation from \"@/models/OptionalFeatureActivation.model\";\nimport TrainingMaterial from \"@/models/training-material/TrainingMaterial.model\";\nimport TherapeuticGoal from \"@/models/TherapeuticGoal.model\";\nimport LevelRecommendation from \"@/models/LevelRecommendation.model\";\nimport FeedbackReport from \"@/models/FeedbackReport.model\";\nimport FeedbackReportAttachment from \"@/models/FeedbackReportAttachment.model\";\nimport WeeklyActiveTrainingTimeGoalAndCompletion from \"@/models/WeeklyActiveTrainingTimeGoalAndCompletion.model\";\nimport WeeklyActiveTrainingTimeGoal from \"@/models/WeeklyActiveTrainingTimeGoal.model\";\nimport PersonalAccessToken from \"@/models/PersonalAccessToken.model\";\n\nVue.use(Vuex);\n\nVuexORM.use(VuexORMAxios);\n\nconst database = new VuexORM.Database();\n\ndatabase.register(Customer);\ndatabase.register(License);\ndatabase.register(PatientLicense);\ndatabase.register(Site);\ndatabase.register(SiteUnit);\ndatabase.register(Timezone);\ndatabase.register(ActivityDescription);\ndatabase.register(ActivityPatientUsage);\ndatabase.register(Asset);\ndatabase.register(UserSession);\ndatabase.register(ProfileModel);\ndatabase.register(PersonalSettings);\ndatabase.register(AuditLog);\ndatabase.register(VideoMeeting);\ndatabase.register(VideoMeetingRequest);\ndatabase.register(PatientSessionSummary);\ndatabase.register(ProgramPreset);\ndatabase.register(DayTrainingSummary);\ndatabase.register(PerformanceActivityResult);\ndatabase.register(PerformanceActivityPlanningAndTraining);\ndatabase.register(CustomerNotification);\ndatabase.register(InstructionsForUse);\ndatabase.register(AuthOptions);\ndatabase.register(Group);\ndatabase.register(OptionalFeatureDefinition);\ndatabase.register(OptionalFeatureActivation);\ndatabase.register(TrainingMaterial);\ndatabase.register(PasswordOptions);\ndatabase.register(TherapeuticGoal);\ndatabase.register(LevelRecommendation);\ndatabase.register(FeedbackReport);\ndatabase.register(FeedbackReportAttachment);\ndatabase.register(WeeklyActiveTrainingTimeGoalAndCompletion);\ndatabase.register(WeeklyActiveTrainingTimeGoal);\ndatabase.register(PersonalAccessToken);\n\nconst store = new Vuex.Store({\n modules: {\n Auth,\n Language,\n Onboarding,\n Profile,\n ZoomAccess,\n },\n plugins: [VuexORM.install(database)],\n});\n\n/**\n * Clears all data locally stored on the webapp, including ORM data.\n */\nconst clearStores = () => {\n Promise.all([\n store.dispatch(\"Profile/clearStore\"),\n store.dispatch(\"Onboarding/clearStore\"),\n store.dispatch(\"ZoomAccess/clearStore\"),\n store.dispatch(\"entities/deleteAll\"),\n store.dispatch(\"Auth/clearStore\"),\n ]).catch((e) => {\n // Show debug data only in development environment\n if (process.env.NODE_ENV === \"development\") {\n console.log(e);\n }\n });\n};\n\n/**\n * Clears all possible data from the previously selected patient.\n */\nconst clearSelectedPatientStoreData = () => {\n return Promise.all([\n store.dispatch(\"Profile/clearStore\"),\n store.dispatch(\"Onboarding/clearStore\"),\n UserSession.deleteAll(),\n ProgramPreset.deleteAll(),\n DayTrainingSummary.deleteAll(),\n PerformanceActivityResult.deleteAll(),\n PerformanceActivityPlanningAndTraining.deleteAll(),\n ActivityPatientUsage.deleteAll(),\n TherapeuticGoal.deleteAll(),\n WeeklyActiveTrainingTimeGoal.deleteAll(),\n WeeklyActiveTrainingTimeGoalAndCompletion.deleteAll(),\n LevelRecommendation.deleteAll(),\n ]).catch((e) => {\n // Show debug data only in development environment\n if (process.env.NODE_ENV === \"development\") {\n console.log(e);\n }\n });\n};\n\nexport default store;\nexport { clearStores, clearSelectedPatientStoreData };\n","// Data stored in the local storage\n\nconst refreshTokenStorageName = \"mm_refresh_token\";\nconst deviceIdStorageName = \"mm_device_id\";\nconst languageStorageName = \"mm_language\";\nconst stayLoggedInStorageName = \"mm_stay_logged_in\";\n\n// Language\nexport function setLanguage(language) {\n return window.localStorage.setItem(languageStorageName, language);\n}\n\nexport function getLanguage() {\n let language = window.localStorage.getItem(languageStorageName);\n // Language is set based on the navigator and its validity will be checked when loading the page\n if (!language) {\n language = navigator.language || navigator.languages[0];\n setLanguage(language);\n }\n return language;\n}\n\n// Webapp Device ID\nexport function setLocalStorageDeviceId(deviceId) {\n window.localStorage.setItem(deviceIdStorageName, deviceId);\n}\n\nexport function getLocalStorageDeviceId() {\n return window.localStorage.getItem(deviceIdStorageName);\n}\n\n// Refresh token\nexport function setLocalStorageRefreshToken(refreshToken) {\n window.localStorage.setItem(refreshTokenStorageName, refreshToken);\n}\n\nexport function getLocalStorageRefreshToken() {\n return window.localStorage.getItem(refreshTokenStorageName);\n}\n\nexport function removeLocalStorageRefreshToken() {\n window.localStorage.removeItem(refreshTokenStorageName);\n}\n\n// Stay logged in boolean\nexport function setLocalStorageStayLoggedIn(stayLoggedIn) {\n window.localStorage.setItem(stayLoggedInStorageName, stayLoggedIn);\n}\n\nexport function getLocalStorageStayLoggedIn() {\n return (\n JSON.parse(window.localStorage.getItem(stayLoggedInStorageName)) === true\n );\n}\n\nexport function removeLocalStorageStayLoggedIn() {\n window.localStorage.removeItem(stayLoggedInStorageName);\n}\n","// Data stored in the session storage\nconst disableTeleconsultationInStorageName = \"mm_disable_teleconsultation\";\nconst disableSideBarInStorageName = \"mm_disable_sidebar\";\n\n// Disable teleconsultation\nexport function setSessionStorageDisableTeleconsultation(\n disableTeleconsultation\n) {\n window.sessionStorage.setItem(\n disableTeleconsultationInStorageName,\n disableTeleconsultation\n );\n}\n\nexport function getSessionStorageDisableTeleconsultation() {\n return (\n window.sessionStorage.getItem(disableTeleconsultationInStorageName) ===\n \"true\"\n );\n}\n\n// Disable sidebar\nexport function setSessionStorageDisableSideBar(disableSideBar) {\n window.sessionStorage.setItem(disableSideBarInStorageName, disableSideBar);\n}\n\nexport function getSessionStorageDisableSideBar() {\n return window.sessionStorage.getItem(disableSideBarInStorageName) === \"true\";\n}\n","/**\n * Active side keys.\n * Used in conjunction with trained functions to create categories\n * and for translations\n */\nconst ActiveSidesKeys = {\n NotApplicable: \"Bilateral\",\n undefined: \"Bilateral\",\n Left: \"Left\",\n Right: \"Right\",\n};\n\n/**\n * Returns the formatted active side based on raw active side data.\n * @param activeSide {string}\n * @return {string}\n */\nconst getFormattedActiveSide = (activeSide) => {\n return ActiveSidesKeys[activeSide] == undefined\n ? ActiveSidesKeys.undefined\n : ActiveSidesKeys[activeSide];\n};\n\nexport { getFormattedActiveSide };\n","import Cookies from \"js-cookie\";\n\nconst cookiesAcceptedName = \"companion_cookies_accepted\";\nconst tokenCookieName = \"mm_token\"; // N.B.: Name also used by the MMGO\nconst cookieBarState = \"companion_cookie_bar\";\n\nconst CookieStatus = Object.freeze({\n NotSet: \"NotSet\",\n Accepted: \"Accepted\",\n Declined: \"Declined\",\n});\n\nexport function areCookiesAccepted() {\n return localStorage.getItem(cookiesAcceptedName) === CookieStatus.Accepted;\n}\n\nexport function acceptCookies() {\n localStorage.setItem(cookiesAcceptedName, CookieStatus.Accepted);\n}\n\nexport function declineCookies() {\n localStorage.setItem(cookiesAcceptedName, CookieStatus.Declined);\n}\n\n/**\n * Hide the cookie bar, e.g. when in navigate mode\n */\nexport function hideCookieBar() {\n sessionStorage.setItem(cookieBarState, \"hide\");\n}\n\nexport function isCookieBarHidden() {\n return sessionStorage.getItem(cookieBarState) === \"hide\";\n}\n\n/**\n * Set the access token cookie value\n * The access token cookie itself will expire after 30 days if not set as a session cookie\n * See: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Set-Cookie/SameSite\n * We flag our cookies as secure and permit their use in third party apps.\n * @param token {string}\n */\n\nexport function setAccessTokenCookie(token, sessionCookie = true) {\n const expirationInDaysFromNow = 30;\n Cookies.set(tokenCookieName, token, {\n sameSite: \"Strict\",\n secure: true,\n expires: sessionCookie ? undefined : expirationInDaysFromNow,\n });\n}\n\nexport function getAccessTokenCookie() {\n return Cookies.get(tokenCookieName);\n}\n\nexport function removeAccessTokenCookie() {\n Cookies.remove(tokenCookieName, { sameSite: \"Strict\", secure: true });\n}\n\n// Telemetry cookies\nexport function setAppInsightCookie(name, value) {\n Cookies.set(name, value, { sameSite: \"Strict\", secure: true });\n}\n\nexport function getAppInsightCookie(name) {\n return Cookies.get(name);\n}\n\nexport function removeAppInsightCookie(name) {\n Cookies.remove(name, { sameSite: \"Strict\", secure: true });\n}\n","/*\n The date utils mainly uses date-fns for date formatting and transformations\n https://date-fns.org/docs/Getting-Started\n\n */\n\nimport {\n format as formatFns,\n subDays,\n isSameDay,\n isSameYear,\n startOfWeek,\n endOfWeek,\n getWeek,\n subYears,\n} from \"date-fns\";\nimport { fr, it, es, ro, enGB, enUS, de, ar } from \"date-fns/locale\";\nimport store from \"@/store\";\nimport { defaultLocale, getLocaleFrom } from \"@/utils/locales\";\n\nconst DMMMMYYYY = \"d MMMM yyyy\";\nconst DDMMMYYYY = \"dd MMM yyyy\";\nconst DDMMM = \"dd MMM\";\nconst DMMMM = \"d MMMM\";\nconst EEEEDMMMM = \"EEEE, d MMMM\"; // Monday, 1\nconst EEEEDMMMMYYYY = \"EEEE, d MMMM yyyy\"; // Monday, 1 january 1900\nconst MMMMYYYY = \"MMMM yyyy\";\nconst DDMMMYYYYHHmm = \"dd MMM yyyy HH:mm\";\nconst DDMMMYYYYHHmmA = \"dd MMM yyyy hh:mm a\";\nconst DDMMMYYYYHHmmssSSS = \"dd MMM yyyy HH:mm:ss.SSS\";\nconst DDMMMYYYYHHmmssSSSA = \"dd MMM yyyy hh:mm:ss.SSS a\";\nconst DDMMMYYYYHHMMss = \"dd MMM yyyy HH:mm:ss\";\nconst DDMMMYYYYHHMMssA = \"dd MMM yyyy hh:mm:ss a\";\nconst Hmm = \"H:mm\";\nconst HmmA = \"h:mm a\";\nconst HHmm = \"HH:mm\";\nconst HHmmA = \"hh:mm a\";\nconst MMDD = \"MM dd\";\n\n/**\n * date-fns Locale object used for different time/date localization purposes.\n */\nconst locales = {\n \"en-GB\": enGB,\n \"en-US\": enUS,\n fr: fr,\n it: it,\n es: es,\n ro: ro,\n de: de,\n ar: ar,\n};\n\nfunction getDefaultBirthDate() {\n return subYears(new Date(), 70);\n}\n\nfunction format(value, format) {\n // check if value is a date\n if (value instanceof Date) {\n return formatFns(value, format, {\n locale: locales[store.getters[\"Language/language\"]],\n });\n }\n\n // If value is null or undefined return empty string\n if (!value) {\n return \"\";\n }\n\n // if it is not a date format it to date\n if (!(value instanceof Date)) {\n value = new Date(value);\n }\n\n return formatFns(value, format, {\n locale: locales[store.getters[\"Language/language\"]],\n });\n}\n\nfunction use12HourFormat() {\n return getLocaleFrom(store.getters[\"Language/language\"]) === defaultLocale;\n}\n\n/**\n * Format the date to a string with the format DDMMM\n * @param {date} value\n */\nfunction formatToDDMMM(value) {\n return format(value, DDMMM);\n}\n\nfunction formatToDMMMM(value) {\n return format(value, DMMMM);\n}\n\nfunction formatToEEEEDMMMM(value) {\n return format(value, EEEEDMMMM);\n}\n\nfunction formatToEEEEDMMMMYYYY(value) {\n return format(value, EEEEDMMMMYYYY);\n}\n\n/**\n * Format the date to a string with the format DDMMMYYYY\n * @param {date} value\n */\nfunction formatToDDMMMYYYY(value) {\n return format(value, DDMMMYYYY);\n}\n\nfunction formatToDMMMMYYYY(value) {\n return format(value, DMMMMYYYY);\n}\n\nfunction formatToDDMMMYYYYHmm(value, use12hIfAvailable = true) {\n return format(\n value,\n use12HourFormat() && use12hIfAvailable ? DDMMMYYYYHHmmA : DDMMMYYYYHHmm\n );\n}\n\nfunction formatToDDMMMYYYYHHMMss(value, use12hIfAvailable = true) {\n return format(\n value,\n use12HourFormat() && use12hIfAvailable ? DDMMMYYYYHHMMssA : DDMMMYYYYHHMMss\n );\n}\n\nfunction formatToDDMMMYYYYHHmmssSSS(value, use12hIfAvailable = true) {\n return format(\n value,\n use12HourFormat() && use12hIfAvailable\n ? DDMMMYYYYHHmmssSSSA\n : DDMMMYYYYHHmmssSSS\n );\n}\n\nfunction formatToHmm(value, use12hIfAvailable = true) {\n return format(value, use12HourFormat() && use12hIfAvailable ? HmmA : Hmm);\n}\n\nfunction formatToHHmm(value, use12hIfAvailable = true) {\n return format(value, use12HourFormat() && use12hIfAvailable ? HHmmA : HHmm);\n}\n\nfunction formatToMMDD(value) {\n return format(value, MMDD);\n}\n\nfunction formatToMMMMYYYY(value) {\n return format(value, MMMMYYYY);\n}\n\n/**\n * Returns whether the provided object is a valid date\n * @param date\n */\nfunction isValidDate(date) {\n return date instanceof Date && !isNaN(date);\n}\n\n// Returns whether the current date is today\nfunction isToday(date) {\n let today = new Date();\n return isSameDay(today, date);\n}\n\nfunction isYesterday(date) {\n let yesterday = subDays(new Date(), 1);\n return isSameDay(yesterday, date);\n}\n\nfunction isSameYearAsToday(date) {\n let today = new Date();\n return isSameYear(today, date);\n}\n\n// Returns whether the date is in the past\nfunction isInThePast(date) {\n return date < new Date();\n}\n\n// Get the minimum time of the day for the given date\nfunction getDayDate(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n}\n\nfunction startOfWeekForCurrentLanguage(date) {\n return startOfWeek(date, {\n locale: locales[store.getters[\"Language/language\"]],\n });\n}\n\nfunction endOfWeekForCurrentLanguage(date) {\n return endOfWeek(date, {\n locale: locales[store.getters[\"Language/language\"]],\n });\n}\n\nfunction getWeekForCurrentLanguage(date) {\n return getWeek(date, {\n locale: locales[store.getters[\"Language/language\"]],\n });\n}\n\nexport {\n getDefaultBirthDate,\n formatToDDMMMYYYYHHMMss,\n formatToDDMMMYYYYHHmmssSSS,\n formatToDDMMMYYYY,\n formatToDMMMMYYYY,\n formatToDDMMM,\n formatToDMMMM,\n formatToMMMMYYYY,\n formatToDDMMMYYYYHmm,\n formatToEEEEDMMMM,\n formatToEEEEDMMMMYYYY,\n formatToHmm,\n formatToHHmm,\n formatToMMDD,\n format,\n isValidDate,\n isToday,\n isYesterday,\n getDayDate,\n isInThePast,\n isSameYearAsToday,\n use12HourFormat,\n startOfWeekForCurrentLanguage,\n endOfWeekForCurrentLanguage,\n getWeekForCurrentLanguage,\n};\n","import { lowerFirst } from \"lodash\";\nimport { tr } from \"@/utils/translation\";\n\n/**\n * Transform an array of string to dropdown entries.\n * @param ids [string] array of string ids to set as options\n * @param translationPrefix path to the translation key\n */\nfunction getDropdownEntries(entries, translationPrefix) {\n const entriesTranslated = Object.values(entries).map((id) => ({\n id: id,\n name: tr(`${translationPrefix}.${lowerFirst(id)}`),\n }));\n return getDropdownOptionsFromObjectArray(entriesTranslated);\n}\n\nfunction groupDropdownEntries(dropdownObject) {\n const entries = Object.values(dropdownObject);\n\n // Add indent key true to the entry within the group defined by prefix word\n let title = \"\";\n\n const entriesGrouped = entries.map((entry, index) => {\n // If we already found title in previous iterations check if we continue\n if (title && entry.id.startsWith(title)) {\n entry[\"indent\"] = true;\n return entry;\n } else {\n title = \"\";\n }\n\n // If previous id is prefix of the current id than it's group with\n const previous = entries[index - 1]?.id.slice(0, -1);\n\n if (previous && entry.id.startsWith(previous)) {\n title = previous;\n entry[\"indent\"] = true;\n return entry;\n }\n return entry;\n });\n\n return getDropdownOptionsFromObjectArray(entriesGrouped);\n}\n\n/**\n * Get dropdown options from object array\n * @param entries {Array} array of objects to set as options.\n * Object has the following properties\n * - id: [mandatory] is the unique key of the option\n * - name: translated name to display the option\n * - icon: icon to display as option prefix\n * - description: description to add below the option\n */\nfunction getDropdownOptionsFromObjectArray(entries) {\n return entries.reduce((obj, entry) => {\n obj[entry.id] = entry;\n obj[entry.id][\"name\"] = entry.name || entry.id;\n obj[entry.id][\"icon\"] = entry.icon || \"\";\n obj[entry.id][\"description\"] = entry.description || \"\";\n obj[entry.id][\"$isDisabled\"] = entry.isDisabled || false;\n return obj;\n }, {});\n}\n\nexport {\n getDropdownEntries,\n getDropdownOptionsFromObjectArray,\n groupDropdownEntries,\n};\n","import { tr } from \"@/utils/translation\";\nimport { clamp } from \"@/utils/math\";\n\n/**\n * Get minutes from seconds\n * @param {number} seconds The seconds\n */\nfunction getMinutesFromSeconds(seconds) {\n return Math.round(seconds / 60);\n}\n\nfunction getMinutesFromSecondsRoundUpper(seconds) {\n return Math.ceil(seconds / 60);\n}\n\nfunction getDaysAndHoursFromHours(hours) {\n let displayHours = hours % 24;\n let displayDays = Math.round(hours - displayHours) / 24;\n return [displayDays, displayHours];\n}\n\n/**\n * Get hours and minutes string from minutes\n * @param {number} minutes The minutes\n */\nfunction getHoursAndMinutesFromMinutes(minutes) {\n let displayMinutes = minutes % 60;\n let displayHours = Math.round(minutes - displayMinutes) / 60;\n return [displayHours, displayMinutes];\n}\n\n/**\n * Get minutes and seconds array of values from seconds\n * @param {number} seconds The seconds\n */\nfunction getMinutesAndSecondsFromSeconds(seconds) {\n let roundedSeconds = Math.round(seconds);\n let displayedSeconds = roundedSeconds % 60;\n let displayedMinutes = (roundedSeconds - displayedSeconds) / 60;\n return [displayedMinutes, displayedSeconds];\n}\n\nfunction getAdaptiveTranslatedTimeFromSeconds(\n seconds,\n withoutZeroUnit = false,\n withoutSeconds = false\n) {\n // Returns '<1s' when between 0 and 1s\n if (seconds > 0 && seconds < 1) {\n return tr(\"Common.DurationWithValues.lessThanOneSecondShort\");\n }\n // Returns two biggest units\n seconds = Math.round(seconds); // Avoid 59.55+ issues.\n if (seconds >= 60) {\n let minutesSeconds = getMinutesAndSecondsFromSeconds(seconds);\n // If the time is bigger than 60 minutes, we swap to hour display\n if (minutesSeconds[0] >= 60) {\n let hoursMinutes = getHoursAndMinutesFromMinutes(minutesSeconds[0]);\n if (hoursMinutes[1] == 0 && withoutZeroUnit) {\n return tr(\"Common.DurationWithValues.hoursDisplayWithLegends\", {\n hours: hoursMinutes[0],\n });\n }\n return tr(\"Common.DurationWithValues.hoursMinutesDisplayWithLegends\", {\n hours: hoursMinutes[0].toString(),\n minutes: convertToTwoDigitValue(hoursMinutes[1]),\n });\n }\n if ((minutesSeconds[1] == 0 && withoutZeroUnit) || withoutSeconds) {\n return tr(\"Common.DurationWithValues.minutesDisplayWithLegends\", {\n minutes: minutesSeconds[0],\n });\n }\n return tr(\"Common.DurationWithValues.minutesSecondsDisplayWithLegends\", {\n minutes: minutesSeconds[0].toString(),\n seconds: convertToTwoDigitValue(minutesSeconds[1]),\n });\n }\n\n // Returns single digit if the duration is less than 10 seconds\n return tr(\"Common.DurationWithValues.secondsDisplayWithLegends\", {\n seconds: seconds < 10 ? seconds : convertToTwoDigitValue(seconds),\n });\n}\n\n/**\n * Indicates if the \"seconds\" unit is obsolete between several durations in the case\n * where all durations are perfectly equal to a multiple of minutes or hours\n * @param values\n * @return true if all values are perfectly equal to a multiple of minutes or\n * hours, false if one or several values contains seconds\n */\nfunction isSmallestUnitObsoleteBetweenSeveralDuration(values) {\n if (values.some((val) => val >= 3600)) {\n let res = true;\n values.forEach((val) => {\n res = res && (val / 3600) % 60 === 0;\n });\n return res;\n }\n let res = true;\n values.forEach((val) => {\n res = res && val % 60 === 0;\n });\n return res;\n}\n\nfunction getBiggestUnitBetweenSeveralDuration(values) {\n let biggestValue = Math.max(...values);\n\n if (Math.round(biggestValue) >= 3600) {\n return 0; // hour\n } else if (Math.round(biggestValue) >= 60) {\n return 1; // minute\n } else {\n return 2; // second\n }\n}\n\nfunction getAlignedDurationDataWithBiggestUnit(value, biggestUnit, nUnits = 2) {\n let durationData = getAlignedDurationData(value);\n\n // Ensure that the number of unit is correct\n nUnits = clamp(nUnits, 1, durationData.length);\n\n // Remove the values above the biggest unit\n for (let i = 0; i < biggestUnit; i++) {\n durationData[i].value = \"\";\n durationData[i].unit = \"\";\n }\n\n // If we display only 1 unit, we should handle the edge case where the duration is zero or smaller than biggest unit\n if (nUnits == 1) {\n if (value == 0) {\n durationData[biggestUnit].value = \"0\";\n return durationData.slice(biggestUnit, biggestUnit + nUnits);\n }\n if (\n (biggestUnit == 0 && Math.round(value) < 3600) ||\n (biggestUnit == 1 && Math.round(value) < 60) ||\n (biggestUnit == 2 && value < 1)\n ) {\n durationData[biggestUnit].value = tr(\n \"Common.DurationWithValues.lessThanOne\"\n );\n return durationData.slice(biggestUnit, biggestUnit + nUnits);\n }\n }\n\n // If we display only 2 units, we should handle the edge cases where the duration is zero or too low compared to the biggest unit\n if (nUnits == 2) {\n // If biggest unit is [hours]\n if (biggestUnit == 0) {\n // If the duration is 0, we should display 0 min (instead of 0 sec)\n if (value == 0) {\n durationData[biggestUnit].value = \"\";\n durationData[biggestUnit].unit = \"\";\n durationData[biggestUnit + 1].value = \"0\";\n return durationData.slice(biggestUnit, biggestUnit + nUnits);\n }\n // If the duration is less than 60, we should display <1 min\n if (Math.round(value) < 60) {\n durationData[biggestUnit].value = \"\";\n durationData[biggestUnit].unit = \"\";\n durationData[biggestUnit + 1].value = tr(\n \"Common.DurationWithValues.lessThanOne\"\n );\n return durationData.slice(biggestUnit, biggestUnit + nUnits);\n }\n }\n }\n\n // If the biggest unit is bigger than [seconds] and contains double zeros, we remove them\n if (\n biggestUnit != durationData.length - 1 &&\n durationData[biggestUnit].value == \"00\"\n ) {\n durationData[biggestUnit].value = \"\";\n durationData[biggestUnit].unit = \"\";\n\n // If the second biggest unit contains a trailing zero, we remove it\n if (durationData[biggestUnit + 1].value.charAt(0) == \"0\") {\n durationData[biggestUnit + 1].value =\n durationData[biggestUnit + 1].value.charAt(1);\n }\n return durationData.slice(biggestUnit, biggestUnit + nUnits);\n }\n // If the biggest unit contains a trailing zero, we remove it\n if (durationData[biggestUnit].value.charAt(0) == \"0\") {\n durationData[biggestUnit].value = durationData[biggestUnit].value.charAt(1);\n }\n return durationData.slice(biggestUnit, biggestUnit + nUnits);\n}\n\n/**\n * Returns a fixed formatted duration used for stylized labels with h/m/s\n * @param value\n * @return array of objects with unit and values properties for h/m/s\n */\nfunction getAlignedDurationData(value) {\n value = Math.round(value); // Avoid 59.55+ issues.\n let durations = [];\n // Create duration data table\n for (let i = 0; i < 3; i++) {\n durations.push({\n value: convertToTwoDigitValue(0),\n unit:\n i == 0\n ? tr(\"Common.Duration.hoursShort\")\n : i == 1\n ? tr(\"Common.Duration.minutesShort\")\n : tr(\"Common.Duration.secondsShort\"),\n });\n }\n // Fill duration data table\n while (value >= 60) {\n if (value >= 3600) {\n let hours = Math.floor(value / 3600);\n durations[0].value = convertToTwoDigitValue(hours);\n value = value % 3600;\n } else if (value >= 60) {\n let minutes = Math.floor(value / 60);\n durations[1].value = convertToTwoDigitValue(minutes);\n value = value % 60;\n }\n }\n if (value > 0) {\n let seconds = Math.round(value);\n durations[2].value = convertToTwoDigitValue(seconds);\n }\n\n return durations;\n}\n\n/**\n * Get minutes and seconds string from seconds\n * @param {number} seconds The seconds\n */\nfunction getMinutesAndSecondsFromSecondsAsFormattedString(seconds) {\n let minutesSeconds = getMinutesAndSecondsFromSeconds(seconds);\n return tr(\"Common.DurationWithValues.minutesSecondsDisplayWithLegends\", {\n minutes: convertToTwoDigitValue(minutesSeconds[0]),\n seconds: convertToTwoDigitValue(minutesSeconds[1]),\n });\n}\n\nfunction convertToTwoDigitValue(value) {\n return value.toLocaleString(\"en-US\", {\n minimumIntegerDigits: 2,\n useGrouping: false,\n });\n}\n\nexport {\n getMinutesAndSecondsFromSeconds,\n getMinutesFromSeconds,\n getHoursAndMinutesFromMinutes,\n getMinutesFromSecondsRoundUpper,\n getMinutesAndSecondsFromSecondsAsFormattedString,\n getAdaptiveTranslatedTimeFromSeconds,\n getAlignedDurationData,\n getAlignedDurationDataWithBiggestUnit,\n getBiggestUnitBetweenSeveralDuration,\n isSmallestUnitObsoleteBetweenSeveralDuration,\n getDaysAndHoursFromHours,\n};\n","// N.B.: This method is neither placed into translation nor in language services to avoid a circular dependency.\n\nimport Store from \"@/store/index\";\nimport { getLanguageCodeFrom, defaultLanguage } from \"@/utils/locales\";\n\n/**\n * Extract the localized text from a language based dictionary of the following type:\n * text[lang] = \"localized text\"\n * @param text\n * @return {string|*}\n */\nexport function extractLocale(text) {\n if (!text) return \"\";\n const langCode = getLanguageCodeFrom(Store.getters[\"Language/language\"]);\n return text[langCode] || text[defaultLanguage];\n}\n","/**\n * Remove accents and diacritics\n * https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript/37511463#37511463\n */\nfunction removeAccentAndDiacritics(str) {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\n\n/**\n * Normalize one term for search or filtering\n * Return a trimmed string in lower case without diacritics\n * @param {string} term to tidy\n */\nfunction tidySearchTerm(term) {\n return removeAccentAndDiacritics(term).toLowerCase().trim();\n}\n\n/**\n * Normalize space separated terms for search or filtering\n * Return an array of trimmed string in lower case without diacritics\n * @param {string} terms to tidy are space separated\n */\nfunction tidySearchTerms(terms) {\n return tidySearchTerm(terms).split(/\\s+/);\n}\n\n/**\n * Return true if fields contain searched term\n * @param {string[]} fields entity fields to look into\n * @param {string} term to find in the entity\n */\nfunction isEntityCorrespondingTo(fields, term) {\n return tidySearchTerm(fields.join(\"\")).includes(term);\n}\n\n/**\n * Return true iff all terms correspond to the entity\n * @param {string} searchTerms terms are space separated\n */\nfunction isEntityContainsAllTerms(entityFieldsToSearchInto, searchTerms) {\n let terms = tidySearchTerms(searchTerms);\n return terms.every((term) =>\n isEntityCorrespondingTo(entityFieldsToSearchInto, term)\n );\n}\n\n/**\n * Return true if at least one term corresponds to the entity\n * @param {string} searchTerms terms are space separated\n */\nfunction isEntityContainsOneTerm(entityFieldsToSearchInto, searchTerms) {\n let terms = tidySearchTerms(searchTerms);\n return terms.some((term) =>\n isEntityCorrespondingTo(entityFieldsToSearchInto, term)\n );\n}\n\n/**\n * Filter by site name\n */\nfunction siteNameFilter(element, searchTerm) {\n searchTerm = tidySearchTerm(searchTerm);\n return (\n element.name &&\n removeAccentAndDiacritics(element.name).toLowerCase().includes(searchTerm)\n );\n}\n\n/**\n * Filter by username (Patient site id)\n */\nfunction patientSiteIdFilter(element, searchTerm) {\n searchTerm = tidySearchTerm(searchTerm);\n return (\n element.patientSiteId &&\n removeAccentAndDiacritics(element.patientSiteId)\n .toLowerCase()\n .includes(searchTerm)\n );\n}\n\n/**\n * Filter by name\n */\nfunction nameFilter(element, searchTerm) {\n searchTerm = tidySearchTerm(searchTerm);\n let terms = searchTerm.split(\" \");\n if (element.firstName && element.lastName) {\n return terms.every(\n (item) =>\n removeAccentAndDiacritics(element.firstName)\n .toLowerCase()\n .includes(item) ||\n removeAccentAndDiacritics(element.lastName).toLowerCase().includes(item)\n );\n }\n\n if (element.firstName) {\n return terms.every((item) =>\n removeAccentAndDiacritics(element.firstName).toLowerCase().includes(item)\n );\n }\n\n if (element.lastName) {\n return terms.every((item) =>\n removeAccentAndDiacritics(element.lastName).toLowerCase().includes(item)\n );\n }\n}\n\n/**\n * Filter by email\n */\nfunction emailFilter(element, searchTerm) {\n searchTerm = tidySearchTerm(searchTerm);\n return element?.email?.toLowerCase().includes(searchTerm);\n}\n\n/**\n * Filter by actual username\n */\nfunction usernameFilter(element, searchTerm) {\n searchTerm = tidySearchTerm(searchTerm);\n return element?.userName?.toLowerCase().includes(searchTerm);\n}\n\n/**\n * Filter for the MMID\n *\n * Remove the dashes and spaces because the MMID in the patient is\n * without them. Also remove the MMID prefix from the search\n */\nfunction MMIDFilter(element, searchTerm) {\n const term = searchTerm\n .replace(/^MMID-/i, \"\")\n .replace(/[- ]/g, \"\")\n .toLowerCase();\n return element.MMID !== null && element.MMID.toLowerCase().includes(term);\n}\n\n/**\n * Indicates whether a list of space separated terms are found within the given text.\n * @param text\n * @param search\n * @return {boolean}\n */\nfunction termsFilter(text, searchTerm) {\n searchTerm = tidySearchTerm(searchTerm);\n let terms = searchTerm.trim().toLowerCase().split(\" \");\n for (let term of terms) {\n if (text.toLowerCase().includes(term)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Filter by translation object (key with translation in all languages), i.e \"name\"\n * \"name\": {\n * \"en\": \"Magic Carpet\",\n * \"fr\": \"Tapis Magique\",\n * \"de\": \"Zauberteppich\",\n * \"it\": \"Tappeto Magico\",\n * \"es\": \"Alfombra mágica\",\n * \"ro\": \"Covorul fermecat\"\n * },\n */\nfunction objectWithTranslationsFilter(obj, search) {\n let terms = search.trim().toLowerCase().split(\" \");\n for (let term of terms) {\n return Object.values(obj).find((translatedValue) =>\n translatedValue.toLowerCase().includes(term.toLowerCase())\n );\n }\n return false;\n}\n\nexport {\n isEntityContainsAllTerms,\n isEntityContainsOneTerm,\n isEntityCorrespondingTo,\n siteNameFilter,\n patientSiteIdFilter,\n nameFilter,\n emailFilter,\n usernameFilter,\n MMIDFilter,\n removeAccentAndDiacritics,\n tidySearchTerm,\n tidySearchTerms,\n termsFilter,\n objectWithTranslationsFilter,\n};\n","/**\n * Get icon path from file name\n * with fallback on unknown icon in case file doesn't exist\n * @param name {string} icon name.\n */\nfunction getIconPath(name) {\n let icon = null;\n try {\n icon = require(`@/assets/icons/${name}.svg`);\n } catch {\n icon = require(`@/assets/icons/unknown.svg`);\n }\n if (Object.prototype.hasOwnProperty.call(icon, \"default\")) {\n icon = icon.default;\n }\n\n return icon.url;\n}\n\nexport { getIconPath };\n","/**\n * This file contains all the supported locales and languages\n * Locales are the specific language and country combination\n * Full migration in Locales from 2 letter language code to 2 letter language code + 2 letter country code\n * is not done due to the lack of support in MMGO\n * Languages are the language codes only\n */\n\n/**\n * Supported Languages\n * Used for translations\n */\nexport const defaultLanguage = \"en\";\nexport const supportedLanguages = [\"en\", \"de\", \"fr\", \"es\", \"it\", \"ro\", \"ar\"];\n\n/**\n * Supported Locales\n * Used in profiles\n */\nexport const supportedLocales = [\n \"en-US\",\n \"en-GB\",\n \"de\",\n \"fr\",\n \"es\",\n \"it\",\n \"ro\",\n \"ar\",\n];\nexport const defaultLocale = \"en-US\";\n\nconst localesInfo = Object.freeze({\n en: {\n default: {\n root: \"en\",\n short: \"en\",\n long: \"English\",\n flagIso3166: \"us\",\n },\n \"en-US\": {\n root: \"en\",\n short: \"en-US\",\n long: \"American English\",\n flagIso3166: \"us\",\n },\n \"en-GB\": {\n root: \"en\",\n short: \"en-GB\",\n long: \"British English\",\n flagIso3166: \"gb\",\n },\n },\n de: {\n default: {\n root: \"de\",\n short: \"de\",\n long: \"Deutsch\",\n flagIso3166: \"de\",\n },\n },\n fr: {\n default: {\n root: \"fr\",\n short: \"fr\",\n long: \"Français\",\n flagIso3166: \"fr\",\n },\n },\n es: {\n default: {\n root: \"es\",\n short: \"es\",\n long: \"Español\",\n flagIso3166: \"es\",\n },\n },\n it: {\n default: {\n root: \"it\",\n short: \"it\",\n long: \"Italiano\",\n flagIso3166: \"it\",\n },\n },\n ro: {\n default: {\n root: \"ro\",\n short: \"ro\",\n long: \"Română\",\n flagIso3166: \"ro\",\n },\n },\n ar: {\n default: {\n root: \"ar\",\n short: \"ar\",\n long: \"العربية\",\n flagIso3166: \"ar-SA\",\n },\n },\n});\n\n/**\n * Returns Array of supported Locales without default entries\n */\nconst getLocalesSkipDefaults = (group) => {\n return Object.entries(group).reduce((locales, [localeKey, localeInfo]) => {\n if (localeKey !== \"default\") {\n const entry = {\n short: localeInfo.short,\n root: localeInfo.root,\n long: localeInfo.long,\n flagIso3166: localeInfo.flagIso3166,\n };\n locales.push(entry);\n }\n return locales;\n }, []);\n};\n\n/**\n * Returns Array of supported Locale entries of the format\n * [{root:\"en\", short: \"en-US\", long: \"American English\", flagIso3166: \"us\"}, ...]\n */\nexport const supportedLocaleEntries = Object.values(localesInfo).reduce(\n (locales, group) => {\n if (!group.default || Object.keys(group).length > 1) {\n const localesWithoutDefaults = getLocalesSkipDefaults(group);\n locales.push(...localesWithoutDefaults);\n } else {\n const defaultGroup = Object.values(group)[0];\n if (defaultGroup) {\n const entry = {\n short: defaultGroup.short,\n root: defaultGroup.root,\n long: defaultGroup.long,\n flagIso3166: defaultGroup.flagIso3166,\n };\n locales.push(entry);\n }\n }\n return locales;\n },\n []\n);\n\n/**\n * Returns Array of supported Language entries of the format\n * [{root:\"en\", short: \"en\", long: \"English\", flagIso3166: \"us\"}, ...]\n */\nexport const supportedLanguageEntries = Object.entries(localesInfo).reduce(\n (supportedLocales, [key, localeInfo]) => {\n if (localeInfo.default) {\n supportedLocales.push({\n ...localeInfo.default,\n key: key,\n });\n }\n return supportedLocales;\n },\n []\n);\n\n/**\n * Return supported locale from given string\n * \"en\" -> \"en-US\"\n */\nexport const getLocaleFrom = (input) => {\n if (!input) {\n return defaultLocale;\n }\n\n for (const info of supportedLocaleEntries) {\n if (info.short.toLowerCase() === input.toLowerCase()) {\n return info.short;\n }\n }\n\n for (const info of supportedLocaleEntries) {\n if (info.root === input.substring(0, 2).toLowerCase()) {\n return info.short;\n }\n }\n\n return defaultLocale;\n};\n\n/**\n * Returns 2 letter language code with format xx corresponding to provided language\n * \"en-US\" -> \"en\"\n */\nexport const getLanguageCodeFrom = (input) => {\n if (!input) {\n return defaultLanguage;\n }\n\n for (const info of supportedLocaleEntries) {\n if (info.root === input.toLowerCase()) {\n return info.root;\n }\n\n for (const info of supportedLocaleEntries) {\n if (info.root === input.substring(0, 2).toLowerCase()) {\n return info.root;\n }\n }\n }\n return defaultLanguage;\n};\n\n/**\n * Returns supported locale entry from given string\n */\nexport const getLocaleEntryFrom = (input) => {\n const locale = getLocaleFrom(input);\n return supportedLocaleEntries.find((entry) => entry.short === locale);\n};\n","/**\n * Clamps a number between two values\n * @param {number} value to clamp\n * @param {number} min value\n * @param {number} max value\n */\nfunction clamp(value, min, max) {\n if (value < min) return min;\n if (value > max) return max;\n return value;\n}\n\n/**\n * Implements the Bankers Rounding : https://en.wikipedia.org/wiki/Rounding#Round_half_to_even\n * Implementation from https://stackoverflow.com/questions/46470724/how-to-apply-c-sharp-equivalent-rounding-method-in-javascript\n *\n * @param {number} num\n * @param {number} decimalPlaces\n * @returns {number} the bankers rounding value of 'num' taking 'decimals' into account\n */\nfunction evenRound(num, decimals) {\n const d = decimals || 0;\n const m = Math.pow(10, d);\n const n = +(d ? num * m : num).toFixed(8); // Avoid rounding errors\n const i = Math.floor(n);\n const f = n - i;\n const e = 1e-8; // Allow for rounding errors in f\n const r =\n f > 0.5 - e && f < 0.5 + e ? (i % 2 === 0 ? i : i + 1) : Math.round(n);\n return d ? r / m : r;\n}\n\nexport { clamp, evenRound };\n","import Vue from \"vue\";\n\nconst vueInterface = new Vue();\n\n/**\n * Schedule a notification on the Vue UI\n * @param {string} type Either a 'success' or 'error'\n * @param {string} message The message to notify\n * @param {string} title (Optional) the notification title\n */\nexport const notify = (type, message, title = null) => {\n vueInterface.$notify({\n type: type,\n title: title,\n text: message,\n position: \"top center\",\n });\n};\n\n/**\n * Display a notification that will stay until closed by the user.\n * @param {string} type Either a 'success' or 'error'\n * @param {string} message The message to notify\n * @param {string} title (Optional) the notification title\n */\nexport const notifyUntilClosed = (type, message, title = null) => {\n vueInterface.$notify({\n type: type,\n title: title,\n text: message,\n position: \"top center\",\n duration: -1,\n data: { showCloseButton: true },\n });\n};\n","import { startOfDay, endOfDay } from \"date-fns\";\nimport { clamp } from \"@/utils/math\";\n\nconst aggregate = (results, aggregateFcn) => {\n const aggregatedValues = [];\n\n for (let date in results) {\n let value = results[date].reduce(aggregateFcn, 0.0) / results[date].length;\n aggregatedValues.push([new Date(date).getTime(), value]);\n }\n\n return aggregatedValues;\n};\n\nconst sumAggregate = (results, aggregateFcn) => {\n const aggregatedValues = [];\n\n for (let date in results) {\n let value = results[date].reduce(aggregateFcn, 0.0);\n aggregatedValues.push([new Date(date).getTime(), value]);\n }\n\n return aggregatedValues;\n};\n\n/**\n * N.B.: This expects series as an array of the following format:\n * [[date1, value1], [date2, value2], ... ]\n * @param values\n * @return {number}\n */\nconst average = (values) => {\n if (values.length === 0) {\n return 0;\n }\n return (\n values.reduce((accumulator, v) => accumulator + v[1], 0.0) / values.length\n );\n};\n\n/**\n * N.B.: This expects series as an array of the following format:\n * [[date1, value1], [date2, value2], ... ]\n * @param values\n * @return {number}\n */\nconst sum = (values) => {\n return values.reduce((accumulator, v) => accumulator + v[1], 0.0);\n};\n\nconst getStandardizedMovementUnitSeries = (\n results,\n movementId,\n movementSide\n) => {\n const aggregateFcn = (accumulator, v) =>\n accumulator + v.getStandardizedMovementUnits(movementId, movementSide);\n return sumAggregate(results, aggregateFcn);\n};\n\nconst getMovementIntensitySeries = (results, movementId, movementSide) => {\n let aggregatedValues = [];\n\n for (const [date, datedItems] of Object.entries(results)) {\n let totalActiveTime = 0;\n let totalSMU = 0;\n\n for (const activity of datedItems) {\n totalActiveTime += activity.activeTrainingTime;\n totalSMU += activity.getStandardizedMovementUnits(\n movementId,\n movementSide\n );\n }\n let intensity =\n Math.round(totalActiveTime) > 0\n ? (60 * totalSMU) / Math.round(totalActiveTime)\n : 0.0;\n aggregatedValues.push([new Date(date).getTime(), intensity]);\n }\n return aggregatedValues;\n};\n\nconst getActiveTrainingTimesSeries = (results) => {\n const aggregateFcn = (accumulator, v) => accumulator + v.activeTrainingTime;\n return sumAggregate(results, aggregateFcn);\n};\n\nconst getCompensationTimesSeries = (results) => {\n const aggregateFcn = (accumulator, v) => accumulator + v.compensationDuration;\n return sumAggregate(results, aggregateFcn);\n};\n\nconst getAdherencesSeries = (results) => {\n let aggregatedValues = [];\n\n for (const [date, datedItems] of Object.entries(results)) {\n let totalAdherencePerDay = 0;\n let totalActiveTime = 0;\n let totalPlanningTime = 0;\n\n for (const activity of datedItems) {\n totalPlanningTime += activity.plannedSeconds;\n totalActiveTime += activity.trainingTimeAccordingToPlan;\n }\n // If nothing was planned, this day should not appear in the adherence serie\n if (totalPlanningTime == 0) {\n continue;\n }\n totalAdherencePerDay = computeAdherence(totalActiveTime, totalPlanningTime);\n aggregatedValues.push([new Date(date).getTime(), totalAdherencePerDay]);\n }\n return aggregatedValues;\n};\n\nconst getQualityOfMovementsSeries = (results) => {\n let aggregatedValues = [];\n\n for (const [date, datedItems] of Object.entries(results)) {\n let totalQualityPerDay = 0;\n let totalActiveTime = 0;\n let totalCompensationTime = 0;\n\n for (const activity of datedItems) {\n totalCompensationTime += activity.compensationDuration;\n totalActiveTime += activity.activeTrainingTime;\n }\n totalQualityPerDay = computeQualityPercentage(\n totalActiveTime,\n totalCompensationTime\n );\n aggregatedValues.push([new Date(date).getTime(), totalQualityPerDay]);\n }\n return aggregatedValues;\n};\n\nconst getTotalNormalizedQuantityOfMovement = (\n results,\n movementId,\n movementSide\n) => {\n return sum(\n getStandardizedMovementUnitSeries(results, movementId, movementSide)\n );\n};\n\nconst getTotalActiveTrainingTime = (results) => {\n return sum(getActiveTrainingTimesSeries(results));\n};\n\nconst getTotalCompensationTime = (results) => {\n return sum(getCompensationTimesSeries(results));\n};\n\nconst getTotalQualityOfMovement = (results) => {\n let totalActiveTime = getTotalActiveTrainingTime(results);\n let totalCompensationTime = getTotalCompensationTime(results);\n return computeQualityPercentage(totalActiveTime, totalCompensationTime);\n};\n\nconst getTotalAdherence = (result) => {\n let totalActiveTime = 0;\n let totalPlanningTime = 0;\n for (const [date, datedItems] of Object.entries(result)) {\n for (const activity of datedItems) {\n totalActiveTime += activity.trainingTimeAccordingToPlan;\n totalPlanningTime += activity.plannedSeconds;\n }\n }\n return computeAdherence(totalActiveTime, totalPlanningTime);\n};\n\nconst computeQualityPercentage = (\n totalActiveTime,\n totalCompensationDuration\n) => {\n let totalTimeWithoutCompensation =\n totalActiveTime - totalCompensationDuration;\n return totalActiveTime > 0\n ? clamp(totalTimeWithoutCompensation / totalActiveTime, 0.0, 1.0) * 100\n : 0;\n};\n\nconst computeCompensationPercentage = (\n totalActiveTime,\n totalCompensationDuration\n) => {\n return totalActiveTime > 0\n ? clamp(totalCompensationDuration / totalActiveTime, 0.0, 1.0) * 100\n : 0;\n};\n\nconst computeAdherence = (totalActiveTime, totalPlanningTime) => {\n return totalPlanningTime > 0\n ? Math.round(clamp(totalActiveTime / totalPlanningTime, 0.0, 1.0) * 100)\n : 0;\n};\n\nconst filterByDate = (result, startDate, endDate) => {\n return (\n result.Date !== null &&\n (startDate === null ||\n startOfDay(startDate).getTime() <= result.Date.getTime()) &&\n (endDate === null || result.Date.getTime() <= endOfDay(endDate).getTime())\n );\n};\n\nconst filterBySessionType = (result, sessionTypes) => {\n return sessionTypes.has(result.SessionType);\n};\n\nconst filterByTrainedFunction = (result, trainedFunction) => {\n return (\n trainedFunction === \"All\" ||\n result.trainedFunctions.includes(trainedFunction)\n );\n};\n\nconst filterByMovement = (result, movementId) => {\n return (\n movementId === \"All\" ||\n result.DetailedMovementIds.includes(movementId) ||\n movementId === result.GlobalMovementId\n );\n};\n\nconst filterByMovementAndSide = (result, movementId, movementSide) => {\n if (movementSide === \"All\") {\n return result.getMovementSides(movementId).length > 0;\n }\n return result.getMovementSides(movementId).includes(movementSide);\n};\n\nconst filterByActiveSide = (result, activeSide) => {\n return activeSide === \"All\" || activeSide === result.ActiveSide;\n};\n\n/**\n * Session supervision supported types.\n * Also used for categories and for translation purposes.\n */\nconst SessionSupervisionTypeKeys = {\n SupervisedBySelf: \"SupervisedBySelf\",\n Supervised: \"Supervised\",\n Unsupervised: \"Unsupervised\",\n};\n\nexport {\n getStandardizedMovementUnitSeries,\n getMovementIntensitySeries,\n getActiveTrainingTimesSeries,\n getQualityOfMovementsSeries,\n getCompensationTimesSeries,\n getTotalNormalizedQuantityOfMovement,\n getAdherencesSeries,\n getTotalCompensationTime,\n getTotalAdherence,\n getTotalActiveTrainingTime,\n getTotalQualityOfMovement,\n computeQualityPercentage,\n computeCompensationPercentage,\n computeAdherence,\n filterByDate,\n filterBySessionType,\n filterByTrainedFunction,\n filterByMovement,\n filterByMovementAndSide,\n filterByActiveSide,\n SessionSupervisionTypeKeys,\n};\n","/**\n * Format the unformatted mmid\n * @param {string} value The unformatted mmid\n */\nfunction formatToMMIDWithDashes(value) {\n if (!value) {\n return \"\";\n }\n return \"MMID-\" + value.replace(/(\\w{2})(\\w{2})(\\w{2})/, \"$1-$2-$3\");\n}\n\n/**\n * Generates a random uuid\n */\nfunction generateUUID() {\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n (\n c ^\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))\n ).toString(16)\n );\n}\n\n/**\n * Build the full name from first and lastname\n * @param {string | null} firstName The firstname\n * @param {string | null} lastName The lastname\n * @return {string} The full name under the form 'firstName lastName'\n * or one of the 2 if only one is a valid string\n */\nfunction buildNameFromFirstAndLastName(\n firstName,\n lastName,\n isHtmlMode = false\n) {\n firstName = firstName?.toString()?.trim();\n lastName = lastName?.toString()?.trim();\n if (!firstName?.length && !lastName?.length) {\n return isHtmlMode ? \"--\" : \"\";\n }\n if (!firstName?.length && lastName?.length) {\n return isHtmlMode ? \"\" + lastName + \"\" : lastName;\n }\n if (firstName?.length && !lastName?.length) {\n return firstName;\n }\n return isHtmlMode\n ? firstName + \" \" + lastName + \"\"\n : firstName + \" \" + lastName;\n}\n\nexport { formatToMMIDWithDashes, generateUUID, buildNameFromFirstAndLastName };\n","import { parseISO, isAfter, isBefore } from \"date-fns\";\nimport { sum, toPairs } from \"lodash\";\n\n/** Document version date for Privacy Policy */\nexport const PrivacyPolicyDocumentVersion = \"2023-08-31Z\";\n/** Document version date for Consent Forms */\nexport const ConsentDocumentVersion = \"2019-11-15Z\";\n/** Consent number used */\nexport const MaxConsents = 4;\n\nexport const DocumentType = Object.freeze({\n PrivacyPolicy: \"PrivacyPolicy\",\n ConsentForm: \"ConsentForm\",\n});\n\n// Invalid document version default date\nconst minDate = new Date(1970, 1, 1);\n\n/**\n * Returns the latest document or undefined\n * @param {Array} documents\n * @param {string} documentKind Type of document to look for\n */\nconst latestSignedDocumentForKind = (documents, documentKind) => {\n const signedDocuments = documents || [];\n const documentsOfType = signedDocuments.filter(\n (d) => d?.kind === documentKind || false\n );\n return (\n documentsOfType?.reduce(function (prev, current) {\n return prev &&\n isAfter(parseISO(prev.signedDate), parseISO(current.signedDate))\n ? prev\n : current;\n }, null) || null\n );\n};\n\nconst addZ = (documentVersion) => {\n return documentVersion.includes(\"Z\")\n ? documentVersion\n : `${documentVersion}Z`;\n};\n\n/**\n * Returns the most current signed consent form usable by the webapp\n * @param {Array} signedDocuments Signed documents array\n */\nconst getLatestUsableConsent = (signedDocuments) => {\n const latestConsent = latestSignedDocumentForKind(\n signedDocuments,\n DocumentType.ConsentForm\n );\n\n return latestConsent &&\n !isBefore(\n parseISO(addZ(latestConsent?.documentVersion) || minDate),\n parseISO(ConsentDocumentVersion)\n )\n ? latestConsent\n : null;\n};\n\n/**\n * Returns whether the latest possible Privacy policy is signed.\n * By latest possible, it means the latest the webapp can offer.\n * We accept signature of \"future\" versions to avoid making the user stuck\n * in a signature loop.\n * @param signedDocuments\n * @return {boolean} Whether the document is signed.\n */\nexport const isLatestPossiblePrivacyPolicySigned = (signedDocuments) => {\n const pp = latestSignedDocumentForKind(\n signedDocuments,\n DocumentType.PrivacyPolicy\n );\n return (\n pp &&\n !isBefore(\n parseISO(addZ(pp.documentVersion) || minDate),\n parseISO(PrivacyPolicyDocumentVersion)\n )\n );\n};\n\n/**\n * Deserializes consent to use it in the consent form modal.\n * @param signedDocuments\n */\nexport const deserializeConsent = (signedDocuments) => {\n if (signedDocuments) {\n const currentConsent = getLatestUsableConsent(signedDocuments);\n\n const consents = extractConsents(currentConsent);\n return consents;\n } else {\n let obj = {};\n for (let i = 0; i < MaxConsents; i++) {\n obj[i] = false;\n }\n return obj;\n }\n};\n\n/**\n * Serializes consent to send it back to the backend.\n * @param consentObject Consent object in the format [consent id: true/false, ...]\n * @return {number}\n */\nexport const serializeConsent = (consentObject) => {\n const powers = toPowers(consentObject);\n\n return sum(powers) << 1;\n};\n\n/**\n * Return an object containing from 0 to maxConsents whether a particular\n * consent is given or not.\n * For instance:\n * { 0: false, 1: true, ...}\n *\n * @param {Object} consent Consent form signed document\n */\nexport const extractConsents = (consent) => {\n if (!consent) {\n return Object.assign({}, Array(MaxConsents).fill(false));\n }\n const consentOptions = consent.consentOptions >> 1;\n\n let consents = {};\n\n // the consentOptions value is a bitmask\n for (let i = 0; i < MaxConsents; i++) {\n consents[i] = !!(consentOptions & (2 ** i));\n }\n\n return consents;\n};\n\n/**\n * Maps pairs of key and values back into a bitmask\n * Used for consents\n * @param consentObject Consent object in the format [consent id: true/false, ...]\n * @return {unknown[]} sumable powers for each value\n */\nconst toPowers = (consentObject) => {\n const entries = toPairs(consentObject);\n\n const powers = entries.map(([key, value]) => {\n if (value) {\n return 2 ** key;\n }\n\n return 0;\n });\n\n return powers;\n};\n","import i18n from \"@/i18n\";\n\n/**\n * Translates a given message using the i18n current Vue dictionary\n * @param {string} messageKey The message key to use\n * @returns {string} translated string\n */\nexport const tr = (messageKey, params = null) => {\n return i18n.t(messageKey, params);\n};\n","module.exports = {\n future: {\n removeDeprecatedGapUtilities: true,\n purgeLayersByDefault: true,\n },\n purge: false,\n prefix: \"\",\n important: false,\n separator: \":\",\n theme: {\n colors: {\n transparent: \"transparent\",\n focus: \"rgba(4, 21, 39, 0.8);\",\n black: \"#000\",\n white: \"#fff\",\n primary: \"#37A4DC\",\n disabled: \"#BFBFBF\",\n translucent: {\n 60: \"rgba(256, 256, 256, 0.6)\",\n 90: \"rgba(256, 256, 256, 0.9)\",\n },\n green: {\n 200: \"#f4fcea\",\n 500: \"#97E812\",\n 600: \"#4f9112\",\n \"500a25\": \"#97E81219\",\n 700: \"#3e7211\",\n },\n yellow: {\n 200: \"#fff9eb\",\n 300: \"#ffe9bd\",\n \"300a66\": \"#ffe9bdaa\",\n 500: \"#FFC82C\",\n \"500a25\": \"#FFC82C19\",\n 600: \"#F7931E\",\n 700: \"#E1AD28\",\n },\n orange: {\n 200: \"#fdf0ea\",\n 400: \"#f6c66f\",\n 500: \"#F07313\",\n \"500a25\": \"#F0731719\",\n 800: \"#db5d0c\",\n 900: \"#b86814\",\n },\n red: {\n 100: \"#FEF5F5\",\n 150: \"#ffe9e8\",\n 200: \"#F8CECC\",\n 300: \"#ff8585\",\n 400: \"#ff3535\",\n 500: \"#DD4746\",\n 700: \"#A23C24\",\n },\n gray: {\n 50: \"#F9F9F9\",\n 100: \"#F1F1F2\",\n 150: \"#e6e6e6\",\n 200: \"#E0E2E4\",\n \"200a50\": \"rgba(224, 226, 228, 0.5)\",\n 300: \"#BFBFBF\",\n 400: \"#727272CC\",\n 425: \"rgba(4, 21, 39, 0.8)\",\n 450: \"#959595\",\n 500: \"#727272\",\n 600: \"#5a626b\",\n 625: \"rgba(90,98,107,0.8)\",\n 700: \"#464C59\",\n 800: \"#3c3b3b\",\n },\n blue: {\n 50: \"#f2fbff\",\n 100: \"#EBF6FC\",\n 150: \"#E8EEF1\",\n 200: \"#CCE6F5\",\n 300: \"#73BFE7\",\n 400: \"#4BA4F7\",\n 500: \"#37A4DC\",\n \"500a25\": \"rgba(55, 164, 220, 0.2)\",\n \"500a50\": \"rgba(55, 164, 220, 0.5)\",\n 600: \"#6AA2D6\",\n 700: \"#456E9A\",\n \"700a75\": \"#3B648D\",\n \"700a30\": \"#2A5176\",\n 750: \"#5682AA\",\n \"750a25\": \"#5682AA19\",\n \"750a15\": \"#5682AA0F\",\n 800: \"#1F4566\",\n \"800a60\": \"rgba(31, 69, 102, 0.6)\",\n 900: \"#183453\",\n 950: \"#041527\",\n },\n trainingColors: {\n goal: \"#E0E2E4\",\n selfTraining: \"#6ACBCD\",\n supervised: \"#3B648D\",\n },\n programEditorTabColors: {\n // basic colors\n 1: \"#3cacae\",\n 2: \"#8e346a\",\n 3: \"#ff72b7\",\n 4: \"#ce941c\",\n 5: \"#b973d9\",\n 6: \"#ff9082\",\n // corresponding hover colors\n \"1h\": \"#d9f2f2\",\n \"2h\": \"#f1dae8\",\n \"3h\": \"#ffe6f2\",\n \"4h\": \"#f9ecd2\",\n \"5h\": \"#f5ebfa\",\n \"6h\": \"#ffe8e6\",\n },\n programEditorPresetTabColors: {\n 1: \"#798fa3\",\n \"1h\": \"#798fa3\",\n },\n borgScaleColors: {\n // colors defined in DSR-1099 for patient state\n 0: \"#c5d1ff\",\n 1: \"#a0b5fc\",\n 2: \"#7492ff\",\n 3: \"#82bbf1\",\n 4: \"#4ba4f7\",\n 5: \"#9cdd57\",\n 6: \"#68af00\",\n 7: \"#f5e380\",\n 8: \"#ffc246\",\n 9: \"#ff782f\",\n 10: \"#f25757\",\n },\n },\n spacing: {\n px: \"1px\",\n 0: \"0\",\n 1: \"0.25rem\",\n 2: \"0.5rem\",\n 3: \"0.75rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n 11: \"2.75rem\",\n 12: \"3rem\",\n 14: \"3.5rem\",\n 15: \"3.75rem\",\n 16: \"4rem\",\n 18: \"4.5rem\",\n 20: \"5rem\",\n 22: \"5.5rem\",\n 23: \"5.75rem\",\n 24: \"6rem\",\n 25: \"6.25rem\",\n 26: \"6.5rem\",\n 28: \"7rem\",\n 30: \"7.5rem\",\n 32: \"8rem\",\n 34: \"8.5rem\",\n 40: \"10rem\",\n 42: \"10.5rem\",\n 44: \"11rem\",\n 48: \"12rem\",\n 52: \"13rem\",\n 54: \"13.5rem\",\n 56: \"14rem\",\n 60: \"15rem\",\n 64: \"16rem\",\n 68: \"17rem\",\n 72: \"18rem\",\n 74: \"18.5rem\",\n 76: \"19rem\",\n 78: \"19.5rem\",\n 80: \"20rem\",\n 82: \"20.5rem\",\n 84: \"21rem\",\n 88: \"22rem\",\n 92: \"23rem\",\n 96: \"24rem\",\n 98: \"24.5rem\",\n 100: \"25rem\",\n 104: \"26rem\",\n 112: \"28rem\",\n 124: \"31rem\",\n 128: \"32rem\",\n 140: \"35rem\",\n 152: \"38rem\",\n 160: \"40rem\",\n 162: \"41rem\",\n 192: \"48rem\",\n 208: \"52rem\",\n 224: \"56rem\",\n 256: \"64rem\",\n },\n screens: {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\",\n \"3xl\": \"1920px\",\n },\n fontFamily: {\n sans: [\n \"Open Sans\",\n \"-apple-system\",\n \"BlinkMacSystemFont\",\n '\"Segoe UI\"',\n '\"Helvetica Neue\"',\n \"Arial\",\n '\"Noto Sans\"',\n \"sans-serif\",\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n '\"Noto Color Emoji\"',\n ],\n serif: [\"Georgia\", \"Cambria\", '\"Times New Roman\"', \"Times\", \"serif\"],\n mono: [\n \"Menlo\",\n \"Monaco\",\n \"Consolas\",\n '\"Liberation Mono\"',\n '\"Courier New\"',\n \"monospace\",\n ],\n },\n fontSize: {\n xs: \"0.74rem\",\n sm: \"0.86rem\",\n base: \"1rem\", // 14px\n lg: \"1.15rem\",\n xl: \"1.42rem\",\n \"2xl\": \"1.85rem\",\n \"3xl\": \"1.95rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"4rem\",\n \"7xl\": \"5rem\",\n },\n fontWeight: {\n light: 100,\n regular: 400,\n semibold: 600,\n bold: 700,\n },\n lineHeight: {\n none: \"1\",\n tight: \"1.2\",\n snug: \"1.3\",\n normal: \"1.4\",\n relaxed: \"1.6\",\n },\n letterSpacing: {\n tight: \"-0.025em\",\n normal: \"0\",\n wide: \"0.01em\",\n wider: \"0.02em\",\n widest: \"0.05em\",\n },\n textColor: (theme) => theme(\"colors\"),\n backgroundColor: (theme) => theme(\"colors\"),\n backgroundPosition: {\n bottom: \"bottom\",\n center: \"center\",\n left: \"left\",\n \"left-bottom\": \"left bottom\",\n \"left-top\": \"left top\",\n right: \"right\",\n \"right-bottom\": \"right bottom\",\n \"right-top\": \"right top\",\n top: \"top\",\n },\n backgroundSize: {\n auto: \"auto\",\n cover: \"cover\",\n contain: \"contain\",\n },\n borderWidth: {\n default: \"1px\",\n 0: \"0\",\n 2: \"2px\",\n 3: \"3px\",\n 4: \"4px\",\n 5: \"5px\",\n 6: \"6px\",\n 8: \"8px\",\n },\n borderColor: (theme) => ({\n ...theme(\"colors\"),\n default: theme(\"colors.gray.300\", \"currentColor\"),\n }),\n borderRadius: {\n none: \"0\",\n sm: \".25rem\",\n default: \".375rem\",\n lg: \".5rem\",\n xl: \".75rem\",\n full: \"9999px\",\n },\n cursor: {\n auto: \"auto\",\n default: \"default\",\n pointer: \"pointer\",\n wait: \"wait\",\n move: \"move\",\n \"not-allowed\": \"not-allowed\",\n },\n width: (theme) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.33333%\",\n \"2/3\": \"66.66667%\",\n \"1/4\": \"25%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.66667%\",\n \"5/6\": \"83.33333%\",\n \"1/7\": \"14.285714285%\",\n \"2/7\": \"28.571428571%\",\n \"3/7\": \"42.85714285%\",\n \"4/7\": \"57.14285714%\",\n \"1/9\": \"11.1111%\",\n \"9/10\": \"90%\",\n full: \"100%\",\n screen: \"100vw\",\n max: \"max-content\",\n }),\n height: (theme) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n full: \"100%\",\n screen: \"100vh\",\n }),\n minWidth: (theme) => ({\n 0: \"0\",\n ...theme(\"spacing\"),\n full: \"100%\",\n }),\n minHeight: (theme) => ({\n 0: \"0\",\n full: \"100%\",\n ...theme(\"spacing\"),\n screen: \"100vh\",\n }),\n maxWidth: (theme) => ({\n none: \"none\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"76rem\",\n \"7xl\": \"92rem\",\n \"8xl\": \"112rem\",\n \"9xl\": \"130rem\",\n full: \"100%\",\n ...theme(\"spacing\"),\n }),\n maxHeight: (theme) => ({\n 0: \"0\",\n ...theme(\"spacing\"),\n full: \"100%\",\n screen: \"100vh\",\n }),\n padding: (theme) => theme(\"spacing\"),\n margin: (theme, { negative }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n ...negative(theme(\"spacing\")),\n }),\n objectPosition: {\n bottom: \"bottom\",\n center: \"center\",\n left: \"left\",\n \"left-bottom\": \"left bottom\",\n \"left-top\": \"left top\",\n right: \"right\",\n \"right-bottom\": \"right bottom\",\n \"right-top\": \"right top\",\n top: \"top\",\n },\n boxShadow: {\n default:\n \"0 1px 3px 0 rgba(0, 0, 0, 0.05), 0 1px 2px 3px rgba(0, 0, 0, 0.06)\",\n overlaptop: \"rgba(0, 0, 0, 0.1) 0px -7px 3px -2px\",\n overlapbottom: \"rgba(0, 0, 0, 0.1) 0px 7px 3px -2px\",\n xs: \"4px -2px 1px rgba(0, 0, 0, 0.02), -1px 1px 1px 2px rgba(0, 0, 0, 0.01)\",\n sm: \"0 1px 1px 0 rgba(0, 0, 0, 0.05), 0 1px 1px 1px rgba(0, 0, 0, 0.06)\",\n md: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n lg: \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n xl: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n \"2xl\": \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\",\n none: \"none\",\n },\n zIndex: {\n auto: \"auto\",\n 0: 0,\n 10: 10,\n 20: 20,\n 30: 30,\n 40: 40,\n 50: 50,\n },\n opacity: {\n 0: \"0\",\n 25: \".25\",\n 50: \".5\",\n 75: \".75\",\n 100: \"1\",\n },\n fill: (theme) => ({\n ...theme(\"colors\"),\n current: \"currentColor\",\n }),\n stroke: {\n current: \"currentColor\",\n },\n flex: {\n 1: \"1 1 0%\",\n auto: \"1 1 auto\",\n initial: \"0 1 auto\",\n none: \"none\",\n },\n flexGrow: {\n 0: 0,\n default: 1,\n },\n flexShrink: {\n 0: 0,\n default: 1,\n },\n listStyleType: {\n none: \"none\",\n disc: \"disc\",\n decimal: \"decimal\",\n },\n inset: {\n 0: 0,\n auto: \"auto\",\n },\n customForms: (theme) => ({\n default: {\n \"input, textarea\": {\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n paddingBottom: 0,\n },\n \"input, textarea, multiselect, select\": {\n borderColor: theme(\"colors.gray.300\"),\n borderRadius: theme(\"borderRadius.default\"),\n \"&:focus\": {\n boxShadow: undefined,\n borderColor: undefined,\n },\n \"&::placeholder\": {\n color: undefined,\n },\n },\n },\n }),\n container: {},\n extend: {\n gridTemplateColumns: {\n 14: \"repeat(14, minmax(0, 1fr))\",\n },\n gridColumnStart: {\n 14: \"14\",\n 15: \"15\",\n },\n gridColumnEnd: {\n 14: \"14\",\n 15: \"15\",\n },\n typography: (theme) => ({\n // prose classes\n default: {\n css: {\n \"ol > li::before\": {\n content: \"\",\n },\n },\n },\n }),\n },\n },\n variants: {\n appearance: [\"responsive\"],\n backgroundAttachment: [\"responsive\"],\n backgroundColor: [\"responsive\", \"hover\", \"focus\"],\n backgroundPosition: [\"responsive\"],\n backgroundRepeat: [\"responsive\"],\n backgroundSize: [\"responsive\"],\n border: [\"first\"],\n borderCollapse: [],\n borderColor: [\"responsive\", \"hover\", \"focus\"],\n borderRadius: [\"responsive\"],\n borderStyle: [\"responsive\"],\n borderWidth: [\"responsive\", \"first\"],\n cursor: [\"responsive\"],\n display: [\"responsive\"],\n flexDirection: [\"responsive\"],\n flexWrap: [\"responsive\"],\n alignItems: [\"responsive\"],\n alignSelf: [\"responsive\"],\n justifyContent: [\"responsive\"],\n alignContent: [\"responsive\"],\n flex: [\"responsive\"],\n flexGrow: [\"responsive\"],\n flexShrink: [\"responsive\"],\n float: [\"responsive\"],\n fontFamily: [\"responsive\"],\n fontWeight: [\"responsive\", \"hover\", \"focus\"],\n height: [\"responsive\"],\n lineHeight: [\"responsive\"],\n listStylePosition: [\"responsive\"],\n listStyleType: [\"responsive\"],\n margin: [\"responsive\", \"first\"],\n maxHeight: [\"responsive\"],\n maxWidth: [\"responsive\"],\n minHeight: [\"responsive\"],\n minWidth: [\"responsive\"],\n negativeMargin: [\"responsive\"],\n objectFit: [\"responsive\"],\n objectPosition: [\"responsive\"],\n opacity: [\"responsive\"],\n outline: [\"focus\"],\n overflow: [\"responsive\"],\n padding: [\"responsive\", \"odd\", \"even\"],\n pointerEvents: [\"responsive\"],\n position: [\"responsive\"],\n inset: [\"responsive\"],\n resize: [\"responsive\"],\n boxShadow: [\"responsive\", \"hover\", \"focus\"],\n fill: [\"hover\", \"focus\"],\n stroke: [],\n tableLayout: [\"responsive\"],\n textAlign: [\"responsive\"],\n textColor: [\"responsive\", \"hover\", \"focus\"],\n fontSize: [\"responsive\"],\n fontStyle: [\"responsive\"],\n textTransform: [\"responsive\"],\n textDecoration: [\"responsive\", \"hover\", \"focus\"],\n fontSmoothing: [\"responsive\"],\n letterSpacing: [\"responsive\"],\n userSelect: [\"responsive\"],\n verticalAlign: [\"responsive\"],\n visibility: [\"responsive\"],\n whitespace: [\"responsive\"],\n wordBreak: [\"responsive\"],\n width: [\"responsive\"],\n zIndex: [\"responsive\"],\n },\n corePlugins: {\n container: false,\n },\n plugins: [\n require(\"@tailwindcss/custom-forms\"),\n require(\"@tailwindcss/typography\"),\n require(\"tailwindcss-rtl\"),\n ],\n};\n","export default {\n id: \"activity-details-usage\",\n viewBox: \"0 0 32 24\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#activity-details\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"activity-flag-usage\",\n viewBox: \"0 0 11 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#activity-flag\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"add-patient-success-usage\",\n viewBox: \"0 0 30 30\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#add-patient-success\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"add-patient-usage\",\n viewBox: \"0 0 100 100\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#add-patient\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"admin-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#admin\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"administration-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#administration\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"archived-users-directory-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#archived-users-directory\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"arrow-simple-left-usage\",\n viewBox: \"0 0 9 7\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#arrow-simple-left\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"arrow-simple-right-usage\",\n viewBox: \"0 0 9 7\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#arrow-simple-right\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"assets-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#assets\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"att-current-usage\",\n viewBox: \"0 0 70 70\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#att-current\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"att-history-usage\",\n viewBox: \"0 0 70 70\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#att-history\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"audit-trail-logs-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#audit-trail-logs\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"body-usage\",\n viewBox: \"0 0 27 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#body\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"button-icon-save-usage\",\n viewBox: \"0 0 15 15.04\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#button-icon-save\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"calendar-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#calendar\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"calibration-off-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#calibration-off\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"calibration-on-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#calibration-on\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"callout-down-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#callout-down\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"callout-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#callout\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ce_logo-usage\",\n viewBox: \"0 0 280 200\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ce_logo\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"chevron-carousel-left-usage\",\n viewBox: \"0 0 8 15\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#chevron-carousel-left\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"chevron-carousel-right-usage\",\n viewBox: \"0 0 8 15\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#chevron-carousel-right\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"chevron-down-usage\",\n viewBox: \"0 0 16 9\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#chevron-down\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"chevron-left-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#chevron-left\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"chevron-right-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#chevron-right\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"chevron-up-usage\",\n viewBox: \"0 0 16 9\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#chevron-up\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"circle-warning-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#circle-warning\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"close-usage\",\n viewBox: \"0 0 14 14\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#close\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"cog-hollow-usage\",\n viewBox: \"0 0 17.3 17.3\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#cog-hollow\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"companion-logo-usage\",\n viewBox: \"0 0 321.53651 77.91217\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#companion-logo\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"bodyweighttransfer-left-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#bodyweighttransfer-left\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"bodyweighttransfer-right-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#bodyweighttransfer-right\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"leftkneeextension-up-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#leftkneeextension-up\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"leftshoulderabductionadduction-left-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#leftshoulderabductionadduction-left\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"leftshoulderabductionadduction-right-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#leftshoulderabductionadduction-right\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"leftshoulderflexionextension-backward-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#leftshoulderflexionextension-backward\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"leftshoulderflexionextension-forward-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#leftshoulderflexionextension-forward\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"rightkneeextension-up-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#rightkneeextension-up\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"rightshoulderabductionadduction-left-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#rightshoulderabductionadduction-left\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"rightshoulderabductionadduction-right-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#rightshoulderabductionadduction-right\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"rightshoulderflexionextension-backward-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#rightshoulderflexionextension-backward\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"rightshoulderflexionextension-forward-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#rightshoulderflexionextension-forward\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"trunkflexion-backward-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#trunkflexion-backward\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"trunkflexion-forward-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#trunkflexion-forward\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"trunkflexion-left-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#trunkflexion-left\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"trunkflexion-right-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#trunkflexion-right\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"elbow-left-usage\",\n viewBox: \"0 0 27 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#elbow-left\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"elbow-right-usage\",\n viewBox: \"0 0 27 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#elbow-right\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"head-center-usage\",\n viewBox: \"0 0 26 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#head-center\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"head-left-usage\",\n viewBox: \"0 0 26 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#head-left\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"head-right-usage\",\n viewBox: \"0 0 26 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#head-right\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"leg-left-usage\",\n viewBox: \"0 0 26 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#leg-left\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"leg-right-usage\",\n viewBox: \"0 0 26 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#leg-right\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"shoulder-left-usage\",\n viewBox: \"0 0 26 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#shoulder-left\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"shoulder-right-usage\",\n viewBox: \"0 0 26 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#shoulder-right\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"torso-usage\",\n viewBox: \"0 0 26 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#torso\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"wrist-left-usage\",\n viewBox: \"0 0 27 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#wrist-left\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"wrist-right-usage\",\n viewBox: \"0 0 27 41\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#wrist-right\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"bodyweighttransfer-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#bodyweighttransfer\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"leftkneeextension-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#leftkneeextension\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"leftshoulder-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#leftshoulder\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"rightkneeextension-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#rightkneeextension\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"rightshoulder-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#rightshoulder\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"trunkflexion-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#trunkflexion\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"consent-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#consent\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"contact-us-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#contact-us\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"copy-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#copy\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"create_program-usage\",\n viewBox: \"0 0 17.64 17.5\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#create_program\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"create_template-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#create_template\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"credentials-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#credentials\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"data-export-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#data-export\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"day-period-afternoon-usage\",\n viewBox: \"0 0 40 20\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#day-period-afternoon\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"day-period-morning-usage\",\n viewBox: \"0 0 40 20\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#day-period-morning\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"demo-patient-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#demo-patient\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"done-half-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#done-half\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"done-invert-colors-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#done-invert-colors\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"done-not-training-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#done-not-training\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"done-not-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#done-not\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"done-notassigned-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#done-notassigned\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"done-partially-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#done-partially\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"done-password-criteria-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#done-password-criteria\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"done-rounded-circle-fill-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#done-rounded-circle-fill\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"done-rounded-circle-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#done-rounded-circle\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"done-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#done\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"dpo-admin-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#dpo-admin\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"drag-handle-usage\",\n viewBox: \"0 0 14 14\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#drag-handle\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"duplicate-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#duplicate\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"edit-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#edit\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"email-usage\",\n viewBox: \"0 0 30 30\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#email\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"epro-patients-usage\",\n viewBox: \"0 0 24 24\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#epro-patients\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"european-representative-usage\",\n viewBox: \"0 0 71.57 23.8\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#european-representative\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"export-usage\",\n viewBox: \"0 0 15 15\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#export\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"external-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#external\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"faq-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#faq\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"feedback-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#feedback\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"filter-usage\",\n viewBox: \"0 0 15 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#filter\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ar-SA-usage\",\n viewBox: \"0 0 34 34\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ar-SA\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"de-usage\",\n viewBox: \"0 0 34 34\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#de\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"es-usage\",\n viewBox: \"0 0 34 34\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#es\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"fr-usage\",\n viewBox: \"0 0 34 34\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#fr\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"gb-usage\",\n viewBox: \"0 0 34 34\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#gb\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"it-usage\",\n viewBox: \"0 0 34 34\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#it\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ro-usage\",\n viewBox: \"0 0 34 34\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ro\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"us-usage\",\n viewBox: \"0 0 34 34\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#us\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"general-details-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#general-details\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"geolocalization-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#geolocalization\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"globe-usage\",\n viewBox: \"0 0 12 12\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#globe\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"hamburger-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#hamburger\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"hand-usage\",\n viewBox: \"0 0 60 70\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#hand\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"help-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#help\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ifu-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ifu\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"import-usage\",\n viewBox: \"0 0 15 14\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#import\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"import_mm_template-usage\",\n viewBox: \"0 0 17.64 17.5\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#import_mm_template\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"import_my_template-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#import_my_template\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"info-circle-usage\",\n viewBox: \"0 0 30 30\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#info-circle\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"level-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#level\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"levels-usage\",\n viewBox: \"0 0 16 15\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#levels\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"license-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#license\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"loading-usage\",\n viewBox: \"0 0 24 24\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#loading\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"logout-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#logout\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"manufacturer-usage\",\n viewBox: \"0 0 201 251\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#manufacturer\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"medical-details-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#medical-details\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"menu-usage\",\n viewBox: \"0 0 23 20\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#menu\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"mindmotion-logo-usage\",\n viewBox: \"0 0 224 34\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#mindmotion-logo\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"mini-cam-usage\",\n viewBox: \"0 0 36 36\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#mini-cam\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"mini-mic-usage\",\n viewBox: \"0 0 36 36\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#mini-mic\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"mini-sound-usage\",\n viewBox: \"0 0 36 36\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#mini-sound\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"more-menu-usage\",\n viewBox: \"0 0 14 14\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#more-menu\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ArmReaching-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ArmReaching\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ArmReachingAndPalmarGrasping-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ArmReachingAndPalmarGrasping\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ArmsPumping-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ArmsPumping\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"BilateralStep-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#BilateralStep\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FingersPinch-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FingersPinch\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ForearmPronationSupination-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ForearmPronationSupination\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ForwardBackwardSteps-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ForwardBackwardSteps\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FreeSqueeze-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FreeSqueeze\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FreeSqueezeAndFreeWristMovement-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FreeSqueezeAndFreeWristMovement\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FreeSteps-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FreeSteps\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FreeWristMovement-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FreeWristMovement\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"GripFlexionExtension-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#GripFlexionExtension\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"GripPronationSupination-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#GripPronationSupination\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"GripRadialUlnarDeviation-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#GripRadialUlnarDeviation\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"HandGraspRelease-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#HandGraspRelease\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"HorizontalArmReaching-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#HorizontalArmReaching\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"HorizontalShoulderAbductionAdduction-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#HorizontalShoulderAbductionAdduction\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"LateralBodyWeightTransfer-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#LateralBodyWeightTransfer\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"LateralStep-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#LateralStep\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"PalmarGrasp-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#PalmarGrasp\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"PincerGrasp-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#PincerGrasp\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ShoulderAbduction-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ShoulderAbduction\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ShoulderAbductionAdduction-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ShoulderAbductionAdduction\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ShoulderFlexion-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ShoulderFlexion\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ShoulderFlexionExtension-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#ShoulderFlexionExtension\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Squat-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#Squat\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SteeringWheel-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#SteeringWheel\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SteeringWheelAndArmsPumping-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#SteeringWheelAndArmsPumping\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"TrunkAxialRotation-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#TrunkAxialRotation\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"TrunkForwardBackwardFlexion-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#TrunkForwardBackwardFlexion\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"TrunkForwardBackwardLateralFlexion-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#TrunkForwardBackwardLateralFlexion\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"TrunkLateralFlexion-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#TrunkLateralFlexion\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"UnilateralShoulderAbductionAdduction-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#UnilateralShoulderAbductionAdduction\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"UnilateralStep-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#UnilateralStep\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"UpperLimbFlexionExtension-usage\",\n viewBox: \"0 0 70 70\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#UpperLimbFlexionExtension\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"UpperLimbFlexionExtensionAndTrunkLateralFlexion-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#UpperLimbFlexionExtensionAndTrunkLateralFlexion\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"VerticalHandsReaching-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#VerticalHandsReaching\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"WorldFootsteps-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#WorldFootsteps\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"WristFlexionExtension-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#WristFlexionExtension\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"WristRadialUlnarDeviation-usage\",\n viewBox: \"0 0 128 128\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#WristRadialUlnarDeviation\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"my-patients-usage\",\n viewBox: \"0 0 32 29.912\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#my-patients\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"notifications-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#notifications\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"optional-features-def-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#optional-features-def\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"optional-features-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#optional-features\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"patient-details-usage\",\n viewBox: \"0 0 52 52\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#patient-details\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"patient-recent-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#patient-recent\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"patient-usage\",\n viewBox: \"0 0 20 14\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#patient\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"borg-0-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#borg-0\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"borg-1-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#borg-1\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"borg-10-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#borg-10\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"borg-2-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#borg-2\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"borg-3-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#borg-3\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"borg-4-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#borg-4\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"borg-5-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#borg-5\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"borg-6-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#borg-6\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"borg-7-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#borg-7\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"borg-8-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#borg-8\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"borg-9-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#borg-9\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"bad-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#bad\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"good-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#good\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"okay-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#okay\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"veryBad-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#veryBad\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"veryGood-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#veryGood\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"skipped-usage\",\n viewBox: \"0 0 22 22\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#skipped\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"patients-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#patients\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Kinect-usage\",\n viewBox: \"0 0 66 36\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#Kinect\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"LeapMotion-usage\",\n viewBox: \"0 0 60 36\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#LeapMotion\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"MMB_1x-usage\",\n viewBox: \"0 0 28 36\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#MMB_1x\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"MMB_2x-usage\",\n viewBox: \"0 0 50 36\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#MMB_2x\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"planner-calendar-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#planner-calendar\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"planner-calibrate-usage\",\n viewBox: \"0 0 10 10\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#planner-calibrate\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"planner-download-usage\",\n viewBox: \"0 0 15 14\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#planner-download\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"planner-dropper-usage\",\n viewBox: \"0 0 29 40\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#planner-dropper\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"planner-file-usage\",\n viewBox: \"0 0 12 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#planner-file\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"planner-log-usage\",\n viewBox: \"0 0 18 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#planner-log\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"planner-minus-usage\",\n viewBox: \"0 0 8 2\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#planner-minus\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"planner-options-usage\",\n viewBox: \"0 0 16 14\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#planner-options\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"planner-plus-usage\",\n viewBox: \"0 0 8 8\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#planner-plus\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"planner-results-usage\",\n viewBox: \"0 0 16 12\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#planner-results\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"planner-settings-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#planner-settings\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"planner-trash-usage\",\n viewBox: \"0 0 14 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#planner-trash\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"play-usage\",\n viewBox: \"0 0 120 120\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#play\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"posture-seat-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#posture-seat\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"posture-stand-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#posture-stand\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"profile-admin-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#profile-admin\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"profile-patient-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#profile-patient\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"profile-patient_full-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#profile-patient_full\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"profile-physician-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#profile-physician\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"profile-sitemanager-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#profile-sitemanager\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"profile-sitemanager_full-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#profile-sitemanager_full\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"profile-support-usage\",\n viewBox: \"0 0 24 30\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#profile-support\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"profile-therapist-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#profile-therapist\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"profile-therapist_full-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#profile-therapist_full\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"reload-usage\",\n viewBox: \"0 0 15 15\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#reload\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"save_as_template-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#save_as_template\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"search-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#search\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"session-scheduled-usage\",\n viewBox: \"0 0 15 15\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#session-scheduled\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"settings-light-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#settings-light\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"settings-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#settings\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"sidebar-close-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#sidebar-close\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"sidebar-open-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#sidebar-open\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"site-management-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#site-management\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"site-managers-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#site-managers\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"sort-usage\",\n viewBox: \"0 0 15 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#sort\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"sort_asc-usage\",\n viewBox: \"0 0 15 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#sort_asc\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"sort_desc-usage\",\n viewBox: \"0 0 15 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#sort_desc\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"stop-usage\",\n viewBox: \"0 0 120 120\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#stop\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"teleconsultation-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#teleconsultation\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"templates-directory-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#templates-directory\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"templates-editor-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#templates-editor\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"therapeutic-goal-usage\",\n viewBox: \"0 0 70 70\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#therapeutic-goal\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"therapist-details-usage\",\n viewBox: \"0 0 52 52\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#therapist-details\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"therapists-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#therapists\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"tick-usage\",\n viewBox: \"0 0 14 14\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#tick\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"time-zone-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#time-zone\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"timeline-session-extra-training-usage\",\n viewBox: \"0 0 24 24\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#timeline-session-extra-training\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"timeline-session-missed-usage\",\n viewBox: \"0 0 24 24\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#timeline-session-missed\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"timeline-session-supervised-usage\",\n viewBox: \"0 0 24 24\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#timeline-session-supervised\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"timeline-session-unsupervised-usage\",\n viewBox: \"0 0 24 24\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#timeline-session-unsupervised\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"top-menu-live-meeting-down-usage\",\n viewBox: \"0 0 28 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#top-menu-live-meeting-down\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"top-menu-live-meeting-up-usage\",\n viewBox: \"0 0 28 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#top-menu-live-meeting-up\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"top-menu-patients-directory-down-usage\",\n viewBox: \"0 0 28 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#top-menu-patients-directory-down\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"top-menu-patients-directory-up-usage\",\n viewBox: \"0 0 28 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#top-menu-patients-directory-up\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"top-menu-telerehab-down-usage\",\n viewBox: \"0 0 28 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#top-menu-telerehab-down\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"top-menu-telerehab-up-usage\",\n viewBox: \"0 0 28 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#top-menu-telerehab-up\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionAll-usage\",\n viewBox: \"0 0 54 54\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionAll\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionHandBilateral-usage\",\n viewBox: \"0 0 54 54\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionHandBilateral\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionHandLeft-usage\",\n viewBox: \"0 0 54 54\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionHandLeft\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionHandRight-usage\",\n viewBox: \"0 0 54 54\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionHandRight\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionLowerLimbBilateral-usage\",\n viewBox: \"0 0 54 54\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionLowerLimbBilateral\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionLowerLimbLeft-usage\",\n viewBox: \"0 0 54 54\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionLowerLimbLeft\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionLowerLimbRight-usage\",\n viewBox: \"0 0 54 54\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionLowerLimbRight\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionNone-usage\",\n viewBox: \"0 0 54 54\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionNone\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionTrunkBilateral-usage\",\n viewBox: \"0 0 54 54\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionTrunkBilateral\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionTrunkLeft-usage\",\n viewBox: \"0 0 54 54.00001\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionTrunkLeft\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionTrunkRight-usage\",\n viewBox: \"0 0 54 54.00001\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionTrunkRight\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionUpperLimbBilateral-usage\",\n viewBox: \"0 0 54 54\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionUpperLimbBilateral\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionUpperLimbLeft-usage\",\n viewBox: \"0 0 54 54\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionUpperLimbLeft\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FunctionUpperLimbRight-usage\",\n viewBox: \"0 0 54 54\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#FunctionUpperLimbRight\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"training-plan-usage\",\n viewBox: \"0 0 70 70\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#training-plan\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"next-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#next\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"previous-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#previous\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"tm-completed-video-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#tm-completed-video\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"tm-new-video-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#tm-new-video\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"training-material-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#training-material\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"undo-usage\",\n viewBox: \"0 0 34 34\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#undo\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"unknown-usage\",\n viewBox: \"0 0 25 25\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#unknown\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"unsupervised-training-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#unsupervised-training\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"user-sessions-usage\",\n viewBox: \"0 0 28 28\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#user-sessions\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"videomeeting-mic-off-usage\",\n viewBox: \"0 0 50 50\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#videomeeting-mic-off\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"videomeeting-mic-on-usage\",\n viewBox: \"0 0 50 50\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#videomeeting-mic-on\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"videomeeting-sound-off-usage\",\n viewBox: \"0 0 50 50\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#videomeeting-sound-off\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"videomeeting-sound-on-usage\",\n viewBox: \"0 0 50 50\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#videomeeting-sound-on\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"videomeeting-video-off-usage\",\n viewBox: \"0 0 50 50\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#videomeeting-video-off\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"videomeeting-video-on-usage\",\n viewBox: \"0 0 50 50\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#videomeeting-video-on\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"visibility-hide-usage\",\n viewBox: \"0 0 24 12\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#visibility-hide\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"visibility-show-usage\",\n viewBox: \"0 0 24 12\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#visibility-show\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"warning-circle-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#warning-circle\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"warning-usage\",\n viewBox: \"0 0 24 24\",\n url: __webpack_public_path__ + \"img/icons.62d6bdd2.svg#warning\",\n toString: function () {\n return this.url;\n }\n }","var map = {\n\t\"./Airplane_GameIcon.png\": 63300,\n\t\"./Alchemix_GameIcon.png\": 87212,\n\t\"./CarRacer_GameIcon.png\": 83688,\n\t\"./Climbing_GameIcon.png\": 48325,\n\t\"./CrossTheRoad_GameIcon.png\": 62059,\n\t\"./Default_GameIcon.png\": 17570,\n\t\"./FlyingCar_GameIcon.png\": 84887,\n\t\"./FlyingCarpet_GameIcon.png\": 33107,\n\t\"./FrogJourney_GameIcon.png\": 4401,\n\t\"./GardenRage_GameIcon.png\": 38447,\n\t\"./JapaneseGarden_GameIcon.png\": 31173,\n\t\"./LineRoller_GameIcon.png\": 30620,\n\t\"./Mind4_GameIcon.png\": 76133,\n\t\"./MineCart_GameIcon.png\": 68104,\n\t\"./Octopulse_GameIcon.png\": 43963,\n\t\"./SkiLiner_GameIcon.png\": 11743,\n\t\"./SpaceBurger_GameIcon.png\": 81849,\n\t\"./Stardust_GameIcon.png\": 31794,\n\t\"./ToapRun_GameIcon.png\": 20863,\n\t\"./TowerBuilder_GameIcon.png\": 93365,\n\t\"./WitcherDefense_GameIcon.png\": 65437\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 37351;","var map = {\n\t\"./activity-details.svg\": 97798,\n\t\"./activity-flag.svg\": 22683,\n\t\"./add-patient-success.svg\": 27174,\n\t\"./add-patient.svg\": 50557,\n\t\"./admin.svg\": 46918,\n\t\"./administration.svg\": 50951,\n\t\"./archived-users-directory.svg\": 25147,\n\t\"./arrow-simple-left.svg\": 30362,\n\t\"./arrow-simple-right.svg\": 43150,\n\t\"./assets.svg\": 26452,\n\t\"./att-current.svg\": 87194,\n\t\"./att-history.svg\": 48750,\n\t\"./audit-trail-logs.svg\": 49214,\n\t\"./body.svg\": 76112,\n\t\"./button-icon-save.svg\": 96592,\n\t\"./calendar.svg\": 32317,\n\t\"./calibration-off.svg\": 20557,\n\t\"./calibration-on.svg\": 57678,\n\t\"./callout-down.svg\": 3973,\n\t\"./callout.svg\": 41550,\n\t\"./ce_logo.svg\": 54919,\n\t\"./chevron-carousel-left.svg\": 64810,\n\t\"./chevron-carousel-right.svg\": 62636,\n\t\"./chevron-down.svg\": 81092,\n\t\"./chevron-left.svg\": 77319,\n\t\"./chevron-right.svg\": 31916,\n\t\"./chevron-up.svg\": 94196,\n\t\"./circle-warning.svg\": 21448,\n\t\"./close.svg\": 40314,\n\t\"./cog-hollow.svg\": 71211,\n\t\"./companion-logo.svg\": 13408,\n\t\"./compensation/bodyweighttransfer-left.svg\": 32659,\n\t\"./compensation/bodyweighttransfer-right.svg\": 12984,\n\t\"./compensation/leftkneeextension-up.svg\": 1033,\n\t\"./compensation/leftshoulderabductionadduction-left.svg\": 30170,\n\t\"./compensation/leftshoulderabductionadduction-right.svg\": 68050,\n\t\"./compensation/leftshoulderflexionextension-backward.svg\": 16727,\n\t\"./compensation/leftshoulderflexionextension-forward.svg\": 82910,\n\t\"./compensation/rightkneeextension-up.svg\": 62211,\n\t\"./compensation/rightshoulderabductionadduction-left.svg\": 83344,\n\t\"./compensation/rightshoulderabductionadduction-right.svg\": 76246,\n\t\"./compensation/rightshoulderflexionextension-backward.svg\": 78253,\n\t\"./compensation/rightshoulderflexionextension-forward.svg\": 81437,\n\t\"./compensation/trunkflexion-backward.svg\": 55611,\n\t\"./compensation/trunkflexion-forward.svg\": 23481,\n\t\"./compensation/trunkflexion-left.svg\": 22178,\n\t\"./compensation/trunkflexion-right.svg\": 18418,\n\t\"./compensation_flag_icons/elbow-left.svg\": 5065,\n\t\"./compensation_flag_icons/elbow-right.svg\": 39892,\n\t\"./compensation_flag_icons/head-center.svg\": 59665,\n\t\"./compensation_flag_icons/head-left.svg\": 33833,\n\t\"./compensation_flag_icons/head-right.svg\": 55845,\n\t\"./compensation_flag_icons/leg-left.svg\": 35753,\n\t\"./compensation_flag_icons/leg-right.svg\": 48154,\n\t\"./compensation_flag_icons/shoulder-left.svg\": 71333,\n\t\"./compensation_flag_icons/shoulder-right.svg\": 938,\n\t\"./compensation_flag_icons/torso.svg\": 35506,\n\t\"./compensation_flag_icons/wrist-left.svg\": 58779,\n\t\"./compensation_flag_icons/wrist-right.svg\": 52841,\n\t\"./compensation_groups/bodyweighttransfer.svg\": 83009,\n\t\"./compensation_groups/leftkneeextension.svg\": 65463,\n\t\"./compensation_groups/leftshoulder.svg\": 86006,\n\t\"./compensation_groups/rightkneeextension.svg\": 60932,\n\t\"./compensation_groups/rightshoulder.svg\": 36876,\n\t\"./compensation_groups/trunkflexion.svg\": 68585,\n\t\"./consent.svg\": 14954,\n\t\"./contact-us.svg\": 16149,\n\t\"./copy.svg\": 7778,\n\t\"./create_program.svg\": 72863,\n\t\"./create_template.svg\": 1711,\n\t\"./credentials.svg\": 4412,\n\t\"./data-export.svg\": 77946,\n\t\"./day-period-afternoon.svg\": 79880,\n\t\"./day-period-morning.svg\": 3431,\n\t\"./demo-patient.svg\": 99576,\n\t\"./done-half.svg\": 41789,\n\t\"./done-invert-colors.svg\": 85083,\n\t\"./done-not-training.svg\": 4227,\n\t\"./done-not.svg\": 59541,\n\t\"./done-notassigned.svg\": 56573,\n\t\"./done-partially.svg\": 33653,\n\t\"./done-password-criteria.svg\": 5285,\n\t\"./done-rounded-circle-fill.svg\": 59267,\n\t\"./done-rounded-circle.svg\": 13933,\n\t\"./done.svg\": 71860,\n\t\"./dpo-admin.svg\": 93846,\n\t\"./drag-handle.svg\": 90831,\n\t\"./duplicate.svg\": 88755,\n\t\"./edit.svg\": 51987,\n\t\"./email.svg\": 50782,\n\t\"./epro-patients.svg\": 31547,\n\t\"./european-representative.svg\": 30443,\n\t\"./export.svg\": 56965,\n\t\"./external.svg\": 63906,\n\t\"./faq.svg\": 28342,\n\t\"./feedback.svg\": 32311,\n\t\"./filter.svg\": 39393,\n\t\"./flags/ar-SA.svg\": 39672,\n\t\"./flags/de.svg\": 65700,\n\t\"./flags/es.svg\": 96351,\n\t\"./flags/fr.svg\": 99718,\n\t\"./flags/gb.svg\": 72314,\n\t\"./flags/it.svg\": 92593,\n\t\"./flags/ro.svg\": 7477,\n\t\"./flags/us.svg\": 53487,\n\t\"./general-details.svg\": 2815,\n\t\"./geolocalization.svg\": 67305,\n\t\"./globe.svg\": 34813,\n\t\"./hamburger.svg\": 21676,\n\t\"./hand.svg\": 16560,\n\t\"./help.svg\": 17086,\n\t\"./ifu.svg\": 29664,\n\t\"./import.svg\": 34773,\n\t\"./import_mm_template.svg\": 81798,\n\t\"./import_my_template.svg\": 62689,\n\t\"./info-circle.svg\": 7886,\n\t\"./level.svg\": 99565,\n\t\"./levels.svg\": 61577,\n\t\"./license.svg\": 32434,\n\t\"./loading.svg\": 87199,\n\t\"./logout.svg\": 97656,\n\t\"./manufacturer.svg\": 99827,\n\t\"./medical-details.svg\": 34088,\n\t\"./menu.svg\": 50102,\n\t\"./mindmotion-logo.svg\": 12181,\n\t\"./mini-cam.svg\": 47290,\n\t\"./mini-mic.svg\": 36606,\n\t\"./mini-sound.svg\": 51535,\n\t\"./more-menu.svg\": 18199,\n\t\"./movement/ArmReaching.svg\": 85053,\n\t\"./movement/ArmReachingAndPalmarGrasping.svg\": 98917,\n\t\"./movement/ArmsPumping.svg\": 90310,\n\t\"./movement/BilateralStep.svg\": 57258,\n\t\"./movement/FingersPinch.svg\": 4874,\n\t\"./movement/ForearmPronationSupination.svg\": 98985,\n\t\"./movement/ForwardBackwardSteps.svg\": 65953,\n\t\"./movement/FreeSqueeze.svg\": 21107,\n\t\"./movement/FreeSqueezeAndFreeWristMovement.svg\": 50403,\n\t\"./movement/FreeSteps.svg\": 60145,\n\t\"./movement/FreeWristMovement.svg\": 32661,\n\t\"./movement/GripFlexionExtension.svg\": 64206,\n\t\"./movement/GripPronationSupination.svg\": 22452,\n\t\"./movement/GripRadialUlnarDeviation.svg\": 49175,\n\t\"./movement/HandGraspRelease.svg\": 26573,\n\t\"./movement/HorizontalArmReaching.svg\": 78538,\n\t\"./movement/HorizontalShoulderAbductionAdduction.svg\": 82786,\n\t\"./movement/LateralBodyWeightTransfer.svg\": 25922,\n\t\"./movement/LateralStep.svg\": 35811,\n\t\"./movement/PalmarGrasp.svg\": 84668,\n\t\"./movement/PincerGrasp.svg\": 61293,\n\t\"./movement/ShoulderAbduction.svg\": 80113,\n\t\"./movement/ShoulderAbductionAdduction.svg\": 94441,\n\t\"./movement/ShoulderFlexion.svg\": 86413,\n\t\"./movement/ShoulderFlexionExtension.svg\": 81320,\n\t\"./movement/Squat.svg\": 86742,\n\t\"./movement/SteeringWheel.svg\": 52559,\n\t\"./movement/SteeringWheelAndArmsPumping.svg\": 69407,\n\t\"./movement/TrunkAxialRotation.svg\": 94713,\n\t\"./movement/TrunkForwardBackwardFlexion.svg\": 56571,\n\t\"./movement/TrunkForwardBackwardLateralFlexion.svg\": 81913,\n\t\"./movement/TrunkLateralFlexion.svg\": 42381,\n\t\"./movement/UnilateralShoulderAbductionAdduction.svg\": 35111,\n\t\"./movement/UnilateralStep.svg\": 98767,\n\t\"./movement/UpperLimbFlexionExtension.svg\": 56735,\n\t\"./movement/UpperLimbFlexionExtensionAndTrunkLateralFlexion.svg\": 94694,\n\t\"./movement/VerticalHandsReaching.svg\": 99964,\n\t\"./movement/WorldFootsteps.svg\": 45442,\n\t\"./movement/WristFlexionExtension.svg\": 43716,\n\t\"./movement/WristRadialUlnarDeviation.svg\": 4306,\n\t\"./my-patients.svg\": 49740,\n\t\"./notifications.svg\": 17230,\n\t\"./optional-features-def.svg\": 67207,\n\t\"./optional-features.svg\": 95962,\n\t\"./patient-details.svg\": 14622,\n\t\"./patient-recent.svg\": 66138,\n\t\"./patient.svg\": 95441,\n\t\"./patient_state/borg/borg-0.svg\": 63458,\n\t\"./patient_state/borg/borg-1.svg\": 69112,\n\t\"./patient_state/borg/borg-10.svg\": 65805,\n\t\"./patient_state/borg/borg-2.svg\": 19069,\n\t\"./patient_state/borg/borg-3.svg\": 8011,\n\t\"./patient_state/borg/borg-4.svg\": 59398,\n\t\"./patient_state/borg/borg-5.svg\": 58011,\n\t\"./patient_state/borg/borg-6.svg\": 30594,\n\t\"./patient_state/borg/borg-7.svg\": 36707,\n\t\"./patient_state/borg/borg-8.svg\": 86811,\n\t\"./patient_state/borg/borg-9.svg\": 36919,\n\t\"./patient_state/mood/bad.svg\": 8707,\n\t\"./patient_state/mood/good.svg\": 26560,\n\t\"./patient_state/mood/okay.svg\": 85666,\n\t\"./patient_state/mood/veryBad.svg\": 49538,\n\t\"./patient_state/mood/veryGood.svg\": 43571,\n\t\"./patient_state/skipped.svg\": 73519,\n\t\"./patients.svg\": 83562,\n\t\"./peripherals/Kinect.svg\": 135,\n\t\"./peripherals/LeapMotion.svg\": 27692,\n\t\"./peripherals/MMB_1x.svg\": 70927,\n\t\"./peripherals/MMB_2x.svg\": 80899,\n\t\"./planner-calendar.svg\": 77052,\n\t\"./planner-calibrate.svg\": 56321,\n\t\"./planner-download.svg\": 65756,\n\t\"./planner-dropper.svg\": 7804,\n\t\"./planner-file.svg\": 91222,\n\t\"./planner-log.svg\": 23762,\n\t\"./planner-minus.svg\": 30693,\n\t\"./planner-options.svg\": 32685,\n\t\"./planner-plus.svg\": 46045,\n\t\"./planner-results.svg\": 98308,\n\t\"./planner-settings.svg\": 48072,\n\t\"./planner-trash.svg\": 37779,\n\t\"./play.svg\": 62379,\n\t\"./posture-seat.svg\": 81767,\n\t\"./posture-stand.svg\": 89136,\n\t\"./profile-admin.svg\": 83994,\n\t\"./profile-patient.svg\": 15106,\n\t\"./profile-patient_full.svg\": 85225,\n\t\"./profile-physician.svg\": 49893,\n\t\"./profile-sitemanager.svg\": 72387,\n\t\"./profile-sitemanager_full.svg\": 23399,\n\t\"./profile-support.svg\": 86823,\n\t\"./profile-therapist.svg\": 67124,\n\t\"./profile-therapist_full.svg\": 71706,\n\t\"./reload.svg\": 55333,\n\t\"./save_as_template.svg\": 94540,\n\t\"./search.svg\": 32938,\n\t\"./session-scheduled.svg\": 99666,\n\t\"./settings-light.svg\": 9738,\n\t\"./settings.svg\": 98483,\n\t\"./sidebar-close.svg\": 75151,\n\t\"./sidebar-open.svg\": 22286,\n\t\"./site-management.svg\": 44778,\n\t\"./site-managers.svg\": 80800,\n\t\"./sort.svg\": 63624,\n\t\"./sort_asc.svg\": 40906,\n\t\"./sort_desc.svg\": 43521,\n\t\"./stop.svg\": 59480,\n\t\"./teleconsultation.svg\": 4851,\n\t\"./templates-directory.svg\": 86966,\n\t\"./templates-editor.svg\": 6775,\n\t\"./therapeutic-goal.svg\": 41039,\n\t\"./therapist-details.svg\": 89540,\n\t\"./therapists.svg\": 59403,\n\t\"./tick.svg\": 57194,\n\t\"./time-zone.svg\": 68411,\n\t\"./timeline-session-extra-training.svg\": 12159,\n\t\"./timeline-session-missed.svg\": 39280,\n\t\"./timeline-session-supervised.svg\": 43529,\n\t\"./timeline-session-unsupervised.svg\": 96773,\n\t\"./top-menu-live-meeting-down.svg\": 23058,\n\t\"./top-menu-live-meeting-up.svg\": 56304,\n\t\"./top-menu-patients-directory-down.svg\": 44108,\n\t\"./top-menu-patients-directory-up.svg\": 3005,\n\t\"./top-menu-telerehab-down.svg\": 82780,\n\t\"./top-menu-telerehab-up.svg\": 87661,\n\t\"./trained_functions/FunctionAll.svg\": 39287,\n\t\"./trained_functions/FunctionHandBilateral.svg\": 27491,\n\t\"./trained_functions/FunctionHandLeft.svg\": 22719,\n\t\"./trained_functions/FunctionHandRight.svg\": 3139,\n\t\"./trained_functions/FunctionLowerLimbBilateral.svg\": 21217,\n\t\"./trained_functions/FunctionLowerLimbLeft.svg\": 6424,\n\t\"./trained_functions/FunctionLowerLimbRight.svg\": 63085,\n\t\"./trained_functions/FunctionNone.svg\": 11410,\n\t\"./trained_functions/FunctionTrunkBilateral.svg\": 64069,\n\t\"./trained_functions/FunctionTrunkLeft.svg\": 15859,\n\t\"./trained_functions/FunctionTrunkRight.svg\": 15957,\n\t\"./trained_functions/FunctionUpperLimbBilateral.svg\": 33166,\n\t\"./trained_functions/FunctionUpperLimbLeft.svg\": 17920,\n\t\"./trained_functions/FunctionUpperLimbRight.svg\": 15036,\n\t\"./training-plan.svg\": 87806,\n\t\"./training_materials/next.svg\": 67372,\n\t\"./training_materials/previous.svg\": 48617,\n\t\"./training_materials/tm-completed-video.svg\": 31536,\n\t\"./training_materials/tm-new-video.svg\": 68761,\n\t\"./training_materials/training-material.svg\": 84784,\n\t\"./undo.svg\": 49986,\n\t\"./unknown.svg\": 48447,\n\t\"./unsupervised-training.svg\": 57867,\n\t\"./user-sessions.svg\": 15647,\n\t\"./videomeeting-mic-off.svg\": 26543,\n\t\"./videomeeting-mic-on.svg\": 72084,\n\t\"./videomeeting-sound-off.svg\": 98205,\n\t\"./videomeeting-sound-on.svg\": 99153,\n\t\"./videomeeting-video-off.svg\": 18461,\n\t\"./videomeeting-video-on.svg\": 90124,\n\t\"./visibility-hide.svg\": 80347,\n\t\"./visibility-show.svg\": 66746,\n\t\"./warning-circle.svg\": 65247,\n\t\"./warning.svg\": 42991\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 87254;","module.exports = new Promise(resolve => {\n const remoteUrl = window.location.origin + '/epro/remoteEntry.js'\n const script = document.createElement('script')\n script.src = remoteUrl\n script.onload = () => {\n // the injected script has loaded and is available on window\n // we can now resolve this Promise\n const proxy = {\n get: (request) => window.epro.get(request),\n init: (arg) => {\n try {\n return window.epro.init(arg)\n } catch(e) {\n console.log('remote container already initialized')\n }\n }\n }\n resolve(proxy)\n }\n // inject this script with the src set to the versioned remoteEntry.js\n document.head.appendChild(script);\n })\n ;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","var deferred = [];\n__webpack_require__.O = function(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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\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(function(key) { return __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};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \"-legacy.\" + {\"10\":\"32536158\",\"115\":\"ab6b3c31\",\"149\":\"c8de5435\",\"178\":\"57c2db7b\",\"188\":\"a5fc757f\",\"200\":\"f5f705b8\",\"236\":\"0533b24e\",\"247\":\"341e80c4\",\"248\":\"60d1c667\",\"435\":\"e3264184\",\"438\":\"5d4dac91\",\"508\":\"7882c3e2\",\"516\":\"c7647c55\",\"673\":\"dae73a95\",\"775\":\"1124635e\",\"812\":\"9626cb2f\",\"847\":\"32c89603\",\"851\":\"05a02406\",\"916\":\"b7093b52\",\"990\":\"4f5203b6\",\"1010\":\"d4827720\",\"1056\":\"4a379b10\",\"1166\":\"05e32021\",\"1223\":\"16ece925\",\"1443\":\"59ac7bf1\",\"1495\":\"facc0db9\",\"1564\":\"f4391cf2\",\"1604\":\"66bdec0f\",\"1643\":\"93142dbb\",\"1666\":\"70479a17\",\"1740\":\"36049aff\",\"1891\":\"c1ab5308\",\"1949\":\"6cbd2c15\",\"2165\":\"85c9c1d4\",\"2236\":\"2c4d7045\",\"2270\":\"d075d7de\",\"2280\":\"669a857c\",\"2447\":\"d4c063e5\",\"2569\":\"46f20e7b\",\"2576\":\"0ee5f66c\",\"2583\":\"07954f81\",\"2597\":\"dc6dbdbe\",\"2602\":\"113488f0\",\"2606\":\"f2abaa58\",\"2613\":\"0b79ed92\",\"2763\":\"a9e334d7\",\"2815\":\"5691f514\",\"2997\":\"088c90c2\",\"3029\":\"de28dc65\",\"3122\":\"6a1a5209\",\"3350\":\"9117bd1b\",\"3392\":\"9ff5d541\",\"3406\":\"9c7981fe\",\"3480\":\"e5522ed7\",\"3610\":\"c2d33700\",\"3764\":\"96e4eddd\",\"3834\":\"9ad7aea3\",\"3862\":\"021db0c4\",\"3902\":\"c0a498e2\",\"3903\":\"d81cb6d3\",\"3914\":\"8ff43c9a\",\"3998\":\"0a94c60a\",\"4005\":\"7ed1c873\",\"4080\":\"72b22d6c\",\"4171\":\"75e11c47\",\"4204\":\"d6417e15\",\"4240\":\"e710c8a7\",\"4293\":\"18f608f4\",\"4305\":\"c7a2fb4e\",\"4328\":\"4111f954\",\"4379\":\"0e121dc4\",\"4403\":\"cf03f49d\",\"4628\":\"8d9da117\",\"4706\":\"f2a5545a\",\"4729\":\"c64a201a\",\"4779\":\"125cbdaa\",\"4988\":\"ba66b1ba\",\"4993\":\"2fbb6064\",\"4999\":\"b9769be2\",\"5018\":\"f3311559\",\"5165\":\"f7f237ca\",\"5268\":\"120b0b09\",\"5281\":\"2cd0a208\",\"5306\":\"9e95fb24\",\"5390\":\"74ae6771\",\"5404\":\"fccac046\",\"5466\":\"d4841bd1\",\"5515\":\"a7fdd5aa\",\"5678\":\"19e005a6\",\"5715\":\"79d85579\",\"5721\":\"e8bbe3da\",\"5797\":\"5ca2ad12\",\"5805\":\"a21f2c87\",\"5889\":\"2e416721\",\"5919\":\"8736facc\",\"5955\":\"35e9ea9c\",\"5964\":\"1ea95afa\",\"5982\":\"40854a38\",\"6089\":\"0e0452e0\",\"6227\":\"8fe4fc17\",\"6274\":\"ce831266\",\"6290\":\"a3f5b008\",\"6374\":\"33c8d2bb\",\"6379\":\"4dd99591\",\"6441\":\"14792af5\",\"6443\":\"85622c79\",\"6487\":\"925f0afa\",\"6530\":\"b6d6104f\",\"6576\":\"c5acf49a\",\"6613\":\"23ba5329\",\"6638\":\"aaa3b524\",\"6694\":\"29faad8b\",\"6722\":\"3ba57ea2\",\"6799\":\"c7c30106\",\"6869\":\"b29b7b07\",\"7084\":\"ed6cee9f\",\"7131\":\"5361d949\",\"7166\":\"3779bfe0\",\"7170\":\"7098a22f\",\"7175\":\"6944d8c8\",\"7183\":\"eb718fb4\",\"7302\":\"e3579cdc\",\"7312\":\"16e72504\",\"7314\":\"177ccad3\",\"7321\":\"c083a885\",\"7423\":\"580c7ad9\",\"7492\":\"78af86c3\",\"7576\":\"f7b46917\",\"7673\":\"4f06cfa4\",\"7718\":\"8b228af5\",\"7737\":\"4f0a7944\",\"7783\":\"6a940d44\",\"7883\":\"65cbac20\",\"7951\":\"6bb3090b\",\"8110\":\"474afc2f\",\"8118\":\"0ff1185c\",\"8223\":\"ee5ee9bd\",\"8303\":\"afbd56c4\",\"8318\":\"d944499d\",\"8347\":\"9d487a5c\",\"8349\":\"59c569c6\",\"8410\":\"b6e2dd5b\",\"8416\":\"f052fd3c\",\"8459\":\"a0d98fa8\",\"8616\":\"1cac566a\",\"8635\":\"cc82a9f2\",\"8654\":\"021cf523\",\"8667\":\"9c09723d\",\"8690\":\"3350c4f0\",\"8740\":\"dfa23089\",\"8752\":\"43fcbe11\",\"8834\":\"c76b0e72\",\"8866\":\"90a7d5ac\",\"8998\":\"0103a3ce\",\"9019\":\"d4a82631\",\"9072\":\"f930325d\",\"9175\":\"489add24\",\"9194\":\"76323842\",\"9246\":\"017b8103\",\"9260\":\"2b867486\",\"9459\":\"424c2983\",\"9497\":\"5b7b0892\",\"9513\":\"c871fa6a\",\"9660\":\"0326426b\",\"9710\":\"c79bd560\",\"9777\":\"2852cbbd\",\"9859\":\"7e21ac50\",\"9919\":\"a3909acc\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"115\":\"72e38e8e\",\"149\":\"424257ee\",\"188\":\"424257ee\",\"200\":\"409e3763\",\"236\":\"23391732\",\"247\":\"4cac036f\",\"248\":\"3aa3087c\",\"435\":\"d10d99da\",\"438\":\"96924131\",\"516\":\"6f3c0fe5\",\"775\":\"7c38965f\",\"847\":\"092252e3\",\"916\":\"a1d0ab27\",\"1010\":\"6c00957d\",\"1166\":\"7a996bc2\",\"1223\":\"a1b418f6\",\"1495\":\"ae861f2e\",\"1949\":\"f8ca2c3c\",\"2165\":\"ae861f2e\",\"2236\":\"d5057d91\",\"2280\":\"96924131\",\"2576\":\"424257ee\",\"2597\":\"409e3763\",\"2602\":\"001b794b\",\"2613\":\"4cac036f\",\"2815\":\"4884159d\",\"3350\":\"97d59dc8\",\"3392\":\"7ee0e450\",\"3764\":\"4107cc05\",\"3834\":\"56fd9598\",\"3862\":\"424257ee\",\"3902\":\"fe259134\",\"3914\":\"7d2a3752\",\"3998\":\"f9f77535\",\"4005\":\"7415a82b\",\"4080\":\"d93550fd\",\"4240\":\"ae861f2e\",\"4305\":\"8bf346d7\",\"4628\":\"36cc144b\",\"4706\":\"409e3763\",\"4988\":\"4ddf0448\",\"5018\":\"d10d99da\",\"5268\":\"424257ee\",\"5281\":\"409e3763\",\"5306\":\"7ee0e450\",\"5404\":\"1c1b9a47\",\"5515\":\"4ddf0448\",\"5715\":\"7ea95a6e\",\"5797\":\"409e3763\",\"5982\":\"adeb4c9b\",\"6089\":\"bb375d33\",\"6227\":\"e75c59a2\",\"6379\":\"2aa57b39\",\"6441\":\"ae861f2e\",\"6443\":\"6f3c0fe5\",\"6487\":\"424257ee\",\"6530\":\"7ee0e450\",\"6613\":\"fe59d785\",\"6694\":\"7a996bc2\",\"6869\":\"bb375d33\",\"7131\":\"138483fb\",\"7166\":\"cfdac215\",\"7183\":\"1bd122c9\",\"7302\":\"424257ee\",\"7492\":\"2aaf207a\",\"7718\":\"73420662\",\"7951\":\"424257ee\",\"8110\":\"4884159d\",\"8118\":\"7ee0e450\",\"8223\":\"8c1f6745\",\"8349\":\"424257ee\",\"8416\":\"b0b68efa\",\"8459\":\"4ddf0448\",\"8635\":\"ae861f2e\",\"8654\":\"cb024714\",\"8667\":\"8bf346d7\",\"8690\":\"b5f7d182\",\"8740\":\"8bf346d7\",\"8752\":\"7091c9da\",\"8998\":\"8bcf7627\",\"9019\":\"51112a1c\",\"9072\":\"73871224\",\"9194\":\"3aa3087c\",\"9260\":\"4ddf0448\",\"9459\":\"e2726cd7\",\"9497\":\"697ec291\",\"9513\":\"7ee0e450\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"mindmaze:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(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\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(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(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var chunkMapping = {\n\t\"3903\": [\n\t\t73903\n\t],\n\t\"7321\": [\n\t\t18459\n\t]\n};\nvar idToExternalAndNameMapping = {\n\t\"18459\": [\n\t\t\"default\",\n\t\t\"./PatientTab\",\n\t\t34767\n\t],\n\t\"73903\": [\n\t\t\"default\",\n\t\t\"./ProgramTab\",\n\t\t34767\n\t]\n};\n__webpack_require__.f.remotes = function(chunkId, promises) {\n\tif(__webpack_require__.o(chunkMapping, chunkId)) {\n\t\tchunkMapping[chunkId].forEach(function(id) {\n\t\t\tvar getScope = __webpack_require__.R;\n\t\t\tif(!getScope) getScope = [];\n\t\t\tvar data = idToExternalAndNameMapping[id];\n\t\t\tif(getScope.indexOf(data) >= 0) return;\n\t\t\tgetScope.push(data);\n\t\t\tif(data.p) return promises.push(data.p);\n\t\t\tvar onError = function(error) {\n\t\t\t\tif(!error) error = new Error(\"Container missing\");\n\t\t\t\tif(typeof error.message === \"string\")\n\t\t\t\t\terror.message += '\\nwhile loading \"' + data[1] + '\" from ' + data[2];\n\t\t\t\t__webpack_require__.m[id] = function() {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tdata.p = 0;\n\t\t\t};\n\t\t\tvar handleFunction = function(fn, arg1, arg2, d, next, first) {\n\t\t\t\ttry {\n\t\t\t\t\tvar promise = fn(arg1, arg2);\n\t\t\t\t\tif(promise && promise.then) {\n\t\t\t\t\t\tvar p = promise.then(function(result) { return next(result, d); }, onError);\n\t\t\t\t\t\tif(first) promises.push(data.p = p); else return p;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn next(promise, d, first);\n\t\t\t\t\t}\n\t\t\t\t} catch(error) {\n\t\t\t\t\tonError(error);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar onExternal = function(external, _, first) { return external ? handleFunction(__webpack_require__.I, data[0], 0, external, onInitialized, first) : onError(); };\n\t\t\tvar onInitialized = function(_, external, first) { return handleFunction(external.get, data[1], getScope, 0, onFactory, first); };\n\t\t\tvar onFactory = function(factory) {\n\t\t\t\tdata.p = 1;\n\t\t\t\t__webpack_require__.m[id] = function(module) {\n\t\t\t\t\tmodule.exports = factory();\n\t\t\t\t}\n\t\t\t};\n\t\t\thandleFunction(__webpack_require__, data[2], 0, 0, onExternal, 1);\n\t\t});\n\t}\n}","__webpack_require__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = function(name, initScope) {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = function(msg) {\n\t\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n\t};\n\tvar uniqueName = \"mindmaze\";\n\tvar register = function(name, version, factory, eager) {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = function(id) {\n\t\tvar handleError = function(err) { warn(\"Initialization of sharing external failed: \" + err); };\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = function(module) { return module && module.init && module.init(__webpack_require__.S[name], initScope); }\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t\tcase \"default\": {\n\t\t\tregister(\"react-dom\", \"18.2.0\", function() { return function() { return __webpack_require__(73935); }; }, 1);\n\t\t\tregister(\"react\", \"18.2.0\", function() { return function() { return __webpack_require__(67294); }; }, 1);\n\t\t\tinitExternal(34767);\n\t\t}\n\t\tbreak;\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(function() { return initPromises[name] = 1; });\n};","__webpack_require__.p = \"/\";","var parseVersion = function(str) {\n\t// see webpack/lib/util/semver.js for original code\n\tvar p=function(p){return p.split(\".\").map((function(p){return+p==p?+p:p}))},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;\n}\nvar versionLt = function(a, b) {\n\t// see webpack/lib/util/semver.js for original code\n\ta=parseVersion(a),b=parseVersion(b);for(var r=0;;){if(r>=a.length)return r=b.length)return\"u\"==n;var t=b[r],f=(typeof t)[0];if(n!=f)return\"o\"==n&&\"n\"==f||(\"s\"==f||\"u\"==n);if(\"o\"!=n&&\"u\"!=n&&e!=t)return e=\":-1==r?\"<\":1==r?\"^\":2==r?\"~\":r>0?\"=\":\"!=\";for(var e=1,a=1;a0?\".\":\"\")+(e=2,t)}return n}var g=[];for(a=1;a=version.length||\"o\"==(s=(typeof(f=version[n]))[0]))return!a||(\"u\"==g?i>e&&!r:\"\"==g!=r);if(\"u\"==s){if(!a||\"u\"!=g)return!1}else if(a)if(g==s)if(i<=e){if(f!=range[i])return!1}else{if(r?f>range[i]:f